APP下载

基于改进SIFT和位置方向距离函数的胃肠道图像匹配算法*

2022-08-26李俊憓张永顺

机电工程技术 2022年7期
关键词:图像匹配对数梯度

李俊憓,张永顺

(大连理工大学精密与特种加工教育部重点实验室,辽宁大连 116024)

0 引言

胶囊机器人替代了传统内窥镜对患者进行无痛无创的胃肠道便利检查。在检查过程中,姿态信息十分重要,准确的姿态信息对于医生判断病变区域起到很大帮助[1]。而基于视觉的位姿检测,需要对胃肠道图像进行图像匹配以获取位姿信息[2]。图像匹配是指在两张或者多张图片中寻找一致点的过程,在机器视觉、机器人定位、医疗等领域有着广泛的应用[3-4]。胶囊机器人拍摄的胃肠道图像图幅小、图像姿态不稳健以及胃肠道自身存在因纹理复杂、颜色差异和成像条件导致的非线性灰度差异,导致匹配过程中出现正确匹配对较少,且匹配时间较长的问题。而匹配结果的质量,直接影响到后续位姿信息处理的准确性,甚至会加大处理难度。

目前,图像匹配算法主要分为两类:基于图像区域的图像匹配和基于图像特征的图像匹配。前者主要依靠像素强度之间的相似行关系来确定图像间的对应关系[5],常用的相似性关系有互相关和互信息,但这种匹配方法计算复杂度较高,容易受到噪声干扰,匹配效果较差。后者是在参考图像中提取特征,采用相似性度量和一些约束条件确实几何变换,并将该变化应用于待匹配图像[6],其中最为经典的是SIFT(尺度不变特征变换)[7]。SIFT算法对于图像缩放、平移、旋转、尺度等具备不变性,但SIFT算法比较复杂,计算繁琐,耗时较长[6]。此外也有一些算法被提出,如SURF[8]、ORB[9]和GLOH[10]等,主要是在计算速度上进行了提高。当SIFT算法直接应用与胃肠道图像时,由于非线性灰度差异的存在,使得匹配精度很低。目前尚未有专门针对胃肠道图像的匹配算法研究,这一方面仍是空白。

本文提出了一种基于改进SIFT和位置方向的胃肠道图像匹配算法,利用新的梯度定义克服了胃肠道图像间的灰度差异,采用对数极坐标完成了描述子的降维,提高计算效率。此外,结合特征的位置和方向建立了鲁棒性更强的距离匹配函数,以获取更多的正确匹配对。

1 SIFT算法

SIFT算法是由Lowe于2004年提出的一种图像匹配算法,主要包括以下几个部分。

(1)尺度空间极值检测:利用高斯卷积核函数计算不同尺度下的高斯尺度空间以得到高斯金字塔图像,将高斯金字塔的相邻层相减构造高斯差分金字塔(Difference of Gaussians,DoG)[11]。

(2)特征点定位:将每一个像素点与它的所有相邻点对比确定极值点,然后利用泰勒公式将DoG在局部极值点展开计算极值的偏移量,若偏移量过小则该极值点需要剔除,剩下的就是特征点[4]。

(3)特征点主方向的确定:利用特征点邻域范围的像素梯度幅度和方向直方图为每一个特征点确定主方向[11]。

(4)确定特征点描述子:将特征点邻域划分成4×4的子区域,在每个子区域选取8个方向进行计算,因此每个特征点可以生成一个4×4×8=128维的描述子。

2 改进后的SIFT算法

对SIFT算法进行改进主要体现在两个方面:(1)对梯度进行重定义,采用SOBEL算子重新计算胃肠道图像的梯度和主方向,以消除非线性灰度差异;(2)利用GLOH和对数极坐标构建描述子,完成描述子的降维处理。改进的SIFT算法流程如图1所示。

图1 胃肠道图像特征的检测流程

2.1 新的梯度定义

SIFT算法中采用下式进行像素梯度幅度和梯度方向的计算:

式中:I(x,y)为图像位于(x,y)的像素值;m(x,y)为像素梯度幅值;θ(x,y)为像素梯度方向。

由于胃肠道的特殊管腔结构,腔内比周围环境要暗。由于非环境照明,靠近光源的组织成像时非常明亮,使得胃肠道图像之间存在非线性的灰度差异。特征描述子由特征点邻域的像素梯度直方图构成[12],而胃肠道图像的非线性灰度差异会导致参考图像和待匹配图像相同区域的像素梯度具备较大差异。图2(a)和图2(b)分别为参考图像和待匹配图像的像素梯度幅值图和像素梯度方向图。通过分析可发现在使用传统梯度定义时,两幅图像在蓝色圆形区域的梯度幅值相似性较大,而梯度方向差异较大,这种差异导致了图像在特征识别中存在了误差,对特征点的主方向带来了一定误差。而特征描述子是利用了特征点的主方向来保证旋转不变性,梯度主方向误差使得提取的描述子准确性降低,在匹配阶段出现问题,因此需要对该算法的像素梯度计算方法进行改进。

