APP下载

一种动态光照下视觉VSLAM中的场景特征匹配方法

2018-12-20张慧丽彭晓东谢文明

电子设计工程 2018年24期
关键词:特征描述光照对象

张慧丽 ,彭晓东 ,谢文明 ,陈 璐

(1.中国科学院国家空间科学中心北京100190;2.中国科学院大学北京101408)

在机器人智能化领域,自主定位与导航是关键性的技术。现有的室内定位技术大部分都是结合视觉SLAM来实现的。在VSLAM算法流程中,为了解决飘移提高全局定位精度,设有回环检测(loop closure)环节。回环检测是指机器人在判断自身进入历史同一地点后,通过全局一致性算法进行地图优化,消除累积轨迹误差和地图误差的过程[1]。回环检测本质上是场景识别问题[2]。此外,当设备重新开机后,也需要确定自身在历史所建地图中的位置。这两种情况下,都需要找到当前帧图像与历史数据间的对应关系来解出两个场景描述间的相对空间关系。针对上述问题,主要有Raul Mur-Artal等学者提出的基于 BoW(Bag of Words)的ORB-SLAM算法[3-4],微软的HoloLens及谷歌的Tango则是比较成熟的商业应用产品。现有的这些方法一般是基于图像局部特征,在光照条件稳定且良好的情况下定位效果良好,但不能很好地适应动态光照的情形。由于日夜周期和天气变化及人类改变环境的不可预测的性质,例如通过打开和关闭灯,普遍的家庭环境经历显著的且通常不可预测的照明变化[5]。在动态光照环境下,由于光照变化会对图像的整体灰度分布、边缘信息以及彩色图像的色度空间产生非常大的影响[6],进而会影响到在上述基于特征点的场景匹配与定位方法的准确性,严重降低定位的精度。在局部特征描述子中,Harris算子基于自相关矩阵的特征值,对尺度和照明变化敏感;SIFT,SURF等图像局部描述子只是对图像平均灰度强度的简单均匀缩放[7-8]。将颜色直方图信息合并到图像特征描述子中的方法在性能方面产生了有限的提高[9]。Creusot在文献[10]提出通过机器学习寻找具有光照不变性特征的方法,然而实验研究表明这些方法中没有一种本身足够克服光照方向变化引起的图像变化问题[11]。其次,基于特征点定位的方法提取场景的信息较少,特定环境如动态光照下定位效果不理想。

如前所述,目前在环境中光照变化下利用纯视觉传感器进行场景识别仍然具有很大的挑战性。因此本文考虑将图像数据源转换到点云,采用三维点云的特征来代替现有的二维图像特征,采用点云的对象特征代替点特征,将VSLAM中现有的基于原始图像特征拓展到基于三维点云的对象特征进行数据关联的做法具有更好的鲁棒性,且有效提高最终相对定位的精度。这是由于相对于二维图像,三维点云具有更丰富的信息。使用三维特征进行识别相对于使用光学图像特征进行识别的优点:相对于光学图像,距离图像提供了更多的几何信息(深度);从距离图像提取的特征一般不受尺度、旋转和光照的影响;利用距离图像估计物体的三维位姿比光学图像更精确[12]。本文对传感器获得的图像对进行再处理得到点云,再对点云进行基于区域特征即改进的CVFH特征的描述,使其具有对由光照变化引起的噪声、遮挡、视点变化具有一定的不变性。

1 动态光照下的场景间相对位姿解算方法

目前基于VSLAM的自主定位算法不能很好地适用于动态光照环境,特别是其中的回环检测及重定位环节,对两个差异巨大的光照条件下的图像进行基于特征点的识别与匹配存在诸多问题,从而导致定位的失败或者定位精度的下降。问题的关键是如何在不同光照环境情况下找到共性的特征描述,也就是随时间缓慢变化的低频特征。针对光照变化下的图像识别问题,由于双目VSLAM或者光照非急剧变化的单目VSLAM来说,可以使用采用图像对经过处理后得到的点云进行识别和定位。与随着光照变化产生剧烈相应变化的图像特征不同,两帧图像产生的点云是场景中存在物体的三维位置信息。虽然两种光照条件下的图像灰度表现大大不同,但从图像得到场景中物体的位置理论上则具有不变性。虽然由于图像中的阴影,会产生一些噪声点,但是对于光照较为良好的区域,仍可以得到保留了场景中低频特征的点云,从而使得此情况下基于点云的识别与匹配具有可行性。

