?

采取階段性改進的全新ViBe目標檢測算法

2021-06-03 02:22涂偉強李炎炎陳金戈
關鍵詞:像素點像素背景

涂偉強, 李炎炎, 龍 偉, 陳金戈, 丁 偉

(四川大學機械工程學院, 成都 610065)

1 引 言

隨著計算機技術的高速發展,運動目標檢測在智能監控、智能交通、航空航海等領域得到了廣泛應用,其檢測效果是后續目標行為分析、目標追蹤的關鍵. 目前,運動目標檢測算法主要分為三大類:光流法[1-2]、幀差法[3-4]和背景差分法[5-7]. 光流法是在其對應的矢量場中,根據背景與前景目標像素點的速度矢量不同而檢測出運動目標.但這種方法計算量較大、處理時間長,難以達到實時性的要求. 幀差法是利用連續m幀圖像差分獲得檢測目標,其原理簡單且實時性好,但只能檢測出運動目標的邊界信息,導致獲得的目標不完整,并且不適應背景變化較大的場景. 背景差分法則同時具備實時性、準確性以及簡單性等特點,可以從視頻序列圖像中提取出較完整的運動目標.

由于傳統的背景差分法建立背景模型耗費時間較長,占用內存較大. 因此,Barnich等人在2009年提出了視覺背景提取模型 (Visual Background extractor, ViBe) 建模方法[8]. ViBe算法是一種像素級圖像背景建?;蚯熬皺z測的算法,該算法將隨機機制應用到背景模型的建立和更新中,使得背景模型中每個像素值的樣本值更加符合實際分布.由于不需要假設復雜的概率模型,故檢測精度高、實時性好、內存占用少.另外算法簡單易實現,使得檢測效率大大提升. 但是,該算法也存在鬼影[9]、目標檢測不完整[10]等問題. 針對鬼影問題,文獻[11]提出一種基于ViBe和三幀差法的目標檢測算法,在背景模型更新過程中加入參考幀,并為每個像素點設置更新因子λ(x,y).由于ViBe算法檢測過程中三幀差法需同時對目標進行檢測,運算量明顯加大,因此,不能滿足實時性要求. 文獻[12]采用一種基于信息度對圖像進行分塊,同時結合混合高斯的運動檢測算法,使得該算法計算量大大減少,從而占用時長減少,但是運動目標存在大量的空洞. 文獻[13]增加了鬼影抑制模塊,通過 OTSU 算法計算出最適合當前幀的分割閾值,在傳統 ViBe 算法基礎上再對前景像素點進行二次判別.該方法能夠很好地適應前景目標運動變化較大的情況,更好地抑制鬼影現象,同時保持較高較穩定的檢測率.

本文針對ViBe算法傳統建模方法的缺陷提出利用前m幀視頻序列來構建背景模型;針對ViBe算法中固定參數影響檢測精度問題,提出擴大樣本選取鄰域數量、自適應調整匹配半徑以及背景更新因子方法;其次提出在目標檢測階段通過獲取的最佳圖像分割閾值對前景像素進行二次判別.

2 ViBe算法原理介紹與分析

ViBe算法是2009年由Barnich等提出的一種背景建模方法[8],該算法采用鄰域像素來創建背景模型,通過比對背景模型和當前輸入像素值來檢測前景,整個過程如圖1所示.

圖1 ViBe算法的基礎流程圖

從圖1可看出,ViBe算法大致可分為模型初始化、目標檢測以及背景模型更新三個主要階段.

2.1 模型初始化

一般的運動目標檢測算法在初始化背景模型時是由一定長度的視頻序列完成,而 ViBe 算法的模型初始化是根據首幀圖像的情況來建立背景模型,如圖2所示. 圖2(a)為某視頻序列的首幀畫面;圖2(b)表示在像素點x的8鄰域中進行隨機采樣n個樣本,且圖中Nx為x點處的其中一個鄰域;圖2(c)為當前像素點x的樣本集S(x) = {P1,P2,P3,……,Pn}. 所有像素點的樣本集構成了初始化的背景模型.

(a) (b) (c)圖2 ViBe背景模型Fig.2 ViBe background model

2.2 目標檢測

前景檢測是ViBe算法中較為關鍵的環節之一,它通過比較新的像素值與對應樣本集來判斷新的采樣點是否為前景點. 背景模型中每個像素點x都存儲了一個像素樣本集P(x),計算新的像素值與樣本集中每個像素值的距離,如果該距離小于設定的半徑參數,則對應像素點的近似樣本數增加;如果近似樣本數小于規定的閾值,則判定該像素點屬于前景點. 檢測過程主要由三個參數決定:樣本集數目n,閾值#min和半徑參數R,圖3參數設置為n=20,#min=2,R=20.

