基于未标定多视角航拍图像的三维重建
一 、 任务与要求
本方案要求在搭建好的立体视觉的无人机平台的基础上,通过未标定的多视角图像重建3D 航拍模型,具体如下:
1. 查找相关文献,学习和掌握三维建模的方法
2. 掌握利用无人机采集高质量的航拍图像数据的方法
3. 通过C++,MATLAB 以及相关的点云处理库实习航拍场景的三维重建
二、 主要设备及材料
1. 无人机一架
2. 高像素摄像机一台
3. 有较强图像处理能力的PC 计算机一台
4. VS 和MATLAB 开发环境
三、 本方案涉及的问题以及应用现状综述
1. 涉及的问题
立体视觉方法采用两台摄像机模拟人类双眼处理景物的方式,从两个视点观察同一场景,获得不同视角下的一对图像,然后通过左右图像间的匹配点,恢复出场景中目标物体的几何形状和位置等三维信息。该项技术在机器人视觉、车辆自主驾驶、多自由度机械装置控制、非接触自动在线检测等领域均具有很大的应用价值。
四、 在三维重建中的关键问题
1 结合相关理论,计算相机的外部参数和内部参数
2 利用对极几何和因式分解构建稀疏点云,恢复三维拍摄场景
上图为从两个不同视角的图像,利用对极几何能计算得到相机到目标物的相对位置
3 把稀疏点云变换未稠密点云
4 根据泊松分布算法将稠密点云生成网格模型
5 映射纹理信息到网格模型
五、 具体解决方案
1. 计算相机的外部参数和内部参数
(1)搭建多视觉图像采集装置,主要通过无人机搭载摄像仪器构成整个采集装置
(2)采取了一种360°的全景视觉采集方式来获取多视觉图像数据,如图5.1所示为采集方式
图5.1
(3)根据摄像机成像模型,, 由以下公式计算相机的内部参数以及外部参数
⎡f x
X =⎢0⎢⎢⎣0γf y
0u 0⎤v 0⎥⎥
1⎥⎦
式中f x 表示在x 方向的坐标,f y 表示在y 方向的坐标,u 0, v 0表示坐标原点抽线与相机的交点坐标,γ表示斜率
(4)利用差分形态分解特征检测和描述算法,通过构建金字塔尺度空间去除噪声,在不同的尺度图像上运用Harris 算子,检测特征点
(5)根据预测,将要处理的数据量有高达1010数量级,因此需要对数据进行优化和降维处理,拟采用一种基于序惯性概率检测以及局部游湖技术的随机抽样一致性算法,简化模型计算的数据量提高精度
(6)对简化后的数据进行特征描述。由于Harris 特征点在空间中是线性的,因此利用DMD 构造金字塔尺度空间,在不同尺度图像上运用Harris 算子进行分组局部检测,容纳后在用PCA-SIFT 方法对特征算子进行描述和匹配
步骤1:对一幅图像f 运用差分形态分解构造尺度空间金字塔{go , .... ., g} ; f}每层的尺度大小为递增式排列,利用尺度预选择,建立尺度空间描述,考是连续层之间的尺度因子,设置为1.2。形态结构元大小最初常设置为6-12,增长到24-48结束。形态结构元大小最初设置为9,进行结构元形态的开运算,最终为39结束。然后,在不同的尺度图像上运用Harris-Laplace 算子,在尺度S ,层,此尺度下图像结构信息保留在尺度图像上。同时由于噪声在空间上无法重构,保留在最开始的分解层。而除g 。层外的其它层不会出现噪声并保存边缘信息,因此在提取特征前并不需要低通滤波处理。Harris 角点算子可直接每层的尺度图像上。
步骤2:金字塔尺度空间包含许多不同尺度的层,表示同样的局部结构特征点在不同层的尺度空间上有着稍不一样的位置和尺度。本文跟踪检测到的兴趣点并将它们分为不同的组,确保每组特征点只描述图像的一个局部结构。此时,就需要在每组特征点内选取最佳特征点来表行征图像局部结构。但是随着尺度的增加,在不同尺度图像中的特征点可能分布得十分的靠近,这导致如何正确对特征点进行分组,每组描述一个局部结构。然而,通过大量的实验发现,描述同一局部结构的特征点总是集聚在一定的尺度范围,并在相邻层的尺度图像上两个描述同一局部结构特征点的距离一般在1-3个像素之间。
步骤3:为了用最具特征的点来描述一个局部的结构,在每一组中本文根据空域内变化最强的角点值,同时加上尺度域的LoG 值来选择唯一的特征点,取代组中的其它特征点。对每一组的所有点比较角点度量值,假设在第i 组中有n 个特征点,定义为groupi { p1 , ......, pn },对应的角点度量值为{Corners,......, Come n }。选择具有最大的角点度量值的点,也即为图像的局部结构在一定范围的尺度空间层中找到特征最强的角点。这意味着在同一组中确保选择的点相比其它的点更接近真实的角点,选择点不论从视觉上,还是空间域上都可以十分精确的描述真实角点。而且,选择点越接近真实的角点,该点越接近灰度值变化强烈的区域,本文知道包含高亮度变化像素的区域一定包含图像非常多的信息,在所选择点周围的局部区域,本文构造了更具特征的描述算子。
同时,用规格化的LoG 算子来检验获得的侯选特征点,是否是尺度域内的局部最大值。如果LoG 得到局部的最大值,本文则认为对应的侯选点即为最终的特征点。如下所示:
NL =σD 2|∂2G (x , y , σp )
∂x 2+∂2G (x , y , σp ) ∂y 2|⨯I (x , y )
其中,NL (x , y , σn ) >NL (x , y , σj ), I ∈{n -1, n +1}
步骤4:通过上述算法提取到特征点后再进行描述,选用SIFT 描述子进行描述,因为在背景杂乱以及光照变化都具有很强的鲁棒性,它对特征周围一定区域内的像素点梯度的模值和方向用三维直方图进行统计,统计时对关键点附近4X4个子区域都计算8个方向直方图,最终形成128维特征向量。再用主成分析法对128维降到20维。最后进行匹配。
2. 三维建模
(1)输入通过特征检测和特征匹配得到的对应点,用经典的7点和8点算法求解基础矩阵,得到相机的所有参数(具体基础矩阵的解法参见论文53页)。
(2)无组织图像的表面重建(构建稠密点云,以及网格化):首先针对稠密的三维点云,本文构建一个传统的纹理映射网格来实现场景表面重建。本文方法的第一步是根据各幅图像计算出与之相关的深度图,假定己知的摄像机的位置和方向,在深度图中的每个像素可以反投影到一个普通的三维空间中,产生数百万个点组成的一个稠密三维点云。根据这些点云,本文采用泊松表面重建算法,重建出场景的表面网格模型,然后将图像纹理投影到表面网格上完成场景的表面重建。其次,由未标定的图像序列进行三维重建,得到的是稀疏三维点云。稀疏点云对计算和跟踪摄像机位置来说足够,但不能准确、真实重建出场景或场景中对象,不具有可视化效果。为了解决此问题,本章基于物方面元的多视图立体视觉(Patch-Based Multiview Stereo PMVS)准稠密算法,提出了改进的PMVS 算法。本文在PMVS 原算法的Patch 扩展过程中,加入几何空间约束及自适应扩展算法,用较少的图像序列即可生成鲁棒、精确的几何估计,得到高稠密的三维点云,然后进行表面重建,得到真实感的场景或场景对象的三维模型。本章最后,对自然界中最为常见的树进行几何和多视图图像的建模。
基于未标定多视角航拍图像的三维重建
一 、 任务与要求
本方案要求在搭建好的立体视觉的无人机平台的基础上,通过未标定的多视角图像重建3D 航拍模型,具体如下:
1. 查找相关文献,学习和掌握三维建模的方法
2. 掌握利用无人机采集高质量的航拍图像数据的方法
3. 通过C++,MATLAB 以及相关的点云处理库实习航拍场景的三维重建
二、 主要设备及材料
1. 无人机一架
2. 高像素摄像机一台
3. 有较强图像处理能力的PC 计算机一台
4. VS 和MATLAB 开发环境
三、 本方案涉及的问题以及应用现状综述
1. 涉及的问题
立体视觉方法采用两台摄像机模拟人类双眼处理景物的方式,从两个视点观察同一场景,获得不同视角下的一对图像,然后通过左右图像间的匹配点,恢复出场景中目标物体的几何形状和位置等三维信息。该项技术在机器人视觉、车辆自主驾驶、多自由度机械装置控制、非接触自动在线检测等领域均具有很大的应用价值。
四、 在三维重建中的关键问题
1 结合相关理论,计算相机的外部参数和内部参数
2 利用对极几何和因式分解构建稀疏点云,恢复三维拍摄场景
上图为从两个不同视角的图像,利用对极几何能计算得到相机到目标物的相对位置
3 把稀疏点云变换未稠密点云
4 根据泊松分布算法将稠密点云生成网格模型
5 映射纹理信息到网格模型
五、 具体解决方案
1. 计算相机的外部参数和内部参数
(1)搭建多视觉图像采集装置,主要通过无人机搭载摄像仪器构成整个采集装置
(2)采取了一种360°的全景视觉采集方式来获取多视觉图像数据,如图5.1所示为采集方式
图5.1
(3)根据摄像机成像模型,, 由以下公式计算相机的内部参数以及外部参数
⎡f x
X =⎢0⎢⎢⎣0γf y
0u 0⎤v 0⎥⎥
1⎥⎦
式中f x 表示在x 方向的坐标,f y 表示在y 方向的坐标,u 0, v 0表示坐标原点抽线与相机的交点坐标,γ表示斜率
(4)利用差分形态分解特征检测和描述算法,通过构建金字塔尺度空间去除噪声,在不同的尺度图像上运用Harris 算子,检测特征点
(5)根据预测,将要处理的数据量有高达1010数量级,因此需要对数据进行优化和降维处理,拟采用一种基于序惯性概率检测以及局部游湖技术的随机抽样一致性算法,简化模型计算的数据量提高精度
(6)对简化后的数据进行特征描述。由于Harris 特征点在空间中是线性的,因此利用DMD 构造金字塔尺度空间,在不同尺度图像上运用Harris 算子进行分组局部检测,容纳后在用PCA-SIFT 方法对特征算子进行描述和匹配
步骤1:对一幅图像f 运用差分形态分解构造尺度空间金字塔{go , .... ., g} ; f}每层的尺度大小为递增式排列,利用尺度预选择,建立尺度空间描述,考是连续层之间的尺度因子,设置为1.2。形态结构元大小最初常设置为6-12,增长到24-48结束。形态结构元大小最初设置为9,进行结构元形态的开运算,最终为39结束。然后,在不同的尺度图像上运用Harris-Laplace 算子,在尺度S ,层,此尺度下图像结构信息保留在尺度图像上。同时由于噪声在空间上无法重构,保留在最开始的分解层。而除g 。层外的其它层不会出现噪声并保存边缘信息,因此在提取特征前并不需要低通滤波处理。Harris 角点算子可直接每层的尺度图像上。
步骤2:金字塔尺度空间包含许多不同尺度的层,表示同样的局部结构特征点在不同层的尺度空间上有着稍不一样的位置和尺度。本文跟踪检测到的兴趣点并将它们分为不同的组,确保每组特征点只描述图像的一个局部结构。此时,就需要在每组特征点内选取最佳特征点来表行征图像局部结构。但是随着尺度的增加,在不同尺度图像中的特征点可能分布得十分的靠近,这导致如何正确对特征点进行分组,每组描述一个局部结构。然而,通过大量的实验发现,描述同一局部结构的特征点总是集聚在一定的尺度范围,并在相邻层的尺度图像上两个描述同一局部结构特征点的距离一般在1-3个像素之间。
步骤3:为了用最具特征的点来描述一个局部的结构,在每一组中本文根据空域内变化最强的角点值,同时加上尺度域的LoG 值来选择唯一的特征点,取代组中的其它特征点。对每一组的所有点比较角点度量值,假设在第i 组中有n 个特征点,定义为groupi { p1 , ......, pn },对应的角点度量值为{Corners,......, Come n }。选择具有最大的角点度量值的点,也即为图像的局部结构在一定范围的尺度空间层中找到特征最强的角点。这意味着在同一组中确保选择的点相比其它的点更接近真实的角点,选择点不论从视觉上,还是空间域上都可以十分精确的描述真实角点。而且,选择点越接近真实的角点,该点越接近灰度值变化强烈的区域,本文知道包含高亮度变化像素的区域一定包含图像非常多的信息,在所选择点周围的局部区域,本文构造了更具特征的描述算子。
同时,用规格化的LoG 算子来检验获得的侯选特征点,是否是尺度域内的局部最大值。如果LoG 得到局部的最大值,本文则认为对应的侯选点即为最终的特征点。如下所示:
NL =σD 2|∂2G (x , y , σp )
∂x 2+∂2G (x , y , σp ) ∂y 2|⨯I (x , y )
其中,NL (x , y , σn ) >NL (x , y , σj ), I ∈{n -1, n +1}
步骤4:通过上述算法提取到特征点后再进行描述,选用SIFT 描述子进行描述,因为在背景杂乱以及光照变化都具有很强的鲁棒性,它对特征周围一定区域内的像素点梯度的模值和方向用三维直方图进行统计,统计时对关键点附近4X4个子区域都计算8个方向直方图,最终形成128维特征向量。再用主成分析法对128维降到20维。最后进行匹配。
2. 三维建模
(1)输入通过特征检测和特征匹配得到的对应点,用经典的7点和8点算法求解基础矩阵,得到相机的所有参数(具体基础矩阵的解法参见论文53页)。
(2)无组织图像的表面重建(构建稠密点云,以及网格化):首先针对稠密的三维点云,本文构建一个传统的纹理映射网格来实现场景表面重建。本文方法的第一步是根据各幅图像计算出与之相关的深度图,假定己知的摄像机的位置和方向,在深度图中的每个像素可以反投影到一个普通的三维空间中,产生数百万个点组成的一个稠密三维点云。根据这些点云,本文采用泊松表面重建算法,重建出场景的表面网格模型,然后将图像纹理投影到表面网格上完成场景的表面重建。其次,由未标定的图像序列进行三维重建,得到的是稀疏三维点云。稀疏点云对计算和跟踪摄像机位置来说足够,但不能准确、真实重建出场景或场景中对象,不具有可视化效果。为了解决此问题,本章基于物方面元的多视图立体视觉(Patch-Based Multiview Stereo PMVS)准稠密算法,提出了改进的PMVS 算法。本文在PMVS 原算法的Patch 扩展过程中,加入几何空间约束及自适应扩展算法,用较少的图像序列即可生成鲁棒、精确的几何估计,得到高稠密的三维点云,然后进行表面重建,得到真实感的场景或场景对象的三维模型。本章最后,对自然界中最为常见的树进行几何和多视图图像的建模。