近年來,隨著我國職業院校的不斷發展,校園建筑面積和規模逐步擴大,校園的流動人口大量增加,治安形勢錯綜復雜,做好校園的安保工作,僅靠簡單的增加人力和物力,采取常規的防范措施已經很難適應新形勢的需要。為了加強校園安全防范整體力量,有效保護校園與學生的財產安全,利用先進的科技手段建立一套功能完善、覆蓋范圍廣泛的監控系統是維護學生正常學習、生活,創造平安校園的必要條件。
智能視頻監控是綜合利用圖像處理、機器視覺和計算機視覺知識進行研究的一個新興的研究方向和備受關注的前沿課題。與傳統的模擬監控不同,智能監控系統能實時的對攝像機捕捉到的視頻序列進行處理和分析,自動完成動態目標的檢測、識別和跟蹤,并在此基礎上可以進一步對目標的行為進行分析和理解。本文構建的校園智能視頻監控系統利用OpenCV實現了對視頻圖像中動態目標的行為快速有效地進行監控和分析,并實現了對動態目標的精確跟蹤。
OpenCV是Intel公司開發的用于數字圖像處理和計算機視覺的函數庫[1]。它由一系列C函數和少量C++類構成,實現了圖像處理和計算機視覺方面的很多通用算法。OpenCV其源代碼完全開放,運行速度快,由于具有良好的可移植性和統一的結構及其穩定性,因此可以縮短系統設計的開發周期,使系統運行更加穩定。
鑒于OpenCV的特點,它主要用于對視頻圖像進行一些高級處理,如人臉識別、動態跟蹤、圖像分割及人機互動等。
當動態目標出現在可視范圍內,首先通過背景差分法將前景圖像與背景圖像分離,再對差值進行二值化判斷,利用給定的閾值去除噪聲等干擾后,從場景中檢測出動態目標。與之前檢測出的目標做特征比對,如果是新目標則加入到跟蹤序列中,如果是舊目標則舍棄。目標跟蹤階段,對跟蹤序列中的目標采用CamShift跟蹤算法,提取目標特征信息,并獲得其運動軌跡,對目標進行實時跟蹤。其關鍵點在于目標的特征信息提取和匹配,這是決定目標跟蹤效果的重大因素。
動態目標檢測是校園智能視頻監控系統的重要組成部分。動態目標檢測的主要目的是從視頻圖像中實時的提取出動態目標并獲得動態目標的特征信息,如色彩、形狀、輪廓等[2]。動態目標提取的過程就是在連續的視頻圖像序列中尋找差異,并把由于目標運動和表現出來的差異提取出來。
動態目標檢測常用的有四種常用方法:連續幀間差分法、背景差分法、光流法和運動能量法[3]。由于背景差分法具有實現簡單,運算速度快,因此最常用。它通過當前幀圖像與背景圖像相減并提取出感興趣區域來檢測動態目標,固定場景下應用背景差分法進行動態目標檢測,關鍵在于創建和維護一個可靠的背景。針對這種情況,背景模型應運而生。評價一個好的背景模型,應該從兩個方面進行考慮:第一,背景模型對背景變化的響應速度要足夠快;第二,背景模型對運動目標要有較強的抗干擾能力。
3.2.1 提取前景圖像
假設環境溫度不變,視頻圖像的背景也不變,當動態目標出現時.圖像相應像素點的灰度值會發生明顯的改變,利用圖像減法就可以得到差分灰度圖像[4]。差分灰度圖像包含了動態目標信息,相對于背景圖像又稱之為前景圖像。相減的結果中每一像素的值和一個預先設定的閾值相比較,若這個像素的值大于閾值,則認為這點是前景圖像,否則是背景圖像。假設利用圖像平均法可得到當前背景圖像BK(x,y),當前的輸入圖像為CK(x,y),則前景圖像DK(x,y)可以表示為當前圖像與背景圖像差的絕對值即:DK(x,y)=|CK(x,y)-BK(x,y)|
3.2.2 差分圖像二值化
選取T為閾值,對差分圖像進行二值化[5]:

