赵爱罡
摘 要:图像应用发展迅速,图像配准、识别、检测、跟踪等应用丰富,其核心离不开相似性匹配,即在实时场景中找到感兴趣的区域或物体,深度学习算法目前研究较多,其框架仍是提取特征进行识别。模板匹配算法发展最早,对后续智能算法研究有一定的促进作用,本文主要介绍一种对光照、角度、尺度鲁棒的匹配算法。
主要思路是把模板图像处理成多角度,多尺度的一系列图像模板,用这些模板分步骤地与待匹配图像做对比,找出匹配点。
一、处理模板图像
把360°按照间隔10°划分为36分,把尺度空间划分为10个等级(尺度变化参数为s=0.5,0.6,...,1.4,可根据实际需求调整),这样就生成了360个不同尺度和角度的模板,当然还要对所有的模板进行高斯平滑处理,减少误差带来的影响。如果用穷举法把所有的模板都和参考图像进行搜索匹配,那么时间消耗将是灾难性的。
二、确定变换尺度
把模板图像按照半径由小到大的顺序生成圆环区域,半径大小为r=2,4,...,30,在每一个圆环区域内,计算所有像素点灰度的平均值:
对于模板图像的任意角度旋转都是不变的,这样按照半径大小排列就形成了一个旋转不变的15维的向量(模板半径不足30可以补零,匹配时不计算在内),对第一步中所有尺度的模板图像都做相同处理,得到10个15维的旋转不变向量。接下来把参考图像中的每一个像素点,按照式(1)处理,生成一个三维数据矩阵:
这样参考图像中每个像素点都代表一个如式(2)所示的15维旋转不变向量,把每个向量都和从模板图像系列中得到的10个向量做互相关性计算:
把式(3)中互相关值大于阈值的点记为尺度检测点;同时记录下取最大值时的值,就是匹配图像的最佳尺度變换参数。
三、径向采样,确定旋转角度
把原始的模板图像按照角度划分为36个径向直线(每10度一个间隔),直线长度取模板图像长宽数据中的小者的一半,记为。这样,在每个角度为(相对于水平x方向)的径向直线上,计算其平均灰度值:
其中为径向直线上像素点的个数,式(4)表明,这个平均值在尺度变换中保持不变。把所有角度的径向直线平均灰度值按顺序排列,形成一个36维的尺度不变向量,改变起始直线角度,可以得到全部36个向量(只是改变向量的起始位置,不用再在旋转模板中计算)。
按照第二步求出的变换尺度,参考图像的径向直线长度为,按照式(4),参考图像中的尺度检测点求其尺度向量:
这样每个尺度检测点都形成一个36维的尺度不变向量,把这些向量和模板图像的向量做互相关计算:
把式(6)中的互相关值大于阈值的尺度检测点记为尺度旋转检测点;同时记录下取最大值时的值,就是旋转匹配图像的最佳旋转角度。
最后,利用变换参数为和的模板图像(第一步中所描述的只用生成旋转角度为的这一组模板图像),对所有在第三步求出的尺度旋转检测点进行互相关值计算,找出互相关值最大的点,即为两幅图像的最佳匹配点。
上述算法通过圆投影和径向直线抽样的方式,生成旋转不变和尺度不变这两种向量用来确定图像之间的尺度变换参数和旋转变换参数,并在这个过程中筛选出较少的待检测点,最后通过互相关计算确定准确的匹配位置。它比第一步中提到的穷举法要快。
通过上面的介绍,可以看出来,基于灰度的模板匹配方法比较“呆板”,图像的变换(旋转和尺度)、噪声和遮挡等对匹配效果影响较大;而基于原投影的匹配算法在一定程度上解决了图像变换的问题。
我们往往关注图像中比较特别的地方,两幅图像中这样的地方如果相似,就认为图像匹配上了。对应到图像数据上,这些“特别”的地方,就是图像中像素点灰度值变化剧烈的地方,我们称之为图像特征。图像特征有很多种,如颜色、纹理、边缘和角点等等。基于特征点的图像匹配方法,首先要解决的问题就是提取特征点,当图像中存在旋转变换、尺度变换、光照变换和噪声影响等时,特征点提取算法应该能保持其稳定性(在图像中的位置不变),如Harris角点提取算法对旋转变换和光照变换具有较好的不变性,而SIFT特征点在尺度空间中提取,具有较好的尺度不变性;其次,要对提取出的特征点进行描述(也可以直接利用同一幅图像中特征点之间的几何关系进行匹配,但这种方法难度大,准确率也较低),利用特征点邻域内的图像信息,生成一个对该特征点描述的向量,这个向量称为描述子向量,特征点描述子向量对于图像的各种变换和噪声也应该具有一定的不变性;最后就是特征点度量了,利用描述子向量,通过一定的对应方法,找出一对一的图像特征点对,从而确定两幅图像之间准确的变换关系。