韓宇星,丁剛毅
(北京理工大學(xué) 軟件學(xué)院,北京 100081)
在工業(yè)生產(chǎn)、國防軍事、智能監(jiān)控以及無人駕駛等諸多領(lǐng)域中均涉及目標(biāo)識別與跟蹤技術(shù)[1-4]。由于跟蹤場景的復(fù)雜性,跟蹤過程中存在大量的干擾及隨機(jī)因素,如,光照變化、尺寸變化、目標(biāo)遮擋等[5-6],這些因素對目標(biāo)跟蹤方法提出了苛刻的要求。對于復(fù)雜背景中的目標(biāo)跟蹤,相關(guān)匹配方法具有較好的目標(biāo)識別性能[7-9],但相關(guān)匹配計算量較大,且匹配結(jié)果通常對目標(biāo)尺寸和旋轉(zhuǎn)變化較為敏感,不適用于復(fù)雜運動情況下的跟蹤?;趬嚎s感知的目標(biāo)跟蹤方法(Compressive Tracking, CT)采用貝葉斯分類器實現(xiàn)目標(biāo)定位,具有機(jī)理簡單、定位速度快的特點[10],但跟蹤結(jié)果通常也不具有尺度不變性,且跟蹤魯棒性不強。核相關(guān)濾波跟蹤(Kernelized Correlation Filter, KCF)方法在跟蹤過程中通過訓(xùn)練目標(biāo)檢測器實現(xiàn)目標(biāo)位置的定位,并利用檢測結(jié)果更新檢測器,同樣具有較高的運算速度[11],但由于跟蹤過程中目標(biāo)框尺寸固定,容易因目標(biāo)框漂移而導(dǎo)致跟蹤失敗?;诤嗣芏裙烙嫷腗eanshift和Camshift跟蹤方法對目標(biāo)的尺寸和旋轉(zhuǎn)變化均具有良好的魯棒性[12-13],尤其當(dāng)目標(biāo)顏色與跟蹤背景有顯著性差異時,算法具有良好的跟蹤性能。但由于采用顏色直方圖模型描述目標(biāo),算法存在對光照變化的敏感性,此外,上述跟蹤方法均缺少應(yīng)對目標(biāo)遮擋的跟蹤機(jī)制。這也是現(xiàn)有跟蹤方法普遍存在的問題,即當(dāng)目標(biāo)發(fā)生遮擋時,由于目標(biāo)特征的丟失而導(dǎo)致跟蹤失敗??柭鼮V波方法由于能夠?qū)崿F(xiàn)目標(biāo)狀態(tài)的最優(yōu)估計,可以與各種跟蹤方法相結(jié)合以保證跟蹤結(jié)果具有一定的抗遮擋性能[14-15]。但當(dāng)遮擋時間較長時,卡爾曼濾波預(yù)測誤差的累積會導(dǎo)致預(yù)測位置遠(yuǎn)離實際位置,這樣,當(dāng)目標(biāo)移出遮擋區(qū)后也會因無法定位目標(biāo)而導(dǎo)致跟蹤失敗。粒子濾波具有較好的搜索能力和預(yù)測性能,采用粒子濾波可以給出目標(biāo)的多個粒子預(yù)測位置,有助于在一定范圍內(nèi)實現(xiàn)目標(biāo)搜索,這樣,當(dāng)目標(biāo)再次出現(xiàn)時,粒子濾波具有更強的目標(biāo)發(fā)現(xiàn)能力,有利于提高跟蹤過程的魯棒性[16-17]。不過,與卡爾曼濾波一樣,粒子濾波也需建立目標(biāo)的狀態(tài)方程和觀測方程,當(dāng)目標(biāo)被完全遮擋后,由于無法獲得目標(biāo)的觀測值,只能依靠狀態(tài)方程實現(xiàn)目標(biāo)位置的預(yù)測估計,當(dāng)目標(biāo)遮擋時間較長時,預(yù)測誤差的累積同樣會逐漸增大,造成預(yù)測位置與實際位置偏差過大而導(dǎo)致跟蹤失敗。此外,由于缺少先驗知識,狀態(tài)方程和觀測方程的方差等參數(shù)通常只能按照經(jīng)驗選取,由此可能造成參數(shù)設(shè)置與實際跟蹤過程不符,從而導(dǎo)致預(yù)測性能降低。
為了提高遮擋情況時目標(biāo)跟蹤的穩(wěn)定性,結(jié)合Camshift跟蹤方法,提出了融合神經(jīng)網(wǎng)絡(luò)預(yù)測的粒子濾波跟蹤策略,根據(jù)目標(biāo)歷史運動信息建立目標(biāo)的狀態(tài)方程,采用神經(jīng)網(wǎng)絡(luò)建立目標(biāo)運動的觀測模型,由此提高粒子濾波對位置估計的準(zhǔn)確性,從而改善目標(biāo)跟蹤性能。此外,為了提高Camshift目標(biāo)跟蹤方法對光照變化的魯棒性,建立了基于色度等級核函數(shù)的直方圖模型,弱化了色度等級劃分對目標(biāo)模型的影響,有效抑制了色度漂移對目標(biāo)模型的干擾,提高了光照變化情況下目標(biāo)模型的穩(wěn)定性。
目標(biāo)跟蹤方法通常要根據(jù)目標(biāo)的特征建立其目標(biāo)模型。采用不同的特征對目標(biāo)進(jìn)行描述可建立不同的模型。對于實時跟蹤方法,通常要求目標(biāo)模型的計算量不能太大,且對目標(biāo)的平移、旋轉(zhuǎn)以及縮放應(yīng)具有良好的不變性。因此,色度直方圖模型在Meanshift和Camshift等具有良好實時性的跟蹤算法中得到了廣泛應(yīng)用。而在跟蹤過程中,可采用Bhattacharyya系數(shù)或Hellinger距離來衡量目標(biāo)模板直方圖與跟蹤場景候選區(qū)直方圖的相似度。但是,在建立直方圖過程中,需要對色度進(jìn)行等級劃分,而在跟蹤過程中,光照變化對色度直方圖模型會產(chǎn)生較大影響,例如,同一像素點在不同光照下會被統(tǒng)計入不同的色度等級中,從而造成目標(biāo)直方圖模型因光照變化而不穩(wěn)定。為了提高目標(biāo)直方圖模型對光照變化的魯棒性,本文提出基于色度核函數(shù)的改進(jìn)直方圖模型。
在色度、飽和度、明度(Hue, Saturation, Value, HSV)顏色空間中,選取色度(Hue,H)作為顏色特征分量,將色調(diào)特征劃分為m個等級,設(shè)目標(biāo)模板的中心坐標(biāo)為(x0,y0),模板中第i個像素點的坐標(biāo)為(xi,yi),i=1,2,…,s;其色度特征等級值為b(xi,yi),傳統(tǒng)直方圖模型q={qu},u=1,2,…,m可表示為:
(1)
式中δ函數(shù)為克羅內(nèi)克函數(shù),利用其實現(xiàn)各色度等級的像素點統(tǒng)計。當(dāng)像素點(xi,yi)處的色度等級值b(xi,yi)=u時,δ函數(shù)輸出為1,否則為0。由于場景圖像采集過程中,光照會發(fā)生不確定性變化,像素點(xi,yi)處的色度值會因光照變化而產(chǎn)生一定的變化,從而使其色度等級值b(xi,yi)發(fā)生變化,這樣,當(dāng)采用δ函數(shù)進(jìn)行直方圖統(tǒng)計時,光照變化會造成直方圖模型的不穩(wěn)定,即同一像素點在不同時刻因其色度值不同而被劃分到不同的色度等級中。為了提高模型對光照變化的魯棒性,提出采用核函數(shù)代替δ函數(shù)的改進(jìn)直方圖模型,即
(2)
式中:k為高斯核函數(shù),h為核函數(shù)參數(shù),與式(1)相比,式(2)采用高斯核函數(shù)k替代δ函數(shù),這樣,在直方圖模型統(tǒng)計過程中,盡管同一像素點因光照變化會被劃入不同色度等級中,但由于各像素點對所有色度等級的直方圖統(tǒng)計值均有貢獻(xiàn),與式(1)的目標(biāo)直方圖模型相比,式(2)直方圖模型弱化了色度等級劃分閾值的作用,提高了模型對光照變化的魯棒性,有利于實現(xiàn)目標(biāo)的穩(wěn)定跟蹤。
(3)
根據(jù)Bhattacharyya系數(shù),可計算二者Hellinger距離為:
(4)
Bhattacharyya系數(shù)越大,Hellinger距離越小,表示兩直方圖模型越相似,對于不同幀下同一目標(biāo)的直方圖模型,應(yīng)具有較小的Hellinger距離。如果在跟蹤過程中,目標(biāo)被遮擋,此時由于目標(biāo)消失而產(chǎn)生錯誤識別,會造成模板與定位區(qū)域直方圖的Bhattacharyya系數(shù)顯著減小、Hellinger距離顯著增大,據(jù)此可作為判斷目標(biāo)遮擋發(fā)生的條件,當(dāng)目標(biāo)發(fā)生遮擋時,本文提出融合神經(jīng)網(wǎng)絡(luò)預(yù)測的改進(jìn)粒子濾波方法實現(xiàn)目標(biāo)狀態(tài)估計。
粒子濾波方法采用蒙特卡洛積分來實現(xiàn)遞推貝葉斯濾波器,其工作過程包括預(yù)測和更新兩個階段。當(dāng)粒子的數(shù)量足夠多時,狀態(tài)的概率密度函數(shù)就可采用粒子的概率密度函數(shù)進(jìn)行逼近,這樣,粒子濾波就能夠獲得最優(yōu)貝葉斯估計的效果。設(shè)t-1時刻的目標(biāo)狀態(tài)為xt-1,則t時刻的狀態(tài)xt可采用后驗概率密度p(xt|zt)進(jìn)行估計。后驗概率密度p(xt|zt)利用加權(quán)后驗樣本集表示為:
(5)
(6)
其中
(7)
(8)
粒子濾波過程中,需要建立系統(tǒng)的狀態(tài)方程和觀測方程。通常,目標(biāo)運動的狀態(tài)方程可根據(jù)目標(biāo)的歷史運動信息建立。設(shè)sk,vk,ak和jk分別為k時刻目標(biāo)的位置、速度、加速度以及加加速度,設(shè)狀態(tài)向量Xk=[skvkak]T,則系統(tǒng)的狀態(tài)方程和觀測方程可建立為:
(9)
(10)
其中:Zk為觀測向量,Vk為觀測噪聲向量。式(9)和式(10)所建立的狀態(tài)方程和觀測方程是基于牛頓運動學(xué)方程所建立的,當(dāng)目標(biāo)發(fā)生遮擋時,由于目標(biāo)運動的隨機(jī)性,采用式(9)的狀態(tài)方程進(jìn)行目標(biāo)的位置預(yù)測會存在一定的誤差。當(dāng)遮擋時間較長時,誤差累計將會逐漸增大。而利用式(10)所建立的觀測方程僅是將狀態(tài)值作為觀測值使用,并未引入新的有用的狀態(tài)預(yù)測信息,因此,對狀態(tài)方程所產(chǎn)生的位置預(yù)測誤差并無有效的補償作用。
為了提高位置預(yù)測的有效性,采用神經(jīng)網(wǎng)絡(luò)建立目標(biāo)運動的觀測模型,利用粒子濾波將機(jī)理不同的狀態(tài)方程與觀測模型進(jìn)行融合,提高目標(biāo)位置預(yù)測過程的信息利用量,實現(xiàn)預(yù)測誤差的補償,從而改善目標(biāo)狀態(tài)預(yù)測性能。
考慮到目標(biāo)在運動過程中會發(fā)生一定的尺度變化,因此將目標(biāo)尺寸也作為狀態(tài)變量。根據(jù)相鄰幀間目標(biāo)位置信息,采用后向差分方法可得:
(11)
(12)
這樣,同時考慮目標(biāo)位置和尺寸信息,目標(biāo)運動的迭代方程可重建為:
(13)
考慮到目標(biāo)在跟蹤過程中,狀態(tài)變量可能出現(xiàn)持續(xù)增加或持續(xù)減小的現(xiàn)象,為了提高網(wǎng)絡(luò)的泛化能力,采用預(yù)測狀態(tài)增量的方式構(gòu)建RBF網(wǎng)絡(luò)模型作為觀測模型,即
(14)
由于狀態(tài)方程和觀測模型中都含有噪聲,傳統(tǒng)方法中,噪聲的方差等參數(shù)通常根據(jù)經(jīng)驗選取,這可能造成所選擇的參數(shù)與實際系統(tǒng)不符,從而影響濾波效果。本文根據(jù)目標(biāo)歷史狀態(tài)數(shù)據(jù)建立狀態(tài)方程和觀測模型,因此狀態(tài)方程和觀測模型中的噪聲參數(shù)可按照歷史數(shù)據(jù)統(tǒng)計求得。設(shè)狀態(tài)方程和觀測模型中的各噪聲均為獨立高斯白噪聲,其方差可根據(jù)未遮擋時計算值與目標(biāo)定位之間的偏差統(tǒng)計求得。當(dāng)目標(biāo)在未被遮擋的情況下,采用狀態(tài)方程和觀測神經(jīng)網(wǎng)絡(luò)分別實現(xiàn)位置預(yù)測,根據(jù)預(yù)測結(jié)果與實際目標(biāo)位置的定位偏差估算狀態(tài)方程和觀測模型的方差,從而提高參數(shù)選取的有效性,有利于改善濾波效果。
選擇Camshift作為目標(biāo)跟蹤方法,結(jié)合粒子濾波方法實現(xiàn)有遮擋情況下目標(biāo)的跟蹤,其流程圖如圖1所示。
結(jié)合粒子濾波方法實現(xiàn)有遮擋情況下的目標(biāo)跟蹤策略步驟描述如下:
步驟1根據(jù)式(2)建立目標(biāo)模板的直方圖模型,采用式(13)和式(14)建立系統(tǒng)的狀態(tài)方程和觀測模型。
步驟2獲取下一幀場景圖像,利用狀態(tài)方程迭代計算狀態(tài)值,利用RBF觀測模型計算觀測值,采用Camshift跟蹤方法在當(dāng)前場景內(nèi)定位目標(biāo)。
步驟3計算模板與目標(biāo)定位區(qū)的Bhattacharyya系數(shù)和Hellinger距離。如果Hellinger距離大于閾值,則判定為目標(biāo)發(fā)生遮擋,轉(zhuǎn)入步驟4進(jìn)行粒子濾波目標(biāo)狀態(tài)估計;否則,判定目標(biāo)未發(fā)生遮擋,將當(dāng)前定位位置確定為目標(biāo)位置,更新模板及狀態(tài)值,并訓(xùn)練觀測模型,根據(jù)狀態(tài)值和觀測值與目標(biāo)狀態(tài)偏差更新狀態(tài)方程和觀測模型中噪聲的方差。
步驟4粒子濾波狀態(tài)估計。
(3)更新粒子權(quán)值。
(15)
式中σi為第i個觀測模型的方差。粒子權(quán)重的遞推公式計算為:
(16)
歸一化的權(quán)重結(jié)果為:
(17)
計算各粒子與模板的Hellinger距離,如果最小Hellinger距離小于閾值,則退出粒子搜索,重新定位目標(biāo),否則轉(zhuǎn)(4)。
(4)重采樣計算。
(5)目標(biāo)狀態(tài)估計為:
(18)
(6)t=t+1,返回步驟2。
由于觀測模型采用4個獨立的RBF神經(jīng)網(wǎng)絡(luò)實現(xiàn)目標(biāo)狀態(tài)的增量預(yù)測,各觀測模型的觀測噪聲可視為獨立分布,因此采用式(15)計算概率采樣。RBF神經(jīng)網(wǎng)絡(luò)根據(jù)目標(biāo)運動的歷史信息實現(xiàn)目標(biāo)位置的預(yù)測,引入了不同于狀態(tài)方程機(jī)理的新信息。利用粒子濾波將狀態(tài)方程計算的目標(biāo)狀態(tài)和觀測模型預(yù)測的目標(biāo)狀態(tài)進(jìn)行融合,提高了濾波過程中的信息利用率,有利于提高遮擋情況下目標(biāo)狀態(tài)估計的準(zhǔn)確性。同時,由于粒子按照概率分布在場景中,擴(kuò)大了目標(biāo)搜索范圍,提高了遮擋結(jié)束后目標(biāo)再定位的有效性,能夠提高目標(biāo)跟蹤方法的可靠性。
為了測試式(2)直方圖模型對光照變化的敏感性,選擇Visual Tracker Benchmark標(biāo)準(zhǔn)視頻庫中的David視頻進(jìn)行測試。該視頻中的人體目標(biāo)在明暗顯著不同的光照下運動,光照變化對直方圖模型影響很大,分別采用傳統(tǒng)方法和改進(jìn)方法建立目標(biāo)直方圖模型,并計算跟蹤模板與相鄰幀中目標(biāo)區(qū)的Hellinger距離,每隔6幀更新一次模板,共完成200幀的Hellinger距離計算,該過程中,目標(biāo)從黑暗處移動至光亮處。圖2給出了兩種方法所得Hellinger距離的變化結(jié)果。
圖2中,實線為采用傳統(tǒng)直方圖建模方法所計算的跟蹤模板與場景目標(biāo)的Hellinger距離;虛線為采用改進(jìn)直方圖建模方法所得Hellinger距離。由實驗結(jié)果可知,采用改進(jìn)直方圖建模方法,模板與場景目標(biāo)區(qū)域之間具有更小的Hellinger距離,Hellinger距離平均值由0.117下降至0.094,降低了19.66%,因此,采用改進(jìn)直方圖建模方法能夠提高模板與目標(biāo)區(qū)的相似性,對于在不同光照條件、不同場景中的同一目標(biāo),改進(jìn)直方圖建模方法對光照變化具有更好的魯棒性,有利于提高跟蹤方法的可靠性。
對Visual Tracker Benchmark標(biāo)準(zhǔn)視頻庫中的David3視頻中的人體目標(biāo)進(jìn)行遮擋跟蹤。目標(biāo)在第84幀、第85幀以及第187幀至第190幀之間發(fā)生短時遮擋,分別采用Kalman濾波、粒子濾波以及改進(jìn)粒子濾波實現(xiàn)遮擋情況下的目標(biāo)狀態(tài)的最優(yōu)估計,所得結(jié)果如圖3所示。
圖3中:淺灰色框為卡爾曼濾波估計結(jié)果、深灰色框為粒子濾波估計結(jié)果、白色框為改進(jìn)粒子濾波估計結(jié)果。從實驗結(jié)果可見,由于目標(biāo)發(fā)生遮擋時間較短,上述3種方法均能實現(xiàn)遮擋情況下的目標(biāo)狀態(tài)估計,但改進(jìn)粒子濾波方法由于融合了神經(jīng)網(wǎng)絡(luò)的預(yù)測信息,能夠給出更準(zhǔn)確的狀態(tài)估計,當(dāng)目標(biāo)再次出現(xiàn)時,能夠快速完成目標(biāo)的重定位。
采用上述3種方法對較長時間遮擋情況下的目標(biāo)進(jìn)行跟蹤,如圖4所示,移動的行人經(jīng)過車輛后身體被遮擋,將行人身體設(shè)定為跟蹤目標(biāo)進(jìn)行跟蹤,以行人的頭部作為目標(biāo)的基準(zhǔn)位置,所得跟蹤結(jié)果如圖4所示。
由圖4跟蹤結(jié)果可見,隨著遮擋時間的增加,3種方法的狀態(tài)估計誤差逐漸增大,粒子濾波和卡爾曼濾波方法僅依靠狀態(tài)方程的運動信息進(jìn)行狀態(tài)估計,誤差累積逐漸增加,最終導(dǎo)致預(yù)測位置與目標(biāo)位置偏差過大,當(dāng)目標(biāo)移出遮擋區(qū)后也無法再次定位到目標(biāo),從而導(dǎo)致跟蹤失敗。而本文方法的觀測方程采用RBF網(wǎng)絡(luò)建立,利用神經(jīng)網(wǎng)絡(luò)的泛化能力給出觀測模型的預(yù)測狀態(tài),利用粒子濾波實現(xiàn)與狀態(tài)方程的運動信息融合,所得預(yù)測結(jié)果的準(zhǔn)確性有了較大的提升,盡管預(yù)測位置與目標(biāo)實際位置也有偏差,但偏差較小,當(dāng)目標(biāo)移出遮擋區(qū)后,利用粒子的搜索能力,實現(xiàn)了目標(biāo)的重新定位,提高了遮擋情況下目標(biāo)跟蹤的可靠性。
采用上述3種方法對某實際復(fù)雜交通路口中的運動目標(biāo)進(jìn)行跟蹤,騎車人通過該路口時身體被運動車輛所遮擋,以騎車人的身體作為目標(biāo),以其所帶白帽作為目標(biāo)的基準(zhǔn)位置,跟蹤結(jié)果如圖5所示。
圖5中,交通場景復(fù)雜,跟蹤目標(biāo)及遮擋車輛均做轉(zhuǎn)彎運動,增加了目標(biāo)運動狀態(tài)的復(fù)雜性。隨著遮擋時間的增長,由于狀態(tài)方程自身的誤差累積,粒子濾波和卡爾曼濾波方法的預(yù)測誤差逐漸增大,遮擋結(jié)束后預(yù)測位置遠(yuǎn)離目標(biāo)實際位置,造成無法重新定位目標(biāo)。而本文方法采用與狀態(tài)方程機(jī)理不同的RBF神經(jīng)網(wǎng)絡(luò)建立觀測模型,利用粒子濾波實現(xiàn)了不同預(yù)測機(jī)理的誤差補償,降低了預(yù)測誤差,遮擋結(jié)束后,目標(biāo)實際位置仍處于粒子的搜索范圍內(nèi),因此可實現(xiàn)目標(biāo)的重定位,完成遮擋情況下的目標(biāo)跟蹤。
上述實驗的目標(biāo)狀態(tài)估計性能比較如表1所示。
表1 目標(biāo)狀態(tài)估計性能比較
由表1給出的目標(biāo)狀態(tài)估計誤差可見,當(dāng)目標(biāo)遮擋時間很短時,3種狀態(tài)估計方法的性能相差不明顯,本文方法狀態(tài)估計的準(zhǔn)確性略優(yōu)于卡爾曼濾波方法和粒子濾波方法。而當(dāng)目標(biāo)發(fā)生較長時間遮擋時,狀態(tài)方程所產(chǎn)生的預(yù)測誤差逐漸增加,導(dǎo)致卡爾曼濾波和粒子濾波估計的平均誤差和最大誤差明顯升高。本文方法利用粒子濾波將基于RBF網(wǎng)絡(luò)的觀測模型與狀態(tài)方程相融合,實現(xiàn)了不同預(yù)測機(jī)理的預(yù)測補償,能夠明顯提高目標(biāo)狀態(tài)估計的準(zhǔn)確性。
針對遮擋情況下的目標(biāo)跟蹤問題,本文結(jié)合Camshift跟蹤算法,提出了改進(jìn)的粒子濾波跟蹤策略。利用色度核函數(shù)建立目標(biāo)模型的直方圖,弱化了色度等級劃分閾值的作用,提高了目標(biāo)模型對光照變化的魯棒性,有利于實現(xiàn)目標(biāo)的穩(wěn)定跟蹤。采用RBF神經(jīng)網(wǎng)絡(luò)建立粒子濾波的觀測方程,將RBF網(wǎng)絡(luò)的預(yù)測值與狀態(tài)方程的計算值進(jìn)行融合,提高粒子濾波狀態(tài)估計的準(zhǔn)確性,減小了目標(biāo)位置估計的偏差,提高了目標(biāo)重現(xiàn)時的定位準(zhǔn)確性。仿真實驗結(jié)果表明,改進(jìn)的直方圖模型能夠提高光照變化情況下模板與目標(biāo)區(qū)的相似性,從而減小光照變化對跟蹤結(jié)果的影響。改進(jìn)的粒子濾波方法能夠提高遮擋區(qū)目標(biāo)狀態(tài)估計的準(zhǔn)確性,尤其當(dāng)目標(biāo)發(fā)生較長時間遮擋時,算法跟蹤的可靠性能夠得到明顯提升。此外,由于深度學(xué)習(xí)在目標(biāo)檢測與識別領(lǐng)域取得了快速的發(fā)展,因此,將深度學(xué)習(xí)網(wǎng)絡(luò)與粒子濾波相結(jié)合,構(gòu)建高性能的抗遮擋目標(biāo)跟蹤方法是未來的研究方向。