摘 要 傳統(tǒng)的預(yù)警系統(tǒng)智能化有待提高,因此預(yù)警效果不太顯著,本文提出了一種基于OpenCV技術(shù)的預(yù)警系統(tǒng),該系統(tǒng)是基于圖像和視頻處理的運動檢測和目標(biāo)跟蹤相關(guān)技術(shù)的基礎(chǔ)上,重點研究了運動物體(行人)危險檢測技術(shù)的基本原理和實現(xiàn)算法,應(yīng)用OpenCV設(shè)計了一個預(yù)警系統(tǒng),可以實現(xiàn)智能交通控制、智能視頻監(jiān)控等。
關(guān)鍵詞 OpenCV 運動檢測 預(yù)警系統(tǒng)
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A
0背景
在日常生活中,存在著很多安全問題,若能有效地分析人的行為,而進(jìn)行預(yù)警,可很好地防盜竊等。例如當(dāng)監(jiān)控場景中的物體被偷盜或者移動時,算法將自動檢測這種動作并產(chǎn)生警報,常用于貴重物品和關(guān)鍵設(shè)備的監(jiān)控;本文使用智能視頻監(jiān)控系統(tǒng),利用計算機(jī)對數(shù)字視頻圖像進(jìn)行智能化處理,結(jié)合計算機(jī)科學(xué)、機(jī)器視覺、圖像處理、模式識別、人工智能等多種學(xué)科,把視頻數(shù)據(jù)經(jīng)過幀處理,運動檢測、目標(biāo)分類、目標(biāo)跟蹤和行為理解等步驟,提取出高級的語義信息,從而指導(dǎo)和規(guī)劃行動,實現(xiàn)高層次的人工智能。本文研究的重點是對智能視頻監(jiān)控中行人危險行為的檢測和跟蹤。
1運動目標(biāo)檢測基本思路
本預(yù)警系統(tǒng)在對視頻錄入的幀圖像進(jìn)行二值化的基礎(chǔ)上,通過相鄰圖像間的差進(jìn)行運動檢測,運用OpenCV中函數(shù)提取運動目標(biāo)的輪廓,并對其進(jìn)行違規(guī)判斷。由于錄入視頻中運動物體種類繁多,通過面積大小及運動的規(guī)律性,對運動物體進(jìn)行性質(zhì)判斷,確定是否為檢測目標(biāo),再對運動目標(biāo)進(jìn)行進(jìn)一步處理。
研究運動目標(biāo)檢測時,由于背景的變化較小,故采用幀差法檢測運動目標(biāo)。首先是將連續(xù)的視頻處理成分割的幀圖像,得到幀圖像之后做差得到差圖像,然后對差圖像進(jìn)行一系列的圖像處理。包括:二值化,平滑處理,形態(tài)學(xué)膨脹,輪廓提取。然而并非全部輪廓都是由目標(biāo)產(chǎn)生,背景的擾動、噪聲的影響使結(jié)果中出現(xiàn)一些背景區(qū)域像素點被檢測為運動區(qū)域。為消除這些影響,首先將上述結(jié)果用形態(tài)學(xué)方法進(jìn)行處理,找出處理后的連通域,拋棄面積小于一定值的區(qū)域。
2運動目標(biāo)的跟蹤
運動目標(biāo)的跟蹤是智能視頻監(jiān)控系統(tǒng)中基本且關(guān)鍵的部分,它銜接了運動目標(biāo)檢測和目標(biāo)行為分析理解,是在檢測運動目標(biāo)的基礎(chǔ)上,來區(qū)分運動目標(biāo)并獲得其運動軌跡。主要思路是系統(tǒng)在檢測到運動目標(biāo)后,對運動目標(biāo)的特征進(jìn)行提取,以識別運動目標(biāo)的種類、大小、運動方向以及其他特征信息,從而進(jìn)行跟蹤。同時也可以根據(jù)運動軌跡判斷運動目標(biāo)是否存在違章行為,或者檢測出在敏感區(qū)域中一直徘徊的可疑運動目標(biāo)。
在分析了多種目標(biāo)跟蹤方法的基礎(chǔ)上,我們選擇使用基于特征跟蹤的方式進(jìn)行目標(biāo)跟蹤。選擇應(yīng)用圖像處理函數(shù)cvFindContours()提取目標(biāo)輪廓信息,此函數(shù)可以得到運動目標(biāo)的輪廓偏移量及長度寬度,根據(jù)這些數(shù)據(jù),我們可以得到運動目標(biāo)的中心
點,比較其與檢測區(qū)或者敏感區(qū)的位置關(guān)系,繼續(xù)后續(xù)的檢測。其跟蹤的詳細(xì)設(shè)計為:
(1)根據(jù)視頻圖像中具體情況,確定檢測區(qū)。實際操作時,我們需要根據(jù)圖像一步一步調(diào)整檢測線的位置,確保與實際相符。
(2)運動目標(biāo)特征值提?。簯?yīng)用cvFindContours()后,運動目標(biāo)的特征值、偏移量及長寬,會存儲在對應(yīng)的變量內(nèi)。
(3)根據(jù)特征值,偏移量及長度寬度,就可以確定運動目標(biāo)的中心點。
但對于多個物體的跟蹤,中心點的存儲直接影響軌跡繪制時的正確性。當(dāng)只有單個運動物體時,可以通過一維數(shù)組直接存儲;要是有多個運動物體或者不定個數(shù)的運動物體,就需要二維數(shù)組存儲中心點坐標(biāo);在cvFindContours()存儲有中心點坐標(biāo)時,將中心點坐標(biāo)利用行對應(yīng)存儲進(jìn)二維數(shù)組,由于對應(yīng)列并不是表示同意運動物體,需要對數(shù)組的存儲數(shù)據(jù)進(jìn)行更改,通過交換的方式達(dá)到對應(yīng)行對應(yīng)列,存儲的是對應(yīng)的運動目標(biāo)的目的。
(4)智能檢測:將中心點的位置與檢測區(qū)對比,確定是否違規(guī)。需要應(yīng)用線性規(guī)劃,通過點與區(qū)間位置關(guān)系綜合實現(xiàn)。
(5)軌跡繪制:運動物體特征值中心點在檢測區(qū)內(nèi),警示違規(guī),應(yīng)用cvRectangle()繪制紅色輪廓;運動物體特征值中心點在檢測區(qū)外正常,應(yīng)用cvRectangle()繪制綠色輪廓。
3結(jié)論
基于OpenCV技術(shù)的預(yù)警系統(tǒng),選用幀間差分法進(jìn)行檢測,跟蹤方式是特征值跟蹤,進(jìn)行幀間差分,二值化,圖像平滑處理,形態(tài)學(xué)膨脹,去除背景椒鹽噪聲,輪廓特征值提取,軌跡繪制。實現(xiàn)幀間差分時,需要首先實現(xiàn)圖像灰度處理(函數(shù)cvCvtColor()),再應(yīng)用cvAbsDiff()函數(shù)實現(xiàn)對相鄰兩幀的圖像對應(yīng)像素點像素值做差,如果視頻中有運動物體,其邊界處的像素點相鄰兩幀的差值結(jié)果非零,其他無運動區(qū)域相鄰差值為零。
參考文獻(xiàn)
[1] Davd A.Forsyth , Jean Ponce.計算機(jī)視覺——一種現(xiàn)代方法[M].林學(xué)訚,王宏等,譯.電子工業(yè)出版社,2004.
[2] 張蕊,羅中明.基于機(jī)器視覺的跟蹤目標(biāo)距離研究.哈爾濱理工大學(xué),2011,33(4):101-131.
[3] 布拉德斯基(Bradski.G.),克勒(Kaehler.A.)著,于仕琪,劉瑞禎譯.學(xué)習(xí)OpenCV(中文版) 第1版.清華大學(xué)出版社,2009.10.1.
[4] 劉瑞禎,于仕琪.OpenCV教程——基礎(chǔ)篇.北京航空航天大學(xué)出版社,第1版 2007.6.1.
[5] 萬衛(wèi)兵,霍宏,趙宇明.智能視頻監(jiān)控中目標(biāo)檢測與識別,上海交通大學(xué)出版社,第1版.2010.1.1.