張鑫生,劉 浩,孫曉帆,況奇剛,吳樂明
(東華大學 信息科學與技術學院,上海 201620)
視頻目標跟蹤是許多機器視覺應用的重要組成部分,例如運動識別、人機交互、自動監視和交通監控[1].目標跟蹤問題可以定義為當圖像視頻中的物體在場景周圍移動時,如何估計物體軌跡;相應的跟蹤算法就是在某一視頻的后續幀中預先為被跟蹤對象分配一致的標簽[2].在目標跟蹤領域中,小運動目標的跟蹤是一個難點和重點,尤其現在的視頻分辨率越來越高,跟蹤目標在一幀中的占比越來越小,多樣化的背景和復雜的攝像機運動都增加了小目標跟蹤的難度[3].
編碼視頻的目標跟蹤算法根據其依賴信息可分為兩大類:像素域跟蹤算法和壓縮域跟蹤算法[4].像素域跟蹤算法的特點是跟蹤的準確率高,但是計算復雜度也高.由于相當高的計算復雜度,像素域跟蹤算法在需要并行處理多個視頻流的場景中并不適用.另一方面,壓縮域算法處理的數據來自于壓縮碼流中已經編碼的信息,例如運動矢量、塊編碼模式或運動補償的預測殘差變換系數等.壓縮域跟蹤算法相比于像素域跟蹤算法,由于避免了對視頻的全部解碼,計算成本通常較低,顯著減少了數據處理量和存儲需求.然而,由于壓縮域跟蹤算法沒有利用全部的像素信息,目標跟蹤的準確率往往不及像素域跟蹤算法.
基于馬爾科夫模型來實現壓縮域目標跟蹤的算法近年來得到了廣泛的研究[5].Zeng等人[6]提出的算法是最早使用馬爾科夫隨機場(MRF)進行目標跟蹤的算法之一,該方法通過最小化MRF能量,將相似的運動矢量(MV)合并到運動對象中,并定義了不同的MV類型.方法[6]將跟蹤問題轉化為在已經分類的MV鄰域上進行馬爾可夫標記的過程,在這個過程中該方法利用運動矢量的空間連續性和時間一致性來追蹤移動目標.但是,文獻[6]沒有考慮潛在的攝相機運動,因此,它只適用于跟蹤攝像機固定拍攝的物體運動[7].Khatoonabadi等人[8]提出了另外一種使用MRF模型進行目標跟蹤的算法,該方法不是先將運動矢量分成多個類型,而是直接使用運動矢量的觀測值來計算運動相關性.此外,文獻[8]采用全局運動補償來處理攝像機運動造成的影響,并提出一種基于相鄰塊的運動矢量來為幀內編碼塊分配運動矢量的方法.Xu等人[9]提出基于全局運動估計的視頻顯著圖檢測方法來對目標進行跟蹤.盡管文獻[8]和[9]在一些傳統視頻序列下的跟蹤性能良好,但是針對小目標的跟蹤,它們的表現卻不理想.
基于MRF模型的壓縮域目標跟蹤算法對當前幀的預測會參考前一幀的運動目標預測結果,導致前一幀的預測錯誤會影響到當前幀的預測.由于小目標本身在一幀中所占的比例很小,故而對預測錯誤的容忍度更小.以H.264視頻編碼標準為例,由于H.264采用的是塊劃分[10],所以在得到起始幀的掩模時要進行4×4的塊劃分,需要將起始幀的標準參考圖像的高、寬分別縮小4倍,然后用得到的起始幀掩模來計算下一幀的預測結果,這個預測結果需要再將高、寬放大4倍來得到下一幀預測的像素域表示,整個過程如圖1所示,圖中括號的內容是不同階段的圖像尺寸.

圖1 基于 MRF 的目標跟蹤算法流程圖
為了對目標跟蹤算法進行比較,通常使用準確率(Precision)、召回率(Recall)和F度量(F-Measure)來衡量算法的客觀性能[11].接下來分析起始幀的掩模特性.假設將掩模放大得到的起始幀的像素域表示沒有FN,則FP=λ ·TP,可得:

圖2給出了Precision和倍數 λ的關系圖,從圖中可以看出,若Precision=0.8,則 λ =2,FP=0.25TP;若Precision=0.33,則 λ =2,FP=2TP,即λ越大,Precision就越小.從大量實驗中發現,占比越大的目標,相對應的 λ越小;占比越小的目標,相對應的λ 越大.

