APP下载

基于纹理增强的ORB 特征点提取与匹配算法

2024-01-05胡茂伟

关键词:直方图纹理梯度

胡茂伟

(深圳市悦动天下科技有限公司,深圳 518000)

随着计算机视觉和图像处理技术的快速发展,特征点提取和匹配算法在各种视觉任务中扮演着重要的角色。其中,ORB[1]算法作为一种经典的特征点提取和描述算法,具有高效性和鲁棒性的优势,在图像特征匹配、物体识别和视觉SLAM 等领域被广泛应用。该算法结合了FAST[2](Features from Accelerated Segment Test)关键点检测和BRIEF[3](Binary Robust Independent Elementary Features)描述子,具有良好的实时性能。然而,ORB 算法在处理复杂纹理场景时也存在一些挑战。 具体而言,当纹理不明显或纹理变化较大时,传统的ORB 算法容易失效,导致特征点提取和匹配的准确性下降。 针对这一问题,本文探索了基于纹理增强和颜色增强的ORB 特征点提取与匹配算法,提高ORB 算法在复杂纹理场景下的性能和鲁棒性。

1 相关工作

在改进ORB 特征点提取和匹配算法的领域,研究者们提出了许多创新的方法和技术。BRISK[4](Binary Robust Invariant Scalable Keypoints)是一种新的关键点检测和描述子生成方法,通过选择不同的采样点和采样模式,提高了特征点提取和匹配的性能和鲁棒性。FREAK[5](Fast Retina Keypoint)是另一种对ORB 的改进,它使用像素的二进制特征来描述关键点,但与ORB 中BRIEF不同的是,FREAK 在描述子生成过程中考虑了关键点的尺度和旋转信息,提高了描述子的可靠性和鲁棒性。 ORB-SLAM 系列[6]是一种基于单目相机的同时定位与地图构建(SLAM)系统。其利用ORB 特征提取和描述符匹配来进行实时的相机定位和地图构建,同时通过优化位姿和地图点云来提高定位和重建的准确性。 ORBSLAM2 引入了新的局部地图和回环检测机制,以提高地图构建和定位的准确性。它还支持多种类型的相机,包括单目、双目和RGB-D 相机,从而扩展了适用范围。祝晓轩等人[7]提出在特征点匹配时,使用双向匹配过滤和最小匹配点距离倍数判别剔除误匹配,进而改进原有算法在弱纹理环境下运行不稳定的问题。王传传等人[8]针对ORB 算法不具备尺度不变性的问题,提出了一种动态跟踪尺度补偿的策略,对其算法进行优化。Ma 等人[9]提出了一种利用动态阈值和改进的四叉树方法的均质化ORB 算法,在特征点提取阶段,利用了新的动态局部阈值计算方法,以增强算法在均匀区域提取特征点的能力。Xie 等人[10]针对传统的ORB 算法对光照引起的曝光不足或曝光过度的图像匹配效果较差的问题,提出将自适应直方图均衡与ORB 算法相结合的思想,以获得更好的特征点质量和匹配效率。刘明珠等人[11]针对传统ORB 算法尺度不变性较差的问题,提出了基于图像金字塔的ORB算法,并得出了基于高斯图像金字塔的ORB 算法具有更好的准确率的结论。

尽管ORB 算法已经被设计为高效的特征点提取和描述子生成算法,但在处理大规模数据或复杂场景时,仍可能存在速度和效率的挑战。改进的算法需要更好地处理大规模和实时应用的能力,以满足不同领域的需求[12]。此外,ORB算法使用二进制描述子来表示特征点,这种简化的描述子可能在复杂场景下丢失一些细节信息,在极大尺度变化或非刚性变换的情况下,仍然存在改进的空间。

本文提出的特征增强策略主要包括纹理增强预处理、ORB 特征点提取和特征点匹配优化三个部分。

2 改进的ORB 特征点提取

ORB 算法使用FAST 角点检测器在增强后的图像中检测出候选的关键点。随后,计算每个关键点周围像素的梯度方向,以确定关键点的主方向。在每个关键点周围的一组固定大小的区域内,采用BRIEF 描述子来描述关键点的特征。由于图像已经过纹理和颜色的增强处理,这些描述子能够提供更为准确和鲁棒的特征表示。

本文所提的特征增强策略为ORB 算法提供了一个新的视角,通过在特征提取前对图像进行纹理和颜色的增强,可以有效地改善ORB 算法在处理复杂纹理和颜色变化大的图像时的表现。

2.1 纹理增强预处理

为了提高特征点的精确度,本文提出了基于自适应直方图均衡化(Contrast Limited Adaptive Histogram Equalization,CLAHE)的ORB 特征点提取算法CLAHE-ORB,自适应直方图均衡化是一种用于改善图像对比度的技术,特别是在存在不同照明条件的情况下。CLAHE 通过分析图像的局部区域来避免过度增强噪声,与传统的直方图均衡化不同,它不是在整个图像上应用,而是在图像的小区域上应用。每个小区域都独立地进行直方图均衡化。

