王美杰,張起貴,李付江
(太原理工大學(xué)信息與計(jì)算機(jī)學(xué)院,山西 晉中 030600)
視頻序列中的運(yùn)動(dòng)對象分割是視頻監(jiān)控、視頻編碼及視頻對象平面生成和檢索等眾多應(yīng)用中的一個(gè)重要步驟[1],根據(jù)使用的數(shù)據(jù)特征,現(xiàn)有的方法可以分為兩類:像素域和壓縮域。由于視頻數(shù)據(jù)通常以壓縮碼流形式存儲(chǔ)和傳輸,如果在像素域中進(jìn)行運(yùn)動(dòng)對象分割,需要將壓縮碼流進(jìn)行完全解碼,然后利用解碼后的數(shù)據(jù)進(jìn)行目標(biāo)分割,這樣會(huì)顯著增加運(yùn)算復(fù)雜度,不適合應(yīng)用在實(shí)時(shí)性要求較高的場合。隨著近年來H.264壓縮標(biāo)準(zhǔn)的廣泛應(yīng)用,人們越來越多的關(guān)注壓縮域中視頻對象分割,該方法的思路是直接從壓縮碼流中提取出運(yùn)動(dòng)信息,如DCT系數(shù)、運(yùn)動(dòng)矢量(MV)、宏塊編碼模式和量化參數(shù)等,因?yàn)楸苊饬藟嚎s碼流的完全解碼,因而有較少的計(jì)算時(shí)間,顯著地減少了處理和存儲(chǔ)的內(nèi)存需求,可用于分割精度要求并不是很高的場合。
2005年Zeng等[2]利用從H.264壓縮碼流中提取的運(yùn)動(dòng)矢量進(jìn)行運(yùn)動(dòng)對象分割,通過馬爾科夫隨機(jī)場分類過程從運(yùn)動(dòng)場中提取運(yùn)動(dòng)目標(biāo)。然而,該算法只適用于對從固定攝像機(jī)拍攝的視頻進(jìn)行分割。2010年Chen[3]提出一種首先在MV場中進(jìn)行粗分割,然后利用建立馬爾科夫模型的方法提取出運(yùn)動(dòng)區(qū)域,最后利用顏色和邊緣信息
進(jìn)一步細(xì)化,但是引入的像素域信息增加了計(jì)算復(fù)雜度,降低了實(shí)時(shí)性。2015年Laumer[4]等提出一種利用從H.264/AVC視頻比特流中提取的宏塊類型來檢測運(yùn)動(dòng)目標(biāo)的算法,通過給編碼宏塊分配不同的權(quán)重來表示宏塊屬于前景或背景的概率。2016年Okade等[5]提出了一種新的粗分割技術(shù),通過將幀間運(yùn)動(dòng)矢量分解成小波子帶,并利用 LH、HL 和HH 子帶小波系數(shù)的邏輯運(yùn)算。2016年牛志國等[6]提出一種基于HEVC的運(yùn)動(dòng)分割方法,對從HEVC中提取的運(yùn)動(dòng)矢量進(jìn)行時(shí)域和空域的標(biāo)簽分類,然后利用MRF模型進(jìn)行運(yùn)動(dòng)一致性估計(jì)。2018年張鑫生[7]等提出了一種面向小運(yùn)動(dòng)目標(biāo)的跟蹤算法,利用從獲取起始幀的掩膜、設(shè)置離群的MV以及對小目標(biāo)的邊緣預(yù)測三個(gè)方面來提高跟蹤性能。
通過對上述文獻(xiàn)的分析,發(fā)現(xiàn)這些方法魯棒性不高,只對某些視頻序列或某些幀分割效果較好。本文針對上述問題進(jìn)行處理,提出一種基于改進(jìn)的SLIC和馬爾科夫隨機(jī)場分割的方法,不僅魯棒性強(qiáng),而且分割效果較好。
針對實(shí)際監(jiān)控應(yīng)用的特點(diǎn),算法僅使用從H.264壓縮視頻流中提取的運(yùn)動(dòng)矢量。首先對運(yùn)動(dòng)矢量場進(jìn)行預(yù)處理,然后進(jìn)行改進(jìn)的SLIC粗分割,隨之構(gòu)建基于馬爾科夫模型的能量函數(shù),同時(shí)引入可變權(quán)重的思想和通過運(yùn)動(dòng)場矢量直方圖計(jì)算馬爾科夫隨機(jī)場似然函數(shù)的方法,最后使用圖割法求解進(jìn)而分割出運(yùn)動(dòng)對象。圖1為本文算法的流程圖。
圖1 算法流程圖
從H.264壓縮視頻中獲得的運(yùn)動(dòng)矢量,由于采用的是塊匹配的運(yùn)動(dòng)估計(jì)技術(shù),代表的是宏塊的運(yùn)動(dòng)情況,并非運(yùn)動(dòng)估計(jì)的準(zhǔn)確性,因此從碼流中直接獲取得運(yùn)動(dòng)矢量場有較多的噪聲,并不能反映真實(shí)的運(yùn)動(dòng)情況,故在視頻對象分割之前,需要進(jìn)行運(yùn)動(dòng)矢量預(yù)處理,通常包括運(yùn)動(dòng)矢量歸一化和時(shí)空域?yàn)V波。在H.264編碼標(biāo)準(zhǔn)中,使用的幀內(nèi)預(yù)測去除了相鄰宏塊間的空間冗余,提高了編碼效率,但是由于幀內(nèi)預(yù)測的宏塊不含運(yùn)動(dòng)矢量,造成了對運(yùn)動(dòng)對象提取的困難,因此,需要利用未經(jīng)幀內(nèi)編碼的宏塊進(jìn)行插值運(yùn)算得到幀內(nèi)編碼塊的運(yùn)動(dòng)矢量。本文采用文獻(xiàn)[8]中介紹的極坐標(biāo)矢量中值法。
在背景運(yùn)動(dòng)的視頻序列中,需要進(jìn)行運(yùn)動(dòng)估計(jì)以消除攝像機(jī)運(yùn)動(dòng)對分割產(chǎn)生的影響。本文使用8參數(shù)仿射模型[9]來表示全局運(yùn)動(dòng),如式(1)
(1)
其中,(x,y)代表當(dāng)前幀宏塊的坐標(biāo),(x',y')代表八參數(shù)仿射變換矩陣變換后的坐標(biāo)。最后對運(yùn)動(dòng)矢量場進(jìn)行累加及全局運(yùn)動(dòng)補(bǔ)償?shù)玫綒埐钸\(yùn)動(dòng)矢量場。
從圖2可以看出,經(jīng)過全局運(yùn)動(dòng)補(bǔ)償后,背景運(yùn)動(dòng)的區(qū)域運(yùn)動(dòng)矢量得到減弱,而目標(biāo)運(yùn)動(dòng)區(qū)域的運(yùn)動(dòng)矢量得到增強(qiáng),因此通過全局運(yùn)動(dòng)補(bǔ)償更有利于從背景運(yùn)動(dòng)場景中分割出運(yùn)動(dòng)目標(biāo)。
圖2 全局運(yùn)動(dòng)補(bǔ)償
SLIC即簡單線性迭代聚類算法是由Achanta[10]等人提出的,是一種思想簡單、實(shí)現(xiàn)方便,采用K-means算法聚類生成的超像素的方法。文獻(xiàn)[11]證明了SLIC相對于Normalized Cuts、graph-based approach、GraphCuts、Mean-shift以及Quick-Shift等超像素方法的優(yōu)點(diǎn)??紤]到SLIC算法能生成緊湊、比較均勻的超像素,在運(yùn)算復(fù)雜度、需要用戶調(diào)節(jié)的參數(shù)少及物體輪廓保持等方面的優(yōu)點(diǎn),本文引入SLIC算法進(jìn)行壓縮域視頻對象粗分割。
SLIC算法首先將彩色圖像從RGB顏色空間轉(zhuǎn)換成Lab顏色空間,對應(yīng)每個(gè)像素的(L,a,b)顏色值和位置坐標(biāo)(x,y)組成一個(gè)五維向量Ci=[Li,ai,bi,xi,yi][12]。在實(shí)際應(yīng)用中,只需要控制一個(gè)參數(shù)k,便可得到希望產(chǎn)生的超像素近似個(gè)數(shù)。SLIC采用式(2)到(4)來衡量第i和第j個(gè)像素的相似性。
(2)
(3)
Ds=dlab+m/s*dxy
(4)
該算法首先生成K個(gè)種子點(diǎn),然后在每個(gè)種子點(diǎn)的鄰域內(nèi)搜索最接近種子點(diǎn)的像素,并將它們與種子點(diǎn)分為一類,直到所有的像素點(diǎn)都分類完成。分別計(jì)算這K個(gè)超像素中像素的平均向量值,重新生成K個(gè)聚類中心,最后利用距離計(jì)算公式重復(fù)上述步驟,反復(fù)迭代進(jìn)行更新聚類中心,通過計(jì)算新舊聚類中心的剩余誤差直到滿足指定的閾值時(shí)算法迭代停止。由圖2 的觀測結(jié)果表明,運(yùn)動(dòng)對象的運(yùn)動(dòng)矢量具有相似的方向和長度,其特征通常用幅度、散度和旋度來描述[13],分別表示運(yùn)動(dòng)矢量的強(qiáng)度、伸縮度以及旋轉(zhuǎn)度。由于本文采用SLIC算法對運(yùn)動(dòng)矢量場進(jìn)行粗分割,所以需要對該算法進(jìn)行修改。改進(jìn)后的SLIC算法利用運(yùn)動(dòng)矢量的幅度M、散度D和旋度C以及宏塊的空間位置(x,y)構(gòu)造五維特征向量V=[M,D,C,x,y]。
(5)
其中(vx,vy)是運(yùn)動(dòng)矢量的兩個(gè)分量。采用如下的公式計(jì)算宏塊的運(yùn)動(dòng)矢量之間相似度。
(6)
(7)
Ds=dMDC+m/s*dxy
(8)
其中(x,y)代表宏塊的空間位置,dMDC代表宏塊矢量間的差異性,Ds為結(jié)合宏塊的空間距離和矢量相似性的歸一化距離,m為緊密度系數(shù)。
由于SLIC的粗分割造成了圖像的過度分割,如圖4所示,因此需要利用宏塊之間的鄰域關(guān)系來提高分割效果。本文引入MRF模型來提高分割效果。MRF是一種基于統(tǒng)計(jì)的圖像分割算法,通常在應(yīng)用中與統(tǒng)計(jì)決策和估計(jì)理論相結(jié)合。MRF模型與貝葉斯估計(jì)框架下的最大后驗(yàn)概率(MAP)結(jié)合在一起稱作MAP-MRF框架[14]。本文在MAP-MRF框架下,將運(yùn)動(dòng)目標(biāo)分割問題轉(zhuǎn)化為對運(yùn)動(dòng)宏塊的標(biāo)記問題,對于一幅待分割的圖像,模型輸出標(biāo)記結(jié)果為ω=(ω1,…ωN),ωi∈{0,1},i=1,2….N,0表示背景,1表示前景。對于超像素塊i的標(biāo)號(hào)問題計(jì)算如式
圖4 本文方法和文獻(xiàn)[19]比較
(9)
其中P(MVi)為一常數(shù),由運(yùn)動(dòng)矢量場事先給定。根據(jù)Hammersley-Clifford定理,MRF隨機(jī)場與Gibbs 場等價(jià),因此只要確定了Gibbs 隨機(jī)場的能量函數(shù)如式(10),也就確定了馬爾科夫隨機(jī)場[15]。
(10)
(11)
其中βs為模型參數(shù),用來控制區(qū)域的同構(gòu)性。
故式(9)等價(jià)于
P(ωi|MVi)∝P(MVi|ωi)·P(ωi)
∝exp[lnP(MVi|ωi)-U(ωi)]
(12)
其中E(ω)=∑-lnP(MVi|ωi)+∑U(ωi)。
由于后驗(yàn)分布也是一個(gè)Gibbs分布,因此求解P(ωi|MVi)最大問題轉(zhuǎn)化成能量函數(shù)(12)最小化的問題。
對于文獻(xiàn)[2]、[3]和[5]等傳統(tǒng)的MRF分割方法中,勢函數(shù)的選取一般都是固定的,這樣沒有充分考慮到節(jié)點(diǎn)之間的相互關(guān)系,使得分割效果不佳,很難同時(shí)保證邊界的細(xì)節(jié)和良好的區(qū)域性。因此本文算法引入可變權(quán)重[16]的思想來提高實(shí)用性,使用自適應(yīng)可變權(quán)重MRF分割模型,它的權(quán)重表示為指數(shù)形式:a(t)=c1·rt+c2,其中,c1,c2等于1/L,r是常量,t是當(dāng)前迭代次數(shù),于是得到自適應(yīng)可變權(quán)重的MRF分割模型
E(ω)=∑-lnP(MVi|ωi)+α(t)∑U(ωi)
(13)
傳統(tǒng)的MRF模型使用聚類算法把前景和背景分別分為幾類,需要聚類過程的先驗(yàn)知識(shí)來創(chuàng)建前景混合高斯模型和背景混合高斯模型來估計(jì)似然函數(shù)P(MVi|ωi),即
(14)
其中mωiX和mωiY分別是標(biāo)記為ωi塊的MV的水平和垂直分量的均值,σωiX和σωiY為相對應(yīng)的標(biāo)準(zhǔn)差。
對于這種統(tǒng)計(jì)建模方法而言,雖然在處理性能上效果比較好,但同時(shí)也引入了較高的計(jì)算復(fù)雜度,僅適用于少數(shù)動(dòng)態(tài)背景序列和靜止背景序列。在本文的方法中,式(13)的P(MVi|ωi=0)和P(MVi|ωi=1) 是通過計(jì)算背景和運(yùn)動(dòng)區(qū)域矢量直方圖得到。對于給定標(biāo)號(hào)ωi=0或1,運(yùn)動(dòng)矢量直方圖中共有m個(gè)bin,K是bin中對應(yīng)的運(yùn)動(dòng)矢量總個(gè)數(shù),對于給定的MVi,k是在bin中對應(yīng)的樣本數(shù),則條件概率為(15):
(15)
其中α>0是平滑因子。實(shí)驗(yàn)中α取0.9。
圖3為Stefan視頻序列第25幀運(yùn)動(dòng)矢量的直方圖。
圖3 Stefan視頻幀運(yùn)動(dòng)矢量直方圖
在貝葉斯框架下,常用的求解能量函數(shù)的方法有:模擬退火(SA算法)、迭代條件模式(Iterated Conditional Mode, ICM)和圖割法(GC)[17]。由于前兩種方法容易陷入局部最優(yōu)和有收斂速度慢的缺點(diǎn)。本文算法采用GC法求解式(13),克服了前兩者的不足。
實(shí)驗(yàn)采用典型的stefan視頻序列(CIF,352×288)、foreman視頻序列(CIF,352×288)和garden視頻序列(CIF,352×240):編碼使用的編碼器為JM18.6,編碼格式為IPPPP…,量化步長QP為28,搜索范圍為(-32,32)。然后與文獻(xiàn)[19]方法進(jìn)行了對比。
選取的三個(gè)視頻序列均屬于背景運(yùn)動(dòng)的場景,本文算法同樣適用于靜止背景的場景。其中第一、四、七行為文獻(xiàn)[19]的分割結(jié)果,第二、五、八行為改進(jìn)的SLIC算法的分割結(jié)果,第三、六、九行為本文算法的最終分割結(jié)果。Stefan序列為運(yùn)動(dòng)員運(yùn)動(dòng)劇烈且背景比較復(fù)雜的視頻序列,由于運(yùn)動(dòng)員產(chǎn)生的運(yùn)動(dòng)矢量較大,因此本文算法對該序列有更強(qiáng)的魯棒性。對于foreman序列,文獻(xiàn)[19]出現(xiàn)過分割而且人物的邊緣粗糙。在garden序列中,攝像機(jī)從左到右移動(dòng)拍攝,本文算法可以將樹干更準(zhǔn)確的分割出來。從圖4 可以看出,文獻(xiàn)[19]方法和本文方法都能分割出視頻序列中運(yùn)動(dòng)對象,但是文獻(xiàn)[19]在視頻序列后續(xù)幀分割效果較差,魯棒性低,本文的方法相對更多的消除了背景區(qū)域,魯棒性較好。雖然在目標(biāo)物體的邊界附近出現(xiàn)了一些錯(cuò)誤的檢測,但是對物體內(nèi)部的分割效果很好,提取的輪廓相對更小,運(yùn)動(dòng)對象邊緣檢測更精確。由于本文方法是基于宏塊的分割,仍然存在邊緣模糊性的問題。
為了客觀評價(jià)算法分割結(jié)果,本文與文獻(xiàn)[19]從精確率(P)、召回率(R)和F-Measure值三方面進(jìn)行對比,如表1所示。
表1 本文方法與文獻(xiàn)[19]在P、R、F比較
(16)
其中TP為正確檢測到的樣本像素點(diǎn),F(xiàn)P為錯(cuò)誤檢測到的樣本像素點(diǎn),F(xiàn)N為錯(cuò)誤檢測的負(fù)樣本像素點(diǎn)[18]。
從表1可以看出,本文方法相比文獻(xiàn)[19]具有較高的P和F-Measure,R有時(shí)低于文獻(xiàn)[19],是由于本文算法將前一幀運(yùn)動(dòng)目標(biāo)的運(yùn)動(dòng)區(qū)域映射到當(dāng)前幀進(jìn)行分割,因此從對象中排除落入標(biāo)記為背景的邊界塊的像素,從而導(dǎo)致更高的FN。
本文方法分割的計(jì)算時(shí)間如表2所表示。
表2 本文方法與文獻(xiàn)[19]計(jì)算時(shí)間比較
本文提出的方法計(jì)算時(shí)間包括運(yùn)動(dòng)矢量歸一化和時(shí)空域?yàn)V波及基于SLIC和MRF分割,由表2可以看出,與文獻(xiàn)[19]方法相比,運(yùn)算速度平均提高了1.85倍。為了進(jìn)一步比較運(yùn)算復(fù)雜度,將本文所提出的壓縮域視頻對象分割方法與Papazaglou等[20]提出的一種先進(jìn)的像素域視頻分割方法進(jìn)行了對比分析并給出了該方法的分割結(jié)果。
圖5 文獻(xiàn)[20]和本文方法分割比較
從實(shí)驗(yàn)結(jié)果可以看出,文獻(xiàn)[20]的方法與本文的方法相比取得了較好的分割結(jié)果,然而,本文方法的一個(gè)主要優(yōu)點(diǎn)是計(jì)算成本減少了幾個(gè)數(shù)量級,如表3所示。
表3 本文方法與文獻(xiàn)[20]分割時(shí)間比較
本文壓縮域算法比文獻(xiàn)[20]像素域算法的復(fù)雜度低,主要是因?yàn)閴嚎s域中復(fù)雜的解碼步驟被簡單的解碼器的語法解析所取代。其次,由于壓縮域不必處理所有像素,算法本身的復(fù)雜度較低。
本文提出一種基于改進(jìn)的SLIC和馬爾科夫模型的H.264視頻對象分割算法,不需要對壓縮碼流進(jìn)行完全解碼,因此,該方法具有較低的處理時(shí)間。預(yù)處理階段包括運(yùn)動(dòng)矢量場歸一化和時(shí)空域?yàn)V波兩部分。為了消除攝像機(jī)移動(dòng)對分割產(chǎn)生的影響,進(jìn)行了全局運(yùn)動(dòng)估計(jì)和全局運(yùn)動(dòng)補(bǔ)償,之后建立MRF模型進(jìn)行運(yùn)動(dòng)目標(biāo)分割。①引入了SLIC的方法,不僅提高了視頻中每一幀分割的魯棒性和準(zhǔn)確性,而且解決了MRF模型參數(shù)估計(jì)及推斷時(shí)間復(fù)雜度較高的問題。②引入可變權(quán)重的思想,增強(qiáng)了分割效果,擴(kuò)大了算法的適用范圍。③利用直方圖進(jìn)行似然函數(shù)的計(jì)算,避免了聚類過程陷入局部最優(yōu)解的問題并且顯著地降低了計(jì)算成本。④H.264編碼標(biāo)準(zhǔn)在當(dāng)前市場的攝像機(jī)中廣泛使用,由于本文算法是基于視頻碼流中提取的運(yùn)動(dòng)矢量分析,不依賴于H.264特定的標(biāo)準(zhǔn),因此該方法可以很方便地?cái)U(kuò)展到其它的編碼標(biāo)準(zhǔn)。
實(shí)驗(yàn)結(jié)果表明,該方法可以在復(fù)雜背景下分割出運(yùn)動(dòng)目標(biāo),魯棒性和準(zhǔn)確性較高,計(jì)算復(fù)雜度較低。由于算法在運(yùn)動(dòng)宏塊基礎(chǔ)之上處理,標(biāo)記場是以宏塊為單位的,處在目標(biāo)邊緣處的宏塊中的像素點(diǎn)并不是全部處于前景區(qū)域或背景區(qū)域,因此會(huì)產(chǎn)生誤差,對于提取的運(yùn)動(dòng)對象存在過分割或者輪廓偏大的現(xiàn)象有待進(jìn)一步改進(jìn)。