2. 中国科学院大学,北京 100049
2. University of Chinese Academy of Sciences, Beijing 100049, China
SLAM系统作为解决智能设备自主导航问题的主要技术,在近几十年得到了机器人和计算机视觉领域众多学者的关注.现实环境中经常出现的模糊、遮挡、动态目标、明暗变化等因素很大程度上影响了视觉SLAM技术的应用[1-4].目前市面上常见的相机无法达到很高的拍摄帧率,在相机快速运动时会很容易获取到模糊的图像.模糊图像中的特征会包含比较大的位置误差,使SLAM系统所获取信息的精度降低,进而影响全局稳定性和精度.解决运动模糊问题是基于这一些设备所进行的SLAM系统要面对的首要挑战.现有的应对模糊问题的算法主要分为三个思路:计算模糊核[5-10]、提取高级特征[11-12]、筛除部分帧[13-17].模糊核迭代估计的计算复杂度通常较高,耗时较多;而因为运动模糊自身的特性,提取高级特征的方法效果不理想.因此,在移动端、无人机、嵌入式设备等处理性能有限的平台上,基于帧筛除的算法成为比较合理的运动去模糊应对方案.
目前的一些帧筛除算法所使用的模糊表达参数,往往对场景、相机运动方式等有着各自的限制,这使算法的应用范围变窄,另一方面,现有参数的计算一般基于全图像素,这在图像较大时需要很大的计算量.Zhao等[13]在模糊图像梯度相对更小的假设之下,设计全图每个像素梯度的平均水平Small Image Gradient Distribution(SIGD)为模糊参数.该方法计算量较大,且对于场景较简单的图像效果不佳.Wu等[15]设计图像中边的平均扩散距离为模糊衡量参数,但因仅考虑了图像水平方向的模糊,在相机有一定旋转时效果有限,而且同样会受到场景本身的影响.
本文提出的EBL-帧筛除算法从成像与模糊误差的联系入手,通过深入的分析,建立了像素坐标差与模糊误差的关系.因为从相机运动的角度考虑,所以几乎不受图像本身内容的影响,同时仅利用匹配特征间像素坐标的差异来计算模糊参数,因此计算量较小,方便快捷.
1 EBL-帧筛除算法传统的一些模糊表达参数的设计主要利用了模糊图像灰度梯度小、物体边界有重影等特点,往往存在着计算量大、环境依赖度高、限制相机运动方式等缺点,而本文设计的EBL模糊参数以特征为计算单元,缩减了计算范围,使模糊参数免受非特征区域的影响.同时从模糊产生原理出发,合理利用了曝光时间内特征坐标变化与模糊误差的对应关系,使模糊参数的计算不会影响SLAM系统的正常运行,而又能对图像的模糊程度有精确地表达.
1.1 模糊分析前端采集到的图像有时会有模糊,这种模糊多由相机快速运动产生.如式(1)所示,t为曝光时间(ms),I(t)为积分路径上像素的灰度值,则在相机快速运动时,获取的图像灰度值II为曝光时间内所经路径上的灰度积分结果.
$ I_{I}=\frac{1}{t} \int I(t) \mathrm{d} t. $ | (1) |
曝光路径越长意味着真实像素值被平均的程度越高,从图中提取出的特征的像素位置也会包含更大的高斯模糊误差.相机拍摄包括曝光与读取两个阶段,其中曝光时间的长度影响模糊路径的距离.经过细致的观察与实验验证,令S1,S2分别为图像上读取与曝光时间内特征的运动路径距离,以B(blur)为观测坐标中包含的模糊误差,则如式(2)所示,
$ S_{2} \propto B. $ | (2) |
曝光时间内的路径长度与模糊误差成正比,这说明模糊距离可作为模糊误差的一个度量指标.
1.2 EBL模糊参数对于空间中目标而言,持续获取到的信息是相机处于不同位姿T时,三维目标P在二维成像平面上包含了高斯模糊的投影(u, v),式(3)、(4)表达了上述过程,其中K为相机内参,Z为目标景深.相邻两张图像中,相匹配的特征点的像素坐标的差异(u2-u1, v2-v1)由特征的坐标提取误差及相机在两次曝光结束之间的拍摄位置的改变产生.在曝光时间固定的情况下,相机的平移与旋转使不同位置的空间目标在成像平面上有着不同方向和长度的模糊路径,进而产生不同的模糊误差.
$ Z\left( {\begin{array}{*{20}{l}} {{u_2}}\\ {{v_2}}\\ 1 \end{array}} \right) = K\;{T_2}\;P, $ | (3) |
$ Z\left( {\begin{array}{*{20}{l}} {{u_1}}\\ {{v_1}}\\ 1 \end{array}} \right) = K\;{T_1}\;P. $ | (4) |
相邻两帧中特征的像素坐标的整体移动可分为曝光时间t2以及非曝光时间t1的移动,因为拍摄间隔通常保持在30 ms以内,因此相机移动造成的特征点像素坐标的移动路径可近似视为一条直线,同时可认为相机在拍摄间隔内呈匀速运动.因此特征点像素坐标在曝光时间t2内的移动方向与其整体移动一致,移动大小S2等于整体移动S乘以曝光时间所占比例r,以v表示相机的运动速度,则如式(5)所示,在一次拍摄中曝光时间比例r为常数的情况下,由式(2)可知S2与B成正比,进而可得出整体移动S与模糊误差B成正比.
$ S=\left(t_{1}+t_{2}\right) v=t_{2} v / r=S_{2} / r \propto B. $ | (5) |
在极短的时间内相机的运动方式变化较小,相邻两帧图像中匹配特征的像素坐标中包含的模糊误差的均值差异较小,而误差的标准差仅占整体移动的很小一部分,因此特征坐标提取误差对像素坐标差异影响有限.综上所述,如式(6)所示,当前帧中特征像素坐标所含模糊误差大小由其在曝光时间内的积分路径决定,而在极短的拍摄间隔内,特征点在图像坐标间的移动可近似视为一条直线,这意味着拍摄间隔内的整体移动S可由特征点在相邻图像上的移动向量的模来近似表达.通过计算相邻两帧匹配特征点的像素坐标的差值,可以得到特征点在第二幅图像中的模糊误差水平.
$ S \approx \sqrt{\left(u_{2}-u_{1}\right)^{2}+\left(v_{2}-v_{1}\right)^{2}} \propto B, $ | (6) |
$ E_{\mathrm{BL}}=\sum_{n} S^{i} / n. $ | (7) |
相机在整个拍摄过程中的运动是不均匀的,意味着不同帧中包含的模糊误差的大小有差异.在一些帧中,大多数特征点坐标包含了比较大的模糊误差,这会影响后续的空间点坐标估计精度、定位精度,使SLAM系统整体的误差增大.如式(7)所示,以帧中包含的所有特征点的像素坐标移动大小的均值来表示整帧的模糊误差,则每帧对应了各自的模糊程度数值Extend of Blur(EBL),它反映了整帧图像的平均模糊水平.
在帧筛除算法中使用EBL为模糊表达参数,构成EBL-帧模糊算法.在获取图像并计算每帧的模糊程度之后,以一定大小的窗口去除其中模糊最大的图像,则利用剩下的图像所进行的SLAM系统的精度和稳定性都会得到提高.
2 实验与分析 2.1 曝光距离与模糊误差为了探究曝光距离与模糊误差大小的关系,对几幅清晰图像添加不同曝光距离的运动模糊,并计算匹配特征点间的像素坐标移动,观察不同曝光距离下的模糊误差表现.实验流程如图 1所示.首先选取多幅清晰度很高的图像作为对真实环境的模拟,给图像分别添加不同曝光距离的水平、垂直模糊误差.计算出的高斯模糊误差大小如图 2所示.
按照曝光距离,分别对模糊前后的图像进行匹配,并计算出误差大小.将多幅图像中同一曝光距离的误差数据整合在一起,并用多组曝光距离与模糊误差的对应值来探究两者之间的关系.实验结果如表 1所示.
根据表格可知,如式(8)、(9)所示,模糊误差的高斯分布均值μ和标准差σ与该点曝光距离近似成正比,
$ \mu \propto \text { Exposure distance }, $ | (8) |
$ \sigma \propto \text { Exposure distance. } $ | (9) |
Distance/μ基本保持在2.1左右,而Distance/σ基本保持在7左右,这说明曝光距离可作为模糊误差大小的指标,是EBL参数有效性的前提.
2.2 EBL-帧筛除算法实验实验采用TUM的Feriburg1_desk和Feriburg1_desk2数据集[18],其中Feriburg1_desk共包含613张经过几何校正的包含较大模糊影响的室内序列图像.根据EBL参数计算出的帧模糊误差曲线如图 3所示.从图中可以看出,不同帧中的模糊误差有较大的差异.
实验流程如图 4所示,首先根据采集密度、场景的复杂度、精度稳定性要求等因素确定合理的窗口大小.窗口大小的设置要使筛除后图像间有足够的特征匹配(经验值为60个以上内点),过少的匹配点会增大噪声的影响,减少地图点数量,影响后续的重定位、回环检测等操作的效果.在应用算法之前,应先对环境的复杂度、相机的采集频率、可能的移动速度进行大概的评估,然后根据经验调整窗口大小参数以保证匹配特征数量足以使系统稳定地运行.
以数据集Feriburg1_desk采用的手持式摄像头为例,采集频率约为30帧/秒,采集环境为较复杂的办公桌,在大小约为2.5*1.3米的拍摄场景范围内以平均0.4米/秒的线速度,23度/秒的角速度进行运动.在多次试验之后,决定设置窗口大小为4和5.以窗口大小取4为例,对序列中的图像,依次取4帧为一组,在计算了匹配的特征点坐标差之后,得出代表每帧模糊程度的EBL参数,筛除其中EBL值最大的一帧,将剩下的3帧输入SLAM系统进行后续的操作,计算模糊参数时所得出的特征点的坐标与匹配关系可以在后续计算中直接利用.如图 5所示,四帧的EBL参数分别为8.14、12.7、24.7、15.9,因此值最大的图(e)将会被筛除,从图中也可看出图(e)模糊程度最高.
三维点云的匹配采用传统的迭代最近点算法(ICP)来完成,算法的主要思路是通过迭代计算,不断降低配准点间坐标差,最终得到满足全局最优的配准结果[19].在SLAM操作全部完成之后,将计算出的轨迹图与真实位姿利用CloudCompare软件进行全局的ICP匹配,得到每帧位姿的整体误差.图 6为应用算法前后相机运动轨迹对比.
从图中可以看出,EBL-帧筛除算法的结果的轨迹误差更小,整体精度更高.而以SIGD为模糊参数的结果优化程度有限,这是因为SIGD参数受环境复杂度的影响而没有很好地筛除出模糊最大的帧.未应用帧筛除算法的轨迹估计结果有较大的偏差,其中轨迹的左侧区域偏差最大,这部分图像的模糊程度也相对最高.运动模糊使提取出的特征点在图像中的坐标更趋向点运动的反方向,这意味着运动模糊会对真实环境进行一定程度的压缩,模糊程度越高,压缩效果越明显.应用了帧筛除算法之后,模糊程度降低,轨迹的偏差程度得到一定限制,整体误差减小.整体误差对比如图 7所示.
从EBL-帧筛除算法的结果可以看出整体误差有了比较明显的降低.将受模糊影响较大的帧筛除之后,参与计算的各种信息中包含的误差的整体水平得到降低,特征点的三维坐标以及相机的位姿估计的方差减小,进而整个系统趋于稳定,计算结果的精度得到提高.
对Feriburg1_desk2数据集的应用结果依旧证明了本文算法的有效性.但在相机移动速度持续性过快的时候,以4为窗口大小筛除图像使图像间重叠度变小,匹配特征点数量下降,进而一定程度上增大了误差.针对持续性的大模糊图像,窗口大小的选择应该兼顾图像间连接的稳定性.
整体误差对比如表 2和表 3所示.从表中可以看出,对于Feriburg1_desk数据集,应用算法后整体误差下降20%,意味着建模精度有了明显提升.窗口为4时的优化程度要比窗口为5时高,更小的窗口意味着会筛除更多的图像,可以更明显得降低整体的误差水平,但会在一定程度上减少生成地图点的数量,降低系统的稳定性,在实际应用时要结合应用目的调整窗口大小以达到稳定性与精度的均衡.
本文算法深入分析了模糊过程中两帧图像之间的关系,利用特征点的像素坐标,合理设计模糊参数.对于室内环境,每帧图像中特征点数量约300个,室外或无人机影像中特征点数量一般不超过1 000个.每帧图像的模糊参数的获取仅需要按照公式(6)计算特征点在相邻图像间的移动距离,而后对计算出的几百个值取平均即可,所需计算时间不到0.1 ms,因此几乎不影响SLAM进程的运行.在保证模糊表达精度的同时,仅需很小的计算量就可有效提升对运动模糊的鲁棒性.
3 结论本文通过探究帧间特征像素坐标差与模糊误差的关系,提出了EBL模糊表达参数,并与帧筛除算法结合构成EBL-帧筛除算法来提高SLAM系统的精度。实验表明,EBL-帧筛除算法可以有效提高定位与建模精度,减少运动模糊对系统的影响。特征的提取与匹配信息可以在后续被直接利用,而坐标差值的计算量极小,因此可以在几乎不增加计算量的情况下提高对运动模糊的鲁棒性。算法可以应用于处理性能有限的移动端、无人机等设备。
[1] |
FUENTES-PACHECO J, RUIZ-ASCENCIO J, MANUEL J. Visual simultaneous localization and mapping: A survey[J]. Artificial Intelligence Review, 2015, 43(1): 55. DOI:10.1007/s10462-012-9365-8 |
[2] |
TAKATOMI T, UCHIYAMA H, IKEDA S. Visual SLAM algorithms: A survey from 2010 to 2016[J]. IPSJ Transactions on Computer Vision and Applications, 2017, 9(1): 16. DOI:10.1186/s41074-017-0027-2 |
[3] |
刘浩敏, 章国锋, 鲍虎军. 基于单目视觉的同时定位与地图构建方法综述[J]. 计算机辅助设计与图形学学报, 2016, 28(6): 855. LIU Haomin, ZHANG Guofeng, BAO Hujun. A survey of monocular simultaneous localization and mapping[J]. Journal of Computer Aided Design and Computer Graphics, 2016, 28(6): 855. DOI:10.3969/j.issn.1003-9775.2016.06.001 |
[4] |
权美香, 朴松昊, 李国. 视觉SLAM综述[J]. 智能系统学报, 2016, 11(6): 768. QUAN Meixiang, PIAO Songhao, LI Guo. An overview of visual SLAM[J]. CAAI Transactions on Intelligent Systems, 2016, 11(6): 768. DOI:10.11992/tis.201607026 |
[5] |
PENDYALA S, RAMESHA P, VEER BNS A, et al. Blur detection and fast blind image deblurring[C]//2015 Annual Ieee India Conference. New Delhi: IEEE, 2015: 2325. DOI: 10.1109/INDICON.2015.7443562
|
[6] |
KIM T H, LEE K M. Generalized video deblurring for dynamic scenes[C]//2015 Ieee Conference on Computer Vision and Pattern Recognition. Boston: IEEE, 2015: 5426. DOI: 10.1109/CVPR.2015.7299181
|
[7] |
ATASHGAH A, GHOLAMPOUR P, MALAEK S. Integration of image de-blurring in an aerial mono-SLAM[J]. Proceedings of the Institution of Mechanical Engineers Part G Journal of Aerospace Engineering, 2014, 228(8): 1348. DOI:10.1177/0954410013491663 |
[8] |
RUSSO L O, AIRò FARULLA G, INDACO M, et al. Blurring prediction in monocular SLAM[J]. Design and Test Symposium, 2013, 1. DOI:10.1109/IDT.2013.6727095 |
[9] |
LEE H S, KWON J, LEE K M. Simultaneous localization, mapping and deblurring[C]//IEEE International Conference on Computer Vision. Barcelona: IEEE, 2011: 1203. DOI: 10.1109/ICCV.2011.6126370
|
[10] |
PRETTO A, MENEGATTI E, BENNEWITZ M, et al. A visual odometry framework robust to motion blur[C]//IEEE International Conference on Robotics and Automation. Kobe: IEEE, 2009: 1685. DOI: 10.1109/ROBOT.2009.5152447
|
[11] |
KLEIN G, MURRAY D. Improving the agility of keyframe-based SLAM[C]//European Conference on Computer Vision. Marseille: Springer, 2008: 802. DOI: 10.1007/978-3-540-88688-4_59
|
[12] |
GEE A P, CHEKHLOV D, CALWAY A, et al. Discovering higher level structure in visual SLAM[J]. Ieee Transactions on Robotics, 2008, 24(5): 980. DOI:10.1109/TRO.2008.2004641 |
[13] |
ZHAO Xiangmo, MIN Haigen, XU Zhigang, et al. Image antiblurring and statistic filter of feature space displacement: application to visual odometry for outdoor ground vehicle[J]. Journal of Sensors, 2018, 1. DOI:10.1155/2018/2987819 |
[14] |
ZHAO Haiying, LIU Yong, XIE Xiaojia, et al. Filtering based adaptive visual odometry sensor framework robust to blurred images[J]. Sensors, 2016, 16(7): 1040. DOI:10.3390/s16071040 |
[15] |
WU Junjun, GUAN Yisheng, SU Manjia, et al. A real-time method for detecting sharp images in visual navigation[C]//IEEE International Conference on Robotics and Biomimetics. Guang Zhou: IEEE, 2012: 884. DOI: 10.1109/ROBIO.2012.6491080
|
[16] |
NARVEKAR N D, KARAM L J. A no-reference image blur metric based on the cumulative probability of blur detection (CPBD)[J]. Ieee Transactions on Image Processing, 2011, 20(9): 2678. DOI:10.1109/TIP.2011.2131660 |
[17] |
FERZLI R, KARAM L J. A no-reference objective image sharpness metric based on the notion of just noticeable blur (JNB)[J]. Ieee Transactions on Image Processing, 2009, 18(4): 717. DOI:10.1109/TIP.2008.2011760 |
[18] |
Computer Vision Lab. TUM datasets[DB/OL]. 2013-05-03. https://vision.in.tum.de/
|
[19] |
胡章芳, 漆保凌, 罗元, 等. V-SLAM中点云配准算法改进及移动机器人实验[J]. 哈尔滨工业大学学报, 2019, 51(1): 176. HU Zhangfang, QI Baoling, LUO Yuan, et al. Improved point cloud registration algorithm and mobile robot experiment in V-SLAM system[J]. Journal of Harbin Institute of Technology, 2019, 51(1): 176. DOI:10.11918/j.issn.0367-6234.201803102 |