先简单介绍一下三维重建(structure from motion,sfm)的流程。
1. 照片拍摄
如果想与地图对齐,需要采集的图像文件exif字段有gps信息或者添加对应的地面控制点(ground control point)
2. 提取特征点
从照片中提取具有一定不变性的特征点,在多张照片中都能找到的特征点将被用于后续图像匹配和全局模型生成。
常用的特征点提取算法有sift,surf,orb等。
3. 特征匹配
可以进行两两匹配,这样会导致 n2的时间复杂度。
也可以基于时序信息或gps位置进行匹配,这样在照片很多的时候会显著减少用时,但可能导致误差积累。
成功匹配到足够多特征点的照片将被认为有相邻关系。每对成功匹配图像之间将可以计算一组相对位置关系,用于表示相机从一张图的拍摄位置到另一张图的相对位置需要经过怎样的运动。这样的运动通常可以表示为一个三维旋转矩阵r和一个位移向量t。旋转矩阵也可以用单位四元数紧凑表示。
4. 最优化过程
理论上如果匹配关系是一条链,可以直接计算每个点的位置。但如果照片之间的匹配是一张“网”(数据结构中的连通无向图),则每张照片对应的相机位置解算结果不是唯一的。虽然真实的相机位置是唯一的,但由于对同一个相机位置进行了多次观测,一定会产生误差。一般地,假设未知分布的误差项服从高斯分布(同方差下高斯分布信息熵最大),因此构造的三维点还原不重叠损失函数都是关于距离的平方的。此时最优化类似于弹簧网(能量正比于误差平方)的结构。如果有外部位置信息,可以理解成弹簧网固连在建筑物上,因此最优位置是确定的;如果没有则只有“弹簧”之间的位置是有最优解的,这张“弹簧网”在哪里则是可以任意解释的,与最优化过程无关。
解这种优化问题的方法是建立优化图,构造对应的雅克比矩阵j和海森矩阵h。进行gauss-newton或levenberg–marquardt下降。这里有一些把有冗余的旋转阵(李群)变成无冗余的向量(李代数)之类的数学技巧,就不过多介绍了。
经过多次下降,一般会得到一个较接近最优解的结果。
5. 点云生成
经过最优化,每张照片相机的位置和特征点对应的空间位置已经确定(这里注意,如果照片的exif信息没有gps位置,也没有提供gcp的话,图像中物体的大小是不知道的。此时se(3)变换退化成sim(3)变换)。可以重建较为稀疏的点云,将特征点的位置通过三角计算还原到3d空间中。
6. 点云稠密化及过滤
通过上一步的粗匹配和粗点云,逐步求精的细化局部,提取更多的特征(不一定是特征点,也可能是区域块),进行匹配,得到较为稠密的点云。
一般的,一张图像的sift/surf特征点只有几十个到几百个。这种匹配是很鲁棒的,但显然即使这些点全部匹配上也不足以恢复任何有价值的图形。这就需要稠密化点云,利用之前的相机位置姿态信息(后简称位姿)逐步求精的恢复出更稠密的点云。
由于是局部匹配,即使不使用sift,surf等特别鲁棒的算法,产生误匹配的影响也不大。一般采用patch matching的方法一次匹一块区域。经过这步处理,模型的表面会产生许多三维顶点(vertex)。这些顶点将出现在最终的三维模型中。
在特征点匹配和点云稠密化的过程中,一定会产生很多和模型本地没关系的杂点。这些点分布在三维空间的各个位置,如不去除,将严重影响后面面片的生成(会产生很多很大的,形状诡异的面,使模型无法观看)。因此需要使用一些滤波算法,过滤掉明显是错误的点。(如离主体建筑很远,孤立在空中的一个或几个点,在一个大凸包体内的离其他点群较远的点)
7. 三角剖分生成面片与面片精修
经过上面的操作,我们已经获得了数目在几万个到几千万个之间的三维顶点(取决于图像的数量和分辨率,场景的大小和纹理是否多变等)。此时通过delaunay三角剖分,即可获得一组均匀三角形,这组三角形将包含三维图中的每一个顶点。这时场景的表面结构将清晰可见,只是这些面片(face)还没有颜色,仅有顶点有颜色。
这时生成的面片可能较为粗糙,且包含较多杂散的不属于物体的部分。可以使用一些精修算法精修这些面片,获得更合理的模型。
8. 填充纹理
每个剖分得到的三角形将会对应原图像中一个部分。将这些部分裁剪下来,贴入对应的小三角形,即可获取颜色,纹理都较为逼真的三维模型。至此,三维还原重建的整个流程已经走完。
2023飞腾嵌入式赋能培训全国巡讲在成都成功举行
保险或将是商用服务机器人的下一个风口
Windows10用户份额已涨至54.62% Win8.1则仅剩3.63%
绝缘子泄漏电流在线监测装置的简单介绍
台积电被苹果砍单?或是无稽之谈
无人机图像处理技术之三维还原重建技术简介
脉冲码型发生器工作原理
自然语言处理的概念和应用 自然语言处理属于人工智能吗
小米手环4曝光 电池容量增大到135mAh直接放在充电器上就可以充电
台积电等台晶圆厂16纳米订单爆发 联发科手机芯片出货大增
一些个SystemVerilog高效仿真技巧
数字滤波器的MATLAB与DSP上设计实现
将string转换成int/long的步骤分享
STN-LCD彩屏模块功能分析
红魔5G电竞手机曝光将会搭载骁龙865旗舰平台和三摄像头
关于新能源汽车充电桩市场新发展
简单的V-SLAM介绍
灵活的单四极杆 ICP 质谱仪安捷伦7900介绍
边缘AI的“灵魂”,能否跟上Ta飞快脚步
环网柜是一种髙压开关设备,它的优点有哪些