丁承君, 閆 彬
(河北工業(yè)大學 機械工程學院,天津 300130)
隨著計算機視覺領(lǐng)域的快速發(fā)展,作為視覺領(lǐng)域中重要一環(huán)的目標跟蹤也在人機交互和視頻監(jiān)控等方面受到了極大的關(guān)注[1~3]。
傳統(tǒng)的CamShift跟蹤算法通過計算反向投影來獲取目標的位置,該方法計算簡單、容易理解,因此廣受青睞[3],但對于光照比較敏感,光線較弱時無法計算顏色直方圖進而無法獲得反向投影圖,背景與運動目標顏色相近時依然很難實現(xiàn)很好的檢測。對于運動速度快的目標和遮擋的場景中,該算法亦具有一定的局限性。文獻[3]提出了將CamShift和Kalman相結(jié)合的運動目標跟蹤算法,文獻[4]在此基礎(chǔ)上又對該算法做了進一步的改進。改進的CamShift和Kalman目標跟蹤算法通過Kalman預(yù)測解決了部分遮擋的問題,改善了因目標顏色與背景顏色相似和運動速度快導(dǎo)致跟蹤漂移的問題,但本質(zhì)上其核心部分依舊是CamShift,難以解決光照的問題,如果加入更多的特征,又會增加計算量。Zhang K H等人[5]提出了通過時空上下文 (spatial-temporal context,STC) 目標跟蹤的算法。該算法認為待跟蹤目標與其周圍一定范圍內(nèi)的背景組成的局部上下文在連續(xù)幀之間存在著很強的時空關(guān)系,根據(jù)這種關(guān)系建立STC模型,但僅在低階特征上建模[6,7](如圖像位置和灰度),因此,對于完全遮擋和存在噪聲較大的場景中易出現(xiàn)跟蹤失敗的情況。
本文提出了一種將STC與CamShift相結(jié)合的目標跟蹤算法。實驗結(jié)果表明,該算法較每種單獨的算法均具有更高的魯棒性和適應(yīng)性。
1)反向投影圖計算
為了降低光照在算法執(zhí)行時給跟蹤效果造成的影響,需要預(yù)先進行顏色空間的轉(zhuǎn)化,即從三原色(RGB)轉(zhuǎn)為色度,飽和度,純度(hue,saturation,value,HSV)。對H和S分量進行直方圖統(tǒng)計,并計算其反向投影圖。
2)前景圖計算
通過視頻中連續(xù)的3幀圖像兩兩作差分后作或運算、二值化、形態(tài)學處理,對中間一幀采取Canny邊緣檢測,將2次結(jié)果再作或運算、形態(tài)學處理后得到更加完整的輪廓。對中間幀采用高斯混合模型的方法獲得前景,經(jīng)二值化后和邊緣信息作與運算,最后通過形態(tài)學處理及孔洞填充后獲得目標。算法流程如圖1所示。
圖1 前景計算流程
3)新投影圖獲取
將反向投影圖和前景圖進行與運算得到新的投影圖。
4)MeanShift尋優(yōu)
在新的投影圖中初始化跟蹤框并記錄其大小和質(zhì)心,將跟蹤窗的質(zhì)心移動到每次計算的最終位置。假設(shè)點(x,y)位于跟蹤窗內(nèi),I(x,y)表示為投影圖中該點所對應(yīng)的值,則窗口的零階矩M00以及一階矩M10,M01表示為
(1)
(2)
(3)
用零階矩和一階矩表示搜索窗口的質(zhì)心(X,Y)
(4)
記錄質(zhì)心的位置,并與上一次的位置求取差值,判斷該值是否大于閾值,若是,則滿足要求;反之,重新計算。
5)自適應(yīng)窗口計算
根據(jù)圖像的矩來計算出下一幀搜索窗口的大小,設(shè)w為寬,h為高,有
(5)
算法流程如圖2所示。計算置信圖(confidence map)并得到其最大似然概率位置即為跟蹤目標的中心位置[8,9]
(6)
式中o為目標存在于當前幀中;x為目標的位置。如果預(yù)先清楚目標位置x*,那么能夠從圖中得到的特征表示為
Xc={c(z)=(I(z),z)|z∈Ωc(x*)}
(7)
式中I(z)為位置z處的圖像灰度;Ωc(x*)為目標x*的局部區(qū)域。
圖2 STC算法流程
P(x│c(z),o)=hsc(x-z)
(8)
式中 空間上下文模型表達了目標位置x*與局部區(qū)域內(nèi)的任意點z之間的相對距離以及方向關(guān)系,反映的是目標與其周圍區(qū)域的空間關(guān)系。在空間中存在有點與點之間的對稱關(guān)系。但hsc(x-z)表示的并不是一個徑向?qū)ΨQ的函數(shù),即
hsc(x*-zl)≠hsc(x*-zr)
P(c(z)│o)=I(z)ωσ(z-x*)
(9)
根據(jù)置信圖計算出最大似然概率點的坐標作為跟蹤目標的中心位置,因此該概率又被稱為后驗概率,其計算如下
(10)
實驗表明:當β=1時,魯棒性最好。
由式(6)、式(8)、式(9)和式(10)得
=hsc(x)?(I(x)ωσ(x-x*))
(11)
式(11)通過傅里葉變換轉(zhuǎn)換到頻率域進行計算并變形,有
(12)
式(12)即為求出的當前幀的空間上下文模型。
通過式(13)來更新STC模型
(13)
利用t+1幀時刻的置信圖計算出最大似然概率來獲取新的目標坐標,計算公式如下
(14)
算法的核心思想是:在運動目標正常行進的過程中,采用STC算法中置信圖最大似然概率點作為下一時刻運動目標的中心。當發(fā)生遮擋時,通過置信圖得到的中心點會停止或變化在一個很小的范圍內(nèi),設(shè)定一個合適的閾值來判斷遮擋已經(jīng)發(fā)生,此時用CamShift算法得到的點作為下一時刻運動目標的中心,并更新局部上下文區(qū)域。這種結(jié)合可以使在未發(fā)生遮擋時利用STC算法保證目標跟蹤的穩(wěn)定性,在發(fā)生遮擋時通過CamShift算法來修正運動目標的中心,增加了算法的魯棒性。算法基本步驟如下:
1)獲取感興趣的區(qū)域:在初始幀中用鼠標框選出待跟蹤的目標,并記錄跟蹤框的中心和大小;
2)初始化參數(shù):需要初始化尺度參數(shù)σ,比例參數(shù)α,形狀參數(shù)β,學習參數(shù)ρ以及上下文區(qū)域的大小;
3)計算待跟蹤目標的二維顏色直方圖;
4)計算前景圖:根據(jù)式(9)和式(10)計算上下文的先驗概率和后驗概率;
5)通過離散傅里葉變換和反離散傅里葉變換求得當前幀的空間上下文;
6)根據(jù)當前幀的STC更新下一時刻的時空上下文;
7)根據(jù)顏色直方圖獲取反向投影;
8)計算新的投影圖;
9)根據(jù)新投影圖進行CamShift跟蹤,并記錄獲得的跟蹤框中心點;
10)計算置信圖最大釋然概率點的位置作為下一幀跟蹤框的中心,并記錄點的坐標;
11)判斷最大釋然概率點坐標的大小與上一次計算的大小是否小于閾值,若小于,則說明目標被遮擋,將步驟(9)求得的中心作為下一幀跟蹤框的中心,并更新STC;
12)記錄最大釋然概率點坐標的大小;
13)顯示跟蹤結(jié)果;
14)若剩余視頻幀數(shù)不為0,則返回到步驟(4)循環(huán)。
本文所有實驗的硬件測試平臺為2.6 GHz CPU,8 GRAM,Windows 64位PC,軟件實現(xiàn)平臺為VS2015和OpenCV3.1.0。實驗中圖像來源于國外標準測試視頻集,實驗結(jié)果如圖3~圖5所示。
圖3 對FaceOcc2圖像序列跟蹤結(jié)果
圖4 對Girl圖像序列跟蹤結(jié)果
圖5 對Walk圖像序列跟蹤結(jié)果
以上3個實驗中,粗線框矩形為CamShift算法的跟蹤效果,橢圓形為傳統(tǒng)STC算法的跟蹤效果,細線框矩形為文本跟蹤算法的效果。從圖3中可以看出,對于背景不復(fù)雜,圖像色彩也相對簡單的場景,3種算法的跟蹤效果均可以滿足要求。圖4中當出現(xiàn)旋轉(zhuǎn)、遮擋等情況時,傳統(tǒng)的STC算法出現(xiàn)了波動,甚至跟蹤失敗。圖5中當出現(xiàn)完全遮擋時,傳統(tǒng)的STC算法的跟蹤框直接停留在了遮擋物上,直接跟蹤失敗,而本文算法通過CamShift跟蹤中心修正了局部上下文區(qū)域使得跟蹤能夠繼續(xù)進行。
本文通過中心誤差[10]和每幀平均運行時間來衡量各個算法的檢測效果。對3種算法在FaceOcc2,Girl,Walk圖像序列上進行中心誤差分析,并將結(jié)果與給出的groundtruth進行比較,結(jié)果如圖6所示。各算法運行時間如表1所示。
圖6 中心誤差分析結(jié)果
圖像序列本文算法STCCamShiftFaceOcc20.07740.03010.0582Girl0.04850.01370.0297Walk0.03930.01560.0306
由圖6看到,本文優(yōu)化算法的整體中心誤差波動最小。從表1可以看出,由于本文算法為兩者的結(jié)合算法,所以時間復(fù)雜度上較其他方法稍微提高了一些,但是其數(shù)量級比較小并不影響實時性。
本文將STC與CamShift目標跟蹤算法相結(jié)合,通過CamShift算法中的反向投影來修正遮擋問題中的STC算法的中心和局部上下文區(qū)域,提升了算法的魯棒性和適應(yīng)性。
參考文獻:
[1] Yilmaz A,Javed O,Shah M.Object tracking:A survey[J].ACM Computing Surveys(CSUR),2006,38(4):13.
[2] 武洪云,魏 西.機器視覺技術(shù)在防凌破冰中的應(yīng)用[J].無線電通信技術(shù),2015,41(1):84-86.
[3] 范肖肖,許文波,楊 淼,等.基于視覺注意機制的遙感圖像船只檢測[J].無線電工程,2016,46(1)57-60.
[4] 鄔大鵬,程衛(wèi)平,于盛林.基于幀間差分和運動估計的Camshift目標跟蹤算法[J].光電工程,2010,37(1):55-60.
[5] 錢永青,謝勤嵐.結(jié)合Camshift和Kalman預(yù)測的運動目標跟蹤[J].計算機工程與科學,2010,32(8):81-83.
[6] 翟衛(wèi)欣,程承旗.基于Kalman濾波的Camshift運動跟蹤算法[J].北京大學學報:自然科學版,2015,51(5):799-804.
[7] Zhang K H,Zhang L,Liu Q S,et al.Fast visual tracking via dense spatio-temporal context learning[C]∥European Conference on Computer Vision,2014:127-141.
[8] 葛驍倩,陳秀宏,傅俊鵬.基于敏感直方圖的時空上下文跟蹤[J].傳感器與微系統(tǒng),2017,36(1):149-152.
[9] 趙 洲,黃攀峰,陳 路.一種融合卡爾曼濾波的改進時空上下文跟蹤算法[J].航空學報,2017,38(2):269-279.
[10] 李澤仁,紀 峰,常 霞,等.多尺度時空上下文目標跟蹤[J].紅外技術(shù),2017,39(6):535-540.
[11] 周華爭,馬小虎.基于均值漂移算法和時空上下文算法的目標跟蹤[J].計算機科學,2017,44(8):22-26.
[12] 楊 彪,林國余,張為公,等.融合殘差Unscented粒子濾波和區(qū)別性稀疏表示的魯棒目標跟蹤[J].中國圖象圖形學報,2014,19(5):730-738.