摘 要: 為了能快速提取視頻監(jiān)控中的運動目標,提出將ViBe算法與Canny邊緣檢測算法相結合快速準確提取運動目標的方法。該方法利用ViBe算法檢測運動目標,運用Canny算子提取運動目標邊緣輪廓,并將其與通過區(qū)域填充得到的精確運動目標相“與”,獲取運動目標準確的外邊界;通過膨脹、腐蝕、閉運算等數(shù)學形態(tài)學圖像處理,得到運動目標完整檢測區(qū)域,結合相對應視頻序列幀可以提取運動目標。實驗表明,該方法可以快速、實時地提取多運動目標。
關鍵詞: 運動目標提取;ViBe;Canny邊緣檢測;區(qū)域填充;形態(tài)學處理
0 引言
從視頻監(jiān)控數(shù)據(jù)中提取運動目標是視頻分析研究的難點和熱點問題之一。而運動目標提取的首要任務是運動目標檢測,目前常用的目標檢測方法有背景減除法[1]、光流法[2]和幀間差分法[3]3種。背景減除法運用最廣泛,2009年,BARNICH O等人提出一種新的背景減除算法——ViBe算法。該算法的優(yōu)點[4]是計算量小、速度快,但由于利用可能含有運動物體的視頻幀初始化背景模型,易引入拖影(Ghost)區(qū)域[5-6]。本文基于ViBe算法結合Canny算子及形態(tài)學圖像處理等技術,克服了ViBe算法前景檢測中出現(xiàn)鬼影和陰影的不足,可以更實時、快速、準確地提取運動目標。
1 ViBe算法
1.1 ViBe算法簡介
ViBe算法屬于像素域背景建模的前景檢測算法,但該算法與其他傳統(tǒng)背景建模前景檢測算法不同,主要區(qū)別在于背景模型的建立和背景更新策略[7]。
1.2 背景模型的建立
ViBe算法的背景模型建立工作是在第1幀完成的。首先,設視頻圖像中任一像素點A坐標為(x,y),在其鄰域內(nèi)隨機選取N個像素點組成一個樣本集合B={v1,v2,…,vn},構建背景模型,待測的像素點通過與模型中像素樣本值的比較來判斷是否屬于背景像素點。其實質(zhì)就是分類的問題,ViBe算法中采用了二維空間中的歐式距離來解決像素點的分類,具體方法是在以待測像素點為圓心,建立一個以R為半徑的圓。如圖1所示,背景模型中落在圓內(nèi)的像素點個數(shù)大于設定的閾值時,就將該像素點分類為背景像素。
1.3 模型的更新策略
ViBe算法的更新策略采用保守更新策略結合前景點計數(shù)的方法,得到的更新策略為:若某點像素屬于前景,則該點永遠都不會被更新為背景模型;再結合前景點計數(shù)方法,統(tǒng)計像素點,若某個像素點被持續(xù)N次檢測為前景,則該像素點被更新為背景。
2 Canny算子簡介
1986年,CANNY J在傳統(tǒng)的一階微分算子Poberts算子、Sobel算子、Prewitt算子及二階微分算子Laplace、LOG等算子的基礎上,對邊緣檢測的方法進行完善,提出了Canny邊緣檢測法[8]。Canny算法具有對噪聲的抗干擾性強,邊緣檢測較精細等優(yōu)點。滿足邊緣檢測的三個最優(yōu)準則是:(1)好的檢測;(2)好的定位;(3)低的錯誤檢測率。使用Canny邊緣檢測算法檢測圖像邊緣能有效地抑制噪聲同時又能較精確地確定邊緣的位置。其步驟如圖2所示。
3 ViBe算法與Canny算子結合提取運動目標
3.1 ViBe算法運動目標檢測效果及不足
ViBe算法對視頻序列幀處理得到運動目標檢測的效果圖如圖3所示。
圖3是對視頻第1幀進行初始化建模后的處理結果圖,由于本文視頻數(shù)據(jù)第1幀中已經(jīng)有運動目標出現(xiàn),因此ViBe算法檢測到的結果出現(xiàn)了鬼影(圖中灰色標記的部分)。
3.2 Canny算子邊緣檢測效果
采用Canny算子提取運動目標邊緣輪廓如圖4所示。此算法得到精確的運動目標邊緣,也包含背景邊緣。而ViBe算法背景檢測準確,檢測前景中不存在背景像素,故相與得到運動目標邊界是準確的。
3.3 算法流程
針對ViBe算法進行運動前景檢測和提取的不足,改正ViBe算法進行運動目標提取的缺點,提出將其結合Canny算子的方法,將兩者相與,得到精確運動前景邊界,消除了鬼影,也避免了拖影帶來的干擾,能夠比較精確地提取運動目標。圖5所示為兩種算法結合的程序流程圖。
該程序具體步驟如下:
?。?)對視頻系列幀進行灰度處理,把彩色圖像轉(zhuǎn)換為灰度圖;
?。?)利用ViBe算法進行運動目標檢測,從第2幀開始像素分類,檢測前景得到的運動目標檢測二值圖(程序中用矩陣表示);
(3)對步驟(2)得到的二值圖進行后區(qū)域填充,消除空洞,使得運動目標檢測較完整;
?。?)平滑去噪當前幀后進行邊緣檢測,得到運動目標的邊緣二值圖;
?。?)將上一步得到的運動目標邊緣和步驟(3)得到的運動目標檢測進行相與,得到運動目標的邊界;
(6)對步驟(5)得到的運動目標邊界進行膨脹處理及形態(tài)學處理后得到邊界連通的圖像,從而實現(xiàn)了運動目標提取。
4 實驗結果
實驗在電腦配置環(huán)境為Opencv2.4.8的VS2010下實現(xiàn)本文方法,視頻序列來自HighwayII.avi的一段高速路上監(jiān)控視頻,幀率為30幀/s,分辨率為320×240。為了證明本文算法的有效性,將其程序運行效果圖與原有ViBe算法檢測到的運動目標效果圖、Canny邊緣檢測效果圖進行對照,如圖6所示。
圖6的上下兩組圖中,上一組圖從左到右依次為視頻序列第256幀圖像的原始視頻幀圖像、ViBe算法檢測運動目標效果圖、Canny邊緣檢測效果圖、兩種算法結合相“與”運動邊界圖,以及運動邊界圖運用膨脹、區(qū)域填充等形態(tài)學圖像處理得到完整的目標提取區(qū)域圖。下一組圖是第382幀視頻序列圖的實驗結果,其所對應的目標檢測圖效果較第256幀要準確,但由這兩組最后提取區(qū)域圖可見,不管運動目標檢測中是否存在陰影和鬼影,最終本文的方法都能準確地提取運動目標。
5 結論
本文采用結合ViBe算法和Canny邊緣檢測算法提取運動目標的方法,利用當前幀的Canny算子與ViBe算法檢測出來的運動目標二值圖進行相“與”運算,得到比較準確的運動目標邊界,再通過膨脹等形態(tài)學圖像處理技術[9]得到連通的運動目標,從而順利實現(xiàn)了運動目標的提取。實驗證明,本文所用方法避免了ViBe算法運動目標檢測過程中遇到的鬼影和陰影等問題。由于ViBe前景檢測算法是一種快速運動目標檢測算法,使得該方法具有快速、實用和準確等優(yōu)點,實現(xiàn)了對監(jiān)控視頻中所有運動目標實時、快速的提取。
參考文獻
[1] GUPT S, MASOUND O, MARTIN R F K, et al. Detection and classification of vehicles[J]. IEEE Transactions on Intelliget Transportation Systems, 2002,3(1):37-47.
[2] Tao Jianguo, Yu Changhong. Real-time detection and tracking of moving object[C]. Second International Symposium on Intellignet Information Technology Application, IITA′08, 2008(2):860-863.
[3] TSAI D M, LAI S C. Independent component analysis-based background subtraction for indoor surveillance[J]. IEEE Transactions on Image Processing, 2009,18(1):158-160.
[4] BARNICH O, DROOGENBROECK M V. ViBe: a universal background subtraction algorithm for video sequences[J]. IEEE Transactions on Image Processing, 2011,20(6):1709-1724.
[5] 陳亮,陳曉竹,范振濤.基于Vibe的鬼影抑制算法[J].中國計量學院學報,2013,24(4):425-429.
[6] 余燁,曹明偉,岳峰.EVibe:一種改進的ViBe運動目標檢測算法[J].儀器儀表學報,2014,35(4):924-931.
[7] 鄭義洪,董超俊.基于ViBe和邊緣檢測結合的運動目標檢測[J].數(shù)字化用戶,2014(2):98-100.
[8] BRADSKI G, KAEHLER A.學習OpenCV(中文版)[M].于仕琪,劉瑞禎,譯.北京:清華大學出版社,2009.
[9] 龐首顏,張元勝.基于三幀差分及Canny算子的運動目標提取[J].重慶工商大學學報,2013,30(5):57-61.