面向视觉SLAM的改进RGB特征点检测算法
2022-09-19王一波梁伟鄯
王一波,梁伟鄯,赵 云
(柳州工学院,广西 柳州 545616)
0 引 言
视觉 SLAM(Simultaneous Localization And Mapping)的关键是建立图像间鲁棒的特征点匹配关系,其决定着摄像机运动参数的求解精度和目标点三维世界坐标重建精度,而影响匹配效果的重要因素是特征点提取算法。当前相对成熟的视觉SLAM解决方案有Mono、PTAM、ORBSLAM、SVO、LSD-SLAM和ORBSLAM2等,普遍基于灰度图像进行特征点提取即匹配,对于环境对比明显的情况表现相对稳定,尤其ORBSLAM2更是因采用了ORB特征在室外环境也有着较好的表现;相比于SIFT、SURF等多尺度提取算法,ORB特征提取算法简单,匹配精度相对较高,适合实时应用的场合。但也存在着当环境局部纹理或结构相似时所提取特征点的描述子无法加以区别的问题,从而造成错误匹配,而这种错误在多数应用场景下是无法接受的。为此,寻求更为鲁棒的特征点提取算法对于视觉SLAM就显得尤为重要。随着彩色图像处理技术的不断发展,基于彩色图像的特征提取已经应用在很多场合。彩色图像包含的特征信息要多于灰度图像,它不仅包含灰度图所携带的特征信息,还包含饱和度及色度分量的特征信息。据统计,基于灰度图像提取的特征信息仅占原始彩色图像的百分之九十。本文将充分挖掘彩色图像所包含的信息,构建基于RGB图像特征点提取算法,以此提高视觉SLAM的鲁棒性。
1 RGB图像信息熵度量
图像特征点提取的本质即信息的提取,如果能对灰度图像和彩色图像包含信息进行特定度量和比较,将为信息提取算法提供理论上的指导。按照Marr计算理论,图像中的信息即图像中颜色或亮度的变化,呈现出的是物体和物体的关系以及与人的关系的要素。如果把一幅图像看作一个虚构零记忆“灰度信源”的输出时,可以通过观察图像的直方图来估计该信源的符号概率。假设图像大小为×,灰度范围为[0,-1],r为此区间的离散灰度随机变量,n为第级灰度在图像中出现的次数。这时,灰度信源的熵变为:
目前对于RGB值和灰度的转换,从心理学的角度来看满足人眼从彩色到亮度的感觉转换,对红、绿、蓝三种颜色赋以固定权重,通过加权求和得到灰度值,数学关系如下:
其中:、、分别为对应像素的红、绿、蓝分量;Grey为转换后像素的灰度值。
根据式(1)图像信息熵的定义,变换后的灰度图像的信息熵可轻易求得,而原始RGB图像的信息熵成为问题的关键。如果将RGB图像看作三个独立图层的简单叠加,则它的信息熵就是三个图层信息熵的和,即:
其中:H、H、H分别为、、三个图层对应的信息熵,而为彩色图像总的信息熵。此种定义在形式上比较简单,但其割裂了三个图层的彼此联系,这与实际情况不符。为最大限度反映彩色图像的信息规律,将、、三个图层看作一个整体,某个像素看作随机向量=(,,),∈[0,-1],∈[0,-1],∈[0,-1],则其信息熵可定义为:
在此运用上述定义对变换前后的RGB图像和灰度图像的信息进行比较,为得到可靠的结果,选用了4幅不同场景的图像进行变换,其结果如图1所示。
图1 RGB图像与灰度图像信息熵对比
由图1可以看出,RGB信息熵都远大于相对应的灰度图像信息熵。也就是彩色图像变换为灰度图像后,图像的信息量有比较大的损失,对后续的特征提取必将产生影响。
2 基于RGB特征点提取算法
基于RGB图像的特征点提取算法可分为三类:一是基于输出融合,分别对RGB图像三个通道进行特征提取,根据设计的融合准则得到整体的特征,实现相对简单,但容易导致信息丢失;二是基于RGB颜色向量,将RGB图像看作二维网格上的三维向量场,通过求解向量值函数实现特征提取;三是多维梯度方法,属于信息级的融合策略,可实现最终RGB特征信息增强。
2.1 RGB特征点查找算法
本文将采用第二类方法,基于信息熵计算RGB每个分量的最优融合权值,实现像素级的融合。算法步骤如下:
(1)计算RGB图像三个通道I、I、I的信息熵:
其中,p(R)、p(G)、p(B)分别是I、I、I三个通道的直方图统计量。
(2)根据图像信息量确定三个通道的权重。为了最大限度地保留图像信息,按照信息量的大小分配权重:
(3)基于信息量将RGB图像线性变换为灰度图像:
式中,、、分别是RGB图像任意像素的分量。
由此证明基于信息熵的线性变换的信息量得到最大保留,该命题可等效为:任意假设线性变换Grey=λR+λG+λB,对应的信息量≤。
证明:假设Grey为变换后灰度图像的离散灰度随机变量,R、G、B分别为原始RGB图像三通道I、I、I的离散随机变量。根据信息论可知,当信源的方差越大,则信息熵越大。
假设I、I、I的方差分别为(R)、(G)、(B),且(R)>(G)>(B),则可推出H>H>H,从而推出λ>λ>λ。
(4)运用FAST算法确定特征点,此处不再赘述。
2.2 RGB特征点描述子
本文采用的特征点描述子是在Brief描述子基础上加以改进的。为充分利用RGB三个通道的信息,描述子建立如下:
(1)将RGB图像看作××3的数组,I、I、I由上至下分布,以I某二维特征点(,)为中心,取××3的立体邻域。
(3)比较二者像素的大小,并按照如下公式进行二进制赋值。
(4)重复步骤1~3,生成一个二进制编码,此编码即为特征点描述子。
3 实验及分析
为验证本文提出的特征点提取算法,拟与原始ORB特征点检测算法进行比较。分别采集两组图片:第一组是在相同场景下通过平移、旋转、尺度等变换得到的;第二组为完全不同的场景图片。分别对两组图片进行特征点提取,并进行特征点匹配,采用改进的ORB特征点提取算法(为使ORB算法具有尺度、旋转不变性,在此将原算法中的Brief描述子更换为Surf描述子)的结果如图2、图3所示。
图2 相同场景下ORB特征提取结果
图3 不同场景下ORB特征提取结果
由图中可看出,相同场景下大部分点的匹配是正确的,由于未采用RANSC算法,有少数点发生了匹配错误。如果采用RANSC算法,误匹配点对可以避免,但匹配时间会大大增加,平均为218.902 ms。对完全不同的场景进行特征提取,即使使用了RANSC算法仍然存在明显的3处误匹配,这种错误对于人类视觉而言是荒唐的。特征描述子采用的是局部邻域编码,从原理上只是经过编码的特征点的匹配,不代表客观物体间关系的匹配。产生这一现象一方面是由于特征定义的问题,另一方面是由于算法普遍是基于灰度图像,未能充分利用原始RGB图像信息的问题。
对以上两组图片采用本文提出的基于RGB特征点提取算法进行处理,同时采用基于距离的匹配算法进行匹配,其结果如图4、图5所示。
图4 相同场景下RGB特征提取结果
图5 不同场景下RGB特征提取结果
相较于原算法,相同场景下基于RGB特征点的提取算法降低了错误匹配,其与原算法组合使用RANSC算法的性能相近,但处理时间缩短了62.014 ms。也说明了在算法充分利用RGB信息后,对于匹配结果的提升是有效的。但在不同场景下基于RGB特征提取仍然存在着极少的明显误匹配,这是因为算法本身仍是基于图像局部范围,当不同场景存在着较大的相似度时,这种错误发生的概率就会增加,通过扩大描述子随机范围可以降低错误率,但不可能完全避免。
4 结 语
本文面向SLAM鲁棒应用提出了基于RGB特征点提取算法,通过与目前普遍使用的ORB特征提取算法进行比较,发现误匹配率有明显降低,性能与使用RANSC算法相当,但处理时间得到了明显降低,从而也验证了本文提出的RGB图像信息熵度量方法的正确性,从信息论的角度解释了算法的有效性。今后,将围绕不同场景下误匹配发生的机理展开理论研究,进一步提升特征提取的鲁棒性。