吳水琴, 毛 耀, 劉 瓊, 李志俊
(1. 中國(guó)科學(xué)院 光束控制重點(diǎn)實(shí)驗(yàn)室,四川 成都 610209;2. 中國(guó)科學(xué)院 光電技術(shù)研究所,四川 成都 610209;3. 中國(guó)科學(xué)院大學(xué),北京101400)
目標(biāo)跟蹤是指對(duì)一段連續(xù)視頻和圖像序列中的目標(biāo)進(jìn)行狀態(tài)估計(jì)和跟蹤的過(guò)程,是計(jì)算機(jī)視覺(jué)的主要研究方向之一,現(xiàn)已被廣泛應(yīng)用于視頻監(jiān)控領(lǐng)域、軍事領(lǐng)域和人機(jī)交互的游戲領(lǐng)域。隨著嵌入式硬件的發(fā)展和圖像序列集的完善,目前已涌現(xiàn)了大量的跟蹤算法。但遮擋問(wèn)題一直跟蹤研究中的難點(diǎn),由于目標(biāo)被局部或全局遮擋時(shí),目標(biāo)特征信息的減少導(dǎo)致跟蹤算法失效或提取到假目標(biāo)。目前研究人員已經(jīng)提出一些方法來(lái)解決跟蹤中的遮擋問(wèn)題:TLD跟蹤算法[1]通過(guò)在跟蹤算法中加入遮擋檢測(cè)機(jī)制和檢測(cè)模塊來(lái)解決遮擋問(wèn)題,其根據(jù)前向后向誤差法判斷目標(biāo)是否跟蹤失敗,若檢測(cè)出跟蹤失敗則啟用檢測(cè)模塊重新檢測(cè)出目標(biāo)。但TLD跟蹤算法的幀頻低,往往達(dá)不到實(shí)時(shí)性要求。分塊匹配算法[2]將目標(biāo)分為多個(gè)子區(qū)域,利用各個(gè)子區(qū)域的特征進(jìn)行跟蹤。其充分利用了目標(biāo)未被遮擋的區(qū)域進(jìn)行跟蹤,避免了被遮擋部分帶來(lái)的不利影響,能夠有效的解決局部遮擋跟蹤問(wèn)題。但是分塊匹配算法無(wú)法解決目標(biāo)被全部遮擋的跟蹤問(wèn)題;且分塊匹配算法的跟蹤性能受子塊大小的影響,若子塊過(guò)大時(shí)跟蹤算法的抗遮擋能力下降,子塊過(guò)小時(shí)跟蹤算法的跟蹤性能下降。研究人員利用Mean Shift跟蹤算法與Kalman預(yù)測(cè)融合的方法[3]進(jìn)行跟蹤,使用Bhattacharyya系數(shù)法進(jìn)行遮擋判定,若判定目標(biāo)處于正常跟蹤狀態(tài)時(shí),使用Mean Shift算法進(jìn)行跟蹤;若判定目標(biāo)處于遮擋狀態(tài)時(shí),則使用Kalman預(yù)測(cè)濾波器進(jìn)行預(yù)測(cè)跟蹤。由于Kalman預(yù)測(cè)濾波器受給定測(cè)量信息和遮擋判定的影響,若Mean Shift算法發(fā)生漂移導(dǎo)致Kalman預(yù)測(cè)濾波器中的歷史數(shù)據(jù)信息存在錯(cuò)誤,會(huì)影響遮擋狀態(tài)下Kalman預(yù)測(cè)濾波器的預(yù)測(cè)性能;若遮擋判定不準(zhǔn)確,當(dāng)目標(biāo)進(jìn)入遮擋物時(shí)沒(méi)有檢測(cè)出遮擋狀態(tài)或檢測(cè)出遮擋狀態(tài)時(shí)跟蹤算法已經(jīng)失效,Kalman預(yù)測(cè)濾波器未啟動(dòng)或未及時(shí)啟動(dòng),會(huì)導(dǎo)致跟蹤失效[4-6]。針對(duì)上述問(wèn)題,本文提出一種基于直方圖比的背景加權(quán)的Mean Shift算法與Kalman預(yù)測(cè)濾波器融合的方法,與Mean Shift算法相比,其具有如下優(yōu)勢(shì):
(1)本文算法通過(guò)改進(jìn)目標(biāo)的表觀模型來(lái)提高目標(biāo)在正常跟蹤狀態(tài)的跟蹤精度,從而提高Kalman預(yù)測(cè)性能。
(2)本文算法通過(guò)減少背景像素的影響來(lái)優(yōu)化Bhattacharyya系數(shù)值,增大正常跟蹤狀態(tài)下和遮擋狀態(tài)下Bhattacharyya系數(shù)的差值,提高遮擋檢測(cè)的敏感性。
本文使用圖片序列驗(yàn)證算法的有效性,通過(guò)實(shí)驗(yàn)表明,本文算法能夠提高遮擋時(shí)的跟蹤性能。
Mean Shift算法是利用圖像的顏色直方圖信息作為搜索匹配的特征,利用Bhattacharyya系數(shù)作為目標(biāo)模板和候選模板的相似度函數(shù),完成特征的匹配。在跟蹤過(guò)程中,通常使用矩形框手動(dòng)選擇目標(biāo)區(qū)域,目標(biāo)區(qū)域中有m個(gè)像素點(diǎn),特征空間中特征值的個(gè)數(shù)為n,對(duì)目標(biāo)區(qū)域的特征值u進(jìn)行建模:
(1)
(2)
候選區(qū)域的模型與式(1)類似,第N幀中特征值u的概率模型為:
(3)
Ch為歸一化常數(shù),與(1)中的C對(duì)應(yīng)。
使用Bhattacharyya系數(shù)來(lái)度量目標(biāo)模板和候選模板的相似度,其定義為:
(4)
其中,ρ(y)的值在[0,1]之間,ρ(y)的值越大,表示2個(gè)模板的相似度越高。通過(guò)對(duì)相似度函數(shù)求最大值,得到目標(biāo)的位置為:
(5)
式中:
g(x)=-k′(x),
(6)
(7)
其中:y0表示目標(biāo)當(dāng)前的位置,y1為迭代后的新位置。
由于經(jīng)典的Mean Shift算法中目標(biāo)初始模板受背景像素的影響[8-10],所以本文使用基于直方圖比的背景加權(quán)的Mean Shift算法(HRBW Mean Shift),通過(guò)在目標(biāo)模板外的環(huán)形區(qū)域內(nèi)建立背景直方圖,使用基于目標(biāo)直方圖和背景直方圖的對(duì)數(shù)似然比值推導(dǎo)出的權(quán)值作為背景加權(quán)因子,通過(guò)在目標(biāo)模板中加入背景加權(quán)因子來(lái)減少背景像素的影響,從而提高算法的跟蹤能力和遮擋檢測(cè)能力。
(1)背景直方圖建模
如圖1所示,紅色矩形框?yàn)槟繕?biāo)區(qū)域,目標(biāo)外部環(huán)形區(qū)域?yàn)楸尘皡^(qū)域,背景區(qū)域的模型為式(8):
(8)
(2)計(jì)算特征值為u的對(duì)數(shù)似然比值
(9)
式中,η是為了防止qu或bu為0的錯(cuò)誤情況,所以給η賦值為一個(gè)很小的值(0.1×10-6)。上式中通過(guò)非線性變換,使得和背景顏色特征相同的特征值在目標(biāo)直方圖中所占的權(quán)重較小。
圖1 背景直方圖建模圖Fig.1 Picture of background histogram modeling
(3)計(jì)算變換后的背景加權(quán)系數(shù)
根據(jù)式(9)得出的對(duì)數(shù)似然比值,使得和背景顏色特征相同的特征值在目標(biāo)直方圖中所占的權(quán)重較小,使得屬于目標(biāo)直方圖的特征的權(quán)重較大。得到背景加權(quán)系數(shù)μu為:
(10)
其中:Lmax是Lu中的最大值,Lmin是Lu中的最小值;μu是分段函數(shù),表示特征值u的權(quán)重,其取值在[0,1]。
(4)背景加權(quán)的目標(biāo)直方圖建模
(11)
其中:μu為背景加權(quán)系數(shù),C′為歸一化因子。
(5)Bhattacharyya公式
(12)
Kalman預(yù)測(cè)濾波算法是根據(jù)目標(biāo)的歷史運(yùn)動(dòng)數(shù)據(jù)來(lái)預(yù)測(cè)目標(biāo)下一時(shí)刻運(yùn)動(dòng)軌跡的一種跟蹤方法。本文使用目標(biāo)的位置和速度信息作為Kalman預(yù)測(cè)濾波器的狀態(tài)參數(shù),由于圖像序列中相鄰兩幀圖像之間的間隔時(shí)間較短,兩幀之間速度的變換量較小,所以假設(shè)圖像序列中的目標(biāo)做勻速運(yùn)動(dòng)。則卡爾曼濾波器的狀態(tài)方程定義為:
(1)狀態(tài)預(yù)測(cè)方程
x(k|k-1)=Ax(k-1|k-1),
(13)
x(k|k-1)是根據(jù)k-1時(shí)刻的目標(biāo)狀態(tài)預(yù)測(cè)k時(shí)刻的狀態(tài)信息,x(k-1|k-1)是目標(biāo)k-1時(shí)刻的狀態(tài)信息,A是狀態(tài)轉(zhuǎn)移矩陣,本文中的狀態(tài)信息x為:
x=[x,y,vx,vy]T,
(14)
其中:x,y分為表示目標(biāo)在圖像中的橫坐標(biāo)和縱坐標(biāo),vx和vy分別表示目標(biāo)的橫向運(yùn)動(dòng)速度和縱向運(yùn)動(dòng)速度。狀態(tài)矩陣A為:
(15)
(2)協(xié)方差預(yù)測(cè)方程
P(k|k-1)=AP(k-1|k-1)AT+Q,
(16)
其中:P(k|k-1)為根據(jù)k-1時(shí)刻預(yù)測(cè)到k時(shí)刻的協(xié)方差,Q為測(cè)量噪聲方差。
(3)Kalman增益方程
Kg(k)=P(k|k-1)HT/
(HP(k|k-1)HT+R)-1
(17)
Kg(k)為k時(shí)刻的卡爾曼增益值,H為觀測(cè)矩陣,R為過(guò)程噪聲方差。
(4)協(xié)方差更新方程
P(k|k)=(I-Kg(k)H)P(k|k-1),
(18)
P(k|k)為修正后k時(shí)刻的協(xié)方差值。
(5)狀態(tài)更新方程
x(k|k)=x(k|k-1)+
Kg(k)(Zk-HX(k|k-1)),
(19)
x(k|k)為修正后的狀態(tài)信息,Zk為觀測(cè)到的目標(biāo)狀態(tài)信息
(20)
H為觀測(cè)矩陣,本文H的取值為:
(21)
Bhattacharyya系數(shù)法可以用來(lái)衡量目標(biāo)模板和候選模板之間的相似度,其值在[0,1]之間,Bhattacharyya系數(shù)值越大,表示候選模板與目標(biāo)模板越相似。當(dāng)目標(biāo)正常跟蹤時(shí),巴氏系數(shù)值在某一范圍內(nèi)波動(dòng);當(dāng)目標(biāo)被遮擋時(shí),巴氏系數(shù)值急速下降。所以本文中使用巴氏系數(shù)作為跟蹤時(shí)的遮擋檢測(cè)方法,設(shè)定遮擋閾值為Bh。融合HRBW Mean Shift和Kalman預(yù)測(cè)濾波器的方法進(jìn)行目標(biāo)跟蹤時(shí)的步驟如下所示:
(1)對(duì)目標(biāo)進(jìn)行初始化,使用矩形框選定目標(biāo),根據(jù)公式(1)對(duì)目標(biāo)進(jìn)行初始建模,根據(jù)公式(8)對(duì)目標(biāo)框外的背景進(jìn)行建模,根據(jù)公式(10)得到背景加權(quán)系數(shù),然后使用公式(11)建立基于直方圖比的背景加權(quán)的目標(biāo)模型。
(2)獲取下一幀圖像數(shù)據(jù)。
(3)根據(jù)公式(5)獲取目標(biāo)當(dāng)前的位置信息y1,并開(kāi)始迭代。
(4)若‖y1-y0‖<ε或迭代次數(shù)k>n,迭代停止,根據(jù)公式(12)計(jì)算Bhattacharyya系數(shù)值ρ′(y),并將當(dāng)前目標(biāo)的位置信息傳給Kalman預(yù)測(cè)濾波器。
(5)若ρ′(y)>Bh,則繼續(xù)使用HRBW Mean Shift算法進(jìn)行跟蹤,重復(fù)步驟2、3、4、5,若ρ′(y) (6)使用Kalman預(yù)測(cè)的公式(19)更新目標(biāo)的當(dāng)前位置。并計(jì)算當(dāng)前幀的Bhattacharyya系數(shù)值ρ′(y),重復(fù)步驟5。 圖2 a組圖像序列的相似度曲線對(duì)比圖Fig.2 Comparison diagram of similarity curves of group a image sequences 本文在Windows平臺(tái)下的Visual Studio軟件下驗(yàn)證上述算法的有效性,設(shè)定遮擋閾值Bh=0.5。分別使用兩組(a組和b組)帶有遮擋物的圖像序列來(lái)驗(yàn)證本文算法的遮擋跟蹤性能。圖2為a組圖像序列中跟蹤運(yùn)動(dòng)目標(biāo)時(shí)的相似度值曲線對(duì)比圖。在目標(biāo)正常跟蹤時(shí),本文算法相對(duì)Mean Shift算法的相似度值減小了不超過(guò)0.06,不影響目標(biāo)的正常跟蹤。在遮擋情況下,圖中使用Mean Shift算法在完全遮擋時(shí)的Bhattacharyya系數(shù)值為0.55(目標(biāo)經(jīng)過(guò)遮擋物后跟蹤算法失效,所以Bhattacharyya系數(shù)值保持在0.55),Bhattacharyya系數(shù)值始終大于遮擋閾值Bh,所以此種情況下使用Mean Shift算法中的Bhattacharyya系數(shù)法無(wú)法判斷目標(biāo)的遮擋狀態(tài),目標(biāo)進(jìn)入遮擋時(shí)無(wú)法啟用Kalman預(yù)測(cè)濾波器,跟蹤失效。使用本文跟蹤算法跟蹤目標(biāo)時(shí),目標(biāo)被完全遮擋時(shí)Bhattacharyya系數(shù)值為0.38,相對(duì)于Mean Shift算法中的Bhattacharyya系數(shù)的臨界值減小了0.17。此時(shí)巴氏系數(shù)值小于遮擋閾值Bh,故本文算法可以判定此種情況的遮擋狀態(tài),及時(shí)啟動(dòng)Kalman預(yù)測(cè)濾波器進(jìn)行預(yù)測(cè)跟蹤。其跟蹤效果如圖3所示。 圖3 a組圖像序列蹤效果圖Fig.3 Picture of tracking in image sequence of group a 飛機(jī)在進(jìn)入云層中(如圖220幀)被判定為遮擋狀態(tài),此時(shí)啟動(dòng)Kalman預(yù)測(cè)濾波算法進(jìn)行預(yù)測(cè)跟蹤,如圖230幀和240幀,250幀和260幀表示目標(biāo)離開(kāi)遮擋物后切換到跟蹤算法進(jìn)行跟蹤。圖4為b組圖像中跟蹤運(yùn)動(dòng)目標(biāo)時(shí)相似度值的曲線對(duì)比圖,由圖可知,在遮擋閾值為0.5時(shí),本文算法和Mean Shift算法均能檢測(cè)出遮擋。本文算法在272幀圖像中檢測(cè)出遮擋,而Mean Shift算法在278幀才檢測(cè)出,本文算法相對(duì)Mean Shift算法提前檢測(cè)出了遮擋,因此更加及時(shí)的啟用了Kalman預(yù)測(cè)濾波器。Mean Shift跟蹤算法在272~278幀的遮擋過(guò)程中,由于目標(biāo)的特征信息被遮擋,使用跟蹤算法獲取的目標(biāo)位置和真實(shí)位置有偏差,若將此偏差傳入到Kalman預(yù)測(cè)濾波器中,特別是偏差較大時(shí),會(huì)使得預(yù)測(cè)失效,所以及時(shí)地啟動(dòng)Kalman預(yù)測(cè)濾波器有利于提高遮擋時(shí)的跟蹤性能?;叶葓D像序列在遮擋時(shí)的跟蹤效果如圖5所示。 圖4 b組圖像序列的相似度曲線對(duì)比圖Fig.4 Comparison diagram of similarity curves of groupb image sequences 圖5 b組圖像序列跟蹤效果圖Fig.5 Picture of tracking in image sequence of groupb 本文針對(duì)遮擋跟蹤時(shí)使用Mean Shift算法和Kalman預(yù)測(cè)濾波器融合的方法時(shí)因遮擋判定不準(zhǔn)確而造成跟蹤失效的缺點(diǎn),提出使用基于直方圖比的背景加權(quán)的Mean Shift算法和Kalman預(yù)測(cè)濾波器融合的方法,基于直方圖比的背景加權(quán)的Mean Shift跟蹤算法通過(guò)來(lái)改進(jìn)目標(biāo)模型來(lái)減少初始化跟蹤框中的背景像素的影響,進(jìn)而提高遮擋判定的準(zhǔn)確性。通過(guò)實(shí)驗(yàn)表明,使用基于直方圖比的背景加權(quán)的Mean Shift算法和Kalman預(yù)測(cè)濾波器融合的方法能夠有效判定目標(biāo)的遮擋狀態(tài),并在目標(biāo)被遮擋的情況下進(jìn)行連續(xù)的跟蹤。此方法可在FPGA硬件平臺(tái)上實(shí)現(xiàn)高幀頻跟蹤,具備一定的工程實(shí)用價(jià)值。 由于Kalman濾波方法適用于線性運(yùn)動(dòng)的目標(biāo)或在遮擋時(shí)間較短的情況下,后續(xù)工作中將針對(duì)非線性運(yùn)動(dòng)目標(biāo)進(jìn)行研究,并解決目標(biāo)遮擋時(shí)間較長(zhǎng)的遮擋跟蹤問(wèn)題。3 結(jié)果討論和分析
4 結(jié) 論