王美杰,張起貴,李付江
(太原理工大學信息與計算機學院,山西 晉中 030600)
視頻序列中的運動對象分割是視頻監控、視頻編碼及視頻對象平面生成和檢索等眾多應用中的一個重要步驟[1],根據使用的數據特征,現有的方法可以分為兩類:像素域和壓縮域。由于視頻數據通常以壓縮碼流形式存儲和傳輸,如果在像素域中進行運動對象分割,需要將壓縮碼流進行完全解碼,然后利用解碼后的數據進行目標分割,這樣會顯著增加運算復雜度,不適合應用在實時性要求較高的場合。隨著近年來H.264壓縮標準的廣泛應用,人們越來越多的關注壓縮域中視頻對象分割,該方法的思路是直接從壓縮碼流中提取出運動信息,如DCT系數、運動矢量(MV)、宏塊編碼模式和量化參數等,因為避免了壓縮碼流的完全解碼,因而有較少的計算時間,顯著地減少了處理和存儲的內存需求,可用于分割精度要求并不是很高的場合。
2005年Zeng等[2]利用從H.264壓縮碼流中提取的運動矢量進行運動對象分割,通過馬爾科夫隨機場分類過程從運動場中提取運動目標。然而,該算法只適用于對從固定攝像機拍攝的視頻進行分割。2010年Chen[3]提出一種首先在MV場中進行粗分割,然后利用建立馬爾科夫模型的方法提取出運動區域,最后利用顏色和邊緣信息
進一步細化,但是引入的像素域信息增加了計算復雜度,降低了實時性。2015年Laumer[4]等提出一種利用從H.264/AVC視頻比特流中提取的宏塊類型來檢測運動目標的算法,通過給編碼宏塊分配不同的權重來表示宏塊屬于前景或背景的概率。2016年Okade等[5]提出了一種新的粗分割技術,通過將幀間運動矢量分解成小波子帶,并利用 LH、HL 和HH 子帶小波系數的邏輯運算。2016年牛志國等[6]提出一種基于HEVC的運動分割方法,對從HEVC中提取的運動矢量進行時域和空域的標簽分類,然后利用MRF模型進行運動一致性估計。2018年張鑫生[7]等提出了一種面向小運動目標的跟蹤算法,利用從獲取起始幀的掩膜、設置離群的MV以及對小目標的邊緣預測三個方面來提高跟蹤性能。
通過對上述文獻的分析,發現這些方法魯棒性不高,只對某些視頻序列或某些幀分割效果較好。本文針對上述問題進行處理,提出一種基于改進的SLIC和馬爾科夫隨機場分割的方法,不僅魯棒性強,而且分割效果較好。
針對實際監控應用的特點,算法僅使用從H.264壓縮視頻流中提取的運動矢量。首先對運動矢量場進行預處理,然后進行改進的SLIC粗分割,隨之構建基于馬爾科夫模型的能量函數,同時引入可變權重的思想和通過運動場矢量直方圖計算馬爾科夫隨機場似然函數的方法,最后使用圖割法求解進而分割出運動對象。圖1為本文算法的流程圖。

圖1 算法流程圖
從H.264壓縮視頻中獲得的運動矢量,由于采用的是塊匹配的運動估計技術,代表的是宏塊的運動情況,并非運動估計的準確性,因此從碼流中直接獲取得運動矢量場有較多的噪聲,并不能反映真實的運動情況,故在視頻對象分割之前,需要進行運動矢量預處理,通常包括運動矢量歸一化和時空域濾波。在H.264編碼標準中,使用的幀內預測去除了相鄰宏塊間的空間冗余,提高了編碼效率,但是由于幀內預測的宏塊不含運動矢量,造成了對運動對象提取的困難,因此,需要利用未經幀內編碼的宏塊進行插值運算得到幀內編碼塊的運動矢量。本文采用文獻[8]中介紹的極坐標矢量中值法。
在背景運動的視頻序列中,需要進行運動估計以消除攝像機運動對分割產生的影響。本文使用8參數仿射模型[9]來表示全局運動,如式(1)

(1)
其中,(x,y)代表當前幀宏塊的坐標,(x',y')代表八參數仿射變換矩陣變換后的坐標。最后對運動矢量場進行累加及全局運動補償得到殘差運動矢量場。
從圖2可以看出,經過全局運動補償后,背景運動的區域運動矢量得到減弱,而目標運動區域的運動矢量得到增強,因此通過全局運動補償更有利于從背景運動場景中分割出運動目標。

圖2 全局運動補償
SLIC即簡單線性迭代聚類算法是由Achanta[10]等人提出的,是一種思想簡單、實現方便,采用K-means算法聚類生成的超像素的方法。文獻[11]證明了SLIC相對于Normalized Cuts、graph-based approach、GraphCuts、Mean-shift以及Quick-Shift等超像素方法的優點。考慮到SLIC算法能生成緊湊、比較均勻的超像素,在運算復雜度、需要用戶調節的參數少及物體輪廓保持等方面的優點,本文引入SLIC算法進行壓縮域視頻對象粗分割。
SLIC算法首先將彩色圖像從RGB顏色空間轉換成Lab顏色空間,對應每個像素的(L,a,b)顏色值和位置坐標(x,y)組成一個五維向量Ci=[Li,ai,bi,xi,yi][12]。在實際應用中,只需要控制一個參數k,便可得到希望產生的超像素近似個數。SLIC采用式(2)到(4)來衡量第i和第j個像素的相似性。