圖3 二維歐氏顏色空間分類示意圖

圖3中,P(x)為新圖像幀的像素值;R為預先設定的半徑參數;P1、P2、P3、……為樣本集S(x)中的像素值. 圖中以P(x)為圓心,R為半徑的圓被定義為一個集合SR(P(x)),S(x)與SR(P(x))的交集為新像素點的近似樣本數 (近似樣本數越少,新像素點判定為前景點的可能性愈大). 因此,閾值#min和半徑參數R與模型的靈敏度成正相關,可適當調整#min、R的值來改變模型的靈敏度.

2.3 背景更新策略

背景模型的更新目的是使其可以不斷適應外界環境的變化,例如光照的變化、背景物體的變化等,其中保守更新與前景點計數更新是背景更新的主要更新策略. 保守更新策略規定前景點不能填充背景模型,由此可能導致死鎖現象出現.例如在模型初始化時如果一塊靜止的區域被錯誤的檢測為運動區域,那么在這種策略下該運動區域將永遠被當作前景目標來對待.而前景點計數更新策略則是假設某個像素點連續K次被判定為前景時,將判定更新該像素點為背景像素點. 而ViBe算法的更新策略則是保守更新策略與前景點計數相結合. 該策略規定每一個被檢測為背景點的像素點都有1/φ的概率更新它本身的模型樣本值,同時更新鄰點樣本值的概率也是1/φ. 另外當前景點計數達到閾值時也將更新為背景點,并有1/φ的概率去更新它本身的模型樣本值.

筆者針對事故車輛類型、事故發生時間段、肇事人年齡段、性別、是否酒駕、是否持駕照、是否本人車輛、肇事時間和肇事次數等指標對事故中的車和人進行詳細分析,從事故發生根源入手,分析事故發生原因,從而為預防事故的措施出臺提供可靠理論基礎。

3 基于ViBe的目標檢測算法改進

3.1 模型初始化階段

首先,針對建模方式選擇問題,由于在真實場景下,往往第一幀圖像中是否存在運動物體對背景建模會產生極大的影響. 因此,采用前m幀視頻序列對應像素點的均值構建背景模型,即通過計算對應各個像素點的平均值來構造一個虛擬背景,并以此背景為基礎來建立背景模型,從而使建立的背景模型更加符合理想模型. 其中,式(1)用來計算虛擬背景中每一個點的像素值.

(1)

式中,Va(x,y)為平均像素值;Vi(x,y)為第i幀像素值.

其次,在樣本選取過程中,ViBe算法所采用的鄰域數目較少,所需樣本值個數明顯多于鄰域個數,在單一鄰域中出現集中采樣,使得重復采樣的概率增大. 為有效解決上述問題,將原先的8鄰域改為24鄰域進行樣本選取,降低樣本選取的集中性,提高背景模型的精確度. 此外當像素點x處于圖像邊界時,傳統策略會導致分類的準確性降低,因此采用一種新型邊界采樣策略,使得邊界像素點的采樣值更加準確,如圖4所示.

圖4 邊界采樣策略對比圖

最后,在檢測過程中相關參數對像素檢測的精確度也有一定影響,為改善此影響,根據背景模型的變化程度以及檢測目標的運動速度動態調整原ViBe算法中固定的匹配半徑,使獲得的背景模型更加符合實際模型.

3.2 目標檢測階段

為了提高算法的容錯率,引入最大類間方差法[14]來計算當前幀的最佳分割閾值[15],對前景像素進行二次判別,從而提高像素判別的正確率. 其中最大類間方差法(OTSU),是一種基于全局二值化的自適應閾值[16]確定方法,依據圖像的灰度特性獲取圖像的最佳分割閾值,并根據最佳分割閾值將當前圖像分為背景和前景兩個部分. 當取最佳閾值時,上述部分之間的差別達到最大,也就意味著目標與背景被錯誤分辨的概率降到了最低(錯分概率最小[17]).

3.3 背景更新階段

根據背景變化快慢程度,采用動態調整更新因子大小的方法. 從圖1可看出,φ值與背景模型的更新速率Vu成反比. 因此,引入了幀間均速測量值ΔV來衡量運動目標的運動速度,使得φ能夠自適應地調整自身值的大小. 其中,幀差測量值ΔV表示前后幀同一個運動物體質心間的平均移動速度.

(2)

式中,di為當前圖像與前一個圖像對應運動物體的相對質心差;f為待統計的幀數.

這里根據ΔV將更新因子劃分為3個等級,即

(3)

σ1、σ2的選取是根據當前視頻的實際情況給出,一般情況下,取σ1= 2,σ2=8.

最后,經過形態學圖像處理,清除檢測時出現的孔洞以及一些輕微閃爍點.算法流程見圖5.

