APP下载

基于图像熵的自适应阈值配准算法*

2022-08-01袁俊鹏安维胜

计算机与数字工程 2022年6期
关键词:灰度单元格阈值

袁俊鹏 安维胜 苟 鹏

(西南交通大学机械工程学院 成都 610031)

1 引言

随着计算机视觉技术的发展,图像配准在目标跟踪、图像拼接、三维重构、医疗图像处理等领域得到了广泛的应用[1~3],目前主流的匹配方法有基于图像灰度和特征点的匹配方法。其中具有代表性的尺寸不变特征变换(Scale-Invariant Feature Transform,SIFT)[4]算法构建了一个128维特征向量的尺度不变描述子,使得在图像缩放、旋转等情况下具有较好的鲁棒性,但同时带来了较大的运算量。SURF[5](Speeded Up Robust Features)通过积分图和盒子滤波优化了SIFT 特征计算过程,在保持稳定性的同时一定程度地提升了计算速度。ORB[6](Oriented FAST and Rotated BRIEF)通过改进的oFAST 特征检测和BRIEF 描述子结合特征方向描述,使得ORB 保持一定旋转不变性的同时,进一步加快了特征匹配计算速度,但在实际运行中仍然存在匹配精度较低等问题[7]。特征匹配算法常结合与随机抽样一致性(RANdom SAmple Consensus,RANSAC)[8]算法用来剔除outliers,从而得到一个更高的匹配精度,该算法在较低的inliers 占比率仍具有很好的鲁棒性,因此广泛应用在特征精匹配过程。但是较低的inliers 占比率会导致算法迭代次数剧增,计算成本随之增加,因此高性能鲁棒估计算法成为了一个研究热点。网格运动统计(Grid-Based Motion Statistics,GMS)[9]算法不同于以往算法追求特征描述子不变性的思路,结合运动平滑约束[10]及网格估计法提高了算法的鲁棒性和实时性,但算法本身依赖特征点数量,在庞大的特征点数量中匹配筛选才能得到一个良好的鲁棒估计,随之带来的是实时性的削弱。

本文提出了一种改进GMS 的快速鲁棒估计算法,通过优化网格评分模型[11],使得在更短的时间内完成鲁棒估计,同时通过改进的FAST 自适应阈值特征点提取,有效抑制了特征匹配局部“簇集”现象,得到了更稳定的全局特征匹配,相比原算法有更快的速度。为目标跟踪、机器人自主导航等实时性要求较高的场景提供一种可行的解决方案。

2 基于网格运动统计的改进算法

2.1 一致性匹配

以往的特征匹配算法诸如SIFT、ORB 等认为图像特征点匹配质量的首要因素在于提高特征描述的不变性和显著性,GMS算法的主要思想为运动的平滑性导致了正确匹配对邻域往往比错误匹配对邻域有更多的匹配点对,可以通过统计邻域的匹配对个数来判断匹配正确与否。

式(1)表示支持量不包括匹配对xi本身,因此可以得出图1中Si=2,Sj=0。基于平滑约束提出的假设,推算出真/假匹配的邻域支持量Si服从不同的分布,可以用一对二项分布来近似Si的分布,即匹配xi的邻域内的匹配数,有

图1 邻域支持量示意图

二项分布Si的均值m和标准差s分别为

根据前面的思想,用指标P 来量化真假匹配的区分度,有

2.2 网格快速评分法

GMS 将图像划分为G×G个单元格,对于每对单元格只需要打分一次,若分数满足阈值,则认为单元对之间所有的匹配都是正确的,这使得计算代价从原来的O(N)变为了O(1)。在实际情况中,为了确保大部分含有假匹配的单元格被剔除,单元对{i,j}设计阈值函数为

图2 九宫格网格法

在实践中,考虑到部分特征点位于网格边缘,GMS额外划分了3次网格,每次划分网格分别在x、y和y=x三个方向上平移了半格。

2.3 自适应阈值特征检测

图像的信息熵反映了图像所包含的信息量[12]。图像信息熵的度量称为图像熵(image entropy),为了表征图像空间特征,引入了能够反映灰度空间分布的特征量来表达图像的二维熵。

其中u 表示像素灰度值,v 表示像素的邻域灰度均值,N为图像的大小,有

图像熵反映了图像灰度变化程度,一般来说,图像灰度变化越大,纹理越丰富,图像熵值越大;图像灰度变化越平缓,图像越模糊,图像熵值越小。

GMS算法为了得到更多的正确匹配对,采用了ORB 特征匹配算法中的oFAST(Oriented FAST)特征检测。改进的FAST 算法检测速度较快,同时也能提取更多的角点。FAST算法角点的定义为在以某一像素点P 为中心的邻域内,若有足够多的像素点灰度值与该中心像素值差别较大,则该点可能是角点,如图3所示。

图3 FAST角点邻域示意图

FAST算法的角点判别公式为

式(8)中,Ix为像素P 邻近圆上16 个像素的灰度值,Ip为像素P 的灰度值,T为角点阈值,通过改变T的大小可以得到目标特征点数。若N≥12,则判定P为角点(FAST-12)。

式(9)中β为权重系数,一般取β=0.8Ip;σ为阈值函数的标准差,决定了阈值变化程度,实验结果显示σ取值为1.0~1.5 效果较好,本文取σ=1.1;H 为区域二维熵,可由式(7)计算得出。通过结合图像熵值,若区域熵值较大,则减小阈值;反之则增大阈值,从而达到特征点全局均匀分布的目的。改进后的特征检测算法具体流程如下。

