基于Retinex理论的稀疏直接法VSLAM三维重建

2021-08-05 02:33夏琳琳刘瑞敏
中国惯性技术学报 2021年2期
关键词:位姿三维重建闭环

夏琳琳,蒙 跃,王 策,刘瑞敏

(东北电力大学 自动化工程学院,吉林 132012)

近年来,基于视觉的同时定位与建图(Visual Simultaneous Localization and Mapping, VSLAM)促进了实时三维重建技术的发展。在单目重建领域,VSLAM 利用视觉传感器获取图像信息,可快速计算机器人相对运动位姿,使在线重建成为可能。与离线运动恢复结构(Structure From Motion, SFM)[1]思想相比,更具应用前景[2]。

对于基于VSLAM 的实时三维重建而言,提高图像的输入质量并处理是进行有效三维重建的前提[3],然而,室内场景普遍存在低光照、光照不均等问题,所获取的图像对比度低,极大地增加了VSLAM 前端特征点提取与匹配的难度。2016 年开源的单目稀疏直接法里程计(Direct Sparse Odometry, DSO)采用最小化光度误差来寻求图像中点与点的对应关系,在以连续帧取得同一物体成像的过程中,考虑对相机进行光度标定[4]。然而,突出的环境光强变化问题会影响到DSO 视觉子系统的工作。基于此,本文提出由基于入射-反射模型的Retinex 理论[5],构建一个自适应的图像增强模型,针对室内光线不均、不平衡问题,对图像不同区域进行OSTU 动态阈值分割判别,以图像预处理思想替代DSO 的光度标定。

为了消除位姿漂移累积误差的问题,本文旨在开发一类基于稀疏直接法单尺度Retinex 的SLAM 系统(Retinex DSO with loop closure detection, RDSOL)。设计上继承了DSO 的主体框架。

主旨设计包括:一、对图像进行光度矫正以解决光照不均带来的影响,提高SLAM算法鲁棒性的同时,避免传统DSO 光度标定的时间消耗,提升三维重建的速度。二、提出一种闭环检测策略,利用该策略对关键帧的图像特征点进行提取并构建词袋(Bag-of-Words,BoW),通过词袋判断两帧之间的相似度,实现闭环检测。三、进行全局位姿图优化,减少机器人运动过程帧间递推的累积误差,最终构建出全局一致的三维稠密点云地图。

1 RDSOL 系统框架

所设计的RDSOL 系统框架如图1 所示,整个系统可划分为3 个模块。在图像预处理模块,相机获取新图像时,首先对图像进行OTSU 二值化处理并统计其灰度值,以判断当前场景的光照是否均匀、是否需进行单尺度Retinex(Single Scale Retinex, SSR)图像增强。

图1 RDSOL 系统框架 Fig.1 RDSOL framework

后端模块继承了DSO 的典型功能,即使用一个由若干系统关键帧组成的滑动窗口(Sliding Window)[6]组成优化后端,采用边缘化策略,对关键帧中的路标点和相机进行联合优化,并将优化过程限制在有限的关键帧窗口中。

闭环检测关系到估计的轨迹和地图在长时间下的正确性[7]。在闭环检测模块,本文提出一种将ORB 特征与原始点选择策略结合的匹配方法,并通过TUM数据集、KITTI 数据集及实际场景测试,验证闭环轨迹效果。以下详尽探讨各模块中算法的设计与实现。

2 算法设计与实现

2.1 位姿估计

室内场景存在明暗变化,在确保不形成局部图像梯度的条件下,RDSOL 采集图像特征点位置及像素灰度信息,利用直接法最小化特征块重投影光度误差来优化相机的位姿,其计算过程如下:

设Ii、Ij为相邻两帧图像,若将第i帧中点p投影到第j帧,则其最小化光度误差函数Epj为:

式中,R、t分别为相机的旋转矩阵和平移向量,由两帧之间计算可得;∏c、分别表示重投影、逆重投影变换。

2.2 单尺度Retinex 图像增强

室内场景需布置光源来确保光照。相机在图像采集过程中,因环境光照不佳或物体表面采光不均等原因,常呈现图像光照不均问题。直接法位姿估计以像素灰度值为参考,为确保灰度值准确性,DSO 采用光度标定来矫正光照不均[8]。然而,光度标定需固定场景,使相机在不同曝光时间下,重复拍照获得一系列图像,此过程耗时巨大,且仅在当前环境有效。即使基于精细的相机成像模型,若环境不同,或环境相同场景不同,都难以准确标定成像过程中的光度参数,实现图像亮度值的校正。

