,,
(韶關(guān)學(xué)院物理與機(jī)電工程學(xué)院,廣東 韶關(guān) 512005)
基于云臺的攝像頭可移動式視頻監(jiān)控系統(tǒng),通過攝像頭的移動,保證監(jiān)控對象始終位于攝像頭圖像中心區(qū)域,實現(xiàn)大視角范圍內(nèi)運動目標(biāo)的檢測跟蹤,已廣泛應(yīng)用于各類重要場所對可疑目標(biāo)或異常行為的實時監(jiān)控、預(yù)警[1]。但攝像頭移動狀態(tài)下復(fù)雜的動態(tài)背景,使得準(zhǔn)確、實時的運動目標(biāo)檢測變得困難[2]。
針對動態(tài)背景下的運動目標(biāo)檢測方法主要有光流法和背景補(bǔ)償法。光流法[3-4]依據(jù)攝像頭運動引起的背景光流與運動目標(biāo)光流不一樣來實現(xiàn)運動目標(biāo)的識別,但該算法要遍歷幀中所有像素點來評估光流,計算量大,難以滿足實時性要求。背景補(bǔ)償法[5]通過提取背景特征,得到基于匹配點的全局運動參數(shù),對背景進(jìn)行補(bǔ)償,從而將動態(tài)背景情況下的運動目標(biāo)檢測轉(zhuǎn)化為靜態(tài)背景下的運動目標(biāo)檢測,目前主要通過基于圖像像素匹配算法(如SSDA算法[6])和基于圖像特征匹配算法(如SIUF算法[7]、SURF算法[8]和塊匹配算法[9])等算法,提高全局運動參數(shù)估計精度來保證背景補(bǔ)償精度,但這將導(dǎo)致運動目標(biāo)檢測實時性下降。
對此,提出基于狀態(tài)分割的運動目標(biāo)跟蹤方法,根據(jù)攝像頭運動與否,分別實施運動目標(biāo)檢測與運動目標(biāo)跟蹤,避免動態(tài)背景下的運動目標(biāo)檢測復(fù)雜算法對目標(biāo)跟蹤實時性的影響。在攝像頭靜止?fàn)顟B(tài)時,基于靜態(tài)背景實施運動目標(biāo)檢測,當(dāng)檢測到運動目標(biāo)后,對運動目標(biāo)進(jìn)行特征提取、匹配,基于目標(biāo)跟蹤算法,定位其運動軌跡和運動參數(shù),并控制攝像頭實施目標(biāo)跟蹤,使運動目標(biāo)始終位于攝像頭圖像中心區(qū)域。
基于背景建模技術(shù)的背景差法是運動目標(biāo)檢測的一個重要方法,其利用當(dāng)前圖像與背景模型做差分運算來檢測運動目標(biāo),進(jìn)而提取出完整的前景運動目標(biāo)的位置、大小、顏色和形狀等信息,算法簡單,檢測速度快。該算法關(guān)鍵在于背景模型的建立與實時更新?;旌细咚贡尘澳P?(GMM)[10]算法采用多個高斯模型分布的加權(quán)來表示背景圖像,模型中的參數(shù)隨著背景的不斷變化自適應(yīng)更新,可有效處理背景光照變化對目標(biāo)檢測準(zhǔn)確性的影響,其基本原理如下所述。
用K(取值3~5)個高斯模型來描述視頻圖像序列中的每個像素點的特征,任意像素點在時刻t處3個通道的觀察值為xt=[rt,gt,bt]T,屬于背景的概率ρ(xt)為:
(1)
(2)
將每一幀視頻圖像的像素值與上述的K個混合高斯模型的某個分布進(jìn)行匹配,比較此像素值與K個高斯分布中的某個分布是否滿足:
|xt-μt,i|≤Dσi
(3)
若滿足,則判定為背景像素點,否則判定為前景像素點。Dσi為用戶自定義參數(shù)。對匹配成功的高斯分布進(jìn)行更新,不匹配的高斯分布不變。
GMM算法需對圖像中每一個像素點單獨處理,為減少建模與更新時間,提高實時性,采用雙線性插值法對視頻圖像進(jìn)行縮小處理。假設(shè)原始圖像大小為m×n,縮小后圖像為a×b,圖像縮小前后像素點坐標(biāo)變換關(guān)系為:
i=int[(x+0.5)×a/m-0.5]
(4)
j=int[(y+0.5)×b/n-0.5]
(5)
i,j分別為縮小后圖像的行、列坐標(biāo);x,y分別為原始圖像的行、列坐標(biāo)。
經(jīng)過GMM算法檢測到運動目標(biāo)后,按坐標(biāo)變換關(guān)系,將縮小圖像上的運動目標(biāo)坐標(biāo)映射到原始比例大小的視頻圖像上,實現(xiàn)運動目標(biāo)的檢測。
運動目標(biāo)跟蹤是在運動目標(biāo)檢測的基礎(chǔ)上,通過對目標(biāo)進(jìn)行表觀建模,并基于一定的跟蹤算法,如基于特征匹配的Meanshift算法[11]、卡爾曼濾波算法[12]、粒子濾波算法[13]等目標(biāo)跟蹤方法,尋找運動目標(biāo)最優(yōu)位置的過程。本文針對目標(biāo)顏色與背景顏色可區(qū)分場景,通過提取運動目標(biāo)顏色特征信息,基于Camshift算法[14],以逐幀處理視頻序列的方式完成運動目標(biāo)的連續(xù)跟蹤,具有良好實時性與魯棒性,其算法流程如下:
a.計算來自目標(biāo)顏色信息的色度直方圖。
b.對視頻序列圖像的單通道色度圖,按照色度直方圖轉(zhuǎn)化為反向投影圖。
c.提供一個用于對視頻序列圖像進(jìn)行匹配搜索的初始化搜索窗口,若當(dāng)前圖像是攝像頭運動階段的第1幀圖像,搜索窗口的中心位置和大小為靜止階段檢測到的目標(biāo)窗口位置和大小,若不是,則為上一幀搜索窗口的最終位置和大小。
d.計算搜索窗口的質(zhì)心。設(shè)(u,v)為搜索窗口內(nèi)的像素點坐標(biāo),其在反向投影圖中的像素值為I(u,v),定義搜索窗口的零階矩M00和一階矩M10,M01分別為:
(6)
(7)
(8)
則當(dāng)前搜索窗口質(zhì)心坐標(biāo)為:
(9)
e. 若搜索窗口質(zhì)心與窗口中心重合,記錄此時搜索窗口的中心和大小,其中心位置坐標(biāo)就是當(dāng)前幀圖像中運動目標(biāo)的中心坐標(biāo);若不重合,則移動搜索窗口,使窗口中心與質(zhì)心重合,再對新的搜索窗口重新計算質(zhì)心,不斷迭代下去,直到窗口質(zhì)心與窗口中心重合或達(dá)到迭代最大次數(shù)。
OpenCV是基于C++語言實現(xiàn)圖像處理與視覺處理通用算法的開源計算機(jī)視覺庫[15],其提供的庫函數(shù)可以非常便捷地完成復(fù)雜的計算機(jī)視覺處理。在OpenCV使用前,需要對開發(fā)環(huán)境VS2010進(jìn)行相關(guān)的工程配置。
基于GMM算法的運動目標(biāo)檢測通過OpenCV提供的BackgroundSubtractorMOG2類來實現(xiàn),主要實現(xiàn)步驟為:
a.利用VideoCapture類讀取攝像頭視頻圖像。
b.利用cv::resize()函數(shù)完成雙線性插值法對圖像尺寸的縮小,提高算法的處理速度。
c.利用BackgroundSubtractorMOG2類進(jìn)行混合高斯建模算法處理,得到處理結(jié)果圖像fgmask1。
d.利用medianBlur()函數(shù)、morphologyEx()函數(shù)對圖像fgmask1進(jìn)行中值濾波和形態(tài)學(xué)閉操作,并保存結(jié)果圖像fgmask2。
e.利用findContours()函數(shù)尋找圖像fgmask2的連通域,找出運動目標(biāo)輪廓。
f.通過boundingRect()計算運動目標(biāo)輪廓的垂直邊界最小矩形rect1坐標(biāo)位置和大小,再將其映射到到原始比例大小的視頻圖像上,得到矩形rect2,該矩形所在位置即為運動目標(biāo)所在實際位置和大小。
檢測獲取的運動目標(biāo)輪廓的垂直邊界最小矩形rect1和rect2,在原始比例視頻圖像上的位置和大小如圖1所示。
圖1 運動目標(biāo)檢測結(jié)果
基于Camshift算法的運動目標(biāo)跟蹤通過OpenCV的Camshift()函數(shù)來實現(xiàn),該函數(shù)的調(diào)用需要提供初始的搜索窗口(位置與大小)和運動目標(biāo)的顏色直方圖。
初始搜索窗口的位置和大小與運動目標(biāo)重合,由運動目標(biāo)檢測結(jié)果的rect2提供;對rect2確定的運動目標(biāo)進(jìn)行背景信息過濾等預(yù)處理,提取其顏色特征信息,建立運動目標(biāo)顏色直方圖,如圖2所示。
圖2 運動目標(biāo)顏色直方圖的建立
經(jīng)過上述處理得到初始搜索窗口和運動目標(biāo)顏色直方圖后,按如下步驟實現(xiàn)目標(biāo)跟蹤算法:
a.利用cvtColor()函數(shù)把視頻幀圖像格式轉(zhuǎn)為HSV格式。
b.從視頻幀圖像中分離出單通道色度值圖。
c.利用calcBackProject()函數(shù),計算單通道色度值圖關(guān)于運動目標(biāo)顏色直方圖的反向投影,濾除反向投影圖上的噪聲干擾。
d.利用Camshift()函數(shù),根據(jù)初始搜索窗口與運動目標(biāo)顏色直方圖,進(jìn)行Camshift算法運算,得到一個平面上的旋轉(zhuǎn)矩形。該矩形的中心位置就是跟蹤目標(biāo)的中心位置,將該中心坐標(biāo)加入到物體坐標(biāo)發(fā)送隊列里,用于攝像頭轉(zhuǎn)動控制。
e.用Ellipse()函數(shù)把旋轉(zhuǎn)矩形用橢圓表示出來,用circle()函數(shù)畫出旋轉(zhuǎn)矩形的矩形中心點。
為評估本文提出方法的有效性,搭建了基于云臺的移動式攝像頭視頻監(jiān)控實驗系統(tǒng)。系統(tǒng)由上位機(jī)和下位機(jī)組成,其中,下位機(jī)負(fù)責(zé)云臺運動控制及視頻圖像信息采集,上位機(jī)開發(fā)了視頻實時監(jiān)控軟件,負(fù)責(zé)視頻圖像的顯示,運動目標(biāo)檢測、跟蹤,以及發(fā)送云臺控制指令等工作,兩者通過以太網(wǎng)通訊功能實現(xiàn)信息交流。
圖3a ~圖3e描述了運動目標(biāo)(圖中小車)跟蹤過程中不同時刻的實時跟蹤效果,圖3f描述了運動目標(biāo)在各個時刻的坐標(biāo)軌跡??梢钥闯?,當(dāng)運動目標(biāo)進(jìn)入到攝像頭的視野范圍后,攝像頭精確地捕獲到了運動目標(biāo),確定了其位置和區(qū)域,并快速地追隨運動目標(biāo)移動方向,使運動目標(biāo)始終位于攝像頭圖像中心區(qū)域。
圖3 運動目標(biāo)跟蹤結(jié)果
實驗結(jié)果表明,在目標(biāo)顏色特征顯著的情況下,基于狀態(tài)分割思想的運動目標(biāo)實時跟蹤方法,實現(xiàn)了移動式攝像頭對運動目標(biāo)的精確檢測與跟蹤,并具有很好的魯棒性和實時性。
針對基于云臺的攝像頭可移動式視頻監(jiān)控系統(tǒng)的運動目標(biāo)檢測與跟蹤,提出了一種基于狀態(tài)分割思想的運動目標(biāo)實時跟蹤方法。借助于OpenCV計算機(jī)視覺庫,便捷地實現(xiàn)了相關(guān)算法,并結(jié)合Windows平臺應(yīng)用程序開發(fā)環(huán)境VS2010,開發(fā)了用戶界面良好的視頻實時監(jiān)控應(yīng)用軟件。實驗結(jié)果表明,該方法較好地解決了移動式攝像頭對運動目標(biāo)檢測跟蹤的精確性和實時性問題,對于基于云臺的移動式視頻監(jiān)控系統(tǒng)的運動目標(biāo)跟蹤具有重要意義。
參考文獻(xiàn):
[1] 黃凱奇,陳曉棠,康運鋒,等.智能視頻監(jiān)控技術(shù)綜述[J].計算機(jī)學(xué)報,2015,38(6):1093-1118.
[2] 陳杏源,鄭烈心,裴海龍.基于Camshift和SURF的目標(biāo)跟蹤系統(tǒng)[J].計算機(jī)工程與設(shè)計,2016,37(4):902-906.
[3] 蘭紅,周偉,齊彥麗.動態(tài)背景下的稀疏光流目標(biāo)提取與跟蹤[J].中國圖象圖形學(xué)報,2016,21(6):771-780.
[4] 崔智高,王華,李艾華,等.動態(tài)背景下基于光流場分析的運動目標(biāo)檢測算法[J].物理學(xué)報,2017,66(8):116-123.
[5] 于明,孫煒燁,閻剛,等.動態(tài)場景下基于精確背景補(bǔ)償?shù)倪\動目標(biāo)檢測[J].計算機(jī)應(yīng)用與軟件,2013,30(10):139-141,198.
[6] 王文勝,翟尚禮,白俊奇.基于SSDA的圖像匹配跟蹤算法[J].指揮信息系統(tǒng)與技術(shù),2016,7(6):77-80.
[7] Lowe D G.Distinctive image features from scale-invariant keypoints[J].International Journal of Computer Vision,2004,60(2):91-110.
[8] Kalia R,Lee K D,Samir B V R,et al.An analysis of the effect of different image preprocessing techniques on the performance of SURF: Speeded up robust features[C]//17th Korea-Japan Joint Workshop on Frontiers of computer Vision,2001:1-6.
[9] 施家棟,王建中.動態(tài)場景中運動目標(biāo)檢測與跟蹤[J].北京理工大學(xué)學(xué)報,2009,29(10):858-860,876.
[10] Stauffer C,Grimson W.Adaptive background mixture models for real-time tracking [C]//Proceedings of the 1999 IEEE Conference on Computer Vision and Pattern Recognition,1999:246-252.
[11] Comaniciu D,Ramesh V,Meer P. Real-time tracking of non-rigid objects using mean shift[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2000:142-149.
[12] 梁錫寧,楊剛,余學(xué)才,等.一種動態(tài)模板匹配的卡爾曼濾波跟蹤方法[J]. 光電工程,2010,37(10): 29-33.
[13] 李軒, 張紅.基于粒子濾波的檢測前跟蹤算法的改進(jìn)[J].科學(xué)技術(shù)與工程,2017,17(30):227-232.
[14] Bradski G R.Real time face and object tracking as a component of a perceptual user interface[C]//Proceedings of the Fourth IEEE Workshop on Applications of Computer Vision,1998:214-219.
[15] 李振偉,陳翀,趙有.基于OpenCV的運動目標(biāo)跟蹤及其實現(xiàn)[J].現(xiàn)代電子技術(shù),2008(20):128-130,138.