徐 偉,謝正光,張 輝,馬文萱
(南通大學(xué)電子信息學(xué)院,江蘇南通 226019)
在視覺監(jiān)控系統(tǒng)中,往往需要對(duì)運(yùn)動(dòng)目標(biāo)進(jìn)行檢測、跟蹤、分類和分析等,而運(yùn)動(dòng)目標(biāo)檢測的準(zhǔn)確性直接影響著后續(xù)的操作。為了適應(yīng)復(fù)雜多變的場景變化,最常用的方法就是對(duì)背景建模,然后利用背景差分檢測出運(yùn)動(dòng)物體。因此研究出良好的背景提取算法和自適應(yīng)的背景更新模型是非常重要的[1]。
近年來,很多研究者針對(duì)實(shí)際的應(yīng)用場景提出了許多不同的背景建模方法[2],現(xiàn)有的背景建模方法主要有中值法[3]、均值法[4]、核密度估計(jì)法[5]、RunningAvg 背景更新算法[6]、近似中值濾波[7]、碼本模型[8]、混合高斯模型[9]等。其中,中值法、均值法和核密度估計(jì)法主要是通過存儲(chǔ)大量過去時(shí)刻的圖像序列,并根據(jù)這些連續(xù)圖像對(duì)應(yīng)像素的統(tǒng)計(jì)特性來估計(jì)背景模型的,這種方法能防止單幀圖形的干擾,但占用內(nèi)存較大。RunningAvg更新算法是用當(dāng)前幀與前面幀進(jìn)行加權(quán)迭代來更新背景,其優(yōu)點(diǎn)是背景更新速度很快,但背景中容易產(chǎn)生拖影現(xiàn)象。遞歸類方法,如近似中值濾波、碼本模型、混合高斯模型等,需要的存儲(chǔ)空間較少,根據(jù)當(dāng)前幀的像素遞歸地更新背景模型,這使得前面幀在建模時(shí)出現(xiàn)的錯(cuò)誤會(huì)對(duì)背景造成長時(shí)間的影響,而大部分方法是使用權(quán)重來去除這種錯(cuò)誤反饋的。其中,由于混合高斯模型對(duì)于處理復(fù)雜、緩慢變化的背景有較好的效果,因此被廣泛應(yīng)用于背景建模中。但傳統(tǒng)的混合高斯背景模型對(duì)場景的突然變化敏感性不強(qiáng),不能實(shí)時(shí)更新。針對(duì)此問題,一些研究學(xué)者也根據(jù)各自的應(yīng)用進(jìn)行了改進(jìn)[10-11]。如文獻(xiàn)[10]中通過混合高斯和幀間差分相融合的自適應(yīng)背景模型,對(duì)不同區(qū)域采取不同的背景更新策略,有效地解決了場景中物體由靜止轉(zhuǎn)為運(yùn)動(dòng)狀態(tài)這種情況所引起的背景變化,但此方法中目標(biāo)的檢測和提取易受顏色變化閾值的影響,對(duì)場景中物體由運(yùn)動(dòng)轉(zhuǎn)為靜止?fàn)顟B(tài)的情況并未給出滿意的解決方法。
本文結(jié)合RunningAvg更新算法能快速更新背景的特點(diǎn),提出了一種基于混合高斯的快速背景更新方法。這里旨在解決場景中運(yùn)動(dòng)物體駛停和靜止物體駛離兩種情況所引起的背景變化問題。針對(duì)RunningAvg背景中存在的拖影現(xiàn)象和混合高斯對(duì)場景突然變化更新速度慢的問題,本文通過以下步驟來解決:1)建立兩幅背景,用它們的二值化差分圖像DB來獲取背景變化區(qū)域,將DB與前景的二值化圖像FB邏輯“與”來消除變化區(qū)域中存在的拖影現(xiàn)象;2)用狀態(tài)表保存變化區(qū)域信息,根據(jù)背景變化區(qū)域的變化情況,通過狀態(tài)表更新機(jī)制對(duì)背景模型進(jìn)行有選擇地更新。
考慮在同一場景中,如果同時(shí)對(duì)場景的變化區(qū)域進(jìn)行背景更新,RunningAvg方法僅需要很少的幀數(shù)就可以完成背景更新,而混合高斯模型需要很長時(shí)間才能實(shí)現(xiàn)。根據(jù)兩幅背景更新速度的不同,可以用它們的差分圖像來獲取變化區(qū)域。本文的算法流程如圖1所示。
圖1 算法流程圖
在算法實(shí)現(xiàn)過程中,首先用RunningAvg背景更新算法建立背景圖像BAvg。RunningAvg背景更新算法[6]首先將視頻圖像第一幀作為初始背景,通過對(duì)下一幀進(jìn)行加權(quán)迭代得到背景,每個(gè)像素更新的具體規(guī)則如下
式中:Bn(i,j)為第n幀更新后的背景值;Bn-1(i,j)為第n-1幀的背景值;In(i,j)為當(dāng)前視頻幀的灰度值;α為更新速率。
為了減小場景中環(huán)境變化和物體緩慢運(yùn)動(dòng)對(duì)背景更新造成的影響,本文對(duì)α進(jìn)行了如下改進(jìn)
接著,對(duì)差分圖像D進(jìn)行二值化處理,得到DB。這里用OSTU方法[12]選取出的閾值為25,此時(shí)的圖像分割效果最佳。如果存在背景變化,則DB中會(huì)存在白色(即像素值為255)的區(qū)域,然而BAvg中存在拖影現(xiàn)象,所以DB中包括變化區(qū)域、部分拖影和噪聲等。此時(shí)用原圖像與BGauss進(jìn)行背景差分,再經(jīng)二值化得到前景圖像FB,它包括變化區(qū)域和噪聲等,那么可以對(duì)FB和DB進(jìn)行邏輯“與”操作,如式(4)所示,從而消除了拖影帶來的影響,使提取的變化區(qū)域更準(zhǔn)確
最后,由于圖像中存在噪聲,所以在DB中往往會(huì)存在一些孤立的噪聲點(diǎn)和小面積噪聲,本文采用形態(tài)學(xué)腐蝕和膨脹去除[12],這樣提取的目標(biāo)更加合理,再對(duì)DB進(jìn)行目標(biāo)分割和連通域標(biāo)定,在一定幀數(shù)后,可以得到穩(wěn)定的背景變化區(qū)域,如果此時(shí)DB中有白色區(qū)域面積大于設(shè)定的閾值(本文取200),則判斷有背景變化發(fā)生。j)|+|In(i,j)-In-1(i,j)|,常數(shù)(α1,α2)∈(0,1),這樣可以更準(zhǔn)確地控制背景圖像的更新。
另外,用混合高斯模型建立的背景圖像BGauss來初始化背景模型。混合高斯模型的基本思想是使用多個(gè)高斯分布表示序列圖像中每個(gè)像素點(diǎn)的特征,如果當(dāng)前幀中的某像素的特征與高斯分布相匹配,則被判定為背景像素,否則為前景像素。更多有關(guān)混合高斯模型的知識(shí)可參考文獻(xiàn)[1]。
在背景變化區(qū)域提取階段,對(duì)RunningAvg背景BAvg和背景模型BGauss,進(jìn)行差分處理,得到差分圖像D
當(dāng)檢測到有背景變化發(fā)生時(shí),靜止物體駛離和運(yùn)動(dòng)物體停留這兩種情況都能引起背景變化,所以需要對(duì)兩種情況進(jìn)行區(qū)分,從而實(shí)現(xiàn)背景模型的準(zhǔn)確更新。
首先,由差分圖像DB獲取變化區(qū)域,用Canny算法提取變化區(qū)域的邊緣輪廓特征。然后對(duì)混合高斯背景的對(duì)應(yīng)區(qū)域提取邊緣輪廓特征,如果存在與變化區(qū)域相似的邊緣輪廓特征,這說明高斯背景中該區(qū)域原來是有靜止物體存在的,可以判定背景變化是靜止物體駛離引起的;否則,在混合高斯圖像中并未檢測到變化區(qū)域的邊緣特征,可以判定是運(yùn)動(dòng)物體停留所引起的變化。
在檢測出背景變化區(qū)域后,為了檢測這些區(qū)域的變化情況,本文用狀態(tài)表來保存變化區(qū)域的信息。狀態(tài)表結(jié)構(gòu)如下所示:
其中status的作用是表示背景變化區(qū)域的狀態(tài),本文設(shè)有stop,leave和unknow三種狀態(tài)。另外,通過下面的步驟完成狀態(tài)表初始化:
1)在首次檢測到有背景變化時(shí),需要對(duì)圖像DB進(jìn)行目標(biāo)分割和連通域標(biāo)定,去除不符合要求的小面積區(qū)域,再用邊緣檢測來檢測出連通域的輪廓,得到其最小外接矩形。
2)利用Hu矩求出目標(biāo)區(qū)域的質(zhì)心坐標(biāo)點(diǎn)等信息,對(duì)得到的目標(biāo)區(qū)域按區(qū)域面積大小設(shè)置唯一ID號(hào)。根據(jù)引起背景變化情況的不同,進(jìn)行如下處理:如果是靜止物體離開場景,則將status標(biāo)記為unknow狀態(tài),設(shè)置update為false;如果是運(yùn)動(dòng)物體停留,則將status標(biāo)記為stop狀態(tài),設(shè)置update為false。此外,由于場景中存在運(yùn)動(dòng)物體停留一段時(shí)間后又駛離場景的情況,所以需要對(duì)此時(shí)的高斯背景進(jìn)行備份,以便后續(xù)處理。
3)將這些信息保存到狀態(tài)表中,完成狀態(tài)表的初始化工作。
當(dāng)場景中某時(shí)刻有可能出現(xiàn)多個(gè)變化區(qū)域(包括已更新至狀態(tài)表的區(qū)域和新增區(qū)域),通過對(duì)此時(shí)狀態(tài)表中已更新的區(qū)域和已檢測到的變化區(qū)域進(jìn)行區(qū)域匹配操作,并增加質(zhì)心距離的判斷,從而準(zhǔn)確地從多個(gè)目標(biāo)區(qū)域中將新增區(qū)域檢測出來并更新至狀態(tài)表中。
Hu M.K.在1961年利用代數(shù)不變矩理論構(gòu)造出7個(gè)不變矩(簡稱Hu矩)具有旋轉(zhuǎn),縮放和平移不變性,并由此引起了廣大研究者對(duì)不變矩的研究興趣[13-14]。
利用二階和三階歸一化中心矩可以構(gòu)造7個(gè)不變矩M1~M7,具體的Hu矩理論知識(shí)可參考文獻(xiàn)[13]。本文通過比較兩個(gè)目標(biāo)區(qū)域的Hu矩的相似度來實(shí)現(xiàn)區(qū)域匹配操作的,表達(dá)式如下
通過狀態(tài)表更新機(jī)制來控制背景模型中變化區(qū)域的更新。對(duì)狀態(tài)表的準(zhǔn)確更新是得到穩(wěn)定背景的前提,所以在背景模型和狀態(tài)表完成初始化后,狀態(tài)表的更新可以分為場景中目標(biāo)駛停檢測和目標(biāo)駛離檢測兩種情況:
1)目標(biāo)駛停檢測
如圖2所示,每間隔T1幀,完成目標(biāo)駛停檢測,并實(shí)現(xiàn)狀態(tài)表的更新后,對(duì)于狀態(tài)表中未被更新至背景模型的靜止物體區(qū)域,利用此時(shí)已穩(wěn)定更新至RunningAvg背景中的靜止物體區(qū)域來更新背景模型中的對(duì)應(yīng)區(qū)域,并將該區(qū)域的update狀態(tài)設(shè)為true。
2)目標(biāo)駛離檢測
一旦狀態(tài)表初始化完畢,每隔T1幀,如果DB中存在靜止物體駛離所引起變化的背景區(qū)域。則與圖2類似,利用區(qū)域匹配算法對(duì)物體駛離區(qū)域完成狀態(tài)表更新和背景模型更新,標(biāo)記該區(qū)域status狀態(tài)為leave,設(shè)置update為true。
此外,由于場景中可能存在物體停留一段時(shí)間后又駛離的情況,所以每隔T2幀(T2?T1),遍歷狀態(tài)表中status狀態(tài)標(biāo)記為stop的變化區(qū)域,對(duì)原圖像相應(yīng)區(qū)域做三幀差分處理[15],并經(jīng)二值化得到圖像C,統(tǒng)計(jì)C中對(duì)應(yīng)的各目標(biāo)區(qū)域中像素值為255點(diǎn)的總數(shù),如果小于區(qū)域面積的15%,就判定該目標(biāo)區(qū)域仍保持停留狀態(tài),不做任何處理;否則判定該區(qū)域目標(biāo)駛離場景,用已備份的高斯背景來更新背景模型中對(duì)應(yīng)的背景暴露區(qū)域,并標(biāo)記該區(qū)域status狀態(tài)為leave,將update設(shè)為true。
按照上述的方法進(jìn)行狀態(tài)表更新后,可以實(shí)現(xiàn)背景模型及時(shí)準(zhǔn)確的更新。
本文主要是在計(jì)算機(jī)視覺類庫OpenCV的基礎(chǔ)上,通過Visual C++6.0編程來實(shí)現(xiàn)上述算法的,其中T1=210,T2=3。測試視頻的大小是384×288像素點(diǎn),幀率是30幀/秒(f/s),這段測試視頻描述的內(nèi)容是車輛A和車輛B一先一后停留在場景中,經(jīng)過較長的一段時(shí)間后,車輛B駛離了場景,而車輛A一直沒有離開。實(shí)驗(yàn)結(jié)果如圖3所示。
圖3 背景模型更新的實(shí)驗(yàn)結(jié)果圖
從圖3中可以看出,在背景模型和狀態(tài)表都完成初始化后,當(dāng)場景中出現(xiàn)運(yùn)動(dòng)物體駛停時(shí),經(jīng)過較短的時(shí)間,本文的算法就可以完成背景模型的更新,如圖3g和圖3i所示;而傳統(tǒng)的混合高斯背景如圖3k所示,車輛A只是部分被更新至背景中而已。另外,當(dāng)場景中出現(xiàn)運(yùn)動(dòng)物體先停留一段時(shí)間后又駛離背景的情況(如車輛B),那么傳統(tǒng)的混合高斯背景中并未記錄到車輛B的狀態(tài)變化信息;本文建立的背景模型可以記錄到車輛B的狀態(tài)變化信息并及時(shí)地完成背景更新,如圖3i和圖3l所示。
本文所建立的背景模型能夠?qū)鼍暗耐蝗蛔兓锌焖贉?zhǔn)確的反應(yīng)能力,對(duì)于非背景變化區(qū)域也可以擁有混合高斯模型穩(wěn)定可靠的背景。實(shí)驗(yàn)結(jié)果表明,本文提出的方法不僅能夠及時(shí)準(zhǔn)確地更新背景變化區(qū)域,同時(shí)也避免了拖影現(xiàn)象帶來的影響,而且在狀態(tài)表中可以詳細(xì)記錄背景變化區(qū)域的變化信息,方便后續(xù)的研究。本文的方法可以應(yīng)用于車輛停車檢測和拋灑物檢測等交通事件檢測領(lǐng)域。
:
[1]楊寧,楊敏.基于改進(jìn)的混合高斯模型的運(yùn)動(dòng)目標(biāo)提?。跩].計(jì)算機(jī)技術(shù)與發(fā)展,2012,22(7):20-23.
[2]薛茹,宋煥生,張環(huán).基于像素的背景建模方法綜述[J].電視技術(shù),2012,36(13):39-47.
[3] CUCCHIARA R,GRANA C,PICCARDI M,et al.Detecting moving objects,ghosts and shadows in video streams[J].Pattern Analysis and Machine Intelligence,2003,25(10):1337-1342.
[4]孫永生,劉大健,秦蒙.多幅圖像中值法在濾除噪聲中的應(yīng)用[J].電視技術(shù),2012,36(23):15-17.
[5] KASHANI H B.Background estimation in kernel space[J].International Journal of Pattern Recognition and Artificial Intelligence,2011,25(1):1-35.
[6] ZHENG Yi,F(xiàn)AN Liangzhong.Moving object detection based on running average background and temporal difference[C]//Proc.International Conference on Intelligent Systems and Knowledge Engineering(ISKE).Hangzhou:IEEE Press,2010:270-272.
[7] KIM K,CHALIDABHONGSE T H,HARWOOD D,et al.Real-time foreground-background segmentation using codebook model[J].Special Issue on Video Object Processing,2005,11(3):172-185.
[8] MCFARLANE N J B,SCHOELD C P.Segmentation and tracking of piglets in image[J].Machine Vision and Applications,1995,8(3):187-193.
[9] MORDE A,MA X,GULER S.Learning a background model for change detection[C]//Proc.IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops(CVPR Workshops).[S.l.]:IEEE Press,2012:15-20.
[10]劉鑫,劉輝,強(qiáng)振平,等.混合高斯模型和幀間差分相融合的自適應(yīng)背景模型[J].中國圖象圖形學(xué)報(bào),2008,13(4):729-734.
[11]付榮.視頻運(yùn)動(dòng)目標(biāo)檢測中背景提取算法的研究[D].西安:西安電子科技大學(xué),2011.
[12]史忠科,曹力.交通圖像檢測與分析[M].北京:科學(xué)出版社,2007:24-33.
[13]張偉,何金國.Hu不變矩的構(gòu)造與推廣[J].計(jì)算機(jī)應(yīng)用,2010,30(9):2449-2452.
[14] HUANG Zhihu,LENG Jinsong.Analysis of Hu’s moment invariants on image scaling and rotation[C]//Proc.2010 2nd International Conference on Computer Engineering and Technology.Chengdu:IEEE Press,2010:476-480.
[15]丁磊,宮寧生.基于改進(jìn)的三幀差分法運(yùn)動(dòng)目標(biāo)檢測[J].電視技術(shù),2013,37(1):151-153.