陳志旺 郭金華 呂昌昊 雷春明 彭 勇
(*燕山大學(xué)智能控制系統(tǒng)與智能裝備教育部工程研究中心 秦皇島 066004)
(**燕山大學(xué)工業(yè)計算機控制工程河北省重點實驗室 秦皇島 066004)
(***燕山大學(xué)河北省電力電子節(jié)能與傳動控制重點實驗室 秦皇島 066004)
(****燕山大學(xué)電氣工程學(xué)院 秦皇島 066004)
目標(biāo)跟蹤是計算機視覺中的一個基礎(chǔ)任務(wù),具有重要的理論意義與應(yīng)用價值,在車輛導(dǎo)航[1]、隱私保護[2]、疾病預(yù)防[3]等方面廣泛應(yīng)用。簡而言之,目標(biāo)跟蹤旨在給定任意目標(biāo)在視頻序列中第1幀的位置的前提下,預(yù)測出給定目標(biāo)在后續(xù)幀中的位置和大小。盡管目標(biāo)跟蹤算法已經(jīng)取得了比較大的發(fā)展,但在光照變化、尺度變化、遮擋等情況下,實現(xiàn)穩(wěn)健的跟蹤仍然是具有挑戰(zhàn)性的任務(wù)。
在視覺目標(biāo)跟蹤領(lǐng)域中,現(xiàn)有的跟蹤算法大多基于孿生網(wǎng)絡(luò)(Siamese network)框架,此類算法主要分為2 類:含有預(yù)定義候選框的跟蹤算法和不含預(yù)定義候選框的跟蹤算法。
(1)含有預(yù)定義候選框的跟蹤算法。最先提出基于孿生網(wǎng)絡(luò)的跟蹤算法是基于全卷積孿生網(wǎng)絡(luò)的目標(biāo)跟蹤[4](fully-convolutional Siamese networks for object tracking,SiamFC),該算法使用孿生網(wǎng)絡(luò)學(xué)習(xí)跟蹤目標(biāo)與搜索區(qū)域的相似性,從而將目標(biāo)跟蹤問題轉(zhuǎn)換為在整個搜索區(qū)域上搜索目標(biāo)問題。該算法首次將孿生網(wǎng)絡(luò)用于目標(biāo)跟蹤,基于這種結(jié)構(gòu),衍生出一系列孿生網(wǎng)絡(luò)跟蹤算法。例如,在SiamFC 算法的基礎(chǔ)上引入目標(biāo)檢測算法[5]中區(qū)域候選網(wǎng)絡(luò)的基于孿生區(qū)域候選網(wǎng)絡(luò)的高性能目標(biāo)跟蹤算法(high performance visual tracking with Siamese region proposal network,SiamRPN)[6],該算法由用于前景-背景估計的分類網(wǎng)絡(luò)和用于候選框修正的回歸網(wǎng)絡(luò)組成,使用可變寬高比的邊界框來實現(xiàn)目標(biāo)的定位與目標(biāo)尺寸的估計,從而獲得更加精準(zhǔn)的邊界框。至此之后,出現(xiàn)一批通過預(yù)定義候選框定位目標(biāo)的孿生網(wǎng)絡(luò)算法,基于干擾感知的孿生網(wǎng)絡(luò)(視覺)目標(biāo)跟蹤算法(distractor-aware Siamese networks for visual object tracking,Da-SiamRPN)[7]是在SiamRPN基礎(chǔ)上加入干擾感知模塊,提高了算法的精度和辨識能力?;谏疃染W(wǎng)絡(luò)的孿生網(wǎng)絡(luò)跟蹤算法(evolution of Siamese visual tracking with very deep networks,SiamRPN++)[8]在SiamRPN 的基礎(chǔ)上使用更深的ResNet50 網(wǎng)絡(luò)代替原來的AlexNet 網(wǎng)絡(luò),并且加入多層融合策略,使用深度交叉互相關(guān)操作代替SiamRPN 中簡單的互相關(guān)操作,帶來了更高的跟蹤性能?;谏疃群蛯挾壬窠?jīng)網(wǎng)絡(luò)的目標(biāo)跟蹤算法(deeper and wider Siamese networks for real-time visual tracking,SiamDW)[9]分別在SiamFC 和SiamRPN的基礎(chǔ)上,通過在更深的殘差網(wǎng)絡(luò)和更寬的Inception 網(wǎng)絡(luò)中加入殘差內(nèi)部裁剪單元(cropping-inside residual,CIR),消除了簡單增加神經(jīng)單元帶來的定位精度下降和網(wǎng)絡(luò)中的Padding 帶來的負(fù)面影響,進一步提高了算法的準(zhǔn)確性和魯棒性。能夠進行目標(biāo)分割的在線孿生網(wǎng)絡(luò)跟蹤(fast online object tracking and segmentation: a unifying approach,Siam-Mask)[10]將語義分割與目標(biāo)跟蹤相結(jié)合,在進行目標(biāo)跟蹤的過程中生成被跟蹤目標(biāo)的二進制掩膜,進而得到目標(biāo)的邊界框,大幅度提高了算法的精度。上述算法雖然取得了比較好的跟蹤效果,但是需要人工設(shè)定5 種不同寬高比的候選框,這導(dǎo)致在訓(xùn)練過程中正負(fù)樣本不平衡,減緩了網(wǎng)絡(luò)的訓(xùn)練速度;其次候選框?qū)捀弑仁歉鶕?jù)特定樣本設(shè)定,導(dǎo)致跟蹤網(wǎng)絡(luò)的泛化性下降。
(2)不含預(yù)定義候選框的跟蹤算法。為消除候選框?qū)捀弑仍O(shè)定不合適帶來的影響。全卷積無錨框?qū)\生網(wǎng)絡(luò)目標(biāo)跟蹤算法(fully conventional anchor-free Siamese networks for object tracking,FCAF)[11]最先提出無候選框跟蹤算法,該算法通過融合ResNet50特征提取網(wǎng)絡(luò)第3、4、5 層的輸出,并且采用與Siam-RPN++相同的網(wǎng)絡(luò)分支實現(xiàn)目標(biāo)跟蹤。因舍去候選框,網(wǎng)絡(luò)無法獲得先驗知識,該算法增加目標(biāo)檢測算法中的Center-ness 分支[12]來估計目標(biāo)的中心點,利用回歸網(wǎng)絡(luò)直接預(yù)測出目標(biāo)邊界框與錨點的距離?;谀繕?biāo)估計的精確目標(biāo)跟蹤算法(towards robust and accurate visual tracking with target estimation guidelines,SiamFC ++)[13]在SiamFC 的基礎(chǔ)上將特征提取網(wǎng)絡(luò)改為GoogleNet[14],并且采用與FCAF 相同的分支結(jié)構(gòu)來實現(xiàn)目標(biāo)的定位,該算法提升了跟蹤速率。自適應(yīng)孿生網(wǎng)絡(luò)視覺跟蹤算法(Siamese box adaptive network for visual tracking,SiamBAN)[15]采用傳統(tǒng)的分類與回歸分支,通過不同的訓(xùn)練策略(正樣本的選定方式)使回歸分支可以直接預(yù)測出跟蹤目標(biāo)邊界框與錨點的距離,精簡了跟蹤模型,證明孿生網(wǎng)絡(luò)跟蹤算法可以在沒有先驗知識的情況下,只采用分類與回歸分支也可以實現(xiàn)目標(biāo)跟蹤。不同于傳統(tǒng)算法中利用回歸分支來直接預(yù)測目標(biāo)的邊界,關(guān)鍵點預(yù)測網(wǎng)絡(luò)視覺跟蹤算法(Siamese key point prediction network for visual object tracking,SiamKPN)[16]通過引入關(guān)鍵點預(yù)測頭網(wǎng)絡(luò)(keypoint prediction head)來生成粗略的跟蹤目標(biāo)熱度圖,再通過級聯(lián)特征提取網(wǎng)絡(luò)不同層的輸出來逐步縮小熱度圖的范圍,從而對目標(biāo)的邊界進行精準(zhǔn)定位。隨著自然語言處理領(lǐng)域的發(fā)展,計算機視覺領(lǐng)域嘗試引入Transformer[17]結(jié)構(gòu),由于其考慮到局部特征與全局特征的關(guān)系,使用自注意力結(jié)構(gòu)為目標(biāo)跟蹤提供了新的解決方案。文獻[18]根據(jù)Transformer 結(jié)構(gòu)設(shè)計出了新的特征融合模塊,代替?zhèn)鹘y(tǒng)孿生網(wǎng)絡(luò)跟蹤算法中的互相關(guān)操作,使跟蹤模板和當(dāng)前幀可以進行全局計算,提高網(wǎng)絡(luò)對跟蹤目標(biāo)的整體把握。文獻[19]回歸到跟蹤的本質(zhì)問題,根據(jù)Transformer中提出的框架重新設(shè)計了跟蹤任務(wù)的回歸和分類分支,利用編碼解碼結(jié)構(gòu)完成特征融合,之后直接預(yù)測出目標(biāo)的邊界信息。
上述孿生網(wǎng)絡(luò)跟蹤算法在跟蹤過程中網(wǎng)絡(luò)參數(shù)固定,且僅僅使用第一幀給定的目標(biāo)作為跟蹤模板,或者直接更新原網(wǎng)絡(luò)的跟蹤模板,因此存在一定的局限性。其一,由于網(wǎng)絡(luò)的參數(shù)在跟蹤過程中是固定的,但是跟蹤目標(biāo)是任意的,可能存在網(wǎng)絡(luò)未學(xué)習(xí)過的跟蹤目標(biāo),這時網(wǎng)絡(luò)的跟蹤性能會嚴(yán)重下降。其二,文獻[20]指出網(wǎng)絡(luò)在跟蹤時跟蹤模板固定,將會導(dǎo)致其在被跟蹤目標(biāo)發(fā)生形變、運動模糊等具有挑戰(zhàn)性的條件下無法跟蹤上目標(biāo),回歸分支預(yù)測目標(biāo)邊框的精度下降。并且,文獻[21]直接根據(jù)目標(biāo)框的分類來更新原模板并不有效。
針對以上基于孿生網(wǎng)絡(luò)跟蹤算法存在的問題,本文提出基于參數(shù)自適應(yīng)與模板更新的孿生網(wǎng)絡(luò)跟蹤算法。為獲得更適用于當(dāng)前跟蹤目標(biāo)的網(wǎng)絡(luò)參數(shù),使用參數(shù)自適應(yīng)模塊,通過更新濾波器參數(shù),將背景噪聲與目標(biāo)區(qū)域分開,提高算法的判別能力;為應(yīng)對目標(biāo)的變化引入與主網(wǎng)絡(luò)平行的子網(wǎng)絡(luò),通過不斷更新子網(wǎng)絡(luò)的跟蹤模板來提高網(wǎng)絡(luò)對目標(biāo)變化的適應(yīng)性。
本文跟蹤算法整體框架如圖1 所示,主要包括特征提取模塊、分類與回歸模塊、參數(shù)自適應(yīng)模塊和模板更新。
圖1 基于參數(shù)自適應(yīng)與模板更新的孿生跟蹤算法整體框圖
ResNet50 各層輸出如圖2 所示,可以發(fā)現(xiàn)特征提取模塊每層提取的目標(biāo)特征各不相同,抽象程度逐漸提高:從圖2(a)可以看到目標(biāo)的輪廓,幾乎不包含特定目標(biāo)的語義信息;從圖2(b)幾乎看不到特定目標(biāo)與背景的不同,目標(biāo)湮沒在背景中;從圖2(c)可以看到目標(biāo)與背景逐漸分離,但是分離程度不太明顯,具有淺層語義信息;從圖2(d)可以看到,相對于圖2(c)來說,目標(biāo)與背景分離的程度變得更加明顯,具有中層語意信息;從圖2(e)可以看到,網(wǎng)絡(luò)更傾向于提取目標(biāo)的高級語義信息,所以第5 層具有深層語義信息。
圖2 特征提取模塊各層輸出
因此,特征提取模塊第1 層提取的是目標(biāo)的通用特征,第2 層提取的特征并沒有將目標(biāo)與背景分離,所以不選用第1、2 層的輸出特征。目標(biāo)跟蹤中,高級語義信息(第4、5 層)在運動模糊、目標(biāo)旋轉(zhuǎn)、相似性干擾等具有挑戰(zhàn)性的場景中比較重要,但是僅僅使用高級語義信息是不夠的,隨著神經(jīng)網(wǎng)絡(luò)深度的加深,特征圖的分辨率大大降低,這時目標(biāo)的位置信息丟失比較嚴(yán)重,因此需要淺層語義信息(第3層)來輔助完成目標(biāo)的精準(zhǔn)定位。為提高定位的精準(zhǔn)度,在SiamRPN++[8]中使用3、4、5 層輸出;在無候選框跟蹤算法中,FCAF、SiamBAN、SiamKPN 同樣采用ResNet50 網(wǎng)絡(luò)的3、4、5 層輸出用于后續(xù)的跟蹤任務(wù)。綜上考慮,本文算法同樣采用第3、4、5 層的輸出特征來實現(xiàn)目標(biāo)的辨識與定位。在圖1 特征提取網(wǎng)絡(luò)中有3 組ResNet50 網(wǎng)絡(luò):第1 組提取視頻序列第1 幀中給定跟蹤目標(biāo)的特征作為主網(wǎng)絡(luò)跟蹤模板;第2 組提取檢測幀中目標(biāo)的特征;第3 組提取的目標(biāo)特征作為新的跟蹤模板。1~3 組網(wǎng)絡(luò)采用相同的網(wǎng)絡(luò)結(jié)構(gòu)和網(wǎng)絡(luò)參數(shù),而孿生網(wǎng)絡(luò)跟蹤算法的核心在于使用相同的特征提取網(wǎng)絡(luò)將模板幀和檢測幀映射到相同的特征空間,通過計算模板幀與檢測幀特征的相似性實現(xiàn)定位跟蹤目標(biāo)。
分類與回歸模塊包含特征融合、回歸分支、分類分支和得分懲罰4 個部分。特征融合部分接收來自特征提取網(wǎng)絡(luò)不同層的輸出,實現(xiàn)不同層信息的融合;回歸分支編碼了目標(biāo)邊界框的回歸量;分類分支為每個空間位置編碼了其屬于目標(biāo)和背景的分類得分;得分懲罰通過對分類輸出進行懲罰,間接對預(yù)測框的變化進行限制,實現(xiàn)最終目標(biāo)框的計算。
由于舍去預(yù)定義候選框,本文使用錨點定位目標(biāo),其分布情況如圖3 中像素點所示。錨點計算公式如式(1)所示。
圖3 錨點位置示意圖
式中,x、y代表錨點的橫坐標(biāo)和縱坐標(biāo),i={1,2,3,…,25}。如圖1 所示,特征融合部分具體操作可表示為
式中,φ11表示卷積核為1 ×1 的卷積層,CONVv表示各層進行互相關(guān)之后的結(jié)果,v={3,4,5},其中互相關(guān)計算方式為CONVv=Fzv*Fxv。式中,Fzv、Fxv分別為模板幀、檢測幀第v層特征,*為卷積操作。在文獻[8]中,算法使用加權(quán)求和的方式對ResNet50 網(wǎng)絡(luò)第3、4、5 層的輸出進行融合,相對于文獻[8]中對同一層特征的每個通道簡單地賦予相同的權(quán)重,本文采用卷積操作進行融合,采用卷積融合可以對特征中每個通道的二維空間元素賦予不同的權(quán)重,得到更加精細(xì)的目標(biāo)特征。
對于回歸分支,特征Aall經(jīng)過4 層卷積之后,再次經(jīng)過卷積核大小為3 ×3 的卷積層,輸出結(jié)果分別代表特征圖的寬和高,4 個通道分別代表回歸邊界框相對于錨點的距離。
對于分類分支,特征Aall經(jīng)過由4 層卷積組成的卷積塊,再次分為2 個分支:分類子分支與中心度分支。對于分類子分支,對卷積塊的輸出使用卷積核大小為3 ×3 的卷積層進行操作,得到輸出結(jié)果代表分類得分圖的寬和高,2 個通道分別代表該錨點屬于前景和背景的分類得分;對于中心度分支,對卷積塊的輸出使用卷積核大小為3 ×3 的卷積層進行操作,得到輸出結(jié)果代表每個像素點屬于目標(biāo)中心得分圖的寬和高,1 個通道代表錨點屬于目標(biāo)中心點的得分,得到中心度得分之后,取經(jīng)過重新分配權(quán)重的分類子分支中代表錨點屬于前景的得分Scls與其作哈達瑪積,得到每個錨點屬于目標(biāo)定位點的得分G′wh1。這里中心度分支的作用是輔助分類分支對目標(biāo)中心點進行更加精確地定位。將G′wh1中得分最高的錨點作為跟蹤目標(biāo)的定位點,再根據(jù)與其對應(yīng)的回歸量預(yù)測出大致的預(yù)測邊界框。
對于得分懲罰部分,由于相鄰幀之間目標(biāo)的邊界框的尺寸大小變化和尺度變化很小,因此使用尺度和尺寸懲罰項對25 ×25 個錨點的得分圖進行重新排序,間接達到懲罰尺度和尺寸的目的。懲罰項Gpenalty可表示為
式中,k為超參數(shù);r為當(dāng)前幀的寬高比表示上一幀的寬高比;s、s′ 為當(dāng)前幀與上一幀的目標(biāo)框等效總長度,并且s滿足
這里,“ ×”代表矩陣對應(yīng)元素相乘。由于跟蹤目標(biāo)在相鄰兩幀間的位置變化不大,因而本文引入余弦窗(Wcosine)來抑制大的目標(biāo)位移變化進而排除干擾物。
其中,kwi為超參數(shù),用于決定余弦窗懲罰的程度。
基于式(7),找到得分圖中得分最高的分?jǐn)?shù)位置,并找到與其相對應(yīng)的回歸量,得到預(yù)測框。最后對預(yù)測邊界框進行平滑處理,平滑公式為
式中,lr=gnew×αlr,αlr為超參數(shù),gnew為Gnew中的最高得分,wfinal、hfinal分別為最終目標(biāo)框的寬和高,wlast、hlast分別為上一幀最終的目標(biāo)框的寬和高。
余弦窗懲罰效果如圖4(a)所示,不加入余弦窗懲罰時,在發(fā)生目標(biāo)遮擋的情況下,算法容易跟蹤上干擾物,進行尺度懲罰之后,由于限制相鄰幀目標(biāo)位置預(yù)測的變化,提高了算法的魯棒性;尺寸尺度懲罰效果如圖4(b)所示,不加入尺寸尺度懲罰時,預(yù)測的目標(biāo)框可以隨意變化,導(dǎo)致預(yù)測出的目標(biāo)框無法完全框選目標(biāo),加入懲罰之后,相鄰幀之間的目標(biāo)框不會發(fā)生劇烈變化,提高了算法的精度。
圖4 懲罰項作用示意圖
因?qū)\生網(wǎng)絡(luò)采用完全離線的方式進行訓(xùn)練,并且僅在初始幀中學(xué)習(xí)目標(biāo)的模板特征,這將導(dǎo)致網(wǎng)絡(luò)難以適應(yīng)劇烈的跟蹤目標(biāo)表觀變化,從而降低目標(biāo)跟蹤的魯棒性。因此一個可行的辦法是設(shè)計一個參數(shù)自適應(yīng)模塊,在跟蹤過程中進行較少樣本的訓(xùn)練,以此來調(diào)整網(wǎng)絡(luò)參數(shù)。
參數(shù)自適應(yīng)模塊如圖1 中所示,主要包括3 個子模塊:壓縮子模塊,注意力子模塊,濾波器子模塊。參數(shù)自適應(yīng)模塊的參數(shù)求解可看成一個優(yōu)化問題,可通過求解以下優(yōu)化目標(biāo)來獲取:
式中,xj為參數(shù)自適應(yīng)模塊的輸入特征;m為樣本池的容量大小,f為計算模塊輸出;yj為與訓(xùn)練樣本對應(yīng)的標(biāo)簽;rC(f(xj,wj),yj) 為計算每個空間位置的殘差函數(shù),γj是每個樣本對應(yīng)的權(quán)重值,用于控制每個樣本的影響程度,wk為模塊中卷積層的權(quán)重;c為卷積層的層數(shù),這里c=4;λk為對應(yīng)的wk的正則化系數(shù)。本文將式(9)中的rC設(shè)置為L2損失,對濾波器子模塊的輸出進行調(diào)整,進而生成特定于當(dāng)前目標(biāo)的特征。
1.3.1 壓縮子模塊
文獻[23]利用自編碼器模型實現(xiàn)輸入的壓縮與解壓縮,自編碼器包含編碼器和解碼器,自編碼器通過神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)輸入數(shù)據(jù)的潛在空間表征,利用這種表征重構(gòu)輸出。
壓縮模塊的輸入由圖片經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn),卷積神經(jīng)網(wǎng)絡(luò)中最核心的操作為卷積層,卷積操作可以將原始圖像信號中的某些圖像特征點進行增強。卷積神經(jīng)網(wǎng)絡(luò)中的d層卷積可以看作不同的特征提取器,那么壓縮子模塊的輸入可以看作d組特征。本文利用卷積層作為壓縮子模塊,學(xué)習(xí)輸入特征的潛在表征,減少來自特征提取模塊的特征通道數(shù),提高目標(biāo)區(qū)域的權(quán)重,使特征更加適用于分類任務(wù)。壓縮子模塊采用固定壓縮比,壓縮之后的特征通道數(shù)從256 減少到64。
壓縮子模塊具體作用如圖5 所示。圖5(a)為未經(jīng)過壓縮子模塊特征的可視化結(jié)果,可以看出,未經(jīng)過壓縮子模塊的特征中背景區(qū)域占據(jù)較大權(quán)重,算法忽略了目標(biāo)區(qū)域;圖5 (b)為經(jīng)過壓縮子模塊的特征可視化結(jié)果,可以看出,雖然壓縮子模塊減少了特征的通道數(shù),但是對輸入特征進行重構(gòu)之后,提高了對目標(biāo)區(qū)域的關(guān)注,有利于后續(xù)任務(wù)的實現(xiàn)。
圖5 壓縮子模塊作用示意圖
1.3.2 注意力子模塊
參數(shù)自適應(yīng)模塊需要在在線跟蹤過程中更新參數(shù)學(xué)習(xí)目標(biāo)的特征。由文獻[24,25]可知,在在線參數(shù)更新中,若直接使用標(biāo)準(zhǔn)卷積,由于特征所有像素中,屬于背景特征的像素比較多,這將導(dǎo)致對背景區(qū)域的學(xué)習(xí)占據(jù)主要位置。由圖5 知,雖然壓縮子模塊使目標(biāo)從背景中分離出來,但是相似物產(chǎn)生的干擾也愈發(fā)明顯。由文獻[26]知,這是因為將用于目標(biāo)檢測任務(wù)的離線訓(xùn)練網(wǎng)絡(luò)應(yīng)用于跟蹤任務(wù)時,只有少數(shù)卷積核在表征目標(biāo)時處于激活狀態(tài),由此產(chǎn)生的特征中只有很少的通道可以感知到當(dāng)前跟蹤目標(biāo),因此需要注意力機制對特征作進一步的調(diào)整。
綜上考慮,本文采用雙重注意力機制,包括空間注意力和通道注意力機制,對特征進行調(diào)整,解決訓(xùn)練和前向計算過程中特征的通道和空間維度數(shù)據(jù)失衡問題,以此來提高網(wǎng)絡(luò)對特定目標(biāo)的關(guān)注。
如圖6(a)所示,通道注意力機制首先對輸入特征F進行全局平均池化,形成每個通道的特征,擴大網(wǎng)絡(luò)的感受野;再通過2 個全連接層,利用訓(xùn)練得到的網(wǎng)絡(luò)參數(shù)對通道的權(quán)重進行調(diào)整。在調(diào)整權(quán)重時第1 個全連接層將權(quán)重映射到較低的維度,其目的為間接壓縮通道,得到較重要的通道信息;第2 個全連接層將通道權(quán)重映射到較高維度,其目的是得到原特征信息每個通道的權(quán)重;最后通過Sigmoid激活函數(shù)將通道權(quán)重映射到0~1 之間,得到最終每個通道的權(quán)重,形成通道注意力特征,提高網(wǎng)絡(luò)對特定種類目標(biāo)的關(guān)注度。為提高計算速度,全連接層由矩陣乘法實現(xiàn)。通道注意力計算過程如式(11)所示。
圖6 通道和空間注意力示意圖
式中GAP 為全局平局池化,W0、W1為2 個全連接層的權(quán)重,F為注意力機制輸入特征,δ為Sigmoid激活函數(shù)。
圖像特征由卷積操作得到,而特征的不同通道是由參數(shù)不同的卷積核提取得到。由于卷積計算是滑窗操作,不同通道的二維空間信息將被保留下來,其中包含屬于跟蹤目標(biāo)特征的空間位置信息??臻g注意力機制就是利用卷積這種特性,為特征的每個二維空間位置重新分配權(quán)重,達到為不同特征分配權(quán)重的目的。如圖6(b)所示,空間注意力機制對輸入特征每個二維空間位置進行平均池化,再經(jīng)過Relu 激活操作形成二維空間注意力特征,得到特征位置權(quán)重??臻g注意力機制計算過程如式(12)所示。
式中AvgPool 表示平均池化操作,σ表示Relu 激活函數(shù)。
如圖6 中(c)所示,本文利用通道和空間注意力機制的加和實現(xiàn)雙重注意力機制,達到同時利用特征空間和通道信息的目的。雙重注意力機制操作過程如式(13)所示。
式中+為矩陣加法。
雙重注意力機制、通道注意力機制、空間注意力機制作用如圖7 所示。從圖7(a)、(b)可以看出,經(jīng)過通道注意力機制之后,網(wǎng)絡(luò)將關(guān)注的區(qū)域集中到所有的籃球運動員,可見通道注意力可以增強網(wǎng)絡(luò)對特定類別的關(guān)注;從圖7(c)、(d)可以看出,經(jīng)過空間注意力之后,網(wǎng)絡(luò)將關(guān)注的區(qū)域集中到要跟蹤的籃球運動員,可見空間注意力機制可以提高網(wǎng)絡(luò)對跟蹤目標(biāo)區(qū)域的關(guān)注;從圖7(e)、(f)可以看出,經(jīng)過雙重注意力之后,目標(biāo)從背景中分離出來,可見雙重注意力機制兼具空間和通道注意力兩者的優(yōu)點。
圖7 注意力模塊作用示意圖
1.3.3 濾波器子模塊
文獻[7]指出,即使提取到能對干擾物感知(特定于當(dāng)前目標(biāo))的特征之后,基于孿生網(wǎng)絡(luò)結(jié)構(gòu)的跟蹤算法在跟蹤過程中也容易被相似物所干擾。產(chǎn)生這種現(xiàn)象的原因在于跟蹤過程中網(wǎng)絡(luò)的權(quán)重是固定的,無法對噪聲產(chǎn)生抑制作用。針對以上問題,本文引入在線更新的濾波器子模塊,抑制在線跟蹤過程中的背景噪聲。濾波器子模塊由卷積實現(xiàn),卷積核的參數(shù)在跟蹤過程中不斷更新。因訓(xùn)練樣本在跟蹤過程中根據(jù)網(wǎng)絡(luò)跟蹤結(jié)果動態(tài)提取樣本,而在跟蹤過程中無法避免存在定位誤差,所以訓(xùn)練樣本中難免存在背景噪聲,因此濾波器模塊必須輸出樣本的置信度,用于確定是否將樣本放入訓(xùn)練樣本池。
(1) 濾波器訓(xùn)練樣本。濾波器的樣本池大小為m,其中有30 個樣本是由第1 幀給定的真實目標(biāo)經(jīng)過數(shù)據(jù)增強得到。樣本在網(wǎng)絡(luò)開始預(yù)測時,用于壓縮子模塊、注意力子模塊和濾波器子模塊參數(shù)的訓(xùn)練,并且在樣本池中保持不變,不會隨著樣本池的更新被替換掉。當(dāng)樣本池中樣本未達到m時,直接保存受到相似物干擾和正常情況的樣本。當(dāng)樣本達到m時,采用替換策略,利用新的合適樣本替換最舊的樣本。對于訓(xùn)練樣本的標(biāo)簽,本文采用在跟蹤過程中根據(jù)目標(biāo)框預(yù)測出的目標(biāo)位置設(shè)置的具有高斯分布的標(biāo)簽值。
(2) 濾波器輸出結(jié)果。特征經(jīng)過濾波器之后,輸出參數(shù)自適應(yīng)模塊最終的結(jié)果,結(jié)果包含2 部分:
1) 檢測幀每個像素點的得分f。
2) 關(guān)于得分的置信度,其中置信度可以分為4種情況:
①未找到目標(biāo)位置(最高得分低于0.25);
②受到相似物的干擾(以最高得分點坐標(biāo)為中心點,根據(jù)上一幀目標(biāo)框大小,若在目標(biāo)框大小范圍之外有得分(次高分)超過最高得分的0.8 倍);
③不確定(次高分超過最高分的0.5 倍,并且次高分大于0.25);
④正常情況(未出現(xiàn)以上情況)。
(3) 濾波器輸出結(jié)果與分類融合。獲得濾波器子模塊的輸出之后,使用三次插值將輸出調(diào)整到與分類子分支輸出相同的大小,然后通過加權(quán)求和融合在一起,得到分類子模塊的輸出得分,表達式可表示為
式中,βc為超參數(shù)。
濾波器子模塊的作用如圖8 所示,圖中(a)表示進入濾波器之前的特征的熱力圖,其中存在相似物的干擾,這會影響到網(wǎng)絡(luò)的跟蹤效果;(b)表示經(jīng)過濾波器之后的特征的熱力圖,濾波器在濾除噪聲的同時目標(biāo)區(qū)域的響應(yīng)達到最大。
圖8 濾波器子模塊作用示意圖
基于孿生網(wǎng)絡(luò)的目標(biāo)跟蹤算法通過將模板幀圖片和檢測幀圖片中的目標(biāo)特征映射成高維特征,之后通過模板幀特征匹配檢測幀特征完成跟蹤目標(biāo)的搜索,因此模板幀圖像和檢測幀圖像相似是完成目標(biāo)跟蹤的重要前提。而在實際目標(biāo)跟蹤過程中,跟蹤目標(biāo)會發(fā)生劇烈的變化,跟第1 幀時的外觀完全不同,因此,需要在線上測試時更換跟蹤模板,以適應(yīng)目標(biāo)劇烈的外觀變化。
盡管STMTrack[27]中給出了比較簡單的模板更新策略,但在一些比較有挑戰(zhàn)性的跟蹤場景中存在幾個缺點:(1)當(dāng)上一幀目標(biāo)跟丟時,在跟蹤當(dāng)前幀目標(biāo)時仍會使用上一幀圖像的特征,此時跟蹤模板的質(zhì)量會大大降低,進而影響跟蹤效果;(2)除了第1 幀和當(dāng)前幀的前一幀,其他歷史幀的選擇方式是固定的,無法判斷其圖像中目標(biāo)的跟蹤質(zhì)量,導(dǎo)致模板的質(zhì)量無法確定,進而影響后續(xù)對跟蹤目標(biāo)的預(yù)測。
在線更新跟蹤模板可以實時獲得特定目標(biāo)的信息,但是文獻[20]指出,孿生結(jié)構(gòu)的跟蹤算法僅僅使用第1 幀或者更新原始模板會使模型的性能下降,特別是在大的形變、運動模糊等具有挑戰(zhàn)性的跟蹤場景下,因為跟蹤過程中噪聲的加入會使模板丟失目標(biāo)的特征??紤]到以上問題及其他算法中模板更新策略的缺陷,本文引入一個與孿生網(wǎng)絡(luò)并行且相互獨立的子網(wǎng)絡(luò)。如圖1 所示,該網(wǎng)絡(luò)同主網(wǎng)絡(luò)一樣包含相同的結(jié)構(gòu)(特征提取網(wǎng)絡(luò)、分類與回歸模塊),但跟蹤模板會被更新,并且同主網(wǎng)絡(luò)一樣輸出跟蹤目標(biāo)的預(yù)測框,子網(wǎng)絡(luò)預(yù)測框與主網(wǎng)絡(luò)輸出進行比較,選擇合適的預(yù)測框作為最終的目標(biāo)框。子網(wǎng)絡(luò)和主網(wǎng)絡(luò)輸出預(yù)測框使用交并比進行相似度的衡量,交并比(intersection over union,IoU)公式如下所示:
式中,A表示主網(wǎng)絡(luò)輸出預(yù)測框,B表示子網(wǎng)絡(luò)的輸出預(yù)測框。
預(yù)測框篩選機制原則如下,若子網(wǎng)絡(luò)輸出預(yù)測框與主網(wǎng)絡(luò)輸出預(yù)測框的交并比超過0.6 并且子網(wǎng)絡(luò)預(yù)測框得分SB比主網(wǎng)絡(luò)輸出得分SA高0.5,此時選擇子網(wǎng)絡(luò)輸出作為最終結(jié)果,否則選擇主網(wǎng)絡(luò)輸出結(jié)果。
子網(wǎng)絡(luò)跟蹤模板選擇方式如下。
自視頻第1 幀開始,子網(wǎng)絡(luò)每5 幀更新一次模板,對于模板幀的選擇,網(wǎng)絡(luò)采用替代原則保存最好的模板圖像,替代原則如下所述。(1)本次目標(biāo)框分類得分大于已保存的圖像;(2)本次目標(biāo)框的預(yù)測結(jié)果未受到相似物的干擾。子網(wǎng)絡(luò)模板更新示意圖如圖9 所示。
圖9 模板更新示意圖
本文提出基于參數(shù)自適應(yīng)與模板更新的孿生網(wǎng)絡(luò)跟蹤算法,具體步驟如下。
(1)輸入目標(biāo)跟蹤圖像序列。輸入要跟蹤的目標(biāo)圖像序列,根據(jù)給定的目標(biāo)真實邊界框獲取第1幀中目標(biāo)的中心位置和尺寸大小。
(2)根據(jù)給定的目標(biāo)位置與尺寸大小裁剪圖片,將裁剪的圖片送入特征提取模塊,得到網(wǎng)絡(luò)第3、4、5 層的輸出作為跟蹤時需要的模板。
(3)初始化子網(wǎng)絡(luò)。將第(2)步中第3、4、5 層的輸出作為子網(wǎng)絡(luò)的跟蹤模板。
(4)初始化參數(shù)自適應(yīng)模塊。利用式(9)定義的損失函數(shù)進行訓(xùn)練,得到模塊中的網(wǎng)絡(luò)參數(shù)。
(5)計算主網(wǎng)絡(luò)和子網(wǎng)絡(luò)的跟蹤結(jié)果。以上一幀預(yù)測得到的目標(biāo)中心點位置為中心點裁剪得到255 ×255 的檢測幀圖像,送入特征提取模塊,得到特征提取模塊中第3、4、5 層輸出的特征。將特征與第(2)步得到的跟蹤模板送入分類與回歸模塊,根據(jù)式(2)計算互相關(guān)特征,根據(jù)式(3)~(8)和式(14),得到主網(wǎng)絡(luò)輸出預(yù)測框。將特征送入子網(wǎng)絡(luò)根據(jù)式(2)~(8),得到另一個預(yù)測框。
(6)根據(jù)式(17)計算第(5)步得到的2 個預(yù)測框的相似度,經(jīng)過篩選機制進行篩選,得到最終的目標(biāo)框。
(7)為參數(shù)自適應(yīng)模塊增加訓(xùn)練樣本。根據(jù)濾波器子模塊中的樣本篩選條件,選擇滿足條件的訓(xùn)練樣本。
(8)更新子網(wǎng)絡(luò)的跟蹤模板和濾波器模塊參數(shù)。在跟蹤開始后,每5 幀更新一次子網(wǎng)絡(luò)的模板,并且根據(jù)式(9)訓(xùn)練濾波器參數(shù)。
(9)若滿足重復(fù)條件,跳轉(zhuǎn)到第(5)步,否則跳轉(zhuǎn)到第(10)步。
(10)輸出跟蹤結(jié)果。
為驗證本文算法的有效性,實驗采用VOT 2018[28]和VOT 2019[29]作為評價數(shù)據(jù)集。VOT 2018 包含60 個具有更精細(xì)人工標(biāo)注的目標(biāo)跟蹤圖像序列,即每個真實框由4 個坐標(biāo)點組成,含有遮擋、光照變化、運動變化、尺寸變化和相機移動等跟蹤難點。VOT 2019 是通過替換VOT 2018 中跟蹤難度比較小的20%目標(biāo)跟蹤圖像生成得到,其跟蹤難度更高。
本文算法所作實驗均在臺式機上進行,處理器為Intel core(TM)i7-8700K,主頻為3.70 GHz,內(nèi)存為32 GB,顯卡為Nvidia GTX1080Ti;操作系統(tǒng)為64位Ubuntu 16.04,編程環(huán)境為Python 3.7。
3.2.1 超參數(shù)設(shè)置
在實際應(yīng)用過程中,對于不同的數(shù)據(jù)集,需要采用不同的參數(shù)設(shè)置才能獲得更好的性能表現(xiàn)。因此,針對不同的數(shù)據(jù)集VOT 2018、VOT 2019,需要不同的超參數(shù)。本文采用SiamBAN 算法中針對VOT 2018、VOT 2019 數(shù)據(jù)集的超參數(shù),即對于VOT 2018,k=0.08,kwi=0.46,αlr=0.44;對于VOT 2019,k=0.001,kwi=0.33,αlr=0.46。
3.2.2 其他參數(shù)設(shè)置
關(guān)于參數(shù)自適應(yīng)模塊中的參數(shù)設(shè)置,訓(xùn)練樣本權(quán)重γj為0.01,當(dāng)鄰近目標(biāo)受到干擾時設(shè)置為0.02;為有效地融合分類得分,對于式(14),βc采用以下步驟尋優(yōu):(1)設(shè)置搜索區(qū)間為[0.1,1.0],步長為0.1;(2)根據(jù)第(1)步找到的性能第1 與第2的參數(shù),重新設(shè)置搜索區(qū)間[0.7,0.9],步長為0.01,最終找到的最優(yōu)超參數(shù)為0.7。
在VOT 2019 標(biāo)準(zhǔn)數(shù)據(jù)集上設(shè)置對比實驗,用于評估引入的參數(shù)自適應(yīng)模塊、模板更新子網(wǎng)絡(luò)的作用。采用期望重疊率(expected average overlap,EAO)、準(zhǔn)確性(accuracy,A)、魯棒性(robustness,R)、跟丟次數(shù)(lost number,LN)、每秒幀數(shù)(frames per second,FPS)這5 個評價指標(biāo)對改進的算法進行評估。
3.3.1 使用參數(shù)自適應(yīng)模塊
參數(shù)自適應(yīng)模塊(parameter adaptive,PA)包含壓縮子模塊、注意力子模塊、濾波子模塊,效果如表1所示。在VOT 2019 數(shù)據(jù)集上,期望重疊率(expected average overlap,EAO)從0.302 提高到0.312,提高了1%;大幅度減少了跟丟次數(shù),從SiamCAR 的93 次減少到64 次,獲得了穩(wěn)健的跟蹤性能。
表1 加入?yún)?shù)自適應(yīng)模塊
3.3.2 使用模板更新
在加入?yún)?shù)自適應(yīng)模塊的基礎(chǔ)上,進一步加入模板更新(template update,TU),在VOT 2019 數(shù)據(jù)集上,做對比實驗。因模板更新間隔幀數(shù)是一個重要的超參數(shù),首先對模板更新間隔幀數(shù)Fg做具體的實驗,找到最佳值。如表2 所示,當(dāng)Fg為5 時,算法的性能最好。這是因為算法在跟蹤過程中,對目標(biāo)框的預(yù)測總會有偏差,當(dāng)過于頻繁地更新跟蹤模板時,可挑選的模板相對較少,模板質(zhì)量無法保證;而當(dāng)模板更新不頻繁時,算法會無法適應(yīng)目標(biāo)的變化。如表3 所示,加入模板更新,EAO 提升到0.331,跟丟次數(shù)減少到58 次,進一步提升了算法的魯棒性,獲得了較好的跟蹤性能。
表2 模板更新間隔幀數(shù)
表3 加入模板更新
3.4.1 VOT 2019 實驗
盡管孿生網(wǎng)絡(luò)跟蹤算法體現(xiàn)了深度神經(jīng)網(wǎng)絡(luò)強大的表征能力,但當(dāng)前基于孿生網(wǎng)絡(luò)的跟蹤算法仍然會在面臨相似物干擾、遮擋和較大形變時性能下降。本文算法引入?yún)?shù)自適應(yīng)模塊和模板更新子網(wǎng)絡(luò),為驗證本文算法的有效性,引入在VOT2019 上表現(xiàn)比較好的SiamMargin[29]、SiamFCOT[29]、DiMP[30]、SiamBAN、DCFST[29]、SiamDW_ST[29]、ARTCS[29]、SiamMask、SiamRPN++、SPM[31]、Siam-CRF-RT[29]、ATOM[32]、SiamCAR[33]等13 種跟蹤算法,采用期望重疊率、準(zhǔn)確率、魯棒性、跟丟次數(shù)、每秒幀數(shù)這5 個指標(biāo)對13 種性能優(yōu)異的跟蹤算法進行比較,結(jié)果如表4 所示。
表4 不同算法在VOT2019 上的結(jié)果對比
本文提出的算法在VOT 2019 測試集上跟蹤速率和最好算法存在差距,這是因為算法在測試過程中需要在線訓(xùn)練,不斷優(yōu)化參數(shù)自適應(yīng)模塊中的卷積參數(shù),這會拖慢算法的執(zhí)行效率,但本文算法也達到實時需要的20 FPS,雖然算法的EAO 表現(xiàn)不是最高,但是丟幀次數(shù)是最少的,說明本文采用的參數(shù)自適應(yīng)模塊和模板更新子網(wǎng)絡(luò)是有效的,可以提高網(wǎng)絡(luò)的穩(wěn)健性。
3.4.2 VOT 2018 實驗
為驗證算法在其他數(shù)據(jù)集上的有效性,在VOT 2018 上進行測試。VOT 2018 數(shù)據(jù)集相對于VOT 2019 跟蹤挑戰(zhàn)難度略有下降,但是仍然可以被認(rèn)為是較全面的測試集。
圖10 是從VOT 2018 數(shù)據(jù)集中選取5 個具有各種跟蹤難點的視頻圖像序列,可視化本文算法與SiamCAR(下文簡稱CAR)實際跟蹤效果(圖中未標(biāo)注目標(biāo)框的算法代表該算法在當(dāng)前幀中已丟失目標(biāo))。
圖10 VOT 2018 部分序列結(jié)果對比圖
對于ants1 測試視頻的跟蹤,其主要跟蹤難點在于被跟蹤目標(biāo)尺寸較小和相似目標(biāo)的干擾。由可視化圖可知,CAR 算法在第125、126 和第224、225幀受到與跟蹤目標(biāo)相同類別物的干擾,并且在第126、225 幀丟失跟蹤目標(biāo),說明CAR 算法抵抗相似物干擾的性能不強,而本算法可以在有相似物干擾的情況下,穩(wěn)健地跟蹤目標(biāo),體現(xiàn)了本算法魯棒性的提高。
對于birds1 測試視頻的跟蹤,其主要難點是大的形變和相似目標(biāo)的干擾。由圖可知,在第99 和113 幀中,跟蹤目標(biāo)與其相似的干擾距離過近或者在圖像中顯示部分區(qū)域重疊,此時CAR 算法受到干擾,并且在下一幀丟失目標(biāo),而本文算法依然能夠比較準(zhǔn)確地跟蹤目標(biāo)。在第323 幀中本文算法受到目標(biāo)大的形變的干擾,但在第324 幀可以及時地調(diào)整目標(biāo)框,跟蹤上目標(biāo)。這說明參數(shù)自適應(yīng)模塊與模板更新的引入可以學(xué)習(xí)跟蹤目標(biāo)的特征,有效地調(diào)整跟蹤器在跟蹤過程中的狀態(tài)。
對于soccer1 測試視頻的跟蹤,其主要難點是遮擋和模糊。由圖可知,在第115 幀中,由于遮擋與圖像模糊同時發(fā)生,CAR 算法已經(jīng)丟失跟蹤目標(biāo),本文算法也受到這種跟蹤挑戰(zhàn)的影響,幾乎丟失目標(biāo),但是在第116 幀中,當(dāng)遮擋情況轉(zhuǎn)好,并且模糊有所改善時,本文算法可以及時地調(diào)整目標(biāo)框,跟蹤上目標(biāo)。在第256 幀中,此時跟蹤目標(biāo)出現(xiàn)模糊,并且此時出現(xiàn)相似物的干擾,CAR 算法幾乎丟失跟蹤目標(biāo),而本文算法仍然可以穩(wěn)健地跟蹤目標(biāo)。由此可以看出本文算法在面臨遮擋與模糊的情況下依然可以實現(xiàn)跟蹤。
對于soldier 測試視頻,跟蹤對象為士兵的頭盔,其主要跟蹤難點在于被跟蹤目標(biāo)的背景比較雜亂且存在目標(biāo)遮擋。從第56 幀開始,CAR 算法和本文算法均受到背景的干擾,并逐漸偏離真實目標(biāo)框,到第62 幀CAR 算法跟丟目標(biāo),再到第83 幀,CAR 算法又一次跟丟目標(biāo),而本文算法從偏離目標(biāo)到逐漸跟蹤上目標(biāo)。可見本文提出的算法不僅可以區(qū)分相似目標(biāo)的干擾,還可以隨著跟蹤的進行,逐漸學(xué)習(xí)目標(biāo)的特征,不斷完善跟蹤的效果。
對于girl 測試視頻的跟蹤,跟蹤目標(biāo)為小女孩,其跟蹤難點在于背景(非跟蹤目標(biāo)區(qū)域)中的人對跟蹤目標(biāo)的遮擋以及由此帶來的相似物干擾。由可視化圖可知,從第221 幀本文算法受到相似物干擾,并在第222 幀偏離跟蹤目標(biāo),但是在第224 幀又重新跟蹤上目標(biāo)。同樣在第773 幀CAR 算法與本文算法同樣受到相似干擾,而CAR 算法在第783 幀丟失跟蹤目標(biāo),而本文算法仍能跟蹤目標(biāo),并且在第800 幀將目標(biāo)框收縮到跟蹤目標(biāo)。可見本文算法可以在偏離目標(biāo)的時候自適應(yīng)地跟蹤上目標(biāo),達到減少丟幀的效果,進而提高了算法的穩(wěn)健性。
傳統(tǒng)孿生網(wǎng)絡(luò)跟蹤算法網(wǎng)絡(luò)參數(shù)由線下訓(xùn)練得到,并且在跟蹤時參數(shù)固定,這使得算法缺少特定于跟蹤目標(biāo)的信息;而且在跟蹤時跟蹤模板僅僅使用第1 幀給定的目標(biāo),對實時變化的目標(biāo)的適應(yīng)性較差,這導(dǎo)致算法的魯棒性較差。為此,本文提出基于參數(shù)自適應(yīng)與模板更新的孿生網(wǎng)絡(luò)跟蹤算法,通過引入?yún)?shù)自適應(yīng)模塊、模板更新子網(wǎng)絡(luò)提高了算法在光照變化、尺度變化,遮擋等具有挑戰(zhàn)性的情況下的穩(wěn)健性。參數(shù)自適應(yīng)模塊通過空間注意力機制提高了網(wǎng)絡(luò)對跟蹤目標(biāo)空間位置的關(guān)注度,通道注意力機制提高了網(wǎng)絡(luò)對特定目標(biāo)類別的關(guān)注。通過在線訓(xùn)練,更新濾波器參數(shù)策略濾除了干擾,提高了算法的判別能力;模板更新子網(wǎng)絡(luò)通過不斷更新跟蹤模板,得到候選預(yù)測框,利用篩選機制挑選出合適的目標(biāo)框,提高了網(wǎng)絡(luò)對跟蹤目標(biāo)變化的適應(yīng)性。在VOT 2018、VOT 2019 2 個數(shù)據(jù)集上對算法進行測試,EAO 分別達到0.331 和0.455,再分別與其他算法進行比較,本文算法的性能同樣具有競爭力,驗證了本文算法的有效性。