其中,EK為進行二值化后的圖像,當差分圖像中像素值大于某一給定的閾值T時,則認為該像素為前景像素,即認為該像素可能為目標上的一點,反之則認為是背景像素。
在OpenCV中,差分圖像的二值化是由函數void cvTheshold實現的。
由于背景差分法受外界光線的變化、背景中含有輕微擾動的對象,如樹枝、樹葉的搖動等的影響,因此對前景圖像還要進行一系列的圖像處理。包括:平滑處理,形態學膨脹、腐蝕,二值化操作,輪廓提取等。但是并不是所有的輪廓都是由目標產生的,有些是目標的子輪廓或者是噪聲產生的輪廓,因此必須對輪廓進行篩選,淘汰偽目標的輪廓,把目標輪廓篩選出來后加入到跟蹤隊列。
在校園智能視頻監控系統中,動態目標跟蹤起著承上啟下的作用,它是利用圖像處理和計算機視覺等相關技術對視頻圖像序列進行處理和分析,在連續的圖像序列中找到動態目標的位置和相關信息,比如動態目標的速度、形狀等。為了實現該功能,本文采用了OpenCV中的CamShift目標跟蹤算法。它主要通過視頻圖像中動態目標的顏色信息來達到跟蹤的目的。
3.3.1 CamShift算法簡介
Gary R.Bradski提出的CamShift算法,是以顏色直方圖為目標模式的目標跟蹤算法,是對MeanShift算法的改良,可以有效地解決目標變形和部分遮擋的問題,而且運算效率很高。它的基本思想是將視頻圖像的所有幀做MeanShift運算,將上一幀的運算信息作為搜索窗口的初始值,并將初始值作為對下一幀圖像運算的輸入,進行迭代后實現對動態目標在每一幀圖像序列中的連續跟蹤。由于RGB顏色空間對光照亮度變化比較敏感,為了減少光照亮度變化對跟蹤效果的影響,CamShift算法將圖像由RGB顏色空間轉化到HSV顏色模型,方便對動態目標特征的提取。
3.3.2 CamShift算法實現
在OpenCV庫中,CvCamShiftTracker類就是用來實現CamShift算法的,使得進行二次開發變得很簡單[7]。
其中,prob_image為目標直方圖的反向投影;Window為初始搜索窗口;criteria為確定窗口搜索停止的準則;comp為生成的結果,包含收斂的搜索窗口坐標(comp→rect字段)與窗口內部所有像素點的和(comp→area字段);box為目標的最小矩形。如果非NULL,則包含目標的尺寸和方向。
利用該函數,在VC++2010開發環境下,就很容易實現CamShift算法跟蹤動態目標。
本文設計的基于OpenCV的校園智能視頻監控系統,由于其較低的計算復雜度和較高的魯棒性,具有廣闊的應用前景。采用了背景差分法作為動態目標檢測的方法。檢測是跟蹤的前提,檢測結果的精確性直接影響跟蹤的可靠性。利用CamShift跟蹤算法提取每個動態目標的顏色特征信息,實現對多個動態目標的精確跟蹤,最后將動態目標的輪廓和運動軌跡描述出來。
該系統平臺簡單,大大縮短工作人員的開發周期,只需根據不同的需要進行簡單的改進,就可以實現多種場合的不同應用。實驗證明,系統運行穩定,檢測結果真實可靠,具有較高的精確度。
[1]Gary Bradski,Adrian Kaehler.學習OpenCV[M].北京:清華大學出版社,2009.
[2]譚歆,武岳.基于OpenCV的運動目標檢測方法研究與應用[J].視頻應用與工程,2010,34(S1):184-187.
[3]尹俊超,劉直芳.基于OpenCV的運動目標檢測與跟蹤[J].計算機工程與設計,2011,32(8):2817-2820.
[4]林洪文,姚作,涂丹,李國輝.基于減背景技術的運動目標檢測方法研究[J].國防科技大學學報,2003,25(3):66-69.
[5]侯宏錄,李寧烏,劉迪迪,陳杰.智能視頻監控中運動目標檢測的研究[J].計算機技術與發展,2012,22(2):49-52.
[6]鄒鐵軍,張書偉,蔣杰,閆保中.基于OpenCV的運動目標定位跟蹤系統軟件設計[J].智能計算機與應用,2012,2(3):60-63.
[7]李振偉,陳種,趙有.基于OpenCV的運動目標跟蹤及其實現[J].科學計算及信息處理,2008,20:128-130.