由于 DSO 的光度标定实现条件苛刻,为使RDSOL 具有普遍适用性,本文采用分类判断且有针对性的单尺度Retinex 图像增强策略(因所获图像所有区域的光照并非都不均匀)用于图像预处理阶段。

图像的分类判断与处理基于全局二值化算法OTSU[9],即统计整个图像的直方图特性以自动选取二值化阈值。具体地,对图像灰度级0~255 进行遍历搜索,若灰度值为某个值的时候,前景和背景的方差最大(类间方差最大),则当前图像灰度值便是所求阈值T。利用该阈值T对子图像进行分类:当T>图像灰度时,判定某区域图像光照均匀;当T<图像灰度时,判定某区域图像光照不均,需进行Retinex 图像增强。

Retinex 是一种以色感一致性为基础的图像增强方法,其目的是在获取输入图像原始信息 I( x,y) 后,计算出光源照射的入射分量L( x,y),通过对L( x,y)的滤除来减少光照不平衡的影响,获得被测物体原本的反射分量 R(x,y)。具体原理为:

式中,(x,y)为输入图像的每个点。

本文采用单尺度Retinex 算法求解R(x,y),即[10]:

式中,i表示第i个颜色通道,分为红色、绿色和蓝色三通道,分别代表物体对长波、中波和短波光线的反射能力;*表示卷积运算;F(x,y)为高斯平滑函数,其表达式为:

式中,K为归一化常数,满足∫∫F(x,y)dxdy=1;C是函数所选的尺度参数。

Retinex 算法通过形态学闭合的方式,弥补了图像细节的损失,使得高质量的图像输出更利于后续SLAM 光流跟踪及图像特征提取。为便于说明,在此做了一组光照对比实验,如图2 所示。

图2 室内图像增强效果Fig.2 Indoor image enhancement results

图2(a)为某实验室的真实场景,由于光照不均匀,场景上存在明显的背光现象。随着相机的运动,由于无法将新的特征点加入到构建的地图中,地图无法随相机视角的前移而进行拓展,SLAM 系统无法继续运行。对图2(a)红色框选中的过亮(灰度值较高)部分进行还原,获得单尺度Retinex 处理后的图2(c),并分别绘制两图像的灰度分布直方图,如图2(b)、图2(d)所示。可以看出,图2(c)的亮度更为均衡,图2(d)的像素个数随亮度的分布呈现更为均匀,表明Retinex算法有效提高了低光照条件下室内图像的颜色细节、保真度、对比度和清晰度,使得增强后的图像视觉效果和梯度变换明显改善,更利于SLAM 后端的像素追踪与闭环检测特征点提取。

2.3 闭环检测

本文将ORB-SLAM 中基于图像特征描述子的闭环检测策略与DSO 结合,提出一种将ORB 特征与原始点选择策略结合的匹配方法,其核心思想是将原始图像进行向下采样得到不同分辨率的图像金字塔,然后对不同层的图像金字塔并行进行ORB 特征提取与DSO 梯度点提取,该方法在高效提取图像梯度的同时,确保了所提取的特征匹配描述子的尺度不变性,提高了特征匹配的精度。当确定了相应的闭合环路特征描述子之后,计算历史帧与闭环候选帧之间的位姿变换。将位姿转换到相似变换群Sim(3)上,并利用相似变换位姿图进行全局优化,进而分散累积误差,消除其对系统的影响。RDSOL 闭环检测框架如图3 所示。

图3 闭环检测框架Fig.3 Designed loop closure detection framework

在闭环检测模块中,对每一个新的图像帧进行预处理,筛选出关键帧和普通帧,结合前文所提到的直接法由关键帧估计相机位姿。同时,利用算法为每个关键帧计算ORB 描述符并将其转化为词向量,使用开源词袋模型DBoW3 构建词袋数据库BoW,通过查询BoW 为当前关键帧选取闭环匹配子(从被边缘化的关键帧中选取)。对于每个匹配子,在获得精确3D信息之后,将当前帧与窗口中所有关键帧进行匹配,最终得到地图中3D 点和当前帧中2D点之间的匹配关系。本文利用EPnP 计算相机位姿,并采用随机采样一致性(RANSAC)算法[11]剔除离群点。在计算出初始 SE(3)变化后,建立闭环误差模型,使用Gauss-Newton 法对其迭代优化,并将校正后Sim(3)上的位姿转换至特殊欧式群SE(3)。所定义的闭环误差项为:

