基于重叠亮度序的曲线描述子
2020-03-25江燕王静刘红敏
江燕,王静,刘红敏
(河南理工大学 计算机科学与技术学院,河南 焦作 454000)
0 引 言
图像特征匹配是计算机视觉中的一个关键技术和经典问题,在三维重建、特征识别、图像配准等诸多领域有着极为重要的作用。以SIFT[1]的提出为标志,图像特征匹配研究取得了突破性进展,大量基于手工设计特征[2-4](handcraft feature)的点匹配算法被提出和应用。随着Alexnet[5]在ImageNet竞赛中脱颖而出,基于深度学习方法的点匹配算法相继被提出[6-10],其性能整体优于传统的基于手工设计特征的匹配方法。但基于深度学习的方法要收集大量的训练样本,例如N.Savinov等[11]使用2 000万个样本训练深度网络,以获得较好的特征点检测结果。而在一些特定情况下,大量训练样本的获取比较困难,特别是对于曲线匹配方法研究,由于存在遮挡、断裂等情况,一对匹配曲线在两幅图像上长短不一致,很难获取固定大小的图像作为其支撑区域。因此,现有曲线匹配方法仍采用基于手工设计特征的传统思路,还没有基于深度学习的方法提出。
作为曲线的特例,直线匹配在许多场景中不可替代,尤其是人工场景和三维重建。一些线匹配方法利用线段周围的光学信息,比如亮度[12]、梯度[13-14]、颜色[15]等,这些方法都假定对应线段之间有很大部分的重叠。当对应线段之间的重叠不足时,这个假定就导致这些方法的失败。除此之外,在重复纹理区域,因为一些线段缺乏变化的光学信息,也会导致错误匹配。
为减少曲线匹配中对线条形状的依赖性,近几年相关学者提出许多基于曲线纹理构建描述子的研究。WANG Z H等[16]提出均值标准差直线描述子(mean-standard deviation line description,MSLD),并将其推广到曲线匹配中,得到了均值标准差曲线描述子(mean-standard deviation curve description,MSCD)。该方法虽然取得了不错的匹配效果,但是需要依靠局部主方向实现旋转不变性,并且该方法采用固定形状的子区域划分会产生边界误差。为了解决这个问题,FAN B等[17]提出一种新颖的依据样本点亮度序进行子区域划分的方法;WAN Z H等[18]提出了依据采样区域整体和局部亮度顺序信息构造(local intensity order pattern,LIOP)特征;将文献[17-18]的子区域划分方法应用到MSCD中,王志衡等[19]提出了基于亮度序的均值标准差描述子(intensity order mean-standard deviation description,IOMSD)算法和基于亮度序的曲线描述子[20](intensity order curve descriptor,IOCD)。尽管基于亮度序的子区域划分方法能消除边界误差,但是当曲线邻域出现部分遮挡和阴影时,这种子区域划分方法不稳定,而且亮度序划分方法易受噪声、非线性光照变化的影响,使处于划分阈值附近的像素点被误划分到相邻子区域,进而影响描述子的匹配性能。
针对上述问题,本文提出一种增强亮度序划分稳定性的方法。具体步骤:首先将支撑区域内所有像素点的亮度值进行非降序排列,其次将支撑区域按所含像素点的个数等分为若干子区域,最后将每个子区域与其后相邻的子区域进行一定程度的重叠合并,形成新的子区域,使相邻子区域包含一些相同的像素点。光照单调变化和几何旋转不会改变亮度序,因此,基于亮度序的子区域划分方法同时具有几何旋转不变性和亮度单调变化不变性。但是该方法明显不适用于非单调光照变化和高斯噪声场景,因此,本文在IOMSD和IOCD的基础上将原有子区域进行部分重叠划分,分别提出基于重叠亮度序的均值标准差描述子(overlapping intensity order based mean-standard descriptor,OIOMSD)和重叠亮度序曲线描述子(overlapping intensity order curve descriptor,OIOCD)。
1 重叠亮度序曲线描述子
1.1 支撑区域的确定与子区域的划分
基于图像纹理的描述子构建的第一步是确定特征点的支撑区域,OIOMSD和OIOCD支撑区域的确定和子区域的划分方法一致。对于曲线C上的任意像素点Pi,规定以Pi为中心、R为半径的圆形区域为Pi的支撑区域,记为PSR(Pi),将曲线上各像素点支撑区域的集合定义为曲线C的支撑区域:CSR(C)=PSR(P1)∪PSR(P2)∪…∪PSR(Pi)∪…,显然上述曲线支撑区域的确定过程无需考虑曲线上各点的主方向。
为了提高描述子的分辨能力,通常在构造描述子之前对支撑区域进行子区域划分。Fan B等[17]提出的依据亮度序划分子区域的流程是首先将曲线支撑区域CSR内所有点的亮度值进行非降序排列,其次依据排序信息将支撑区域平均划分成M个子区域G1(C),G2(C),…,GM(C)。图1(b)显示了基于亮度序的子区域划分结果,图1中各个子区域使用不同颜色标记,以便于观察划分的细节。
图1 子区域的划分
图1显示了旋转变化下两幅待匹配图像中对应的曲线,对应曲线的支撑区域含有大量亮度值近似的像素点。图1(b)展示了使用FAN B等[17]所提亮度序划分方法对两条曲线支撑区域进行子区域划分的结果。IOCD将曲线支撑区域划分为6个子区域,对比左右2条曲线的子区域划分可以发现,子区域划分结果并不稳定。图1(b)第二个子区域左下方位置有一些像素点,而与之对应的子区域中相同位置基本没有出现像素点。另外,最后一个子区域的形状明显不同,左图中像素点更为集中。对于较平坦区域,当图像发生自然光照变化时,亮度值处于划分阈值附近的像素点因其亮度变化程度不一致而易被划分到不同的子区域中,造成划分结果的不稳定。
为解决上述灰度序划分方法造成的像素点划分不稳定问题,本文提出了重叠灰度序划分方法。将当前子区域Gi(C)与其后相邻的子区域Gi+1(C)进行部分叠加(重叠比率ro将在2.1节参数选择部分讨论),得到具有重叠亮度范围的新的子区域Gj(C),
Gj(C)=Gi(C)∪ro*Gi+1(C),
(1)
式中,i=1,2,…,M-1;j=1,2,…,M-1。
以OIOCD为例,图1(c)显示了这种重叠亮度序划分子区域的结果(重叠比率ro=1)。显然,基于重叠亮度序划分子区域得到的各子区域内的像素点的空间分布基本一致。相比于图1(b)的亮度序划分结果,本文所提的重叠灰度序划分方法更加稳定。
1.2 重叠亮度序描述子
OIOMSD的构造步骤如下:
(1)确定曲线支撑区域并基于重叠亮度序划分子区域。
(2)计算曲线上各点的平均梯度和支撑区域内某一采样点的梯度向量。对这两个向量分别进行标乘和矢乘运算,得到支撑区域内各点的旋转不变描述向量。
(3)将上述旋转不变描述向量排列成矩阵形式并统计子区域的均值向量和标准差向量。
OIOCD的构造步骤如下:
(1)确定曲线支撑区域并基于重叠亮度序划分子区域。
(2)基于亮度序映射计算支撑区域内采样点的亮度序特征。
(3)通过累加各子区域采样点的加权亮度序特征得到亮度序特征向量。
(4)依次连接得到曲线的描述矩阵DM(C),累加DM(C)并将其进行归一化,得到重叠亮度序曲线描述子。
2 实验及结果
实验主要展示OIOMSD和OIOCD描述子在真实图像上的匹配结果。实验所采用的图像一部分是自己采集,一部分选自Oxford数据集[21],图像的大小均为640像素×480像素。待匹配曲线采用下列方法检测得到:对于任一图像,首先利用Canny边缘检测算子提取图像中的边缘曲线[22],其次在各边缘曲线的交点处和大曲率处断开(曲率阈值5.0),最后去掉包含像素点小于20的较短曲线。Canny算子的最高阈值和最低阈值分别取0.2和0.1,高斯滤波参数取1.2。实验采用采用欧式距离度量描述子之间的相似性,匹配准则为最近邻/次近邻准则NNDR(Nearest/Next Ratio),阈值设为0.8。
2.1 参数选择
本文提出的OIOMSD描述子有3个参数:(1)支撑半径R;(2)子区域个数M;(3)子区域重叠比率ro。其中M决定描述子的维数,R决定支撑域的大小,ro决定重叠后子区域的大小。随着子区域个数的增加和支撑域半径的增大,OIOMSD描述子将具有更强的分辨能力,但同时也对图像局部遮挡和形变更加敏感,因此,这3个关键参数同时影响描述子的稳定性和分辨能力。
本文提出的OIOCD描述子有7个参数:(1)高斯平滑参数σ;(2)支撑半径R;(3)子区域个数M;(4)采样半径r;(5)采样点数N;(6)阈值TID;(7)子区域重叠比率ro。由文献[14]可知,参数σ=1.0,M=6,N=4,TID=5可取得较好的匹配效果,剩下R、r和ro待确定。
确定这6个参数,选用的图像集分别是图2视角变化图像集的第一行前3幅图像和图3旋转变换图像集的第一行前3幅图像。表1列出了OIOMSD不同R和M下各图像对的匹配结果,表2列出了OIOCD不同R和r下各图像对的匹配结果,表3和表4分别给出OIOMSD和OIOCD子区域不同重叠率下的匹配结果。本文各表中数据结果第一个数代表匹配总数,括号中的数代表错误匹配数。为了更好衡量算法的优越性,采用匹配总数和匹配正确率这两个指标,这同样适用于下表。
由表1和表2可知:随着支撑区域半径R的增大,匹配总数增加,但随着子区域个数M和采样半径r增大,匹配总数减小,结合匹配正确率,权衡考虑R和M以及R和r,OIOMSD在R=12,M=8时匹配效果最好,OIOCD在R=22,r=6时匹配性能最好。由表3可知,OIOMSD中随着子区域重叠比例的增加,匹配总数增加,但匹配正确率下降,本文取ro=1/3。由表4可知,ro=1时匹配总数和匹配正确率最高。
表1 OIOMSD选取不同R和M的匹配结果
表2 OIOCD选取不同R和r的匹配结果
表3 OIOMSD子区域不同重叠比率的匹配结果
表4 OIOCD子区域不同重叠比率的匹配结果
OIOMSD的实验在参数R=12,M=8,ro=1/3下进行,OIOCD的实验在σ=1.0,M=6,N=4,TID=5,R=22,r=6,ro=1下进行。
2.2 视角变化实验
图2是视角变化图像集,6组图像分别是通过改变相机位置获得的。表5列出了和IOMSD、IOCD的对比结果。与IOMSD算法相比,OIOMSD算法在匹配总数上有所提高,并且正确率提高3个百分点,OIOCD算法虽然在匹配总数上有所下降,但是匹配正确率提高了11个百分点。OIOCD在匹配总数与匹配正确率上均优于IOCD,因此,对于视角变化图像,OIOMSD和OIOCD都具有较强的鲁棒性。
图2 视角变化图像集
表5 视角图像集下的匹配结果
2.3 旋转变化实验
本节主要验证OIOMSD和OIOCD描述子在旋转图像集上的匹配性能。图3为旋转变化实验图像集,包含9对旋转图像,旋转角度分别为20°,10°,30°,30°,10°,30°,10°,30°,20°。表6给出4种算法在旋转变化实验图像集下的匹配结果。可以看出,OIOMSD和原来的算法相比,在匹配总数和匹配正确率上都有明显提高。OIOCD虽然在匹配总数略低于IOCD,但比其他3种算法有明显提高,并且OIOCD在匹配正确率均高于其他3种算法。尤其和IOMSD相比,匹配正确率上提高了5个百分点。因为OIOCD在构建描述子时所选用的采样模板及构建方法都具有的旋转不变性。
图3 旋转变化实验图像集
表6 旋转变化图像集的匹配结果
2.4 噪声图像实验
图4为6对噪声图像,分别由原始图像和噪声图像构成,添加的噪声是均值0,标准差0.01的高斯噪声。表7给出5种算法在该图像集的匹配结果。与IOMSD相比,OIOMSD在匹配总数与匹配正确率上均有所提高。OIOCD在匹配总数上略低于IOCD,但匹配正确率和IOCD一致,均为100%。OIOCD在匹配总数和匹配正确率上远远高于IOMSD,说明由于噪声影响,IOMSD子区域划分不稳定,本文提出的子区域划分方法很好地解决了子区域划分不稳定的问题。
图4 噪声图像集
表7 噪声图像集的匹配结果
2.5 光照变化实验
图5是光照变化图像集,第一幅图像是非线性光照变化图像,第二幅是单调光照变化,其他的图像均为Photoshop处理过的非单调光照变化的。表8给出该图像集下OIOMSD与OIOCD算法和原来两种算法的匹配结果。
图5 光照变化图像集
显然,OIOMSD匹配总数和匹配正确率比原来的算法都有提高。OIOCD在匹配总数和匹配正确率均远远高于IOMSD。虽然在匹配正确率上略低于IOCD,但是匹配总数有显著的提高,尤其是在非单调光照变化图像上。说明对于非单调光照变化图像,OIOCD有更强的鲁棒性。
表8 光照变化图像集的匹配结果
2.6 实验结果实例
为了更加清楚展示曲线匹配的结果,图6详细给出了OIOMSD在4组图像集上的实验结果,图6中列出了OIOMSD和IOMSD匹配总数和匹配正确率的对比结果。
图6 曲线匹配实验结果对比
3 结 论
本文在基于亮度序划分子区域的描述子IOMSD和IOCD的基础上分别提出两种新的曲线匹配描述子OIOMSD和OIOCD。它们是基于全局亮度序进行子区域划分的,通过将相邻子区域重叠构成亮度序范围交叉的新的子区域,利用图像信息计算特征向量从而构建描述子。重叠亮度序的子区域划分方法增强了子区域划分的稳定性,充分利用了曲线周围的纹理信息。实验结果表明,本文提出的重叠亮度序方法构造的OIOMSD和OIOCD描述子对常见的图像变换具有较好的匹配性能,尤其OIOCD対非线性光照变化具有更好的鲁棒性。