圖2 Precision和倍數λ 的關系圖(Precision為小數形式)
下面以City和Ground這兩個視頻序列為例進行壓縮域性能分析.在視頻序列City的起始幀中,如圖3(a)所示,標記為 1的像素點有 20 299個(即TP值);對此幀4×4塊劃分得到的掩模中,如圖3(b)所示,標記為1的像素子塊有1342個;如果對此掩模按照4×4比例放大,則標記為 1的像素點有 21 472個 (即TP值和FP值的和).經計算,此掩模的Precision為94.5%,利用這個掩模進行目標物體的跟蹤,即使像素點有幾千個,Precision至少可保持80%左右.
在視頻序列Ground的起始幀中,如圖4(a)所示,標記為1的像素點有64個(即TP值),對此幀進行4×4塊劃分得到的掩模如圖4(b)所示,因為圖像編碼最小塊是4×4,在MRF算法中標記為1的像素子塊有11個.如果對此掩模按照4×4比例放大,則標記為 1的像素點有176個(即TP值和FP值的和).此掩模的Precision為36.3%,用這個掩模進行目標物體的跟蹤,即使預測錯誤的像素點有幾十個,Precision也僅有30%左右.圖4(c)展示了Ground起始幀的標準參考圖像(黑色)和由此幀的掩模放大后得到的圖像(灰色),從中可以看出掩模放大后得到的圖像相比標準參考圖像而言,邊緣部分過多.

圖3 City 序列起始幀變化圖
基于以上的分析,本文提出了一種面向小運動目標的壓縮域跟蹤算法,算法流程圖如圖5所示.
本文所提小目標跟蹤算法的原理是:將視頻的每一幀劃分為多個子塊,每個子塊標記為“0”或“1”,其中“0”表示這個子塊是跟蹤目標的一部分,“1”則反之,這樣目標跟蹤問題可轉換為已知某一幀t–1的標記wt-1和幀t的運動信息Kt=(vt,ot)的條件下,預測出幀t的標記wt,其中運動信息Kt從壓縮碼流提取得來,vt為子塊的MV,ot為子塊的編碼模式和大小,n=(x,y)表示子塊在這一幀的位置.使后驗概率P=(wt|wt-1,Kt)最大化的wt是最佳的標記,根據貝葉斯理論,運動目標的幀間似然性為P(wt-1|wt,Kt),運動目標的幀內似然性為P(Kt|wt),運動目標的先驗概率為P(wt),那么后驗概率P=(wt|wt-1,Kt)可以表示為:


圖4 Ground 序列起始幀變化圖
從式(2)中可以看出,分母的計算不需要wt,因此后驗概率P=(wt|wt-1,Kt)最大只需某個wt使分子最大,即:

其中,Ω表示全部可能的標記wt的集合.式(3)等同于

基于第2節塊編碼對精度性能影響的分析,為了改善對小運動目標的跟蹤效果,本文引入了門限α和β以及系數γ將式(4)改寫為:

式(5)中,P(Kt|ψ)經計算可寫為:

式(6)中,ρ為全局運動補償系數,σd′是d′(n)的標準差;式(7)中 σd是d(n)的標準差;式(8)中v′(n)是運動矢量,是目標中心運動矢量.
參考圖5,在空域代價計算模塊中,要利用從壓縮碼流中提取的MV進行參數估計.但是參數估計方法有一個明顯的問題,由于離群值(噪聲MV或不準確的MV)的存在,導致樣本方差的估計對離群值非常敏感.對小目標而言,這個問題更加突出,即便是幾個離群值也會造成很大的估計誤差.所以針對小目標的情況,重新計算離群值邊界門限β是很有必要的.
鑒于前面對起始幀掩模的分析,可以知道基于MRF的算法中,起始幀的掩模中過多的塊被標記為1.因此,本文算法引入了門限α,用來控制起始幀的掩模中標記為1的塊的數量.
在時域代價計算模塊中,由于噪聲MV或不準確的MV的干擾,時域代價的計算也會受到影響,特別是在目標的邊界上,而從前面對起始幀掩模的分析中,可以看出小目標起始幀掩模中邊界被錯誤標記為1的塊的數量最多,這個不利因素加劇了小目標邊界計算時可能發生的錯誤.故本文算法引入了系數γ,用以控制跟蹤小目標的邊緣計算.
為了優化上述三個參數的設置,以便得到更好地小目標跟蹤效果,我們進行了一系列的實驗仿真.通用的實驗結果是在量化步長(QP)為28時針對小目標Ground視頻序列的Precision指標獲得的.典型地,α取值為 1/4、1/2、3/4和 1;β取值為 1.8、1.9、2.0 和 2.1;γ取值為 4、4.4、4.8 和 5.2;總共進行了64組參數測試.我們將實驗數據按照各個參數的不同取值,以柱狀堆疊的形式展現;每個參數在四個取值的柱狀圖均由16個Precision值(對應于其它兩個參數的16種組合)相加而得,分別如圖6(a)、6(b)和6(c).從圖中可以看出,當α設置為 1,β設置為 1.8,γ設置為4.8時,Precision的通用效果最好.