式中,p'uv为当前帧中匹配点坐标,d-1为其逆深度值;puv为闭环候选帧中匹配点坐标;c∏为当前帧的重投影变换,为闭环候选帧的逆重投影变换;Scr为两帧之间的相似变换。

3 实验结果与分析

本节设计了多组实验,展示RDSOL 系统的闭环检测精度、光度增强的速度优势及低纹理环境下Retinex 光度增强对特征提取的积极效果。数据集及实际场景实验均在PC机上采用Ubuntu16.04的环境运行,平台参数如表1 所示。

表1 运行平台Tab.1 Operating platform

3.1 TUM 数据集实验

开源单目数据集TUM-mono 包含50 个光度校准序列,提供光度标定图和相机在闭环位置处的一段轨迹(无完整的实际地面轨迹),非常适合通过对累积漂移的估算,比较不同VSLAM 系统的准确性及鲁棒性。

选取TUM-mono 中50 个序列的轨迹对齐误差ealign表征 VSLAM 系统的累积漂移,分别考察ORB-SLAM 关/开闭环检测线程及DSO/RDSOL 的ealign取值(每1 个序列运行十次),结果如图4、图5所示。

图4 中X 轴为数据集序列号,图中每一个色块代表VO/SLAM 对齐轨迹间的绝对轨迹误差ATE(作为ealign指标),VO代表ORB-SLAM关闭闭环检测线程。可以看出,VO 在整体序列上的 ATE 要比下部ORB-SLAM 大的多,表明添加闭环检测线程的VSLAM 能够提供更高精度的定位支持。

图4 ORB-SLAM 有/无回环下对齐误差对比Fig.4 ORB-SLAM alignment error comparison with/without loop

图5 给出了相同序列上DSO 及RDSOL 的测试结果对比,进一步验证了添加闭环后的RDSOL 可有效消除VSLAM 累积误差,有助于更好的跟踪及地图创建效果。

图5 DSO 与RDSOL 对齐误差对比Fig.5 Alignment error comparison between DSO and RDSOL

选取TUM-mono数据集的Sequence20序列,分别测试DSO/RDSOL(无/有闭环检测线程)对实际室内场景中机器人位姿估计的影响,三维重建效果分别如图6(a)、图6(b)所示。

图6 稠密三维重建效果Fig.6 Dense 3D reconstruction results

可以看出,两系统的三维重建结果相类似,但DSO给出的闭环处(图6(a)左下起点与终点处)存在较大偏差(即重影现象),表明起点与终点轨迹无法拟合,该累积误差的产生将导致位姿漂移。而如图6(b)左下部所示,轨迹在起点和终点处很好地拟合在了一起,表明RDSOL 通过闭环检测有效地消除了轨迹累积误差,能够为机器人定位与三维地图重建提供更精准的位姿约束,鲁棒性好。

在计算速度方面,选取TUM数据集中具有不同图像帧数的前10个序列Sequence01~Sequence 10,比较DSO与RDSOL的平均每帧耗时,结果如表2所示。由于添加了闭环检测线程,RDSOL需对图像关键帧进行特征检测并对后端进行全局地图维护,增加了每帧耗时,故在图像数目较多、地图场景更为复杂的Sequence 04及Sequence05中,平均每帧耗时高于DSO。但由于省去DSO计算相机光度参数的耗时,RDSOL 在帧数较少的情形中体现了更优的执行效率,前10个序列下对DSO的平均运行加速比达到了10.91%,实时性有保证。

表2 DSO与RDSOL平均每帧耗时对比Tab.2 Averagetime consumption/ framecomparison between DSOandRDSOL

3.2 KITTI数据集实验

TUM-mono数据集仅有一部分真实轨迹,无法对机器人实际运行的所有轨迹进行对比。为此,选取KITTI数据集中的Sequence07序列(兼顾大尺度场景、多种程度光照变化及轨迹闭环),绘制轨迹跟踪效果图,并做出定量分析。

图7 为DSO 与RDSOL在KITTI 图像序列上运行轨迹及真实轨迹(groundtruth 提供)情况。从图中可以看出,DSO呈现较大的轨迹偏移误差,产生此现象的原因是相机运动通过同一位置后并没有将初始环境闭环,导致位姿漂移;而RDSOL 在初始位置处修正了位姿,故可以很好地恢复真实轨迹(图8的x、y、z轴轨迹位置均更接近真实场景)。

