劉 洋,楊小軍
(長安大學 信息工程學院,陜西 西安 710064)
計算機視覺已經發展了很多年,視頻目標跟蹤作為其中十分火熱的課題之一,在現實生活中應用廣泛[1]。其主要任務是通過第一幀中給出的目標的初始信息(一般以矩形框表示),在后續幀中自動輸出目標的參數信息[2]。在實際跟蹤過程中,仍存在著諸多難點,例如背景相似、光照變化、嚴重遮擋以及目標姿態變化等,這些都會導致跟蹤精度下降[3]。早期目標跟蹤領域采用的算法可歸結為傳統目標跟蹤算法,它通常使用生成式模型,以卡爾曼濾波[4]、粒子濾波[5]、Meanshift算法[6]、Camshift[7]算法和光流法[8]等為代表。隨著相關濾波研究的發展,出現了基于相關濾波器的跟蹤算法,使傳統的時域計算變為頻域計算,大大減少了計算量,有效提升了跟蹤速度。2010年,MOSSE利用目標的特征來訓練濾波器,對下一視頻幀濾波[9]。CSK在此基礎上加入了循環矩陣和核函數,大大提高了跟蹤速度[10]。隨后,KCF引入HOG特征(梯度顏色直方圖)來表征運動目標的紋理特征和形狀特征[11],成為相關濾波最為經典的算法。2013年后,深度學習領域逐漸火熱,基于該領域的算法得到空前發展。DLT率先采用“預訓練+微調”的方式,解決了訓練樣本過少的問題[12]。2016年,L.Bertinett等提出了十分具有代表性的SiamFC算法,該算法采用權值共享的兩條孿生結構,通過度量相似性來進行目標跟蹤[13],使得跟蹤速度得到空前提高。Li等人提出的SiameseRPN首次將RPN的思想融入目標跟蹤,避免了SiamFC中多尺度測試的問題,實現了非常高的跟蹤速度和精度[14]。之后,針對深層網絡會使得跟蹤精度下降的問題,SiamRPN++通過實驗表明其原因在于破壞了網絡的空間不變性,并通過引入均勻分布采樣這一策略,訓練出了基于殘差網絡Resnet的追蹤器[15]。Wang等提出的SiamMask通過增加分割分支,使得普通的目標跟蹤框架可實現實時分割[16]。雖然SiamFC顯著提高了深度學習方法跟蹤器的跟蹤速度,但在復雜場景下仍然無法較好地適應目標和背景信息的變化,當目標發生嚴重形變或者目標附近出現干擾時,跟蹤的精度會大大降低。
針對以上問題,該文提出一種基于注意力機制的融合特征跟蹤算法,并引入加權平均模塊和閾值模板更新模塊。該算法延續了SiamFC的基本框架,將淺層的AlexNet[17]替換為深層網絡MobileNetV2,在獲取更深層特征信息的同時,盡可能減少參數量。同時由深至淺進行多層特征融合,使得語義特征與表觀特征進行互補,解決復雜背景中目標與背景相似以及目標快速移動所導致定位不足的問題。模板分支的特征通過注意力機制模塊,突出目標特征的重要信息。再將融合并通過注意力機制后的特征向量的互相關結果與原始提取的特征向量的互相關結果進行加權平均獲得響應圖,進一步提升模型的魯棒性。最后,比較相似度分數與設定的閾值大小來判斷是否需要模板更新,并通過實驗找到了更新的最佳閾值。在OTB100數據集上的實驗表明,該算法在面對各種具有挑戰因素的視頻序列時仍能取得較好的跟蹤效果,具有良好的魯棒性。
算法的整體框架如圖1所示。模板分支與搜索分支由兩條權值共享的卷積神經網絡組成。使用改進后的MobileNetV2作為特征提取網絡,并對第三、五、七個BottleNeck提取到的特征進行自適應融合,使得特征同時具備深層與淺層的信息。模板分支的特征通過注意力機制模塊,突出目標的關鍵特征。引入加權平均模塊,將經過融合與增強后的特征的卷積結果與原始的特征卷積結果進行權值為u的加權平均,得到最終的響應分數圖。最后,比較相似度與閾值的大小,根據比較結果進行模板更新,并利用重復實驗的辦法,找到最優的閾值。

