張?chǎng)紊?劉 浩,孫曉帆,況奇剛,吳樂明
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620)
視頻目標(biāo)跟蹤是許多機(jī)器視覺應(yīng)用的重要組成部分,例如運(yùn)動(dòng)識(shí)別、人機(jī)交互、自動(dòng)監(jiān)視和交通監(jiān)控[1].目標(biāo)跟蹤問題可以定義為當(dāng)圖像視頻中的物體在場(chǎng)景周圍移動(dòng)時(shí),如何估計(jì)物體軌跡;相應(yīng)的跟蹤算法就是在某一視頻的后續(xù)幀中預(yù)先為被跟蹤對(duì)象分配一致的標(biāo)簽[2].在目標(biāo)跟蹤領(lǐng)域中,小運(yùn)動(dòng)目標(biāo)的跟蹤是一個(gè)難點(diǎn)和重點(diǎn),尤其現(xiàn)在的視頻分辨率越來越高,跟蹤目標(biāo)在一幀中的占比越來越小,多樣化的背景和復(fù)雜的攝像機(jī)運(yùn)動(dòng)都增加了小目標(biāo)跟蹤的難度[3].
編碼視頻的目標(biāo)跟蹤算法根據(jù)其依賴信息可分為兩大類:像素域跟蹤算法和壓縮域跟蹤算法[4].像素域跟蹤算法的特點(diǎn)是跟蹤的準(zhǔn)確率高,但是計(jì)算復(fù)雜度也高.由于相當(dāng)高的計(jì)算復(fù)雜度,像素域跟蹤算法在需要并行處理多個(gè)視頻流的場(chǎng)景中并不適用.另一方面,壓縮域算法處理的數(shù)據(jù)來自于壓縮碼流中已經(jīng)編碼的信息,例如運(yùn)動(dòng)矢量、塊編碼模式或運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)殘差變換系數(shù)等.壓縮域跟蹤算法相比于像素域跟蹤算法,由于避免了對(duì)視頻的全部解碼,計(jì)算成本通常較低,顯著減少了數(shù)據(jù)處理量和存儲(chǔ)需求.然而,由于壓縮域跟蹤算法沒有利用全部的像素信息,目標(biāo)跟蹤的準(zhǔn)確率往往不及像素域跟蹤算法.
基于馬爾科夫模型來實(shí)現(xiàn)壓縮域目標(biāo)跟蹤的算法近年來得到了廣泛的研究[5].Zeng等人[6]提出的算法是最早使用馬爾科夫隨機(jī)場(chǎng)(MRF)進(jìn)行目標(biāo)跟蹤的算法之一,該方法通過最小化MRF能量,將相似的運(yùn)動(dòng)矢量(MV)合并到運(yùn)動(dòng)對(duì)象中,并定義了不同的MV類型.方法[6]將跟蹤問題轉(zhuǎn)化為在已經(jīng)分類的MV鄰域上進(jìn)行馬爾可夫標(biāo)記的過程,在這個(gè)過程中該方法利用運(yùn)動(dòng)矢量的空間連續(xù)性和時(shí)間一致性來追蹤移動(dòng)目標(biāo).但是,文獻(xiàn)[6]沒有考慮潛在的攝相機(jī)運(yùn)動(dòng),因此,它只適用于跟蹤攝像機(jī)固定拍攝的物體運(yùn)動(dòng)[7].Khatoonabadi等人[8]提出了另外一種使用MRF模型進(jìn)行目標(biāo)跟蹤的算法,該方法不是先將運(yùn)動(dòng)矢量分成多個(gè)類型,而是直接使用運(yùn)動(dòng)矢量的觀測(cè)值來計(jì)算運(yùn)動(dòng)相關(guān)性.此外,文獻(xiàn)[8]采用全局運(yùn)動(dòng)補(bǔ)償來處理攝像機(jī)運(yùn)動(dòng)造成的影響,并提出一種基于相鄰塊的運(yùn)動(dòng)矢量來為幀內(nèi)編碼塊分配運(yùn)動(dòng)矢量的方法.Xu等人[9]提出基于全局運(yùn)動(dòng)估計(jì)的視頻顯著圖檢測(cè)方法來對(duì)目標(biāo)進(jìn)行跟蹤.盡管文獻(xiàn)[8]和[9]在一些傳統(tǒng)視頻序列下的跟蹤性能良好,但是針對(duì)小目標(biāo)的跟蹤,它們的表現(xiàn)卻不理想.
基于MRF模型的壓縮域目標(biāo)跟蹤算法對(duì)當(dāng)前幀的預(yù)測(cè)會(huì)參考前一幀的運(yùn)動(dòng)目標(biāo)預(yù)測(cè)結(jié)果,導(dǎo)致前一幀的預(yù)測(cè)錯(cuò)誤會(huì)影響到當(dāng)前幀的預(yù)測(cè).由于小目標(biāo)本身在一幀中所占的比例很小,故而對(duì)預(yù)測(cè)錯(cuò)誤的容忍度更小.以H.264視頻編碼標(biāo)準(zhǔn)為例,由于H.264采用的是塊劃分[10],所以在得到起始幀的掩模時(shí)要進(jìn)行4×4的塊劃分,需要將起始幀的標(biāo)準(zhǔn)參考圖像的高、寬分別縮小4倍,然后用得到的起始幀掩模來計(jì)算下一幀的預(yù)測(cè)結(jié)果,這個(gè)預(yù)測(cè)結(jié)果需要再將高、寬放大4倍來得到下一幀預(yù)測(cè)的像素域表示,整個(gè)過程如圖1所示,圖中括號(hào)的內(nèi)容是不同階段的圖像尺寸.
圖1 基于 MRF 的目標(biāo)跟蹤算法流程圖
為了對(duì)目標(biāo)跟蹤算法進(jìn)行比較,通常使用準(zhǔn)確率(Precision)、召回率(Recall)和F度量(F-Measure)來衡量算法的客觀性能[11].接下來分析起始幀的掩模特性.假設(shè)將掩模放大得到的起始幀的像素域表示沒有FN,則FP=λ ·TP,可得:
圖2給出了Precision和倍數(shù) λ的關(guān)系圖,從圖中可以看出,若Precision=0.8,則 λ =2,FP=0.25TP;若Precision=0.33,則 λ =2,FP=2TP,即λ越大,Precision就越小.從大量實(shí)驗(yàn)中發(fā)現(xiàn),占比越大的目標(biāo),相對(duì)應(yīng)的 λ越小;占比越小的目標(biāo),相對(duì)應(yīng)的λ 越大.
圖2 Precision和倍數(shù)λ 的關(guān)系圖(Precision為小數(shù)形式)
下面以City和Ground這兩個(gè)視頻序列為例進(jìn)行壓縮域性能分析.在視頻序列City的起始幀中,如圖3(a)所示,標(biāo)記為 1的像素點(diǎn)有 20 299個(gè)(即TP值);對(duì)此幀4×4塊劃分得到的掩模中,如圖3(b)所示,標(biāo)記為1的像素子塊有1342個(gè);如果對(duì)此掩模按照4×4比例放大,則標(biāo)記為 1的像素點(diǎn)有 21 472個(gè) (即TP值和FP值的和).經(jīng)計(jì)算,此掩模的Precision為94.5%,利用這個(gè)掩模進(jìn)行目標(biāo)物體的跟蹤,即使像素點(diǎn)有幾千個(gè),Precision至少可保持80%左右.
在視頻序列Ground的起始幀中,如圖4(a)所示,標(biāo)記為1的像素點(diǎn)有64個(gè)(即TP值),對(duì)此幀進(jìn)行4×4塊劃分得到的掩模如圖4(b)所示,因?yàn)閳D像編碼最小塊是4×4,在MRF算法中標(biāo)記為1的像素子塊有11個(gè).如果對(duì)此掩模按照4×4比例放大,則標(biāo)記為 1的像素點(diǎn)有176個(gè)(即TP值和FP值的和).此掩模的Precision為36.3%,用這個(gè)掩模進(jìn)行目標(biāo)物體的跟蹤,即使預(yù)測(cè)錯(cuò)誤的像素點(diǎn)有幾十個(gè),Precision也僅有30%左右.圖4(c)展示了Ground起始幀的標(biāo)準(zhǔn)參考圖像(黑色)和由此幀的掩模放大后得到的圖像(灰色),從中可以看出掩模放大后得到的圖像相比標(biāo)準(zhǔn)參考圖像而言,邊緣部分過多.
圖3 City 序列起始幀變化圖
基于以上的分析,本文提出了一種面向小運(yùn)動(dòng)目標(biāo)的壓縮域跟蹤算法,算法流程圖如圖5所示.
本文所提小目標(biāo)跟蹤算法的原理是:將視頻的每一幀劃分為多個(gè)子塊,每個(gè)子塊標(biāo)記為“0”或“1”,其中“0”表示這個(gè)子塊是跟蹤目標(biāo)的一部分,“1”則反之,這樣目標(biāo)跟蹤問題可轉(zhuǎn)換為已知某一幀t–1的標(biāo)記wt-1和幀t的運(yùn)動(dòng)信息Kt=(vt,ot)的條件下,預(yù)測(cè)出幀t的標(biāo)記wt,其中運(yùn)動(dòng)信息Kt從壓縮碼流提取得來,vt為子塊的MV,ot為子塊的編碼模式和大小,n=(x,y)表示子塊在這一幀的位置.使后驗(yàn)概率P=(wt|wt-1,Kt)最大化的wt是最佳的標(biāo)記,根據(jù)貝葉斯理論,運(yùn)動(dòng)目標(biāo)的幀間似然性為P(wt-1|wt,Kt),運(yùn)動(dòng)目標(biāo)的幀內(nèi)似然性為P(Kt|wt),運(yùn)動(dòng)目標(biāo)的先驗(yàn)概率為P(wt),那么后驗(yàn)概率P=(wt|wt-1,Kt)可以表示為:
圖4 Ground 序列起始幀變化圖
從式(2)中可以看出,分母的計(jì)算不需要wt,因此后驗(yàn)概率P=(wt|wt-1,Kt)最大只需某個(gè)wt使分子最大,即:
其中,Ω表示全部可能的標(biāo)記wt的集合.式(3)等同于
基于第2節(jié)塊編碼對(duì)精度性能影響的分析,為了改善對(duì)小運(yùn)動(dòng)目標(biāo)的跟蹤效果,本文引入了門限α和β以及系數(shù)γ將式(4)改寫為:
式(5)中,P(Kt|ψ)經(jīng)計(jì)算可寫為:
式(6)中,ρ為全局運(yùn)動(dòng)補(bǔ)償系數(shù),σd′是d′(n)的標(biāo)準(zhǔn)差;式(7)中 σd是d(n)的標(biāo)準(zhǔn)差;式(8)中v′(n)是運(yùn)動(dòng)矢量,是目標(biāo)中心運(yùn)動(dòng)矢量.
參考圖5,在空域代價(jià)計(jì)算模塊中,要利用從壓縮碼流中提取的MV進(jìn)行參數(shù)估計(jì).但是參數(shù)估計(jì)方法有一個(gè)明顯的問題,由于離群值(噪聲MV或不準(zhǔn)確的MV)的存在,導(dǎo)致樣本方差的估計(jì)對(duì)離群值非常敏感.對(duì)小目標(biāo)而言,這個(gè)問題更加突出,即便是幾個(gè)離群值也會(huì)造成很大的估計(jì)誤差.所以針對(duì)小目標(biāo)的情況,重新計(jì)算離群值邊界門限β是很有必要的.
鑒于前面對(duì)起始幀掩模的分析,可以知道基于MRF的算法中,起始幀的掩模中過多的塊被標(biāo)記為1.因此,本文算法引入了門限α,用來控制起始幀的掩模中標(biāo)記為1的塊的數(shù)量.
在時(shí)域代價(jià)計(jì)算模塊中,由于噪聲MV或不準(zhǔn)確的MV的干擾,時(shí)域代價(jià)的計(jì)算也會(huì)受到影響,特別是在目標(biāo)的邊界上,而從前面對(duì)起始幀掩模的分析中,可以看出小目標(biāo)起始幀掩模中邊界被錯(cuò)誤標(biāo)記為1的塊的數(shù)量最多,這個(gè)不利因素加劇了小目標(biāo)邊界計(jì)算時(shí)可能發(fā)生的錯(cuò)誤.故本文算法引入了系數(shù)γ,用以控制跟蹤小目標(biāo)的邊緣計(jì)算.
為了優(yōu)化上述三個(gè)參數(shù)的設(shè)置,以便得到更好地小目標(biāo)跟蹤效果,我們進(jìn)行了一系列的實(shí)驗(yàn)仿真.通用的實(shí)驗(yàn)結(jié)果是在量化步長(zhǎng)(QP)為28時(shí)針對(duì)小目標(biāo)Ground視頻序列的Precision指標(biāo)獲得的.典型地,α取值為 1/4、1/2、3/4和 1;β取值為 1.8、1.9、2.0 和 2.1;γ取值為 4、4.4、4.8 和 5.2;總共進(jìn)行了64組參數(shù)測(cè)試.我們將實(shí)驗(yàn)數(shù)據(jù)按照各個(gè)參數(shù)的不同取值,以柱狀堆疊的形式展現(xiàn);每個(gè)參數(shù)在四個(gè)取值的柱狀圖均由16個(gè)Precision值(對(duì)應(yīng)于其它兩個(gè)參數(shù)的16種組合)相加而得,分別如圖6(a)、6(b)和6(c).從圖中可以看出,當(dāng)α設(shè)置為 1,β設(shè)置為 1.8,γ設(shè)置為4.8時(shí),Precision的通用效果最好.
圖5 本文算法流程圖
需要指出的是,本文中此3個(gè)變量的選取是由Ground視頻的跟蹤結(jié)果來決定的,實(shí)際場(chǎng)合中,此3個(gè)變量依賴于提供的不同視頻而變動(dòng).由于不同視頻的場(chǎng)景和特點(diǎn)未必與Ground視頻相同,可能導(dǎo)致在跟蹤的過程中,檢測(cè)到某一幀的Precision為0,若出現(xiàn)這種情況則需要重新選取跟蹤的小目標(biāo),按照上述方式重新設(shè)置參數(shù).
針對(duì)標(biāo)準(zhǔn)視頻序列中的小目標(biāo)跟蹤,本節(jié)將所提算法與文獻(xiàn)[8]和文獻(xiàn)[9]的算法在Precision、Recall和F-Measure指標(biāo)下的逐幀性能進(jìn)行了比較.從圖7中可以看出,就Precision和F-Measure而言,盡管算法[8]和[9]在開始的幾幀表現(xiàn)較好,但是在隨后的跟蹤中,算法[8]和[9]的跟蹤性能越來越差;而本文算法在整體上的表現(xiàn)優(yōu)于算法[8]和[9].對(duì)于Recall,本文算法在整體上的表現(xiàn)略低于算法[8],這是因?yàn)閷?duì)于給定的算法而言Precision和Recall是矛盾的,而本文算法以小幅犧牲Recall來改進(jìn)其它兩大指標(biāo)性能.在表1中,給出了本文算法、算法[8]和算法[9]在所有測(cè)試視頻序列下的平均Precision、Recall和F-Measure.從表中可以看出,對(duì)于全部的視頻序列,本文算法的Precision和F-Measure在三種算法中是最好的.
圖6 Ground序列在64組實(shí)驗(yàn)參數(shù)下的Precision結(jié)果.Precision為百分比形式.
圖7 三種算法的指標(biāo)隨Sky序列幀號(hào)的變化圖
表1 三種算法的平均Precision、Recall和F-Measure
表2給出了QP值從0變化到50,本文算法在不同視頻測(cè)試序列下Precision、Recall和F-Measure的變化.同時(shí),圖8也描述了不同QP值下三個(gè)視頻序列的平均Precision、平均Recall和平均F-Measure.從這些結(jié)果可以看出,在QP值等于40之前本文算法在小目標(biāo)情況下的跟蹤性能比較穩(wěn)定;在QP值大于40后,各項(xiàng)指標(biāo)開始下降,這是由于在高壓縮比時(shí),從壓縮碼流中提取的運(yùn)動(dòng)矢量的精度較低.圖9(a)和9(b)給出了不同QP值下本文算法與算法[8]和算法[9]對(duì)三個(gè)視頻序列的平均Precision和平均F-Measure,實(shí)驗(yàn)結(jié)果表明,本文算法在常用QP值下的平均Precision表現(xiàn)最好,同時(shí)由F-Measure結(jié)果可知,本文算法的綜合性能較好.
表2 本文算法在不同 QP 下的跟蹤性能
圖8 本文算法在不同QP下的平均跟蹤結(jié)果
表3列出了本文算法對(duì)三個(gè)視頻序列中每一幀的平均處理時(shí)間.實(shí)驗(yàn)中使用的計(jì)算機(jī)的配置為Intel(R)i5-4570 3.20 GHz CPU,8 G 內(nèi)存.需要指出的是解碼 mv所需的時(shí)間沒有包含在表3中,這是因?yàn)榻獯amv的時(shí)間依賴于不同解碼器的選擇,通常來說,解碼所需的時(shí)間很少。從表3可以看出,Ground視頻序列每幀的平均處理時(shí)間為 82.8 ms;Sky 視頻序列為 111.7 ms;Seasky視頻序列為113 ms.實(shí)驗(yàn)中使用了MATLAB實(shí)現(xiàn)本文算法,若使用C/C++實(shí)現(xiàn),每幀的平均處理時(shí)間會(huì)大大減少.
表3 不同視頻序列每幀的平均處理時(shí)間 (單位:ms)
圖9 三種算法在不同QP下的指標(biāo)比較
本文根據(jù)馬爾科夫隨機(jī)場(chǎng)理論,提出了一種小運(yùn)動(dòng)目標(biāo)的壓縮域跟蹤算法.本文首先分析了在小運(yùn)動(dòng)目標(biāo)的情況下現(xiàn)有壓縮域跟蹤算法效果較差的原因,在此基礎(chǔ)上尋找出可以優(yōu)化的算法機(jī)制,并結(jié)合數(shù)據(jù)驅(qū)動(dòng)的方法論給出了塊編碼感知的參數(shù)設(shè)置.實(shí)驗(yàn)結(jié)果表明,相較于其它算法,本文算法的小目標(biāo)跟蹤Precision和F-Measure均得到了顯著地提高.