模板匹配和相关系数法是目标跟踪的经典方法,它的优点有很多:简单准确,适用面广,抗噪性好,而且计算速度快。缺点是不能适应剧烈光照变化和目标剧烈形变。而模板匹配法就是指在一帧图像内寻找目标模板的位置,和模板最像的地方就是目标了。只要把全图的所有子区域和目标模板比较一下,找到最像目标模板的子区域,它就是目标的位置。如何度量子区域和目标模板的相似程度呢。最简单的办法就是计算这二者的相关系数,本节介绍关相关系数知识。
相关系数(r)是一种数学距离,可以用来衡量两个向量的相似程度。它起源于余弦定理:cos(A)=(a2+c2-b2)/2bc.如果两个向量的夹角为0度(对应r=1),说明它们完全相似,如果夹角为90度(r=0),则它们完全不相似,如果夹角为180度(r=-1),则它们完全相反。把余弦定理写成向量的形式:
上式中,两个向量相似的部分被减掉,它们的相关性就被放大了。
假设目标模板是一个10*10的图像,它就可以被看作是一个100维的向量,每一维是一个像素点的灰度值。然后把这个向量和图像中的每一个子区域作比较,找出相关系数最大的子区域,目标的位置就找到了。算法加速按照上文的方法在一帧400*600的图像中寻找一个20*20的目标大概需要几秒的时间,还远远达不到实时性的要求。上式可以化简加速的地方有很多,将原式变形:
其中xi的求和,分母的左半部分都是一个常数,不必每次都算。分子的左边,yi求和,分母的右边可以通过intergral image的方法来加速。通过这些加速方法,算法的速度可以达到每帧100ms以内,但还是不能达到实时的标准。
在搜索时,最笨的方法就是暴力式逐行遍历搜索,把图像中的每一个子区域都计算一遍。实际上目标往往只在一个非常小的区域出现,很多地方根本没必要计算。所以在搜索时,如果当前位置的相关系数小于一定阈值或者该位置离上一帧的目标中心很远的时候,搜索的步长可以加大,反之则减小搜索步长。另一种搜索方法是以上一帧的目标中心为起点,以梯度下降的方法来搜索目标。该方法有一点需要注意,如果目标运动幅度较大,需要利用图像金字塔的方法搜索。
[1] Hoggar,S.G.(2006),"Mathematics of Digital Images:Creation,Compression,Restoration,Recognition".
关于Image Engineering & Computer Vision的更多讨论与交流,敬请关注本博客和新浪微博songzi_tea.