邱鵬瑞
(1.昆明理工大學國土資源工程學院 昆明 650093)(2.昆明冶金高等專科學校 昆明 650033)
隨著視頻數據錄制傳輸技術的發展和人們對安全監控的需求,視頻監控系統得到了長足的發展。視頻監控有著許多優點,采集后的視頻數據能夠讓人觀測到監控環境中所發生的實時情況,能夠有效觀測并預防突發危險事件,同時視頻數據易于存儲傳輸的特性使得危險防范、取證成為可能[1]。傳統視頻監控系統,采用人工方式對監控視頻進行持續監視,這樣會耗費大量人力資源,而且長時間監視會導致值守人員出現注意力分散,重要情報及線索不能有效及時識別的情況[2]。為了解決諸如此類的問題,利用計算機視覺技術進行視頻監測,根據視頻數據的內容進行自動化判斷異常情況并預警的相關技術成為研究的熱點。目前,隨著物聯網和人工智能的發展,視頻監控技術的需求也在不斷擴大,經過不斷的迭代升級,視頻監測更加的智能化、標準化和專業化[3~4]。例如美國著名的 Ob?ject Video公司開發的智能監控系統可以實現警戒區的智能報警,瑞典的Axis公司研發的用于視頻監控的智慧交通系統等都是當前技術條件下相對成熟的智能視頻監控系統[5]。在我國,視頻監測相關技術的研發不斷發展,產生了諸如Anychat和黃金眼等智能安防監控產品,也誕生了海康威視和浙江大華等視頻監控的領軍公司[6]。本文研究主要基于OpenCV開源和跨平臺技術,對OpenCV函數庫中的圖像處理與視覺算法進行研究,實現對視頻中各幀圖像進行預處理與自動分析判斷,并對監測目標進行跟蹤與檢測,對核定目標基本行為閾值化最終判斷是否發出預警信息。與傳統監控系統相比,該系統可以實現無人值守智能化監控,并大大降低相關硬件配置和人工成本且部署復雜度較低。
系統硬件由主機、視頻采集攝像頭、網絡設備和存儲介質組成。軟件系統架構在主機上,通過攝像采集監控區域內的視頻圖像數據,并進行圖像預處理,再利用OpenCV視覺處理庫編寫相關代碼對采集的視頻圖像數據進行檢測,檢測到移動物體后在閾值范圍進行判斷,最后觸發報警機制。視頻圖像顯示在PC端由Visual Studio 2017編寫的MFC人機交互界面之上,PC端可以實時查看視頻監控及相關參數變化情況。系統架構如圖1所示。

圖1 系統架構
通過把包含色彩數據的彩色圖像中色彩數據去除,只保留有圖像的亮度信息,這一處理過程就稱為圖像灰度化[7]。灰度化處理后圖像依然能夠保留原圖的大部分信息,但對于后續的算法執行,時間復雜度和空間復雜度大大降低[8~9]。彩色圖的像素轉換為灰度圖的像素,轉換公式如下式所示,GRAY為灰度值,R為紅色分量,G為綠色分量,B為藍色分量。

灰度化的執行是由OpenCV對原始圖像進行提取后將三通道的RGB彩圖轉為單通道灰度圖,通過OpenCV提供的CvtColor顏色空間轉換函數可完成圖像灰度化[10]。
圖像濾波是在進行圖像處理時消除噪聲的有效手段,本文采用中值濾波的方法對噪聲進行濾除,其基本原理是在在目標像素周圍選取一個移動式二維滑動模塊,然后對模塊中的像素點進行單調定向排序,把排序后的中間值作為目標像素的灰度值,通過濾波有效消除噪聲和脈沖干擾,同時保留了圖像的邊緣像素信息[11]。接著進行先腐蝕后膨脹的開運算,即假設圖像用f(s,t)表示,結構元素為b(x,y),f的定義域為Df,b的定義域為Db腐蝕公式表示為

