无人机图像处理技术精髓汇总 (一) 三维还原重建技术简介

2018 年 12 月 18 日 深度学习

航拍是无人机在实际场景中的重要应用。本系列文章将简单介绍无人机上的视觉算法。

从多张航拍图像中恢复建筑和地貌稠密结构是建筑,农业,测绘等行业迫切需要的。无人机的出现大大降低了航拍图像的获取成本,使得快速,低成本测量,创建需要的三维模型成为可能。本篇文章将剖析近年来的热点应用航拍图像三维重建

本文作者工作于泛化智能(giai.tech)

先简单介绍一下三维重建(Structure from Motion,SfM)的流程。

1. 照片拍摄#

如果想与地图对齐,需要采集的图像文件exif字段有gps信息或者添加对应的地面控制点(Ground Control Point)

2. 提取特征点#

从照片中提取具有一定不变性的特征点,在多张照片中都能找到的特征点将被用于后续图像匹配和全局模型生成。
常用的特征点提取算法有SIFT,SURF,ORB等。

3. 特征匹配#

可以进行两两匹配,这样会导致 N^{2} 的时间复杂度。

也可以基于时序信息或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. 填充纹理#

每个剖分得到的三角形将会对应原图像中一个部分。将这些部分裁剪下来,贴入对应的小三角形,即可获取颜色,纹理都较为逼真的三维模型。至此,三维还原重建的整个流程已经走完

填充后的面片

登录查看更多
13

相关内容

不需要驾驶员登机驾驶的各式遥控飞行器。
基于视觉的三维重建关键技术研究综述
专知会员服务
160+阅读 · 2020年5月1日
3D目标检测进展综述
专知会员服务
191+阅读 · 2020年4月24日
计算机视觉方向简介 | 多视角立体视觉MVS
计算机视觉life
14+阅读 · 2019年10月10日
计算机视觉方向简介 | 视觉惯性里程计(VIO)
计算机视觉life
64+阅读 · 2019年6月16日
立体匹配技术简介
计算机视觉life
27+阅读 · 2019年4月22日
计算机视觉方向简介 | 基于单目视觉的三维重建算法
计算机视觉life
30+阅读 · 2019年4月9日
计算机视觉方向简介 | 室内场景的结构化重建
计算机视觉life
8+阅读 · 2018年11月13日
基于图像的场景三维建模
计算机视觉战队
13+阅读 · 2018年3月17日
计算机视觉方向简介 | 单目微运动生成深度图
计算机视觉life
7+阅读 · 2018年1月17日
计算机视觉方向简介 | 阵列相机立体全景拼接
计算机视觉life
6+阅读 · 2018年1月3日
干货|全景视频拼接的关键技术分析
全球人工智能
13+阅读 · 2017年7月15日
Foreground-aware Image Inpainting
Arxiv
4+阅读 · 2019年1月17日
Learning Implicit Fields for Generative Shape Modeling
Arxiv
10+阅读 · 2018年12月6日
Arxiv
5+阅读 · 2018年5月5日
Arxiv
8+阅读 · 2018年5月1日
Arxiv
11+阅读 · 2018年3月23日
VIP会员
相关资讯
计算机视觉方向简介 | 多视角立体视觉MVS
计算机视觉life
14+阅读 · 2019年10月10日
计算机视觉方向简介 | 视觉惯性里程计(VIO)
计算机视觉life
64+阅读 · 2019年6月16日
立体匹配技术简介
计算机视觉life
27+阅读 · 2019年4月22日
计算机视觉方向简介 | 基于单目视觉的三维重建算法
计算机视觉life
30+阅读 · 2019年4月9日
计算机视觉方向简介 | 室内场景的结构化重建
计算机视觉life
8+阅读 · 2018年11月13日
基于图像的场景三维建模
计算机视觉战队
13+阅读 · 2018年3月17日
计算机视觉方向简介 | 单目微运动生成深度图
计算机视觉life
7+阅读 · 2018年1月17日
计算机视觉方向简介 | 阵列相机立体全景拼接
计算机视觉life
6+阅读 · 2018年1月3日
干货|全景视频拼接的关键技术分析
全球人工智能
13+阅读 · 2017年7月15日
相关论文
Top
微信扫码咨询专知VIP会员