周士琪,王耀南,鐘杭
(1. 湖南大學 電氣與信息工程學院,湖南 長沙 410082; 2. 湖南大學 機器人視覺感知與控制技術國家工程實驗室,湖南 長沙 410082)
無人機因其隱蔽性高、體積小、機動性強等優點,已被廣泛應用于智慧交通、搶險救災、軍事偵察、航拍等領域[1]。隨著計算機視覺與人工智能技術的不斷發展,面向無人機的目標跟蹤算法,因能使無人機執行更多自主任務,成為了當下研究的熱點[2]。無人機在執行跟蹤任務過程中,由于平臺的運動與圖像的不穩定性,往往會使拍攝的圖像序列視角變化更大、目標尺度變化快、背景模糊、遮擋頻繁等。因此,研究一種高效而魯棒的目標跟蹤算法,對無人機的應用具有重要的價值與意義。
近年來,以CSK(circulant structure of trackingby-detection with kernels)[3]、KCF(kernelized correlation filters)[4]為代表的傳統相關濾波算法,因其明顯的速度優勢在無人機目標跟蹤領域中得到廣泛關注。但是,基于傳統方法的目標跟蹤算法利用手工設計的特征提取器,往往對目標的變化不魯棒,在一些復雜條件下的無人機跟蹤過程中,效果并不理想。隨著深度學習技術的發展,深度網絡因其良好的特征表達能力,相較傳統的特征提取方法已取得了明顯的優勢。如C-COT(continuous convolution operators for visual tracking)[5]、ECO(efficient convolution operators for tracking)[6],利用離線訓練獲取特征提取網絡,使跟蹤精度得到了顯著提升,但是算法的運行速度難以滿足無人機目標跟蹤的實時性要求。2017年,Tao等[7]提出SINT(Siamese instance search tracking)算法,首次將孿生網絡應用于目標跟蹤領域。之后,Bertinetto等[8]提出了SiamFC(Siamese fully convolutional),一種基于孿生網絡全卷積目標跟蹤算法,采用端到端的方式直接訓練整個網絡,該算法在速度與精度上都取得了較好的效果,這也使得孿生網絡在跟蹤領域受到了越來越多的重視。CFNet(correlation filter network)[9]在孿生網絡框架中引入了相關濾波層。SiamRPN(Siamese region proposal network)[10]中,開創性地引入了目標檢測中的RPN(region proposal network)[11]網絡到孿生網絡跟蹤中,將相似度計算問題轉化為目標分類與回歸問題,并在大規模的數據集上進行離線訓練,使算法在速度和精度上都取得了明顯優勢。但時,RPN網絡同時也存在著目標置信度不能準確表征目標框準確度、目標框無法迭代修正以及超參數較多等問題[12]。
本文針對圖像序列的無人機目標跟蹤問題,提出了一種基于孿生網絡的目標跟蹤算法,能在嵌入式無人機機載電腦上實時運行。該算法主要包括3部分:為提升特征提取網絡的特征表達能力同時保障算法的實時性能,引入MobileNetV2[13]作為主干網絡并采用一種基于偏移量學習的方式,解決網絡平移不變性的問題;引入了一種新的目標尺度估計模塊,可預測出目標框與真實框的重疊率IoU,并以此為指導,對目標框進行迭代修正;最后,利用網絡多層特征,采用殘差融合的策略進一步提升網絡性能。針對因完全遮擋導致目標跟丟的問題,本文設計了一個基于MoblieNetV2的實時高效的顯著性檢測算法,可輕易地嵌入目標跟蹤框架中。在跟丟時,切換到顯著性檢測算法對目標進行再檢測以恢復跟蹤。
傳統的基于孿生網絡的目標跟蹤算法,根據目標的相似度來對目標進行跟蹤[8],通過學習一個相似性函數f(z,x),將模板圖像z與搜索圖像x分別作為模板分支與搜索分支的輸入,在第一幀時,通過卷積網絡 φ 對模板圖像z進行處理,得到感興趣目標的特征信息,在后續幀中,通過卷積網絡 φ 對搜索圖像x進行處理,得到搜索區域特征,并將其與第一幀得到的模板特征進行卷積匹配,采用滑窗檢測的方式,得到輸出的得分置信度特征相應圖,得分最大的點表示該位置與目標具有最大的相似度,因此相似性函數可表示為
fθ(z,x)=φθ(z)?φθ(x)+b·I
式中:θ 表示網絡參數;? 表示卷積操作;b·I表示偏置項。
孿生網絡對目標相似性的學習是基于全卷積網絡的平移不變性基礎上的,令Lτ表示平移操作,則 (Lτx)[u]=x[u?τ];這使得:

