牟清萍,張 瑩,2,張東波,2,王新杰,楊知橋
1.湘潭大學 自動化與電子信息學院,湖南 湘潭411105
2.機器人視覺感知與控制技術國家工程實驗室,長沙410082
視覺跟蹤以連續視頻幀為對象,提取目標特征后,根據視頻幀序列的上下文信息,利用特征構建目標外觀模型,判斷候選樣本是否為跟蹤目標。跟蹤算法按照特征提取方式的不同,通常分為基于傳統模型和基于深度學習模型,傳統模型通常利用灰度特征、顏色特征、梯度特征以及紋理特征等[1-4]人工特征,單個特征表達單一,跟蹤精度不高,融合多個特征之后雖然能夠一定程度上提高算法的跟蹤精度,但算法對復雜環境下目標出鏡頭、嚴重遮擋等情況跟蹤效果不佳。
深度學習模型得到的卷積特征具有高層特征更抽象、底層特征更細粒的特點,對目標特征的表達更為豐富[5-6]。近幾年基于深度學習模型的目標跟蹤算法在OTB[8](Object Tracking Benchmark)、VOT[9](The Visual Object Tracking vot2017 challenge results)等數據集中跟蹤精度領先傳統模型,深度學習跟蹤算法[10](Learning a deep compact image representation for visual tracking,DLT)利用深度堆棧網絡獲取目標特征,每間隔一定幀數或者置信度小于一定閾值時更新外觀模型,但由于訓練不充分算法跟蹤精度較低;分層卷積特征的視覺跟蹤算法[11](Hierarchical convolutional features for visual tracking,CF2)利用卷積網絡得到三個對應的置信度圖進行加權融合定位目標,但該算法對尺度變化嚴重的物體跟蹤效果不好;全卷積孿生網絡算法[11](Fully-convolutional siamese networks for object tracking,SiamFC)由于不在線更新外觀模型,當目標出現嚴重變形和遮擋時就會跟蹤失敗;相比于其他深度學習算法,實時多域卷積神經網絡算法[13](Real-Time MDNet,RT-MDNet)利用歷史幀更新模型,精度高速度快,不需要進行參數微調也能達到好的跟蹤效果。
在復雜場景中,基于深度學習模型的跟蹤算法比基于傳統模型的算法跟蹤精度更高。但當跟蹤對象快速運動、與鏡頭距離發生變化,會造成跟蹤對象在視頻中的尺寸改變,或者當跟蹤對象被嚴重遮擋、離開相機視野范圍時,基于深度學習模型的算法也會失去正確的目標性判斷,并且由于為了適應目標不斷變化的模型更新策略的存在使得算法錯誤更新到背景中,造成跟蹤系統跟蹤失敗。
目標丟失后需要再次搜索并定位。YOLO[14](You Only Look Once)算法將目標分類與定位坐標作為一個回歸問題處理,輸入圖片被分成互不重合的小單元后卷積產生特征圖,預測每個小單元中出現目標的概率以及邊界框的置信度,全局搜尋目標,但對異常比例目標無法定位、定位準確度低。YOLOv3[15]算法設計了全卷積網絡結構和九種尺度先驗邊界框,提高了檢測的實時性、準確性。Attention-YOLO算法[16]對網絡中所有的殘差連接進行替換,使得殘差融合時保留的信息更加有利于訓練損失的降低,有利于定位及分類的準確。集成旋轉卷積的YOLOv3 算法[17]引入角度預測來實現單階段的對傾斜邊界框的目標檢測,將角度懲罰引入模型的多任務損失函數中,使得模型能夠學習目標的角度偏移。
為了糾正模型的錯誤更新,受文獻[18]最大化圖像和輸入邊界框候選區域之間的重疊度(Intersection over Union,IoU)定位目標更精確的啟發,將RT-MDNet跟蹤算法、YOLOv3 檢測算法相結合,提出基于目標丟失判別機制的視覺跟蹤算法YOLO-RTM,根據IoU設計目標丟失判別機制,當判別跟蹤目標丟失時采用YOLOv3進行目標重檢測,把捕獲得到的目標位置作為當前幀位置,并以此更新RT-MDNet 模型參數,實現目標丟失后重檢測并繼續跟隨的目的。該方法可以克服目標被嚴重遮擋、目標出鏡頭等目標丟失后重定位的難題,提高了跟蹤算法的穩定性,并且根據YOLO-RTM 算法定位的目標位置完成移動機器人準確跟蹤目標的任務。
RT-MDNet 將一個視頻看做一個域,多個視頻就組成多個域,其定義外觀模型f d如式(1)所示:

