前景檢測的演算法有很多,最近想用vibe來檢測前景並分割出片段來。本身沒有強大到能自己編寫vibe**,用的是某位大牛基於原文開發的**
一、vibe演算法(引自:
vibe演算法詳解:
vibe是本篇**中所提出的乙個檢測方法,相比於其他方法它有很多的不同和優點。具體的思想就是為每個畫素點儲存了乙個樣本集,樣本集中取樣值就是該畫素點過去的畫素值和其鄰居點的畫素值,然後將每乙個新的畫素值和樣本集進行比較來判斷是否屬於背景點。該模型主要包括三個方面:模型的工作原理;模型的初始化方法;模型的更新策略。
模型的工作原理
背景物體就是指靜止的或是非常緩慢的移動的物體,而前景物體就對應移動的物體。所以我們可以把物體檢測看出乙個分類問題,也就是來確定乙個畫素點是否屬於背景點。在vibe模型中,背景模型為每個背景點儲存了乙個樣本集,然後將每乙個新的畫素值和樣本集進行比較來判斷是否屬於背景點。可以知道如果乙個新的觀察值屬於背景點那麼它應該和樣本集中的取樣值比較接近。
具體的講,我們記v(x):x點處的畫素值;m(x)=為x處的背景樣本集(樣本集大小為n);sr(v(x)):以x為中心r為半徑的區域,如果m(x) [}]大於乙個給定的閾值#min,那麼就認為x點屬於背景點。
模型的初始化方法
模型的更新策略
背景模型的更新就是使得背景模型能夠適應背景的不斷變化,比如光照的變化,背景物體的變更等等。保守的更新策略:前景點永遠不會被用來填充背景模型,會引起死鎖,比如初始化的時候如果一塊靜止的區域被錯誤的檢測為運動的,那麼在這種策略下它永遠會被當做運動的物體來對待;blind策略:對死鎖不敏感,前景背景都可以來更新背景模型,缺點是緩慢移動的物體會融入背景中無法被檢測出來。在本方法中採用的更新策略是保守的更新策略+前景點計數方法。前景點計數:對畫素點進行統計,如果某個畫素點連續n次被檢測為前景,則將其更新為背景點。
具體的更新方法:每乙個背景點有1/ φ的概率去更新自己的模型樣本值,同時也有1/ φ的概率去更新它的鄰居點的模型樣本值。更新鄰居的樣本值利用了畫素值的空間傳播特性,背景模型逐漸向外擴 散,這也有利於ghost區域的更快的識別。同時當前景點計數達到臨界值時將其變為背景,並有1/ φ的概率去更新自己的模型樣本值。
在選擇要替換的樣本集中的樣本值時候,我們是隨機選取乙個樣本值進行更新,這樣可以保證樣本值的平滑的生命週期由於是隨機的更新,這樣乙個樣本值在時刻t不被更新的概率是 (n-1)/n,假設時間是連續的,那麼在dt的時間過去後,樣本值仍然保留的概率是
這就表明乙個樣本值在模型中是否被替換與時間t無關 ,隨機策略是合適的。
vibe源**:
原文的實驗效果:
之所以選用vibe是因為他的自適應能力。他會迅速將不變背景更新到當前狀態。(雖然還是解決不了一大難題——逗留),但是通過設定閾值可以定義前景的標準。每個畫素屬於前景的模型的引數是可以修改的。而且,vibe的更新能很快消除抖動或背景光照的變化。基於此,我是用這樣的簡單方法分割動態片段的:
首先,在每一幀進行前景檢測時,對檢測的結果進行前景畫素統計。當然,原文裡的是沒有這個函式,但是他有乙個update函式,可以對每一幀的每個畫素進行判別和更新,這裡我將update的型別改為int,並return乙個統計結果。這不影響原函式的更新和判別功能。只要在裡面增加乙個numforeground++來計數就行。
得到的統計結果後就要進行動態幀的判別。當然先要設定乙個前景畫素比例的閾值。當統計的每一幀的前景畫素比例超過了閾值就可以將這一幀視為動態幀,然後儲存(擷取),否則繼續下一幀的檢測和判別。直到結束。
本人也是剛學opencv不久,所以**裡面的許多東西只能照葫蘆畫瓢。實驗效果如下:
這裡面的背景小白點是攝像頭自身的抖動和雜訊問題,本來還有更多的雜訊,但是因為引數設定較大,直接過濾了。
總之,用大牛們的研究和**成果直接來做我們自己的工程是件很有趣的事。我們不見得有大牛們那種慧根,但是我對他們充滿敬仰,在這工程中能學習到很悶的思維方式,程式設計習慣,當然獲益不淺。(剛開始寫博文,內功很淺,還望給位包含和指正!)
**在這裡就不貼了(*^__^*) ……
Vibe 演算法改進
一 概述 針對鬼影問題,提出一種了基於前景區域與鄰域背景區域直方圖相似性度量的判別方法,檢測並消除鬼影 針對靜止目標問題,改進了vibe背景模型的更新策略,有效抑制靜止目標被吸收為背景 針對陰影前景問題,在vibe演算法中增加乙個陰影檢測器模型,檢測並消除陰影。針對目標不完整問題引入摳圖技術。二 鬼...
VIBE檢測演算法
一 vibe 獲取目標 其他演算法處理 最終目標 優點 記憶體占用少,處理速度快,計算量小,檢測效果好 無引數法 可直接應用在產品中,軟硬體相容性好 效能優於混合高斯,引數化方法,sacon等 背景模型及時初始化 具有較好的抗噪能力。缺點 ghost區域 挑戰 必須適應環境的變化 比如光照的變化造成...
背景建模 Vibe 演算法優缺點分析
一 vibe 演算法的優點 vibe背景建模為運動目標檢測研究鄰域開拓了新思路,是一種新穎 快速及有效的運動目標檢測演算法。其優點有以下兩點 1 思想簡單,易於實現。vibe通常隨機選取鄰域20個樣本為每個畫素點建立乙個基於樣本的背景模型,具有初始化速度快 記憶體消耗少和占用資源少等優點,隨後,利用...