馮健業,賴全運,劉和順,龍迎春
(韶關學院 物理與機電工程學院,廣東 韶關512005)
視頻監控系統已廣泛應用于安防、交通、環保等眾多領域,成為人們日常生活中不可分割的一部分[1].目前,視頻監控系統攝像頭普遍采用云臺底座結構,實現攝像頭沿水平、垂直兩個自由度方向運動,克服了傳統固定式視頻監控攝像頭在對運動目標跟蹤監控時存在的視覺盲區大的問題.但攝像頭移動狀態下復雜的動態背景使得準確、實時的運動目標跟蹤監控變得困難[2],對此筆者基于狀態分割的運動目標檢測方法,開發了具有運動目標自動跟蹤監控功能的智能化視頻監控系統,提升了監控效率,對智能視頻監控系統的發展具有重要意義.
基于云臺的智能化視頻監控系統由攝像頭、兩自由度云臺、計算機、控制單元電路、通信網絡、穩壓電源電路等部分組成,系統總體框如圖1所示.計算機安裝于監控室內,其余硬件系統均位于監控現場,通過以太網相連.
控制單元電路的主控芯片采用32位高性能高性能、低成本、低功耗的 STM32F103ZET6 微處理器[3],其具有 512 K flash,64 K SRAM,11個定時器,最高工作頻率可達72 MHz,同時產生多路PWM信號,能完全滿足系統對圖像信息與云臺舵機控制的實時性要求.
兩自由度云臺由2個MG995型號的舵機構成,通過STM32F103微處理器提供的PWM信號控制舵機的轉向和轉角,分別實現安裝于云臺上攝像頭水平與垂直方向的角度調節,從而實現攝像頭對運動目標的跟蹤監控.監控目標的視頻圖像信息通過具有640×480像素的RER-USB130W01MT型攝像頭獲得,并通過USB轉以態網模塊傳輸給計算機.計算機通過基于OpenCV開發的監控應用軟件,負責視頻圖像顯示、圖像信息處理、運動目標檢測與跟蹤、云臺運動目標坐標計算及控制指令發送等功能.通信網絡采用以太網,實現攝像頭、上位機、下位機間的圖像信息及控制指令的傳輸.電源穩壓電路分別為云臺舵機和STM32F103微處理器提供6 V和5 V工作電壓.

圖1 系統總體框圖
系統上位機軟件是基于OpenCV計算機視覺庫[4]與 MFC 類庫,在 VS2010(Microsoft Visual Studio 2010)開發環境上開發的,以Windows操作系統作為運行環境的計算機監控應用軟件,其對來自攝像頭的視頻數據進行處理,實現視頻圖像的顯示,檢測視頻流中的運動目標,提取運動目標特征,進行目標跟蹤,計算并發送目標圖像坐標與控制指令等給下位機.上位機監控應用軟件界面如圖2所示.
針對運動目標的檢測與跟蹤,筆者基于狀態分割思想,將運動目標檢測跟蹤過程按攝像頭的運動狀態分為靜止、運動兩個階段.在靜止階段,利用基于混合高斯背景建模算法(GMM)的背景差法[5]檢測運動物體,提取目標的顏色特征信息;在運動階段,依據獲得的顏色特征信息,利用Camshift算法[6]實現對運動目標的實時跟蹤.相關算法通過OpenCV計算機視覺庫來實現.
運動目標檢測算法通過OpenCV的Background Subtractor MOG2類來實現,該類提供了存放了混合高斯背景建模法的各種參數與算法實現函數接口[7].基于該類的運動目標檢測算法主要實現步驟如下:
(1)利用VideoCapture類讀取攝像頭視頻圖像.
VideoCapture capture; //定義攝像頭設備
capture.open(0); //打開攝像頭
capture>>frame; //讀取當前幀圖像
(2)利用cv::resize()函數完成雙線性插值法對圖像尺寸的縮小,提高混合高斯模型算法的處理速度.
(3)進行混合高斯建模算法處理.
BackgroundSubtractorMOG2 bg_mode(l80,60,false); //定義模型對象,設置模型參數:訓練背景的幀數,背景減差閾值,是否檢測影子
bg_model(img_S,fgmask1,-1); //調用對象()運算符重載函數,實現混合高斯建模算法,得到處理結果圖像fgmask1.
(4)利用medianBlur()函數、morphologyEx()函數對處理結果圖像fgmask1進行中值濾波和形態學閉操作,保存此時的結果圖像fgmask2.
(5)利用findContours()函數尋找圖像fgmask2的連通域,找出運動目標輪廓,從而實現目標檢測.
運動目標的跟蹤是基于目標檢測算法獲得的目標輪廓,利用OpenCV的Camshift()函數來實現,該函數調用所需的初始搜索窗口(位置與大小)以及運動目標的顏色直方圖分別由目標檢測結果中的目標位置、大小與顏色特征信息提供.其算法流程如圖3所示.