(2)

(3)
Ds=dlab+m/s*dxy
(4)
該算法首先生成K個種子點,然后在每個種子點的鄰域內搜索最接近種子點的像素,并將它們與種子點分為一類,直到所有的像素點都分類完成。分別計算這K個超像素中像素的平均向量值,重新生成K個聚類中心,最后利用距離計算公式重復上述步驟,反復迭代進行更新聚類中心,通過計算新舊聚類中心的剩余誤差直到滿足指定的閾值時算法迭代停止。由圖2 的觀測結果表明,運動對象的運動矢量具有相似的方向和長度,其特征通常用幅度、散度和旋度來描述[13],分別表示運動矢量的強度、伸縮度以及旋轉度。由于本文采用SLIC算法對運動矢量場進行粗分割,所以需要對該算法進行修改。改進后的SLIC算法利用運動矢量的幅度M、散度D和旋度C以及宏塊的空間位置(x,y)構造五維特征向量V=[M,D,C,x,y]。

(5)
其中(vx,vy)是運動矢量的兩個分量。采用如下的公式計算宏塊的運動矢量之間相似度。

(6)

(7)
Ds=dMDC+m/s*dxy
(8)
其中(x,y)代表宏塊的空間位置,dMDC代表宏塊矢量間的差異性,Ds為結合宏塊的空間距離和矢量相似性的歸一化距離,m為緊密度系數。
由于SLIC的粗分割造成了圖像的過度分割,如圖4所示,因此需要利用宏塊之間的鄰域關系來提高分割效果。本文引入MRF模型來提高分割效果。MRF是一種基于統計的圖像分割算法,通常在應用中與統計決策和估計理論相結合。MRF模型與貝葉斯估計框架下的最大后驗概率(MAP)結合在一起稱作MAP-MRF框架[14]。本文在MAP-MRF框架下,將運動目標分割問題轉化為對運動宏塊的標記問題,對于一幅待分割的圖像,模型輸出標記結果為ω=(ω1,…ωN),ωi∈{0,1},i=1,2….N,0表示背景,1表示前景。對于超像素塊i的標號問題計算如式

圖4 本文方法和文獻[19]比較

(9)
其中P(MVi)為一常數,由運動矢量場事先給定。根據Hammersley-Clifford定理,MRF隨機場與Gibbs 場等價,因此只要確定了Gibbs 隨機場的能量函數如式(10),也就確定了馬爾科夫隨機場[15]。

(10)


(11)
其中βs為模型參數,用來控制區域的同構性。
故式(9)等價于
P(ωi|MVi)∝P(MVi|ωi)·P(ωi)
∝exp[lnP(MVi|ωi)-U(ωi)]
(12)
其中E(ω)=∑-lnP(MVi|ωi)+∑U(ωi)。
由于后驗分布也是一個Gibbs分布,因此求解P(ωi|MVi)最大問題轉化成能量函數(12)最小化的問題。
對于文獻[2]、[3]和[5]等傳統的MRF分割方法中,勢函數的選取一般都是固定的,這樣沒有充分考慮到節點之間的相互關系,使得分割效果不佳,很難同時保證邊界的細節和良好的區域性。因此本文算法引入可變權重[16]的思想來提高實用性,使用自適應可變權重MRF分割模型,它的權重表示為指數形式:a(t)=c1·rt+c2,其中,c1,c2等于1/L,r是常量,t是當前迭代次數,于是得到自適應可變權重的MRF分割模型
E(ω)=∑-lnP(MVi|ωi)+α(t)∑U(ωi)
(13)
傳統的MRF模型使用聚類算法把前景和背景分別分為幾類,需要聚類過程的先驗知識來創建前景混合高斯模型和背景混合高斯模型來估計似然函數P(MVi|ωi),即

(14)
其中mωiX和mωiY分別是標記為ωi塊的MV的水平和垂直分量的均值,σωiX和σωiY為相對應的標準差。
對于這種統計建模方法而言,雖然在處理性能上效果比較好,但同時也引入了較高的計算復雜度,僅適用于少數動態背景序列和靜止背景序列。在本文的方法中,式(13)的P(MVi|ωi=0)和P(MVi|ωi=1) 是通過計算背景和運動區域矢量直方圖得到。對于給定標號ωi=0或1,運動矢量直方圖中共有m個bin,K是bin中對應的運動矢量總個數,對于給定的MVi,k是在bin中對應的樣本數,則條件概率為(15):

(15)
其中α>0是平滑因子。實驗中α取0.9。
圖3為Stefan視頻序列第25幀運動矢量的直方圖。

