萬 琴 李 智 李伊康 葛 柱 王耀南 吳 迪
移動機(jī)器人在安防、物流和醫(yī)療等領(lǐng)域應(yīng)用廣泛[1-2],其中機(jī)器人目標(biāo)跟隨算法引起了廣泛關(guān)注,但移動機(jī)器人目標(biāo)跟隨算法的魯棒性和實時性仍是亟待解決的關(guān)鍵問題[3-4].
機(jī)器人目標(biāo)跟隨算法分為生成式模型方法和檢測跟蹤方法兩大類[5-6].生成式模型主要通過構(gòu)建目標(biāo)模型實現(xiàn)跟隨,如Yoshimi 等[7]利用視覺傳感器獲取行人顏色和紋理特征,機(jī)器人在視野范圍內(nèi)尋找與之相匹配的區(qū)域,融合行人與位置速度信息構(gòu)建模型,采用基于生成式的目標(biāo)跟蹤算法跟隨行人.然而,此類算法關(guān)注目標(biāo)本身,忽略背景信息,經(jīng)常出現(xiàn)跟蹤丟失的情況.
為同時考慮目標(biāo)與背景信息,檢測跟蹤方法得到了越來越多的關(guān)注,此方法通過構(gòu)建分類器區(qū)分目標(biāo)及背景,其跟蹤效果普遍優(yōu)于生成式模型方法.余鐸等[3]通過快速判別尺度空間切換相關(guān)濾波算法與卡爾曼濾波算法實現(xiàn)穩(wěn)定跟蹤.另外,移動機(jī)器人在跟隨控制過程中常受到背景雜斑、光照變化、目標(biāo)遮擋、尺度變化等干擾,導(dǎo)致跟隨目標(biāo)丟失.因此傳統(tǒng)的檢測跟蹤方法不適用于移動機(jī)器人在復(fù)雜多變場景中的目標(biāo)跟隨[2].
基于深度學(xué)習(xí)的移動機(jī)器人目標(biāo)跟隨算法具有魯棒性強(qiáng)等優(yōu)勢[8].Zhang 等[9]通過基于目標(biāo)輪廓帶采樣策略來提高移動機(jī)器人跟蹤性能,但未對遮擋、行人消失等情況進(jìn)行處理.Pang 等[10]提出一種基于深度學(xué)習(xí)的目標(biāo)檢測器,引入卡爾曼濾波來預(yù)測目標(biāo)位置,加入重識別模塊處理遮擋問題,但此類算法需先獲取精度較高的目標(biāo)檢測結(jié)果.鑒于上述問題,JDE (Jointly learns the detector and embedding model)檢測模型可用來融合重識別與檢測分支[11],提高目標(biāo)檢測精度.YOLO (You only look once) 系列算法則是一類基于JDE 檢測模型的一階段框下的目標(biāo)檢測算法,具有高效、靈活和泛化性能好的優(yōu)點(diǎn).
YOLO 算法包括了YOLOV1~ YOLOV7 系列算法以及一系列基于改進(jìn)YOLO 的目標(biāo)檢測算法.Redmon 等[12]提出YOLO 算法進(jìn)行目標(biāo)檢測,直接采用回歸的方法進(jìn)行坐標(biāo)框的檢測以及分類,使用一個端到端的簡單網(wǎng)絡(luò)實現(xiàn)坐標(biāo)回歸與分類,能夠極大地提升目標(biāo)的檢測速度.此后,YOLO 的網(wǎng)絡(luò)結(jié)構(gòu)不斷優(yōu)化,已經(jīng)成為目標(biāo)檢測領(lǐng)域主流的算法.Hsu 等[13]引入比率感知機(jī)制,動態(tài)調(diào)整YOLOV3的輸入層長度和寬度超參數(shù),從而解決了長寬比差異較大的問題,能夠有效地提高平均跟蹤精度.Huang 等[14]引入改進(jìn)的YOLOV3 模型,此模型將預(yù)測尺度從3 個增加到4 個,并使用額外的特征圖來提取更多的細(xì)節(jié).YOLOV3 的目標(biāo)位置識別精度較差,在目標(biāo)分布密集、尺寸差異較大的復(fù)雜場景中,檢測效果較差.YOLOV4[15]開發(fā)了Darknet53目標(biāo)檢測模型,此模型具有更高的網(wǎng)絡(luò)輸入分辨率,網(wǎng)絡(luò)層參數(shù)多,計算復(fù)雜度高,對小目標(biāo)檢測效果較差.對此,YOLO-Z[16]提出了一系列不同尺度的模型,提高YOLOV5 檢測小目標(biāo)的性能.Cheng 等[17]提出一種單階段SSD (Single shot multibox detector) 微小目標(biāo)檢測方法,此方法可提高微小目標(biāo)檢測的實時性,但其使用的兩階段式目標(biāo)檢測器使目標(biāo)定位精度有所下降.YOLOV6[18]設(shè)計了更高效的主干網(wǎng)絡(luò)和網(wǎng)絡(luò)層.YOLOV7[19]擴(kuò)展了高效長程注意力網(wǎng)絡(luò),加入了基于級聯(lián)的模型縮放方法,均可一定程度提高檢測精度和推理效率,但由于未引入重識別分支,無法提取淺層特征用于后續(xù)跟蹤.YOLOX[20]在YOLO 系列的基礎(chǔ)上做出了一系列改進(jìn),相比于YOLO 系列目標(biāo)檢測算法,其最大的不同是采用了無錨框檢測器.而YOLOV1~ YOLOV5采用有錨框的檢測器,由于可能會被多個錨框同時檢測且與檢測框中心存在誤差,并不適用于JDE檢測模型.因此,采用無錨框的YOLOX 目標(biāo)檢測算法更加適合于JDE 檢測模型.
移動機(jī)器人檢測與跟蹤跟隨目標(biāo)的核心問題是其在運(yùn)動過程中,復(fù)雜場景干擾影響其檢測精度以及跟隨性能.YOLOX 以Darknet53 網(wǎng)絡(luò)結(jié)構(gòu)為主干,有較高的檢測精度,但模型較大、推理速度較慢,不適用于移動機(jī)器人實時跟隨.在YOLOV5 的網(wǎng)絡(luò)模型中,雖然網(wǎng)絡(luò)的特征提取能力隨著深度的增加而增強(qiáng),但下采樣次數(shù)的增加會導(dǎo)致梯度的消失,這極大影響了移動機(jī)器人的檢測精度[21].為了提升移動機(jī)器人的檢測精度,DeepSORT 目標(biāo)跟蹤算法[22]采用卡爾曼濾波更新目標(biāo)位置,并與當(dāng)前檢測目標(biāo)關(guān)聯(lián)匹配,但未解決因遮擋跟蹤造成的目標(biāo)丟失問題.Han 等[23]提出PSR (Peak side-lobe rate)目標(biāo)跟蹤算法,引入深度信息來評估跟蹤可信度,并可主動檢測跟蹤丟失目標(biāo).但其采用相關(guān)濾波法實現(xiàn)目標(biāo)跟蹤,在復(fù)雜場景下的跟蹤魯棒性低.可見,改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)的同時引入深度信息,是提升移動機(jī)器人檢測跟隨性能的一種亟待探索的方法.
綜上所述,基于YOLO 系列的移動機(jī)器人目標(biāo)跟隨算法的魯棒性強(qiáng)且精度高,但對于變化環(huán)境遷移和泛化能力弱,且運(yùn)行速率低.傳統(tǒng)移動機(jī)器人目標(biāo)跟隨算法速度快,但是當(dāng)目標(biāo)發(fā)生形變、尺度變化和嚴(yán)重遮擋等情況時,跟蹤過程容易出現(xiàn)目標(biāo)跟蹤丟失.因此,為實現(xiàn)復(fù)雜場景下移動機(jī)器人穩(wěn)定跟隨目標(biāo),本文提出改進(jìn)YOLOX 的移動機(jī)器人目標(biāo)跟隨方法(Improved YOLOX target-following algorithm,IYTFA).主要工作如下:
1) 為提高目標(biāo)檢測精度和速度,提出基于YOLOX-MobileNetV2X 網(wǎng)絡(luò) (YOLOX-M2X) 的目標(biāo)檢測算法,使用交叉熵?fù)p失、回歸損失以及重識別損失函數(shù),共同訓(xùn)練檢測與重識別分支.
2)為提高目標(biāo)預(yù)測與更新速率,采用改進(jìn)的卡爾曼濾波器獲取目標(biāo)跟蹤狀態(tài).同時加入基于深度直方圖的遮擋檢測機(jī)制,并通過深度概率約束幀間目標(biāo)匹配,提高遮擋跟蹤準(zhǔn)確率.
3)在目標(biāo)跟隨過程中,提出基于視覺伺服控制的主動搜尋策略,并在目標(biāo)消失時引入重識別特征進(jìn)行跟蹤跟隨,保證移動機(jī)器人穩(wěn)定跟隨目標(biāo).
本文內(nèi)容安排如下: 第1 節(jié)介紹IYTFA 算法,包括目標(biāo)檢測部分、目標(biāo)跟蹤部分和目標(biāo)跟隨控制部分;第2 節(jié)為實驗驗證,簡要說明移動機(jī)器人和深度學(xué)習(xí)平臺,定性、定量分析目標(biāo)跟蹤算法,并進(jìn)行移動機(jī)器人目標(biāo)跟隨實驗;第3 節(jié)對本文工作進(jìn)行總結(jié)與展望.
IYTFA 移動機(jī)器人目標(biāo)跟隨方法的結(jié)構(gòu)框圖如圖1 所示,主要由目標(biāo)檢測、目標(biāo)跟蹤及目標(biāo)跟隨控制三部分組成.首先,將YOLOX 的主干網(wǎng)絡(luò)Darknet53 替換為MobileNetV2X,通過獲取的RGB 視頻序列輸入訓(xùn)練完成的MobileNetV2X 網(wǎng)絡(luò)得到特征圖,再將重識別損失函數(shù)和檢測損失函數(shù)分別訓(xùn)練重識別分支及檢測分支,從而得到目標(biāo)檢測結(jié)果.然后采用改進(jìn)的卡爾曼濾波器獲取跟蹤狀態(tài),通過軌跡關(guān)聯(lián)實現(xiàn)目標(biāo)匹配,同時引入遮擋判別機(jī)制,如判斷目標(biāo)被遮擋則加入深度概率約束進(jìn)行遮擋目標(biāo)跟蹤匹配.最后采用基于視覺伺服控制的主動搜尋策略完成移動機(jī)器人目標(biāo)跟隨.
圖1 本文方法結(jié)構(gòu)框圖Fig.1 Structure block diagram of our method
目標(biāo)檢測是移動機(jī)器人目標(biāo)跟隨的關(guān)鍵問題,目標(biāo)檢測精度很大程度上決定了移動機(jī)器人跟隨的穩(wěn)定性.本文以YOLOX 體系架構(gòu)為基礎(chǔ)進(jìn)行改進(jìn),優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)與損失函數(shù),提高檢測實時性.主干網(wǎng)絡(luò)使用MobileNetV2X 網(wǎng)絡(luò),再通過檢測分支與重識別分支得到檢測結(jié)果.
1.1.1 YOLOX-MobileNetV2X 網(wǎng)絡(luò)
YOLOX 算法[20]將解耦頭、數(shù)據(jù)增強(qiáng)、無錨框以及標(biāo)簽分類等算法與傳統(tǒng)的YOLO 算法進(jìn)行融合,算法泛化能力強(qiáng),檢測小目標(biāo)精度高.
YOLOX 算法網(wǎng)絡(luò)主要分為三個部分,分別為主干網(wǎng)絡(luò)、網(wǎng)絡(luò)層和預(yù)測層.其主干網(wǎng)絡(luò)采用Darknet53特征提取網(wǎng)絡(luò),網(wǎng)絡(luò)層采用特征金字塔網(wǎng)絡(luò),預(yù)測層使用了3 個解耦頭.輸入圖片在主干網(wǎng)絡(luò)部分進(jìn)行淺層特征提取,輸出3 個特征層傳入網(wǎng)絡(luò)層進(jìn)行深層特征提取,輸出分別傳入3 個解耦頭進(jìn)行目標(biāo)檢測.但是YOLOX 主干網(wǎng)絡(luò)通常使用Darknet53網(wǎng)絡(luò),存在模型尺寸大、推理速度慢等問題.因此為實現(xiàn)移動機(jī)器人實時目標(biāo)檢測,本文提出YOLOXM2X 網(wǎng)絡(luò),將YOLOX 主干網(wǎng)絡(luò)采用輕量級的特征提取網(wǎng)絡(luò)MobileNetV2X,該網(wǎng)絡(luò)的卷積核心層是深度可分離卷積層,可將輸出的特征圖的通道數(shù)縮減至一半,并再與原卷積層提取的特征圖合并,與僅使用一組深度可分離卷積的MobileNetV2[24]相比,該網(wǎng)絡(luò)可獲得更多特征圖的語義信息.
在YOLOX-M2X 網(wǎng)絡(luò)上,先采用COCO2017訓(xùn)練集訓(xùn)練得到網(wǎng)絡(luò)參數(shù),再移植至移動機(jī)器人平臺進(jìn)行實時檢測.COCO2017 數(shù)據(jù)集是一個可用于圖像檢測的大規(guī)模數(shù)據(jù)集,包含超過 330×103幅圖像(其中 220×103幅是有標(biāo)注的圖像),涵蓋150 萬個目標(biāo)及80 個目標(biāo)類別(行人、汽車、大象等)、91 種材料類別(草、墻、天空等),每幅圖像包含5 句語句描述,且有 250×103個帶關(guān)鍵點(diǎn)標(biāo)注的行人.
MobileNetV2X 網(wǎng)絡(luò)將目標(biāo)檢測時的分類分為7 個階段,輸入圖片分辨率為H×W(H為圖片高度,W為圖片寬度).假設(shè)輸入特征圖表示為RH×W×C,其中H為高度、W為寬度、C為通道數(shù).每個階段的核心層為瓶頸層,每個階段的瓶頸層中包括4 個步驟.
在MobileNetV2X 網(wǎng)絡(luò)中的第7 個階段得到深層特征圖F7R15×15×320,在第1 個階段得到淺層特征圖F1R240×240×15,經(jīng)網(wǎng)絡(luò)層后得到檢測分支和重識別分支的輸入特征圖.
1.1.2 目標(biāo)檢測分支及損失函數(shù)
為度量目標(biāo)檢測信息和真實目標(biāo)信息之間的差值,進(jìn)一步定義損失函數(shù),損失函數(shù)值越小則差值越小,訓(xùn)練模型準(zhǔn)確度越高.由于MobileNetV2X網(wǎng)絡(luò)中的目標(biāo)檢測分支包括目標(biāo)分支、回歸分支和分類分支,其對應(yīng)損失函數(shù)由目標(biāo)損失函數(shù)Lobj、回歸損失函數(shù)Lreg和分類損失函數(shù)Lcls三部分組成,總的訓(xùn)練損失函數(shù)Ldetection表示為
其中,λ1,λ2和λ3是損失平衡系數(shù).Lobj和Lcls采用二值交叉熵?fù)p失函數(shù)(Binary cross entropy,BCE),Lreg采用交并比 (Intersection over union,IoU) 損失函數(shù).
在目標(biāo)檢測中,需首先判定預(yù)測的目標(biāo)屬于前景或者背景,目標(biāo)損失函數(shù)Lobj采用Focal 交叉熵?fù)p失函數(shù)度量其與真實值的差值,即
其中,Nobj代表用于計算Lobj損失函數(shù)的視頻幀目標(biāo)總個數(shù);ys表示測試樣本s的標(biāo)簽,前景標(biāo)為1,背景標(biāo)為0;ps表示測試樣本s預(yù)測為前景的概率.
Lreg回歸損失函數(shù)使用 IoU 損失函數(shù)來度量預(yù)測檢測框與真實目標(biāo)框的交并比(面積重疊度).IoU指標(biāo)范圍為[0,1],當(dāng)面積重疊率越大時,IoU指標(biāo)數(shù)值越大,即
其中,IoU表示當(dāng)前幀目標(biāo)預(yù)測框和目標(biāo)真實框的面積重疊率,即交并比.
為評判當(dāng)前視頻幀目標(biāo)所屬的類別與真實值的差值,分類損失函數(shù)采用多分類交叉熵?fù)p失函數(shù)對目標(biāo)所屬類別的預(yù)測進(jìn)行評分,即
其中,Ncls代表用于計算Lcls損失函數(shù)的視頻幀目標(biāo)總個數(shù);M表示類別的數(shù)量;ydc為符號函數(shù),如果當(dāng)前視頻幀目標(biāo)d的真實類別等于c,ydc為1,否則取0;pdc為當(dāng)前幀目標(biāo)d屬于類別c的預(yù)測概率.
1.1.3 重識別分支及損失函數(shù)
為在目標(biāo)消失再出現(xiàn)時完成視頻連續(xù)幀間的目標(biāo)匹配識別(即目標(biāo)重識別),在YOLOX-M2X 網(wǎng)絡(luò)中加入重識別分支提取目標(biāo)的顏色、紋理等淺層外觀特征作為重識別特征.
為評判重識別特征圖準(zhǔn)確度,定義重識別損失函數(shù),其值越小,表示重識別特征圖越準(zhǔn)確.并將重識別損失函數(shù)Lid定義為
最后,將檢測和重識別損失函數(shù)相加,同時使用不確定性損失函數(shù)[11]來自動平衡檢測和重識別損失函數(shù).與單獨(dú)使用Lid和Ldetection訓(xùn)練模型相比,訓(xùn)練效果得到提升,同時減少了計算復(fù)雜度,可達(dá)到實時性要求.
首先使用第1 幀檢測的目標(biāo)框初始化目標(biāo)軌跡及跟蹤狀態(tài),然后通過改進(jìn)的卡爾曼濾波器預(yù)測下一幀目標(biāo)位置,最后采用連續(xù)幀間的數(shù)據(jù)關(guān)聯(lián)確定目標(biāo)跟蹤狀態(tài).
在當(dāng)前視頻幀下,設(shè)t時刻檢測到M個目標(biāo),i1,···,M,t時刻跟蹤N個目標(biāo),j1,···,N,每一幀檢測及跟蹤結(jié)果實時更新,則當(dāng)前t時刻的第i個檢測目標(biāo)狀態(tài)為xt,i,第j個跟蹤目標(biāo)狀態(tài)為zt,j.
其中,wt-1和vt分別是過程噪聲序列和量測噪聲序列,并假設(shè)wt-1和vt是均值為0 的高斯白噪聲,其方差分別為Qt和Rt,即wt-1~(0,Qt),Vt~(0,Rt).
為詳細(xì)說明改進(jìn)卡爾曼濾波器預(yù)測與更新的過程,算法1 給出此部分的偽代碼.
算法1.改進(jìn)卡爾曼濾波算法
其中,bi,j為正確關(guān)聯(lián)軌跡集合.在訓(xùn)練數(shù)據(jù)集上訓(xùn)練網(wǎng)絡(luò)參數(shù)得到余弦距離,并與訓(xùn)練集基準(zhǔn)之間的余弦距離進(jìn)行比較,得到閾值λ.式(7)中,當(dāng)bi,j小于閾值λ,表示當(dāng)前幀檢測目標(biāo)i與上一幀跟蹤目標(biāo)j關(guān)聯(lián),則跟蹤正常;當(dāng)bi,j大于閾值λ,表示未成功關(guān)聯(lián),則繼續(xù)判斷目標(biāo)是否遮擋或消失.
跟蹤目標(biāo)由于被遮擋,目標(biāo)外觀會發(fā)生顯著變化,導(dǎo)致目標(biāo)特征減少,移動機(jī)器人跟蹤目標(biāo)丟失.本文提出一種有效的遮擋處理機(jī)制,當(dāng)判斷遮擋發(fā)生時,采用深度概率對目標(biāo)周圍區(qū)域進(jìn)行空間約束,并通過最大后驗概率(Maximum a posteriori,MAP)關(guān)聯(lián)匹配實現(xiàn)遮擋跟蹤.
1)遮擋判斷
由于多個目標(biāo)相互遮擋時,RGB 外觀被遮擋,只可從深度信息區(qū)分不同遮擋目標(biāo),而ZED 相機(jī)獲取的深度信息為多個遮擋目標(biāo)中離該相機(jī)最近的目標(biāo)深度信息.因此將目標(biāo)框在RGB 圖中的位置區(qū)域映射到深度圖中并設(shè)定為深度遮擋區(qū)域,若判定其他目標(biāo)進(jìn)入此區(qū)域表示發(fā)生遮擋,具體判定如圖2 所示.
圖2 遮擋前后深度直方圖Fig.2 Depth histogram before and after occlusion
目標(biāo)1 遮擋前深度直方圖最大峰值為4 000,目標(biāo)2 遮擋前深度直方圖的最大峰值為2 500,發(fā)生遮擋后深度遮擋區(qū)域深度直方圖最大峰值為2 500,深度直方圖的峰值從4 000 下降到2 500.顯然,此時目標(biāo)1 的深度遮擋區(qū)域的深度直方圖出現(xiàn)新的上升峰值2 500,且小于遮擋前的峰值4 000,則可見目標(biāo)被遮擋后的深度直方圖峰值明顯減少.
2)遮擋匹配跟蹤
當(dāng)目標(biāo)發(fā)生遮擋時,通過最大后驗概率關(guān)聯(lián)當(dāng)前幀檢測目標(biāo)與上一幀跟蹤目標(biāo),可有效解決遮擋跟蹤問題.假設(shè)所有運(yùn)動目標(biāo)之間相互獨(dú)立,設(shè)單個目標(biāo)軌跡組成為S,似然概率具有條件獨(dú)立性,則關(guān)聯(lián)遮擋目標(biāo)的目標(biāo)函數(shù)為
式中,P(zt-1,j) 是所有跟蹤目標(biāo)的先驗概率;P(xt,i|zt-1,j)表示當(dāng)前檢測目標(biāo)屬于跟蹤目標(biāo)的條件概率,該條件概率通過檢測目標(biāo)與上一幀跟蹤目標(biāo)框的重疊率計算得到.
設(shè)當(dāng)前幀檢測目標(biāo)xt,i的深度圖對應(yīng)的邊界框為b(xt,i),跟蹤目標(biāo)zt-1,j的深度圖對應(yīng)的邊界框為b(zt-1,j),通過判斷b(xt,i)與b(zt-1,j) 的重疊率來表示跟蹤置信度,式(11)用于求目標(biāo)框的重疊率,即
式中,σ為重疊區(qū)域,若C大于σ,表示xt,j與zt-1,j關(guān)聯(lián)匹配.
在獲取目標(biāo)跟蹤結(jié)果后,選定感興趣的一個目標(biāo)作為移動機(jī)器人的跟隨目標(biāo).為使移動機(jī)器人實現(xiàn)目標(biāo)跟隨,本文采用基于視覺伺服控制的目標(biāo)跟隨算法,使跟隨目標(biāo)框的中心點(diǎn)保持為視野范圍中心點(diǎn).如目標(biāo)消失,則移動機(jī)器人按照目標(biāo)運(yùn)動軌跡進(jìn)行主動搜索,重新識別目標(biāo)并使移動機(jī)器人繼續(xù)跟隨目標(biāo).
1.4.1 基于ZED 相機(jī)的移動機(jī)器人運(yùn)動學(xué)模型
由于ZED 相機(jī)具有成像分辨率高、可獲取遠(yuǎn)距離深度圖像等優(yōu)點(diǎn),本文采用ZED 相機(jī)作為移動機(jī)器人視覺傳感器,其內(nèi)參已標(biāo)定.
假設(shè)ZED 相機(jī)的鏡頭畸變小到可以忽略,相機(jī)固有參數(shù)用針孔模型表示,ZED 相機(jī)成像原理圖如圖3 所示.在圖像坐標(biāo)系Y的跟蹤目標(biāo)坐標(biāo)為P(xcn,ycn,zcn),zn是從圖像坐標(biāo)和ZED 相機(jī)的固有參數(shù)中獲得
圖3 ZED 相機(jī)成像圖Fig.3 ZED camera imagery
其中,f為相機(jī)焦距,b為左右相機(jī)基線,f和b是通過先驗信息或相機(jī)標(biāo)定得到.其中由極線約束關(guān)系,視差d可由左相機(jī)中的像素點(diǎn)xl與右相機(jī)中的像素點(diǎn)xr對應(yīng)關(guān)系計算得到.
本文算法將移動機(jī)器人平臺簡化為基于ZED相機(jī)的兩輪差速模型,如圖4 所示.圖4 中包括世界坐標(biāo)系G、機(jī)器人坐標(biāo)系PR、ZED 相機(jī)坐標(biāo)系Z和圖像坐標(biāo)系Y.圖中,C(x,y) 為移動機(jī)器人運(yùn)動中心點(diǎn),D為兩輪之間的距離,θ為方向角.
圖4 基于ZED 相機(jī)的兩輪差速驅(qū)動模型Fig.4 Two-wheel differential drive model based on ZED
其中,R(θQ,θC)表示從世界坐標(biāo)系Q到ZED 相機(jī)坐標(biāo)系Z旋轉(zhuǎn)矩陣.δd表示在世界坐標(biāo)系M中,移動機(jī)器人與攝像機(jī)的距離.
1.4.2 機(jī)器人主動控制策略
前述跟蹤算法完成目標(biāo)跟蹤,并獲取目標(biāo)跟蹤框的深度信息,但直接使用目標(biāo)跟蹤框的深度信息來計算機(jī)器人與跟隨目標(biāo)的距離,會引入大量的背景信息.因此需要對目標(biāo)中心進(jìn)行重定位,為跟蹤區(qū)域找到合適的位置,提高機(jī)器人跟隨精度.
得到精確位置 (x*,y*)后,獲取以 (x*,y*) 為中心區(qū)域框的4 個頂點(diǎn)坐標(biāo),計算中心點(diǎn)和頂點(diǎn)對應(yīng)深度信息平均值f(t),其值表示為移動機(jī)器人與目標(biāo)的距離.設(shè)移動機(jī)器人期望到達(dá)位置為f*(t),誤差e(t) 可定義為
機(jī)器人控制變量為Xcontrol[U(t)vt,W(t)wt],vt代表移動機(jī)器人的線速度,wt代表移動機(jī)器人的角速度,PID 控制器設(shè)計為
其中,kP,kI和kD為PID 系數(shù),λ是調(diào)整因子.
目標(biāo)跟隨控制部分的結(jié)構(gòu)框圖如圖5 所示,誤差e(t) 為PID 控制器的輸入端,實時控制移動機(jī)器人角速度和線速度,移動機(jī)器人與目標(biāo)保持一定距離并穩(wěn)定跟隨目標(biāo).在跟隨過程中如果目標(biāo)超出移動機(jī)器人視野范圍,移動機(jī)器人會保留消失前最后一幀跟蹤目標(biāo)的重識別特征和位置信息,并朝著目標(biāo)消失的方向繼續(xù)運(yùn)動.若跟蹤目標(biāo)再次出現(xiàn)在視野內(nèi),進(jìn)行目標(biāo)檢測并提取該目標(biāo)的重識別特征與消失前最后一幀跟蹤目標(biāo)的重識別特征關(guān)聯(lián)匹配,實現(xiàn)跟蹤目標(biāo)重識別即為重檢成功,則可實現(xiàn)目標(biāo)消失后再重識別并穩(wěn)定跟隨目標(biāo).
圖5 目標(biāo)跟隨器移動控制部分Fig.5 Target follower movement control section
移動機(jī)器人目標(biāo)跟隨系統(tǒng)主要包括兩個平臺:深度學(xué)習(xí)平臺及移動機(jī)器人跟隨控制平臺.深度學(xué)習(xí)平臺GPU 為NVIDIA Geforce RTX2080SUPER,內(nèi)置軟件環(huán)境為Ubuntu16.04LTS 系統(tǒng),通過深度學(xué)習(xí)平臺訓(xùn)練數(shù)據(jù)集獲取YOLOX-M2X 網(wǎng)絡(luò)參數(shù).移動機(jī)器人跟隨控制平臺重20 kg,可承載50 kg 的額外重量,主要組件包括: ZED 雙目相機(jī)、車體、NUC機(jī)載微型計算機(jī)、STM32F103RCT6 底層驅(qū)動控制板等,如圖6 所示.機(jī)器人操作系統(tǒng)為ROS (Robot operating system),ROS 具有良好的開源性和擴(kuò)展性.移動機(jī)器人跟隨控制平臺主要包括視覺檢測模塊、目標(biāo)跟蹤及跟隨控制模塊.視覺檢測模塊采用ZED 相機(jī)獲取實時視頻序列,并通過深度學(xué)習(xí)平臺訓(xùn)練數(shù)據(jù)集獲取網(wǎng)絡(luò)參數(shù)進(jìn)行目標(biāo)檢測;移動機(jī)器人目標(biāo)跟蹤及跟隨控制模塊采用兩輪差速驅(qū)動,移動機(jī)器人內(nèi)部中心位置安裝有數(shù)字姿態(tài)傳感器,可檢測機(jī)器人的加速度、角速度.移動機(jī)器人底盤前后端裝有兩個防跌落傳感器,其檢測范圍為15 cm,通過該模塊實現(xiàn)目標(biāo)穩(wěn)定跟隨.
圖6 移動機(jī)器人平臺Fig.6 Mobile robot platform
為評估本文算法的性能,本文在測試集和移動機(jī)器人平臺進(jìn)行了大量的實驗.將DeepSORT 算法[22]、CTrack 算法[25]、FairMOT 算法[11]與Realtime MOT 算法[26]等與本文算法在深度學(xué)習(xí)平臺上進(jìn)行驗證,并在MOTchallenge 中的測試集上完成對比實驗.1) DeepSORT 算法的最大特點(diǎn)是加入外觀信息,借助重識別模型來提取特征,減少目標(biāo)ID 切換的次數(shù).2) CTrack 算法是基于輸入鏈?zhǔn)礁櫩蚣?實現(xiàn)端到端聯(lián)合檢測,同時設(shè)計了聯(lián)合注意力模塊來突出檢測框在回歸中的有效信息區(qū)域.3) FairMOT 算法是將檢測算法和重識別特征進(jìn)行融合,同時輸出檢測目標(biāo)和重識別特征.4) Realtime MOT 算法的創(chuàng)新在于將目標(biāo)檢測環(huán)節(jié)和外觀特征融合在同一網(wǎng)絡(luò)中,大幅度提升多目標(biāo)跟蹤算法的速率.5)本文跟蹤算法的目標(biāo)檢測部分采用基于無錨框的改進(jìn)YOLOX 檢測算法,同時將目標(biāo)檢測和重識別特征融合到輕量化網(wǎng)絡(luò)中,跟蹤部分則采用改進(jìn)卡爾曼濾波器,可有效提高跟蹤實時性.
為直觀評估本文算法的性能,對跟蹤算法進(jìn)行定性對比分析實驗;為定量分析本文算法性能,在測試集上進(jìn)行了網(wǎng)絡(luò)消融實驗、不同損失函數(shù)對比實驗以及不同算法之間的遮擋跟蹤對比實驗;最后,在移動機(jī)器人平臺上進(jìn)行了室內(nèi)、室外目標(biāo)跟隨實驗.
如圖7 所示,測試集為公開MOTchallenge 中的測試集中的部分視頻序列.表1 給出該測試集的幀率、分辨率、時長等屬性.測試集包括大量動態(tài)背景,行人姿勢變化多,存在無遮擋、遮擋、交叉遮擋等情況.
表1 測試集視頻序列Table 1 Test set video sequences
圖7 測試集Fig.7 Test set
為驗證本文算法的有效性,分別在MOT2008、MOT2002和HT2114 視頻序列上,將DeepSORT算法、CTrack 算法、FairMOT 算法和Real-time MOT 算法與本文算法進(jìn)行目標(biāo)遮擋跟蹤對比實驗.圖8 是不同算法在MOT2002 視頻序列上的跟蹤結(jié)果,DeepSORT 算法跟蹤成功率最低,出現(xiàn)了大量漏檢目標(biāo).圖8 中,Object-1 在第26 幀時處于未遮擋狀態(tài),除了DeepSORT 算法外,其余3 種算法均能跟蹤目標(biāo),但是FairMOT 算法中Object-1 身份ID 由40 變?yōu)榱?0,出現(xiàn)身份ID 信息切換.Object-2 在第326 幀時處于未遮擋狀態(tài),Object-2 目標(biāo)小、模糊且受光照影響,僅有Real-time MOT和本文算法仍能穩(wěn)定跟蹤目標(biāo).Object-3 在第2 701 幀時處于新出現(xiàn)的目標(biāo)和周圍物體交叉遮擋狀態(tài),DeepSORT算法、CTrack 算法和FairMOT 算法出現(xiàn)跟蹤丟失,本文算法較其他4 種算法跟蹤效果更好,區(qū)分目標(biāo)與新出現(xiàn)的目標(biāo)能力較強(qiáng),具有較好的跟蹤魯棒性.DeepSORT、CTrack、FairMOT和Real-time MOT 均出現(xiàn)一定程度上的漂移.本文采用YOLOX 框架下高性能的MobileNetV2X 特征提取網(wǎng)絡(luò)及改進(jìn)的卡爾曼濾波器改善了目標(biāo)在遮擋、交叉遮擋和完全遮擋的跟蹤漂移問題.
圖8 本文算法與DeepSORT、CTrack、FairMOT、Real-time MOT 多目標(biāo)跟蹤算法對比分析Fig.8 Comparison and analysis of our algorithm with DeepSORT,CTrack,FairMOT,and Real-time MOT multi-target tracking algorithm
接下來,在實際場景中將本文算法與在測試集中跟蹤性能較好的FairMOT 跟蹤算法在移動機(jī)器人平臺上進(jìn)行對比實驗,選用了實驗室室內(nèi)場景、學(xué)校食堂場景.圖9 為在實驗室室內(nèi)場景的實驗結(jié)果,圖中標(biāo)注Person ID-x 框為采用本文算法的目標(biāo)跟蹤框,標(biāo)注Preson_x 框為采用FairMOT 算法的目標(biāo)跟蹤框.由圖9 可見,遮擋前以上跟蹤算法均能準(zhǔn)確跟蹤行人.當(dāng)?shù)?22 幀行人Person_2被完全遮擋后,FairMOT 目標(biāo)跟蹤算法身份切換為Person_3,而本文算法仍然能穩(wěn)定跟蹤目標(biāo)行人ID-3.通過與FairMOT 算法在移動機(jī)器人平臺上進(jìn)行對比實驗可知,本文算法能有效地解決跟蹤目標(biāo)遮擋問題,能夠穩(wěn)定跟隨目標(biāo)行人.其原因在于本文算法相比于FairMOT 算法加入了深度概率約束,能夠有效解決遮擋后身份ID 錯誤切換問題.
圖9 移動機(jī)器人平臺上FairMOT 算法與本文算法對比實驗Fig.9 Comparative experiment of FairMOT algorithm and our algorithm on mobile robot platform
如圖10 所示,在學(xué)校食堂采集視頻序列中進(jìn)行了目標(biāo)跟蹤實驗,同時展示了FairMOT和本文算法的部分跟蹤結(jié)果.在第10 幀行人ID-1 遮擋了其他目標(biāo),如ID-10 被遮擋后本文算法可有效跟蹤,而FairMOT 算法將該目標(biāo)錯誤跟蹤為ID-29,被遮擋的行人ID 發(fā)生了變換,可見本文算法相對于FairMOT 算法ID 錯誤切換較少.分析原因得出,本文算法引入重識別分支,有效解決了遮擋后目標(biāo)跟蹤問題.同時,本文算法能很好地檢測Fair-MOT 未檢測到的行人,例如第13 幀行人ID-21,得益于改進(jìn)的YOLOX 目標(biāo)檢測算法良好的檢測性能.通過在實際復(fù)雜場景中的跟蹤結(jié)果對比,證明了本文算法在移動機(jī)器人平臺上具有良好的實時性和準(zhǔn)確性,同時也具有很好的魯棒性.
圖10 學(xué)校食堂場景中本文算法與FairMOT 算法對比實驗Fig.10 Comparative experiment between our algorithm and FairMOT algorithm in school canteen scene
定量分析分為目標(biāo)檢測算法的兩組消融實驗和在測試集上的跟蹤算法對比實驗.
2.2.1 目標(biāo)檢測算法消融實驗
為驗證加入網(wǎng)絡(luò)和重識別損失函數(shù)的有效性,將本文算法與3 種算法進(jìn)行對比: 1)傳統(tǒng)YOLOX網(wǎng)絡(luò)[20];2)在YOLOX 框架下用MobileNetV2X 代替主干網(wǎng)絡(luò);3) 在YOLOX 框架下用MobileNetV2X代替主干網(wǎng)絡(luò),再加入重識別損失函數(shù).為定量分析目標(biāo)檢測性能,使用幾種常用的評估指標(biāo)[27],如準(zhǔn)確率(Presion)、召回率(Recall)、F1 分?jǐn)?shù)和平均準(zhǔn)確率(Mean average precision,mAP)、每秒浮點(diǎn)運(yùn)算次數(shù)(Flops,單位為GHz),結(jié)果見表2.
表2 網(wǎng)絡(luò)消融實驗Table 2 The ablation studies of the proposed network
首先,比較算法1) 與算法2)的性能指標(biāo),在準(zhǔn)確率、召回率、F1 分?jǐn)?shù)、平均準(zhǔn)確率相差不大的情況下,每秒浮點(diǎn)運(yùn)算次數(shù)從21.79 GHz 大幅下降到8.65 GHz,可見運(yùn)算復(fù)雜度大幅下降.由于觸發(fā)器導(dǎo)致的精度損失可以忽略不計,因此在移動機(jī)器人平臺CPU 計算能力有限的情況下,受計算能力限制的輕量級模型MobileNetV2X 更加適合應(yīng)用于移動機(jī)器人平臺.
接著,比較算法2)與算法3)的性能指標(biāo): 采用平均絕對誤差 (Mean absolute error,MAE)和均方誤差 (Mean square error,MSE),在NWPUCrowd和UCF-QNRF 數(shù)據(jù)集上進(jìn)行測試[28].在圖11中,在2 個主干網(wǎng)絡(luò)(Darknet53、MobileNetV2X)上分別進(jìn)行測試.比較不同的損失函數(shù)性能,包括L2 損失函數(shù)、貝葉斯損失(Bayesian loss,BL) 函數(shù)[29]、NoiseCC 損失函數(shù)和DM-count 損失函數(shù).從圖11 可見,本文的損失函數(shù)與其他損失函數(shù)相比,Darknet53_MAE 與MobileNetV2X_MAE 指標(biāo)最低,即本文使用的損失函數(shù)訓(xùn)練模型準(zhǔn)確度高,其重識別損失函數(shù)最后一層權(quán)重的梯度不再與激活函數(shù)相關(guān),只與輸出值和真實值的差值成正比,收斂快.但Darknet53_MSE 與MobileNetV2X_MSE 指標(biāo)略低于DM-count 損失函數(shù),DM-count損失函數(shù)MAE 指標(biāo)偏高,將MAE 與MSE 指標(biāo)綜合考慮,本文提出的損失函數(shù)更加穩(wěn)定.從以上兩組實驗對比分析可見,采用MobileNetV2X 網(wǎng)絡(luò)計算復(fù)雜度大大降低,且重識別損失函數(shù)收斂快,實時性增強(qiáng).
圖11 不同主干網(wǎng)絡(luò)的不同損失函數(shù)的測試結(jié)果Fig.11 Test results of different loss functions for different backbone networks
2.2.2 目標(biāo)跟蹤算法實驗
為定量分析目標(biāo)跟蹤算法在不同序列上目標(biāo)遮擋跟蹤效果,選用MOT2008、MOT2002 等6 個視頻序列進(jìn)行對比分析和驗證.將本文算法與4 種目標(biāo)跟蹤算法在深度學(xué)習(xí)平臺上測試,并進(jìn)行對比分析.對比算法包括DeepSORT 算法[20]、FairMOT算法[11]、CTrack 算法[23]和Real-time MOT 算法[24].本文在這些視頻序列上測試多目標(biāo)跟蹤準(zhǔn)確度(Multiple object tracking accuracy,MOTA)、身份準(zhǔn)確率與召回率的調(diào)和均值(Identification F-score,IDF1)以及跟蹤目標(biāo)軌跡數(shù)量(Mostly tracked,MT)等指標(biāo),各項指標(biāo)數(shù)據(jù)如表3 所示.MOTA 指標(biāo)評估算法性能,基準(zhǔn)測試范圍為 MOTA(-∞,100],當(dāng)跟蹤器的錯誤數(shù)量超過場景中所有物體的數(shù)量時,多目標(biāo)跟蹤精度MOTA 為負(fù).IDF1 為正確識別檢測真實數(shù)量和平均數(shù)量之比;MT 為跟蹤成功的目標(biāo)數(shù)量在所有跟蹤目標(biāo)中所占的比例;ML 為跟蹤失敗的目標(biāo)數(shù)量在所有跟蹤目標(biāo)中所占的比例;IDs為單條跟蹤軌跡改變目標(biāo)標(biāo)號的次數(shù);FPS (Frames per second)表示幀速率,單位為幀/s.表中的符號“↑”表示數(shù)值越大對應(yīng)該符號指標(biāo)性能越好;符號“↓” 表示數(shù)值越小對應(yīng)該符號的指標(biāo)性能越好.
表3 各項性能指標(biāo)Table 3 Each performance index
本文方法分別在6 個數(shù)據(jù)集上測試,如表3 所示,除本文算法,FairMOT 算法的MOTA、IDF1與MT 指標(biāo)最好.在MOT2008 數(shù)據(jù)集上,本文算法除了IDs 指標(biāo)為591,略差于FairMOT 算法指標(biāo)543,其余指標(biāo)均比其他算法好,得益于本網(wǎng)絡(luò)加入了重識別分支,提高了遮擋跟蹤身份匹配率,同時采用改進(jìn)的卡爾曼濾波器的預(yù)測與更新速率.這幾種方法的推理速度接近實時視頻速率,而本文算法更快,在以上視頻序列中,本文算法在MOTS2007數(shù)據(jù)集中達(dá)到了39 幀/s,充分證明YOLOX-M2X網(wǎng)絡(luò)實時性強(qiáng),適用于移動機(jī)器人目標(biāo)跟隨.綜上所述,本文算法跟蹤幀速率比其他目標(biāo)跟蹤算法要高,在MOTA 指標(biāo)、IDF1 指標(biāo)、MT 指標(biāo)和ML 指標(biāo)上均為最優(yōu).
為測試本文算法的魯棒性和實時性,在不同場景下進(jìn)行了移動機(jī)器人目標(biāo)跟隨實驗,包括室內(nèi)場景、室外場景.首先在室內(nèi)場景中進(jìn)行目標(biāo)跟隨實驗,該室內(nèi)場景存在旋轉(zhuǎn)門,柜臺等障礙物,宣傳欄反光,光照變化等影響.如圖12 所示,第20 幀之后跟蹤目標(biāo)左轉(zhuǎn)、第23 幀避開柜臺、第35 幀跟蹤行人穿過旋轉(zhuǎn)門均能實時跟隨目標(biāo).實驗證明,本文算法目標(biāo)檢測及跟隨精度高,具有良好的實時性,能夠?qū)崿F(xiàn)實時避障及穩(wěn)定跟隨目標(biāo).
圖12 室內(nèi)環(huán)境下移動機(jī)器人目標(biāo)跟隨實驗Fig.12 Experiment of mobile robot target following in indoor environment
然后在室外場景進(jìn)行目標(biāo)跟隨實驗,分別選取走廊及學(xué)校道路兩種場景進(jìn)行移動機(jī)器人目標(biāo)跟隨實驗.在走廊場景中的實驗如圖13 所示,通過ROS 可視化工具rviz 在地圖上記錄移動機(jī)器人跟隨路線,中心區(qū)域為移動機(jī)器人建立的離線地圖,地圖中的細(xì)線代表移動機(jī)器人運(yùn)動軌跡.跟蹤行人識別身份為ID-3.移動機(jī)器人鎖定跟蹤行人ID-3,在鎖定目標(biāo)消失再出現(xiàn)及其他新目標(biāo)出現(xiàn)時,均能正確跟蹤跟隨鎖定目標(biāo).如第35 幀時跟蹤目標(biāo)ID-3 在轉(zhuǎn)彎過程中,快速移動消失在機(jī)器人視野范圍內(nèi),出現(xiàn)目標(biāo)丟失情況,移動機(jī)器人則通過主動搜尋策略,在rviz 界面顯示了主動搜尋的軌跡,能在目標(biāo)消失再出現(xiàn)后繼續(xù)穩(wěn)定跟隨目標(biāo).如第58 幀識別跟蹤到新目標(biāo)行人ID-4和第73 幀識別跟蹤到新目標(biāo)行人ID-5,移動機(jī)器人仍能實時鎖定跟隨目標(biāo)ID-3.
圖13 移動機(jī)器人跟隨路線圖Fig.13 Mobile robot following road map
在校園內(nèi)進(jìn)行大范圍室外目標(biāo)跟隨的實驗如圖14 所示,左邊地圖顯示了校園衛(wèi)星地圖,圖中曲線表示移動機(jī)器人運(yùn)行軌跡,包括了路面不平、光照變化、行人密集、下坡路段等復(fù)雜場景.在該實驗過程中,機(jī)器人平穩(wěn)跟隨目標(biāo)約770 m,移動機(jī)器人平均速度約為0.42 m/s,總跟隨時間長度約為30 min.機(jī)器人軌跡上右邊的16 幅圖像是這些位置對應(yīng)的移動機(jī)器人實時跟隨圖.第1 段為機(jī)器人經(jīng)過不平路面處,機(jī)器人跟蹤視野發(fā)生抖動,影響了跟蹤算法特征網(wǎng)絡(luò)提取特征,經(jīng)過不平的路面后,利用主動搜尋和重識別功能,重新捕獲到目標(biāo)并主動跟隨.第2 段為機(jī)器人受到光照影響,光照對目標(biāo)的顏色、紋理特征提取影響大,本文YOLOX-MobileNet-V2X 網(wǎng)絡(luò)引入數(shù)據(jù)增強(qiáng),提升了模型的魯棒性,保證了在光照變化下的移動機(jī)器人穩(wěn)定跟隨.在第3段食堂附近出現(xiàn)了眾多行人目標(biāo),本文算法實時返回跟隨行人的位置信息,實現(xiàn)在復(fù)雜場景下穩(wěn)定跟隨.第4 段為下坡路面,機(jī)器人能夠?qū)崟r控制角速度和線速度,保持與目標(biāo)相距一段穩(wěn)定距離跟隨.可見,在室外復(fù)雜情況下,移動機(jī)器人仍能實現(xiàn)穩(wěn)定地跟隨目標(biāo).
圖14 室外環(huán)境下移動機(jī)器人目標(biāo)跟隨實驗Fig.14 Experiment of mobile robot target following in outdoor environment
本文提出了一種基于改進(jìn)YOLOX 的移動機(jī)器人目標(biāo)跟隨方法,以解決移動機(jī)器人在復(fù)雜場景中難以穩(wěn)定跟隨目標(biāo)的問題.針對目標(biāo)檢測實時性低的問題,通過改進(jìn)YOLOX-M2X 網(wǎng)絡(luò)實現(xiàn)目標(biāo)檢測;針對復(fù)雜情況下目標(biāo)跟蹤問題,提出改進(jìn)的卡爾曼濾波器結(jié)合深度概率信息的方法,確保機(jī)器人在遮擋情況下穩(wěn)定跟蹤目標(biāo);針對機(jī)器人跟蹤目標(biāo)丟失情況,設(shè)計了基于視覺伺服控制的目標(biāo)跟隨算法,引入重識別特征主動搜尋目標(biāo),實現(xiàn)目標(biāo)跟隨.最后通過在多個測試集上的對比實驗以及在移動機(jī)器人平臺上的室內(nèi)外實驗驗證,證明了本文方法的有效性.下一步工作將引入Transformer[30]作為目標(biāo)檢測的整體框架,首先將RGB-D 特征圖輸入目標(biāo)檢測網(wǎng)絡(luò),采用編碼器與解碼器的架構(gòu),然后在網(wǎng)絡(luò)中提取淺層深度特征圖,用此時的深度特征圖作為遮擋判斷的特征,相比直接使用深度特征,能夠提高遮擋判斷的準(zhǔn)確度,從而進(jìn)一步提高目標(biāo)跟隨的穩(wěn)定性.