徐 偉,謝正光,張 輝,馬文萱
(南通大學電子信息學院,江蘇南通 226019)
在視覺監控系統中,往往需要對運動目標進行檢測、跟蹤、分類和分析等,而運動目標檢測的準確性直接影響著后續的操作。為了適應復雜多變的場景變化,最常用的方法就是對背景建模,然后利用背景差分檢測出運動物體。因此研究出良好的背景提取算法和自適應的背景更新模型是非常重要的[1]。
近年來,很多研究者針對實際的應用場景提出了許多不同的背景建模方法[2],現有的背景建模方法主要有中值法[3]、均值法[4]、核密度估計法[5]、RunningAvg 背景更新算法[6]、近似中值濾波[7]、碼本模型[8]、混合高斯模型[9]等。其中,中值法、均值法和核密度估計法主要是通過存儲大量過去時刻的圖像序列,并根據這些連續圖像對應像素的統計特性來估計背景模型的,這種方法能防止單幀圖形的干擾,但占用內存較大。RunningAvg更新算法是用當前幀與前面幀進行加權迭代來更新背景,其優點是背景更新速度很快,但背景中容易產生拖影現象。遞歸類方法,如近似中值濾波、碼本模型、混合高斯模型等,需要的存儲空間較少,根據當前幀的像素遞歸地更新背景模型,這使得前面幀在建模時出現的錯誤會對背景造成長時間的影響,而大部分方法是使用權重來去除這種錯誤反饋的。其中,由于混合高斯模型對于處理復雜、緩慢變化的背景有較好的效果,因此被廣泛應用于背景建模中。但傳統的混合高斯背景模型對場景的突然變化敏感性不強,不能實時更新。針對此問題,一些研究學者也根據各自的應用進行了改進[10-11]。如文獻[10]中通過混合高斯和幀間差分相融合的自適應背景模型,對不同區域采取不同的背景更新策略,有效地解決了場景中物體由靜止轉為運動狀態這種情況所引起的背景變化,但此方法中目標的檢測和提取易受顏色變化閾值的影響,對場景中物體由運動轉為靜止狀態的情況并未給出滿意的解決方法。
本文結合RunningAvg更新算法能快速更新背景的特點,提出了一種基于混合高斯的快速背景更新方法。這里旨在解決場景中運動物體駛停和靜止物體駛離兩種情況所引起的背景變化問題。針對RunningAvg背景中存在的拖影現象和混合高斯對場景突然變化更新速度慢的問題,本文通過以下步驟來解決:1)建立兩幅背景,用它們的二值化差分圖像DB來獲取背景變化區域,將DB與前景的二值化圖像FB邏輯“與”來消除變化區域中存在的拖影現象;2)用狀態表保存變化區域信息,根據背景變化區域的變化情況,通過狀態表更新機制對背景模型進行有選擇地更新。
考慮在同一場景中,如果同時對場景的變化區域進行背景更新,RunningAvg方法僅需要很少的幀數就可以完成背景更新,而混合高斯模型需要很長時間才能實現。根據兩幅背景更新速度的不同,可以用它們的差分圖像來獲取變化區域。本文的算法流程如圖1所示。

圖1 算法流程圖
在算法實現過程中,首先用RunningAvg背景更新算法建立背景圖像BAvg。RunningAvg背景更新算法[6]首先將視頻圖像第一幀作為初始背景,通過對下一幀進行加權迭代得到背景,每個像素更新的具體規則如下

式中:Bn(i,j)為第n幀更新后的背景值;Bn-1(i,j)為第n-1幀的背景值;In(i,j)為當前視頻幀的灰度值;α為更新速率。
為了減小場景中環境變化和物體緩慢運動對背景更新造成的影響,本文對α進行了如下改進