圖3 Stefan視頻幀運動矢量直方圖
在貝葉斯框架下,常用的求解能量函數的方法有:模擬退火(SA算法)、迭代條件模式(Iterated Conditional Mode, ICM)和圖割法(GC)[17]。由于前兩種方法容易陷入局部最優和有收斂速度慢的缺點。本文算法采用GC法求解式(13),克服了前兩者的不足。
實驗采用典型的stefan視頻序列(CIF,352×288)、foreman視頻序列(CIF,352×288)和garden視頻序列(CIF,352×240):編碼使用的編碼器為JM18.6,編碼格式為IPPPP…,量化步長QP為28,搜索范圍為(-32,32)。然后與文獻[19]方法進行了對比。
選取的三個視頻序列均屬于背景運動的場景,本文算法同樣適用于靜止背景的場景。其中第一、四、七行為文獻[19]的分割結果,第二、五、八行為改進的SLIC算法的分割結果,第三、六、九行為本文算法的最終分割結果。Stefan序列為運動員運動劇烈且背景比較復雜的視頻序列,由于運動員產生的運動矢量較大,因此本文算法對該序列有更強的魯棒性。對于foreman序列,文獻[19]出現過分割而且人物的邊緣粗糙。在garden序列中,攝像機從左到右移動拍攝,本文算法可以將樹干更準確的分割出來。從圖4 可以看出,文獻[19]方法和本文方法都能分割出視頻序列中運動對象,但是文獻[19]在視頻序列后續幀分割效果較差,魯棒性低,本文的方法相對更多的消除了背景區域,魯棒性較好。雖然在目標物體的邊界附近出現了一些錯誤的檢測,但是對物體內部的分割效果很好,提取的輪廓相對更小,運動對象邊緣檢測更精確。由于本文方法是基于宏塊的分割,仍然存在邊緣模糊性的問題。
為了客觀評價算法分割結果,本文與文獻[19]從精確率(P)、召回率(R)和F-Measure值三方面進行對比,如表1所示。

表1 本文方法與文獻[19]在P、R、F比較

(16)
其中TP為正確檢測到的樣本像素點,FP為錯誤檢測到的樣本像素點,FN為錯誤檢測的負樣本像素點[18]。
從表1可以看出,本文方法相比文獻[19]具有較高的P和F-Measure,R有時低于文獻[19],是由于本文算法將前一幀運動目標的運動區域映射到當前幀進行分割,因此從對象中排除落入標記為背景的邊界塊的像素,從而導致更高的FN。
本文方法分割的計算時間如表2所表示。

表2 本文方法與文獻[19]計算時間比較
本文提出的方法計算時間包括運動矢量歸一化和時空域濾波及基于SLIC和MRF分割,由表2可以看出,與文獻[19]方法相比,運算速度平均提高了1.85倍。為了進一步比較運算復雜度,將本文所提出的壓縮域視頻對象分割方法與Papazaglou等[20]提出的一種先進的像素域視頻分割方法進行了對比分析并給出了該方法的分割結果。

圖5 文獻[20]和本文方法分割比較
從實驗結果可以看出,文獻[20]的方法與本文的方法相比取得了較好的分割結果,然而,本文方法的一個主要優點是計算成本減少了幾個數量級,如表3所示。

表3 本文方法與文獻[20]分割時間比較
本文壓縮域算法比文獻[20]像素域算法的復雜度低,主要是因為壓縮域中復雜的解碼步驟被簡單的解碼器的語法解析所取代。其次,由于壓縮域不必處理所有像素,算法本身的復雜度較低。
本文提出一種基于改進的SLIC和馬爾科夫模型的H.264視頻對象分割算法,不需要對壓縮碼流進行完全解碼,因此,該方法具有較低的處理時間。預處理階段包括運動矢量場歸一化和時空域濾波兩部分。為了消除攝像機移動對分割產生的影響,進行了全局運動估計和全局運動補償,之后建立MRF模型進行運動目標分割。①引入了SLIC的方法,不僅提高了視頻中每一幀分割的魯棒性和準確性,而且解決了MRF模型參數估計及推斷時間復雜度較高的問題。②引入可變權重的思想,增強了分割效果,擴大了算法的適用范圍。③利用直方圖進行似然函數的計算,避免了聚類過程陷入局部最優解的問題并且顯著地降低了計算成本。④H.264編碼標準在當前市場的攝像機中廣泛使用,由于本文算法是基于視頻碼流中提取的運動矢量分析,不依賴于H.264特定的標準,因此該方法可以很方便地擴展到其它的編碼標準。
實驗結果表明,該方法可以在復雜背景下分割出運動目標,魯棒性和準確性較高,計算復雜度較低。由于算法在運動宏塊基礎之上處理,標記場是以宏塊為單位的,處在目標邊緣處的宏塊中的像素點并不是全部處于前景區域或背景區域,因此會產生誤差,對于提取的運動對象存在過分割或者輪廓偏大的現象有待進一步改進。