针对室内场景定位的不足,我们提出对真实室内场景匹配与定位方法的改进,考虑室内真实情况下的动态光照场景下的应用,提出了基于视觉传感器经处理得到的点云进行特征提取、匹配及相对位姿解算的方法。此方法主要包括3个部分:1)对输入的图像序列经过数据关联得到的点云,在经过简单的去燥的预处理工作后,进行改进的CVFH特征的提取。这一步骤包括对点云的分割以得到稳定的对象区域,以及对象区域点云的CVFH(Clustered Viewpoint Feature Histogram)特征向量的计算。2)对提取的两个点云的CVFH特征向量进行匹配及其优化。特征的匹配通过建立K-D树,采用最邻近检索得到。之后的匹配优化采用RANSAC(Random Sampling Consensus,随机采样一致性)剔除误匹配。3)计算得到匹配上的对应区域的重心点,基于SVD(Singular Value Decomposition,奇异值分解)计算粗匹配下的转换矩阵。之后将其作为精匹配下的ICP(Iterative Closest Point,迭代最近点)算法的初值计算得到更精确的匹配结果。

1.1 改进的CVFH特征

图1 技术路线图

CVFH特征描述子是在物体识别领域广泛使用的一种半全局特征描述子,由Aldoma et al.在文献[13]中提取。CVFH特征描述子是对全局特征描述子VFH的一种拓展,可以处理由各种传感器如Kinect得到的由于噪声、传感器及分割误差而存在缺失和空洞的场景的点云数据。CVFH特征描述子的基本思想:首先使用区域生长分割在稳定平滑区域中划分出代表一个个对象的部分,然后为每个部分计算VFH特征。因此只要至少有一个区域完全可见,就可以在场景中找到对象。CVFH特征向量中还包括构成一个对象的点云中心点的分布信息的SDC(shape distribution component)。

由于CVFH特征中原本的分割得到稳定区域的算法只是简单的基于区域增长的分割算法。这种方法利用区域增长算法,依据法线相似并且处于直接邻域等规则将点云划分为一个个的稳定区域,但是这种分割方法不具有稳定性。当两个不同点云分割时选取的种子点往往不同,从而导致两个点云分割得到的稳定区域大不相同。为了解决这一问题,采用点云分割算法LCCP(Locally Convex Connected Patches)替代CVFH中原有的点云分割算法。改进的CVFH特征描述子的基本思想是:首先将点云聚合为一个个的面片,然后基于一定的规则将面片聚合成对象,从而使最终得到的区域分割结果更稳定,更具鲁棒性。

LCCP点云分割算法的基本思想是:先采用Supervoxel(超体素)算法将体素化后的点云聚合为面片,然后根据超体素间的凹凸关系将其聚合为更稳定的体对象。超体素分割本质上也是一种特殊的区域生长算法。当点云完成超体素分割之后,点云被分成了一个个同质化的面状区域[14]。为了形成人类认知中的对象体,需对面状区域基于凹凸性,将关系为凸的相邻小区域聚类成较大的体对象。凹凸关系的判断依据如公式(1)。

其中,

上述向量S为两平面法向量的叉积,Θ为两相邻的超体素的中心连线与公共边之间的夹角。图2显示了改进的CVFH特征在分割部分能生成更具有稳定性的区域即对象。左为超体素分割的结果图,右为之后根据凹凸性合并后的结果图。提取一个个对象的CVFH特征即308维的特征向量后,通过建立待匹配的两个点云的K-D树来完成检索匹配。

图2 改进的CVFH特征的分割效果

1.2 匹配及位姿计算

通常的匹配情形是通过对物体的完整精细描述的CAD模型在固定的坐标系下设置虚拟的视点,计算在不同视点下的改进的CVFH特征作为检索的数据库并建立K-D树。当用Kinect等传感器获得物体的一个视点下的点云并计算此时的改进的CVFH特征后,在上述K-D树中采用最邻近距离检索,从而能够获得当前位姿的最接近的估计。这种匹配方法对于只有两个视角的点云的情况下的匹配需要做一些调整,即直接将源点云中一个个对象的特征在目标点云中进行检索和匹配。由于只利用了单个对象的特征进行匹配,未考虑对象间的空间几何拓扑关系特征,匹配结果中存在很多的误匹配。如:一个点云中的一个对象的特征与另一个点云中的多个对象的特征匹配上了。这时需要对匹配的结果进行优化。常用的匹配优化算法包括霍夫变换、随机采样一致性及粒子滤波等方法[15]。这些方法实际上是基于统计的思想,即假设正确的匹配能占原始匹配结果的中多数。文中采用的是RANSAC来过滤误匹配。RANSAC算法的流程如下:

1)选取原数据的随机子集作为假设的内点。

2)计算一个适用于假设的内点的模型。

3)根据模型特定的损失函数,筛选出适合估计模型的属于共集的点。

4)使用共集的所有数据对模型进行评估并改进。

