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