《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 顯示光電 > 設(shè)計(jì)應(yīng)用 > 一種改進(jìn)的融合幀差法的ViBe算法
一種改進(jìn)的融合幀差法的ViBe算法
2016年微型機(jī)與應(yīng)用第04期
史瑞環(huán),吳斌,李務(wù)軍,范風(fēng)兵
(西南科技大學(xué) 信息工程學(xué)院,四川 綿陽(yáng) 621010)
摘要: ViBe運(yùn)動(dòng)目標(biāo)檢測(cè)算法速度快,能有效抑制噪聲,但在光照強(qiáng)度突然改變的情況下,該算法會(huì)造成大面積的背景像素被誤判為前景像素,針對(duì)此問(wèn)題提出一種改進(jìn)的融合幀差法的ViBe算法。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的算法能在光照有變化時(shí)依然能檢測(cè)到完整的運(yùn)動(dòng)目標(biāo)。
Abstract:
Key words :

  史瑞環(huán),吳斌,李務(wù)軍,范風(fēng)兵

 ?。ㄎ髂峡萍即髮W(xué) 信息工程學(xué)院,四川 綿陽(yáng) 621010)

  摘要ViBe運(yùn)動(dòng)目標(biāo)檢測(cè)算法速度快,能有效抑制噪聲,但在光照強(qiáng)度突然改變的情況下,該算法會(huì)造成大面積的背景像素被誤判為前景像素,針對(duì)此問(wèn)題提出一種改進(jìn)的融合幀差法的ViBe算法。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的算法能在光照有變化時(shí)依然能檢測(cè)到完整的運(yùn)動(dòng)目標(biāo)。

  關(guān)鍵詞: ViBe;目標(biāo)檢測(cè); 幀差法

0引言

  隨著互聯(lián)網(wǎng)和物聯(lián)網(wǎng)的飛速發(fā)展 ,近年來(lái)智能安防監(jiān)控得到了廣泛的關(guān)注和應(yīng)用。前景目標(biāo)的提取是運(yùn)動(dòng)視頻分析的關(guān)鍵步驟,提取的目標(biāo)是否準(zhǔn)確完整將直接影響到后續(xù)的目標(biāo)分類(lèi)、目標(biāo)跟蹤和識(shí)別的準(zhǔn)確率。

  目前,常用的運(yùn)動(dòng)檢測(cè)方法有:幀差法、背景差法、光流法[1]。其中,背景差法應(yīng)用最為廣泛,核心原理是為每一個(gè)像素點(diǎn)建立一個(gè)背景模型,然后用模型與當(dāng)前像素相比,以確定是否為背景像素。經(jīng)典的背景差法是GMM[2],它將單一像素點(diǎn)所呈現(xiàn)的顏色用M(一般取 3~5)個(gè)高斯分布來(lái)近似,能處理多模型背景場(chǎng)景,但是它的計(jì)算量非常大,需要估計(jì)分布的參數(shù),而且更新參數(shù)難調(diào)試。

  2009年,BARNICH O等人[3]提出了一種全新的背景差算法——ViBe算法,只通過(guò)在每個(gè)像素領(lǐng)域內(nèi)隨機(jī)選取若干個(gè)采樣點(diǎn)對(duì)各像素建立一個(gè)樣本模型,采用隨機(jī)的方法更新背景模型。對(duì)比其他一些前沿的背景提取方法,ViBe算法簡(jiǎn)單,有效地簡(jiǎn)化了程序,加快了對(duì)于幀的處理速度的同時(shí),可以達(dá)到較高的準(zhǔn)確度,增強(qiáng)了抗噪能力并減少了計(jì)算負(fù)載[4]。但是該算法在背景光照突然發(fā)生變化時(shí)會(huì)將大面積的背景誤判為運(yùn)動(dòng)前景[5],導(dǎo)致檢測(cè)出的目標(biāo)無(wú)法識(shí)別。針對(duì)此問(wèn)題,本文結(jié)合幀差法對(duì)ViBe算法進(jìn)行改進(jìn),實(shí)驗(yàn)結(jié)果驗(yàn)證了改進(jìn)算法的有效性。

1ViBe和幀差法的算法原理

  1.1ViBe算法

  ViBe算法主要包括工作原理、初始化方法、更新策略三個(gè)方面。

  (1)工作原理

  ViBe算法為每個(gè)背景點(diǎn)存儲(chǔ)了一個(gè)樣本集,然后將每一個(gè)新的像素值和樣本集進(jìn)行比較來(lái)判斷是否屬于背景點(diǎn)。如果一個(gè)新的觀察值屬于背景點(diǎn),那么它應(yīng)該與樣本集中的采樣值比較接近。圖1展示了ViBe算法如何判斷像素點(diǎn)是否為前景點(diǎn)。

  