圖5 改進ViBe算法流程圖Fig.5 Flow chart of the improved ViBe algorithm

4 實驗結果與分析

為了驗證本文算法對鬼影和目標不完整現象的抑制效果,選用兩組視頻序列對原ViBe算法與改進的ViBe算法進行對比試驗. 試驗運行環境:Win10 64位操作系統;處理器為:Intel(R) Core(TM) i5-5200U CPU;內存為:4.00 GB;軟件算法平臺:MATLAB 2016b、VS2019、OpenCV 4.0.設置的起始參數為:背景樣本數n=20,似樣本數規定的閾值#min=2,匹配半徑參數R=20,更新概率λ=16.

4.1 結果試驗

鬼影抑制試驗選自Change Detection數據集中 Highway視頻序列以及PETS2006視頻序列. 其中Highway視頻序列初始幀為第950幀,PETS2006視頻序列初始幀為第40幀.

圖6為Highway視頻序列實驗檢測結果,圖 6(a)為第980幀原圖,圖6(b)為ViBe算法檢測結果,結果顯示經ViBe算法檢測的視頻序列有明顯的鬼影現象存在;圖6(c)為本文算法檢測結果,可以看到此時鬼影現象已經消除,目標完整度得到極大提高,但仍存在少量噪聲點;圖6(d)為真實前景. 通過ViBe算法處理的圖像序列在1 019幀左右鬼影才消失.

(a) 原始圖像

(b) ViBe算法

(c) 本文算法

(d) 理想檢測圖

圖7為PETS2006視頻序列實驗結果.圖7(a)為第75幀原圖.圖7(b)為ViBe算法檢測圖.檢測結果顯示有明顯的鬼影現象存在,并且目標檢測結果顯示不是較完整.圖7(c)為本文算法檢測結果,可以看到此時鬼影現象已經消除.其實檢測過程中鬼影只存在極短時間就已消失,且經過形態學處理之后幾乎不存在噪聲點,且目標更加完整.圖7(d)為真實前景. 通過ViBe算法處理的圖像序列在120幀左右時鬼影仍然存在,大大降低了目標檢測的準確性,給后續目標追蹤、目標行為分析造成了極大的困難.

(a) 原始圖像

(b) ViBe算法

(c) 本文算法

(d) 理想檢測圖

4.2 性能分析

為了定量分析本文算法與原ViBe算法的性能優劣,本文分別用兩種不同評價指標從不同角度對兩種算法性能進行評估.

首先,借鑒文獻[18]中采用的PCC指標對算法進行性能評估,其中公式為

(4)

其中,TP和TN分別表示正確檢測到的前景像素的個數和背景像素的個數;FN和FP分別表示誤判的前景像素的個數和背景像素的個數.

利用上述評判標準對本文使用的兩組視頻序列進行分析,表1為兩種算法處理本文視頻序列得到的結果(PCC數值愈接近100%,則算法檢測性能愈好).

表1 ViBe算法改進前后PCC 對比

然后,為了檢驗算法處理視頻序列的實時性,分別統計了兩種算法在兩組視頻中的平均幀率,最終的統計結果如表2所示.

表2 平均幀率統計結果

綜合表1和表2的實驗數據可以明顯看出,像素點的檢測準確率得到大幅度提升,但本文算法的處理速度則略低于原ViBe 算法,不過處理視頻序列的速度還是在可接受的范圍內,不影響實時檢測視頻的需求.

本文針對ViBe算法的不足進行了改進.首先,采用前m幀均值構建背景模型,解決了首幀圖像存在運動目標所造成的鬼影問題,提高了背景模型的準確性. 其次為了降低樣本集重復選取的概率,增加了樣本選取鄰域數目,同樣使得背景建模更加準確. 根據背景變化程度以及變化的速度,動態調整匹配半徑和背景更新因子. 然后通過引入最大類間方差法計算當前幀的最優分割閾值,對前景點進行二次判別提高前景點的檢測準確率,達到快速消除鬼影效果. 最后,對圖像進行形態學濾波處理,使提取的運動目標區域更加完整. 改進算Change Detection公共數據集上進行了試驗,與原ViBe運動目標檢測算法進行比較. 試驗結果表明,改進算法在滿足實時性視頻處理的同時,檢測精度得到大幅提高,能夠有效去除鬼影. 未來將進一步探索基于深度學習的目標檢測算法.

猜你喜歡
像素點像素背景
像素前線之“幻影”2000
“新四化”背景下汽車NVH的發展趨勢
基于局部相似性的特征匹配篩選算法
《論持久戰》的寫作背景
黑洞背景知識
“像素”仙人掌
一種X射線圖像白點噪聲去除算法
基于canvas的前端數據加密
圖像采集過程中基于膚色理論的采集框自動定位
高像素不是全部
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合