徐 赟, 彭 勇, 胡旻濤
(江南大學 物聯(lián)網(wǎng)工程學院,江蘇 無錫 214122)
在智能視頻監(jiān)控領(lǐng)域,背景模型的建立對算法的檢測精度至關(guān)重要,是目標分類、目標跟蹤和行為分析等后續(xù)處理的基礎(chǔ)[1]。然而在建立背景模型時會面臨各種挑戰(zhàn)[2]:如光照的改變、天氣的好壞、樹葉的干擾、相機的抖動等。 視覺背景提取(visual background extraction,ViBe)算法是一種基于非參數(shù)的背景模型,算法首次將隨機聚類技術(shù)引入到背景模型中,使用視頻序列的第一幀初始化背景模型,從第二幀開始即可檢測出運動物體。與混合高斯模型[4](Gaussian mixture model,GMM)和碼本[5](code-book,CB)算法相比,該算法因簡單、高效而被廣泛應(yīng)用和研究。
本文深入分析了ViBe算法的工作原理及不足,并進行了以下改進:在算法初始化中,統(tǒng)計出靜止的前景像素點占前景塊的百分比,當統(tǒng)計結(jié)果大于給定閾值時,則檢測該像素為背景像素并將其更新到背景模型中,有效抑制鬼影;在前景檢測階段,根據(jù)實際場景的動態(tài)程度自適應(yīng)調(diào)整聚類閾值,提高了對動態(tài)場景的適應(yīng)能力。
ViBe算法根據(jù)相鄰像素具有時空一致性原理,采用樣本隨機聚類的方法,隨機選取像素鄰域內(nèi)的N個像素值建立樣本模型,將當前幀像素與樣本模型對比,檢測出運動目標,具有較好的實時性和魯棒性。具體步驟如下:
1)模型初始化
ViBe算法使用視頻序列的第一幀進行初始化,為每個像素建立樣本模型
M(x)={v1,…,vi,…,vN}
(1)
式中vi∈NG(v(x))為v(x)鄰域內(nèi)索引為i的像素值;N為背景模型所選取的樣本容量。ViBe算法從x的8鄰域內(nèi)隨機選擇20個樣本值建立樣本模型。
2)前景檢測
首先定義一個以v(x)為圓心,R為半徑的圓SR(v(x)),如圖1所示。以SR(v(x))與背景模型M(x)的交集判斷當前像素v(x)與樣本模型中vi是否相似,其匹配過程為
#R=SR(v(x))∩{v1,…,vi,…vN}
(2)
當v(x)與M(x)匹配的樣本數(shù)大于閾值時,將v(x)分類成背景像素點;反之,為前景像素點。分類過程為
(3)
背景像素算法中R取值為20, #min取值為2。
3)背景模型更新策略
ViBe算法采用保守更新策略和隨機策略對背景模型更新。對于容量為N的樣本模型,在時間間隔dt內(nèi),樣本點依舊存在的概率P隨時間變化的關(guān)系
P(t,t+dt)=e-ln(N/(N-1))dt
(4)
說明樣本模型中每個像素點的生命周期與時間t無關(guān)且呈指數(shù)衰減。
圖1 二維歐氏空間中像素分類
ViBe算法首次引入隨機聚類的方法,具有簡單、運算量小等優(yōu)點,但仍存在不足:1) 在初始化過程中,如果視頻序列第一幀中存在前景物體,原算法會將前景點作為背景像素初始化背景模型,產(chǎn)生“鬼影”,導(dǎo)致誤檢;2)算法中采用全局閾值對背景進行聚類,對靜態(tài)場景有較好的檢測效果,但對于戶外復(fù)雜動態(tài)的場景(如晃動的樹葉、波動的水面、噴泉等)適應(yīng)能力較差。
鬼影[6]是指與實際的運動目標不對應(yīng)的前景區(qū)域。目前檢測鬼影的算法可以分為兩類:1)判斷前景的運動屬性;2)利用自適應(yīng)背景維護和更新[7]。本文提出前景像素計數(shù)的方法抑制鬼影,記錄一幀圖像At在t時刻前景塊MOV中像素點被檢測為靜止的次數(shù),計算過程為
(5)
式中SD(i,j)為相鄰幀在同一位置上像素值的絕對差值;TSD為閾值,取值為20。當SD(i,j)小于預(yù)設(shè)閾值則認為該像素是靜止的。當前景塊像素滿足式(6)時檢測該前景塊鬼影
(6)
式中MOVt為t時刻的前景塊;Nt為前景塊的像素總數(shù);Tghost為鬼影判斷閾值。根據(jù)文獻[8],取值為0.95。不等式左側(cè)表示被檢測為靜止像素的個數(shù)占整個前景塊像素的百分比,當大于設(shè)定閾值Tghost時,說明該前景塊為鬼影。鬼影在更新過程中被作為背景像素處理,實現(xiàn)鬼影消除。
在ViBe算法中,采用全局固定閾值對前景進行分割,導(dǎo)致了算法對戶外動態(tài)場景的適應(yīng)性差。當閾值設(shè)置過大時,容易將與背景像素相似的前景點誤檢為背景;當閾值設(shè)置過小時,在檢測結(jié)果中容易增加很多噪聲,因此閾值的選擇對提高算法的檢測精度至關(guān)重要[7]。文獻[9]提出了閾值的大小與樣本集方差成正比,可以根據(jù)場景的復(fù)雜度動態(tài)地調(diào)整檢測閾值,由此,本文提出了基于全局閾值與鄰域像素信息結(jié)合的自適應(yīng)閾值算法。具體實現(xiàn)步驟如下:
1)計算樣本集標準差σt(x,y)。計算背景模型中樣本的平均灰度值μt(x,y)
(7)
(8)
2)求判定條件
T=μt(x,y)+kσt(x,y)
(9)
式中k為常數(shù),一般取[2,6]。
3)獲得自適應(yīng)閾值R(x,y)為
(10)
本算法在硬件平臺Intel Core i5,內(nèi)存為4 GB,軟件開發(fā)環(huán)境為Windows7,Visual Studio 2010和OpenCV 2.4.8下完成測試。選changedetection[10]數(shù)據(jù)集Canoe,pedestrians,overpass等視頻序列進行測試。實驗選用了3種代表性的背景建模算法GMM,CB,ViBe與本文算法進行對比。
利用本文算法對pedestrians視頻序列進行檢測,該視頻序列是行人在路上行走的監(jiān)控圖像。在第506幀時,靜止的行人開始運動,ViBe算法在背景初始化時在行人原始位置產(chǎn)生了鬼影。從圖2中可以看出,在第521,605幀和654幀中,ViBe算法的檢測結(jié)果中在行人的原靜止位置處產(chǎn)生了鬼影,而本文算法在15幀以后抑制了鬼影。本文算法能夠有效地消除鬼影,提高了算法的檢測精度。
圖2 本文算法與ViBe算法鬼影消除對比
為了驗證本文算法在動態(tài)背景下的適應(yīng)能力,選取數(shù)據(jù)集中的Canoe視頻序列進行驗證,該視頻是水面不斷波動的動態(tài)畫面。對比結(jié)果如圖3中,可以看出:ViBe算法的檢測結(jié)果中將原本屬于背景的水面錯誤地檢測為前景,導(dǎo)致在檢測結(jié)果中存在大量的噪聲像素;在本文算法的檢測結(jié)果中噪聲像素點數(shù)量明顯減少,波動的水面幾乎完全被準確檢測為背景,有效地解決了動態(tài)背景的干擾問題,提高了算法的適應(yīng)能力。
圖3 本文算法與ViBe算法在動態(tài)場景下的檢測對比
為了進一步驗證本文算法在動態(tài)背景下的檢測效果,選取了changedetection中overpass測試視頻。該序列是行人走在天橋的監(jiān)控視頻,在第2 380幀時,靜止的行人開始運動,視頻背景中樹葉晃動,對前景檢測產(chǎn)生了較大干擾。 圖4給出了GMM算法、CodeBook算法、ViBe算法和本文算法的檢測效果。可以看出:GMM,CodeBook和ViBe算法均將背景中劇烈晃動的樹葉誤檢為前景像素點,在檢測結(jié)果中產(chǎn)生大量的噪聲點,本文算法根據(jù)場景的復(fù)雜程度動態(tài)地調(diào)整分割閾值,可以很好地消除動態(tài)場景的干擾;另外由于視頻序列中靜止的行人開始運動,ViBe算法在檢測過程中產(chǎn)生了鬼影,影響檢測結(jié)果,本文算法采用的前景點計數(shù)方法有效消除了鬼影。
圖4 4種算法在戶外動態(tài)場景下檢測結(jié)果
為了更加精確地評價幾種算法的性能,采用準確率(Precision,PR)、查全率(Recall,RE)和F測度( F-measure,FM)作為評價指標[11]
RE=TP/(TP+FN)
(11)
PR=TP/(TP+FP)
(12)
FM=2·PR·RE/(PR+RE)
(13)
式中TP為正確檢測為前景像素的點數(shù);FP為背景被誤檢為前景像素的點數(shù);FN為前景被誤檢為背景像素的點數(shù)。RE,PR,F(xiàn)M的值越大,說明算法的檢測效果越好。對4種算法的RE,PR和FM求平均值,評價結(jié)果如表1所示。
表1 4種算法的評價結(jié)果
從表1可以看出:本文算法的查全率RE低于ViBe算法,這是由于本文算法未進行圖像預(yù)處理和后期的形態(tài)學處理,所以檢測結(jié)果中存在空洞,但是本文的準確率PR以及綜合指標FM高于其他算法。
針對ViBe算法容易產(chǎn)生鬼影以及對動態(tài)場景適應(yīng)性差的問題做出了改進。與幾種背景建模算法相比,本文算法檢測效果明顯優(yōu)于其他算法。下一步將進行空洞修復(fù)等后期的形態(tài)學處理,以得到完整的前景運動目標。
[1] 王 閃,吳 秦.全局運動補償?shù)膭討B(tài)背景下運動軌跡跟蹤算法[J].傳感器與微系統(tǒng),2016,35(8):137-140.
[2] 伍健榮,杜向龍,劉海濤.一種基于Kalman濾波器的自適應(yīng)背景建模改進算法[J].傳感器與微系統(tǒng),2012,31(1):52-54.
[3] Barnich O,van Droogenbroeck M.ViBe:An universal background subtraction algorithm for video sequences[J].IEEE Transactions on Image Processing,2011,20(6):1709-1724.
[4] 邱聯(lián)奎,劉啟亮,趙予龍,等.混合高斯背景模型目標檢測的一種改進算法[J].計算機仿真,2014(5):378-384.
[5] Kim K,Chalidabhongse T H,Harwood D,et al.Real-time foreground-background segmentation using codebook model[J].Real-time Imaging,2005,11(3):172-185.
[6] 徐久強,江萍萍,朱宏博,等.面向運動目標檢測的ViBe算法改進[J].東北大學學報:自然科學版,2015,36(9):1227-1231.
[7] 莊哲民,章聰友,楊金耀,等.基于灰度特征和自適應(yīng)閾值的虛擬背景提取研究[J].電子與信息學報,2015,37(2):346-352.
[8] 蘇延召,李艾華.改進視覺背景提取模型的運動目標檢測算法[J].計算機輔助設(shè)計與圖形學學報,2014,26(2):232-240.
[9] Hofmann M,Tiefenbacher P,Rigoll G.Background segmentation with feedback:The pixel-based adaptive segmenter[C]∥Proceedings of the 2012 IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops,CVPRW 2012,Washington DC:IEEE Computer Society,2012:38-43.
[10] Goyette N,Jodoin P,Porikli F,et al.Change detection.net:A new change detection benchmark dataset[C]∥Proceedings of the 2012 IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops,CVPRW 2012,Washington DC:IEEE Computer Society,2012:1-8.
[11] Agarwal S,Awan A,Roth D.Learning to detect objects in images via a sparse,part-based representation[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2004,26(11):1475-1490.