001.jpg

  記v(x)為x點(diǎn)處的像素值,M(x)={v1,v2,…,vN}為x處的背景樣本集(樣本集大小為N),SR(v(x))是以x為中心、R為半徑的區(qū)域。如果SR(v(x))∩{v1,v2,…,vN}大于一個(gè)給定的閾值#min,則認(rèn)為x點(diǎn)屬于背景點(diǎn)。

 ?。?)初始化方法

  初始化就是建立背景模型的過(guò)程。ViBe的初始化利用了相近像素點(diǎn)擁有相近的時(shí)空分布特性,僅通過(guò)一幀圖像即可完成,極大地提高了算法的實(shí)時(shí)性。具體就是:對(duì)于一個(gè)像素點(diǎn),隨機(jī)地選擇它的鄰居點(diǎn)的像素值作為它的模型樣本值。

 ?。?)更新策略

  BARNICH O在參考文獻(xiàn)[6]中提到,好的更新方式是讓采樣值在模型中的概率單調(diào)降低。ViBe算法采用一種無(wú)記憶背景更新策略,從每個(gè)點(diǎn)的八鄰域中隨機(jī)選取一個(gè)樣本,替代原有背景模型中隨機(jī)選取的一個(gè)樣本,這樣既保證了樣本在背景模型中存在壽命的平滑指數(shù)衰減,又避免了先入先出方法造成的變化速度不能正確處理的問(wèn)題。同時(shí)采用隨機(jī)鄰域傳播機(jī)制,即背景模型中的樣本也要更新對(duì)應(yīng)的鄰域,這樣有效地保證了空間的一致性,可以隨時(shí)間恢復(fù)被前景遮擋的背景像素。

  1.2幀差法

  幀差法[7]的基本原理是將連續(xù)視頻序列中的兩幀或3幀圖像的像素點(diǎn)相減,然后通過(guò)比較相減得到的差值與預(yù)先設(shè)定的閾值相比較來(lái)確定視頻序列中移動(dòng)目標(biāo)的運(yùn)動(dòng)的區(qū)域。對(duì)于一段視頻序列,用當(dāng)前幀圖像fm(x,y,t)減去前一幀圖像fn(x,y,t-1),最后得到二值圖像 fj(x,y)。用式(1)表示如下:

  fj(x,y)=1,|fm(x,y,t)-fn(x,y,t-1)|≥X

  0,|fm(x,y,t)-fn(x,y,t-1)|<X(1)

  其中,fm(x,y,t)是當(dāng)前幀的輸入圖像,fn(x,y,t-1)是前一幀輸入圖像,fj(x,y)是檢測(cè)到的二值圖像,X是設(shè)定的閾值。

  幀差法是根據(jù)相鄰幀差值與閾值X的大小來(lái)判斷像素點(diǎn)屬于運(yùn)動(dòng)前景還是背景,如果相鄰幀差值的絕對(duì)值大于等于閾值X,則該像素是前景像素,反之為背景像素。

2融合幀差法的ViBe算法

  ViBe算法速度快,能有效抑制噪聲,檢測(cè)效果完整準(zhǔn)確,但卻在光照變化時(shí)幾乎檢測(cè)不到準(zhǔn)確的目標(biāo)。而幀差法算法實(shí)現(xiàn)簡(jiǎn)單,檢測(cè)速度快,實(shí)時(shí)性好,受光線變化的影響小。

  根據(jù)以上分析本文采用幀差法來(lái)改進(jìn)ViBe算法。對(duì)于一段視頻,首先,從第二幀開(kāi)始對(duì)輸入的當(dāng)前幀圖像是否有光照變化進(jìn)行判斷,然后根據(jù)判斷結(jié)果選擇使用的目標(biāo)檢測(cè)算法和檢測(cè)結(jié)果。即計(jì)算當(dāng)前幀與前一幀圖像像素值的變化程度,當(dāng)像素值的變化大于等于預(yù)先設(shè)定的閾值時(shí)表明當(dāng)前幀光照有變化,則將幀差法處理的結(jié)果和ViBe算法處理的結(jié)果做與運(yùn)算,作為當(dāng)前幀的目標(biāo)檢測(cè)結(jié)果。當(dāng)像素值的變化小于設(shè)定的閾值時(shí)表示當(dāng)前幀光照無(wú)變化或變化不明顯,則ViBe算法的處理結(jié)果作為當(dāng)前幀的目標(biāo)檢測(cè)結(jié)果。最后再通過(guò)形態(tài)學(xué)處理掉一些孤立的噪點(diǎn)得到完整的目標(biāo)圖像。具體的算法流程圖如圖2所示 。

 