其中輸入為第d域的圖片xd和邊界框R,K是訓練數據集總數,φd函數計算第d域最后一層全連接層的前景和背景的二分類得分,得分最高的前景即為當前幀目標邊界框的預測值。RT-MDNet 利用OTB 或VOT 視頻數據集離線訓練網絡,為適應目標外觀模型的變化,利用長短時更新策略在線微調外觀模型,長時更新保留了特征的魯棒性,短時更新使模型保持一定的適應性。長時更新采用固定步長10 幀更新一次訓練樣本,此時正樣本為最近100幀跟蹤成功正樣本,負樣本為最近20幀跟蹤成功負樣本,利用新樣本庫更新模型的最后一層全連接層;當目標得分小于0 時采用短時更新,正負樣本均為最近20 幀跟蹤成功樣本;當目標被嚴重遮擋或離開相機視野范圍時,目標得分往往小于0,短時更新策略使得模型更容易更新到遮擋物或者背景中去,造成算法失去對目標的準確定位,且隨著時間的推移,誤差累計導致模型無法再次找回目標。


圖1 IoU示意圖
col_I和row_I計算如式(3)所示,目標丟失判別機制如式(4)所示:

為期望目標邊界框,當IoU大于閾值,則采用長短時更新方法更新目標外觀模型,若IoU 低于閾值則說明目標丟失,采用檢測算法檢測得到的更新目標外觀模型。
檢測跟蹤算法整體流程如圖2 所示。YOLO-RTM首先采用YOLOv3[14]檢測第一幀圖像并初始化RTMDNet 算法,然后采用目標丟失判別機制計算IoU,IoU大于閾值T則表明RT-MDNet 算法跟蹤結果可信度高,選擇作為模型f d的更新輸入。當IoU小于閾值T時,當前幀被判別機制判定為目標跟蹤失敗,為了再次找回目標,將檢測器結果作為下一幀跟蹤器模型f d輸入。
選取10 個被遮擋、出鏡頭的視頻進行實驗,不同IoU 閾值(0.3、0.4、0.5)的中心誤差圖和成功率圖如圖3所示,圖3(a)顯示IoU=0.4 時,中心誤差最小,即跟蹤精度最高;圖3(b)橫坐標顯示算法的預測邊界框與人工標注的真實邊界框的重疊度,可見IoU=0.4 之后,跟蹤成功率急速衰減,當IoU=0.9 時成功率幾乎為0。

圖2 YOLO-RTM跟蹤算法整體流程

圖3 YOLO-RTM算法設置不同閾值比較結果
圖4 顯示了RT-MDNet 與手工標注Groundtruth、YOLOv3 與Groundtruth、RT-MDNet 與YOLOv3 的三組IoU對比結果,可以看出YOLOv3與Groundtruth的邊界框重合度較高,尤其是人在離開鏡頭之后,再重新回到鏡頭YOLOv3可以準確找回目標,但RT-MDNet跟蹤失敗。YOLO-RTM 算法跟蹤目標時,YOLOv3 每間隔10幀后檢測一次目標,以YOLOv3 與RT-MDNet 算法IoU比較結果判別目標是否丟失,并決定算法采用長短時或是重檢測目標更新策略。

