王 戰(zhàn) 劉松濤 楊紹清 宋 元郭 策
(1.海軍大連艦艇學(xué)院 大連 116018)(2.91937部隊 舟山 316000)
在計算機視覺、圖像處理領(lǐng)域中,視頻目標(biāo)跟蹤是一個重要的部分,也是研究的重點和難點,一直以來都吸引著眾多學(xué)者的關(guān)注和研究。雖然在近幾年,視頻目標(biāo)跟蹤算法有著很大的進步,但對于一些在特定場合下的特定目標(biāo)(圖像信噪比低,跟蹤中目標(biāo)出現(xiàn)大幅度尺度、光照變化,運動速度過快等),總是需要不斷的改進算法,來解決實際存在的各種問題。在目標(biāo)跟蹤中,基于匹配的跟蹤方法可以很好地消除目標(biāo)背景噪聲所帶來的不良影響,其可以分為兩種主流算法:基于灰度匹配的方法和基于特征匹配的方法[1]。基于灰度匹配的方法是利用灰度值的不同區(qū)分不同對象,包括絕對誤差和算法(SAD)[2]、誤差平方和算法(SSD)[3]、歸一化積相關(guān)算法(NCC)[4]等,但是由于其運算量較大,并且對噪聲十分敏感,導(dǎo)致效果較差;基于特征的匹配方法一般先進行特征提取再進行特征匹配,具有實時性好、魯棒性突出等優(yōu)點,包括SUSAN[5]角點檢測,Harris角點檢測[6]等方法。雖然可以解決旋轉(zhuǎn)、平移等問題,但在目標(biāo)高速運動時,無論是設(shè)備與目標(biāo)之間的距離不定,還是目標(biāo)本身的模板變化,都會使得上述方法失效。為了解決此類問題,Lowe等提出了 SIFT(Scale Invariant Feature Transform)[7]局部特征匹配算法,其在尺度變換、放射變換上都有良好的匹配性能。隨后,Herbert Bay等在SIFT算法的基礎(chǔ)上進行改進,提出SURF(speeded Up Robust Features)[8]進行局部特征匹配,極大提升了SIFT算法的實時性。
為了達到更好的跟蹤效果,國內(nèi)外許多學(xué)者對SURF算法在不同方面都做了改進。本文首先對SURF算法原理進行介紹,然后對SURF算法近幾年在目標(biāo)跟蹤領(lǐng)域的各種改進算法進行梳理,主要包括:基于Mean Shift的SURF目標(biāo)跟蹤改進算法;組合Kalman的SURF目標(biāo)跟蹤改進算法;組合訓(xùn)練學(xué)習(xí)模塊的SURF目標(biāo)跟蹤改進算法等,最后總結(jié)各算法的優(yōu)缺點,并從不同角度分析SURF算法未來的發(fā)展方向。
SURF算法不僅具有SIFT算法對尺度變化和光照變化的優(yōu)良匹配性能,還具有更高的運算速度和魯棒性,其運算效率是SIFT算法的三倍。
SURF算法采用Hessian矩陣行列式檢測特征點(極值處為特征點區(qū)域)。高斯拉普拉斯方法是最好的能夠保證尺度不變性的方法,SURF算法就是將Hessian和高斯拉普拉斯方法結(jié)合,產(chǎn)生了Hessian-Laplace方法。這樣結(jié)合把本來對尺度不變性不敏感的Hessian方法實現(xiàn)了特征尺度不變性。圖像中某個像素點的Hessian矩陣:
SURF算法利用盒狀濾波器近似代替高斯濾波器,這樣就是將濾波問題轉(zhuǎn)化成對不同區(qū)域的灰度和問題,大大地精簡了計算的時間,如圖1。
其中,N代表盒狀濾波器圖像中,突出部分(黑色與白色部分)的個數(shù)。Sn代表凸出部分像素數(shù)量。φn是第n個突出部分的權(quán)值。
那么矩陣行列式的判別式可表示為
可已通過判別式來確定極值點,其中0.9為經(jīng)驗值,用來平衡替換所帶來的誤差。與SIFT算法不同,SURF算法構(gòu)造高斯金字塔時,圖像大小不變,不同組間盒式濾波器逐漸增大,而相同組間的濾波器之間的模糊系數(shù)也是逐漸增大的。
1)定位特征點
(1)初步定位關(guān)鍵點,將所有經(jīng)過Hessian矩陣處理后的像素點與三維臨域的26個任意點進行比較,若為最值,則保留。
(2)設(shè)置合適閾值,適當(dāng)增加極值,使檢測的特征點數(shù)量減少,采用三維線性插值法,得到亞像素級別的特征點,最后篩選出穩(wěn)定的特征點。
2)確定特征點主方向
在SURF算法中,統(tǒng)計特征點圓形臨域內(nèi)的Harr小波特征,來保證旋轉(zhuǎn)不變性并確定主方向:
(1)計算半徑為6S(Scale,特征點的尺度值)臨域內(nèi),60度扇形中所有點,在水平和垂直方向的Harr小波響應(yīng)總和,其中Harr小波邊長為4S。
(2)給響應(yīng)值附加權(quán)重,即靠近特征點的響應(yīng)值權(quán)重大,遠離的則小。將扇形內(nèi)的響應(yīng)值相加,形成矢量。
(3)以0.2弧度大小的間隔旋轉(zhuǎn),再進行(1)、(2)步驟,將整個圓形區(qū)域計算完畢,選擇最長適量方向作為特征點的主方向。
如圖2,在特征點周圍取一個邊長為20S的正方形框,方向是特征點的主方向,然后將其分為16個子框,每個子框中就有需要統(tǒng)計的25個就主方向而言的水平和垂直方向的Harr小波特征的像素點。那么,每個子框就有4個總和。則每個特征點就有64維向量。較SIFT少了一半,所以速度會大幅度增加。
那么盒狀濾波器Dxx、Dxy、Dyy的灰度值總和可由積分圖像的概念求得:
Mean Shift算法在計算機視覺中的圖像跟蹤領(lǐng)域一直是學(xué)者們研究的熱點,因為算法是相對迭代的連續(xù)過程,計算量小,時效性好。而且,由于Mean Shift算法適合與其他算法結(jié)合,這為該算法提供了不斷創(chuàng)新的條件。
文獻[9]利用SURF特征點構(gòu)造直方圖,作為Mean Shift算法的第一步,當(dāng)算法由于跟蹤目標(biāo)進行以外的旋轉(zhuǎn)造成姿勢改變失效時,利用光流法,重新初始化跟蹤器和模板。具體流程圖見圖3。此算法基于機器人平臺開發(fā),雖然SURF算法對幾何突變和光照變化有很強的匹配性能,但在長時間跟蹤時會受到幀間噪聲影響。所以利用光流法,解決了模板生成問題,使得跟蹤算法能夠長時間工作。
文獻[10]以基于后驗概率的Mean Shift算法作為全局跟蹤器,SURF算法作為局部跟蹤器,并將其分為長期特征點集合和短期特征點集合,增加了算法的效率,流程圖見圖4。流程中的綜合判斷器是用閾值來區(qū)分兩個跟蹤器的優(yōu)劣等級,根據(jù)等級采用不同的結(jié)合方法。算法應(yīng)用雙跟蹤器跟蹤,避免了單一跟蹤器在特定場景下的不足,使跟蹤更加可靠。但最后的結(jié)合判斷使得算法更為復(fù)雜,難度較大。
文獻[11]的創(chuàng)新之處在于其在組合SURF和Mean Shift算法的基礎(chǔ)上,又引入了自適應(yīng)分塊,利用SURF算法加強了對目標(biāo)模板的描述能力,也由于分塊權(quán)值的作用,使得其對目標(biāo)部分遮擋問題有了更好的跟蹤能力。
從本節(jié)可以看出,文獻[9]方法非常重要的優(yōu)勢在于可以利用光流法更新SURF特征描述子模板,保證了算法長時間服務(wù)的可能。
卡爾曼濾波是一種普及度很高的濾波方法,由于其易于操作的特性,適合與其他算法組合,在目標(biāo)跟蹤領(lǐng)域應(yīng)用廣泛。
文獻[12]與文獻[9]應(yīng)用平臺相同,不同的是其利用Kalman濾波與SURF組合進行跟蹤,并利用動態(tài)對象模型在處理短時變化的同時,保證了長時變化的穩(wěn)定性。另外還提出了一種檢測目標(biāo)姿態(tài)變化的方法,保證了跟蹤的魯棒性。跟蹤框架見圖5。
文獻[13]是基于旋翼無人機平臺的跟蹤算法,利用兩級PID算法完成位置和姿態(tài)控制,保證了目標(biāo)出現(xiàn)的位置,進而保證了有效的跟蹤。利用SURF算法改進KLT算法進行無人機跟蹤,由于傳統(tǒng)KLT跟蹤算法不能有效選擇關(guān)鍵點,導(dǎo)致緩慢漂移帶來的隨機誤差,加入SURF算法可使得無效關(guān)鍵點可以從KLT算法中移除,保證算法穩(wěn)定性。另外,還利用基于NCC模板匹配的檢測器和基于卡爾曼濾波器的位置預(yù)估器,可以很好解決跟蹤中的嚴重形變和快速運動及遮擋等問題,但對運動復(fù)雜的目標(biāo),跟蹤效果不理想。
從本節(jié)可以看出,SURF與Kalman濾波的組合可以更好地應(yīng)用在快速目標(biāo)跟蹤上,但只應(yīng)用兩個算法,并不能完全符合復(fù)雜的跟蹤要求,因此學(xué)者們又以本身研究領(lǐng)域為出發(fā)點,組合了其它算法進行優(yōu)化。
文獻[14]分為線下學(xué)習(xí)和線上跟蹤。利用SURF算法與神經(jīng)網(wǎng)絡(luò)組合,通過線下學(xué)習(xí)可以獲得更高等級的特征匹配。線上跟蹤利用組合神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)的粒子濾波和Mean Shift算法進行糾正,實現(xiàn)整個跟蹤系統(tǒng)。從實驗結(jié)果看出,算法擁有很好的跟蹤效果和發(fā)展前景,流程圖見圖6。
通過本文可分析得出,SURF與Mean Shift的組合算法發(fā)展前景不大,但可以嘗試與Camshift組合[15~16],進而改善算法的實時性和計算復(fù)雜度。Kalman的預(yù)測功能可以大幅度提升SURF算法的計算速度,這種組合可以作為目標(biāo)跟蹤系統(tǒng)的一個模塊,在許多情境下都可以進行組合使用,擁有廣闊的應(yīng)用前景。基于深度學(xué)習(xí)模塊的SURF目標(biāo)跟蹤算法可以通過解決模板更新問題,進行長時間跟蹤,這種組合方法主要應(yīng)用在目標(biāo)識別和檢測領(lǐng)域,因此如何將其應(yīng)用在目標(biāo)跟蹤領(lǐng)域是該類算法發(fā)展的重點。另外,還有的文獻還將TLD跟蹤算法與SURF算法組合[17~18],也有不錯的跟蹤效果。
經(jīng)過以上分析,作者擬提出一種集成三類算法優(yōu)點的目標(biāo)跟蹤方法,首先利用SURF和神經(jīng)網(wǎng)絡(luò)算法組成特征點匹配模塊,然后由CamShift與Kalman算法跟蹤模塊,最后利用SURF對跟蹤模塊進行修正。本算法不僅可以實現(xiàn)難度較大的目標(biāo)跟蹤,還可以長時間運行,并不會出現(xiàn)累加誤差。另外,近幾年基于OpenCV平臺開發(fā)的目標(biāo)跟蹤算法層出不窮。OpenCV運行效率高,具有大量優(yōu)化的代碼庫、強大的開源性和兼容性。因此,在下一步的探索研究中,如何在OpeanCV平臺上進行新算法的開發(fā)是今后工作的重點。