張 杜,陳元枝,邱憑婷
(桂林電子科技大學 電子工程與自動化學院,廣西 桂林 541004)
從視頻監控數據中提取運動目標是視頻分析研究的難點和熱點問題之一。而運動目標提取的首要任務是運動目標檢測,目前常用的目標檢測方法有背景減除法[1]、光流法[2]和幀間差分法[3]3種。背景減除法運用最廣泛,2009年,BARNICH O等人提出一種新的背景減除算法——ViBe算法。該算法的優點[4]是計算量小、速度快,但由于利用可能含有運動物體的視頻幀初始化背景模型,易引入拖影(Ghost)區域[5-6]。本文基于ViBe算法結合Canny算子及形態學圖像處理等技術,克服了ViBe算法前景檢測中出現鬼影和陰影的不足,可以更實時、快速、準確地提取運動目標。
ViBe算法屬于像素域背景建模的前景檢測算法,但該算法與其他傳統背景建模前景檢測算法不同,主要區別在于背景模型的建立和背景更新策略[7]。
ViBe算法的背景模型建立工作是在第1幀完成的。首先,設視頻圖像中任一像素點A坐標為(x,y),在其鄰域內隨機選取N個像素點組成一個樣本集合 B={v1,v2,…,vn},構建背景模型,待測的像素點通過與模型中像素樣本值的比較來判斷是否屬于背景像素點。其實質就是分類的問題,ViBe算法中采用了二維空間中的歐式距離來解決像素點的分類,具體方法是在以待測像素點為圓心,建立一個以R為半徑的圓。如圖1所示,背景模型中落在圓內的像素點個數大于設定的閾值時,就將該像素點分類為背景像素。

圖1 ViBe算法背景模型
ViBe算法的更新策略采用保守更新策略結合前景點計數的方法,得到的更新策略為:若某點像素屬于前景,則該點永遠都不會被更新為背景模型;再結合前景點計數方法,統計像素點,若某個像素點被持續N次檢測為前景,則該像素點被更新為背景。
1986年,CANNY J在傳統的一階微分算子Poberts算子、Sobel算子、Prewitt算子及二階微分算子 Laplace、LOG等算子的基礎上,對邊緣檢測的方法進行完善,提出了Canny邊緣檢測法[8]。Canny算法具有對噪聲的抗干擾性強,邊緣檢測較精細等優點。滿足邊緣檢測的三個最優準則是:(1)好的檢測;(2)好的定位;(3)低的錯誤檢測率。使用Canny邊緣檢測算法檢測圖像邊緣能有效地抑制噪聲同時又能較精確地確定邊緣的位置。其步驟如圖2所示。

圖2 Canny邊緣檢測步驟
ViBe算法對視頻序列幀處理得到運動目標檢測的效果圖如圖3所示。

圖3 運動目標檢測效果圖
圖3 是對視頻第1幀進行初始化建模后的處理結果圖,由于本文視頻數據第1幀中已經有運動目標出現,因此ViBe算法檢測到的結果出現了鬼影(圖中灰色標記的部分)。
采用Canny算子提取運動目標邊緣輪廓如圖4所示。此算法得到精確的運動目標邊緣,也包含背景邊緣。而ViBe算法背景檢測準確,檢測前景中不存在背景像素,故相與得到運動目標邊界是準確的。

圖4 采用Canny算子提取運動目標邊緣輪廓
針對ViBe算法進行運動前景檢測和提取的不足,改正ViBe算法進行運動目標提取的缺點,提出將其結合Canny算子的方法,將兩者相與,得到精確運動前景邊界,消除了鬼影,也避免了拖影帶來的干擾,能夠比較精確地提取運動目標。圖5所示為兩種算法結合的程序流程圖。

圖5 算法流程圖
該程序具體步驟如下:
(1)對視頻系列幀進行灰度處理,把彩色圖像轉換為灰度圖;
(2)利用 ViBe算法進行運動目標檢測,從第2幀開始像素分類,檢測前景得到的運動目標檢測二值圖(程序中用矩陣表示);
(3)對步驟(2)得到的二值圖進行后區域填充,消除空洞,使得運動目標檢測較完整;
(4)平滑去噪當前幀后進行邊緣檢測,得到運動目標的邊緣二值圖;
(5)將上一步得到的運動目標邊緣和步驟(3)得到的運動目標檢測進行相與,得到運動目標的邊界;
(6)對步驟(5)得到的運動目標邊界進行膨脹處理及形態學處理后得到邊界連通的圖像,從而實現了運動目標提取。
實驗在電腦配置環境為Opencv2.4.8的VS2010下實現本文方法,視頻序列來自HighwayII.avi的一段高速路上監控視頻,幀率為 30幀/s,分辨率為 320×240。為了證明本文算法的有效性,將其程序運行效果圖與原有ViBe算法檢測到的運動目標效果圖、Canny邊緣檢測效果圖進行對照,如圖6所示。

圖6 實驗效果對照圖
圖6 的上下兩組圖中,上一組圖從左到右依次為視頻序列第256幀圖像的原始視頻幀圖像、ViBe算法檢測運動目標效果圖、Canny邊緣檢測效果圖、兩種算法結合相“與”運動邊界圖,以及運動邊界圖運用膨脹、區域填充等形態學圖像處理得到完整的目標提取區域圖。下一組圖是第382幀視頻序列圖的實驗結果,其所對應的目標檢測圖效果較第256幀要準確,但由這兩組最后提取區域圖可見,不管運動目標檢測中是否存在陰影和鬼影,最終本文的方法都能準確地提取運動目標。
本文采用結合ViBe算法和Canny邊緣檢測算法提取運動目標的方法,利用當前幀的Canny算子與ViBe算法檢測出來的運動目標二值圖進行相“與”運算,得到比較準確的運動目標邊界,再通過膨脹等形態學圖像處理技術[9]得到連通的運動目標,從而順利實現了運動目標的提取。實驗證明,本文所用方法避免了ViBe算法運動目標檢測過程中遇到的鬼影和陰影等問題。由于ViBe前景檢測算法是一種快速運動目標檢測算法,使得該方法具有快速、實用和準確等優點,實現了對監控視頻中所有運動目標實時、快速的提取。
[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 IntellignetInformation Technology Application,IITA′08,2008(2):860-863.
[3]TSAI D M,LAI S C.Independent component analysisbased 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].數字化用戶,2014(2):98-100.
[8]BRADSKI G,KAEHLER A.學習 OpenCV(中文版)[M].于仕琪,劉瑞禎,譯.北京:清華大學出版社,2009.
[9]龐首顏,張元勝.基于三幀差分及Canny算子的運動目標提取[J].重慶工商大學學報,2013,30(5):57-61.