具體操作時調用OpenCV的cvErode和cvDilate消除椒鹽噪聲和高斯噪聲,最終提取的目標也較完整。
視頻監控中的目標檢測指的是運動目標的檢測,運動目標的檢測是視頻監控智能化的基礎,具有魯棒的檢測結果才能實現有效的跟蹤。本文利用高斯混合背景差分法來進行運動目標檢測,背景差分法又叫背景消減法,顧名思義就是提取背景后用背景與當前的幀做減法,檢測有位移的物體[12~13]。高斯混合背景差分就是對背景中每個像素點用K個狀態來描述其呈現的顏色,每個狀態都與一個高斯分布函數一一對應,高斯分布函數的相關參數發生變化會導致背景模型變化更新。其原理可用以下表達式(4)~(11)表示:


以上公式中的 f(Xt=x)為高斯混合模型的概率密度函數,η(x,μi,t,∑i,t)表示 K 維的像素點顏色分布,μi,t表示第i維t時刻的高斯分布均值,∑i,t表示第i維t時刻高斯分布的協方差。每個η(xt,μt,∑t)貢獻度用 ωi,t來描述,K 個 ωi,t值的和為1。式(5)的n值為圖像幀通道數,T為權值閾值,取值0.7。式(6)Ii,t為第i維t時刻當前幀亮度,α為學習率。式(10)σi,t為高斯背景模型的標準差。本文在編程實現時,調用OpenCV的cvCreateI?mage函數來建立當前幀,背景幀和前景幀,之后用CvtColor函數進行灰度化,再結合AbsDiff函數和Threshold函數功能及高斯混合背景差分算法進行目標檢測。具體實驗結果如圖2所示。結果表明,通過高斯混合背景差分提取運動目標并進行于閾值二值處理后能較好的與背景分離,運動目標檢測有效。

圖2 高斯混合背景差分運動目標檢測
目標完成檢測后,采用Camshift進行目標跟蹤并結合卡爾曼濾波完成目標運動預判報警功能。Camshift首先獲取圖像顏色直方圖,并進行反向投影,根據顏色概率分布計算像素點偏移量,并經過迭代后接近目標質心[14]。卡爾曼濾波對運動目標位置預測首先對濾波器初始化,并賦予位置、速度和加速度,然后計算當前時刻預測值與實測值之差,通過差值與下一時刻的實測值得到最優估計值從而實現目標位置預測。通過卡爾曼濾波有效預測運動目標的移動位置能夠提高跟蹤算法實時性[15]。具體算法實現使用OpenCV的cvFindcon?tours函數對運動目標輪廓進行標定,然后用CvRect函數生成矩形窗口對目標實時跟蹤。對運動目標進行成功檢測與跟蹤后,在設定時間閾值范圍外發出預警,在運行窗體界面顯示相關信息并觸發音效報警信號。實現效果如圖3所示。

圖3 目標跟蹤與預警
本文調研分析了當前視頻監控系統采用人工方式對監控視頻進行監視所存在的問題,聯系拓展視頻監控的實際需求,對視頻監控相關的圖像處理方法與機器視覺算法進行研究,重點闡述了視頻數據預處理中的圖像灰度化和圖像濾波操作,并在此基礎上通過高斯混合背景差分提取運動目標,進行閾值二值處理實現與背景分離,目標完成檢測后,本文采用Camshift進行目標跟蹤并結合卡爾曼濾波完成目標運動預判報警功能。系統采用OpenCV2.4.13開源函數庫和Visual studio2017的MFC框架進行算法實現,最終實現對視頻中各幀圖像進行預處理與自動分析判斷,并對被測運動目標進行跟蹤,對運動目標在超出閾值范圍發出預警信息。經實驗驗證,系統能有效檢測運動目標完成報警功能。通過對系統核心架構的擴展今后還可以添加移動端預警服務、短消息、語音消息服務等。