模板匹配

模板匹配（）R. Brunelli, Template Matching Techniques in Computer Vision: Theory and Practice, Wiley, , 2009 (  TM book)是數位影像處理中用于将模板图像匹配目标图像其中一小部分的技术。在常被用于制作业中的质量控制、Kyriacou, Theocharis, Guido Bugmann, and Stanislao Lauria. "Vision-based urban navigation procedures for verbally instructed robots ." Robotics and Autonomous Systems 51.1 (April 30, 2005): 69-80. Expanded Academic ASAP. Thomson Gale.或图像边缘检测中WANG, CHING YANG, Ph.D. "EDGE DETECTION USING TEMPLATE MATCHING (IMAGE PROCESSING, THRESHOLD LOGIC, ANALYSIS, FILTERS)". Duke University, 1985, 288 pages; AAT 8523046。

模板匹配的最大挑战是遮挡检测，在这种情况下，所需的对象部分隐藏在图像中；此外，当物体扭曲或从不同角度成像时，检测非刚性变换亦为挑战之一。其它挑战因素包括图像对照明和背景变化的敏感性、图像背景杂乱，以及图像尺度变化。

传统的模板匹配方法包括交叉相关（）和绝对差和（）法。随着机器学习领域的进步，使用深度神经网络（如 卷积神经网络）进行特征提取已被证明极其有效，并已成为最先进的模板匹配算法的标准。这种基于特征的方法通常比传统的模板匹配方法更具有穩健性，并且可以匹配具有非刚性和平面外变换以及高背景杂波和光照变化的模板Li, Yuhai, L. Jian, T. Jinwen, X. Honbo. “A fast rotated template matching based on point feature .” Proceedings of the SPIE 6043 (2005): 453-459. MIPPR 2005: SAR and Multispectral Image Processing.B. Sirmacek, C. Unsalan. “Urban Area and Building Detection Using SIFT Keypoints and Graph Theory ”, IEEE Transactions on Geoscience and Remote Sensing, Vol.47 (4), pp. 1156-1167, April 2009.。

 实现 
在这个简单的实现中，模板匹配方法应用于灰度图像，通过绝对差和法，最终将给出模板图像与搜索图像最匹配的左上角位置。

minSAD = VALUE_MAX;

// 在匹配的图像中进行循环
for ( size_t x = 0; x <= S_cols - T_cols; x++ ) {
    for ( size_t y = 0; y <= S_rows - T_rows; y++ ) {
        SAD = 0.0;

        // 在模板的图像中进行循环
        for ( size_t j = 0; j < T_cols; j++ )
            for ( size_t i = 0; i < T_rows; i++ ) {

                pixel p_SearchIMG = S[y+i][x+j];
                pixel p_TemplateIMG = T[i][j];

                SAD += abs( p_SearchIMG.Grey - p_TemplateIMG.Grey );
            }

        // 保存寻找到的最佳位置
        if ( minSAD > SAD ) { 
            minSAD = SAD;
            position.bestRow = y;
            position.bestCol = x;
            position.bestSAD = SAD;
        }
    }

}

对彩色图像执行模板匹配的一种方法是将像素分解为其颜色分量，并使用分别为每种颜色计算的SAD之和来测量颜色模板和搜索图像之间的匹配质量。

参见
 臉部辨識系統
 模式识别
 计算机视觉


参考来源

外部链接
OpenCV中的模板匹配 
使用模板匹配技术的目标识别 

Category:图像处理