接著,對差分圖像D進行二值化處理,得到DB。這里用OSTU方法[12]選取出的閾值為25,此時的圖像分割效果最佳。如果存在背景變化,則DB中會存在白色(即像素值為255)的區域,然而BAvg中存在拖影現象,所以DB中包括變化區域、部分拖影和噪聲等。此時用原圖像與BGauss進行背景差分,再經二值化得到前景圖像FB,它包括變化區域和噪聲等,那么可以對FB和DB進行邏輯“與”操作,如式(4)所示,從而消除了拖影帶來的影響,使提取的變化區域更準確

最后,由于圖像中存在噪聲,所以在DB中往往會存在一些孤立的噪聲點和小面積噪聲,本文采用形態學腐蝕和膨脹去除[12],這樣提取的目標更加合理,再對DB進行目標分割和連通域標定,在一定幀數后,可以得到穩定的背景變化區域,如果此時DB中有白色區域面積大于設定的閾值(本文取200),則判斷有背景變化發生。j)|+|In(i,j)-In-1(i,j)|,常數(α1,α2)∈(0,1),這樣可以更準確地控制背景圖像的更新。
另外,用混合高斯模型建立的背景圖像BGauss來初始化背景模型。混合高斯模型的基本思想是使用多個高斯分布表示序列圖像中每個像素點的特征,如果當前幀中的某像素的特征與高斯分布相匹配,則被判定為背景像素,否則為前景像素。更多有關混合高斯模型的知識可參考文獻[1]。
在背景變化區域提取階段,對RunningAvg背景BAvg和背景模型BGauss,進行差分處理,得到差分圖像D
當檢測到有背景變化發生時,靜止物體駛離和運動物體停留這兩種情況都能引起背景變化,所以需要對兩種情況進行區分,從而實現背景模型的準確更新。
首先,由差分圖像DB獲取變化區域,用Canny算法提取變化區域的邊緣輪廓特征。然后對混合高斯背景的對應區域提取邊緣輪廓特征,如果存在與變化區域相似的邊緣輪廓特征,這說明高斯背景中該區域原來是有靜止物體存在的,可以判定背景變化是靜止物體駛離引起的;否則,在混合高斯圖像中并未檢測到變化區域的邊緣特征,可以判定是運動物體停留所引起的變化。
在檢測出背景變化區域后,為了檢測這些區域的變化情況,本文用狀態表來保存變化區域的信息。狀態表結構如下所示:

其中status的作用是表示背景變化區域的狀態,本文設有stop,leave和unknow三種狀態。另外,通過下面的步驟完成狀態表初始化:
1)在首次檢測到有背景變化時,需要對圖像DB進行目標分割和連通域標定,去除不符合要求的小面積區域,再用邊緣檢測來檢測出連通域的輪廓,得到其最小外接矩形。
2)利用Hu矩求出目標區域的質心坐標點等信息,對得到的目標區域按區域面積大小設置唯一ID號。根據引起背景變化情況的不同,進行如下處理:如果是靜止物體離開場景,則將status標記為unknow狀態,設置update為false;如果是運動物體停留,則將status標記為stop狀態,設置update為false。此外,由于場景中存在運動物體停留一段時間后又駛離場景的情況,所以需要對此時的高斯背景進行備份,以便后續處理。
3)將這些信息保存到狀態表中,完成狀態表的初始化工作。
當場景中某時刻有可能出現多個變化區域(包括已更新至狀態表的區域和新增區域),通過對此時狀態表中已更新的區域和已檢測到的變化區域進行區域匹配操作,并增加質心距離的判斷,從而準確地從多個目標區域中將新增區域檢測出來并更新至狀態表中。
Hu M.K.在1961年利用代數不變矩理論構造出7個不變矩(簡稱Hu矩)具有旋轉,縮放和平移不變性,并由此引起了廣大研究者對不變矩的研究興趣[13-14]。
利用二階和三階歸一化中心矩可以構造7個不變矩M1~M7,具體的Hu矩理論知識可參考文獻[13]。本文通過比較兩個目標區域的Hu矩的相似度來實現區域匹配操作的,表達式如下

