王希鵬, 李 永, 李 智, 張 妍
(武警工程大學(xué) 信息工程學(xué)院,陜西 西安 710086)
目標(biāo)跟蹤是計(jì)算機(jī)視覺研究領(lǐng)域的熱點(diǎn)之一,被廣泛應(yīng)用于自動駕駛、智能視頻監(jiān)控、人機(jī)交互等多個方面。單目標(biāo)跟蹤是指在給定第一幀目標(biāo)框的情況下,在視頻的后續(xù)幀中自動地標(biāo)出該目標(biāo)的位置和大小。早期的單目標(biāo)跟蹤算法以相關(guān)濾波為主,CSK[1]相關(guān)濾波算法采用灰度特征,KCF[2]算法在CSK算法的基礎(chǔ)上做出了改進(jìn),采用了HOG特征。近幾年,隨著目標(biāo)跟蹤數(shù)據(jù)集的擴(kuò)充、跟蹤標(biāo)準(zhǔn)的完善、深度學(xué)習(xí)模型的不斷優(yōu)化,基于深度學(xué)習(xí)的目標(biāo)跟蹤方法取得了很好的成績。SINT[3]是第一個使用孿生網(wǎng)絡(luò)解決目標(biāo)跟蹤問題的算法。SiamFC[4]算法由于是端到端的跟蹤網(wǎng)絡(luò),速度方面有了很大的提升,這使得基于孿生神經(jīng)網(wǎng)絡(luò)的跟蹤器真正地流行起來。SiamRPN[5]在孿生網(wǎng)絡(luò)的基礎(chǔ)上將目標(biāo)檢測算法Faster R-CNN中的RPN模塊應(yīng)用到跟蹤任務(wù)上來,回歸分支代替了原始的尺度金字塔,因此該算法在提升精度的同時(shí),速度也得到了提升。
在單目標(biāo)跟蹤問題中,算法的性能受到環(huán)境因素的影響,主要包括光照變化、尺度變化、目標(biāo)遮擋等。盡管基于孿生網(wǎng)絡(luò)的跟蹤器已經(jīng)取得了優(yōu)異的性能,但依然存在一些缺陷。目標(biāo)遮擋在目標(biāo)跟蹤任務(wù)中經(jīng)常出現(xiàn),在很大程度上影響了目標(biāo)跟蹤算法的性能。大部分基于孿生網(wǎng)絡(luò)的跟蹤器選取第1幀目標(biāo)為模板,之后每一幀的搜索區(qū)域與目標(biāo)模板比較,計(jì)算相似度,由于不更新目標(biāo)模板,在目標(biāo)被遮擋或發(fā)生形變時(shí)就會發(fā)生跟蹤漂移?;趯\生網(wǎng)絡(luò)的跟蹤器僅提取圖像深度特征用于視覺跟蹤,忽略了圖像中的語義信息,這導(dǎo)致基于深度學(xué)習(xí)的跟蹤器在目標(biāo)遇到遮擋或運(yùn)動模糊的時(shí)候,跟蹤性能只能依賴離線訓(xùn)練時(shí)特征的質(zhì)量。Zhu等[6]提出了FlowTrack跟蹤器,將光流信息整合到端到端的深度網(wǎng)絡(luò)中,光流在計(jì)算上比較慢,而且光流僅提取連續(xù)幀中的運(yùn)動信息。Wu等[7]用卡爾曼濾波器構(gòu)造目標(biāo)運(yùn)動模型。
上述跟蹤器使用了圖像深度特征和目標(biāo)的運(yùn)動特征,但是忽略了圖像中高層的語義信息。人眼在跟蹤目標(biāo)時(shí),直覺上會估計(jì)出圖像中場景的深度信息。場景的深度估計(jì)是機(jī)器人視覺領(lǐng)域的研究重點(diǎn)之一。很多研究將場景深度信息與跟蹤任務(wù)相結(jié)合[8],但場景深度信息的提取都基于RGB-D相機(jī),對硬件設(shè)備要求較高。單目深度估計(jì)領(lǐng)域相關(guān)技術(shù)的發(fā)展使得不需要RGB-D相機(jī)也可以得到場景的深度信息。早期單目深度估計(jì)的方法大多基于機(jī)器學(xué)習(xí)。Godard等[9]提出Monodepth2算法,使用深度估計(jì)和姿態(tài)估計(jì)網(wǎng)絡(luò)的組合來估計(jì)單目圖像中的深度,提升了深度估計(jì)的性能。通過單目圖像深度估計(jì)可以準(zhǔn)確得到圖像場景中的深度信息,并利用像素值進(jìn)行表示:當(dāng)目標(biāo)離相機(jī)較遠(yuǎn)時(shí),像素值較??;離得較近時(shí),像素值較大;當(dāng)目標(biāo)被遮擋時(shí),跟蹤框內(nèi)的像素值會發(fā)生改變,從而可以判斷跟蹤目標(biāo)是否被遮擋,并對跟蹤器得到的目標(biāo)位置進(jìn)行修正。
本文主要針對目標(biāo)跟蹤中的遮擋問題,提出將Monodepth2算法得到的場景深度信息融合到SiamRPN跟蹤器中,根據(jù)Monodepth2得到每一幀圖像的深度信息:當(dāng)目標(biāo)沒有被遮擋時(shí),目標(biāo)深度值在時(shí)序上的變化是平滑的;當(dāng)發(fā)生遮擋時(shí),目標(biāo)深度值會快速變化。將SiamRPN與Monodepth2得到的響應(yīng)圖進(jìn)行融合,克服目標(biāo)被遮擋時(shí)產(chǎn)生的跟蹤漂移問題。為驗(yàn)證本文算法的性能,利用OTB-2015[10]數(shù)據(jù)集中部分存在遮擋的視頻序列進(jìn)行測試。
孿生網(wǎng)絡(luò)主要用來衡量輸入樣本的相似性。SiamFC[4]分為模板分支和搜索區(qū)域分支:模板分支輸入x,經(jīng)過特征提取網(wǎng)絡(luò)φ,可以得到一個卷積核φ(x);搜索區(qū)域分支輸入z,經(jīng)過特征提取網(wǎng)絡(luò)φ,得到一個候選區(qū)域φ(z)。φ(x)與φ(z)進(jìn)行互相關(guān)操作,得到一個響應(yīng)圖,如式(1)所示,其中?代表互相關(guān)運(yùn)算。從響應(yīng)圖中選取響應(yīng)最大的位置,作為目標(biāo)當(dāng)前的位置,進(jìn)行多尺度測試,得到目標(biāo)當(dāng)前的尺度,如式(2)所示。
f(x,z)=φ(x)?φ(z);
(1)
p=argmax[φ(x)?φ(z)]。
(2)
SiamRPN將原來目標(biāo)跟蹤任務(wù)中的相似度計(jì)算轉(zhuǎn)化為回歸和分類問題,其中的RPN模塊可以理解為一種全卷積網(wǎng)絡(luò),該網(wǎng)絡(luò)最終目的是為了推薦候選區(qū)域。RPN中最重要的是anchor機(jī)制,通過預(yù)先定義anchor的尺寸和長寬比引入多尺度方法。SiamRPN中anchor有5種長寬比:0.33、0.5、1、2、3。通過平移和縮放對原始的anchor進(jìn)行修正,使anchor更接近真實(shí)的目標(biāo)窗口。
由于像素級深度數(shù)據(jù)集難以獲取,使得監(jiān)督學(xué)習(xí)在單目深度估計(jì)中的應(yīng)用受到限制,所以基于自監(jiān)督學(xué)習(xí)或無監(jiān)督學(xué)習(xí)的單目圖像深度估計(jì)的研究越來越多。單目深度估計(jì)的輸入為一幀RGB圖像,輸出為深度圖,深度圖中每個像素值表示該像素在空間中的位置Lp。Monodepth2算法利用單目和雙目圖像序列在自監(jiān)督框架上進(jìn)行訓(xùn)練。采用最小化像素投影損失,對每個像素進(jìn)行計(jì)算,解決遮擋問題:
(3)
式中:pe表示光度重建誤差;It表示每個目標(biāo)視圖;It′→t表示相對位姿。采用auto-masking方法過濾掉序列中相鄰兩幀固定不變的像素。選用多尺度結(jié)構(gòu),將低分辨率深度圖上采樣到輸入分辨率,在高分辨率下重投影、重采樣,計(jì)算光度重建誤差。
在目標(biāo)跟蹤中,計(jì)算目標(biāo)框區(qū)域內(nèi)深度平均值作為跟蹤目標(biāo)的平均深度值:當(dāng)目標(biāo)沒有被遮擋時(shí),目標(biāo)平均深度值在時(shí)序上的變化是平滑的;當(dāng)目標(biāo)被遮擋時(shí),目標(biāo)平均深度值會快速變化。本文采用在單目和雙目數(shù)據(jù)集中訓(xùn)練的模型。Monodepth2算法深度圖如圖1所示,兩張圖片均來自目標(biāo)跟蹤的OTB-2015數(shù)據(jù)集,左側(cè)均為原始圖像,右側(cè)均為由Monodepth2得到的深度圖。
圖1 Monodepth2算法效果Figure 1 Monodepth2 algorithm effect
在目標(biāo)跟蹤任務(wù)中,解決部分遮擋通常有兩種思路:一種是利用檢測機(jī)制判斷目標(biāo)是否被遮擋,如果被遮擋,則更新模板,提升模板對遮擋的魯棒性[11];另一種是把目標(biāo)分成多個塊,利用沒有被遮擋的塊進(jìn)行跟蹤[12]。根據(jù)人的視覺知覺,當(dāng)人在對視頻中目標(biāo)進(jìn)行視覺跟蹤時(shí),會估計(jì)出視頻中場景的層次關(guān)系,判斷目標(biāo)和干擾物的位置關(guān)系,減小跟蹤過程中遮擋對目標(biāo)跟蹤的影響。根據(jù)上述思路,本文提出將圖像深度信息引入到單目標(biāo)跟蹤算法中,構(gòu)建遮擋判別模塊,利用目標(biāo)深度信息的變化判斷遮擋情況并修正跟蹤結(jié)果。
本文在SiamRPN跟蹤算法中引入單目圖像深度估計(jì),利用深度信息進(jìn)行遮擋判別,在發(fā)生遮擋時(shí)對SiamRPN的跟蹤結(jié)果進(jìn)行修正。算法框架如圖2所示。算法輸入為第t幀圖像和第t-1幀跟蹤目標(biāo)的深度圖。將原圖像同時(shí)輸入孿生網(wǎng)絡(luò)跟蹤器和深度估計(jì)算法,分別得到搜索區(qū)域內(nèi)所有的錨點(diǎn)框、對應(yīng)的響應(yīng)得分和搜索區(qū)域深度圖,將以上輸出信息和前一幀跟蹤目標(biāo)的深度圖輸入遮擋判別模塊得到預(yù)測的目標(biāo)位置。
圖2 融合圖像深度的抗遮擋目標(biāo)跟蹤算法框架Figure 2 Framework of anti-occlusion target tracking algorithm based on image depth
每個錨點(diǎn)框的位置表示為(xc,yc,w,h),其中(xc,yc)表示錨點(diǎn)框的中心位置坐標(biāo),w和h分別表示錨點(diǎn)框的寬和高。Dt(x,y)表示當(dāng)前深度圖(x,y)位置上的像素值。Di為錨點(diǎn)框內(nèi)的平均深度值。遮擋判別模塊將所有N個錨點(diǎn)框的平均深度值Di與前一幀的跟蹤目標(biāo)平均深度值Dp作比較,得到深度差值。對所有錨點(diǎn)框的所有深度差值求平均值,得到平均深度差值M,計(jì)算式為
Di=mean(∑x,yDt(x,y));
(4)
(5)
通過錨點(diǎn)框與對應(yīng)的響應(yīng)得分S1得到當(dāng)前最佳錨點(diǎn)框。由于目標(biāo)跟蹤任務(wù)中,環(huán)境因素的影響會導(dǎo)致深度估計(jì)準(zhǔn)確率降低,固定的遮擋閾值會造成過多的遮擋誤判,所以本文算法將平均深度差值M設(shè)置為遮擋閾值,遮擋判別計(jì)算過程如下:
(6)
式中:d為當(dāng)前幀前15幀跟蹤目標(biāo)的累計(jì)深度平均值;Ds為最佳錨點(diǎn)框的平均深度值;當(dāng)B=1時(shí),判斷目標(biāo)為遮擋狀態(tài),B=0時(shí),判斷目標(biāo)未被遮擋。
當(dāng)判斷目標(biāo)被遮擋時(shí),算法對孿生網(wǎng)絡(luò)跟蹤器生成的錨點(diǎn)框進(jìn)行修正,將深度差值加權(quán)融合到錨點(diǎn)框響應(yīng)得分中。錨點(diǎn)框響應(yīng)得分分布在0到1之間,而深度差值數(shù)值變化較大,所以首先對深度差值|Di-Dp|進(jìn)行歸一化處理,將深度差值數(shù)值變換至0到1之間,將其作為遮擋判別的響應(yīng)得分S2。將RPN模塊輸出的錨點(diǎn)框響應(yīng)得分S1與遮擋判別響應(yīng)得分S2進(jìn)行加權(quán)融合,計(jì)算式如下:
S=S1·λ+S2·(1-λ)。
(7)
式中:λ為權(quán)重系數(shù)。
本文算法基于Python3.6實(shí)現(xiàn),硬件實(shí)驗(yàn)環(huán)境為Intel Core i7-6700K CPU,主頻4 GHz,內(nèi)存8 GB,顯卡GeForce GTX 1060配置的計(jì)算機(jī)。
為驗(yàn)證算法的有效性,本文采用OTB-2015[10]中部分存在目標(biāo)遮擋的視頻作為測試數(shù)據(jù)集,視頻序列名稱分別為Singer1、Walking、Walking2、Skating2-2、Bolt、David3、Girl2、Woman、FaceOcc2、Jogging-1、Human5。OTB數(shù)據(jù)集采用跟蹤精確度和跟蹤成功率兩種評價(jià)指標(biāo)。跟蹤精確度計(jì)算了跟蹤算法估計(jì)的目標(biāo)位置中心點(diǎn)與標(biāo)注的中心點(diǎn)之間的距離小于給定閾值的視頻幀所占的百分比。跟蹤成功率反映了算法估計(jì)的目標(biāo)位置與標(biāo)注位置之間的重合程度,當(dāng)某一幀的重合程度大于設(shè)定的閾值時(shí),則該幀被視為成功的,成功幀的總數(shù)占所有幀的百分比即為跟蹤成功率。
本文anchor設(shè)置與SiamRPN算法一致,為0.33、0.5、1、2、3共5種長寬比。式(7)中權(quán)重參數(shù)λ的取值非常重要,需要通過實(shí)驗(yàn)確定,λ太大或太小都會引起跟蹤漂移。本文賦予基準(zhǔn)跟蹤器響應(yīng)得分更大的權(quán)重,λ∈[0.7,1]。表1為λ取不同值時(shí)的跟蹤成功率和跟蹤精確度。根據(jù)表1中性能對比,本文的融合權(quán)值λ取0.85。得到修正的響應(yīng)得分S后,求出S中的最大值和對應(yīng)的錨點(diǎn)框位置,將此錨點(diǎn)進(jìn)行修正得到最終的坐標(biāo)。
表1 λ取不同值時(shí)的跟蹤結(jié)果Table 1 The tracking results with different λ values
測試跟蹤器包括SiamRPN[5]、SRDCF[13]、Staple[14]、CFNet[15]、SiamFC[4]、fDSST[16]。表2中展示了7種算法在11個視頻序列上的跟蹤精確度,其中10個視頻序列中本文算法的精確度均不小于基準(zhǔn)跟蹤器SiamRPN。SiamRPN作為孿生網(wǎng)絡(luò)跟蹤器,只學(xué)習(xí)了離線的通用特征,在跟蹤目標(biāo)被遮擋時(shí),跟蹤器判別能力不足,無法區(qū)分跟蹤目標(biāo)與遮擋物。本文提出的遮擋判別模型能有效地利用圖像深度信息提升跟蹤算法在目標(biāo)被遮擋時(shí)的跟蹤性能。
表2 不同算法在11個視頻序列上的跟蹤精確度Table 2 Accuracy on 11 video sequences using different algorithms
圖3展示了跟蹤算法在不同屬性視頻序列下的跟蹤精確度對比,在這些屬性的視頻序列下,本文算法的跟蹤精確度均高于基準(zhǔn)跟蹤器SiamRPN,在4種屬性的視頻序列中,平均跟蹤精確度分別提升了0.009、0.005、0.01、0.008,圖像深度信息在目標(biāo)跟蹤中起到了輔助作用。
圖3 部分屬性視頻序列下的精確度曲線對比圖Figure 3 Comparison of accuracy rates of video sequences with different attributes
圖4為跟蹤器在11個視頻序列下的成功率和精確度曲線。在平均成功率上,本文算法(0.623)在SiamRPN算法(0.612)的基礎(chǔ)上提升了0.011;在平均精確度上,本文算法(0.853)在SiamRPN算法(0.845)的基礎(chǔ)上提升了0.008,分別提高了1.8%和0.9%。
圖4 跟蹤器在11個視頻序列上性能對比Figure 4 Tracker performance comparison on 11 video sequences
圖5記錄了SiamRPN、SiamFC和本文算法在Woman、Skating2-2和Bolt這3個視頻序列下的實(shí)際跟蹤效果對比。紫色框?yàn)槟繕?biāo)的標(biāo)注框,紅色框?yàn)楸疚乃惴ńY(jié)果,綠色框?yàn)镾iamRPN算法結(jié)果,藍(lán)色框?yàn)镾iamFC算法結(jié)果。從圖5中可以看出,本文算法在部分遮擋時(shí)的目標(biāo)跟蹤上取得了不錯的效果。當(dāng)目標(biāo)被遮擋時(shí),SiamRPN和SiamFC均會出現(xiàn)跟蹤漂移的現(xiàn)象,而本文算法能有效緩解或避免此問題。
為提高目標(biāo)跟蹤算法在目標(biāo)遮擋場景下的適應(yīng)性,提出將孿生網(wǎng)絡(luò)跟蹤器SiamRPN與單目圖像深度估計(jì)算法Monodepth2結(jié)合。本文提出的基于深度信息的遮擋判別模型判斷出目標(biāo)是否被遮擋,有效地避免了跟蹤漂移。若出現(xiàn)遮擋,算法會將原跟蹤器的錨點(diǎn)響應(yīng)得分與遮擋判別響應(yīng)得分進(jìn)行加權(quán)融合得到最終響應(yīng)得分,重新選擇錨點(diǎn)計(jì)算目標(biāo)框的位置。針對OTB-2015中具有遮擋屬性的11個視頻序列進(jìn)行測試。實(shí)驗(yàn)結(jié)果表明,在目標(biāo)遮擋場景下,與6種主流跟蹤算法相比,本文算法具備更優(yōu)的跟蹤性能。同時(shí)也說明,圖像深度信息可以輔助提升目標(biāo)跟蹤的性能。下一步研究工作可針對遮擋判別策略進(jìn)行改進(jìn)或采用性能更優(yōu)異的圖像深度估計(jì)算法,進(jìn)一步提高算法的跟蹤性能,也可以嘗試將此遮擋判別模塊應(yīng)用于其他跟蹤算法中。