式(1)表示將目標在搜索區域進行平移后,其映射到得分置信度特征圖相應位置的值與平移之前保持不變,這讓網絡的訓練與實際的跟蹤具有意義。同時網絡具有嚴格的結構對稱f(z,x)=f(x,z),這也有益于相似性的學習。
利用全卷積網絡的這些特性,模板圖像與搜索圖像可以使用不同分辨率的圖片,通過輸入尺寸更大的搜索圖像,可以使模板圖像在其不同的子窗口進行滑窗檢測,得到目標的得分置信度特征響應圖。響應圖中的每一個點與搜索圖像中的每一個子窗口一一對應,表示該子窗口區域與目標的相似度,以此實現對目標的跟蹤。
目標跟蹤模算法包含了2個模塊,分別是目標得分估計模塊、目標尺度估計模塊,其網絡結構圖如圖1所示。利用目標得分模塊可得到目標在圖像中的初始位置,再利用目標尺度估計模塊對目標位置及其目標框大小進行迭代修正,得到目標最終的位置及尺度估計。

圖1 目標跟蹤算法網絡結構Fig.1 Object tracking network structure
1.2.1 目標得分估計模塊設計
為了提升特征提取網絡性能同時保障算法的實時性,本文引入MobileNetV2作為特征提取網絡。對于圖1中的目標得分估計模塊,由于該網絡中加入了padding,使孿生網絡的平移不變性遭到破壞[14],導致網絡學習遭到嚴重的中心偏置,造成跟蹤失敗。為解決這一問題,本文通過一種目標偏移量學習的方式,使網絡能預測出目標在兩幀圖像之間的偏移量而不是相似度,這使得深度網絡通過學習的方式獲取到全卷積網絡平移不變性的特性,成功引入MobileNetV2作為特征提取網絡。同時,為了適應于目標跟蹤任務,將MobileNetV2的第4個bottleneck塊和第6個bottleneck塊的下采樣率設為1,使網絡的總下采樣率由32調整為8,并通過加入空調卷積層來增加網絡的感受野[15],最后在網絡的輸出部分增加一個1×1的卷積,使輸出特征通道維度為6。
在目標得分估計模塊,采用偏移量學習的方式進行訓練,通過引入一個偏移量t=(tx,ty),表示目標相對于得分置信度特征響應圖中心點c的偏移量,其值等于(Tx/s,Ty/s),其中,Tx、Ty表示訓練時,通過數據增強的方式對圖像目標區域隨機產生的平移量,s表示網絡的總下采樣率。將與目標偏移后的中心點的距離在一定范圍內的點視為正樣本,其余的點都為負樣本,則目標得分估計模塊的標簽ys表示為

式中u表示標簽ys相應點的坐標。采用logistics loss作為目標得分置信度模塊的損失函數,進行訓練。通過這種訓練方式,使網絡能夠主動地去學習目標產生的偏移量,解決了網絡平移不變性被破壞的問題,使該模塊能成功地估計出目標當前位置。
1.2.2 目標尺度估計模塊設計
本文在孿生網絡的基礎上,新增了一個目標尺度估計模塊,將MobileNetv2提取到的模板特征與搜索特征進行卷積,得到一個包含目標信息的特征圖,再通過一個 1 ×1 的卷積層對其進行處理,得到適用于目標尺度估計模塊的特征輸入I。特征輸入I包含了目標信息,因此可將目標在搜索圖像上的邊界框映射到特征輸入I上,在特征圖I上相應的區域通過PrPool(Precise ROI Pooling)[12]提取特征,PrPool將目標區域劃分為m×m個bin,對每個bin應用雙線性插值,將離散的像素點區域插值為一個連續的區域后,對每個bin求積分,該過程可表示為