将RANSAC应用于对象的特征匹配时,由于目标模型是两个点云间的相对关系的转换矩阵,因此需要知道对象的位置。本文采用对象的重心点的三维坐标表示对象的位置。采用对应对象的重心点作为RANSAC过滤步骤的输入,进行匹配优化。当完成匹配优化后,可通过计算两个点云间的转换矩阵来求两者之间的相互关系,即可定位设备的当前位姿。通常在已知两组点云的对应点的情况下,可采用基于SVD的方法计算粗匹配下的旋转矩阵R和位移T。之后为了获得更精确的定位结果,通过ICP计算精匹配下的转换矩阵。

2 实验

本研究选取了典型的室内环境进行实验。实验场景的主体部分是一张桌子及放置于至上的用于作为匹配单元的一个个的规则的物体(书本、纸箱、牛奶盒及等等)。如下图所示,实验使用ZED双目相机一共拍摄了此场景在6组光照条件I1,I2,…,I6下在两个不同视角下的RGB图像,并获得了这些情形下的12组点云A1,A2,…,A6,及B1,B2,…,B6。为了更直观地评价定位效果,在这两个视角下保持ZED相机的姿态不变,仅沿着垂直于相机主光轴的方向平移了0.59 m的距离。本文算法基于PCL库实现。

将以上2个视角下6组光照条件下的12张图像作数据源,使用ORB-slam中使用采用的Dbow2库来进行回环检测的定位实验。结果显示使用Dbow2库时完全检测不到回环。通过图3中ORB特征的提取与匹配也可直观地看出不同光照情况下存在很多误匹配的情况,从而导致回环失败。

图3 两种光照下的ORB特征匹配示意图

使用文中的方法,对6组光照和位置均发生改变的情形,可以得到稳定的分割区域及其特征描述,最终多组点云的定位结果及与其他方法的对比如表1所示。实验所用RGB图像源如图4所示,分别在全局光照(日光灯)及局部光照(手电筒)的情况下拍摄的。3种全局光照的情形通过控制室内两盏日光灯的开得到,3种局部光照的情形通过改变手电筒的位置和光照方向得到。图4第一行为在两不同全局光照及位置变化下的图像,即得到A1,B2组点云的实验条件。第二行左图为全局光照下的图像,右图为局部光照下的图像,即得到A2,B4组点云实验条件。其他组所得点云对的实验条件以此类推。

图4 实验所用RGB图像对

表1 多种光照条件下定位结果

在光照变化及相机位置变化0.59 m的情况下,采用ICP方法、采用CVFH特征进行粗匹配下的转换矩阵计算再用ICP方法做精匹配及本文的方法分别计算得到平移矩阵。表1中的数字表示根据该平移矩阵得到的相对定位值与真值0.56 m的误差值。可看出在光照变化环境下,相比直接采用ICP或者采用CVFH特征匹配加上ICP做精匹配的方法,使用本文的算法往往可以得到更为精确的定位结果。

3 结束语

通过实验可以看到在某些动态光照场景下,使用传统方法的回环检测过程会失败,而采用本文中的方法,仍能达到很好的定位效果。且在某些场景下,因此,本文的基于点云的方法在定位精度及鲁棒性方面比现有的VSLAM中基于特征点的方法更优。

但是,本文假设传感器图像中可见场景的范围足够大,包含大面积的支撑平面如地面、天花板、墙面这些部分,而在后续的识别匹配环节没有有效利用这些空间结构信息,只是将其作为背景剔除。后续拟通过提取这些背景结构和对象之间的空间几何关系作为对象特征的一部分用于匹配,从而提高特征的可分性。

文中用于获得对象的分割方法在稳定性方面还存在一些不足。后续拟通过引入一种评价对象的对象性(Objectness)的标准,从对称性、紧凑型、凹凸性等方面入手[16],对形成的对象进行进一步的处理,从而使最后分割得到的对象更具有稳定性。

本文最后用来定位即计算两个点云间的转换矩阵时直接使用了对象的重心点作为三维位置的表示。这种位置表示方式由于点云的缺失及噪声会存在很大的偏差,对最后的定位精度会产生很大的影响。因此之后的研究拟在完成对象匹配后,通过一定的策略(如ICP)筛选出每个对象中完全匹配上的超体素,用其重心点来计算相对转换矩阵。

猜你喜欢

特征描述光照对象
船舶尾流图像的数字化处理和特征描述技术
节能环保 光照万家(公益宣传)
涉税刑事诉讼中的举证责任——以纳税人举证责任为考察对象
节能环保光照万家(公益宣传)
春光照瑶乡
攻略对象的心思好难猜
目标鲁棒识别的抗旋转HDO 局部特征描述
用于三维点云表示的扩展点特征直方图算法*
基于熵的快速扫描法的FNEA初始对象的生成方法
区间对象族的可镇定性分析