首先,将图像划分为大小相同的非重叠区域。 通常,这些非重叠区域的大小通常是8×8,16×16 或32×32。 计算直方图和累积分布函数,对于每个tile,计算其直方图和累积分布函数。如果直方图中的某个bin 超过了预定义的对比度限制值,则将超过的像素均匀地分配到其他bins中。使用修改后的直方图计算每个非重叠区域的均衡化查找表。对于每个非重叠区域,使用相应的查找表来映射其像素值,以获得均衡化的图像。在非重叠区域之间的边界处,需要通过双线性插值来获得最终的像素值。

本研究分别利用两种方法与ORB 进行了特征点提取,测试用图全部来自Oxford 公开测试图集,该图集包括ubc、bikes、leuven、graf 等图像。对于ubc 场景的特征点分布如图1 所示,可以看出高波ORB 提取的特征点数量为979,CLAHEORB 的特征点数量超过1 000。

图1 高波ORB 与CLAHE-ORB 特征点对比

另一方面,高通滤波得到的特征点的平均响应值为0.000 13,CLAHE 得到的特征点的平均响应值为0.003 9,从平均响应值来看,CLAHE 得到的特征点的质量更高,响应值更高表示特征点的质量更高。从分布图来看(图2),CLAHE 得到的特征点在图像上的分布也相对更均匀。

图2 高波ORB 与CLAHE-ORB 的特征点分布

接下来,对CLAHE 参数设定进行分析,本研究通过设置500 特征点阈值和1 000 特征点阈值,开展了参数的平均响应时间实验,通过对不同的clipLimit 和tileGridSize 值(见表1)进行分析可知,在这些参数组合中,clipLimit(简写为Limit)为10.0,tileGridSize(简写为S)为(16,16)的组合得到了最高的平均响应值0.005 9,表示此组合下得到的特征点质量最高。虽然所有的参数组合都得到了1 000 个特征点(设定的特征点数量上限),但平均响应值的差异反映了特征点质量的差异。

表1 基于CLAHE 增强的特征点响应值分析

在此基础上,本文在leuven 图像上提取的ORB 特征点的结果如图3 所示。图3(a)显示了传统ORB 上的特征点,图3(b)显示了应用了最优CLAHE 参数后的图像上的特征点。从图中可以看出,应用CLAHE 后的图像上的特征点数量有所增加,而且分布也相对更均匀。 这意味着CLAHE 可以帮助ORB 算法在图像中发现更多的特征,从而提高特征匹配和图像识别的准确性。

图3 leuven 图像上的ORB 特征点

2.2 颜色增强预处理

在纹理特征增强的基础上,进一步通过颜色特征增强来选择和突显具有较大颜色梯度的区域。这种方法不仅可以进一步提高特征点的检测和匹配准确性,而且可以提供更丰富的颜色信息,能够为特征匹配提供更多的依据。 颜色增强策略通过局部窗口内梯度方差的动态阈值来选择具有较大颜色梯度的区域。具体过程如下:

(1)计算RGB 图像的梯度。

(2)计算梯度方差来评估纹理的强度。

(3)根据梯度方差计算动态阈值以选择要增强的区域。

(4)应用颜色增强公式增强图像的颜色。

使用已有的Sobel 算子计算图像在水平方向x和垂直方向y上的梯度∇x和∇y。 然后计算图像的梯度幅值G:

对于每个像素,以窗口为中心计算窗口内梯度幅值的方差Var,公式(2)如下:

其中,mean 是平均值。

根据计算得到的梯度方差,设置动态阈值T。较大的阈值可以增强颜色的差异,使得特征点在纹理较大的区域更加突出;而较小的阈值可以减小颜色的差异,使得特征点在纹理较小的区域更加平滑。最后,运用颜色增强公式(3),对局部区域进行增强。

其中,α是增强系数;C是原始颜色值;C′是增强后的颜色值;Var 是局部梯度方差。

图4 为graf 的颜色特征增强计算。从图中可以看出,颜色越亮表示该区域的颜色梯度越强。

图4 graf 颜色特征增强计算

2.3 实验与分析

本实验所用测试用图全部来自Oxford 公开测试图集。首先,对图集中的graf 和ubc 两幅图像进行改进的ORB 特征提取,如图5 所示,原始ORB 特征点为红色,增强后图像特征点为绿色点,图5(c)为改进前后的比较。可以看到改进前后两者之间的特征点分布有所不同,特别是在某些区域,增强后的图像可能会检测到更多的特征点,且特征点的位置有所变化,这种分散的特征点进行特征匹配将更有优势。

在对ubc 和graf 图像执行特征点检测的过程中,纹理增强起到了重要作用。通过纹理增强,图像中不太明显的纹理特征得到了突显,这可能导致检测到更多的特征点。特别是在那些原本被忽略的微小纹理区域,纹理增强使得这些区域成为特征点检测的重点,从而增加了特征点的数量。

