張 恒,金晅宏
(上海理工大學(xué)光電信息與計算機(jī)工程學(xué)院,上海 200000)
關(guān)于運動目標(biāo)檢測與跟蹤就是通過對運動目標(biāo)的識別、提取從而確定運動目標(biāo)在作用區(qū)域中的運動軌跡和參數(shù)的過程。當(dāng)前運動目標(biāo)的算法有多種,追蹤目標(biāo)的類型差異,要求效果的好壞和硬件的配置高低均可采用不同的追蹤算法,但無論采用何種算法,其本質(zhì)不變,綜述目前的跟蹤方法,可分為4大類:基于特征的跟蹤方法,基于區(qū)域的跟蹤方法[1],基于模型的跟蹤方法[2]和基于變形模形的跟蹤方法。在復(fù)雜背景下的運動目標(biāo)姿態(tài)經(jīng)常發(fā)生變化的情況下,基于模型或者區(qū)域的匹配已無法達(dá)到追蹤要求,運算實時性也比較差。Camshift的目標(biāo)跟蹤在基于邊緣直方圖的情況下能有效的解決復(fù)雜背景下的問題[3]。
本文采用邊緣輪廓檢測法能夠快速精確的提取和識別出目標(biāo),在以改進(jìn)Camshift為核心的跟蹤算法上,采用優(yōu)化的Kalman濾波預(yù)測運動目標(biāo)的位置[4]。本文所提出的方法具有較強(qiáng)的抗干擾性,且具有較好的精確性和穩(wěn)定性。
圖像中的邊緣可能會指向不同的方向,Canny算法[5]使用4個掩模(mask)檢測水平、垂直以及對角線方向的邊緣。對于每個點均標(biāo)識在這一點上的最大值及生成的邊緣的方向。這樣就可從原始圖像生成了圖像中每個點亮度梯度圖以及亮度梯度的方向。以下兩個公式分別求取高斯濾波后圖像的梯度幅值及其方向的表達(dá)式
對灰度圖像G進(jìn)行邊緣檢測分別使用Sobel算子的兩個模版[5]
與G進(jìn)行卷積運算,得到邊緣圖像,其中任一像素gij的梯度幅值和方向分別為
i,j分別為像素對應(yīng)的行數(shù)和列數(shù),為統(tǒng)計數(shù)據(jù)以方便計算直方圖將任一像素的方向D(gij)量化m等份,將邊緣方向直方圖歸一化可不受圖像縮放的影響,其公式表示如下
w,h分別為源圖像的寬,高mk為滿足δ≠0且落在第k個角度區(qū)間內(nèi)的像素點個數(shù),人物圖例如圖1所示。
Camshift算法具有良好的實時性,但是有時背景比較復(fù)雜時會出現(xiàn)目標(biāo)跟蹤丟失情況,Kalman濾波是一種最優(yōu)估計方法,計算量小、實時性高,并可利用實際的運動參數(shù)不斷修正未來運動狀態(tài)的估計值,提高估計的精度,兼顧實時性和穩(wěn)健性。結(jié)合Camshift算法與Kalman濾波能預(yù)測目標(biāo)位置,提高跟蹤運動目標(biāo)的速度。
Camshift算法在基于空間邊緣的方向上是利用HSV空間上的H分量建立直方圖進(jìn)行匹配,不依賴目標(biāo)的色彩,而與目標(biāo)的邊緣結(jié)構(gòu)有關(guān),將攝像機(jī)捕捉到的RGB圖像用水平和垂直方向的Sobel算子掃描,得到邊緣方向信息,并據(jù)此建立邊緣方向直方圖[6]。對于目標(biāo)運動的情況,目標(biāo)在圖像中的位置隨時間變化,Meanshift算法動態(tài)調(diào)整追蹤窗口以適應(yīng)目標(biāo)位置的變化。其具體步驟:
(1)對RGB圖像進(jìn)行Sobel算子計算掃描得到邊緣信息建立邊緣直方圖,選取初始窗口[7]。
(2)在搜索窗口內(nèi)迭代計算質(zhì)心位置,直到收斂或質(zhì)心的變化小于給定閾值。在搜索窗口中尋找最佳匹配區(qū)域時,用相似度p(y)判斷搜索窗口與模板的匹配程度。將最大相似度區(qū)域定義為最佳匹配區(qū)域,并由Meanshift算法返回該區(qū)域的大小及質(zhì)心位置。用下式來定義兩幅邊緣方向直方圖的相似程度[9]
圖1 人物灰度、邊緣及邊緣方向直方圖
式中,μk,λk分別為第K個區(qū)間中像素點的幅度均值和方差;y為圖像中心。
(3)對每幀圖像根據(jù)Meanshift算法進(jìn)行迭代計算得到的質(zhì)心和窗口大小進(jìn)行搜索更新直到收斂或質(zhì)心的變化小于給定閥值,并對以上兩步進(jìn)行迭代計算就是改進(jìn)的 Camshift算法的流程[10-11]。
在改進(jìn)的Camshift會計算前一幀的匹配窗口H與初始設(shè)定的窗口N的匹配程度P,當(dāng)P>p1,就以H作為當(dāng)前匹配窗口與下一幀進(jìn)行匹配,否則認(rèn)為目標(biāo)丟失,匹配中心迭代公式為
在式中,g(x)是一個核函數(shù)其值越接近0就越大;C為歸一化系數(shù);R為對象半徑;y0為初始的窗口中心。
Kalman濾波器可對運動目標(biāo)位置進(jìn)行估計,其是一種線性遞歸濾波器,在基于以前的狀態(tài)序列對下一個狀態(tài)做最優(yōu)估計,引入一個離散控制過程的系統(tǒng)。該系統(tǒng)的狀態(tài)方程和觀測方程分別為
其中,Xn為系統(tǒng)狀態(tài)的n維狀態(tài)向量;Yn為觀測系統(tǒng)狀態(tài)的m維狀態(tài)向量;Fn是狀態(tài)轉(zhuǎn)移矩陣。從tn-1時刻到tn時刻:Hn是tn時刻的觀測矩陣;Wn-1為系統(tǒng)噪聲;Vn為觀測噪聲,是互不相關(guān)的零均值的正態(tài)白噪聲,設(shè)初始狀態(tài)的統(tǒng)計特征為[4]
獲取 n 時刻的 Fn-1,Hn,協(xié)方差 QT、Rt,X0和 P0,基于觀測值求得無偏線性最小方差估計和誤差協(xié)方差矩陣的遞推算法,在tn時刻,系統(tǒng)狀態(tài)預(yù)測方程為
設(shè)Pk為的協(xié)方差陣,P'k為Xk和的誤差協(xié)方差陣,則
增益系統(tǒng)矩陣
其中,Pn=(1 -KnHn)P'n。
假設(shè)觀測誤差協(xié)方差Qn-1和測量誤差協(xié)方差Rn近似常數(shù),則觀測誤差協(xié)方差Pn -1=Fn,Kn也近似為常數(shù),Pn=(1 - KnHn)P'n也近似不變,則 Pn -1、Kn、Pn均可離線算出。
圖2 運動目標(biāo)跟蹤流程圖
設(shè)計的軟件開發(fā)平臺為Microsoft Visual Studio 2010,采用OpenCV中的圖像數(shù)據(jù)結(jié)構(gòu)和封裝函數(shù)對圖像進(jìn)行處理,硬件環(huán)境為普通的聯(lián)想筆記本電腦酷睿雙核處理器,2 GB 內(nèi)存,Windows 7 操作系統(tǒng)[12-13]。實驗結(jié)果模擬了行人在行走過程中遇到障礙狀況時跟蹤情況的對比。
系統(tǒng)連續(xù)采集多幀目標(biāo)圖像,由圖3可看出,基于顏色直方圖的目標(biāo)跟蹤在有顏色相近或者物體遮擋時候追蹤會產(chǎn)生不準(zhǔn)確跟蹤目標(biāo),圖3(b)~圖3(c)當(dāng)車遮擋時跟蹤產(chǎn)生丟失,此時對于特征提取已不明顯,并在確定目標(biāo)跟蹤過程中也產(chǎn)生了偏離,不能準(zhǔn)確涵蓋跟蹤信息。圖4在基于改進(jìn)的Camshift算法基礎(chǔ)上加以優(yōu)化的Kalman濾波跟蹤,可有效預(yù)測下一幀目標(biāo)位置,在圖4(b)~圖4(c)中能更快的捕捉目標(biāo),為下一幀的圖像處理工作和系統(tǒng)整體穩(wěn)定性打好基礎(chǔ)。
從實驗?zāi)M圖可看出,對于復(fù)雜背景情況下單一的Camshift跟蹤不能較好的解決問題,本文采用基于空間邊緣直方圖的Camshift算法可有效避免目標(biāo)被遮擋或者目標(biāo)與背景顏色相近時所遇到的跟蹤混亂等問題,且本文結(jié)合了優(yōu)化的Kalman濾波來預(yù)測更新,使得目標(biāo)在變化時能及時追蹤并返回模版進(jìn)行交替,為后續(xù)下一幀圖像的處理提高了準(zhǔn)確度,保證了系統(tǒng)的穩(wěn)定性,同時也為在后續(xù)更復(fù)雜的人群目標(biāo)中追蹤目標(biāo)打好基礎(chǔ)。
圖3 基于顏色直方圖的Camshift算法跟蹤
圖4 基于改進(jìn)的Camshift/Kalman的跟蹤圖
[1]Comaniciu D,Ramesh V,Meer P.Real-time tracking of non- rigid objects using mean shift[C].Hilton Head:SC IEEE Conference on Computer Vision and Pattern Recognition,2000:142-149.
[2]Dorin Comaniciu,Visvanathan Ramesh,Peter Meer.Kernelbased object tracking[J].IEEE Transactions on Pattern A-nalysis and Machine Intelligence,2003,25(5):554 -577.
[3]Qian Huimin,Mao Yaobin,Geng Jason,et al.Object tracking with self-updating tracking window[C].Haikou:PAISI',2007.
[4]曲云騰,李平康,杜秀霞.基于Kalman預(yù)測的人體運動目標(biāo)跟蹤[J].計算機(jī)系統(tǒng)與應(yīng)用,2011,20(1):137 -140.
[5]劉士榮,姜曉燕.一種改進(jìn)的Camshift/Kalman運動目標(biāo)跟蹤算法[J].控制工程,2010,17(4):470 -474.
[6]李忠海.圖像直方圖局部極值算法及其在邊界檢測中的應(yīng)用[J].吉林大學(xué)學(xué)報,2003,21(5):89 -91.
[7]王新紅,王晶,田敏,等.基于空間邊緣方向直方圖的Meanshift跟蹤算法[J].中國圖象圖形學(xué)報,2008(3):586-592.
[8]萬纓,韓毅,盧漢清.運動目標(biāo)檢測算法的探討[J].計算機(jī)仿真,2006,23(10):221 -226.
[9]黃飛,李德華,姚訊.基于相關(guān)匹配及自適應(yīng)模版更新的目標(biāo)跟蹤新方法[J].計算機(jī)工程,2007,33(16):147-149.
[10]周永權(quán),劉中華,劉允才.運動人體的檢測與跟蹤[J].計算機(jī)工程,2004,30(8):153 -155.
[11]曹茂永.數(shù)字圖像處理[M].北京:北京大學(xué)出版社,2007.
[12]蔣曉峰.基于視頻圖像處理的公交車人流量統(tǒng)計系統(tǒng)的研究[D].廣州:華南理工大學(xué),2013.