圖4 不同跟蹤算法的IoU參數對比
Turtlebot2移動機器人視覺跟蹤系統分為視覺檢測跟蹤模塊和機器人控制模塊。移動機器人在TX2開發板Ubuntu16.04 系統下安裝ROS 機器人操作系統,計算機(CPU i7 6700HQ,內存16 GB,顯卡GTX1060 6 GHz)利用深度學習框架Pytorch檢測跟蹤目標,當Kinect-2.0攝像機到地面垂直距離80 cm(如圖5 所示)時,跟蹤目標恰好位于機器人視野中心。TX2 通過無線局域網與計算機之間實現通信,Kinect-2.0與TX2有線連接。圖6是基于ROS(Robot Operating System)機器人視覺控制系統的整體流程圖。

圖5 視覺跟蹤系統組成

圖6 ROS機器人視覺跟蹤系統流程圖
機器人運動過程中,期望目標一直位于視野中央(如圖7 所示),假設目標初始位置在數字1,其坐標為A(xc1,yc1),參考中心坐標為B(xce,yce),第t幀中心坐標為C(xct,yct)。跟蹤時機器人最大角速度和最大線速度分別為0.65 m/s和3.14 rad/s,則機器人底盤控制線速度v(t)和角速度ω(t)策略如式(5)所示[4],通過實驗整定K1和K2值為:1/435和1/275。


圖7 機器人視野與目標在圖像中的位置關系
當目標接近圖像邊緣時,目標邊界框會逐漸變小。圖7 中數字2~7 表示在機器人視野中,目標前后左右能夠到達的最遠位置。若目標面積有一半及以上不在圖像之內則認為目標丟失,即Area<Areaτ時目標丟失[19],Areaτ為目標中心接近邊緣位置的面積閾值,則虛線框以外判定為目標丟失,判定規則如式(6)所示,其中(x,y)為輸入圖像分辨率。

目標丟失時機器人保持丟失目標前的角速度和線速度如式(7)所示,當YOLOv3 算法再次檢測到目標時,控制策略切換為式(5)。

RT-MDNet、YOLOv3、YOLO-RTM三種算法的模型參數、預測單幀時間比較如表1所示。由于YOLO-RTM算法利用檢測算法重檢測并找回目標,整個模型速度上略微減慢,模型參數也存在微小程度的增加,但算法跟蹤魯棒性能得到極大提高,尤其在目標出鏡頭、嚴重遮擋時可利用YOLOv3重檢測后找回目標,對于目標跟蹤的實際應用十分重要。

表1 三種算法模型參數、預測時間對比
本文采用OTB100 數據集和Kinect-2.0 錄制的目標出鏡頭后再回鏡頭20 個視頻(采用vatic 標注工具箱標注)作為訓練集,另外錄制10個視頻作為測試集。跟蹤算法測試結果的定量分析如圖8所示,YOLO-RTM算法精度0.737、成功率0.631,相比其他算法較高。因此,實際應用中,利用檢測算法對模型在線更新的策略,有效提高了跟蹤算法的可靠性。

圖8 YOLO-RTM算法與其他算法精度圖與成功圖
為了防止機器人跟蹤丟失目標的情況發生,應在目標離開視野范圍之前,及時讓機器人做出改變。經過多次實驗得知,每隔24幀給機器人一個控制指令,機器人可以精確跟蹤目標軌跡。Walker1、Walker2、Warlk3 視頻內容如表2所示,表3對應跟蹤算法的目標丟失情況。

表2 機器人跟蹤并錄制視頻情況一覽表

表3 視覺跟蹤算法目標丟失情況表

圖9 Walker1視頻不同算法跟蹤結果對比