图7 DSO/RDSOL/真实轨迹对比Fig.7 The trajectory comparison of DSO/RDSOL/groundtruth

图8 DSO/RDSOL/真实轨迹位置对比Fig.8 The trajectory position comparison of DSO/RDSOL/groundtruth

如图9 所示,在欧拉角变化方面,尽管在初始0-10 s 阶段,RDSOL 中翻滚角和偏航角出现了波动,但之后的追踪过程RDSOL 都贴合了真实的欧拉角变化,追踪精度优于DSO。

图9 DSO/RDSOL/真实角度对比Fig.9 The Euler angle comparison of DSO/RDSOL/groundtruth

进一步对DSO 及RDSOL 在KITTI 上的表现做出量化分析。选取KITTI 上具有挑战的10 个图像序列Sequence 00~Sequence 09,给出DSO/RDSOL 在其上APE 的均方根误差(RMSE)值,同时给出当前广泛应用的ORB-SLAM2 的APE RMSE 以作比较,如图10 所示。可以看出,RDSOL 与ORB-SLAM2 的表现相当,且在特征缺失的Sequence 01 与Sequence 06 序列中表现出更好的跟踪精度,RDSOL 将平均APE RMSE 由60.22 m(DSO)大幅降为13.97 m,表明其在取得较好实时性的同时,准确性有保证。

图10 DSO/RDSOL/ORB-SLAM2 的APE 比较Fig.10 The APE comparison of DSO/RDSOL/ORB-SLAM2

3.3 实际场景测试

不同于数据集的固定场景及有限数据参考,实际场景测试可围绕RDSOL 的两个核心设计——单目Retinex 图像增强、闭环检测来开展。

选取ZED 系列双目相机(单目工作模式)采集空旷的走廊场景(明显弱纹理区且光照弱),图像成像大小均为752×480。图11 给出了对走廊3 个不同场景分别进行原始图像特征提取及单目Retinex 图像增强后特征提取的对比图,可以看出,后者可使机器人提取到更多的ORB 特征点,使RDSOL 追踪像素点的稳定性更高,该图像预处理设计达到了稀疏直接法的鲁棒性要求。

图11 不同光照下的特征点匹配结果Fig.11 Feature point matching results under different lighting conditions

三维重建的闭环性测试需要机器人的运动轨迹构成一个闭环场景,故令机器人从实验室前门出发,经过走廊绕行一周之后,再从实验室后门到达初始位置,实验场景如图12 所示。

图12 实验室以及走廊场景Fig.12 The scene graphs of lab and corridor

RDSOL在实际场景测试中无相机真实位姿参考,可通过其创建的三维稠密点云地图对轨迹闭环特性进行验证。可以看出,RDSOL 部分还原了上述实验室及走廊场景,如图13所示。

图13RDSOL的实际场景三维重建效果Fig.13Thereal scene3D reconstruction result by RDSOL

机器人行走一周之后回到下图中的前门初始位置(见图13左上部,给出相机去畸变及Retinex 预处理后第2022帧,即最后一帧的灰度图),轨迹构成闭合。

4 结论

针对室内弱光照、光照不均场景下机器人VSLAM三维重建问题,本文开发了一类基于稀疏直接法的RDSOL 系统,利用单尺度Retinex 图像增强代替DSO光度标定,确保RDSOL 追踪图像像素点的稳定性;构建词袋数据库BoW,通过添加闭环检测线程,消除位姿漂移累积误差。开源数据集TUM-mono、KITTI 的实验结果表明,RDSOL 能够较好地解决DSO因缺少闭环检测造成的跟踪失败,并缩短三维重建的平均耗时。弱纹理、弱光照的走廊实景测试则进一步验证了Retinex 图像增强策略可改善像素灰度,避免ORB特征缺失,更利于直接法三维稠密点云地图的构建。所开发的RDSOL为单目VSLAM室内实时三维重建提供了一定的参考及技术支持。

猜你喜欢
位姿三维重建闭环
基于Mimics的CT三维重建应用分析
单周期控制下双输入Buck变换器闭环系统设计
双闭环模糊控制在石化废水处理中的研究
基于关系图的无人机影像三维重建
基于共面直线迭代加权最小二乘的相机位姿估计
基于CAD模型的单目六自由度位姿测量
三维重建结合3D打印技术在腔镜甲状腺手术中的临床应用
小型四旋翼飞行器位姿建模及其仿真
多排螺旋CT三维重建在颌面部美容中的应用
最优价格与回收努力激励的闭环供应链协调