鄧 博,范文兵,常伯樂
(鄭州大學 信息工程學院,河南 鄭州450001)
在生活中,大部分有意義的視覺信息是包含在運動物體中的,所以運動物體的檢測在機器視覺應用領域是一個重要的課題。運動物體檢測主要是對攝像頭獲取的動態序列圖像進行運算分析的過程,要處理的數據量通常很龐大,現有的算法在一般處理器上實現起來處理速度較慢,實時性有所不足,而對于許多用戶來說,需要的是一種體積小同時具備智能化,而且實時性很強的基于嵌入式的智能監控系統產品。因此,對基于嵌入式的運動檢測算法的研究具有很強的實際意義。
現有的運動目標檢測方法主要有三種:光流法、幀差法和背景差法。
光流法[1]利用圖像序列中的像素強度數據的時域變化和相關性來確定各像素點位置的運動,缺點是計算方法復雜,處理速度慢,達不到實時處理的要求。
幀差法[2]是將相鄰兩幀圖像相對應像素點的灰度值相減,然后將差值二值化,得到的圖形區域就是有運動物體經過區域。缺點是該方法容易產生空洞,影響檢測結果。
背景差法[3]是先計算出一幅背景的參考圖像(或者模型),然后將其與新獲取的幀做比較,得到一幅標記出運動目標區域的二值圖像。常用的建立模型方法有均值法、中值法、W4法、高斯法、核密度估計法等。這幾種建模法共同的缺點就是建模的過程需要幾十幀進行學習,實時性不高。基于此,Olivier Barnich等人于2009年提出一種ViBe(Visual Background Extractor)[4-6]背景模型的運動檢測算法,其算法實時性較高,適用于嵌入式系統。
本文介紹了新型背景建模算法ViBe的算法思想及其在嵌入式視頻處理系統TMS320DM6437上實現的具體流程,并引入幀級更新策略,以彌補原算法對突變背景更新較慢的不足。隨后對算法得出的前景目標進行二值化、中值濾波、連通域捕捉,最終實現對運動目標的捕捉。
ViBe算法用同一幀圖像中像素點作為樣本點來對像素建模,并使用隨機的方法建立、更新背景模型。實驗表明[5],該算法運算復雜度低,抗噪聲性好,在灰度圖像空間建模時不需要浮點運算[4],適合在嵌入式系統上實現。
首先將t時刻x點位置的像素值定義為pt(x),并在該像素點的某個鄰域Nt(x)內有放回的隨機取N次像素點,記為樣本集合

再把顏色空間中與pt(x)歐幾里德距離小于R的像素點集合定義為

然后取兩個集合交集的勢,公式為

如圖1所示,坐標軸C1和C2表示某二維的顏色空間,SR(pt(x))范圍內包含Bt(x)元素的個數即是count的取值。

圖1 像素點背景分類
這樣,對任意時刻t,任意像素點pt(x),可以取定一個閾值#min,使得pt(x)的概率足夠大,公式為

集合Bt(x)即是t時刻x像素點的背景模型[4]。由此完成對像素點分類。
如果x位置像素點被判定為背景,系統生成一個隨機函數來判定這個像素是否被用來更新背景模型,如果判定為要更新,則系統用該點像素值pt(x)隨機的去替換背景模型Bt(x)中的某一個元素[4],如圖2所示。

