彭接力,劉 巖
(第二炮兵工程大學研究生二隊,陜西西安 710025)
運動目標檢測與跟蹤技術是計算機視覺、人機交互等領域研究的重要內容,有廣泛的應用前景。目前常用的運動目標檢測方法主要有3種:幀差法、光流法和背景差法[1]。靜止攝像機時下最流行的目標檢測算法為背景差分[4-6],該方法是利用當前圖像與背景圖像的差分圖像來檢測運動目標的一種方法。建立簡單、可靠的背景模型是背景差法提高運動目標檢測與跟蹤可靠性的基礎,文中利用 Open CV進行編程實現。
Open CV(Open Source Computer Vision Library)是Intel公司支持的開源計算機視覺庫。它高效簡潔,由一系列C函數和少量C++類構成,主要用于對視頻圖像進行一些高級處理,如人臉識別、運動跟蹤、圖像分割及人機互動等,Open CV的設計目標是執行速度盡量快,主要關注實時應用,它可以在VC++環境下使用,調用方便、功能強大、大幅縮短相關程序的開發周期[3]。
運動目標檢測流程如圖1所示。

圖1 背景差分法目標檢測流程
文中背景初始化方法采用圖像平均法,就是從視頻中提取的一系列連續圖像,將圖像的對應像素灰度值進行累加,之后求平均值作為背景像素灰度值。經過一段時間的圖像平均后,就可以消除運動目標所造成的影響,得到比較準確的背景。
假設環境光照不變,視頻圖像的背景也不變,在運動目標可視情況下,包含運動目標的當前圖像與背景圖像之間必然在運動目標區域存在較大的灰度差值,利用圖像減法就可得到差分灰度圖像。差分圖像包含了運動目標信息,相對于背景圖像又稱為前景圖像。假設利用圖像平均法可得到當前背景圖像Bfr+1(x,y),假設當前輸入圖像為Cfr(x,y),前景圖像Dfr(x,y)可以表示為

由公式可知,前景圖像最后可歸結為當前圖像幀中的運動對象和被它遮擋的背景差值。
ROI分割是將圖像中潛在的目標區域分割出來,以便后面的目標檢測操作。ROI分割步驟包括圖像二值化處理、數學形態學處理、標記連通區域3個子步驟[8]。
(1)圖像二值化處理。采用直接灰度門限法[5]對前景圖像進行二值化處理,通過設置合適的灰度閾值T,將前景圖像分割為兩個區域,即目標區域與背景區域。實驗閾值T設為20

(2)數學形態學處理。由于上述處理后的前景圖像包含有較多噪聲,而噪聲多是亮度較高的像素或小區域,因此可采用數學形態學開運算對前景圖像進行處理,消除前景圖像中的噪聲點及細小區域,平滑較大區域邊界。
(3)標記連通區域。高亮區域檢測結果可能包含較多分離的連通區域,為完成對目標的檢測需要對這些區域進行標記。需要進行區域合并,如果兩個區域存在接合部分,則合并這兩個區域,采用這兩個區域最外面的坐標為新區域的坐標[8]。
現實情況下,環境光照是不斷變化的,因此背景需要采用自適應背景估計的方法。自適應背景估計的顯著特征是背景隨時間更新,更新按照更新公式進行,更新公式的作用在于只用當前圖像和已知背景圖像來更新背景圖像。在OpenCV函數庫中有一個專門用于背景更新的函數[9]cvRunningAvg,其定義為

式中,Bfr(x,y)為當前背景圖像;Bfr+1(x,y)為更新后的背景圖像;Cfr(x,y)為當前的輸入圖像;α是背景更新速率。α越大背景更新越快,當前輸入圖像對背景的影響越大。利用背景差分法檢測運動目標時,若α取值較大,在更新的背景圖像中運動目標后面會出現短而明顯的陰影,這對于后續處理有較大影響,導致低目標檢測的精確度下降,目標短暫停留造成漏檢等。反之,α取值較小時,這種陰影則長而淡,此時陰影的影響可以通過設置閾值來消除。一般來說,α取值不宜過大,實驗α取為0.01。
程序在VC 6.0環境下編程實現,程序中調用了OpenCV 1.0庫函數,硬件運行環境為Intel i3處理器,2.13 GHz、2 GB內存,視頻為靜止攝像機拍攝到的avi文件,大小為240×320,25幀/s,視頻中有一輛汽車沿公路行駛。檢測系統對此視頻中的運動目標進行檢測,實驗結果以3個視頻的形式輸出,這3個視頻分別為背景,如圖2所示,前景如圖3所示,以及運動目標檢測視頻如圖4所示,實驗結果可以看到檢測結果較好。