图2 原梯度方法得到的梯度幅值和梯度方向

为改善特征描述的鲁棒性,本文对胃肠道图像梯度的计算采用二阶SOBEL进行计算。首先,在高斯尺度空间图像上计算像素梯度,计算公式如下:

式中:L(x,y,σ)为高斯尺度空间;和分别为一阶高斯尺度空间沿水平方向和竖直方向的差分;为高斯尺度空间的梯度幅度;S为SOBEL算子;σ为尺度。

图3所示为使用二阶SOBLE算子重新计算梯度后得到的图2中胃肠道的梯度幅度和梯度方向图像。从图3中的圆形区域可知道,不仅相同区域的梯度幅度图像有较好的一致性,并且该区域的梯度方向图像也有较好的一致性,因此可以确定采用新的梯度定义计算方法可消除胃肠道图像的非线性灰度差异,为后续精准匹配奠定了基础。

图3 新梯度方法得到的梯度幅值和梯度方向

2.2 对数极坐标描述子生成

对数极坐标可将图像由笛卡尔坐标系描述转换到对数极坐标描述[13],这样的转换使得图像的尺度和旋转变换变为平移变化,降低了匹配难度,可提高匹配精度,能更好地处理亮度变化等问题。GLOH(梯度方向直方图)是一种利用笛卡尔坐标和对数极坐标确定网格生成圆形邻域。本文采用采用基于GLOH的半径为12σ′圆形邻域和有13个子区域的对数极坐标网格生成特征描述子。圆形邻域如图4(a)所示,针对胃肠道图像,当R3和R2与R1的比率分别是0.25和0.65时,此时比率设置为最佳结果。对数极坐标网格如图4(b),水平方向代表极角。对两个外层圆形区域6等分,一共得到13个子区。再按照45°一个方向的原则计算每个扇区内的特征点维度数目,共计8个维度。最终累计获得每个特征维度为104维的对数极坐描述子。

图4 圆形邻域和对数极坐标网格示意图

3 位置方向欧式距离匹配

最近邻与次进邻比匹配是常用的特征匹配算法,这种算法是寻求两个对应点之间的最近欧式距离与次进欧式距离,当二者比值大于某一设定值时,认为是错误匹配进行删除,剩下就是正确匹配对。这种方法在胃肠道图像中可获得比较精确的对应关系,但没有考虑到特征的位置变换和方向偏移,使得很多特征点找不到正确的匹配对。因此,本文提出了基于位置方向欧式距离(Position Orientation Euclidean Distance,POED)函数来计算匹配对。首先需要构建POED函数,随后采用MS和RANSAC算法对错误匹配对进行筛选,以获得更多正确的匹配对。

3.1 POED函数确定

位置方向欧式距离函数是结合特征点的位置方向信息来进行建立,需要确定特征点的位置变换误差和主方向偏移误差。

从参考图像和待匹配图像获得的特征点集合分别为P=p1,p2,p3,…,pm和P′=p′1,p′2,p′3,…,p′n。(x′j,y′j)和θ′j分别代表待匹配图像中特征点p′n的位置和方向;(xi,yi)和θi分别代表参考图像中特征点pm的位置和方向;pm点和p′n点之间的位置变换误差是:

式中:T(*)为相似变换模型;μ为相似模型变换参数。

pm点和p′n点之间的主方向误差为:

式中:Δθ*为主方向差直方图的峰值位置。

基于以上两个误差定义一个稳健性更好的特征匹配距离,即位置方向欧式距离(POED),公式如下所示:

式中:D e(p m,p′n)为两特征点之间的欧式距离。

3.2 匹配过程

(1)粗匹配:采用最近邻与次近邻比匹配进行胃肠道图像的特征匹配,获得初始匹配点对集合P1,并计算主方向差,水平位移,竖直位移和尺度比的直方图,从图中获取峰值位置Δθ*、Δx i、Δy i、r*。采用随机抽样一致(RANSAC)算法进行错误匹配对的删除并计算初始变换参数μ。

(2)精匹配:采用POED作为描述子的距离度量,并再次使用最近邻与次近邻比的特征匹配方法进行匹配,至此,完成了两次匹配并获得了匹配对集合P2。