圖2 像素點背景模型更新
除此之外,還要考慮到該像素點的鄰域Nt(x),由于圖像中相臨近位置的像素點在顏色空間的相關性很強,因此其鄰域像素為背景像素的可能性就很大。使用該點像素值pt(x)來更新鄰域Nt(x)內隨機某位置xi像素點的背景模型Bt(xi),能夠將背景中突然停靠并長時間逗留的前景目標去除,使其不被檢測成為前景目標。具體算法過程,在后面詳細介紹。
TMS320DM6437(簡稱DM6437)是專為高性能、低成本視頻應用開發的,主頻600 MHz,32位定點,采用達芬奇(DaVinci)技術。該器件采用TI第3代超長指令集結構(VelociTI.3)的TMS320C64x+DSP內核,主頻可達600 MHz。除此之外,DM6437內部集成一個視頻處理子系統(VPSS),包括視頻處理前端(VPFE)和視頻處理后端(VPBE)兩部分,從硬件上完成必要的視頻預處理和后處理[6]。
DM6437的軟件系統是基于DSP/BIOS實時操作系統構建的。在DM6437的軟件結構中,系統通過調用相應的API接口,建立了6個通道句柄,包括3個視頻采集通道和3個視頻顯示通道,并為各通道分配對應的緩存區。這樣,系統建立了2個隊列:一個是由CCD控制器維護的視頻采集隊列;另一個是由應用層維護的視頻顯示隊列。2個隊列各包含3個緩存區,對于隊列的數據操作可以通過調用FVID_exchange函數來完成[7]。對視頻采集隊列的句柄執行FVID_exchange函數,CCD控制器把攝像頭新采集到的一幀數據填充到隊列頂部的緩存區,并把該緩存區排到視頻顯示隊列的底部,以待顯示(如圖3所示);對視頻顯示隊列執行FVID_exchange,應用層會把隊列頂部的緩存區數據顯示出來,并把該緩存區送還給視頻采集隊列的底部,等待重新填充數據(如圖4所示)。第2次執行該函數,會完成一個數據“采集—顯示”的過程,因此,對于視頻圖像的處理,就應該在第2次執行該函數之間完成。

考慮到ViBe背景建模相對較低的運算量以及DM6437的運算能力,本文設計了一種基于DM6437平臺的運動目標檢測程序,以實現在嵌入式系統中完成對運動物體的偵測和捕捉。
在DM6437視頻系統中,首先通過視頻預處理,把圖像的顏色空間設置為YUV格式,以便于和灰度空間的轉換。這樣,對圖像灰度值得操作即為對圖像Y分量的操作。下面論文中對圖像的背景模型建立以及更新都是在灰度空間進行的。
基于系統軟件的框架,設計的程序結構如圖5所示。

圖5 程序結構圖
程序流程主要分下面幾個步驟:
1)建立背景模型
取視頻的第一幀數據,用ViBe算法對所有像素點建立背景模型,然后將原圖像數據送交屏幕顯示。
在第1.2節介紹過,對像素點建模先要選取該點某個的領域,在確定鄰域覆蓋的范圍時,選擇應該適中[5],實驗結果表明,對于實驗平臺所用的分辨率為720×480的圖像,選擇八鄰域能得出滿意的結果。將像素點pt(x)的八鄰域內所有點的像素值所組成的集合記為

這里用上標i表示元素序號。在Nt(x)中有放回的隨機選取N次,所選到的像素值組成一個新的集合,計算像素點pt(x)的背景模型,記為

實驗的結果顯示,在灰度圖像空間,取值R=20,N/#min=10效果較好,本文取N=20,#min=2。
2)對當前幀像素點分類
取視頻的第n(n≥2)幀數據,與背景模型對比以確定各像素點是不是前景類型。由于在灰度空間,顏色的維度是1,因此式(2)等價于

所以,判斷x位置像素pt(x)是否為前景目標的準則是對該點背景模型Bt(x)進行如下運算

對式(8)重復計算N=20次,如果背景候選點個數大于等于#min,則x位置像素pt(x)判定為背景點,否則為前景點。
3)隨機的對各像素點背景模型更新,具體過程如圖6所示。

圖6 像素點背景模型更新流程圖
其中,步驟②和步驟④判斷結果要具有隨機性,可以設定生成隨機整數r∈[0,φ-1]作為判定依據,φ代表背景模型的更新和傳播頻率,當r=0時,判定為真,否則判定為假。步驟⑤是對八鄰域像素點的背景模型進行隨機更新,這樣可以去除攝像頭或者運動目標的微動所引起的誤差以及重影,還可以逐步消除前一幀背景模型的偽前景目標[5]。
4)對ViBe模型更新算法進行改進,加入幀級更新。
由于ViBe算法對背景模型的更新策略是對像素點背景模型的更新,而且這種更新還具有隨機性,那么如果因為光照變化或者其他特殊原因使得視頻圖像出現突變,就會導致很長一段時間內背景模型與當前實際視頻圖像相差較大,以致不能正確檢測出前景目標。為此,在視頻圖像發生突變的情況下,引用幀級更新的策略,對當前幀圖像重新建立背景模型。由于在視頻圖像沒有突變的情況下,每幀圖像的像素點背景模型更新的個數是相近的,對這一數據進行統計,記為NR,與前一幀更新的像素點數NR'做比較,公式為

