李 敏,吳 莎
(長安大學(xué) 信息工程學(xué)院,陜西 西安 710000)
目標(biāo)跟蹤是一個(gè)具有挑戰(zhàn)性的計(jì)算機(jī)視覺問題,特別是存在遮擋、目標(biāo)變形、光照變化等情況下。粒子濾波器由于能夠有效地確定目標(biāo)的位置和大小,多年來一直被應(yīng)用于視覺跟蹤[1-2]。例如,文獻(xiàn)[3]提出了一種基于自頂向下視覺注意力計(jì)算模型的粒子濾波視覺跟蹤器。該算法是檢測目標(biāo)相關(guān)的突出區(qū)域,然后將顯著區(qū)域發(fā)送到粒子濾波器,確定目標(biāo)的位置。文獻(xiàn)[4]提出了一種名為螢火蟲的優(yōu)化算法,該算法通過動態(tài)增加有意義粒子的數(shù)量來提高跟蹤性能。文獻(xiàn)[5]提出基于一種新的迭代粒子濾波器(IPF),該濾波器在收縮的搜索范圍內(nèi)對粒子進(jìn)行迭代采樣。此外,文獻(xiàn)[6]中將粒子濾波與基于高斯混合的目標(biāo)外觀模型結(jié)合使用。雖然基于粒子濾波器的視覺跟蹤方法,或者基于相關(guān)濾波器的視覺跟蹤方法[7]的跟蹤結(jié)果都可以接受,但是它們不如基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)產(chǎn)生具有高度識別性的目標(biāo)特征[8]的跟蹤器有效。
卷積神經(jīng)網(wǎng)絡(luò)在成功應(yīng)用于對象檢測任務(wù)[9]之后,又被應(yīng)用于視覺跟蹤,到目前為止,已經(jīng)提出了幾種不同的CNN結(jié)構(gòu)。文獻(xiàn)[10]提出的是基于3個(gè)卷積層和若干降采樣層的CNN對當(dāng)前幀和上一幀進(jìn)行采樣,獲取目標(biāo)和背景的空間、時(shí)間特征。采用了兩個(gè)采樣對,分別輸入兩個(gè)CNN網(wǎng)絡(luò),得到4張關(guān)鍵點(diǎn)的概率圖,從而提高了跟蹤的精確度。文獻(xiàn)[11]是離線訓(xùn)練多層的卷積神經(jīng)網(wǎng)絡(luò),學(xué)習(xí)得到可以反映圖像一般性特征的卷積核后,通過遷移學(xué)習(xí)在線特征提取,使用粒子濾波算法進(jìn)行目標(biāo)跟蹤。文獻(xiàn)[12]采用較小的網(wǎng)絡(luò)來進(jìn)行特征提取并在全連接層進(jìn)行綜合,得到輸出向量,最后根據(jù)該向量來判別樣本是目標(biāo)還是背景,從而估計(jì)目標(biāo)位置。雖然近幾年基于深度學(xué)習(xí)的跟蹤算法大幅提升了跟蹤算法性能,對目標(biāo)和背景信息進(jìn)行較詳細(xì)的提取,具有很好的判別能力,但其在應(yīng)對目標(biāo)表觀發(fā)生變化的情況下,缺乏目標(biāo)全局的高級語義信息,所以跟蹤算法性能還有待提升。
文中將卷積粒子濾波技術(shù)與CNN相結(jié)合,以提高其在變形、光照變化、快速運(yùn)動等情況下的性能。該算法使用預(yù)先訓(xùn)練的網(wǎng)絡(luò)來幫助PF建模跟蹤目標(biāo)對象,卷積粒子濾波通過貝葉斯最優(yōu)估計(jì)來選擇候選目標(biāo)并定位目標(biāo),避免了人工干預(yù)。深層特征和手工特征融合帶來了更穩(wěn)定的觀測模型,使得PF在保證魯棒跟蹤的同時(shí),能夠選擇少量的粒子,減輕了計(jì)算負(fù)擔(dān)。這些操作克服了跟蹤過程中存在較大的遮擋或快速運(yùn)動,目標(biāo)形變等問題,實(shí)現(xiàn)了魯棒跟蹤。
綜上所述,針對單一特征帶來的跟蹤不足問題,將基于目標(biāo)的顏色特征和基于CNN的特征方法[13]結(jié)合對目標(biāo)進(jìn)行特征表述,同時(shí)集合了兩種算法的優(yōu)點(diǎn),利用深度學(xué)習(xí)和粒子濾波的特點(diǎn)提出了一種新的跟蹤方法,該方法使用預(yù)先訓(xùn)練的網(wǎng)絡(luò)來幫助粒子濾波跟蹤來建模目標(biāo)對象。粒子濾波是指通過貝葉斯最優(yōu)估計(jì)來選擇候選目標(biāo)并定位目標(biāo),避免了人工干預(yù),實(shí)現(xiàn)了自動跟蹤。同時(shí),深層特征和手工特征融合帶來了更穩(wěn)定的觀測模型,使得PF在保證魯棒跟蹤的同時(shí),能夠選擇少量的粒子,減輕了計(jì)算負(fù)擔(dān)。
在卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)時(shí),空間信息會隨著網(wǎng)絡(luò)的加深而稀釋,因此會導(dǎo)致圖像中目標(biāo)定位不精準(zhǔn)的情況[14]。經(jīng)研究表明,在卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中,第三個(gè)卷積層的卷積特征保留了目標(biāo)更多的空間細(xì)節(jié)信息[15],如目標(biāo)的位置信息等。由于圖像經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)的三個(gè)卷積層得到的特征保留了目標(biāo)的空間位置信息,而且考慮到卷積運(yùn)算的復(fù)雜耗時(shí),跟蹤算法必須要滿足實(shí)時(shí)性,因此文中設(shè)計(jì)一個(gè)包括3個(gè)卷積結(jié)構(gòu)的深度網(wǎng)絡(luò),每個(gè)卷積結(jié)構(gòu)包含一個(gè)卷積層和一個(gè)池化層,加上一個(gè)完全連接層由此構(gòu)建了一個(gè)9層的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取。整體框架如圖1所示。
圖1 CNN網(wǎng)絡(luò)結(jié)構(gòu)
輸入層,向網(wǎng)絡(luò)輸入X=58×58的目標(biāo)圖像。
卷積層,卷積層的卷積核對輸入的圖像進(jìn)行卷積操作,從而得到輸入圖像的特征圖。過程:Conv1層使用8個(gè)7×7的卷積核,得到8個(gè)52×52大小的特征圖;Conv2層使用16個(gè)7×7的卷積核,得到16個(gè)20×20大小的特征圖;Conv3層使用32個(gè)7×7的卷積核,得到32個(gè)4×4大小的特征圖。卷積槽的激活函數(shù)為sigmoid函數(shù):
(x=1,2,3)
(1)
其中,f1,f2和f3分別是三個(gè)卷積層的卷積核大小,分別用于生成Conv1、Conv2和Conv3三層特性,?為卷積操作,H0為原始的圖像輸入X,bx是一個(gè)偏移值。
池化層,通常情況是在卷積層之后,根據(jù)一定的規(guī)則對卷積層生成的特征圖進(jìn)行池化。池化層的功能主要有兩點(diǎn):(1)對特征圖進(jìn)行降維;(2)在一定程度上保持特征圖特征的尺度不變性。
(2)
其中,a1,a2,a3,a4為四個(gè)相鄰的卷積核的子采樣值,sum由以下公式得出:
sum=a1p(i,j)+a2p(i,j+1)+a3p(i+1,j)+a4p(i+1,j+1)
(3)
其中p(i,j),p(i,j+1),p(i+1,j),p(i+1,j+1)表示卷積特征映射中的四個(gè)鄰居值。這些簡單的操作不僅減少了數(shù)據(jù)數(shù)量,而且提取了有用的深層信息。
全連接層,32個(gè)2×2的卷積核對第三個(gè)池化層輸出的特征圖進(jìn)行卷積操作,得到1個(gè)128維的目標(biāo)特征矩陣。
輸出層,在完全連接層之后,支持向量機(jī)有助于區(qū)分正樣本和負(fù)樣本,通過支持向量機(jī)對目標(biāo)特征進(jìn)行分類,將輸出層分為目標(biāo)和背景。
由于深層學(xué)習(xí)網(wǎng)絡(luò)需要大量的訓(xùn)練樣本,而這在視覺跟蹤中經(jīng)常是不可用的,因?yàn)閺某跏紟刑崛〉目煽空龑?shí)例數(shù)量很少。在文獻(xiàn)[16]中指出對使用大規(guī)模數(shù)據(jù)集訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)模型而提取到的特征,對其他的任務(wù)也具有普適性。因此這里把這個(gè)網(wǎng)絡(luò)看成是用于在線跟蹤應(yīng)用程序的預(yù)定義數(shù)據(jù)集。數(shù)據(jù)集由視覺跟蹤器基準(zhǔn)[3]提供,并且包括大量的正和負(fù)樣本。該數(shù)據(jù)集具有光照變化、旋轉(zhuǎn)、尺度變化等多種數(shù)據(jù)增強(qiáng)的挑戰(zhàn)性。在訓(xùn)練過程中,隨機(jī)梯度法(SGD)優(yōu)化了模型中的參數(shù)。
在跟蹤過程中,傳統(tǒng)的粒子濾波以顏色直方圖作為外觀模型,它不能有效地處理突然的變化,因?yàn)樗褌鞑ツP涂闯墒且粋€(gè)簡單的零均值高斯過程,其位置的方差是一致的。而將卷積神經(jīng)網(wǎng)絡(luò)的層參數(shù)固定,僅對全連接層和輸出層參數(shù)進(jìn)行更新,得到跟蹤目標(biāo)的深度特征,再在粒子濾波框架下得到跟蹤目標(biāo)的顏色直方圖特征。而將深層特征與手工制作的特征融合在一起,用于視頻目標(biāo)跟蹤,提高跟蹤目標(biāo)的精度,得到持續(xù)和魯棒的跟蹤。
在線粒子濾波跟蹤算法包括四個(gè)步驟:
c2中每個(gè)元素hU的計(jì)算公式為:
(4)
其中,K為歸一化常數(shù),N為目標(biāo)區(qū)域像素總個(gè)數(shù),u為直方圖箱數(shù)索引值,f(xi)為xi所在直方圖段數(shù)的函數(shù),δ為Delta函數(shù)。
步驟2:粒子傳播采用的是一個(gè)動態(tài)模型:
(5)
步驟3:通過觀測模型對粒子進(jìn)行加權(quán),每個(gè)粒子的權(quán)重為:
(6)
其中,λ為設(shè)計(jì)參數(shù),D(n)為Bhattacharya距離:
(7)
(8)
(9)
其中,a為權(quán)重參數(shù),C0為更新前模型的特征向量。通過這種方式,模型可以保持以前的外觀和當(dāng)前的功能,閾值和加權(quán)平均控制了更新程度。該方法使跟蹤算法能夠處理運(yùn)動、變形和遮擋等挑戰(zhàn)。
實(shí)驗(yàn)計(jì)算機(jī)配置為Windows8系統(tǒng)內(nèi)配置Ubuntu16.04虛擬機(jī),以及CUDA8.0、CUDNN5.1、NVIDIA GTX1070TI。該算法在Matlab2016a上實(shí)現(xiàn),對于離線學(xué)習(xí),是在Ubuntu16.04虛擬機(jī)下進(jìn)行,從最近發(fā)布的跟蹤基準(zhǔn)數(shù)據(jù)集[3]中收集9 075個(gè)正樣本和17 535個(gè)負(fù)樣本,實(shí)驗(yàn)選用目前主流的跟蹤平臺OTB-100和OTB-50數(shù)據(jù)集中具有實(shí)質(zhì)性變化的全注釋視頻中的10個(gè)視頻序列進(jìn)行實(shí)驗(yàn)驗(yàn)證,這些視頻序列在跟蹤問題上都存在不同場景和不同程度的跟蹤困難因素:遮擋、快速運(yùn)動、形變、光照變化、背景相似等。
λ值設(shè)置為僅用于傳統(tǒng)的PF跟蹤的0.2,用不同數(shù)量的粒子對幾個(gè)視頻進(jìn)行測試,得到粒子數(shù)為40時(shí)可以帶來良好的效率。通過整體比較,子采樣a1、a2、a3與a4的核參數(shù)設(shè)置成0.25。在訓(xùn)練和跟蹤過程中,它們保持相同的值不變。
從兩個(gè)方面(跟蹤精度、跟蹤成功率)來評價(jià)該跟蹤算法的跟蹤結(jié)果,并比較各個(gè)算法性能。為了定量地突出深層特征和手工制作特征的跟蹤效果,將該算法與當(dāng)前多種主流跟蹤算法進(jìn)行對比分析,包括CPF、LOT、VTD、DFT、CSK、MIL跟蹤算法。為了比較公平,使用作者提供的代碼在測試序列中從第一幀的基礎(chǔ)真值位置初始化它們進(jìn)行實(shí)驗(yàn)。
為了評估這些跟蹤器,在測試序列中從第一幀的基礎(chǔ)真值位置初始化它們,并報(bào)告單程評估(OPE)值[3]。重疊率定義為JACARD系數(shù):
(10)
其中,rt和rm分別為地面真實(shí)邊框和跟蹤邊框。一個(gè)視頻序列的重疊率是所有Jaccard系數(shù)的平均值。若s>0.5,則認(rèn)為該幀目標(biāo)被正確跟蹤[19]。平均跟蹤成功率的結(jié)果見表1,其中粗體表示該跟蹤序列中成功率最高的值。由表1中可知,文中算法在這些視頻序列的跟蹤性能總體上優(yōu)于其他主流跟蹤算法。
表1 跟蹤成功率
圖2為7種跟蹤算法對10組測試視頻序列的整體跟蹤精度和跟蹤成功率的OPE曲線,可以看出,文中跟蹤算法的跟蹤成功率和跟蹤精度對于這10組測試視頻中的目標(biāo)的平均值最高。
圖2 10 個(gè)測試序列的跟蹤精度和跟蹤成功率曲線
圖3是7種跟蹤算法10個(gè)視頻序列的部分序列跟蹤結(jié)果,左上角是該圖像序列的當(dāng)前幀數(shù)。
(1)目標(biāo)遮擋,Jogging,Lemming,Dudek,Soccer序列中,在運(yùn)動過程中被跟蹤目標(biāo)出現(xiàn)被不同物體不同程度的遮擋。Jogging在第79幀時(shí)目標(biāo)被完全遮擋,直到第86幀目標(biāo)又重新出現(xiàn),而其他跟蹤算法皆丟失目標(biāo),只有文中算法能很好地跟蹤到目標(biāo);Lemming在第317幀時(shí),目標(biāo)被部分遮擋時(shí),除了文中算法和CSK和VTD,其他算法都出現(xiàn)了跟蹤漂移,不難看出文中算法在出現(xiàn)遮擋情況下始終正確跟蹤目標(biāo),對目標(biāo)遮擋有較好的魯棒性。
圖3 7種跟蹤算法10個(gè)視頻序列的部分序列圖
(2)光照變化,Singer1,Car4,Skating,Tiger1視頻序列中,在運(yùn)動過程中被跟蹤目標(biāo)出現(xiàn)不同程度的光照變化。其中Singer1序列在79-142幀光照出現(xiàn)了不同程度的強(qiáng)弱變化,VTD徹底丟失目標(biāo),而除了文中算法,其他算法都出現(xiàn)了跟蹤漂移。在Tiger1視頻序列中,在175幀和291幀的時(shí)候光照突然變強(qiáng),除了文中算法和CPF、DFT,其他算法都發(fā)生了跟蹤漂移。不難看出文中算法對出現(xiàn)光照變化時(shí)始終正確跟蹤目標(biāo),對光照變化有較好的魯棒性。
(3)快速運(yùn)動,Lemming,Dudek,Soccer,Tiger1視頻序列中,被跟蹤目標(biāo)在運(yùn)動過程中都存在快速運(yùn)動的情況。其中Lemming序列中,在535幀到583幀中存在快速運(yùn)動的情況,除了文中算法和CSK,其他跟蹤算法都出現(xiàn)了跟蹤漂移的情況。在Tiger1視頻跟蹤序列中,90幀的時(shí)候出現(xiàn)快速運(yùn)動的情況,其中VTD,LOT跟蹤丟失,其他算法出現(xiàn)跟蹤漂移的現(xiàn)象,只有文中算法保持了良好的跟蹤現(xiàn)象。不難看出文中算法對在出現(xiàn)目標(biāo)快速運(yùn)動時(shí)始終正確跟蹤目標(biāo),有較好的魯棒性。
(4)目標(biāo)形變,Bolt,Dudek,Sketing1,Tiger1視頻序列中,被跟蹤目標(biāo)在運(yùn)動過程中都存在形變的情況。在Bolt序列中,整個(gè)被跟蹤目標(biāo)都是處于形變的狀態(tài),而除了文中算法和VTD外,其他算法均跟蹤失敗,而在137幀后,VTD出現(xiàn)了跟蹤漂移的現(xiàn)象。在Tiger1序列中,在166幀和289幀時(shí)出現(xiàn)目標(biāo)形變的現(xiàn)象,在166幀時(shí)VTD和LOT跟蹤失敗,在289幀時(shí),除文中跟蹤算法外,其他算法均出現(xiàn)了跟蹤漂移的現(xiàn)象。所以文中算法對目標(biāo)形變的情況也表現(xiàn)出了較好的魯棒性,基本上能始終正確跟蹤目標(biāo)。
(5)相似背景,Dudek,Soccer,Skating1視頻序列中,被跟蹤目標(biāo)在運(yùn)動整個(gè)視頻序列中都出現(xiàn)了相似的背景情況。在Dudek序列中,整個(gè)跟蹤過程都處于灰色基調(diào)下,在173到200幀時(shí),出現(xiàn)了背景雜斑現(xiàn)象,這時(shí)CSK徹底丟失目標(biāo),而除了文中算法,其他的跟蹤算法雖然也完成了整個(gè)過程的跟蹤,但是中間出現(xiàn)了跟蹤漂移的現(xiàn)象。Soccer序列和Dudek序列相似,整個(gè)過程背景與目標(biāo)是同一個(gè)顏色,但是該序列中,從117幀開始,除了文中算法、DFT和LOT,其他算法均跟蹤失敗。而在Skating1序列中,從99幀開始出現(xiàn)了相似的目標(biāo),文中算法雖然中間出現(xiàn)過跟蹤漂移,但是最終還是完成了目標(biāo)跟蹤。所以文中算法對存在相似背景的情況也表現(xiàn)出了較好的魯棒性,基本上能始終正確跟蹤目標(biāo)。
提出了一種基于簡化CNN的視覺跟蹤算法,該算法將預(yù)處理網(wǎng)絡(luò)的全連接層的深度特征輸出與HSV顏色空間中顏色直方圖的手工特征相連接,將兩種特征相結(jié)合,用于在線粒子濾波的目標(biāo)跟蹤。深層特征和手工特征的融合更有效地代表了目標(biāo),在具有背景雜波、光照變化、變形和遮擋等屬性的視頻中,相比其他跟蹤方法,該方法有較強(qiáng)的魯棒性。