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