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