如果式(9)成立,則判定圖像發生突變,系統對當前幀重新建立背景模型,在其后的第二幀就可以提取前景了。由于ViBe算法建模簡單快速,所以重新建立背景不會降低系統的實時性。
5)完成像素點背景分類后,按式(10)做二值化

這樣按照步驟1)至步驟5),對整幀圖像所有像素遍歷一遍后得到前景二值化圖像數據,如果把數據送屏幕顯示,得到圖像如圖7a所示(圖像中,手是運動物體)。
6)對前景二值圖像進行中值濾波[8],用3×3的滑動窗口遍歷整幀圖像,消除孤立像素點,濾波后圖像效果如圖7b所示。
7)對前景二值圖的連通區域標號,并用矩形框標注前景目標。本文使用掃描標記法[9],對一幀圖像從上到下、從左到右逐點掃描遍歷,對前景像素點進行連通域標號,掃描過后可能存在同一連通域內像素點標號不統一的情況,為此,進行第二輪掃描,查看并統一各相鄰的前景點的連通域標號,使得同一連通域內所有像素點標號統一,同時得出連通域的范圍坐標,畫矩形框標注該連通域,效果如圖7c所示。
8)將步驟7)畫出的矩形框等坐標疊加到這一幀的原始圖像上,標注出運動目標的區域,結果如圖7d所示。至此,預期目標達成。
本文針對ViBe背景建模的低運算量的特性,設計了一種實時性很強的基于ViBe背景建模算法的運動檢測方案,并在DM6437嵌入式視頻系統平臺上實現該方案。在ViBe背景模型更新環節,本文在原算法的策略基礎上引入了一種幀間更新的機制,使得系統能更快地適應背景的突變。然后通過與背景模型對比完成對圖像前景的分類,最后對前景二值圖像的連通域標號操作以完成對運動目標的捕捉。實驗結果表明,本文提出的基于ViBe背景建模的運動檢測方案在嵌入式實時系統中具有很強的實用性。

圖7 實驗平臺上實現方案效果
[1]BARRON J L,FLEET D J,BEAUCHEMIN S S.Performance of optical flow techniques[J].International Journal of Computer Vision,1994,12(1):43-47.
[2]梁國山,朱秀昌.用于人體檢測的改進的幀差法[J].電視技術,2009,33(S1):133-135.
[3]李澤峰,朱凌云.基于改進背景差法的運動目標檢測[J].儀表技術,2012(1):34-36.
[4]BARNICH O,DROOGENBROECK M V.ViBe:a powerful random technique to estimate the background in video sequences[C]//Proc.IEEE Int.Conf.Acoustics Speech and Signal Processing(ICASSP).[S.l.]:IEEE Press,2009:945-948.
[5]BARNICH O,DROOGENBROECK M V.ViBe:a universal background subtraction algorithm for video sequences[J].IEEE Trans.Image Processing,2011,20(6):1709-1724.
[6]Texas Instrument.TMS320DM6437 digital media processor[EB/OL].[2012-08-20].http://www.ti.com/lit/ds/symlink/tms320dm 6437.pdf.
[7]Texas Instrument.DSP/BIOS VPFE device driver user’s manual[EB/OL].[2012-08-20].http://www.ti.com/lit/an/spraap3a/spraap3a.pdf.
[8]蘇禮坤,陳懷新.中值濾波的視頻背景更新[J].光電工程,2010,37(1):131-135.
[9]齊美彬,鮮柯,蔣建國.一種基于車輛遮擋模型的車流量統計算法[J].儀器儀表學報,2010,31(6):1335-1341.