庾鵬,王旭,仝天樂,王秀超
(貴州大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,貴州 貴陽 550000)
摘要:提出了一種基于GrabCut算法和四幀差分法相結(jié)合的運動目標(biāo)檢測和提取算法。首先,利用四幀差分法對視頻中連續(xù)的四幀圖像進行二次差分;然后,對差分后的圖像分別做水平投影和垂直投影,計算運動目標(biāo)區(qū)域;最后,使用GrabCut算法分割目標(biāo)區(qū)域得到完整的運動目標(biāo)。實驗結(jié)果證明,該方法既能精確和完整地檢測出運動目標(biāo),又能有效地去除空洞、拉伸等現(xiàn)象。
關(guān)鍵詞:四幀差分;GrabCut分割;目標(biāo)檢測
0引言
目前隨著科技的不斷發(fā)展,智能化視頻監(jiān)控在各個領(lǐng)域得到了廣泛的應(yīng)用,例如智能交通監(jiān)控、安全防范系統(tǒng)、值崗檢測系統(tǒng)等。無論應(yīng)用在何種領(lǐng)域,對視頻中移動物體的研究和分析才有價值,目標(biāo)的完整提取是各種后期處理和應(yīng)用的基礎(chǔ),所以對移動目標(biāo)的檢測與完整提取也就成為了視頻處理研究中的一個熱門問題。近些年來很多學(xué)者已經(jīng)對這方面問題進行了研究,也提出了很多移動目標(biāo)檢測與提取的方法,主要有光流分析法[1]、幀間差分法和背景差分法[2]3種。
背景差分法是將視頻圖像與背景圖像做差分,取差分值較大的區(qū)域為移動目標(biāo),然而難以得到合適的背景圖像,而且易受外界干擾。幀間差分法與背景差分法類似,幀間差分法是對視頻中連續(xù)幀做差分,具有計算效率高、實時性好等特點,但是容易出現(xiàn)重疊、空洞、拉伸等問題。光流分析法檢測效果比前兩種好,但是計算復(fù)雜,不能達到實時性。3種方法都很難取得完整的目標(biāo),GrabCut[3]算法綜合了圖像的紋理信息和邊界信息對圖像進行分割,只需要少量的交互操作就可以達到高精度的分割。根據(jù)上述問題,結(jié)合幀間差分法和GrabCut算法的各自優(yōu)點,提出了以四幀差分法計算和框定運動目標(biāo)區(qū)域,GrabCut算法在框定區(qū)域內(nèi)精確分割目標(biāo)的方法。
1基于GrabCut算法和四幀差分法的運動目標(biāo)檢測與提取
1.1預(yù)處理
在使用本文提出的算法前,對每一幀圖像進行預(yù)處理十分必要,它可以提高算法在實際應(yīng)用中的效率。圖像平滑可以有效減少圖像中的噪聲,改善圖像的質(zhì)量,有利于對目標(biāo)的提取[4]。直方圖均衡化是圖像空域增強的一種經(jīng)典方法,可以改善圖像灰度分布,增強圖像的整體對比度,方法簡單、高效[5]。本文實驗使用的預(yù)處理是高斯濾波和直方圖均衡。
1.2四幀差分法快速檢測目標(biāo)區(qū)域
(1)四幀差分
提取視頻圖像中連續(xù)的四幀,經(jīng)過預(yù)處理后為f1(x,y)、f2(x,y)、f3(x,y)、f4(x,y),計算f1(x,y)與f3(x,y)以及f2(x,y)與f4(x,y)的差值圖像,差分結(jié)果為g1(x,y)與g2(x,y),計算方法如式(1)、(2)所示。g1(x,y)與g2(x,y)中已經(jīng)包含運動目標(biāo)的信息,對其進行“與”運算[6],得到結(jié)果為H(x,y)。H(x,y)定義如式(3)。
g1(x,y)=|f3(x,y)-f1(x,y)|(1)
g2(x,y)=|f4(x,y)-f2(x,y)|(2)
H(x,y)=|g1(x,y)g2(x,y)|(3)
?。?)運動目標(biāo)域框定
在經(jīng)過兩次差分處理之后,靜止的背景基本被去除,但由于外界環(huán)境變化復(fù)雜,光線不斷變化,使得沒有移動的物體在水平投影和垂直投影并不為0,因此要使用一個閾值T,分割去除因為光線變化而造成靜止物體移動假象的部分。
首先對H(x,y)水平投影得到Hx(x,y),如式(5),然后使用閾值Tm(式(6))對Hx(x,y)閾值分割,數(shù)值大于Tm的保持不變,小于Tm的為0,根據(jù)閾值分割后的圖像可以得到運動物體水平方向的范圍(x1,x2)。在垂直方向沒有必要全部投影,只需要對水平檢測范圍(x1,x2)之間進行垂直投影,得到Hy(x,y),如式(4),同樣進行閾值分割但閾值為Tn(式(7)),根據(jù)閾值分割后的圖像可以得到運動物體垂直方向的范圍(y1,y2)。從而得到運動物體的區(qū)域(x1,x2,y1,y2)。
Hy(x,y)=∑x2x=x1H(x,y)(m為圖像總列數(shù),n為圖像總行數(shù)。y=1,2,3,...,n)(4)
Hx(x,y)=∑ny=1H(x,y)(n為圖像總行數(shù),m為圖像總列數(shù)。x=1,2,3,...,m)(5)
Tm=∑mx=1Hx(x,y)/m(6)
Tn=∑ny=1Hy(x,y)/n(7)
1.3GrabCut圖像分割法
近年來許多學(xué)者提出基于圖論的圖像分割,GrabCut[7]算法就是基于圖論的一種優(yōu)秀分割方法。GrabCut算法利用圖像中紋理(顏色)信息和邊界(反差)信息,只需要少量的用戶交互操作,就可以有效地從復(fù)雜的背景中分割出前景目標(biāo)圖像。該算法用戶只需要提供背景區(qū)域的像素及框選目標(biāo),方框外的像素全部為背景,即可對GMM進行建模和完成良好的分割。通過使用四幀差分法快速框定目標(biāo)區(qū)域,然后使用GrabCut算法分割,快速取得完整的運動目標(biāo)。
從整個圖像的Gibbs能量可以得到[3]:E(α,k,θ,z)=U(α,k,θ,z)+V(α,z),第一項為數(shù)據(jù)項(t-link的權(quán)值),第二項為平滑項(nlink的權(quán)值),最終目標(biāo)經(jīng)過不斷地迭代計算出最小的能量函數(shù)??偣灿袃蓚€高斯混合模型(背景和前景),每個高斯混合模型有K個分量,每個分量包含3個參數(shù)要估計,即權(quán)重π、均值u、協(xié)方差Σ。
計算數(shù)據(jù)項:U(α,k,θ,z)=∑nD(αn,kn,θ,zn),參數(shù)α={α1....αn},αn=0或1。若αn為0,像素點為背景;若αn為1,則像素點為前景。參數(shù)K是一個向量,K={k1,k2....kn},每個kn屬于集合{1,2,....k},對應(yīng)著k個高斯分量[8]。參數(shù)θ為圖像的背景與前景的灰度直方圖。參數(shù)z為圖像的灰度數(shù)組,z={z1....zn},zn是第n個像素的灰度值。
GrabCut算法流程描述[9]:(1)、(2)為初始化步驟,(3)~(6)為迭代最小化步驟。
?。?)用戶框定目標(biāo)區(qū)域,方框外的全部像素為背景像素TB,方框內(nèi)的全部像素作為“可能目標(biāo)”TU。對TB內(nèi)的每一個像素初始化標(biāo)簽αn=0,對TU內(nèi)的每一個像素初始化標(biāo)簽αn=1。
?。?)通過kmeas算法初始化背景和前景中每一個像素高斯混合模型分量。
?。?)對每一個像素分配GMM中的高斯分量:kn=argminknDn(αn,kn,θ,zn)。
?。?)對于圖像數(shù)據(jù)Z,學(xué)習(xí)優(yōu)化GMM參數(shù):θ=argminθU(α,k,θ,z)。
?。?)分析Gibbs能量項,建立一個圖,通過最大流最小切割定理算法進行分割。
min{αn:n∈TU}minkE(α,k,θ,z)
?。?)重復(fù)步驟(3)~步驟(5),直到收斂[10]。
2實驗結(jié)果
圖1經(jīng)過灰度化之后的圖像本實驗硬件運行環(huán)境為:Intel(R) Core(TM)2 Quad 2.33 GHz CUP和4.00 GB內(nèi)存,軟件運行環(huán)境為:Windows 7、Microsoft Visual Studio 2005、opencv1.0。視頻中每一幀大小為576×704,每秒處理20幀,基本可以滿足視頻監(jiān)控中的實時性。圖1為視頻中取出的第100幀、101幀、102幀、103幀經(jīng)過灰度化之后的圖像。
圖2為使用四幀差分法得到的實驗結(jié)果。
圖3中圖(a)對實驗結(jié)果進行垂直投影,計算出圖像像素平均值為Tn=8.720 2,圖(b)為經(jīng)過閾值Tn過濾后的結(jié)果,通過計算其中一個運動物體區(qū)域的橫坐標(biāo)是(335,420),圖(c)為截取原圖中橫坐標(biāo)在(335,420)之間的實驗結(jié)果,圖(d)為(c)做水平投影,計算出像素平均圖2實驗結(jié)果值為Tm=11.658 0。圖(e)為經(jīng)過閾值Tm過濾后的結(jié)果,并且計算出運動物體區(qū)域的縱坐標(biāo)為(330,420),圖(f)為最終切割結(jié)果。
圖4(a)中的方框為經(jīng)過投影之后計算出的運動物體的區(qū)域,(b)是通過GrabCut算法切割以后提取到的完整運動目標(biāo),實驗發(fā)現(xiàn)雖然目標(biāo)有一部分區(qū)域與背景相似, 但GrabCut算法仍能完整地將其分割出來。
3結(jié)論
本文融合四幀差分法與GrabCut算法對運動目標(biāo)進行檢查與提取,首先利用高速濾波和直方圖均衡化對每一幀圖像進行預(yù)處理,然后通過四幀差分法和投影法得到運動目標(biāo)區(qū)域,最后通過GrabCut算法分割提取完整目標(biāo)。實驗結(jié)果表明,本文所提出的算法可以快速、精準、完整地檢測出運動目標(biāo),而且適用性廣泛。
參考文獻
[1] 袁國武,陳志強,龔健,等. 一種結(jié)合光流法與三幀差分法的運動目標(biāo)檢測算法[J]. 小型微型計算機系統(tǒng),2013,34(3):668671.
?。?] 杜晶晶. 智能視頻監(jiān)控中運動目標(biāo)檢測與跟蹤算法研究[D].成都:西南交通大學(xué),2009.
?。?] 周勝安. 一種基于前景物形態(tài)的GrabCut改進算法[J]. 電腦知識與技術(shù),2010,6(33):95179519.
?。?] 袁國武. 智能視頻監(jiān)控中的運動目標(biāo)檢測和跟蹤算法研究[D].昆明:云南大學(xué),2012.
?。?] 彭艷芳. 視頻運動目標(biāo)檢測與跟蹤算法研究[D].武漢:武漢理工大學(xué),2010.
[6] 張鵬,李思岑,楊燕翔. 融合邊緣檢測的四幀差分運動目標(biāo)檢測[J]. 電子技術(shù)與軟件工程,2014(20):106107.
?。?] 王鈞銘,高立鑫,趙力,等. GrabCut彩色圖像分割算法的研究[J]. 電視技術(shù),2008,32(6):1517.