2019年第38卷第9期传感器与微系统(Transducer and Microsystem Technologies)DOI:10.13873/J.1000—9787(2019)09—0019—05基于深度滤波器优化的SLAM单目稠密重建*杨海清,曾俊飞(浙江工业大学信息工程学院,浙江杭州310000)摘要:稠密重建问题是视觉同时定位与地图构建(SLAM)的重要环节,每一个像素点深度距离的准确测量对稠密重建都起到重要作用。
在工业应用中,往往使用RGB-D相机进行稠密重建,但是RGB-D相机有一些量程、应用范围和光照的限制。
因此,采用滤波器方式深度估计的单目相机,不仅可以保证SLAM实时性要求,同时还适用于室外、大场景等场合。
针对高斯滤波算法存在稠密重建准确率不高的问题,提出了一种基于簇的均匀—高斯深度滤波算法,采用改进的滤波算法处理错误匹配的像素点,在正确处理外点数据的基础上,解决深度值错误估计、相邻像素深度值相差过大的问题。
实验结果表明:改进型深度估计算法重建的稠密地图更加细致,且重建准确率提高了约30%。
关键词:稠密重建;视觉同时定位与地图构建(SLAM);单目相机;深度估计;高斯分布中图分类号:TP391文献标识码:A文章编号:1000—9787(2019)09—0019—05SLAM monocular dense reconstruction based on depthfilter optimization*YANG Haiqing,ZENG Junfei(College of Information Engineering,Zhejiang University of Technology,Hangzhou310000,China)Abstract:Dense reconstruction is a significant component of visual simultaneous localization and mapping(SLAM).Accurate measurement of depth distance of each pixel point plays a crucial role in dense reconstruction.In industrial applications,the RGB-D camera is generally utilized for dense reconstruction;however,the RGB-Dcamera still remain certain unavoidable shortcomings,i.e.,small measuring range,narrow application scope,andhigh sensitivity to illumination.Hence,the depth estimation of the monocular camera with filter mode not onlyguarantees the real-time requirement of SLAM,but also be suitable for outdoor and large scenarios.A cluster-baseduniform Gauss distributed depth filtering algorithm is used to overcome the difficulty that the dense reconstructionof the deep filtering under the Gauss distribution hypothesis with an unsatisfactory accuracy.The improvedalgorithm is adopted to deal with the mismatched pixels point,and also significantly robust against outliers.Inaddition,on the basis of correctly processing the outliers data,the problem of depth value estimation error and bigdifference of adjacent pixel depth value is solved.The experimental results show that the improved depth estimationalgorithm is more delicate in reconstruction of dense maps,and the reconstruction accuracy is improved by about30%.Keywords:dense reconstruction;visual SLAM;monocular camera;depth estimation;Gauss distribution0引言同时定位与地图构建(simultaneous localization and mapping,SLAM)指搭载特定传感器的主体,在没有先验环境信息条件下,通过自身运动的过程来建立所处环境的空间模型,同时估计自身的运动轨迹。
当传感器为相机时,称之为“视觉SLAM”。
根据使用视觉传感器的数量和类型的不同,视觉SLAM系统主要可分为3类:单目视觉SLAM、多目视觉SLAM和RGB-D SLAM[1]。
重建稠密地图是视觉SLAM的两大目标之一,使用RGB-D相机进行地图重建是目前的主流方法[2],但是RGB-D相机存在测量范围窄、噪声大、视野小、易受日光干扰等诸多问题,主要适用于室内环境。
而双目相机的配置与标定较为复杂,其深度量程和精度受双目相机的基线与分辨率所限。
对此,本研究选用单目相机传感器,其结构简单,成本较低,环境适应性较强,且抗干扰能力显著。
当单目相机移动时图像会形成视差,利用视差可获取像素的深收稿日期:2018—09—10*基金项目:浙江省自然科学基金资助项目(LY13F010008);浙江省科技计划资助项目(2015F50009)91传感器与微系统第38卷度信息[3]。
因此,SLAM 系统使用了一种既节省计算量还可使估计的地图点更为准确的方法———深度滤波,通过深度滤波可计算出真实地图点最有可能存在的坐标位置[4]。
无论哪种工业机器人,想要完成准确跟踪定位、精确导航、实时避障和完美还原三维场景的任务,都需有高精度的稠密地图[5]。
但是,由于单目相机图像像素可能出现误匹配,且传感器噪声和环境噪声时刻存在,总是会形成一些误差极大甚至假的地图点,导致稠密地图重建准确率不高。
因此,为提高单目相机恢复原始场景的能力,本文提出了一种基于深度滤波器优化的稠密重建算法,旨在获取重建准确率更高、表面更加细腻的三维稠密地图。
1地图重建系统的总体框架系统的框架主要由三大部分组成,包括:关键帧选取与匹配像素点对、深度滤波技术和稠密建图。
具体模块如图1所示。
滤波器技术深度值优化建图三角测量法像素搜索与匹配关键帧数据图1地图重建系统总体框架首先,系统对关键帧数据进行极线搜索,采用像素块匹配策略来提高匹配准确率;其次,利用三角化测量获取像素的深度数据,使用滤波器技术对深度数据进行跟踪并融合,实现高效的场景重建;最后,本文综合考虑因光照、遮挡、运动模糊等原因引起的深度值错误估计,显式处理外点,采用优化后的算法对每一像素点的深度估计值进行监控,及时剔除异常深度值,对深度图中相邻像素深度变化过大的情况进一步判断与处理,保证稠密地图的重建准确性。
2基于深度滤波技术的稠密重建2.1稠密地图前端预处理重建稠密地图,需估计每一个像素点的深度值,如若利用地图中每个像素点的描述子进行匹配,会在前端阶段占用大量的工作时间,这在实时性要求较高的SLAM 系统里是不允许的。
因此,采用极线搜索[6]和块匹配技术[7]来确定第一幅图像中像素在其他关键帧的位置,如图2所示。
极线l 1平移向量td 射线图2极线搜索示意左边相机O 1观测到参考帧I R 存在像素点P R ,假设其深度存在的范围区域是最小值d min 到无穷大,即该像素点到对应空间点的距离为图2中的d 射线。
d 射线的投影在当前帧I C 上形成一条线,为极线l 1,在极线上比较每个像素与P R 的相似程度。
本研究采用比较像素块的方法,以提高像素匹配的区分性。
先在P R 周围选取一个w ˑw 大小矩形窗口W 1,再在极线l 1上取多个同样大小的矩阵块进行比较,把P R 周围的矩形窗口记为W 1∈R w ˑw,极线l 1上的n 个小块记为W i ∈R w ˑw (i =1,2,…,n )。
计算矩形窗口W 1与W i 的相似性,采用去均值的NCC 方法[8],即S (W 1,W i )=∑i ,j(W 1(i ,j )-W 1(i ,j ))(W i (i ,j )-W i (i ,j ))∑i ,j(W 1(i ,j )-W 1(i ,j ))2∑i ,j(W i (i ,j )-W i (i ,j ))2(1)式(1)的结果接近于0时表示两个矩阵块不相似,接近于1则代表相似。
此外,利用仿射矩阵获取到更佳的像素匹配结果[9],并由像素匹配点对估计出当前帧像素深度值,定义为d R P R =d C R P C +t (2)式中R 为旋转矩阵,t 为平移向量。
式(2)两端同时左乘P R 的反对称矩阵M 可求得当前帧像素深度d C 。
2.2基于均匀—高斯滤波的稠密重建算法前端预处理阶段提供深度初值,后端滤波器负责对这些数据进行深度融合。
均匀—高斯滤波算法[10]采用高斯滤波[11]跟均匀滤波相结合的方法,对同一空间点投射在不同关键帧的像素点深度值进行概率统计分析,不断融合更新深度图。
如图3所示。
d k +n +1融合d k +2d k +1d k融合融合融合Z k +nZ k +1Z k Z k -1更新更新图3深度图融合更新过程图3中,Z k -1是k -1时刻状态的深度值,d k 是k 时刻的深度估计值。
以此类推,可以获取k +n 时刻状态的深度值。
均匀—高斯滤波器算法模型如下P (μobs |μest ,p )=pN (μobs |μest ,σ2est )+(1-p )u (μobs |μmin ,μmax )(3)式中μest 和σ2est 分别为上一个状态的深度值和方差,μobs 和σ2obs 分别为新观测到的深度值和方差,μmax 和μmin 为像素点深度的最大值和最小值,p 为正确估计深度值的概率。