孔庆博 何 丽 袁 亮 刘贝贝
(新疆大学机械工程学院 新疆 乌鲁木齐 830047)
三维重建技术在获取物体场景的图像或视频后,对其处理后可得到三维场景信息并完成物体重建[1],然后可对重建物体进行测量、检验、装配等工作。在三维重建测量技术中,如何有效地对离群点进行滤波剔除,以获得准确的点云图从而高效、精准地重建出目标物体三维模型,是能否进行后续工作的关键所在。国内外许多学者都对点云滤波算法进行了大量研究。文献[2]通过将采样点移动到其相对应的最小二乘曲面上来去除噪声,具有较好的鲁棒性;文献[3]通过Laplace-Beltrami算子生成一个平滑曲面来处理高频噪声;文献[4]利用对点模型进行二次拟合而构造出的三维模型特征因子,与双边滤波中的距离因子、相似度因子结合形成三边滤波器,利用所得滤波器对点模型的曲率、法向量和距离进行滤波;文献[5]针对特征点和非特征点噪声信息的不同,采用两种不同的双边滤波因子对其分别进行滤波,对三维模型特征的保留具有较好效果。以上方法虽都取得了一定效果,但都或多或少存在匹配效率低且重建耗时、不完整等问题。
本文以德国达姆施塔特工业大学开发的MVE开源工具为基础[6],针对目前点云滤波算法存在耗时长、效果差的问题,在稠密点云模型重建的过程中提出了一种改进的点云滤波算法,即将PMVS算法同统计分析法相融合,利用统计分析法对经由PMVS算法得到的稠密点云进行离群点的去除,从而在保证物体表面细节特征的情况下对离群点进行快速滤除,提高后期三维重建效率及精度,保证后期装配的准确度。
特征点是一个同周围图像点具有明显区别,且包含大量信息的图像点[7],只有通过特征点才可以重建出目标物体的三维模型,因此本文采用David Lowe提出的SIFT算法和Bay提出的SURF算法进行图像特征点的检测与匹配,以保证在边缘点处能够匹配到足够多的特征点数量。
SIFT算法是在基于不变量技术特征检测算法提出的一种基于尺度空间的,对图像旋转、缩放、仿射变换均保持不变性的特征检测匹配算法,因此SIFT算法具有对旋转、尺度变换、光度变化保持不变性,以及对视角变换、噪声保持一定稳定性的优点,该算法实现流程如下[7]:(1)尺度空间极值检测;(2)关键点定位;(3)方向定位;(4)特征描述子;(5)特征匹配。
SURF算法流程与SIFT算法大致相同但方法不同,采用海森矩阵(Hessian Matrix)行列式进行特征点检测并利用积分图加速运算,在构造SURF特征点描述子时选用64维向量表示[8]。虽然SURF算法在边缘检测方面不如Harris算法,但Harris算法不具备尺度不变性,提取到的特征点不具备特征描述符且在图像尺度、光照、噪声变化剧烈时,缺乏可靠的鲁棒性[9],因此选用匹配速度快且与SIFT算法相似的SURF算法进行二次特征匹配。
在完成图像的特征匹配后,需要对目标物体进行稀疏点云的重建,采用SFM法[10]对经由单目相机拍摄的无序图像进行稀疏三维点云重建,在相机参数和场景三维信息未知的情况下,通过迭代计算出相机矩阵及三维点坐标,得到初始重建结果后利用全局捆绑调整[11](Bundle Adjustment,BA)进行非线性优化,可使得误差均匀分布到各个图像中,得到更为精准的重建结果。
SFM法是一个迭代求解的过程,每一步都是先恢复相机的运动,再通过三角测量的方法恢复场景结构[12]。全局捆绑调整是一种无约束非线性最小二乘优化方法,通过调整多幅图像的相机参数和构造参数,以获得测量点与观察点之间的最小化误差,从而得到更为精准的重建结果。本文选用Levenberg-Marquardt(L-M)算法,其原理就是一种利用“信赖阈”的方法,当收敛速度较快时,信赖阈增大使算法偏向于牛顿法,反之偏向于最速下降法[13],具体过程如下:
▽2g(θt)δθ=-▽g(θt)
(1)
(2)
式中:λ代表信赖域半径,当其趋向于无穷大时,JT(θt)J(θt)δθ=-▽g(θt),则增量正规方程转变为牛顿法;反之当λ趋向于零时,δθ=-▽g(θt),则增量正规方程转变为最速下降法。
经由SFM法得到的稀疏三维点云是稀疏且低密度的,无法体现被重建物体的细节特征,因此还需要对稀疏点云进行稠密匹配算法以获得稠密点云模型。
本文采用由Furukawa等[14]提出的PMVS算法来实现稠密点云匹配。PMVS算法是一种基于空间path扩散的方法,该算法不需要任何的初始化,就能够准确、简单且高效地检测到外部点和障碍点并予以排除。采用“匹配—扩张—滤波”的重建流程[7],其中扩张和滤波这两步骤交替迭代进行,从可信度较高的区域开始,在匹配阶段对未匹配区域采用光度一致性约束,在滤波阶段利用可视性约束去除错误匹配,由此不断扩张最终获得稠密的三维点云模型。但本文在利用PMVS算法进行小范围场景稠密点云重建时发现,得到的稠密点云模型存在大量离群点,影响后期三维重建效果,因此本文提出一种改进的点云滤波法,即在PMVS算法中融合统计分析法以去除离群点。
利用统计分析法消除离群点的原理就是对每一个点的邻域进行统计分析,去除不满足要求的点[15],具体方法为计算输入数据中每一个点到它所有邻近点的平均距离,假设得到的是一个形状由均值和标准差决定的高斯分布[16]:
(3)
式中:k代表邻近点个数;di表示某一点到它所有邻近点的距离;D为符合高斯分布的平均距离。设定标准范围S,则平均距离在标准范围之外的点可被定义为离群点并剔除,如图1中的b点。
S=μ±gσg=1,2,…
(4)
式中:μ为均值;σ为标准差。
图1 统计分析滤波法[16]
本实验选用智能手机摄像头对目标物体旋转一周进行拍摄,旋转拍摄照片时只需获取物体表面信息即可,对旋转角度没有严格的要求,既不用固定拍摄位置,也无须固定旋转角度,但前后两幅照片的旋转角度不宜过大,否则难以获取足够的特征点进行匹配;对于拍摄所得照片无须做任何处理,以方便从可交换图像文件中读取Exif初始值,从而获得像素、焦距等信息,省略了相机标定过程。本实验平台布局如图2所示,图3为拍摄的部分物体图像。
图2 实验平台布局
图3 部分拍摄图像
在得到大量无序图像后,即可利用MVE开源工具进行三维重建实验,最终在MeshLab中对稠密三维点云模型进行泊松表面重建以得到最终的重建结果。
首先进行目标物体特征点的检测与匹配工作,以图3中减速器上箱体的两幅图像为例,利用SIFT算法对图像进行特征点的匹配,结果如图4所示。
图4 SIFT特征点匹配结果
在利用SIFT算法进行特征点的检测与匹配后,经统计共提取匹配到211对特征点,可以看出经由该算法处理后的图像匹配点较多且对应较准确,但对于目标物体边缘点的匹配不够明显,会对三维重建的结果产生影响,因此利用SURF算法进行二次匹配,如图5所示。
图5 SURF特征点的匹配结果
图5中,经统计利用SURF算法共提取匹配到162对特征点,虽然匹配点对数少于经SIFT算法提取得到的特征点对数,但匹配效率高且在边缘点处的匹配效果优于SIFT算法,因此将二者的匹配结果融合作为最终的匹配结果,如图6所示。
图6 最终的匹配结果
在完成所有图像的特征点匹配后,可通过SFM法得到目标物体的稀疏三维点云模型,如图7所示。
图7 稀疏三维点云模型
可以看出,经SFM法得到的稀疏点云虽然能够对物体的外部轮廓进行大致描述,但无法清晰地描述出细节特征,因此还需要对物体进行稠密点云重建,利用PMVS算法可重建出物体的稠密点云模型,如图8所示。
图8 稠密点云模型
可以看出,经由PMVS算法得出的稠密点云模型基本体现了目标物体的三维表面,一些细节特征也得以展现。但是因为在拍摄过程中设备或外界环境等多方面因素所造成的影响,在重建模型中出现了大量离群点,离群点的存在会影响物体局部表面特征的估计以及点云的融合匹配,最终会使重建结果产生很大误差。
利用融合点云滤波算法重建的稠密点云模型如图9所示。
图9 优化后的稠密点云图
可看出,利用融合算法得到的稠密点云较PMVS算法得到的要更加清晰,通过MeshLab统计可知特征点数量由最初的8 181 719下降至7 459 633,不仅剔除了大量离群点,还在一定程度上对冗余点进行了消除。
在得到优化前后的稠密点云图后,利用MeshLab可得到泊松表面重建结果,以用来佐证重建物体表面细节特征上的提升。重建对比结果如图10所示。
(a) 优化前泊松表面重建结果
可以看出,经过优化后的重建结果在细节表现上比优化前的更加突出,而且因为离群点的去除大大减少了对错误匹配的重建,使得目标物体在细节处的体现更加清晰完整,通过表1可以更加直观地看出前后差异。
表1 优化前后泊松表面重建对比结果
优化后表面重建时间虽然比优化前耗费了更多,但在顶点数量以及面片数量上要远远高于优化前,由此更加证明了优化后的重建结果在细节处理上要比优化前更加精准、全面。同样可得到优化后下箱体的泊松表面重建结果,如图11所示。
图11 下箱体优化后泊松表面重建结果
在得到上、下箱体的三维重建模型后,可在MeshLab中进行三维测量以确保装配准确度。因重建物体与实际物体间存在比例关系,所以首先通过实际物体宽度l1与重建物体宽度l2之比获得比例因子k,则有:
(5)
利用比例因子k以及上、下箱体的重建模型,可求出相应实际的理论长度,再与箱盖、箱体实际测量结果相对比可得出整体装配的准确度,以图12中的测量对象为例,对比结果如表2所示。
图12 测量检测对象
表2 三维重建测量结果cm
可以看出,该三维模型的求解结果同实际测量结果间的误差位于0.1~0.2 mm之间,符合减速器设计标准[17],证明本实验能够达到预期目标,最终的装配结果如图13所示。
图13 最终装配重建模型
本文针对PMVS算法在小范围场景稠密点云重建时,因拍摄过程中设备或外界环境等多方面不可避免因素的影响,导致最终得到的稠密点云模型存有大量离群点的现象,提出一种改进的点云滤波算法,即在PMVS算法的基础上融入统计分析法以去除离群点。实验证明,利用融合算法处理的点云模型,不仅剔除了大量离群点,还在保证目标物体细节特征的情况下对冗余的特征点进行一定程度的消除,再通过表面重建结果以及数据对比两方面的佐证,表明优化后的重建结果在细节处理上要比优化前的更加精准、全面,为下一步减速器的精准装配提供了保证。