平滑运动概率估计剔除算法
2019-08-14康宏斌余辉亮梁艳阳
康宏斌, 余辉亮, 梁艳阳
(西南科技大学 信息工程学院,四川 绵阳 621010)
0 引 言
在计算机视觉领域,图像特征点准确匹配一直是众多学者研究的课题,黄丽等人[1]提出了基于ORB(oriented FAST and rotated BRIEF)特征的图像误匹配剔除方法,经过两步剔除误匹配,在图像旋转和存在噪声的情况下,匹配准确度得到进一步提升,但在三维场景中的特征点匹配还是存在轻微的误匹配。针对这个问题鲍文霞等人[2]提出了基于马氏距离谱特征的图像匹配算法,利用马氏距离构造局部无向加权图,同时采支持向量机(support vector machine,SVM)[3]方法剔除误匹配点,匹配的精度和鲁棒性得到了提升,但马氏度量线性变换的局限性导致在宽基线匹配时精度不佳。尤其在三维场景,宽基线、大尺度旋转场景这样的情况下,对匹配算法要求较高,白延柱等人利用尺度不变特征变换(scale invariant feature transform,SIFT)算法[4~7]提取特征,再加上Ratio-test(比值测试)[8],但仍存在较大误匹配。
为了解决在宽基线场景和三维场景下的特征点精确匹配的问题,本文提出了平滑运动概率估计剔除算法,通过构建感兴趣区域的匹配点的概率函数,计算出特征点匹配正确的概率,同时结合网格加速匹配,快速地寻找特征点进行匹配。通过实验分析发现该算法具有很好的匹配精确度。
1 算法原理
假设在两个不同的位置对同一场景分别拍摄一次,得到两张图像,在一幅图像上的A区域存在两个距离很近的特征点,在进行特征点匹配时,这两个特征点匹配到另一幅图像上的B,C区域,且这两个区域之间的距离很大,出现了跳变现象,这说明两个特征点运动是不平滑的。假设B区域是正确的匹配点,而B区域附近没有点支持它的成立,同样C区域也是如此,那么这两个点作为外点就可以被剔除。
这里采用SIFT进行特征提取,加上本算法剔除外点。为了方便描述问题,将其建立数学模型。根据贝叶斯规则,由于真实匹配在运动空间中是平滑的,因此一致匹配概率更大。关键的核心内容是从嘈杂的数据中找到平滑匹配,其统计模型为
Si=‖xi‖-1
(1)
为了更加形象地描述这个模型,如图1所示,在支持区域,表示对点xi=2支持,统计Si=2。图中的错误点,没有支持点或者支持点很少,统计Sj=2。
图1 平滑运动概率模型
为了更好地论证模型(1)的有效性,假设图像中的一个特征点xi的统计值Si,Si服从二项分布(2),如果xi是正确的话,用pt表示图1中a区域到b区域附近邻支持点xi的概率;如果xi是错误的话,用pf表示它附近邻支持点的xi的概率
让fa表示a区域内n个支持点中的一个。定义事件:
图1左图(a)中有一个点如果匹配错误,存在和右图中任意位置匹配的可能性。如果恰巧匹配到b区域的可能性,满足随机分布m/M,m为b区域内特征点个数,M为右图中所有的特征点个数,为了让模型泛化能力更强,乘β阈值,当β=1,恰好是随机分布的假设,则pt的表达式为
前面可知,m/M→0时,所有pt→0,pf→0,所有两种分布特性差别非常大。
上面划分的a,b区域里面,正确特征点是连续的,如图2所示,相当于对区域a,b划一个更大的附近区域。假设区域a到区域b,那么应该区域a1到区域b1,如此类推下去。
图2 一致性区域扩增
反映上图的模型,将单个特征点统计模型扩展到整个感兴趣区域,其模型为
为了增大概率分布的差异,即pt,pf两者的差异
式中n为每个区域中特征点个数,K为区域的个数,即网格数。在网格中,K=9,而Si,pt,pf和式(7)一样。该Si二项分布的均值和标准差
模型的分割能力,即剔除外点性能,用P表示
2 网格加速匹配
虽然平滑运动概率估计算法具有很好的剔除外点的能力,但对匹配点划区域处理导致算法的复杂度很高,为了提高处理效率,本文采用划网格处理,如图3所示,只需要计算网格内对应特征点的个数,这样算法的复杂度就变成是问题。
图3 网格化处理
构造网格运动核,如图4所示,这样统计就变成9个网格匹配。通用网格模型表示为
图4 网格核之间的对应关系
图像特征对应点旋转问题、尺度问题,只需要旋转网格核、改变网格核的大小就可以得到解决。如图5所示。
图5 旋转尺度不变性
实验表明:在网格大小的经验值设置为20×20效果比较好。在这里设置阈值τ(3.18),若大于阈值特征点是内点,反之小于阈值则是外点。
网格加速匹配算法实现流程:
输入:x,s,r(特征对应点,尺度,旋转)
输出:Inliers (内点)
G1,G2=GenerateGrids(s)
K=GenerateGridsKernel(r)
fori=1 to |G1| do
j=1;
fork=1 to |G1| do
If |xik|>|xik| then
j=k;
end if
end for
Sij,τi=ComptueSmoothMotionSatatistces(K)
IfSij>τithen
Inliers=InliersUxij;
end if
end for
eturn Inliers。
3 实验与结果分析
本系统数据集测试与实际场景测试均选用笔记本机械革命x7-tis,i7—6700HQ,8G内存,GTX1060 6G实验平台。
在运动网格估计的加速匹配算法中,本实验选用TUM[9],Strecha[10]两种不同的场景数据集。
选用Strecha数据集,对两张视角很大的“教堂”图像使用SIFT加Ratio-test与SIFT加本算法测试宽基线匹配情况,如图6所示。
图6 Ratio-test与本算法宽基线对比
从上图中不难发现,本算法做宽基线匹配明显优于SIFT加Ratio-test算法。
选用TUM数据集,对具有三维场景的图像使用SIFT加Ratio-test与SIFT加本算法进行测试,结果如图7所示。
图7 Ratio-test与本算法三维场景对比
由于TUM自带深度信息,更加符合真实场景,在上图不难发现,Ratio-test在三维的真实场景中匹配效果很差,而本算法匹配效果很好。
对运动网格概率估计匹配效果,即相似度检测问题。本实验主要分析TUM、Strecha数据集在召回率(recall)、准确率(precision)、综合评估量(F-measure)三个方面的不同,如表1。
表1 匹配结果分类
召回率、准确率、综合评估量分别为
(12)
如图8所示,在(a)、(b)两幅图横坐标的中间开始,依次从上往下第1,3,4条曲线代表本算法,第2,5,6条曲线代表Ratio-test,横坐标表示图像旋转角度,范围为[0°,30°],纵坐标表示各项指标值,范围为 [0,100]。以(a)TUM数据集为例,不难发现,大角度时,Ratio-test的综合评估量(F-measure)非常小,几乎是无效的状态,准确率也很小,然而本算法在大角度时依然有效,综合评估量依然保持有0.38。由于准确率和召回率并不能完全说明两种算法的匹配能力。可以只看综合评价量,就可以推导出匹配算法的优劣情况。同样从(b)Strecha可以看出,在综合评估量上对比来看,本算法匹配能力优于Ratio-test。
图8 Ratio-test与本算法在数据集中匹配能力比较
4 结束语
选用TUM和Strecha两种不同的场景数据集,分别用SIFT-Ratio-test算法和SIFT加本算法在宽基线场景和三维场景下进行对比,从评价匹配能力的综合评估量来看,算法的匹配准确度要比SIFT-Ratio-test算法好很多,实验验证了该算法在这两种场景下具有很好的剔除误匹配能力,提高了匹配准确度,但是该算法剔除误匹配的处理速度不够快,这是以后要改进的方向。