石 強,葛 源,李昌順,唐 豪,李聞達
(中國核動力研究設計院,成都 610005)
室內場景中的人體追蹤是目標追蹤算法的具體應用,通常應用于人體的軌跡繪制以及敏感區(qū)域報警等?,F(xiàn)有學者大多數(shù)集中在如何提高目標追蹤算法的速度和精度的研究上,對遮擋問題的研究較少。遮擋、模糊,目標丟失問題是室內場景中人體追蹤的核心難題,如何處理這些問題應該是室內場景中人體追蹤的重要內容。本文以經典KCF(High-Speed Tracking with Kernelized Correlation Filters) 算法為基礎,結合場景信息,進行尺度估計,設計異常追蹤判據和新的模型更新策略,使改進后的KCF 具有強大的異常追蹤處理能力和對模型漂移的免疫能力。
KCF 通常在追蹤過程中訓練一個相關濾波器,利用該相關濾波器可以得到上一幀圖片目標附近循環(huán)移位采樣圖像塊的響應圖,響應圖的峰值點即為當前幀跟蹤目標[1-3]。接著再使用獲得的跟蹤結果,去更新樣本集和相關濾波器。樣本集通常由目標塊循環(huán)位移得到,循環(huán)樣本xi相對應的標簽值yi相對于基礎目標圖像的距離服從高斯分布。KCF充分利用了循環(huán)矩陣在傅里葉空間可對角化的性質,利用循環(huán)矩陣的性質,顯著地降低了樣本訓練和相關濾波的運算復雜度[6-7]。
圖 1 室內場景抽象圖Fig.1 Abstract image of indoor scene
在室內場景中,通常地平面是整潔和較為光滑的,因此可以理想地假定地平面與頭頂?shù)钠矫嫫叫?。人體在室內場景中運動的時候,由于人體的身高并沒有發(fā)生劇烈的變化,可以假定人體目標為剛體(實際人體并非剛體)?;谝陨戏治?,本文可以給出3 個假設。
假設1:室內場景的地面可以當做是平面。
假設2:圖像平面近似地垂直于地面。
假設3:每一個人體目標在運動的時候,近似地看做高度不發(fā)生變化的剛體。
本文將室內場景的環(huán)境模型抽象成如圖1 所示的模型。利用大寫的(X,Y,Z)代表世界坐標系;利用小寫粗體的(u,v)代表像素坐標系;利用P0和Q0代表人體的腳部和頭部的位置,其在圖像上對應的位置為p0,q0。給定初始的人體在圖像上的位置高度,本小節(jié)的目標就是給出一種方法,估計出在圖像其他位置的高度h。
根據假設3,當人體發(fā)生運動的時候,可以近似地看做不發(fā)生變化的剛體,因此當人體目標從初始位置P0運動到P1的時候,由于人體在室內場景中的高度沒有發(fā)生變化,所以在世界坐標系中,Lq和Lp相互平行。與此同時,他們在圖像坐標系中的投影點q0、p0、q1、p1相交于l 線上的一點v,本文定義l 為滅線。
設滅線l:
其中,θ=(a,b,c)T,p=(u,v,1)T,根據三角形相似定理,可以得到:
根據公式(2),可以得到v:
由于v 輸入滅線l 上的點,可以解算出λ:
如果知道了滅線的參數(shù),可以根據初始位置h0,p0來估計出任何位置P 的尺度h,令,,得:
其中,p0,h0為初始位置,p 為圖像上的位置,h 為人體在圖像上的高度,w 與h 的求法類似。顯然,β 最終由初始位置和高度以及θ 決定,因此只需要求出θ 即可。首先,通過實驗獲n 對人體在場景平面的位置和高度值然后利用最小二乘法估計出最終需要的參數(shù)η=βθ,使得平均方差最小。
由于采集單個人體在場景的位置和高度,可能會由于測量噪聲導致最終得到的η 不可靠。解決辦法是采集K 個不同的人體目標在場景中的位置和高度,仍定義那么重新定義式(5),有:
在室內場景中,人體目標相互遮擋或者被物體遮擋時,會導致人體追蹤失敗。實際上,嚴重的遮擋和目標丟失是視覺追蹤的一大挑戰(zhàn),KCF 追蹤算法和部分現(xiàn)有的追蹤器一樣,每一幀不考慮追蹤結果是否準確。一旦當前幀的目標追蹤錯誤,產生遮擋,或者丟失,都會導致追蹤的失敗。在本小節(jié),針對遮擋和目標丟失問題,在目標檢測的過程中,利用追蹤結果反饋來確定模型更新的必要性,同時根據QlT 的變化來解決異常追蹤情況下的模型更新問題。
KCF 通過循環(huán)采樣得到的整張響應圖可以通過式(9)計算:
圖2 異常追蹤響應圖Fig.2 Exception tracking response diagram
響應圖的峰值和波動在一定程度上揭示了追蹤效果的置信程度。理想響應圖在當前幀檢測到的目標與目標非常匹配的時候,在匹配區(qū)域應該只有一個尖峰而其他區(qū)域則比較平順。響應圖的峰值越高越清晰,那么目標定位精度越好,否則響應圖則波動劇烈和正常的響應圖有著明顯的不同。
如圖2 所示,藍色框為正確的人體追蹤結果,紅色框是錯誤的人體追蹤結果。正確人體目標在響應圖上的響應值低于錯誤追蹤紅色目標框的位置,KCF 中定義響應值最大的為正確追蹤目標,因此會導致追蹤錯誤。根據上述分析,本文定義了兩條判據來判斷當前追蹤是否正常。第一個判據是利用響應圖的峰值,定位為響應圖的最大響應值:
第二個判據為QlT:
其中,F(xiàn)max,F(xiàn)min,F(xiàn)w,h,分別代表響應圖的峰值、谷值以及w,h 處的值,QlT 可以用于反映響應圖的震蕩程度以及追蹤結果的置信度。當目標在檢測范圍內的時候,其響應圖由于只存在一個尖銳的尖峰并且周圍區(qū)域十分平滑而且噪聲較小,因此QlT 的值較大。而當目標被遮擋或者出現(xiàn)丟失的時候,此時響應圖震蕩的厲害,QlT 顯著變小。
綜合上述分析,本文給出了目標追蹤結果可靠性的判斷條件:
當前,幀F(xiàn)max和QlT 的值都大于各自歷史平均水平乘以一定的比例時,本文認為當前的追蹤結果是可靠的,可以用當前幀的追蹤結果去更新模型,否則判斷當前的追蹤結果由于遮擋、模糊或者丟失的原因導致追蹤結果不可靠,因此需要舍棄當前幀重新選擇以往的幀進行模型更新。
圖3 KCF改進算法流程圖Fig.3 KCF Improved algorithm flow chart
當判斷出目標發(fā)生遮擋、模糊以及丟失的現(xiàn)象的時候,文獻[4]提出了利用FarnBack 光流算法對運動物體進行測速的方法,并結合模板池的策略解決以往的幀的選擇問題。但是光流計算比較復雜,會大大降低追蹤的實時性。因此,本文利用QlT 來設計一種簡單的異常追蹤情況下的取幀策略。設檢測到異常幀的幀數(shù)為xi,那么假定處于異常連續(xù)追蹤的幀總共有K 幀,那么定義d 有式(12):
圖4 發(fā)生遮擋兩種算法效果對比Fig.4 Comparison of the effects of the two algorithms when occlusion occurs
改進的KCF 算法流程圖如圖3 所示。當輸入視頻后,選定目標,利用尺度估計出目標的尺度,然后運行KCF 算法,得到目標的位置和大小,然后判斷是否是最后一幀,若是最后一幀,則結束算法;否則利用異常追蹤判據判斷追蹤結果是否正常,若追蹤正常,則利用當前幀檢測下一幀,否則計算取樣間隔d,然后在模板池中選擇以往的模板用于下一幀的追蹤。
本文實驗的仿真軟件為matlab R2013B。首先,是對遮擋產生其QlT 和Fmax的實驗,實驗步驟如下:選定一個追蹤人體目標,然后利用response 函數(shù)繪制響應圖,同時觀察改進后的目標追蹤算法和KCF 算法的QlT 及Fmax。
圖5 實驗結果Fig.5 Experimental results
圖4 中,第一行是在321 幀給定人體目標后的追蹤效果及其響應圖,紅色框為改進后的KCF 算法的追蹤效果,藍色框為KCF 目標追蹤算法的追蹤效果,從圖中可以看出紅色框要比藍色框更能很好地包裹住人體目標,而不過多地引進背景信息,這是因為本文的改進算法引入尺度估計,這樣根據人體在場景中的位置對尺度進行調整。在454 幀,人體目標被遮擋,此時Fmax和QlT 都減小,利用異常追蹤判據可以判斷此時的追蹤結果可能會發(fā)生異常。此時,改進的KCF 算法會根據本文的模型更新策略,丟棄當前追蹤結果,在模板池中選定合適的模板重新追蹤,而KCF 由于沒有異常追蹤判據,而對追蹤結果不檢查,采用逐幀追蹤的結果進行更新。在511 幀,人體目標不再被遮擋??梢园l(fā)現(xiàn),改進后的KCF 人體追蹤結果仍然準確,而KCF 追蹤失敗。
本文實驗利用幾種較為成熟的目標追蹤算法與本文的算法進行對比,其測試數(shù)據集為OTB-100 數(shù)據庫中的JOgging 和girl 數(shù)據集,測試5 種算法的Overlap threshold-Success Rate 和Location error threshold-Precision 曲線圖。實驗結果如圖5 所示。
實驗結果顯示,改進后的KCF 在速度上比KCF 有所降低,但是仍然達到了124FPS/s。在相同的Overlap 閾值上,改進KCF 的追蹤成功率都比其他算法較高。在相同的Location error 閾值上,改進的KCF 也有很好的Precison 表現(xiàn),但是綜合其在速度上的優(yōu)勢,改進的KCF 具有強大的異常追蹤處理能力,同時也能夠很好地解決模型漂移問題。