式中:S表示bin的面積;P表示PrPool特征提取;P(bin,I)表示利用PrPoo在特征圖I上的bin區域提取特征,得到該區域的一個標量特征值;(x1,y1)、(x2,y2)分別表示該bin區域的左上角和右下角坐標。最后,將所有bin區域提取到的特征通過2個全連接層可得到目標的IoU預測。


其他坐標導數同理可得,因此通過梯度上升法可對目標邊界框進行迭代修正,使目標IoU最大:

1.2.3 多層特征融合與網絡訓練
為了充分利用MobileNetV2網絡的多層特征,利用MobileNetV2的bottleneck3、bottleneck5、bottleneck7分別對模板圖像與搜索圖像提取特征進行卷積,得到在3個不同層下的特征輸出I=(I1,I2,I3) 與S=(S1,S2,S3)。由于這3層輸出具有相同的下采樣率,因此輸出特征圖分辨率相同,但由于每層具有不同的空洞卷積率,每層具有不同的感受野。感受野越大,網絡能捕獲到更多的語義信息,因此,能更好地應對目標的外觀變化、背景變化等。而感受野較小,則能捕獲到更多的細節信息,如目標的輪廓及位置信息等。通過將高感受野的特征輸出與低感受野的特征輸出融合,使網絡的輸出既具有高層的語義信息,又具有低層的位置輪廓信息,從而使網絡對目標的檢測更加魯棒。
對于目標得分估計模塊,本文采用一種殘差融合的策略,將S1、S2、S3特征直接相加后通過一個殘差單元[16]進行融合,隨后通過一個 1 ×1 卷積對融合后的特征進行降維,最后得到目標得分估計相應圖的預測。令cres表示殘差融合模塊,則目標得分估計響應圖可表示為s core=cres(S1,S2,S3)。該模塊的損失函數可表為

式中:u表示score中相應的坐標; | score| 表示響應圖像素點總數量;ys為式(2)中相應的標簽。
對于目標尺度估計模塊,在網絡訓練時,將目標邊界框的groundtruth加入一個高斯噪聲,生成16個不同的邊界框,并保證每個邊界框與groundtruth的IoU大于0.1,將這16個邊界框映射到Mobile-NetV2在目標尺度估計模塊所提取到的特征I=(I1,I2,I3)上,采用PrPool對這些區域提取特征,最后通過全連接層F,計算得到16個目標邊界框與groundtruth的IoU預測,該過程可表示為
IoU=F(c(P(bin,I1,I2,I3)))
式中:c表示將PrPool提取到的3個m×m×256 特征輸出拼接成1個m×m×768 的特征。最后將這16個邊界框與groundtruth之間的IoU歸一化到[?1,1], 作為IoU的真實標簽yiou,采用MSEloss作為目標尺度估計模塊的損失函數,則該模塊的損失可表示為

