牟清萍,張 瑩,2,張東波,2,王新杰,楊知橋
1.湘潭大學(xué) 自動化與電子信息學(xué)院,湖南 湘潭411105
2.機器人視覺感知與控制技術(shù)國家工程實驗室,長沙410082
視覺跟蹤以連續(xù)視頻幀為對象,提取目標(biāo)特征后,根據(jù)視頻幀序列的上下文信息,利用特征構(gòu)建目標(biāo)外觀模型,判斷候選樣本是否為跟蹤目標(biāo)。跟蹤算法按照特征提取方式的不同,通常分為基于傳統(tǒng)模型和基于深度學(xué)習(xí)模型,傳統(tǒng)模型通常利用灰度特征、顏色特征、梯度特征以及紋理特征等[1-4]人工特征,單個特征表達(dá)單一,跟蹤精度不高,融合多個特征之后雖然能夠一定程度上提高算法的跟蹤精度,但算法對復(fù)雜環(huán)境下目標(biāo)出鏡頭、嚴(yán)重遮擋等情況跟蹤效果不佳。
深度學(xué)習(xí)模型得到的卷積特征具有高層特征更抽象、底層特征更細(xì)粒的特點,對目標(biāo)特征的表達(dá)更為豐富[5-6]。近幾年基于深度學(xué)習(xí)模型的目標(biāo)跟蹤算法在OTB[8](Object Tracking Benchmark)、VOT[9](The Visual Object Tracking vot2017 challenge results)等數(shù)據(jù)集中跟蹤精度領(lǐng)先傳統(tǒng)模型,深度學(xué)習(xí)跟蹤算法[10](Learning a deep compact image representation for visual tracking,DLT)利用深度堆棧網(wǎng)絡(luò)獲取目標(biāo)特征,每間隔一定幀數(shù)或者置信度小于一定閾值時更新外觀模型,但由于訓(xùn)練不充分算法跟蹤精度較低;分層卷積特征的視覺跟蹤算法[11](Hierarchical convolutional features for visual tracking,CF2)利用卷積網(wǎng)絡(luò)得到三個對應(yīng)的置信度圖進(jìn)行加權(quán)融合定位目標(biāo),但該算法對尺度變化嚴(yán)重的物體跟蹤效果不好;全卷積孿生網(wǎng)絡(luò)算法[11](Fully-convolutional siamese networks for object tracking,SiamFC)由于不在線更新外觀模型,當(dāng)目標(biāo)出現(xiàn)嚴(yán)重變形和遮擋時就會跟蹤失??;相比于其他深度學(xué)習(xí)算法,實時多域卷積神經(jīng)網(wǎng)絡(luò)算法[13](Real-Time MDNet,RT-MDNet)利用歷史幀更新模型,精度高速度快,不需要進(jìn)行參數(shù)微調(diào)也能達(dá)到好的跟蹤效果。
在復(fù)雜場景中,基于深度學(xué)習(xí)模型的跟蹤算法比基于傳統(tǒng)模型的算法跟蹤精度更高。但當(dāng)跟蹤對象快速運動、與鏡頭距離發(fā)生變化,會造成跟蹤對象在視頻中的尺寸改變,或者當(dāng)跟蹤對象被嚴(yán)重遮擋、離開相機視野范圍時,基于深度學(xué)習(xí)模型的算法也會失去正確的目標(biāo)性判斷,并且由于為了適應(yīng)目標(biāo)不斷變化的模型更新策略的存在使得算法錯誤更新到背景中,造成跟蹤系統(tǒng)跟蹤失敗。
目標(biāo)丟失后需要再次搜索并定位。YOLO[14](You Only Look Once)算法將目標(biāo)分類與定位坐標(biāo)作為一個回歸問題處理,輸入圖片被分成互不重合的小單元后卷積產(chǎn)生特征圖,預(yù)測每個小單元中出現(xiàn)目標(biāo)的概率以及邊界框的置信度,全局搜尋目標(biāo),但對異常比例目標(biāo)無法定位、定位準(zhǔn)確度低。YOLOv3[15]算法設(shè)計了全卷積網(wǎng)絡(luò)結(jié)構(gòu)和九種尺度先驗邊界框,提高了檢測的實時性、準(zhǔn)確性。Attention-YOLO算法[16]對網(wǎng)絡(luò)中所有的殘差連接進(jìn)行替換,使得殘差融合時保留的信息更加有利于訓(xùn)練損失的降低,有利于定位及分類的準(zhǔn)確。集成旋轉(zhuǎn)卷積的YOLOv3 算法[17]引入角度預(yù)測來實現(xiàn)單階段的對傾斜邊界框的目標(biāo)檢測,將角度懲罰引入模型的多任務(wù)損失函數(shù)中,使得模型能夠?qū)W習(xí)目標(biāo)的角度偏移。
為了糾正模型的錯誤更新,受文獻(xiàn)[18]最大化圖像和輸入邊界框候選區(qū)域之間的重疊度(Intersection over Union,IoU)定位目標(biāo)更精確的啟發(fā),將RT-MDNet跟蹤算法、YOLOv3 檢測算法相結(jié)合,提出基于目標(biāo)丟失判別機制的視覺跟蹤算法YOLO-RTM,根據(jù)IoU設(shè)計目標(biāo)丟失判別機制,當(dāng)判別跟蹤目標(biāo)丟失時采用YOLOv3進(jìn)行目標(biāo)重檢測,把捕獲得到的目標(biāo)位置作為當(dāng)前幀位置,并以此更新RT-MDNet 模型參數(shù),實現(xiàn)目標(biāo)丟失后重檢測并繼續(xù)跟隨的目的。該方法可以克服目標(biāo)被嚴(yán)重遮擋、目標(biāo)出鏡頭等目標(biāo)丟失后重定位的難題,提高了跟蹤算法的穩(wěn)定性,并且根據(jù)YOLO-RTM 算法定位的目標(biāo)位置完成移動機器人準(zhǔn)確跟蹤目標(biāo)的任務(wù)。
RT-MDNet 將一個視頻看做一個域,多個視頻就組成多個域,其定義外觀模型f d如式(1)所示:
其中輸入為第d域的圖片xd和邊界框R,K是訓(xùn)練數(shù)據(jù)集總數(shù),φd函數(shù)計算第d域最后一層全連接層的前景和背景的二分類得分,得分最高的前景即為當(dāng)前幀目標(biāo)邊界框的預(yù)測值。RT-MDNet 利用OTB 或VOT 視頻數(shù)據(jù)集離線訓(xùn)練網(wǎng)絡(luò),為適應(yīng)目標(biāo)外觀模型的變化,利用長短時更新策略在線微調(diào)外觀模型,長時更新保留了特征的魯棒性,短時更新使模型保持一定的適應(yīng)性。長時更新采用固定步長10 幀更新一次訓(xùn)練樣本,此時正樣本為最近100幀跟蹤成功正樣本,負(fù)樣本為最近20幀跟蹤成功負(fù)樣本,利用新樣本庫更新模型的最后一層全連接層;當(dāng)目標(biāo)得分小于0 時采用短時更新,正負(fù)樣本均為最近20 幀跟蹤成功樣本;當(dāng)目標(biāo)被嚴(yán)重遮擋或離開相機視野范圍時,目標(biāo)得分往往小于0,短時更新策略使得模型更容易更新到遮擋物或者背景中去,造成算法失去對目標(biāo)的準(zhǔn)確定位,且隨著時間的推移,誤差累計導(dǎo)致模型無法再次找回目標(biāo)。
圖1 IoU示意圖
col_I和row_I計算如式(3)所示,目標(biāo)丟失判別機制如式(4)所示:
為期望目標(biāo)邊界框,當(dāng)IoU大于閾值,則采用長短時更新方法更新目標(biāo)外觀模型,若IoU 低于閾值則說明目標(biāo)丟失,采用檢測算法檢測得到的更新目標(biāo)外觀模型。
檢測跟蹤算法整體流程如圖2 所示。YOLO-RTM首先采用YOLOv3[14]檢測第一幀圖像并初始化RTMDNet 算法,然后采用目標(biāo)丟失判別機制計算IoU,IoU大于閾值T則表明RT-MDNet 算法跟蹤結(jié)果可信度高,選擇作為模型f d的更新輸入。當(dāng)IoU小于閾值T時,當(dāng)前幀被判別機制判定為目標(biāo)跟蹤失敗,為了再次找回目標(biāo),將檢測器結(jié)果作為下一幀跟蹤器模型f d輸入。
選取10 個被遮擋、出鏡頭的視頻進(jìn)行實驗,不同IoU 閾值(0.3、0.4、0.5)的中心誤差圖和成功率圖如圖3所示,圖3(a)顯示IoU=0.4 時,中心誤差最小,即跟蹤精度最高;圖3(b)橫坐標(biāo)顯示算法的預(yù)測邊界框與人工標(biāo)注的真實邊界框的重疊度,可見IoU=0.4 之后,跟蹤成功率急速衰減,當(dāng)IoU=0.9 時成功率幾乎為0。
圖2 YOLO-RTM跟蹤算法整體流程
圖3 YOLO-RTM算法設(shè)置不同閾值比較結(jié)果
圖4 顯示了RT-MDNet 與手工標(biāo)注Groundtruth、YOLOv3 與Groundtruth、RT-MDNet 與YOLOv3 的三組IoU對比結(jié)果,可以看出YOLOv3與Groundtruth的邊界框重合度較高,尤其是人在離開鏡頭之后,再重新回到鏡頭YOLOv3可以準(zhǔn)確找回目標(biāo),但RT-MDNet跟蹤失敗。YOLO-RTM 算法跟蹤目標(biāo)時,YOLOv3 每間隔10幀后檢測一次目標(biāo),以YOLOv3 與RT-MDNet 算法IoU比較結(jié)果判別目標(biāo)是否丟失,并決定算法采用長短時或是重檢測目標(biāo)更新策略。
圖4 不同跟蹤算法的IoU參數(shù)對比
Turtlebot2移動機器人視覺跟蹤系統(tǒng)分為視覺檢測跟蹤模塊和機器人控制模塊。移動機器人在TX2開發(fā)板Ubuntu16.04 系統(tǒng)下安裝ROS 機器人操作系統(tǒng),計算機(CPU i7 6700HQ,內(nèi)存16 GB,顯卡GTX1060 6 GHz)利用深度學(xué)習(xí)框架Pytorch檢測跟蹤目標(biāo),當(dāng)Kinect-2.0攝像機到地面垂直距離80 cm(如圖5 所示)時,跟蹤目標(biāo)恰好位于機器人視野中心。TX2 通過無線局域網(wǎng)與計算機之間實現(xiàn)通信,Kinect-2.0與TX2有線連接。圖6是基于ROS(Robot Operating System)機器人視覺控制系統(tǒng)的整體流程圖。
圖5 視覺跟蹤系統(tǒng)組成
圖6 ROS機器人視覺跟蹤系統(tǒng)流程圖
機器人運動過程中,期望目標(biāo)一直位于視野中央(如圖7 所示),假設(shè)目標(biāo)初始位置在數(shù)字1,其坐標(biāo)為A(xc1,yc1),參考中心坐標(biāo)為B(xce,yce),第t幀中心坐標(biāo)為C(xct,yct)。跟蹤時機器人最大角速度和最大線速度分別為0.65 m/s和3.14 rad/s,則機器人底盤控制線速度v(t)和角速度ω(t)策略如式(5)所示[4],通過實驗整定K1和K2值為:1/435和1/275。
圖7 機器人視野與目標(biāo)在圖像中的位置關(guān)系
當(dāng)目標(biāo)接近圖像邊緣時,目標(biāo)邊界框會逐漸變小。圖7 中數(shù)字2~7 表示在機器人視野中,目標(biāo)前后左右能夠到達(dá)的最遠(yuǎn)位置。若目標(biāo)面積有一半及以上不在圖像之內(nèi)則認(rèn)為目標(biāo)丟失,即Area<Areaτ時目標(biāo)丟失[19],Areaτ為目標(biāo)中心接近邊緣位置的面積閾值,則虛線框以外判定為目標(biāo)丟失,判定規(guī)則如式(6)所示,其中(x,y)為輸入圖像分辨率。
目標(biāo)丟失時機器人保持丟失目標(biāo)前的角速度和線速度如式(7)所示,當(dāng)YOLOv3 算法再次檢測到目標(biāo)時,控制策略切換為式(5)。
RT-MDNet、YOLOv3、YOLO-RTM三種算法的模型參數(shù)、預(yù)測單幀時間比較如表1所示。由于YOLO-RTM算法利用檢測算法重檢測并找回目標(biāo),整個模型速度上略微減慢,模型參數(shù)也存在微小程度的增加,但算法跟蹤魯棒性能得到極大提高,尤其在目標(biāo)出鏡頭、嚴(yán)重遮擋時可利用YOLOv3重檢測后找回目標(biāo),對于目標(biāo)跟蹤的實際應(yīng)用十分重要。
表1 三種算法模型參數(shù)、預(yù)測時間對比
本文采用OTB100 數(shù)據(jù)集和Kinect-2.0 錄制的目標(biāo)出鏡頭后再回鏡頭20 個視頻(采用vatic 標(biāo)注工具箱標(biāo)注)作為訓(xùn)練集,另外錄制10個視頻作為測試集。跟蹤算法測試結(jié)果的定量分析如圖8所示,YOLO-RTM算法精度0.737、成功率0.631,相比其他算法較高。因此,實際應(yīng)用中,利用檢測算法對模型在線更新的策略,有效提高了跟蹤算法的可靠性。
圖8 YOLO-RTM算法與其他算法精度圖與成功圖
為了防止機器人跟蹤丟失目標(biāo)的情況發(fā)生,應(yīng)在目標(biāo)離開視野范圍之前,及時讓機器人做出改變。經(jīng)過多次實驗得知,每隔24幀給機器人一個控制指令,機器人可以精確跟蹤目標(biāo)軌跡。Walker1、Walker2、Warlk3 視頻內(nèi)容如表2所示,表3對應(yīng)跟蹤算法的目標(biāo)丟失情況。
表2 機器人跟蹤并錄制視頻情況一覽表
表3 視覺跟蹤算法目標(biāo)丟失情況表
圖9 Walker1視頻不同算法跟蹤結(jié)果對比
圖10 Walker1視頻中心點x、y 坐標(biāo)運動軌跡
3.2.1 Walker1實驗結(jié)果及分析
Walker1視頻無出鏡頭,跟蹤算法的結(jié)果如圖9所示,可見YOLO-RTM、RT-MDNet[13]、MDNet[20]、KCF[21]、fDSST[22]都能準(zhǔn)確跟蹤目標(biāo),無丟失目標(biāo)情況。圖10顯示RT-MDNet和YOLO-RTM 跟蹤目標(biāo)框的圖像中心點x、y坐標(biāo)的軌跡,兩種算法結(jié)果與Groundtruth接近。圖11是YOLOv3和RT-MDNet算法結(jié)果與Groundtruth的重疊度散點圖,可知兩個算法的重疊度均高于目標(biāo)丟失判別機制閾值,因此YOLO-RTM 算法跟蹤結(jié)果與RT-MDNet 算法的跟蹤結(jié)果相同。機器人底盤跟蹤的線速度v、角速度ω變化如圖12所示,跟蹤過程中機器人線速度基本不變,保持在0.5 m/s,當(dāng)行人在210 幀開始右轉(zhuǎn),機器人角速度由0 rad/s 變?yōu)樨?fù)值,表明機器人同步右轉(zhuǎn),機器人運動軌跡和行人的運動軌跡保持一致,滿足跟蹤要求。
3.2.2 Walker2實驗結(jié)果及分析
Walker2視頻不同算法跟蹤結(jié)果如圖13所示,除了YOLO-RTM 算法外,RT-MDNet[13]、MDNet[20]、KCF[21]、fDSST[22]在208~1 185幀都有目標(biāo)丟失,不能實現(xiàn)準(zhǔn)確跟蹤。圖14所示,YOLO-RTM算法中心點變化和Groundtruth十分接近。圖15 所示RT-MDNet 重疊度低于閾值0.4,RT-MDNet 在208 幀后逐漸丟失目標(biāo),甚至在200~400幀時重疊度為0,目標(biāo)完全丟失,此時YOLO-RTM 采用YOLOv3算法更新外觀模型,實現(xiàn)準(zhǔn)確跟蹤。圖16中機器人線速度保持0.5 m/s,行人210幀開始左轉(zhuǎn)、420幀開始右轉(zhuǎn),機器人角速度同樣在210幀、420幀發(fā)生顯著變化,和視頻中行人的運動情況一致,滿足跟蹤要求。
圖11 YOLOv3和RT-MDNet的重疊度比較
圖12 機器人底盤控制結(jié)果
圖13 Walker2視頻不同算法跟蹤結(jié)果對比
圖14 Walker2視頻中心點x、y 坐標(biāo)運動軌跡
3.2.3 Walker3實驗結(jié)果及分析
Walker3 視頻176~240 幀出鏡頭,不同算法跟蹤結(jié)果對比如圖17 所示,RT-MDNet[13]、fDSST[22]和KCF[21]丟失目標(biāo)后無法找回,MDNet[20]和YOLO-RTM 算法可以較為準(zhǔn)確地跟蹤,但MDNet 的跟蹤速度較慢。圖18 所示,YOLO-RTM 算法比RT-MDNet 中心誤差小,與Groundtruth 幾乎重合。YOLOv3 和RT-MDNet 重疊度比較如圖19 所示,RT-MDNet 在200~680 幀時重疊度低于閾值0.4,此時YOLO-RTM采用YOLOv3更新外觀模型,實現(xiàn)準(zhǔn)確跟蹤。如圖20 所示,機器人線速度保持0.5 m/s不變,角速度變化形狀是“S”型,和Walker3視頻中行人的運動情況一致,滿足跟蹤要求。
圖15 YOLOv3和RT-MDNet的重疊度比較
圖16 機器人底盤控制結(jié)果
圖17 Walker3視頻不同算法跟蹤結(jié)果對比
圖18 Walker3視頻中心點x、y 坐標(biāo)運動軌跡
圖19 YOLOv3和RT-MDNet與真實值IoU比較
圖20 機器人底盤控制結(jié)果
基于目標(biāo)丟失判別機制的YOLO-RTM視覺跟蹤算法,將YOLOv3 檢測算法和RT-MDNet 跟蹤算法結(jié)合,設(shè)定跟蹤邊界框的重疊度閾值、面積閾值作為目標(biāo)丟失判別機制,利用YOLOv3 找回丟失的跟蹤目標(biāo),解決了跟蹤過程中目標(biāo)丟失后找回問題,同時機器人根據(jù)目標(biāo)中心點在圖像中的不同位置,采取不同的控制策略,目標(biāo)被完全遮擋、出鏡頭等情況下機器人可準(zhǔn)確跟蹤目標(biāo)路徑,使移動機器人穩(wěn)定、準(zhǔn)確跟蹤目標(biāo)的應(yīng)用價值得到較大的提高。在跟蹤場景更復(fù)雜情況下,跟蹤精度、跟蹤速度依然存在改進(jìn)空間,下一步將在此方面繼續(xù)深入研究。