Step1. 设定需要提取的期望特征点数K,将大小为M×N 原图像转换为灰度图像,并将图像划分为Gr×Gc个网格,其中([]为取整函数):

Step2.由式(6)、(7)计算每个网格的图像二维熵值,记录到数组T[i][j](i=1,2,3,…,Gr;j=1,2,3,…,Gc)中。

Step3.计算像素P邻近圆上16个像素与像素P的灰度差值,判别阈值T=T[i′][j′],其中i′,j′根据P 点像素坐标计算得出;当N≥T时,判定像素P 为角点。

Step4. 若角点数小于K,则执行下一个网格区域的检测,否则执行Step5。

Step5. 若总的角点数大于K,则根据OpenCV中角点响应函数计算角点的Harris 响应值并排序,从大到小依次选择直到总的角点数满足K,则算法完毕。

对本文算法和GMS 算法就特征点提取部分进行实验对比(图像尺寸为800×640,提取特征点数为1000)。结果如图4,可以看出,GMS 算法提取的特征点主要集中在局部纹理丰富或物体边缘处,本文改进算法提取的特征点全局分布均匀,在屋顶、树木等位置提取了更多的特征点而弱化了局部特征点簇集现象,为后续图像拼接、图像配准等工作提供了更加鲁棒的解决方案。

图4 改进算法与原算法角点提取结果对比

2.4 改进网格法

GMS算法为了达到实时性要求,加入了网格评分机制,将图像划分为G×G个单元格,加速了邻域支持评分过程。具体实施中,图像I 中的第i 个网格的特征点ni定义为单元格i及周围8个单元格内特征点总数,即“九宫格”内所有特征点数,如图5(a)所示。

图5 两种评分网格模型

为了使帧间图像匹配具备旋转不变性,GMS认为目标图像不同的旋转会导致一个网格的最近邻分布变化。基于这样的事实,算法中“九宫格”旋转了8 次分别统计,取9 个状态下的最大值作为最终ni值,相当于统计算法循环了9 次,从而增加了运算量。通过改进为4-邻域的“X字形”网格法(如图5(b)所示),只需要统计单元格i周围4 个单元格内特征点,在旋转过程中,由原来的8 次减少到3 次,图8为4-邻域网格的三次旋转示意图。相应地,统计算法循环了4次,从理论上将统计时间缩短一倍。

图6 X形网格旋转示意图

3 实验结果与分析

本文实验环境依次为AMD Ryzen 2600X@3.60GHz,8GB 运行内存,Windows 10 专业版;软件版本为:Microsoft Visual Studio 2015,OpenCV3.2,Matlab2014,改进算法为Visual Studio 2015 编程实现,具体实验参数:G=20,α=6。实验数据集包括TUM 数据集[14]、Oxford 标准数据集[15],其中TUM数据集选取了一组宽基线、低纹理、运动模糊的视频流。

实验评价指标为匹配正确率CMR[16](Correct Matching Rate)、运行时间及主观评价。匹配正确率CMR定义为

在相同条件下CMR 越大,说明算法性能越好。为了得到更好的结果,对比算法都通过随机抽样一致性(RANSAC)算法进行误匹配点剔除,部分实验结果如图7所示。

图7 Oxford数据集在不同算法下实验结果对比(预提取1000点)

Oxford 图集包括了图像模糊、旋转缩放、光照变化等图像组,能够满足大多数真实室外场景。对比算法都把特征点预提取值分别设为1000、10000,在相同运行条件下得到的匹配精确率(CMR)见表1,各种算法运行时间见图8。

表1 不同算法实验结果对比

图8 四种算法预提取点对比

由图8 可以看出,本文算法在设定不同的预提取点数时,计算效率较同类算法提升效果明显。特别地,在和原算法的比较中,本文算法在不同数据集上的运行时间减少20%~28%,实验结果表明,对于600×800 大小图像,二维熵值计算耗时小于6ms,没有过多的增加运算负担。

实验表明在Oxford标准数据集下,本文算法对模糊、光照、旋转、视角等不同程度变化下,仍然能够保持较好的匹配正确率,CMR 值比同类算法高出1 倍~3 倍,比GMS 算法略低,一方面由于领域个数K减少后,导致真假匹配区分概率一定程度的减小;另一方面,特征点均匀分布使邻域支持量不同程度的减小,通过修正判别阈值可以弥补这一问题。

4 结语

针对高性能、实时特征配准算法在场景应用的需求以及在复杂实际环境中算法鲁棒性较差等问题,提出了一种基于网格运动统计特征匹配改进的算法,首先结合图像二维熵引入Oriented FAST 角点检测判别阈值,阈值函数能够使特征点分布均匀,防止“簇集”现象,提高了算法在宽基线配准中的鲁棒性。最后在网格统计中通过改变邻域结构来减少邻域个数,从而减小了计算量。实验表明,改进后的算法较同类算法提升了特征匹配精确率,运行时间较原算法更少,具有更好的实时性与鲁棒性。本文算法不足点在于阈值函数受图像噪声影响较为严重,可以通过滤波去噪等预处理来解决这一问题,另一方面,对于大视角变化、旋转角度大于45°等极端条件下匹配精确率的提升仍需要进一步的研究。

猜你喜欢

灰度单元格阈值
非平稳声信号下的小波变换去噪方法研究
土石坝坝体失稳破坏降水阈值的确定方法
非均匀光照下文本图像分割算法研究
合并单元格 公式巧录入
流水账分类统计巧实现
天津港智慧工作平台灰度发布系统和流程设计
华为“灰度”哲学
玩转方格
玩转方格
Arduino小车巡线程序的灰度阈值优化方案