圖2 上位機監控應用軟件界面
下位機系統采用STM32F103ZET6微處理器,基于Keil uVision5開發環境,通過對計算機給出的控制指令及目標圖像坐標的動態跟隨,完成對云臺的姿態控制.
下位機嵌入支持多任務的實時操作系統uC/OS-III[8],使系統能“同時”進行數據收發、坐標數據處理、云臺控制等任務,以保證視頻監控系統的實時性.在uC/OS-III系統任務處理的優先級設置上,優先處理坐標數據的接收,其次是坐標數據的處理、云臺控制,目的是為了能第一時間接收到最新的運動目標坐標數據,及時做出反應,減少云臺因任務等待而引起的轉動滯后.
下位機系統得到運動目標在圖像上的位置后,控制云臺做水平方向轉動及垂直方向轉動,使被監控的運動目標始終處于監控圖像畫面中心,實現監控系統對運動目標的實時跟蹤.
在實際系統中,由于監控系統圖像處理、數據傳輸的數據量大,占用了較多的系統時間,易導致系統云臺對運動目標追蹤監控出現滯后現象,使得運動目標偏離監控圖像畫面中心,如圖4所示.
圖中O-xyz為攝像頭坐標系,O為攝像頭光心,OZ為光軸;Ouv-uv為圖像平面坐標系,是以像素為單位的直角坐標系,光軸與圖像平面交點Oxy位于圖像平面的中心;P(u,v)為實際運動目標在圖像平面成像點,理想情況下,希望P(u,v)位于圖像平面中心,即與Oxy重合;△u、△v分別為云臺追蹤滯后導致P(u,v)與Oxy在圖像平面u、v方向上的偏差值.
為了減少偏差值,使追蹤的運動目標成像點盡可能位于圖像平面中心位置,采用2個PD控制器分別控制PWM驅動器輸出電壓脈寬,實現云臺水平、垂直方向的電機轉角動態調節,控制系統結構如圖5所示.

圖3 目標跟蹤算法流程

圖4 運動目標跟蹤偏差分析

圖5 下位機動態跟隨系統框圖
PD控制器將系統的輸入誤差e(t)經過比例(P)、微分(D)計算,得到PWM驅動器的電壓脈寬輸出值u(t),其關系如下:

式中,Kp、Td分別為比例系數、微分時間常數.
根據控制對象不同,水平、垂直方向的電機PD控制器輸入誤差e(t)分別對應圖像平面u、v方向上的偏差值△u(t)、△v(t).
為測試系統對運動目標的跟蹤監控性能,筆者以紅色玩具車作為被監控的運動目標,當玩具車從右往左勻速駛入監控區域時,智能化視頻跟蹤監控系統對運動目標跟蹤的效果如圖6所示.圖6(a)~(e)描述了運動目標(圖中紅色小車)跟蹤過程中不同時刻的實時跟蹤效果,圖6(f)描述了運動目標在各個時刻的坐標軌跡.可以看出,當運動目標進入攝像頭的視野范圍后,攝像頭精確地捕獲到了運動目標,并快速地追隨運動目標調整云臺姿態,使運動目標始終位于攝像頭圖像中心平面區域.

圖6 運動目標跟蹤效果
測試結果表明,智能化視頻跟蹤監控系統實現了運動目標的精確檢測與跟蹤,并具有很好的魯棒性和實時性.
設計并實現的基于運動目標檢測與跟蹤的智能化視頻跟蹤監控系統,通過Opencv實現了上位機基于混合高斯背景建模的運動檢測及基于Camshift的運動跟蹤算法,并結合PD控制器完成了下位機云臺跟蹤控制系統.實驗結果表明,系統運行穩定,在目標顏色特征顯著的情況下,攝像頭能精確地檢測與跟蹤運動目標,具有較好的魯棒性和實時性.