然而,特征点的减少也是可能发生的。过度的纹理增强可能会使图像变得过于复杂,某些原本清晰的特征点可能会变得不再明显,或者被其他强烈的纹理特征所掩盖。这种情况可能会在纹理多变或过于复杂的场景中出现,导致特征点的减少。 图6 和图7 展示了纹理增强与颜色增强前后特征点的位置及数量变化,bikes的特征点经过纹理增强为443,经过颜色增强后为488。图8 动态展示了不同增强系数α下特征点的变化情况。

图6 bikes 与leuven 纹理增强与颜色增强ORB 效果

图7 bikes 纹理增强与颜色增强特征点变化

图8 ubc 图像不同参数下的特征点变化

3 特征点匹配优化

在进行特征点匹配时,本文提出了一种优化策略,不仅考虑特征点的局部纹理相似度,还考虑它们的尺度一致性。可以确保匹配的特征点既在纹理上相似,又在尺度上相近,有望提高匹配的准确性和鲁棒性。

纹理相似度度量有助于区分具有相似外观但不同尺度的物体。尺度一致性度量有助于排除具有相似纹理但尺度差异很大的物体的匹配。这两个度量的综合考虑可以进一步提高匹配的精确性,使得在复杂纹理场景中的ORB 特征点匹配更加鲁棒。

3.1 纹理相似度检测

为了准确度量两个特征点之间的纹理相似度,本文采用了一种基于传统图像处理技术的纹理相似度度量方法。

采用LBP(Local Binary Pattern)方法提取每个特征点周围区域的纹理特征。对图像中的每个像素,比较其值与周围8 个邻域像素的值。如果中心像素的值大于或等于邻域像素的值,则赋值为1,否则赋值为0。按照顺序连接这些二进制位,得到一个二进制数。 将该二进制数转换为十进制数,得到该像素的LBP 值。统计每个LBP 值的频率,得到一个直方图,将LBP 直方图归一化,使其总和为1,以消除图像区域大小的影响,然后采用直方图的交集来衡量它们的相似度。直方图交叉的公式为:

其中,H1和H2是要比较的两个直方图;i是直方图的二进制索引。通过这种基于传统图像处理技术的纹理相似度度量方法,可以在不依赖深度学习的情况下,准确度量两个特征点之间的纹理相似度,从而提高特征点匹配的准确性和鲁棒性。

3.2 尺度一致性度量

对于任意两个匹配的特征点,计算它们在特征金字塔中的尺度差异。然后定义一个尺度一致性得分(高斯函数),公式如下:

其中,s1和s2是两个匹配特征点在特征金字塔中的尺度;σ是一个调节参数。该得分反映了两个匹配特征点在尺度上的一致性,本实验中σ=0.5。尺度差越小,尺度一致性得分越接近1,表示两个特征点在尺度上更一致。 反之,尺度差越大,尺度一致性得分越接近0,表示两个特征点在尺度上不一致。

实施纹理相似度和尺度一致性度量来优化这些匹配结果,并与上面的结果进行比较。 首先计算每个特征点周围的纹理特征,然后使用这些特征来计算匹配特征点之间的纹理相似度。同时计算匹配特征点在特征金字塔中的尺度差异,以评估它们的尺度一致性。最后,将基于纹理相似度和尺度一致性来筛选和优化匹配结果。本实验的具体参数选择如表2 所示。

表2 匹配优化参数

图9 展示了通过纹理相似度和尺度一致性度量优化后的匹配结果。

图9 bikes 与ubc 特征点匹配的效果对比

从图9 中可以看到,这种优化方法找到了在纹理和尺度上更为一致的匹配对。可以看到优化后的匹配在一些区域得到了改善,尤其是在那些纹理明显的区域。

4 结论

本文通过引入纹理增强的预处理方法,有效地提高了图像中的纹理信息,与传统的ORB 算法相比,基于纹理增强的ORB 算法在特征点提取和匹配的准确性和鲁棒性方面都取得了显著的改进。该算法在复杂纹理场景下表现出更好的性能,能够有效应对纹理不明显或纹理变化较大的情况,提高了算法的可靠性和稳定性。

未来的研究可以进一步优化纹理增强的预处理方法,提高纹理信息的准确性和丰富性,探索更多的特征点匹配策略,进一步提高匹配的鲁棒性和准确性。 此外,还可以考虑与其他图像特征提取算法的结合,进一步提升特征点检测和匹配的性能。

猜你喜欢

直方图纹理梯度
符合差分隐私的流数据统计直方图发布
一个改进的WYL型三项共轭梯度法
一种自适应Dai-Liao共轭梯度法
基于BM3D的复杂纹理区域图像去噪
用直方图控制画面影调
使用纹理叠加添加艺术画特效
一类扭积形式的梯度近Ricci孤立子
TEXTURE ON TEXTURE质地上的纹理
基于空间变换和直方图均衡的彩色图像增强方法
消除凹凸纹理有妙招!