式中:n表示訓練樣本總數。采用多任務學習的方式對網絡進行訓練,因此網絡的總損失可表為
師生活動 學生獨立活動,然后全班交流.感知以下情況:教師在此基礎上進行引導:與與與分別互為倒數關系,我們只研究其中一種情況.也就是說,在初中階段,我們只研究本節課先研究對邊與鄰邊比商情況.
L=Liou+λ·Ls
式中 λ=2。
在ILSVRC2015、Lasot[17]、Coco、GOT-10k[18]數據集中每次以相同的概率隨機選取一個數據集,并在數據集中隨機選取一個視頻幀中相隔一定距離的圖像對(Coco數據集選取一對相同的圖片作為數據擴充),采用平移、縮放、翻轉、模糊等數據增強手段對圖像對進行處理,最后將圖像對輸入到網絡進行訓練。利用隨機梯度下降法來訓練網絡參數,共訓練20代,前5代學習率從10?3線性地增加到 5×10?3,后15代學習率衰減到5×10?4,特征提取網絡MobileNetV2使用預訓練模型,前10代不進行訓練。
當目標發生完全遮擋時,由于無法檢測到目標,導致目標丟失。當目標再次出現在視野中時,算法已經無法跟蹤到目標。如果此時能知道目標可能存在的區域,并對這些區域進行檢測,則能再次恢復對目標的跟蹤。因此,可利用人眼視覺注意力機制,對圖像的顯著性區域進行檢測,以恢復跟蹤。
本文所設計的顯著性檢測算法包含3部分,分別是特征提取網絡、編碼網絡、解碼網絡。首先將圖像輸入到特征提取網絡得到圖像各層次的通用特征,再利用編碼網絡得到圖像的顯著性特征,最后通過解碼網絡得到顯著性圖的預測,網絡的整體結構如圖2所示。
2.1.1 特征提取網絡
基于深度學習的顯著性檢測算法[19-22]多采用VGG16[23]作為特征提取網絡,并已取得不錯的效果,但是卻難以在無人機機載處理器上實時運行。因此本文同樣采用MobileNetV2作為顯著性檢測算法的特征提取網絡,同時為了將其預訓練模型遷移到顯著性檢測任務中,需要對其結構進行一些調整。MobileNetV2原本是適用于圖像分類的網絡,因此下采樣率很高,且最后通過全連接層進行分類。為了應用于顯著性檢測,首先去掉了MobileNetV2網絡最后的全連接層以及多余的卷積池化層。由于顯著圖是一種像素級的預測,太大的網絡下采樣率會損壞預測的精度。因此,將MobileNetV2的bottleneck4和bottleneck6的步長設為1,這樣使網絡的總下采樣率為8,保障了輸出顯著性圖的分辨率。同時,在減少下采樣率后,為了保持調整后的網絡和預訓練模型中的網絡具有相似的感受野,在最后4個bottleneck結構中加入空洞卷積。
2.1.2 編、解碼網絡
在語義分割任務中,同時利用網絡不同層之間的特征,有利于分割的空間細節恢復[24]。而顯著性檢測同樣是一種像素級的預測,雖然不需要準確地找出目標及其邊界的像素,多層特征同樣有利于顯著性圖的預測[22]。因此,對于編碼網絡,本文同時利用MobileNetV2的bottleneck3、bottleneck5、bottleneck7模塊的輸出,將這3層的輸出表示為f1、f2、f3。同時,對f3進行全局池化,得到全局引導特征g,將其通過3個不同的 1 ×1 卷積,得到3個分別對應于f1、f2、f3的全局引導特征g1、g2、g3,并通過一個sigmoid函數將它們的特征值映射到 [0,1]。利用通道注意力機制,將g1、g2、g3與f1、f2、f3逐位相乘,對其進行特征選擇,得到最后的特征輸出。最后,直接將它們拼接在一起得到顯著性特征輸出。通過這種方式,網絡提前獲取了更高層的語義先驗知識,使網絡的注意力能集中在更重要的部分。對于解碼網絡,出于對算法實時性的考慮,采用兩層卷積網絡對顯著性特征進行解碼。首先通過一個3×3卷積,將顯著性特征輸出降維到256,再利用1個1×1卷積,得到顯著性圖的預測,最后通過雙線性插值將其恢復到輸入圖像的尺度。
2.1.3 網絡訓練
在SALICON數據集[25]上對網絡進行訓練,該數據集包含了10 000張訓練圖片,5 000張驗證圖片,5 000張測試圖片,筆者利用CoCo數據集中的圖片,通過鼠標運動代替眼動追蹤系統,對數據集進行標注,經驗證這2種方式標注產生的顯著性圖具有高度的相似性。
通過將網絡輸出的顯著性圖歸一化到 [ 0,1] ,并使顯著性圖的像素和為1,可以將顯著性圖的預測視為概率分布的預測[26]。為了使網絡的訓練更加魯棒,本文同時采用KL-Div(kullback-leiblerdivergence)和CC(linear correlation coefficient)作為損失函數進行訓練,其中KL-Div用于衡量預測顯著圖的分布與標簽顯著圖分布之間的差異,CC用于衡量預測顯著圖的分布與標簽顯著圖分布之間相關性,則網絡的總損失可表示為

式中:yt表示標簽;yp表示預測顯著性圖;ε 表示正則系數;i表示顯著性圖yt、yp的像素坐標索引;σ表示協方差。
利用Adam[27]優化算法,對網絡參數進行優化,共訓練10代,每次同時訓練10張圖片,學習率為 1 0?6。
為實現對目標的再檢測,將所設計的顯著性檢測算法嵌入到目標跟蹤算法框架中。其具體的框架流程如圖3所示。在跟蹤過程中如果目標得分連續T幀小于設定的閾值 τl,則認為目標已跟丟。這時應停止對目標的跟蹤,通過顯著性檢測算法提取當前幀的顯著性圖,并濾除掉響應較小干擾區域,得到當前響應最大的幾個顯著性區域。再單獨利用目標跟蹤算法中的得分估計模塊得到當前顯著性區域的目標最大得分響應值,如果有連續T幀目標的得分大于設定的閾值 τr則認為已經找到目標,進而恢復跟蹤。