(3)错误匹配对删除:在完成图像的特征点匹配后,会出现一些误匹配点。要解算出正确的匹配关系,需要去掉误匹配点,主要采用MS算法和RANSAC算法进行错误点删除。MS算法是指在变换空间中,将每个特征点和与其对应的位置,方向进行联系,采用模式搜索的方式消除弱匹配关系的方法。具体操作如下:令(xi,yi)和(x′i,y′i)分别为匹配对P2中第i个匹配点的位置坐标,其相应的水平位移和垂直位移定义如下:

采用上述公式进行错误点删除后得到匹配点集合P3,在使用RANSAC算法删除P3中的错误对应对,随后即可得到正确的匹配关系。RANSAC算法是指在有错误匹配的匹配集合中,不断进行迭代已删除错误匹配对,提高匹配精度。特征匹配流程如图5所示。

图5 特征匹配流程

4 胃肠道图像匹配结果

4.1 实验图像

为评估本文提出算法的有效性,采用双半球胶囊机器人获取胃部图像与肠道图像进行特征匹配。考虑到本文算法是针对胃肠道图像开发的,加上在匹配阶段,定义了POED函数,因此将本文算法定义为GIPOED-SIFT。本文算法与其他算法做了对比实验,如:SIFT,PSOSIFT,SURF+FLANN,ORB+FLANN;本文还专门比较了“新的梯度定义+FSC”算法来确定对于胃肠道图像非线性灰度差异的处理。硬件开发环境为Intel(R)Core(TM)i5-7300HQ CPU@2.50GHz、内存为16GB的PC,软件开发环境为Microsoft Visual Studio 2019和计算机视觉库OpenCV 3.4.1。

4.2 评价标准

采用均方根误差(Root Mean Square Error,RMSE)进行算法评估[5],其公式如下:

式中:N为选取的匹配点个数;(xi,yi)和(x′i,y′i)为第i个匹配点的坐标;(x"

i,yi")为第i个待匹配图像特征点(x′i,y′i)在经过匹配几何关系后转换的坐标。

4.3 实验结果

如图6~7和表1所示,给出了GIPOED-SIFT算法与其他算法在胃肠道图像的实验结果,可以发现在匹配时间上,GIPOED-SIFT算法相比于SURF,ORB等算法耗时较长,但对比其他算法耗时较短,这是由于GIPOEDSIFT算法主要耗时在匹配阶段,需要对特征点进行二次匹配并进行新的匹配距离计算,这导致了其耗时较长,但匹配时间在3 s以内,可以满足姿态检测实时性要求;从图6(a)和图7(a)中可以看出,GIPOED-SIFT算法可以正确匹配胃肠道图像,并且不存在误匹配点,相比于其他算法而言,匹配的特征数目较少,但匹配点的准确率远远高于其他算法,并且匹配点数目满足相机本质矩阵求解,不会对姿态估计带来匹配误差;从匹配误差来看,本文算法在胃肠道图像匹配中RMSE均为最小。为了验证新的梯度算法针对胃肠道图像非线性灰度差异的有效性,实验中对比了“新的梯度定义”和“SIFT”算法,可以发现新的梯度应该可以减小匹配误差,增强匹配对正确数目。从以上可以看出,本文提出的匹配算法在胃肠道图像匹配中匹配精度、匹配时间上相比于SIFT算法得到了显著提高,满足了姿态检测实时性要求,可用于姿态检测的特征匹配。

图6 胃部图像匹配结果

图7 肠道图像匹配结果

表1 本文提出的算法和对比算法实验结果

5 结束语

本文提出了一种联合SIFT和特征点位置方向距离的胃肠道图像匹配算法。首先采用新的梯度定义消除了胃肠道图像的非线性灰度差异;此外在特征描述子生成阶段,利用对数极坐标进行构建,对描述符进行了降维,使得匹配更为稳健;最后提出了一种结合每个特征点的位置和方向来增加正确匹配对数的稳健匹配算法。在胃肠道图像上的实验结果表明,本文提出的算法与其他算法进行比较后,在匹配精度和正确匹配数目方面均得到提升,可为胶囊机器人位姿求解提供精确位姿信息。

猜你喜欢

图像匹配对数梯度
带非线性梯度项的p-Laplacian抛物方程的临界指标
基于多特征融合的图像匹配研究
指数与对数
指数与对数
比较底数不同的两个对数式大小的方法
图像匹配及其应用
一个具梯度项的p-Laplace 方程弱解的存在性
基于AMR的梯度磁传感器在磁异常检测中的研究
神奇的对数换底公式
基于数字虚拟飞行的民机复飞爬升梯度评估