熊昊,段錦,陳小遠(yuǎn),代玉強(qiáng),于津強(qiáng)
(長春理工大學(xué)電子信息工程學(xué)院,長春 130000)
目標(biāo)跟蹤一直是圖像處理和機(jī)器視覺中的熱點和難點之一,在交通監(jiān)控、公共安全、國防軍事等領(lǐng)域中有著廣泛的應(yīng)用。隨著計算機(jī)技術(shù)的發(fā)展,目標(biāo)跟蹤不僅僅滿足于簡單的跟蹤,還希望在復(fù)雜環(huán)境中目標(biāo)發(fā)生旋轉(zhuǎn)、縮放和遮擋等情況時依舊能在視頻流中獲取目標(biāo)質(zhì)心的位置、尺度信息和運動軌跡。MeanShift算法,又稱均值漂移算法,是由Fukunaga提出的一種無參密度梯度上升算法,通過迭代運算尋找概率密度函數(shù)的極值點[1]。Comaniciu提出以色彩直方圖為模型,用巴氏系數(shù)來度量概率密度的相似性,通過Mean?Shift迭代計算極值點即目標(biāo)位置[2]。CamShift(Continu?ously Adaptive MeanShift)方法[3]是 Bradski將 MeanShift算法擴(kuò)展到連續(xù)圖像序列,能自動調(diào)整窗口尺寸,并將上一幀的結(jié)果作為下一幀的目標(biāo)模板進(jìn)行迭代。Cam?Shift算法對目標(biāo)發(fā)生旋轉(zhuǎn)和尺度變換有較好的適應(yīng)性,但其只利用了目標(biāo)的顏色信息進(jìn)行建模,在遭遇相近顏色干擾時容易跟蹤失效[3]。文獻(xiàn)[4]結(jié)合顏色和邊緣特征構(gòu)建模型,文獻(xiàn)[5]在MeanShift算法框架中加入SIFT特征實現(xiàn)目標(biāo)多自由度,但計算量較大。
針對CamShift跟蹤算法中跟蹤窗口漂移和發(fā)散問題,本文結(jié)合SURF特征改進(jìn)了CamShift算法。首先,利用CamShift算法對目標(biāo)初定位獲得候選區(qū)域,然后在候選區(qū)域內(nèi)提取SURF特征點,并與目標(biāo)模板進(jìn)行匹配后,利用SURF特征信息調(diào)整跟蹤窗口準(zhǔn)確定位目標(biāo)。利用SURF特征尺度信息的變化約束跟蹤窗口,改善了大面積背景色干擾下跟蹤窗口易發(fā)散的問題;利用SURF特征點數(shù)量、尺度和方向信息的變化選擇相應(yīng)的模板更新策略,使模板能更好地反映目標(biāo)的特征,從而在下一幀中更準(zhǔn)確地跟蹤目標(biāo)。
CamShift算法利用目標(biāo)顏色特征進(jìn)行跟蹤,預(yù)處理階段將圖像由RGB顏色空間轉(zhuǎn)換到HSV顏色空間,統(tǒng)計H分量經(jīng)過加權(quán)后的色度直方圖表示目標(biāo),再經(jīng)過反向投影生成目標(biāo)的概率密度分布圖,最后進(jìn)行迭代從而獲取目標(biāo)位置。
目標(biāo)中心位置由下式迭代收斂得到:
其中:g(x)=-k'(x),k(x)為所選取的核函數(shù);?為核函數(shù)帶寬;xi為以y0為中心的候選區(qū)域內(nèi)nh個像素的坐標(biāo);wi為權(quán)重,且有:
SURF(Speeded Up Robust Features)是 SIFT 算法的改進(jìn),同樣是一種尺度不變和旋轉(zhuǎn)不變的特征描述子[8],對圖像旋轉(zhuǎn)、縮放、仿射變換具有一定的不變性,且計算速度比SIFT更快。
在圖像點處尺度為σ的Hessian矩陣為:分別是高斯二階微分和圖像的二維卷積。
為了提高高斯卷積的計算速度,SURF算子使用方框濾波器作為二階高斯濾波器的近似替代,并使用積分圖像[8]對圖像卷積進(jìn)行加速。每個像素點與其三維空間里的26個鄰點相比較,獲得極值點,同時,剔除小于閾值的極值點。
圖1 極值點的檢測
首先要確定特征點的主方向。以特征點為圓心,6σ(σ為特征點的尺度)為半徑的圓形區(qū)域中分別計算特征點在x和y方向的Harr小波響應(yīng),并進(jìn)行高斯加權(quán),越臨近特征點的響應(yīng)貢獻(xiàn)越大;然后統(tǒng)計60°扇形區(qū)域內(nèi)x和y方向上的Harr小波響應(yīng),相加形成一個局部方向向量,遍歷整個圓形區(qū)域,將統(tǒng)計值最大的那個扇形區(qū)域的向量方向作為該特征點主方向。
然后生成SURF特征描述子。沿著特征點的主方向,以特征點為中心,邊長為20的正方形區(qū)域構(gòu)造長為20的正方形領(lǐng)域,將該窗口鄰域分為4×4的子區(qū)域,對于每個區(qū)域計算5×5個采樣點的水平方向和垂直方向的Harr小波響應(yīng),分別記做dx和dy,并用高斯窗口函數(shù)對響應(yīng)值賦予權(quán)重系數(shù),得到矢量最后對向量進(jìn)行歸一化處理,得到特征描述符。
圖2 描述子的生成
SURF特征的尺度變化與目標(biāo)尺度變化成正比,主方向信息變化與目標(biāo)的方向變化一致[6-7]。設(shè)Spre和Scur為上一幀物體尺度和當(dāng)前幀物體尺度,σp和σc分別為上一幀和當(dāng)前幀匹配上的兩個特征點所在的尺度。結(jié)合n對匹配上的特征點,則得到目標(biāo)尺度:
同理,目標(biāo)方向變化:
其中Ocur和Opre為當(dāng)前幀和上一幀目標(biāo)的方向,RCi和RCi
為當(dāng)前幀和上一幀中所匹配特征點的主方向,n為匹配后的特征點對數(shù)。
結(jié)合目標(biāo)在的運動信息和SUFT特征點的方向信息和尺度信息,預(yù)估目標(biāo)在當(dāng)前幀的位置,并在原有的搜索框尺度上擴(kuò)大一定的范圍(本文設(shè)為50%)內(nèi)提取SURF特征點,并與前一幀目標(biāo)區(qū)域SURF特征點進(jìn)行匹配。結(jié)合匹配前后SURF特征點的方向信息和尺度信息得到新的搜索窗的位置和尺度。
CamShift算法使用目標(biāo)的顏色直方圖對目標(biāo)建模,在目標(biāo)發(fā)生旋轉(zhuǎn)、部分遮擋時仍能取得一定的跟蹤效果,但其本身并不能判斷目標(biāo)的狀態(tài)與大小,因此在復(fù)雜背景中其模板更新不能取得較好的跟蹤效果。
在本文的3.1中已經(jīng)介紹SUFR特征點的方向信息及尺度信息對目標(biāo)的運動狀態(tài)的反映,再結(jié)合SURF特征點匹配對的數(shù)量變化,可以在一定程度上對目標(biāo)的旋轉(zhuǎn)、縮放以及遮擋信息做出判斷,并根據(jù)不同的狀態(tài)選擇相應(yīng)的模板更新策略。具體方法為:
(1)在特征點匹配對數(shù)目基本保持不變(增減10%以內(nèi))的情況下,根據(jù)SURF特征的方向信息和尺度信息變換即可判斷目標(biāo)的狀態(tài),利用CamShift搜索窗的輸出對模板進(jìn)行更新。
(2)在特征點匹配對數(shù)目發(fā)生一定變化(增減10%~25%)的情況下,若SURF特征的方向信息和尺度信息變化較小,則判定發(fā)生了遮擋,不對模板做更新;若SURF特征的方向信息和尺度信息變化較大,則認(rèn)為是目標(biāo)自身變化,利用利用CamShift搜索窗的輸出對模板進(jìn)行更新。
(3)在特征點匹配對數(shù)目變化較大(增減25%以上)的情況下,則認(rèn)為目標(biāo)發(fā)生了遮擋,通過匹配前后兩幀特征點二者之間的映射關(guān)系,利用SURF特征的位置信息、方向信息和尺度信息推導(dǎo)定位目標(biāo),不對目標(biāo)模板進(jìn)行更新。
前文獲得的尺度、方向變化參數(shù),一方面可以跟蹤目標(biāo)的縮放、旋轉(zhuǎn)運動,另一方可以調(diào)整CamShift算法中核函數(shù)的帶寬和方向。同時,結(jié)合之前獲得的質(zhì)心運動軌跡對目標(biāo)的初步估計,為SURF特征檢測提供方位和區(qū)域,避免對大范圍圖像檢測浪費時間,也減少了誤匹配。具體步驟如下:
(1)CamShift算法本身并不能檢測運動目標(biāo),所以在第一幀的時候需要以矩形框手動標(biāo)記所需跟蹤的目標(biāo),并以此初始化目標(biāo)尺度S和目標(biāo)方向O;
(2)利用上一幀獲得目標(biāo)及其尺度Spre和方向Opre構(gòu)建核函數(shù),則目標(biāo)的概率密度分布計算式可以改寫為:
利用CamShift算法進(jìn)行迭代,初定位目標(biāo)。
(3)根據(jù)CamShift的跟蹤結(jié)果和Spre,Opre值得到SURF特征的檢測區(qū)域,將檢測區(qū)域的SURF特征點與模板中的SURF特征點進(jìn)行匹配,獲得目標(biāo)實際位置。
(4)計算新的尺度Scur和方向Ocur,根據(jù)SURF特征變化選擇相應(yīng)的目標(biāo)模板更新策略,進(jìn)行下一幀的跟蹤計算。
為了驗證本文算法,利用多組圖片序列對其進(jìn)行大量測試,測試環(huán)境為VS2010和OpenCV 2.4.3。圖3圖4分別為利用CamShift以及本文算法對行人序列的跟蹤結(jié)果,CamShift算法在目標(biāo)產(chǎn)生部分遮擋時仍能較好地跟蹤目標(biāo),但其只能根據(jù)顏色特征讓搜索窗縮小以適應(yīng)目標(biāo),無法判斷發(fā)生了遮擋,其尺度與目標(biāo)真實大小有所差距;而本文算法不但能較好地跟蹤目標(biāo)位置,且較CamShift算法能更好的描述目標(biāo)的尺度信息。如圖5所示,在大約30幀的時候由于亭子和汽車的遮擋,CamShift算法的跟蹤窗雖然仍能正確跟蹤,但只能跟蹤行人的上半身,跟蹤窗口質(zhì)心向上漂移且尺度逐步縮小,明顯與真人不符合;而本文趕緊算法因為加入SURF特征對目標(biāo)進(jìn)行跟蹤,在行人遭到遮擋時仍能根據(jù)SURF提供的信息調(diào)整跟蹤窗口的尺度,使跟蹤結(jié)果更加接近真實目標(biāo)。
圖3 CamShift算法
圖4 本文改進(jìn)算法
圖5 CamShift算法與本文改進(jìn)算法跟蹤效果與實際尺度的比例
實驗結(jié)果表明,本文所提跟蹤算法在目標(biāo)的尺度發(fā)生變化及旋轉(zhuǎn)、遮擋場景中能準(zhǔn)確的跟蹤目標(biāo),具有較強(qiáng)的魯棒性。算法的不足之處是對于目標(biāo)較小或者表面紋理較少的情況下可能提取和匹配SURF特征點較少,發(fā)生變化時對跟蹤的影響較大。進(jìn)一步的工作將尋找更穩(wěn)定的SURF特征提取和匹配方法,并嘗試結(jié)合粒子濾波方法,完成魯棒性更強(qiáng)、實用性更廣的跟蹤算法。