圖1 算法整體結構
1.2.1 特征提取網絡
MobileNet是由谷歌提出的一系列輕量級的神經網絡,采用深度可分離卷積操作(deep-wise)替代原來的傳統3D卷積,大大地減少了運算量。該文使用MobileNetV2替換原先較淺的AlexNet,以獲得更深層的語義信息,并對網絡結構做出改進,平衡參數規模與特征豐富度,適應該跟蹤任務。
MobileNetV2由三個卷積層、一個池化層和七個卷積區(BottleNeck)組成。針對目標跟蹤的任務特點,去掉了最后一個卷積區后面的兩個卷積層和池化層,保留提取初級圖像特征的常規卷積層。
高維tensor可以獲取更豐富的特性信息,而低維tensor能帶來更小的計算量。MobileNetV2采用一種反向殘差結構,以較小的計算量取得了較好的性能,很好地平衡了速度與精度的問題,其結構如圖2所示。首先,通過Expansion Layer層擴張維度,之后進行深度可分離卷積運算,再由Projection Layer降維,使得網絡重新變小。使用Relu6作為激活函數是為了在低精度的計算下也能獲得高數值分辨率,而最后一層降維使用線性激活函數是為了防止小于0的元素經特征提取后丟失信息。
1.2.2 特征融合
深層特征和淺層特征包含的信息是不同的。在對一些屬性相同但表現差異較大的目標進行跟蹤時,若僅采用深層特征,則會缺乏位置信息,導致對快速移動的目標定位能力不足,從而導致跟蹤精度下降。因此,為了提高算法的準確性,該文抽取第三、五、七個BottleNeck的特征,由深至淺,采用雙線性插值公式,將深層提取的小分辨率特征圖進行擴大,逐步地完成特征融合。雙線性插值公式為:
(1)
注意力機制的引入在計算機視覺領域大獲成功。該文參考由胡杰等人在2017年Image分類比賽中提出的SENet(Squeeze and Excitation Net)模型,以及X.Wang等人提出的Non-Local模型,分別設計出通道注意力模塊與空間注意力模塊,對模板分支上的融合特征進行空間和通道上的加權,進一步提升模型的判別能力。由于搜索域含有大量無關信息,加入注意力模塊易導致模型對某些無關特征過度關注從而降低模型的普適性,故只在模板分支加入。
1.3.1 通道注意力
不同的通道是從不同的角度對目標的信息構建特征,因此各通道的重要程度并不相同。SENet算法提出一種壓縮激勵模型,使得各個通道之間產生依賴關系,網絡通過自適應學習,對基于通道的特征響應進行重新校準,提高了網絡的表達能力。參照這一模型,該文引入了一種通道注意力機制模塊,加強與目標物體相關的特征通道權重,降低無關的特征通道權重,同時也改變了通道之間的依賴性。其結構主要由全局池化層、激活層以及兩個全連接層構成,如圖3所示。

圖3 通道注意力模塊
將融合后的特征圖的通道定義為:
A=[a1,a2,…,an]
(2)
式中,ak∈RH×W,k=1,2,…,n。
輸入特征經過池化和FC得到壓縮,再由Relu激活獲得非線性的性質,然后再通過第二個FC層恢復,最后由sigmoid激活。權值向量可以表示為:
α=[α1,α2,…,αn]
(3)
式中,αk∈RH×W,k=1,2,…,n。
將權重向量α與原來的特征向量A相乘,原始的特征向量通道便被賦予了不同的權重,表示為:
(4)

1.3.2 空間注意力
Non-Local的提出最先被應用在圖像識別任務上,是一種空間注意力機制模型,它建立起特征圖上任意兩個位置之間的聯系,并且引入殘差連接,使得模型能夠十分方便地在任意一個預訓練過的網絡中嵌入進去而無需改變原來的網絡結構。在目標跟蹤的過程中,只關心與跟蹤任務相關的區域,而不關心無關的區域。因此,不同空間區域應該被賦予不同的權重。參考上述一模型,該文引入一種空間注意力模塊,首先通過加權求和,使得特征圖上的每一個位置都包含周圍所有位置的特征信息,然后將原始特征與含有空間位置信息的特征相加,原始特征便被賦予了不同空間位置的權重,其結構如圖4所示。

圖4 空間注意力模塊
首先,對輸入的特征圖分別使用三個1×1的卷積核進行卷積。接著通過三個變換函數f(x)、g(x)、h(x)進行轉換,其表達式為:
(5)
式中,W1、W2、W3分別表示f(x)、g(x)、h(x)的權重。將通過f(x)后的輸出轉置后與g(x)的輸出相乘,并用softmax函數進行激活,得到空間注意力圖。它表示任意兩個位置的相關程度:
(6)
式中,a和b分別表示圖像上的第a個像素位置和第b個像素位置。再將此空間注意力圖與h(x)相乘,輸出結果乘以權重系數β再加上原先輸入的特征,即可得到經過了空間注意力模塊調整過后的特征圖。計算公式為:
(7)
為進一步提高魯棒性,避免模型過于關注某個局部的訓練特征,該文采用加權平均的思想,將兩個分支的互相關結果進行一次加權平均。其中分支一為經過特征融合與注意力機制后的特征圖的互相關運算結果,分支二為由MobileNetV2網絡提取的原始特征圖。計算公式如下:
f(p,q)=μfm(p,q)+(1-μ)fa(p,q)
(8)
式中,fm為經過特征融合與注意力機制的互相關結果,fa為原始提取的特征互相關結果。μ為權重,文中μ=0.6。
與大多數的目標跟蹤算法類似,SiamFC在目標的跟蹤過程中,始終采用第一幀作為模板而不進行模板的更新。這是因為第一幀包含目標最準確的信息,同時也能大大提升跟蹤的速度。然而,隨著跟蹤時間的增長,當目標因遮擋、光照、運動等因素出現較大的形變時,繼續使用第一幀作為模板則會導致跟蹤的精度下降,甚至跟蹤失敗。但如果每次都進行更新,既增加了運算量,降低了目標的跟蹤速度,又容易引入噪聲等干擾因素。因此,該文采用一種閾值更新的方式,將得到最終響應圖上的最大相似度值后,與設定閾值進行對比判斷,以決定是否需要對模板進行更新。具體而言,相似度高于閾值,則不進行更新,仍采用當前模板,繼續讀取下一幀的數據進行跟蹤任務。相似度低于閾值,則進行更新,更新方式為用當前幀替換模板幀。為了確定合適的閾值,該文將閾值分別設定為95%、93%、91%、90%、89%、87%、85%并進行重復實驗,記錄相應的精確度和成功率,如表1所示。

