劉志峰,陳姚節(jié),2,3,程 杰
(1.武漢科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 武漢 430065;2.智能信息處理與實(shí)時(shí)工業(yè)系統(tǒng)湖北省重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430065;3.冶金工業(yè)過(guò)程國(guó)家級(jí)虛擬仿真實(shí)驗(yàn)教學(xué)中心,湖北 武漢 430065)
現(xiàn)如今,在計(jì)算機(jī)視覺(jué)領(lǐng)域里,越來(lái)越多的人開(kāi)始關(guān)注目標(biāo)跟蹤[1]這樣一個(gè)熱門(mén)問(wèn)題。目標(biāo)跟蹤在人機(jī)交互、自動(dòng)駕駛以及智能視頻監(jiān)控領(lǐng)域有著十分廣泛的應(yīng)用[2-4]。目標(biāo)跟蹤任務(wù)指的是在給定視頻序列初始幀目標(biāo)位置以及大小的條件下,對(duì)后續(xù)視頻幀目標(biāo)位置以及大小進(jìn)行預(yù)測(cè)。然而,在實(shí)際跟蹤場(chǎng)景中,目標(biāo)跟蹤算法往往存在諸如遮擋、尺度變化以及快速運(yùn)動(dòng)等問(wèn)題,因此,采取何種方式來(lái)實(shí)現(xiàn)目標(biāo)的魯棒跟蹤以及快速跟蹤仍是一項(xiàng)極具挑戰(zhàn)性的任務(wù)。
近年來(lái),以相關(guān)濾波[5]為基礎(chǔ)的一些方法因?yàn)轸敯粜詮?qiáng)、速度快且精度高等特點(diǎn),已成為了當(dāng)前的研究熱點(diǎn)。Bolme等人研究出MOSSE(minimum output sum of squared error filter)[6]跟蹤算法,首次將相關(guān)濾波應(yīng)用到目標(biāo)跟蹤領(lǐng)域并取得了很好效果。Henriques等人則針對(duì)MOSSE算法涉及的核函數(shù)進(jìn)行了優(yōu)化和改善,進(jìn)而提出了以循環(huán)為基礎(chǔ)(circulant structure kernel,CSK)[7]的跟蹤算法,借助循環(huán)矩陣性質(zhì)最終實(shí)現(xiàn)了密集采樣,解決了訓(xùn)練樣本不足的問(wèn)題。在此之后,Henriques等人又提出(kernel correlation filter,KCF)[8]跟蹤算法,在嶺回歸中引入核函數(shù),將單通道灰度特征用HOG特征來(lái)替代,提高了跟蹤的精度。Danelljan等人借助顏色屬性特征來(lái)針對(duì)CSK算法進(jìn)行拓展[9],此算法主要借助主成分分析的方法來(lái)針對(duì)11維顏色特征進(jìn)行降維處理,最終達(dá)到2維層級(jí),提升了跟蹤的精度,即便是處于運(yùn)動(dòng)模糊或者目標(biāo)變形等狀態(tài)下依然能夠得到良好的跟蹤效果。針對(duì)目標(biāo)跟蹤過(guò)程中尺度變化的問(wèn)題,文獻(xiàn)[10]結(jié)合尺度金字塔與相關(guān)濾波,對(duì)不同尺度的圖像塊進(jìn)行檢測(cè),解決了目標(biāo)尺度變化的問(wèn)題。
盡管上述跟蹤算法對(duì)跟蹤領(lǐng)域做出了巨大改進(jìn),但是它們大多針對(duì)某一個(gè)方面去完善,在跟蹤魯棒性以及跟蹤成功率方面仍然存在較大的提升空間。該文在位置預(yù)測(cè)、尺度估計(jì)和模型更新三個(gè)方面改進(jìn)KCF跟蹤算法,具體的研究工作包括:在跟蹤過(guò)程中的目標(biāo)檢測(cè)階段,利用幀差法對(duì)圖像進(jìn)行處理,預(yù)測(cè)目標(biāo)位置,擴(kuò)充算法的檢測(cè)區(qū)域,在目標(biāo)處于快速運(yùn)動(dòng)狀態(tài)時(shí),能夠準(zhǔn)確跟蹤目標(biāo);針對(duì)KCF跟蹤算法無(wú)法適應(yīng)目標(biāo)尺度變化的問(wèn)題,通過(guò)尺度池建立多尺度待檢測(cè)圖像塊集,實(shí)現(xiàn)跟蹤框自適應(yīng)目標(biāo)尺度變化;將APCE作為目標(biāo)跟蹤置信度指標(biāo),用來(lái)判斷跟蹤結(jié)果是否可靠,當(dāng)結(jié)果不可靠時(shí),不進(jìn)行模型更新,有效減緩了模型退化。
KCF跟蹤算法通過(guò)循環(huán)矩陣對(duì)樣本進(jìn)行密集采樣,然后使用脊回歸來(lái)針對(duì)濾波器進(jìn)行訓(xùn)練,對(duì)于循環(huán)矩陣而言,它能夠在傅里葉空間里實(shí)現(xiàn)對(duì)角化,根據(jù)此特點(diǎn)將矩陣的運(yùn)算轉(zhuǎn)化為元素的點(diǎn)乘,故而能夠在很大程度上降低計(jì)算量,從而達(dá)到快速跟蹤的目的。
對(duì)訓(xùn)練樣本x循環(huán)移位,得到的正、負(fù)樣本組成矩陣X:
(1)
經(jīng)過(guò)傅里葉變換的任意循環(huán)矩陣均能夠轉(zhuǎn)變成為對(duì)角矩陣,X可以用如下公式來(lái)表示:
(2)
KCF跟蹤算法以脊回歸方式訓(xùn)練濾波器,假設(shè)訓(xùn)練樣本集為(xi,yi),那么存在相應(yīng)的線性回歸函數(shù)f(xi)=wTxi,其中w代表的是權(quán)重系數(shù),通過(guò)最小二乘法能夠?qū)⑵淝蠼?,即?/p>
(3)
其中,λ的主要作用是對(duì)系統(tǒng)結(jié)構(gòu)復(fù)雜性進(jìn)行控制,由式(3)求解得到權(quán)重系數(shù):
w=(XHX+λI)-1XHY
(4)
a=(K+λI)-1Y
(5)
其中,I代表的是單位矩陣,K代表的是核矩陣,可以表示為:Kij=k(xi,xj)=〈φT(xi),φ(xj)〉,〈,〉代表的是點(diǎn)積運(yùn)算,k為核函數(shù)。通過(guò)傅里葉變換可得:
(6)
將尺寸大于目標(biāo)且包含上一幀目標(biāo)的圖像塊作為搜索窗口,并且針對(duì)此搜索窗口進(jìn)行循環(huán)移位,最終得到待檢測(cè)圖像塊,利用濾波器求得待檢測(cè)圖像塊的響應(yīng),可表示為f(z)=wTz,z指的是待檢測(cè)圖像塊,借助核函數(shù)來(lái)針對(duì)其開(kāi)展映射,得到方程:
(7)
其中,xi為訓(xùn)練樣本,為簡(jiǎn)化計(jì)算過(guò)程提升效率,針對(duì)式(7),將其對(duì)角化得:
(8)
其中,·代表的是矩陣點(diǎn)乘,x屬于先前幀學(xué)習(xí)過(guò)程中獲得的目標(biāo)模型。利用離散傅里葉變換對(duì)式(8)進(jìn)行逆運(yùn)算,最終獲得待檢測(cè)圖像塊z的響應(yīng)矩陣,其中最大響應(yīng)的圖像位置即為目標(biāo)的預(yù)測(cè)位置。
(9)
(10)
KCF跟蹤算法在檢測(cè)目標(biāo)時(shí),待檢測(cè)樣本集由上一幀的跟蹤結(jié)果作為基樣本進(jìn)行循環(huán)移位得到,構(gòu)成的區(qū)域?yàn)闄z測(cè)區(qū)域。參照檢測(cè)區(qū)域里目標(biāo)所處的具體位置存在如下四種情況:
(1)假如目標(biāo)處于中心點(diǎn)位置附近,那么檢測(cè)準(zhǔn)確率將很高。
(2)假如目標(biāo)所處位置處于邊界附近,但是并沒(méi)有超過(guò)邊界范圍,那么增加余弦窗之后,部分目標(biāo)像素會(huì)被過(guò)濾,那么便無(wú)法保證此時(shí)獲得的響應(yīng)為全局范圍內(nèi)的最大響應(yīng),則很可能檢測(cè)失敗。
(3)目標(biāo)部分超過(guò)檢測(cè)區(qū)域,僅存的目標(biāo)像素將會(huì)被過(guò)濾,那么檢測(cè)將會(huì)失效。
(4)如若目標(biāo)當(dāng)前已經(jīng)完全處于檢測(cè)區(qū)域范圍外,檢測(cè)失敗。
當(dāng)視頻幀率較低,或者目標(biāo)處于較快運(yùn)動(dòng)狀態(tài)時(shí),相鄰兩幀目標(biāo)中心會(huì)相距很大,目標(biāo)會(huì)偏離檢測(cè)區(qū)域中心過(guò)遠(yuǎn),檢測(cè)將會(huì)失敗,誤差將不斷積累進(jìn)而使得算法跟蹤失效。
幀差法是對(duì)視頻序列中連續(xù)的兩幀圖像或三幀做差分運(yùn)算,借助對(duì)比閾值的方式獲取運(yùn)動(dòng)目標(biāo)位置。定義ft-1(x,y)和ft(x,y)為連續(xù)的兩幀圖像,兩幀差分規(guī)則如下:
(11)
其中,T代表的是事先設(shè)定的閾值,dt代表的是經(jīng)過(guò)差分以后獲得的二值圖像,其中像素值為0的點(diǎn)屬于背景點(diǎn),像素值為255的點(diǎn)屬于前景點(diǎn),前景點(diǎn)組成的區(qū)域即為預(yù)測(cè)的目標(biāo)所在位置。
幀差法能分析目標(biāo)的運(yùn)動(dòng)信息,預(yù)測(cè)目標(biāo)的位置[11]。但幀差法存在一定的誤差,而且當(dāng)目標(biāo)不動(dòng)時(shí),檢測(cè)不到目標(biāo),當(dāng)背景也在改變時(shí),就會(huì)檢測(cè)出錯(cuò)誤的目標(biāo)。因此,該文將幀差法和KCF跟蹤算法相結(jié)合,在跟蹤算法的目標(biāo)檢測(cè)階段,將幀差法預(yù)測(cè)的目標(biāo)位置所在圖像塊也作為搜索窗口,并用濾波器求得該搜索窗口循環(huán)移位得到的待檢測(cè)圖像塊的響應(yīng),這樣就擴(kuò)大了檢測(cè)區(qū)域。當(dāng)目標(biāo)快速運(yùn)動(dòng)或者視頻幀率低時(shí),擴(kuò)大了的檢測(cè)區(qū)域也會(huì)很好地包含目標(biāo),跟蹤器便能夠十分準(zhǔn)確地將目標(biāo)檢測(cè)出來(lái)。當(dāng)幀差法誤差較大時(shí),幀差法預(yù)測(cè)的目標(biāo)位置構(gòu)成的檢測(cè)區(qū)域的濾波器響應(yīng)也會(huì)很低,因此不會(huì)增加KCF跟蹤算法的誤差。
KCF跟蹤算法在跟蹤過(guò)程中算法預(yù)測(cè)的目標(biāo)框的大小是固定的,假如跟蹤目標(biāo)存在縮小情況時(shí),那么濾波器將對(duì)大量背景信息進(jìn)行學(xué)習(xí),當(dāng)跟蹤目標(biāo)變大時(shí),目標(biāo)局部信息將容易丟失,上述兩種狀況均可能導(dǎo)致非預(yù)期結(jié)果的出現(xiàn),進(jìn)而導(dǎo)致跟蹤出現(xiàn)漂移或者失敗。該文利用運(yùn)用尺度池建立多尺度待檢測(cè)圖像塊集來(lái)解決目標(biāo)尺度變化問(wèn)題。定義尺度池為S={s1,s2,…,sL},其中si(i=1,2,…,L)表示尺度因子,L為尺度變化數(shù)目,設(shè)模板尺寸為rT,候選目標(biāo)圖像尺寸為r,利用尺度池得到的多尺度待檢測(cè)圖像塊集為:
Zk=Sr=sir(k,i=1,2,…,L)
(12)
其中,si>1表示放大候選目標(biāo)圖像,si<1表示縮小候選目標(biāo)圖像。然后求取各個(gè)尺度待檢測(cè)圖像塊的響應(yīng)值,在求響應(yīng)值時(shí)將候選目標(biāo)圖像尺寸歸一化為rT,借助式(13)計(jì)算出最大響應(yīng)值對(duì)應(yīng)的尺度,即可計(jì)算出目標(biāo)最佳尺寸。
(13)
在跟蹤過(guò)程中,目標(biāo)形狀、角度和尺度可能會(huì)發(fā)生改變,KCF跟蹤算法采用線性插值法更新模型參數(shù)來(lái)適應(yīng)目標(biāo)的變化。然而當(dāng)某一幀跟蹤效果不準(zhǔn)確,甚至是被遮擋或出視野的情況時(shí),如果此時(shí)繼續(xù)更新模型,就會(huì)導(dǎo)致跟蹤器學(xué)習(xí)到大量非目標(biāo)特征信息,例如遮擋物和雜亂背景,這時(shí)誤差會(huì)被逐漸累積,模型被逐漸污染,最終導(dǎo)致跟蹤失敗。
該文利用平均峰值相關(guān)能量(average peak-to correlation energy,APCE)作為跟蹤置信度指標(biāo),APCE的定義為:
(14)
其中,F(xiàn)max、Fmin分別表示響應(yīng)圖中的最大值、最小值,F(xiàn)w,h表示位置對(duì)應(yīng)的響應(yīng)值。APCE的值越大,表示此時(shí)的跟蹤結(jié)果置信度越大。目標(biāo)在被遮擋的情況下,F(xiàn)max值和APCE值會(huì)顯著下降,但是當(dāng)模型持續(xù)的錯(cuò)誤更新直至被嚴(yán)重污染時(shí),F(xiàn)max值和APCE值會(huì)逐漸提高,雖然APCE值很高,但由于模型已經(jīng)錯(cuò)誤,所以跟蹤結(jié)果是不正確的。有且僅當(dāng)Fmax值和APCE值均以一定比例ρ1、ρ2同時(shí)超過(guò)其歷史均值時(shí),才認(rèn)為此時(shí)的跟蹤結(jié)果是準(zhǔn)確的,并對(duì)模型進(jìn)行更新,反之,只要其中有一個(gè)低于歷史均值,就不對(duì)模型進(jìn)行更新。這樣有效減緩了模型退化,除此之外模型更新的次數(shù)也得到了減少,在很大程度上提高了目標(biāo)跟蹤效率。
為了進(jìn)一步驗(yàn)證所提跟蹤算法的性能,在OTB100數(shù)據(jù)集[12]上與KCF、SAMF[13]、DSST[14]、CSK、Staple[15]、SRDCF[16]等算法進(jìn)行了對(duì)比實(shí)驗(yàn)。OTB100數(shù)據(jù)集里包含的測(cè)試視頻序列有100個(gè),涉及了目標(biāo)跟蹤領(lǐng)域中各種常見(jiàn)的難點(diǎn)問(wèn)題,例如快速運(yùn)動(dòng)、背景干擾、尺度變化、目標(biāo)旋轉(zhuǎn)、低分辨率、目標(biāo)遮擋等。
實(shí)驗(yàn)硬件配置為Intel i5-6300HQ CPU,主頻2.30 GHz,8 GB內(nèi)存,Windows 10操作系統(tǒng)。編程平臺(tái)為MATLAB R2018b。文中算法部分參數(shù)設(shè)置為:學(xué)習(xí)率η=0.015,尺度池S={0.94,0.97,1,1.03,1.06},搜索框padding=2,ρ1=0.5,ρ2=0.35。
在進(jìn)行定量分析時(shí),主要運(yùn)用OPE(one pass evaluation)評(píng)估方式來(lái)完成。OPE指根據(jù)第一幀中對(duì)目標(biāo)的標(biāo)注位置進(jìn)行初始化,然后在該序列中運(yùn)行算法直至結(jié)束的一種方式。利用距離精度和成功率來(lái)評(píng)價(jià)算法的性能。距離精度指中心位置誤差小于某個(gè)閾值的幀數(shù)占視頻總幀數(shù)的百分比,距離精度越高代表跟蹤效果越好。中心位置誤差指跟蹤算法預(yù)測(cè)的目標(biāo)中心坐標(biāo)與實(shí)際目標(biāo)中心的歐氏距離,即:
(15)
其中,(xi,yi)指跟蹤算法預(yù)測(cè)的目標(biāo)中心點(diǎn)位置,而實(shí)際中心位置是(xj,yj)。VCLE的值越低代表跟蹤效果越好。成功率指跟蹤算法預(yù)測(cè)的目標(biāo)框與真實(shí)標(biāo)注的目標(biāo)框的交并比(IOU)大于某個(gè)閾值的幀數(shù)占視頻總幀數(shù)的百分比。IOU的計(jì)算公式為:
(16)
其中,BT指算法預(yù)測(cè)的目標(biāo)框,BG表示真實(shí)標(biāo)注的目標(biāo)框。一般將算法的成功率圖的曲線下面積作為評(píng)分,曲線下面積越大代表跟蹤效果越好。
圖1為七種跟蹤算法對(duì)應(yīng)的距離精度曲線,OURS曲線為文中所提算法。圖中標(biāo)簽欄內(nèi)的數(shù)字代表中心位置誤差小于20像素的幀數(shù)占視頻總幀數(shù)的百分比,從圖中可以看出文中算法排名第一,比基準(zhǔn)算法KCF高出12.0個(gè)百分點(diǎn)。圖2為七種跟蹤算法對(duì)應(yīng)的成功率曲線,圖中標(biāo)簽欄內(nèi)的數(shù)字代表該算法曲線下的面積,從圖中可以看出文中算法排名也是第一,相比基準(zhǔn)算法KCF高出了21.7個(gè)百分點(diǎn)。這說(shuō)明文中算法具有較好的跟蹤性能。
圖1 距離精度曲線
圖2 成功率曲線
為了更直觀地展示文中算法相對(duì)于KCF跟蹤算法的改進(jìn)效果,選取部分序列用文中算法和KCF跟蹤算法進(jìn)行了對(duì)比跟蹤測(cè)試。圖3為跟蹤結(jié)果。
圖3(a)為BlurOwl序列19幀到411幀的跟蹤結(jié)果。在BlurOwl序列中,由于攝像頭的劇烈抖動(dòng),目標(biāo)在畫(huà)面中快速運(yùn)動(dòng),相鄰幀的目標(biāo)中心位置相距比較大,KCF跟蹤算法的檢測(cè)區(qū)域不能完整地包含目標(biāo),導(dǎo)致逐漸跟蹤失敗。而文中算法始終正確跟蹤目標(biāo),說(shuō)明了該算法能有效應(yīng)對(duì)快速運(yùn)動(dòng)的場(chǎng)景。
圖3(b)為carScale序列20幀到226幀的跟蹤結(jié)果。在carScale序列中,小汽車(chē)由遠(yuǎn)及近開(kāi)過(guò)來(lái),畫(huà)面中的小汽車(chē)越來(lái)越大,KCF跟蹤算法目標(biāo)框的大小是固定的,導(dǎo)致跟蹤失敗。而文中算法則較好地適應(yīng)了目標(biāo)的尺度變化。
圖3 兩種算法的跟蹤結(jié)果
圖3(c)為Human4序列35幀到370幀的跟蹤結(jié)果。在Human4序列中,行人在335幀左右被交通燈遮擋,在被遮擋的過(guò)程中,KCF跟蹤算法持續(xù)更新模型,跟蹤器學(xué)習(xí)了大量交通燈的特征信息,模型被污染,導(dǎo)致跟蹤失敗。文中算法通過(guò)高置信度更新避免了模型被污染,實(shí)現(xiàn)了對(duì)目標(biāo)的準(zhǔn)確跟蹤。
提出了一種結(jié)合幀差法的多尺度核相關(guān)濾波跟蹤算法。在位置預(yù)測(cè)、尺度估計(jì)和模型更新三個(gè)方面改進(jìn)了KCF跟蹤算法:在跟蹤過(guò)程中的目標(biāo)檢測(cè)階段,利用幀差法處理圖像,獲得目標(biāo)的預(yù)測(cè)位置,擴(kuò)充算法的檢測(cè)區(qū)域;通過(guò)尺度池建立多尺度待檢測(cè)圖像塊集,實(shí)現(xiàn)跟蹤框自適應(yīng)目標(biāo)尺度變化;利用APCE實(shí)現(xiàn)模型可靠性更新,有效減緩了模型退化。在OTB100數(shù)據(jù)庫(kù)上與其他已有的若干視覺(jué)跟蹤算法進(jìn)行了對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,該算法在目標(biāo)快速運(yùn)動(dòng)、尺度變化、遮擋等復(fù)雜情況下,均具有較強(qiáng)的精確性和魯棒性。但是該算法僅利用了HOG特征,無(wú)法很好地應(yīng)對(duì)目標(biāo)的顏色變化,有待進(jìn)一步研究。
計(jì)算機(jī)技術(shù)與發(fā)展2021年2期