通過狀態表更新機制來控制背景模型中變化區域的更新。對狀態表的準確更新是得到穩定背景的前提,所以在背景模型和狀態表完成初始化后,狀態表的更新可以分為場景中目標駛停檢測和目標駛離檢測兩種情況:
1)目標駛停檢測
如圖2所示,每間隔T1幀,完成目標駛停檢測,并實現狀態表的更新后,對于狀態表中未被更新至背景模型的靜止物體區域,利用此時已穩定更新至RunningAvg背景中的靜止物體區域來更新背景模型中的對應區域,并將該區域的update狀態設為true。

2)目標駛離檢測
一旦狀態表初始化完畢,每隔T1幀,如果DB中存在靜止物體駛離所引起變化的背景區域。則與圖2類似,利用區域匹配算法對物體駛離區域完成狀態表更新和背景模型更新,標記該區域status狀態為leave,設置update為true。
此外,由于場景中可能存在物體停留一段時間后又駛離的情況,所以每隔T2幀(T2?T1),遍歷狀態表中status狀態標記為stop的變化區域,對原圖像相應區域做三幀差分處理[15],并經二值化得到圖像C,統計C中對應的各目標區域中像素值為255點的總數,如果小于區域面積的15%,就判定該目標區域仍保持停留狀態,不做任何處理;否則判定該區域目標駛離場景,用已備份的高斯背景來更新背景模型中對應的背景暴露區域,并標記該區域status狀態為leave,將update設為true。
按照上述的方法進行狀態表更新后,可以實現背景模型及時準確的更新。
本文主要是在計算機視覺類庫OpenCV的基礎上,通過Visual C++6.0編程來實現上述算法的,其中T1=210,T2=3。測試視頻的大小是384×288像素點,幀率是30幀/秒(f/s),這段測試視頻描述的內容是車輛A和車輛B一先一后停留在場景中,經過較長的一段時間后,車輛B駛離了場景,而車輛A一直沒有離開。實驗結果如圖3所示。

圖3 背景模型更新的實驗結果圖
從圖3中可以看出,在背景模型和狀態表都完成初始化后,當場景中出現運動物體駛停時,經過較短的時間,本文的算法就可以完成背景模型的更新,如圖3g和圖3i所示;而傳統的混合高斯背景如圖3k所示,車輛A只是部分被更新至背景中而已。另外,當場景中出現運動物體先停留一段時間后又駛離背景的情況(如車輛B),那么傳統的混合高斯背景中并未記錄到車輛B的狀態變化信息;本文建立的背景模型可以記錄到車輛B的狀態變化信息并及時地完成背景更新,如圖3i和圖3l所示。
本文所建立的背景模型能夠對場景的突然變化有快速準確的反應能力,對于非背景變化區域也可以擁有混合高斯模型穩定可靠的背景。實驗結果表明,本文提出的方法不僅能夠及時準確地更新背景變化區域,同時也避免了拖影現象帶來的影響,而且在狀態表中可以詳細記錄背景變化區域的變化信息,方便后續的研究。本文的方法可以應用于車輛停車檢測和拋灑物檢測等交通事件檢測領域。
:
[1]楊寧,楊敏.基于改進的混合高斯模型的運動目標提取[J].計算機技術與發展,2012,22(7):20-23.
[2]薛茹,宋煥生,張環.基于像素的背景建模方法綜述[J].電視技術,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]孫永生,劉大健,秦蒙.多幅圖像中值法在濾除噪聲中的應用[J].電視技術,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,FAN 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]劉鑫,劉輝,強振平,等.混合高斯模型和幀間差分相融合的自適應背景模型[J].中國圖象圖形學報,2008,13(4):729-734.
[11]付榮.視頻運動目標檢測中背景提取算法的研究[D].西安:西安電子科技大學,2011.
[12]史忠科,曹力.交通圖像檢測與分析[M].北京:科學出版社,2007:24-33.
[13]張偉,何金國.Hu不變矩的構造與推廣[J].計算機應用,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].電視技術,2013,37(1):151-153.