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