简单看了几篇模板匹配相关的论文,总结了一下,后期待修改
模板匹配介绍
模板匹配是计算机视觉应用中最常用的技术之一,可以应用在视频跟踪,图像拼接,目标检测,字符识别和3D重建等方向上。
模板和目标图像的子窗口之间的相似性度量是模板匹配的核心部分。
传统的模板匹配相似性度量
传统的模板匹配方法通常使用平方差和(SSD,sum-of-squared-differences)或归一化积相关(NCC,normalized cross-correlation)等来计算模板与基础图像之间的相似度得分。
在搜索图S中,以(i,j)为左上角,取MxN大小的子图,计算其与模板的相似度;遍历整个搜索图,在所有能够取到的子图中,找到与模板图最相似的子图作为最终匹配结果。
SSD
平方差和,数值越大相似度越小。NCC
利用子图与模板图的灰度,通过归一化的相关性度量公式来计算二者之间的匹配程度。传统算法评价:
优点:
①思路简单,容易理解。②运算过程简单,匹配精度高。
缺点:
①运算量偏大。②对噪声非常敏感。
总结:
当模板和目标搜索图像之间的转换很简单时,这些方法效果很好。但是,当转换复杂或非刚性时(stretching or shrinking),这些方法的成功率会大幅下降。 另外,其他因素(例如遮挡和颜色偏移)也会对这些方法造成很大影响。
并且,这种方法测量相似性时考虑模板和目标图像中的候选窗口中的所有像素(特征点)。当目标背后的背景改变时,这种方法是不可取的。
BBS(Best-Buddies-Similarity)
Introduction
CVPR2015 论文地址
本质是Best-Buddies Similarity(BBS算法)。这是一种在两个点集之间的无参鲁棒相似性测量,核心是计算Best-Buddies Pairs(BBPs)的数量。
Method
用传统的滑动窗口方法,在模板和图像中每个可能的窗口(模板大小)之间同样计算出BBS。
BBS
首先需要将每个图像块转换为中的一个点集。为此,把图像分成若干个的k x k图像块。每个图像块由其RGB值组成的个矢量和中心像素相对于坐标系的xy坐标表示。
BBS测量了两个点集P和Q之间的相似性,当和互为最近邻时,他们为一组BBP(原集和目标集中的点对,每个点都是另一个点的最近邻)。
点集P和点集Q之间的BBS定义为:(d()为距离函数)BBS随两点集的分布区别增大而减小,两个分布相同时取得最大值。如果两个点是BBP,它们很可能是从相同的分布中提取的。
BBS的主要特性为
- 只依赖于匹配点(BBPs)的子集(通常很小),其余的被视为外点,对于大部分异常点具有鲁棒性
- BBS可以找出数据中的双向匹配点而不需要任何先验知识或者潜在变形
- BBP通过计算BBP的数量进行排名,而不是使用实际的距离值
CONCLUSION
在存在高水平的异常值(即背景噪声、遮挡)和目标的非刚性变形的情况下,将模板与给定图像匹配。可以抵抗复杂的几何变形和高度异常的点(背景噪声和遮挡)。
BBS可以在存在异常值的情况下可靠地匹配来自同一分布的特征,在视角变换和集合变形下依然可以进行稳健的模板匹配。
缺点是当模板与目标图像相比很小时,或者离群值(遮挡对象或背景杂波)覆盖了大多数模板时,成功率会降低。
DDIS (Deformable Diversity Similarity)
Introduction
——CVPR2017 论文地址
DDIS明确考虑了可能的模板变形,并使用了模板和搜索图像中潜在匹配区域之间的NN特征匹配的多样性。
采用了基于特征的BBS无参数方法。基于目标图像窗口和模板之间特征匹配的多样性,它对复杂的变形,明显的背景杂波和遮挡具有鲁棒性。
Method
Diversity
我们的关键思想是通过最近邻域(NN field)的两个属性来得到目标和模板之间的相似性。
首先,如图2d所示,当目标和模板对应时,大多数目标patch在模板中具有唯一的NN匹配。这意味着最近邻域高度多样化,指向模板中的许多不同的patch。
相反,如图2e所示,对于任意目标,大多数patch都没有很好的匹配,并且NN收敛到恰好与目标patch相似的少量模板点。第二,不佳匹配往往意味着较大的变形,如图2e中的长箭头所示。
DIS & BBP
对每个q,都有一条红箭头指向它的NN p,如果p q为BBP,将两点之间的红箭头改为绿线。
DIS计算由红色箭头或绿线指向的蓝色三角形数量。BBS计算绿线数量。
(a)P和Q的分布相似,因此,许多p是某些q的NN,并且有很多BBP。这里DIS = BBS =8。
(b)P和Q具有不同的分布。密集p中的单个q或密集q中的单个p对DIS和BBS均贡献1。有时,Q和P之间存在唯一的NN匹配,而不是BBP。由于P和Q的分布不同,DIS和BBS都相对较低,因此DIS = 3和BBS = 2。
DDIS
为了整合对大变形的惩罚,对DIS进行了两种修改:
首先,为了获得变形场的显式表示,区分每个patch的外观和位置并将它们分别对待。
其次,提出了另一种测量多样性的方法,该方法可以考虑变形量。
令表示外观,而表示patch p的位置(q同理)。我们为每个点寻找基于appearance的 (d为距离函数)
和它的的location距离由表示
定义作为为的patch q的数量,
定义DDIS:其中归一化因子c = 1 / min {M,N}
该定义可以看作是点上的contribution之和。 每个点的贡献由其隐含变形矢量的长度反向加权。
当点具有唯一的NN时,则,指数达到最大值1。
当q_j的NN被许多其他点共享时,则大,指数值低,并且q_j对相似度的总体贡献低。
DDIS具有使其具有吸引力的几个属性:
(1)它主要依赖于具有不同NN的点。 共享NN的点的分数对分数的影响较小。
(2)DDIS不需要任何有关数据或其潜在变形的先验知识。
(3)DDIS分析NN field,而不是使用实际距离值。
CONCLUSION
DDIS与BBS极为相似,他们都依赖于两组点之间的NN匹配。 但是有两个主要区别:
(i)两组之间相似性的测量方式 →(i)计算复杂度降低,运行时间缩短
(ii)空间变形量的计算。→(ii)检测精度更高
而DDIS对外观和位置之间的分隔也可以使模板定位更加准确。具有非常相似外观的目标窗口重叠可能导致非常相似的得分。 DDIS选择隐含变形较少的窗口,可以提高定位精度。
DDIS可以克服诸如背景杂波,遮挡和非刚性变形等。缺点是不能处理物体的明显尺度变化。
CoTM (Co-occurrence based template matching)
Introduction
CVPR2018 论文地址
CoTM提出了一种基于共现统计(co-occurrence statistics)来匹配像素的新度量,以量化模板和搜索图像中潜在匹配区域之间的差异,在整个图像平面上收集共现统计信息,测量一对像素值在小窗口内共现的概率。该度量依赖于一个共现矩阵(co-occurrence matrix),该矩阵对一个窗口内某个像素值对共同出现的次数进行计数。
共现统计与前面提到的基于补丁的表示形式不同。基于补丁的方法收集本地统计信息,而共现方法则收集全局统计信息。图像中经常出现的像素值可能是纹理区域的一部分,因此就隐式捕获了纹理相似性的一些概念。CoTM与实际像素值无关,仅与它们的共现统计有关。
Method
基于SSD的模板匹配最小化,其中,T是模板,R是图像I中与T大小相同的区域,p是像素位置。
而CoTM最大化,其中M是从图像数据中学习的(规范化)共现矩阵,可以使用它来给出将像素值与像素值 匹配的cost。
对于多通道图像(即彩色或深层特征),我们使用k-means将图像量化为固定数量的k簇。
Co-occurrence Matrix
共现矩阵C(a,b)对两个像素值a和b一起出现在图像中的次数进行计数。值为其在像平面中的距离。其中p和q是像素位置,I_p是图像I中像素p的值,Z是归一化因子。 σ是用户指定的参数(仅考虑与σ成比例的窗口内的像素),如果括号内的值为true,则[·]等于1,否则为0。
为了保留图像中很少出现的像素值,将C除以它们的先验概率,以获得点向互信息(Pointwise Mutual Information PMI)矩阵:
其中h(a)是图像中像素值a出现的概率。
M(A):棕色和蓝色很少同时出现,PMI较低。
M(B):橙色和白色同时出现,PMI高。
M(C):浅绿色和深绿色, 即使频繁共现,PMI值也很低,因为他们的先验概率很高。
Algorithm
CONCLUSION
CoTM对失准和变形(misalignment and deformations)具有鲁棒性,可以快速计算,并且可以处理不同的像素值,例如RGB颜色或深色特征。
但CoTM受到许多限制:
- 首先,灰色像素值的共现效果不好。
- 其次,当模板的像素值频繁出现在背景中时,性能会下降。(在这种情况下,背景像素不会降低权重。)
-
最后,尚未解决照明方面的变化,
CONCLUSION
以上三种方法:
- BBS,侧重于nearest-neighbor(NN)匹配,以排除由背景像素引起的潜在和不良匹配。
- DDIS,考虑了可能的模板变形,使用了模板和搜索图像中潜在匹配区域之间的NN特征匹配的多样性度量。
- CoTM,量化模板和搜索图像中潜在匹配区域之间的差异。
这些方法确实提高了模板匹配的性能。但是,由于两个局限性,这些方法无法用于深度神经网络(DNN)中:
- 使用不可微分的运算(例如阈值,计数等)
- 使用对DNN无效的运算,例如作为循环和其他非批处理操作。