表1 不同閾值下的跟蹤精確度和成功率
可以看出,將閾值設定為90%時,獲得了最高的精確度與成功率。通過這一機制,即使目標出現了遮擋或者較大的形變,算法依然能較好地跟蹤到目標。
該算法的軟件環境采用Ubuntu18.04搭載pycharm,采用pytorch編程框架驗證算法的性能。實驗平臺配置為Intel Core i7-9750 2.60 GHz CPU和GeForce GTX 2080Ti GPU。算法執行的平均速率為32幀每秒,利用在ImageNet數據集上預先訓練好的權重初始化網絡參數。
為驗證算法的有效性,選取包含各種挑戰性因素的公開標準測試數據集OTB100進行實驗。在測試序列中從第一幀的基礎真值位置初始化它們,采用距離精度(distance precision,DP)、成功率(success rate,SR)作為實驗的主要評價指標,計算公式如下所示。
DP=lDP(CLE≤T0)/l
(9)
式中,lDP表示中心位置誤差小于等于閾值的幀數,CLE表示預測目標中心和實際目標中心間的歐氏距離,T0表示閾值像素,一般設置為T0=20 px,l表示當前視頻序列的總幀數。
另外,成功率圖曲線下方的面積(AUC)也可用于評估跟蹤的成功與否,該面積也可用于對目標跟蹤算法進行排序,公式如下。
(10)
將該文提出的算法和一些現有算法在OTB100上進行對比,對比的算法有MOSSE,SRDCF,MDNet,SiamFC,SiamRPN,DaSiamRPN,CFNet,Staple。可以看出,由于加入了基于注意力機制的特征融合算法以及加權平均模塊和閾值模板更新模塊,該文提出的算法取得了較好的結果。跟蹤結果精度和成功率如圖5所示。

圖5 精度和成功率對比
圖5顯示了所有比較算法在OTB100上的一遍驗證(OPE)的測試結果。可以看出,該文提出的算法均取得了較好的跟蹤精度和成功率,和SiamRPN算法相比較,精度上提升了4.1%,成功率上提升了5.7%。總體來說,提出的算法在精度和成功率上都比其他幾種算法優越。
為了更好地體現該跟蹤算法的優異性能,再次在數據集OTB100中選取了一些代表性的視頻序列進行測試,且與不同的算法進行對比,結果如圖6所示。
綜合上述實驗的對比結果,可知該算法對目標在快速運動、尺度變化、平面內旋轉以及低分辨率等方面,均展現出優越的跟蹤性能。從圖6可以看出,在Human2視頻序列中,目標存在運動模糊和旋轉的變化,該算法較其他算法能夠更加準確地跟蹤目標。在Panda視頻序列中可以看出,當低分辨率的目標尺度發生變化時,從973幀開始,其余算法已經跟丟,而由于該文加入了基于注意力機制的特征融合策略以及閾值模板更新模塊,使得該算法始終能有效地完成跟蹤任務。

圖6 算法在不同視頻序列的跟蹤結果
該文提出的基于孿生網絡特征融合與閾值更新的跟蹤算法,通過對深層網絡提取到的特征進行多層融合,并通過模板分支的空間與通道的聯合注意力機制,使得特征能夠具備多重有效信息,且能更好地關注于目標的關鍵特征。通過加權平均模塊對分數圖進行融合,進一步提升模型的性能。閾值模板更新機制既減少了頻繁更新帶來的計算量,又有效避免了跟蹤漂移問題,通過選取不同的閾值進行重復實驗,確定了最優閾值。實驗結果表明,相對于一些已有算法,該算法在精確度、成功率上均有所提升,展現出了更強的魯棒性。