002.jpg

  當(dāng)前幀像素值的變化大小用M表示:

  M=∑N|fm(x,y,t)-fn(x,y,t-1)|(2)

  其中,N是圖像的大小,fm(x,y,t)是當(dāng)前幀圖像,fn(x,y,t-1)是前一幀圖像。光照變化可能是變亮,也可能是變暗,所以式(2)中加了絕對(duì)值。當(dāng)M≥T(T為閾值)時(shí),表明當(dāng)前幀與前一幀相比,有光照的變化;當(dāng)M<T,表明當(dāng)前幀與前一幀光照幾乎無(wú)變化或者變化不明顯。閾值T的大小選取與圖像大小、目標(biāo)運(yùn)動(dòng)速度等有關(guān)。

3實(shí)驗(yàn)結(jié)果與分析


003.jpg

  為了驗(yàn)證算法的有效性,本文選取了一段有光照強(qiáng)度變化(像素值變化了30~40)的車(chē)輛視頻做測(cè)試,該視頻的幀率為15幀/秒,分辨率為160×120,格式為AVI。實(shí)驗(yàn)效果對(duì)比如圖3所示,第71幀與前一幀相比無(wú)光照變化,39、77幀與前一幀相比有光照變化。根據(jù)實(shí)驗(yàn)結(jié)果可以看出ViBe算法在光照不變的情況下檢測(cè)效果很好,但是在光照變化的情況下,出現(xiàn)了大面積的像素點(diǎn)誤判。改進(jìn)之后的ViBe算法不再受光照變化的影響,依然可以檢測(cè)到運(yùn)動(dòng)目標(biāo),大大提高了ViBe算法在光照變化時(shí)的目標(biāo)檢測(cè)準(zhǔn)確率。

4結(jié)論

  將ViBe算法與幀差法融合在一起,根據(jù)閾值判斷當(dāng)前幀圖像是否發(fā)生了光照變化來(lái)決定最終目標(biāo)檢測(cè)結(jié)果的算法,在監(jiān)控視頻中有光照變化的情況下依然可以檢測(cè)到近乎完整的目標(biāo)。但是ViBe算法還存在對(duì)陰影敏感和鬼影[8]長(zhǎng)時(shí)間不能消除的問(wèn)題,這將是下一步的研究計(jì)劃。

參考文獻(xiàn)

 ?。?] PANDER R P,MISHRA N D,GULBANE S, et al. Detection of moving object with the help of motion detection alarm system in video survelliance[J].Journal of Signal and Image Processing,2012,2(3):118121.

 ?。?] STAUFER C,GRIMSON W E L.Adaptive background mixture models for realtime tracking[C].IEEE Computer Society Conference on Computer Vision and Pattern Recognition,1999(2):241252.

  [3] BARNIEH O,VAN DROOGENBROECH M.ViBe:a powerful random technique to estimate the background in video sequences[C]Proceedings of IEEE International Conference on Acoustics,Speech and Signal Processing,IEEE,2009:945948.

  [4] 邱禎艷, 王修暉. 一種結(jié)合Grabcut的Vibe目標(biāo)檢測(cè)算法[J].中國(guó)計(jì)量學(xué)院學(xué)報(bào),2012,23(3):250256.

 ?。?] 嚴(yán)紅亮, 王福龍, 劉志煌, 等. 基于ViBe算法的改進(jìn)背景減去法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2014(6):130134.

 ?。?] BARNICH O, M. VAN DROOGENBROECK. ViBe : A universal background subtraction algorithm for video sequences[J]. IEEE Transactions on Image Processing, 2011,20(6):17091724.

 ?。?] SAMUELE S, ANDREA C, LUIGI D S. Adaptive appearance modeling for video tracking: survey and evaluation[J]. IEEE Transactions on Image Processing, 2012,21(21):43344348.

  [8] 張杜, 陳元枝, 邱憑婷.基于ViBe算法及Canny邊緣檢測(cè)的運(yùn)動(dòng)目標(biāo)提?。跩]. 微型機(jī)與應(yīng)用,2015,34(14):3638.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。