圖5 本文算法流程圖
需要指出的是,本文中此3個變量的選取是由Ground視頻的跟蹤結果來決定的,實際場合中,此3個變量依賴于提供的不同視頻而變動.由于不同視頻的場景和特點未必與Ground視頻相同,可能導致在跟蹤的過程中,檢測到某一幀的Precision為0,若出現這種情況則需要重新選取跟蹤的小目標,按照上述方式重新設置參數.
針對標準視頻序列中的小目標跟蹤,本節將所提算法與文獻[8]和文獻[9]的算法在Precision、Recall和F-Measure指標下的逐幀性能進行了比較.從圖7中可以看出,就Precision和F-Measure而言,盡管算法[8]和[9]在開始的幾幀表現較好,但是在隨后的跟蹤中,算法[8]和[9]的跟蹤性能越來越差;而本文算法在整體上的表現優于算法[8]和[9].對于Recall,本文算法在整體上的表現略低于算法[8],這是因為對于給定的算法而言Precision和Recall是矛盾的,而本文算法以小幅犧牲Recall來改進其它兩大指標性能.在表1中,給出了本文算法、算法[8]和算法[9]在所有測試視頻序列下的平均Precision、Recall和F-Measure.從表中可以看出,對于全部的視頻序列,本文算法的Precision和F-Measure在三種算法中是最好的.

圖6 Ground序列在64組實驗參數下的Precision結果.Precision為百分比形式.

圖7 三種算法的指標隨Sky序列幀號的變化圖

表1 三種算法的平均Precision、Recall和F-Measure
表2給出了QP值從0變化到50,本文算法在不同視頻測試序列下Precision、Recall和F-Measure的變化.同時,圖8也描述了不同QP值下三個視頻序列的平均Precision、平均Recall和平均F-Measure.從這些結果可以看出,在QP值等于40之前本文算法在小目標情況下的跟蹤性能比較穩定;在QP值大于40后,各項指標開始下降,這是由于在高壓縮比時,從壓縮碼流中提取的運動矢量的精度較低.圖9(a)和9(b)給出了不同QP值下本文算法與算法[8]和算法[9]對三個視頻序列的平均Precision和平均F-Measure,實驗結果表明,本文算法在常用QP值下的平均Precision表現最好,同時由F-Measure結果可知,本文算法的綜合性能較好.

表2 本文算法在不同 QP 下的跟蹤性能

圖8 本文算法在不同QP下的平均跟蹤結果
表3列出了本文算法對三個視頻序列中每一幀的平均處理時間.實驗中使用的計算機的配置為Intel(R)i5-4570 3.20 GHz CPU,8 G 內存.需要指出的是解碼 mv所需的時間沒有包含在表3中,這是因為解碼mv的時間依賴于不同解碼器的選擇,通常來說,解碼所需的時間很少。從表3可以看出,Ground視頻序列每幀的平均處理時間為 82.8 ms;Sky 視頻序列為 111.7 ms;Seasky視頻序列為113 ms.實驗中使用了MATLAB實現本文算法,若使用C/C++實現,每幀的平均處理時間會大大減少.

表3 不同視頻序列每幀的平均處理時間 (單位:ms)

圖9 三種算法在不同QP下的指標比較
本文根據馬爾科夫隨機場理論,提出了一種小運動目標的壓縮域跟蹤算法.本文首先分析了在小運動目標的情況下現有壓縮域跟蹤算法效果較差的原因,在此基礎上尋找出可以優化的算法機制,并結合數據驅動的方法論給出了塊編碼感知的參數設置.實驗結果表明,相較于其它算法,本文算法的小目標跟蹤Precision和F-Measure均得到了顯著地提高.