亢 潔, 孫 陽, 李曉靜, 李思禹, 李長仁
(陜西科技大學 電氣與信息工程學院, 陜西 西安 710021)
視頻目標跟蹤[1]是機器視覺領域的基礎問題之一,它是目標識別、行為識別等后續(xù)應用的基礎,在社會安全、航空航天等重大項目中有著廣闊的應用前景[2-5].一般常用的目標跟蹤方法包括均值漂移(MeanShift)算法、基于Kalman濾波的目標跟蹤、基于粒子濾波的目標跟蹤和基于對運動目標建模的跟蹤.MeanShift算法[6]可以通過較少的迭代次數(shù)快速找到與目標最相似的位置,但是不能解決目標的遮擋問題且不能適應運動目標的形狀和大小變化等.對其改進的算法有連續(xù)自適應的MeanShift算法(CamShift)[7],此算法可以適應運動目標大小形狀的改變,具有較好的跟蹤效果,但當背景顏色與目標顏色接近時,容易使目標的區(qū)域變大,最終有可能導致目標跟丟.基于Kalman濾波的目標跟蹤[8]認為物體的運動模型服從高斯分布來對目標的位置進行預測,然后通過與觀察模型對比,根據(jù)誤差來更新運動目標的狀態(tài).基于粒子濾波的目標跟蹤[9]每次通過當前的跟蹤結果重采樣粒子的分布,然后根據(jù)粒子的分布對粒子進行擴散,再通過擴散的結果來重新觀察目標的狀態(tài),最后歸一化更新目標的狀態(tài).此類算法的特點是跟蹤速度快[10],并且能夠解決部分遮擋的問題,但是當目標發(fā)生嚴重遮擋時,跟蹤效果很差.基于對運動目標建模的方法[11]需要對跟蹤的運動目標進行建模,然后利用該模型來跟蹤運動目標.此類方法因為要依據(jù)先驗知識,因此具有一定的局限性.
基于時空上下文的目標跟蹤是Zhang等[12]2013年提出的一種目標跟蹤算法.該算法基于貝葉斯框架建立了目標與周圍內(nèi)容的時空關系,在低階特征上對目標與附近區(qū)域進行了統(tǒng)計關系建模,通過計算置信圖找到似然概率最大的位置即為目標跟蹤結果.此算法跟蹤速度快,可以實現(xiàn)實時的跟蹤,但當目標被嚴重遮擋時,則容易出現(xiàn)跟錯或者跟丟的問題.
綜上所述,在運動目標跟蹤過程中嚴重遮擋問題是現(xiàn)有的跟蹤算法面臨的一項巨大挑戰(zhàn)[13],考慮到以上跟蹤算法的特性,本文設計了一種基于時空上下文與Kalman濾波的目標跟蹤算法,能夠解決由于目標被嚴重遮擋而出現(xiàn)的跟蹤失效問題.
基于時空上下文的目標跟蹤算法的主要思想是通過貝葉斯框架對要跟蹤的目標和它的局部上下文區(qū)域的時空關系進行建模,得到目標和其周圍區(qū)域低級特征的統(tǒng)計相關性.然后綜合這一時空關系和生物視覺系統(tǒng)上的關注特性來評估新的一幀中目標出現(xiàn)位置的置信圖,置信值最大的位置就是新一幀中目標的位置.
在運動目標跟蹤過程中,可以將跟蹤問題描述為計算一個估計目標位置X似然的置信圖:
c(X)=P(X|o)=
∑c(Z)∈XcP(X,c(Z)|o)=
∑c(Z)∈XcP(X|c(Z),o)*P(c(Z)|o)
(1)
式(1)中:X∈R2是運動目標的位置,o表示場景中存在的對象.置信圖c(X)中最大的位置X*就是運動目標的位置.從式(1)中可以看到,似然函數(shù)可以分解為兩個概率部分.一個是建模目標與周圍上下文信息空間關系的條件概率P(X|c(Z),o),一個是建模目標局部上下文各個點X的上下文先驗概率P(c(X)|o).而目標位置與它的時空上下文關系即條件概率P(X|c(Z),o)需要通過學習得到.
(1)空間上下文模型
空間上下文模型描述的是條件概率函數(shù):
P(X|c(Z),0)=hsc(X-Z)
(2)
式(2)中:hsc(X-Z)表示的是目標和其時空上下文的關系.此模型通過在線學習獲得且隨著跟蹤的進行不斷更新.
(2)上下文先驗模型
上下文先驗模型描述的是先驗概率函數(shù):
P(c(Z)|o)=I(Z)*ωσ(Z-X*)
(3)
式(3)中:I(Z)為點Z的灰度值,描述的是上下文Z的外觀特征.ωσ是一個加權函數(shù),其定義如下:
(4)
(3)置信圖
置信圖的定義如式(5)所示:
(5)
目標X*的位置已知,則可以根據(jù)式(5)計算上下文區(qū)域中任一點X的似然得出上式中的置信圖.其中b是一個標準化常數(shù),α是尺度參數(shù),β是形狀參數(shù).
(4)時空模型的學習
基于上下文先驗模型和置信圖來學習時空模型:
∑Z∈ΩC(X*)hsc(X-Z)*I(Z)*ωσ(Z-X*)=
hsc(X)?(I(X)*ω(X-X*))
(6)
式(6)中的卷積可以通過快速傅里葉變換來加速運算:
F(hsc(X))*F(I(X)*ωσ(X-X*))
(7)
由式(7)可以得到學習的空間上下文模型如下:
(8)
根據(jù)式(8)可以對時空上下文模型進行更新:
(9)
得到時空上下文模型后就可以在新的一幀圖像中計算目標的置信圖,置信圖中值最大的位置就是目標的位置.
ct+1(X)=
(10)
(11)
基于時空上下文的運動目標跟蹤算法步驟如下:
Step1對于第k幀圖像,根據(jù)第k幀中運動目標的位置學習時空上下文模型;
Step2由時空上下文模型更新公式計算得到第k+1幀的時空上下文模型;
Step3根據(jù)第k+1幀的時空上下文模型及上下文先驗模型可得到第k+1幀的置信圖;
Step4通過計算第k+1幀置信圖中的最大值最終得到k+1幀時運動目標所在位置.
Kalman濾波[14]利用目標的動態(tài)信息,設法去掉噪聲的影響,得到一個關于目標位置的較好估計.這個估計值可以是對當前目標位置的估計(濾波),也可以是對將來位置的估計(預測),也可以是對過去位置的估計(插值或平滑).本文引入Kalman濾波利用目標的歷史位置信息來對目標當前幀的位置進行估計.其中Kalman濾波中的狀態(tài)變量和觀測值均為目標的位置信息.Kalman濾波算法的模型如式(12)、(13)所示:
信號模型:
Xk=AkXk-1+BkXk
(12)
觀測模型:
Zk=HkXk+Vk
(13)
式(12)~(13)中:Ak是系統(tǒng)矩陣,Bk是輸入矩陣,Xk為狀態(tài)向量,動態(tài)噪聲Wk和觀測噪聲Vk為互不相關的均值白噪聲序列;Hk為觀測矩陣,Zk為觀測向量.
要完成運動目標的跟蹤,首先要解決運動目標的模型問題,假設目標是勻速運動的,則運動目標動態(tài)特性包括位置、速度,由狀態(tài)向量Xk=[xk,yk,vxk,vyk]T表示,其中xk,yk分別為目標質(zhì)心的x,y坐標;vxk,vyk分別為目標速度在x,y軸上的分量;觀測向量Zk=[xk,yk]T.
本文所采用的信號模型為:
(14)
觀測模型為:
(15)
Kalman濾波方程如下:
時間更新:
(16)
(17)
狀態(tài)更新:
(18)
(19)
(20)
本文中引入Kalman濾波對目標的位置進行估計,因此輸入狀態(tài)向量uk-1=0.在Kalman濾波過程中觀測向量對濾波狀態(tài)的更新起著至關重要的作用.
基于卡爾曼濾波運動目標跟蹤算法的步驟如下:
Step1檢測運動目標,并為該目標初始化卡爾曼濾波器,用于預測運動目標的運動狀態(tài),并根據(jù)運動目標檢測的結果,將其作為系統(tǒng)的觀測值;
Step3誤差協(xié)方差矩陣時間更新,由上一時刻的誤差協(xié)方差Pk-1,得到下一時刻的誤差協(xié)方差;
Step5誤差協(xié)方差的修正,根據(jù)誤差協(xié)方差的預測結果修正得到誤差協(xié)方差矩陣,得到最小化的誤差協(xié)方差;
Step6運動目標狀態(tài)的修正,對狀態(tài)預測結果和觀測結果做加權平均,得到當前時刻的狀態(tài)估計.
根據(jù)基于時空上下文的目標跟蹤算法原理可以知道,算法是根據(jù)前一幀的時空上下文模型更新計算得到當前幀的時空上下文模型的,而當前幀的時空上下文模型直接決定了當前幀目標跟蹤位置的準確性.當目標沒有發(fā)生嚴重遮擋時,算法可以準確地跟蹤運動目標,但是當目標發(fā)生嚴重遮擋且持續(xù)時間較長的情況下,基于時空上下文的跟蹤會將遮擋物誤認為跟蹤目標,從而使得跟蹤失效.而Kalman濾波過程包括預測和修正兩個部分,其可以根據(jù)系統(tǒng)的歷史狀態(tài)信息得到對當前狀態(tài)的一個較好估計.因而,為了解決跟蹤過程中由于遮擋帶來的跟蹤失效問題,本文考慮當目標發(fā)生嚴重遮擋時,采用Kalman濾波的時間更新,利用目標歷史位置信息與運動信息從而得到對當前幀目標位置的一個初始估計.
因此,本文提出了一種基于時空上下文與Kalman濾波的視頻目標跟蹤算法,其具體過程為:首先通過鼠標手動框出運動目標作為初始化的目標位置,同時對運動目標所在區(qū)域進行提取;然后通過基于時空上下文的跟蹤算法對運動目標進行跟蹤;在每一幀中首先判斷目標是否發(fā)生了嚴重遮擋,當目標沒有發(fā)生遮擋時,則以基于時空上下文的跟蹤結果作為Kalman濾波的觀測值來更新Kalman的濾波狀態(tài);當目標發(fā)生嚴重遮擋時,此時基于時空上下文的跟蹤結果失效,則以Kalman的預測值作為Kalman濾波的觀測值來更新Kalman的濾波狀態(tài).
當目標發(fā)生嚴重遮擋時,基于時空上下文的運動目標檢測會出現(xiàn)誤跟現(xiàn)象,此時若以其跟蹤結果作為Kalman濾波的觀測值來更新Kalman濾波的狀態(tài)必然會導致跟蹤錯誤.因此首先需要判斷目標是否發(fā)生了嚴重遮擋.
在通過手動框選運動目標之后,以此時的位置作為目標的初始位置,記為[x0,y0,width,height].在初始幀中提取運動目標所在區(qū)域記為img_src,根據(jù)當前幀中基于時空上下文的目標跟蹤結果[x,y,width,height]提取目標在當前幀中的所在區(qū)域記為img_dst,通過計算在不同幀中提取的運動目標所在區(qū)域圖像對應的灰度直方圖向量的相關系數(shù)[15]來判斷目標是否發(fā)生了嚴重遮擋.
相關系數(shù)r是一種數(shù)學距離,可以用來衡量兩個向量的相似程度.它起源于余弦定理:
cos(A)=(a2+c2-b2)/2bc
(21)
如果兩個向量的夾角為0度(對應r=1),說明其完全相似;如果夾角為90度(r=0),則其完全不相似;如果夾角為180度(r=-1),則其完全相反.把余弦定理寫成向量的形式:
cos(A)=〈b,c〉(|b|*|c|)
(22)
即:
cos(A)=
(23)
式(23)中:分子為兩個向量的內(nèi)積,分母表示兩個向量的模相乘.本文通過設定特定閾值T來判斷目標是否發(fā)生了嚴重遮擋,其中0 閾值T的確定:通過統(tǒng)計不同相關系數(shù)閾值下遮擋判斷的準確率來確定最終的閾值.比如在pets2009視頻集的camera2測試視頻中,遮擋情況下相關系數(shù)閾值分別取0.6、0.7、0.8、0.9時的遮擋情況判斷準確率如表1所示. 表1 不同閾值遮擋情況判斷結果 由表1的數(shù)據(jù)可以看到,當閾值取為0.9時遮擋判斷準確最好,所以本文將閾值取為0.9.本文仿真實驗中其他視頻集按照該方法選取的閾值是0.9. 若當前幀中相關系數(shù)r小于閾值T時,認為目標發(fā)生了嚴重遮擋,此時將Kalman濾波根據(jù)上一幀跟蹤結果所得的預測位置作為當前幀Kalman濾波的觀測值對當前幀Kalman濾波狀態(tài)進行更新;若相關系數(shù)r大于閾值T時,則認為運動目標沒有發(fā)生嚴重遮擋,采用基于時空上下文的當前幀目標跟蹤結果作為當前幀Kalman濾波的觀測值對當前幀Kalman濾波狀態(tài)進行更新. 本文提出的改進視頻目標跟蹤算法流程圖如圖1所示. 圖1 本文提出的改進目標跟蹤算法流程圖 本文以中科院人體行為分析數(shù)據(jù)庫中的walk視頻與pets2009視頻集為測試視頻,其中walk視頻為目標未發(fā)生嚴重遮擋的情況,pets2009為目標發(fā)生嚴重遮擋的情況.在這兩組測試視頻上分別對MeansShift目標跟蹤、基于時空上下文的目標跟蹤與本文提出的改進目標跟蹤算法進行仿真,其跟蹤效果如圖2~4所示. (a)未發(fā)生嚴重遮擋情況下的目標跟蹤效果圖 (b)發(fā)生嚴重遮擋情況下的目標跟蹤效果圖圖2 Meanshift目標跟蹤效果圖 (a)未發(fā)生嚴重遮擋情況下的目標跟蹤效果圖 (b)發(fā)生嚴重遮擋情況下的目標跟蹤效果圖圖3 基于時空上下文的目標跟蹤效果圖 (a)未發(fā)生嚴重遮擋情況下的目標跟蹤效果圖 (b)發(fā)生嚴重遮擋情況下的目標跟蹤效果圖圖4 基于時空上下文與Kalman濾波算法目標跟蹤效果圖 通過對比仿真結果圖可以看到,當目標未發(fā)生嚴重遮擋情況時,MeanShift目標跟蹤當目標顏色與背景顏色接近時出現(xiàn)了誤跟,而基于時空上下文的目標跟蹤與本文算法的目標跟蹤效果較接近,都能實現(xiàn)準確的目標跟蹤,且對目標部分遮擋都具有較好的抗干擾性,例如圖3(a)里的200幀與圖4(a)里的200幀跟蹤效果圖;當目標發(fā)生嚴重遮擋時,可以看到MeanShift目標跟蹤與基于時空上下文的目標跟蹤均出現(xiàn)了跟蹤失效,如圖2(b)里的338幀和380幀跟蹤效果圖以及圖3(b)里的338幀和380幀跟蹤效果圖.而本文算法依然可以實現(xiàn)準確的目標跟蹤,如圖4(b)里的338幀和380幀跟蹤效果圖. 為了定量評價算法的跟蹤效果,本文通過跟蹤中心誤差以及跟蹤速率來對算法進行評價.其中跟蹤中心位置誤差可以用跟蹤目標的中心位置(x,y)與手工標注的真實位置(x′,y′)的平均歐式距離來表示.如式(24)所示: (24) 本文以人體行為分析數(shù)據(jù)庫中的walk視頻、pets2009中的camera2視頻為測試視頻,通過手工標定目標的中心位置.其中walk視頻中存在背景與前景顏色相近以及部分遮擋等情況;camera2中存在目標被完全遮擋的情況.三種目標跟蹤算法在不同視頻集上的跟蹤中心誤差如圖5所示. (a)walk視頻上的跟蹤誤差對比 (b)pets2009視頻上的跟蹤誤差對比圖5 三種目標跟蹤算法在不同視頻上的跟蹤中心誤差變化曲線 通過對比圖5中基于時空上下文與本文算法的跟蹤中心誤差變化曲線可以看到,在目標未發(fā)生嚴重遮擋的情況下,本文算法的整體跟蹤誤差要小于時空上下文目標跟蹤與MeanShift目標跟蹤;當目標被嚴重遮擋時,時空上下文的目標跟蹤算法與與MeanShift跟蹤均失效,中心誤差逐漸增大,本文算法跟蹤中心誤差雖然也有所增加但是跟蹤中心誤差最大不超過25,所以綜合來看本文算法跟蹤中心誤差要小于時空上下文的跟蹤,算法具有一定的抗遮擋性. 兩種算法的平均跟蹤速率對比如表2所示. 表2 平均跟蹤速率對比 通過表2可以看到,本文算法由于加入了Kalman濾波機制,因此平均跟蹤速率相較于時空上下文跟蹤有所提升,可以達到20幀/s,因此可以實現(xiàn)目標的實時跟蹤. 針對目標跟蹤過程中,當目標發(fā)生嚴重遮擋時基于時空上下文的目標跟蹤算法容易出現(xiàn)跟蹤失效的問題,本文提出了一種基于時空上下文與Kalman濾波的視頻目標跟蹤算法,能夠克服當目標發(fā)生嚴重遮擋時誤跟與錯跟的問題,可以實現(xiàn)準確的目標跟蹤,且能夠實時跟蹤運動目標.但是在跟蹤過程中算法并沒有考慮多尺度目標跟蹤的問題,因此在后續(xù)工作中將加入多尺度因素從而使算法能夠達到更好的跟蹤效果.4 仿真結果分析
5 結論