圖3 算法整體框架流程Fig.3 Overall framework structure of the algorithm
為了對無人機目標跟蹤算法進行實驗測試,首先在UAV123數據集上對目標跟蹤算法性能進行驗證,實驗采用的平臺為:Intel(R) CoreTM i9-9900k, Nvidia RTX2080ti。最后,在六旋翼飛行器平臺上對跟蹤算法進行了測試驗證,該飛行器搭載Jetson Xavier NX作為機載處理器,采用Realsense D435相機實時獲取圖像信息。
為對本文目標跟蹤算法進行測試,選取UAV123[28]數據集作為測試序列,該數據集包含了123個無人機拍攝的視頻序列,涵蓋了目標遮擋、尺度變化、視角變化、背景復雜、相似目標、光照變化、相機運動等12種復雜情況。無人機在飛行過程中視角變化、運動幅度大,因此該數據集具有較高挑戰難度。將本文算法與ECO[6]、
SiamFC[8]、SiamRPN[10]、SAMF[29]、SRDCF[30]、STRUCK[31]這6種跟蹤算法進行實驗效果對比,采用覆蓋率與中心位置誤差2種評價指標進行定量分析。覆蓋率表示預測目標框與真實目標框的重疊率,中心位置誤差表示預測目標框中心與真實目標框中心的歐氏距離。最后利用成功率圖與準確率圖對測試結果進行表示,其中,成功率圖表示在不同覆蓋率閾值下,滿足覆蓋率閾值要求的視頻圖像幀與總視頻圖像幀的比率。準確率表示在不同中心位置誤差閾值下,滿足中心位置誤差閾值要求的視頻圖像幀與總視頻圖像幀的比率。
將本文算法與這6種算法在UAV123數據集上的12種不同情況進行對比。本文算法的綜合平均成功率達到了0.602,平均準確率達到了0.810,幾乎在各種情況下的性能都優于其他算法,并且本文算法在完全遮擋、超出視野、背景復雜、快速運動、視覺變化、尺度變化等情況下的性能相較其他算法都有明顯的優勢。UAV123數據集12種情況下的部分成功率與準確率結果如圖4所示,其中Ours_s表示結合再檢測模塊的跟蹤算法。

圖4 UAV123數據集測試結果Fig.4 Tracking results of UAV123 dataset
為了進一步驗證再檢測模塊對跟蹤算法性能的提升,對未加入再檢測模塊的跟蹤算法進行測試,并與加入再檢測模塊后的算法對比,其測試的結果如表1、2所示。其中,Ours表示僅利用本文圖1中所提的跟蹤算法,Ours_s表示進一步結合再檢測模塊的跟蹤算法。

表1 再檢測模塊成功率性能對比Table 1 Performance comparison of the success rate of re-detection module

表2 再檢測模塊準確率性能對比Table 2 Performance comparison of the accuracy of re-detection module
在加入再檢測模塊后,跟蹤算法在完全遮擋情況下的性能具有明顯提升,對超出視野的情況,由于數據集大部分目標超出視野再回到視野中時,目標位置變化不大,所以不需要再檢測模塊也能恢復對目標的跟蹤,這也說明了本文算法在沒有加入再檢測模塊時,相較于其他算法,在超出視野的情況下也具有明顯的優勢,這得益于基于偏移量學習的目標得分估計模塊,在目標回到視野時能準確識別出目標,以及尺度估計模塊,對目標當前位置和尺度進行修正。對于背景復雜情況下性能的提升,是由于再檢測模塊解決了部分因背景復雜而導致目標跟丟失的視頻序列,如group2_1、group2_3、group3_2、group3_4等。這使得當遮擋等問題解決時,在背景復雜情況下的性能也得到了提升。而快速運動、尺度變化、視角變化等情況,再檢測模塊只發揮了較小的作用。
進一步,選取group2_1、group3_2、group3_4等遮擋情況下的視頻序列,將其每幀的中心位置誤差進行分析,結果如圖5所示。本文算法在所有數據集測試時,為了便于分析,在目標跟丟失,仍然用跟蹤算法進行跟蹤,以獲取跟丟失時的目標框位置,進行誤差分析,同時利用再檢測模塊獲取恢復跟蹤后的目標位置。而在實際應用中,當目標跟丟失時應停止運行跟蹤算法,只運行再檢測模塊,直到重定位到目標。