圖10 Walker1視頻中心點x、y 坐標運動軌跡
3.2.1 Walker1實驗結果及分析
Walker1視頻無出鏡頭,跟蹤算法的結果如圖9所示,可見YOLO-RTM、RT-MDNet[13]、MDNet[20]、KCF[21]、fDSST[22]都能準確跟蹤目標,無丟失目標情況。圖10顯示RT-MDNet和YOLO-RTM 跟蹤目標框的圖像中心點x、y坐標的軌跡,兩種算法結果與Groundtruth接近。圖11是YOLOv3和RT-MDNet算法結果與Groundtruth的重疊度散點圖,可知兩個算法的重疊度均高于目標丟失判別機制閾值,因此YOLO-RTM 算法跟蹤結果與RT-MDNet 算法的跟蹤結果相同。機器人底盤跟蹤的線速度v、角速度ω變化如圖12所示,跟蹤過程中機器人線速度基本不變,保持在0.5 m/s,當行人在210 幀開始右轉,機器人角速度由0 rad/s 變為負值,表明機器人同步右轉,機器人運動軌跡和行人的運動軌跡保持一致,滿足跟蹤要求。
3.2.2 Walker2實驗結果及分析
Walker2視頻不同算法跟蹤結果如圖13所示,除了YOLO-RTM 算法外,RT-MDNet[13]、MDNet[20]、KCF[21]、fDSST[22]在208~1 185幀都有目標丟失,不能實現準確跟蹤。圖14所示,YOLO-RTM算法中心點變化和Groundtruth十分接近。圖15 所示RT-MDNet 重疊度低于閾值0.4,RT-MDNet 在208 幀后逐漸丟失目標,甚至在200~400幀時重疊度為0,目標完全丟失,此時YOLO-RTM 采用YOLOv3算法更新外觀模型,實現準確跟蹤。圖16中機器人線速度保持0.5 m/s,行人210幀開始左轉、420幀開始右轉,機器人角速度同樣在210幀、420幀發生顯著變化,和視頻中行人的運動情況一致,滿足跟蹤要求。

圖11 YOLOv3和RT-MDNet的重疊度比較

圖12 機器人底盤控制結果

圖13 Walker2視頻不同算法跟蹤結果對比

圖14 Walker2視頻中心點x、y 坐標運動軌跡
3.2.3 Walker3實驗結果及分析
Walker3 視頻176~240 幀出鏡頭,不同算法跟蹤結果對比如圖17 所示,RT-MDNet[13]、fDSST[22]和KCF[21]丟失目標后無法找回,MDNet[20]和YOLO-RTM 算法可以較為準確地跟蹤,但MDNet 的跟蹤速度較慢。圖18 所示,YOLO-RTM 算法比RT-MDNet 中心誤差小,與Groundtruth 幾乎重合。YOLOv3 和RT-MDNet 重疊度比較如圖19 所示,RT-MDNet 在200~680 幀時重疊度低于閾值0.4,此時YOLO-RTM采用YOLOv3更新外觀模型,實現準確跟蹤。如圖20 所示,機器人線速度保持0.5 m/s不變,角速度變化形狀是“S”型,和Walker3視頻中行人的運動情況一致,滿足跟蹤要求。

圖15 YOLOv3和RT-MDNet的重疊度比較

圖16 機器人底盤控制結果

圖17 Walker3視頻不同算法跟蹤結果對比

圖18 Walker3視頻中心點x、y 坐標運動軌跡

圖19 YOLOv3和RT-MDNet與真實值IoU比較

圖20 機器人底盤控制結果
基于目標丟失判別機制的YOLO-RTM視覺跟蹤算法,將YOLOv3 檢測算法和RT-MDNet 跟蹤算法結合,設定跟蹤邊界框的重疊度閾值、面積閾值作為目標丟失判別機制,利用YOLOv3 找回丟失的跟蹤目標,解決了跟蹤過程中目標丟失后找回問題,同時機器人根據目標中心點在圖像中的不同位置,采取不同的控制策略,目標被完全遮擋、出鏡頭等情況下機器人可準確跟蹤目標路徑,使移動機器人穩定、準確跟蹤目標的應用價值得到較大的提高。在跟蹤場景更復雜情況下,跟蹤精度、跟蹤速度依然存在改進空間,下一步將在此方面繼續深入研究。