《机器视觉算法与应用》第3章 机器视觉算法之模板匹配——学习笔记
文章目录
3.11 模板匹配
前面的章节中我们讨论了各种各 样的技术,将这些技术合理组合就可以实现在一幅图像中搜索目标物体的算法。虽然从理论上讲使用这些技术可以用来搜索所有类型的物体,但对某种特殊类型的物体来说,实现一个可靠的识别算法是非常复杂的。
使用模板匹配可以应用在下面几种场合。首先,它可以用来实现完整性检测。完整性检测的目的是为了检测某个物体存在与否。另外模板匹配还可以用来做物体识别,也就是区分不同类型的物体。
3.11.1 基于灰度值的模板匹配
在这节中我们将分析最简单的一类模板匹配算法,这类算法基于模板与图像中最原始的灰度值进行匹配。我们上面巳经提到,模板匹配是通过计算模板与图像之间的相似度实现。
3.11.2 使用图形金字塔进行匹配
使用上述讨论的停止标准的情况下,在整个图像中计算相似度量也是一个非常耗时的工作。 如果不使用停止标准, 那么算法的复杂度为O(whn) 其中ω和h是图像的宽和高,n是模板中点的数量。使用停止标准一般情况下可以提速的比例为一个常数,但是并不能改变算法复杂度。因此 为了能够在图像中实时找到模板,有必要提出能够进一步提高搜索速度的方法。
3.11.3 基于灰度值的亚像素精度匹配
目前为止, 我们通过匹配得到的模板位置为像素精度。这个位置是通过提取相似度量的局部最大值(SAD,SSD)或局部最小值(NCC)得到。为了使得到的模板位姿的准确度 更高,可以提取亚像素精度的局部最小值或最大值。
我们只需要将在局部最小值或最大值附近3 × 3的邻域内的相似度量拟合为一个。然后求解得到该多项式的局部最大值或最小值。另外一种方法是在模板和图像灰度值之间使用最小二乘匹配。由于灰度值之间的最小二乘匹配会受光照变化的影响,因此必须为光照变化建立明确的模型,并且它们的参数必须在最小二乘法拟合中确定,从而使算法不受光照变化影响。
3.11.4 带旋转与缩放的模板匹配
前为止,我们将模板匹配限定为模板与图像中的目标物体方向与尺寸一致的情况,也 就是说可能位姿的空间被限定为平移的空间。上面我们讨论到的相似度量方法只能够容忍图像中的目标物有很小的旋转和缩放。因此,如果图像中目标物体的方向或大小与模板中不同,那么该目标物体将不能被找到。如果我们希望处理更多类型的变换,例如刚性变换或相似变换,就必须更新匹配方法。为了简单起见,我们将只讨论存在旋转的情况,但这个方法也可以扩展到存在缩放的情况,甚至类似的广义变换。
3.11.5 可靠的模板匹配算法
很多年来,机器视觉应用中都选用上面讨论的模板匹配算法。然而,最近越来越多的应用中要求就算在目标物体由于遮挡或其他方式的干扰导致只有部分出现在图像中时也能找到模板的位置另外,甚至在目标物体本身存在大的干扰的情况下也能够找到目标物体的位置。这些干扰通常称为混乱。另外在图像中存在严重的非线性光照变化时,也应该能够找到目标物体。目前为止我们讨论的基于灰度值的模板匹配算法不能够处理这些类型的干扰。因此,这章节中剩余的部分我们将讨论几种其他的方法,使用这些方法可以在存在遮挡、棍乱和非线性光照变化的情况下找到目标物体。
边缘匹配算法中的一大类是基于模板边缘与图像边缘之间的距离。这些算法一般使用原始边缘点进行匹配。