圖5 中心位置誤差曲線Fig.5 Center position error curve
以group3_2為例,目標在200多幀時因遮擋跟丟,這時所有算法的中心位置誤差都發生顯著變化,并逐漸變高。在300多幀時,本文算法因再檢測模塊的作用,重新識別到目標,恢復跟蹤,使中心位置誤差又回到了較低的位置,明顯改善了跟蹤性能。對于person16,由于SiamRPN和ECO算法在目標跟丟時,目標框位置剛好與目標再次出現在視野中的位置相近,使得目標能恢復跟蹤,因此整體中心位置誤差較小。而本文算法則通過再檢測模塊恢復了跟蹤,由于有一段跟丟的圖像序列,因此整體誤差變大。對于uav1_1和uav1_3,由于目標頻繁地離開視野再回到視野,并且背景模糊,所有算法位置誤差都產生了較大波動。相較于其他算法本文算法依然能使中心誤差維持在一個更低的水平。
為了驗證該算法在飛行器目標跟蹤系統中的可行性,本文利用自主搭建的六旋翼飛行器進行實驗。將Realsense D435相機水平安裝在飛行器底部,以實時獲取圖像信息;通過搭載的Nvidia Xavier NX處理器實時地對輸入圖像運行跟蹤算法;通過ROS系統實現地面站與機載處理器以及飛控之間的通信。最后用于飛行器對地面移動機器人進行自主跟蹤,在跟蹤過程中,使飛行器的飛行高度保持在1.9 m,偏航角保持在 0?。飛行器結構如圖6所示。跟蹤結果如圖7所示,當目標發生遮擋時,無人機懸停,停止跟蹤,利用顯著性檢測,對目標進行檢索,使得當目標再次出現在視野中時恢復跟蹤。

圖6 六旋翼飛行器結構Fig.6 Hexarotor structure diagram

圖7 跟蹤結果Fig.7 Tracking results
為了對跟蹤軌跡進行分析,利用定位系統,獲取地面移動機器人坐標。將未發生遮擋時的地面移動機器人與飛行器的X、Y方向坐標以及飛行器當前高度與期望高度進行對比,結果如圖8所示。從跟蹤坐標曲線可以看出:在150~280 s時,目標(地面移動機器人)主要沿X方向運動,由于目標移動速度高于飛行器,這時飛行器X坐標值略微低于目標X坐標值,跟隨在其后,而飛行器Y坐標圍繞目標Y坐標上線波動,保持在目標Y坐標中心附近;在280~400 s,目標主要沿Y方向移動,這時飛行器Y坐標值略微低于目標Y坐標值,跟隨在其后,而飛行器X坐標圍繞目標X坐標上下波動,保持在目標X坐標中心附近。總體來看,飛行器與目標在X、Y方向的坐標誤差始終保持在20 cm以內,飛行器的飛行高度與期望高度保持在10 cm以內,保障了飛行器對目標的穩定跟蹤。

圖8 跟蹤坐標曲線Fig.8 Tracking coordinate curve
本文針對旋翼飛行器目標跟蹤問題提出了一種基于MobileNetV2的孿生網絡目標跟蹤算法,該算法通過目標得分模塊估計出目標初始位置,在獲取初始位置后,利用目標尺度估計模塊對目標位置及尺度進行迭代修正,通過多層特征融合,進一步提升算法性能。針對目標完全遮擋問題,本文提出了一種基于顯著性檢測的目標再檢測算法,利用對顯著性區域的再檢測,恢復對目標的跟蹤,并通過仿真實驗證明了跟蹤算法性能及再檢測模塊的作用,最后,通過實現飛行器對目標的跟蹤,證明了該算法的可行性。