前言
模板匹配和相關系數法是目標跟蹤的經典方法,它的優點有很多:簡單准確,適用面廣,抗噪性好,而且計算速度快。缺點是不能適應劇烈光照變化和目標劇烈形變。
所謂模板匹配法,就是指在一幀圖像內尋找目標模板的位置,和模板最像的地方就是目標了。只要把全圖的所有子區域和目標模板比較一下,找到最像目標模板的子區域,它就是目標的位置。如何度量子區域和目標模板的相似程度呢?最簡單的辦法就是計算這二者的相關系數。
相關系數
相關系數(r)是一種數學距離,可以用來衡量兩個向量的相似程度。它起源於余弦定理:cos(A)=(a2+c2-b2)/2bc.如果兩個向量的夾角為0度(對應r=1),說明它們完全相似,如果夾角為90度(r=0),則它們完全不相似,如果夾角為180度(r=-1),則它們完全相反。把余弦定理寫成向量的形式:
cos(A) = <b,c>/(|b|*|c|),
即:cos(A) = (b1c1+b2c2+… bncn)/sqrt[(b12+b22+…+bn2) (c12+c22+…+cn2)]
其中分子表示兩個向量的內積,分母表示兩個向量的模相乘。
在實際應用中,更常用的是去均值相關系數,它在上式的基礎上還要在分子分母減去各個向量的均值:
這樣,兩個向量相似的部分被減掉,它們的相關性就被放大了。
假設目標模板是一個10*10的圖像,它就可以被看作是一個100維的向量,每一維是一個像素點的灰度值。然后把這個向量和圖像中的每一個子區域作比較,找出相關系數最大的子區域,目標的位置就找到了。
算法加速
按照上文的方法在一幀600*800的圖像中尋找一個30*30的目標大概需要幾秒的時間,還遠遠達不到實時性的要求。上式可以化簡加速的地方有很多,將原式變形:
其中xi的求和,分母的左半部分都是一個常數,不必每次都算。分子的左邊,yi求和,分母的右邊可以通過intergral image的方法來加速。通過這些加速方法,算法的速度可以達到每幀100ms以內,但還是不能達到實時的標准。
搜索策略
在搜索時,最笨的方法就是暴力式逐行遍歷搜索,把圖像中的每一個子區域都計算一遍。實際上目標往往只在一個非常小的區域出現,很多地方根本沒必要計算。所以在搜索時,如果當前位置的相關系數小於一定閾值或者該位置離上一幀的目標中心很遠的時候,搜索的步長可以加大,反之則減小搜索步長。
另一種搜索方法是以上一幀的目標中心為起點,以梯度下降的方法來搜索目標。該方法有一點需要注意,如果目標運動幅度較大,需要利用圖像金字塔的方法搜索。
這兩種方法都能夠使算法的速度達到30ms以內。
模板大小
模板大小的確定往往是一個經驗值,緊帖目標輪廓的模板或者包含太多背景的模板都不好,前者的模板太小,它對目標的變化太敏感,會很容易丟失目標。后者正相反,目標變化的時候算法卻沒有反應。一般而言,目標所占模板的比例在30%~50%為佳。