由于背景的更新速率較小,當視頻中原來運動的物體由運動變為靜止狀態時,背景模型不能得到迅速的更新,此時仍舊利用背景差法對運動目標進行檢測,會檢測出不存在運動的“目標”,出現目標的虛檢。針對以上問題提出以下改進方法。
當運動目標由運動變為靜止狀態,將會成為背景的一部分,由于傳統的背景更新方法中,當前幀圖像的權值較小,變為背景的目標不能被快速更新,得到的前景圖像中就會出現虛檢的目標。分析上述問題,當運動目標由運動變為靜止狀態,成為背景的一部分時。幀差法是使用前后相鄰的兩幀圖像做差,如果目標由運動變為靜止成為背景的一部分,此時使用幀差法得到的前景圖像中,將檢測不到該目標。同時通過背景差方法得到的前景圖像中,仍能“檢測”到該目標,此時被檢測出的目標區域,有些已經成為了背景的一部分,不是真實的運動目標。流程如圖5所示。

圖5 本文流程圖
圖6和圖7是視頻中抓取的兩幀圖像,圖8是背景差法得到的圖像,圖9是幀差法得到的圖像。幀差法得到的圖像含有運動目標和運動目標的“鬼影”,背景差法得到的圖像中含有運動目標以及有運動變為靜止成為背景一部分的“運動目標”。兩張圖像的公共部分是運動目標,可以對兩張圖像進行邏輯與運算得到新前景圖像,新前景圖像中的前景物體,即是檢測到的運動目標。圖10是文中方法的檢測結果。

圖6 視頻幀1

本視頻來自交叉路口的監控視頻,前面路口的紅燈亮時,車輛陸續停止,位于左側車道的白色轎車是惟一的運動目標,其他車輛運動狀態都變為靜止,從而成為背景的一部分,利用文中方法,能夠較好地檢測到白色轎車。
系統闡述了基于背景差分法檢測運動目標的方法步驟,利用OpenCV加以實現,從實驗結果看,3個視頻輸出畫面自然流暢,檢測的準確率也很高。對實驗結果進行了分析,提出了改進,經實驗驗證,改進效果較好。系統適合對靜止的攝像機拍攝的視頻圖像進行運動目標檢測,只對運動目標由運動變為靜止的情況提出了背景更新的方法運動目標檢測方法,沒有討論目標由長時間靜止再次變為運動的情況運動目標的檢測方法,需要在后續工作中進一步地研究。
[1]譚歆,武岳.基于OpenCV的運動目標檢測方法研究與應用[J].電視技術,2010,34(S1):184 -187,193.
[2]劉勃.交通流量的視頻檢測方法研究[D].合肥:中國科學技術大學,2005.
[3]劉瑞禎,于仕琪.OpenCV教程:基礎篇[M].北京:北京航空航天大學出版社,2007.
[4]TSAIDM,LAIS C.Independent component analysis- based background subtraction for indoor surveillance[J].IEEE Trans on Image Processing,2009,18(1):158 -167.
[5]AVIDAN S.Ensemble tracking[J].IEEE Trans on Pattern Analysis and Machine Intelligence,2007,29(2):261 -271.
[6]WANG Yang.Real- time moving vehicle detection with cast shadow removal in video based on conditional random field[J].IEEE Trans on Circuits and Systems for Video Technology,2009,19(3):437 -441.
[7]STAUFFER C G.Learning patterns of activity using realtime tracking[J].IEEE Trans on Pattern Analysis and Machine Intelligence,2000,22(8):747 -757.
[8]梁英宏.紅外視頻圖像中的人體目標檢測方法[J].紅外與激光工程,2009,38(5):931 -935.
[9]HOOSEN.MPACT:an image analysis tool for motor way analysis and surveillance [J].Traffic Engineering Control Journal,1992,23(4):140-147.