◆常 川 劉科成
?
基于機(jī)載機(jī)器視覺(jué)的無(wú)人機(jī)自主目標(biāo)跟蹤研究
◆常 川1劉科成2
(1.武漢大學(xué)遙感信息工程學(xué)院 湖北 430072;2.上海交通大學(xué)電子信息與電氣工程學(xué)院 上海 200052)
目標(biāo)跟蹤在軍事、民用等多個(gè)領(lǐng)域得到了廣泛的應(yīng)用,通過(guò)無(wú)人機(jī)進(jìn)行實(shí)時(shí)的目標(biāo)跟蹤是近幾年研究的熱點(diǎn)。文章研究了四旋翼無(wú)人機(jī)對(duì)地面動(dòng)態(tài)目標(biāo)實(shí)時(shí)的檢測(cè)與跟蹤問(wèn)題,設(shè)計(jì)實(shí)現(xiàn)了基于機(jī)載計(jì)算機(jī)的無(wú)人機(jī)跟蹤系統(tǒng),使得無(wú)人機(jī)能夠?qū)崟r(shí)處理攝像頭獲取到的視頻數(shù)據(jù),并結(jié)合YOLO(You Only Look Once)目標(biāo)檢測(cè)算法和核相關(guān)濾波(Kernerlized Correlation Filter, KCF)目標(biāo)跟蹤算法,實(shí)現(xiàn)了快速穩(wěn)定的目標(biāo)跟蹤。最后在室外環(huán)境中對(duì)行人進(jìn)行了跟蹤實(shí)驗(yàn),驗(yàn)證了無(wú)人機(jī)目標(biāo)跟蹤系統(tǒng)的有效性。
無(wú)人機(jī);YOLO目標(biāo)檢測(cè)算法;KCF目標(biāo)跟蹤算法;機(jī)器視覺(jué)
無(wú)人機(jī)通過(guò)自身搭載的攝像頭進(jìn)行動(dòng)態(tài)的目標(biāo)跟蹤是計(jì)算機(jī)視覺(jué)領(lǐng)域和無(wú)人機(jī)領(lǐng)域的一個(gè)熱點(diǎn)問(wèn)題[1]。無(wú)人機(jī)通過(guò)目標(biāo)檢測(cè)算法[2]檢測(cè)跟蹤對(duì)象所在位置,并通過(guò)目標(biāo)跟蹤算法[3]對(duì)跟蹤目標(biāo)進(jìn)行跟蹤,無(wú)人機(jī)跟隨跟蹤對(duì)象進(jìn)行飛行,從而實(shí)現(xiàn)對(duì)特定目標(biāo)的動(dòng)態(tài)跟蹤[4]。
本文提出了基于機(jī)載計(jì)算機(jī)的無(wú)人機(jī)跟蹤系統(tǒng),實(shí)現(xiàn)了對(duì)跟蹤場(chǎng)景的實(shí)時(shí)處理,并將目標(biāo)檢測(cè)算法與目標(biāo)跟蹤算法相結(jié)合,提升目標(biāo)跟蹤的穩(wěn)定性,從而實(shí)現(xiàn)了無(wú)人機(jī)進(jìn)行動(dòng)態(tài)目標(biāo)跟蹤的自主化。
目標(biāo)檢測(cè)的常規(guī)方法是將每幀圖像分割成區(qū)域,并根據(jù)特征判斷每個(gè)區(qū)域中是否包含該對(duì)象[5]。英國(guó)杜倫大學(xué)采用卷積神經(jīng)網(wǎng)絡(luò)和遷移學(xué)習(xí)來(lái)實(shí)現(xiàn)目標(biāo)檢測(cè),實(shí)驗(yàn)表明YOLO[6](You Only Look Once)、基于區(qū)域的快速卷積神經(jīng)網(wǎng)絡(luò)(Faster-RCNN)[7]和基于區(qū)域的完全卷積網(wǎng)絡(luò)(R-FCN)經(jīng)過(guò)遷移訓(xùn)練后,可以實(shí)現(xiàn)對(duì)行李箱中非法物體的檢測(cè)[8]。YOLO是一種新的對(duì)象檢測(cè)算法,它可以“一眼”就能預(yù)測(cè)出物體是什么以及物體所在的位置[9]。
目標(biāo)跟蹤旨在估計(jì)視頻中預(yù)定義目標(biāo)的位置或運(yùn)動(dòng)狀態(tài)[10],其在視頻監(jiān)控、機(jī)器人技術(shù)和自動(dòng)駕駛等方面有著廣泛的應(yīng)用。核相關(guān)濾波(Kernelized Correlation Filter, KCF)算法是目標(biāo)跟蹤中常用的算法[11]。中國(guó)科學(xué)院大學(xué)的研究人員提出了自適應(yīng)學(xué)習(xí)率和遮擋檢測(cè)機(jī)制,改進(jìn)了KCF算法的跟蹤效果和速度[12]。Henriques 和Caseiro提出了一種基于線性?xún)?nèi)核的快速多通道擴(kuò)展的KCF算法,相比于Struck和TLD等跟蹤器,具有更快的速度,并且所需代碼數(shù)更少[13]。
基于機(jī)載計(jì)算機(jī)進(jìn)行實(shí)時(shí)數(shù)據(jù)處理,并結(jié)合目標(biāo)檢測(cè)算法和目標(biāo)跟蹤算法,可以實(shí)現(xiàn)快速穩(wěn)定的動(dòng)態(tài)目標(biāo)跟蹤。
本文使用四旋翼無(wú)人機(jī)搭載單目攝像頭和機(jī)載計(jì)算機(jī),實(shí)現(xiàn)實(shí)時(shí)的動(dòng)態(tài)目標(biāo)跟蹤。所使用的實(shí)驗(yàn)設(shè)備為DJI M100無(wú)人機(jī)、機(jī)載計(jì)算機(jī)(妙算 Manifold: NVIDIA Tegra K1處理器,四核ARM和GPU CUDA核心,最高主頻2.2GHZ)、手持設(shè)備(普通智能手機(jī))、遙控器、單目攝像頭(禪思Z3云臺(tái)相機(jī),1080p分辨率),將各種設(shè)備進(jìn)行系統(tǒng)集成后的結(jié)構(gòu)圖如圖1(a)所示。在系統(tǒng)運(yùn)行過(guò)程中,需要實(shí)現(xiàn)手持端和無(wú)人機(jī)機(jī)載端的通信,即將手持設(shè)備與遙控器進(jìn)行連接,將機(jī)載計(jì)算機(jī)與無(wú)人機(jī)進(jìn)行連接,即可通過(guò)數(shù)據(jù)透?jìng)魍ǖ缹?shí)現(xiàn)端到端通信,設(shè)備通信示意圖如圖1(b)所示。
將無(wú)人機(jī)硬件系統(tǒng)與軟件方案進(jìn)行系統(tǒng)集成,需要分成兩部分進(jìn)行:
(1)無(wú)人機(jī)機(jī)載端:將無(wú)人機(jī)與機(jī)載計(jì)算機(jī)連接后,在機(jī)載計(jì)算機(jī)上安裝ROS操作系統(tǒng),并安裝部署無(wú)人機(jī)控制模塊、目標(biāo)檢測(cè)模塊、目標(biāo)跟蹤模塊,機(jī)載計(jì)算機(jī)基于消息通信機(jī)制實(shí)現(xiàn)各個(gè)模塊的調(diào)用。
(2)手持設(shè)備端:手持設(shè)備上安裝應(yīng)用程序,完成無(wú)人機(jī)的手動(dòng)控制、命令發(fā)布和結(jié)果顯示。
如圖2所示,在室外環(huán)境中實(shí)現(xiàn)無(wú)人機(jī)對(duì)特定目標(biāo)的動(dòng)態(tài)跟蹤,需要分為以下步驟進(jìn)行實(shí)現(xiàn):
(1)通過(guò)手持設(shè)備發(fā)送目標(biāo)跟蹤指令,機(jī)載計(jì)算機(jī)接收并解析指令。
(2)機(jī)載計(jì)算機(jī)調(diào)用目標(biāo)檢測(cè)算法檢測(cè)跟蹤對(duì)象所在位置,并將檢測(cè)結(jié)果回傳至手持設(shè)備進(jìn)行顯示。
(3)通過(guò)手持設(shè)備對(duì)跟蹤目標(biāo)進(jìn)行框選,機(jī)載計(jì)算機(jī)調(diào)用目標(biāo)跟蹤算法對(duì)框選的跟蹤目標(biāo)進(jìn)行跟蹤。
(4)無(wú)人機(jī)根據(jù)跟蹤對(duì)象的位置變化,進(jìn)行姿態(tài)調(diào)整和位置移動(dòng)。
圖2 方案流程圖
實(shí)現(xiàn)無(wú)人機(jī)對(duì)特定目標(biāo)的動(dòng)態(tài)跟蹤,需要兩個(gè)模塊的協(xié)同作用:目標(biāo)檢測(cè)模塊和目標(biāo)跟蹤模塊。其中目標(biāo)檢測(cè)模塊負(fù)責(zé)檢測(cè)跟蹤對(duì)象所在位置,并將檢測(cè)結(jié)果傳輸?shù)侥繕?biāo)跟蹤模塊,以輔助目標(biāo)跟蹤模塊實(shí)現(xiàn)穩(wěn)定的動(dòng)態(tài)目標(biāo)跟蹤,目標(biāo)跟蹤模塊用于實(shí)時(shí)更新跟蹤對(duì)象的位置變化,并回傳信息以便進(jìn)行無(wú)人機(jī)的飛行控制,流程圖如圖3所示。
圖3 流程圖
目標(biāo)檢測(cè)算法基于YOLO v3[14],其主要功能是檢測(cè)視頻中的對(duì)象,并找到對(duì)象所在位置(即提取邊界框)。目標(biāo)檢測(cè)算法接受2D圖像作為輸入,輸出為檢測(cè)到的邊界框的坐標(biāo)列表。
YOLO v3在進(jìn)行對(duì)象類(lèi)別預(yù)測(cè)時(shí),使用獨(dú)立的logistic分類(lèi)器替代softmax分類(lèi)器,使得YOLO v3在分類(lèi)上具有更好的性能,logistic分類(lèi)器公式:
本文在YOLO v3的基礎(chǔ)上,進(jìn)行了如下改進(jìn):
(1)使用Keras重新檢測(cè)網(wǎng)絡(luò)。
(2)輸出檢測(cè)到的對(duì)象所在包絡(luò)矩形的坐標(biāo)列表(,,,),用于目標(biāo)跟蹤算法的跟蹤框,提高目標(biāo)跟蹤的魯棒性。
(3)將多個(gè)對(duì)象的檢測(cè)更改為單個(gè)對(duì)象的檢測(cè),使得目標(biāo)檢測(cè)算法只檢測(cè)單個(gè)對(duì)象,增加了算法的執(zhí)行速度,也減少了檢測(cè)出的其他對(duì)象對(duì)目標(biāo)監(jiān)測(cè)的干擾。
目標(biāo)跟蹤采用了KCF算法,KCF目標(biāo)跟蹤算法通過(guò)線性脊回歸模型實(shí)時(shí)更新被跟蹤對(duì)象,使用循環(huán)矩陣和內(nèi)核函數(shù)減少計(jì)算的次數(shù),這使得KCF目標(biāo)跟蹤算法達(dá)到了較快的速度。
通過(guò)循環(huán)矩陣的定義可知,式(7)為循環(huán)矩陣。
在進(jìn)行目標(biāo)跟蹤之前,需要手動(dòng)選擇感興趣區(qū)域(Region of Interest, ROI),選定后,目標(biāo)跟蹤算法會(huì)對(duì)ROI中的對(duì)象進(jìn)行跟蹤。
KCF算法存在的一個(gè)問(wèn)題是:在算法運(yùn)行過(guò)程中目標(biāo)框的大小是固定的,而跟蹤的物體的大小可能發(fā)生變化,這會(huì)導(dǎo)致跟蹤框的漂移。本文的改進(jìn)方案是在進(jìn)行目標(biāo)跟蹤之前,先進(jìn)行目標(biāo)檢測(cè),使用檢測(cè)到的對(duì)象所在的矩形框坐標(biāo)列表代替跟蹤框坐標(biāo),從而減少跟蹤框的漂移。
本文在學(xué)?;@球場(chǎng)中進(jìn)行無(wú)人機(jī)的跟蹤實(shí)驗(yàn):
(1)啟動(dòng)無(wú)人機(jī)飛行至一定高度,通過(guò)手持設(shè)備向無(wú)人機(jī)發(fā)送目標(biāo)檢測(cè)的指令,無(wú)人機(jī)對(duì)操場(chǎng)上的人群進(jìn)行目標(biāo)檢測(cè),并回傳至手持設(shè)備進(jìn)行顯示。
(2)在手持端框選出跟蹤的對(duì)象,并發(fā)送跟蹤命令至無(wú)人機(jī)。
(3)無(wú)人機(jī)跟隨跟蹤對(duì)象進(jìn)行移動(dòng)。
圖4 實(shí)驗(yàn)場(chǎng)景
如圖5所示,藍(lán)色矩形框?yàn)槟繕?biāo)檢測(cè)的結(jié)果,黃色矩形框?yàn)楦檶?duì)象所在的跟蹤框,無(wú)人機(jī)飛行過(guò)程中,能夠檢測(cè)到特定對(duì)象所在位置,并能夠?qū)z測(cè)結(jié)果與目標(biāo)跟蹤算法相結(jié)合,實(shí)現(xiàn)對(duì)目標(biāo)的動(dòng)態(tài)跟蹤。
圖5 無(wú)人機(jī)目標(biāo)跟蹤結(jié)果
為了檢驗(yàn)無(wú)人機(jī)在跟蹤過(guò)程中的穩(wěn)定性,在籃球場(chǎng)實(shí)驗(yàn)的基礎(chǔ)上,分別又進(jìn)行了道路和室外停車(chē)場(chǎng)中無(wú)人機(jī)跟蹤實(shí)驗(yàn),跟蹤結(jié)果如表1所示,無(wú)人機(jī)在目標(biāo)跟蹤過(guò)程中出現(xiàn)了較少的目標(biāo)丟失,實(shí)現(xiàn)了較為穩(wěn)定的目標(biāo)跟蹤。
表1 跟蹤目標(biāo)丟失情況
最后,對(duì)目標(biāo)檢測(cè)模塊和目標(biāo)跟蹤模塊的改進(jìn)效果進(jìn)行了分析:
(1)目標(biāo)檢測(cè)模塊改進(jìn)效果與分析
圖6 目標(biāo)檢測(cè)結(jié)果
目標(biāo)檢測(cè)模塊與目標(biāo)跟蹤模塊的改進(jìn)效果如圖6所示,圖6(a)是多目標(biāo)檢測(cè),使用Keras重寫(xiě)的YOLO網(wǎng)絡(luò)進(jìn)行目標(biāo)檢測(cè)的結(jié)果,檢測(cè)評(píng)價(jià)結(jié)果如下:
①花費(fèi)時(shí)間:2.88s。
②按從左到右、從上到下順序藍(lán)色包絡(luò)矩形中對(duì)象的置信度如圖7(a)所示。
圖7 (b)更改為單目標(biāo)檢測(cè),檢測(cè)評(píng)價(jià)結(jié)果如下:
①花費(fèi)時(shí)間:2.56s。
②按從左到右、從上到下順序藍(lán)色包絡(luò)矩形中對(duì)象的置信度如圖6(b)所示。
改進(jìn)效果分析:如上所示,基于Keras重寫(xiě)的YOLO v3網(wǎng)絡(luò),可以實(shí)現(xiàn)對(duì)場(chǎng)景中物體的檢測(cè),得到檢測(cè)出的對(duì)象是相應(yīng)物體的置信度,以及該物體所在位置坐標(biāo);在實(shí)現(xiàn)YOLO v3目標(biāo)檢測(cè)功能的同時(shí),也便于在研究過(guò)程中定制所需的功能,可以更方便的與目標(biāo)跟蹤算法進(jìn)行結(jié)合;將多類(lèi)別的識(shí)別更改為單個(gè)類(lèi)別,即只對(duì)人的識(shí)別,在一定程度上提高了算法的速度,檢測(cè)時(shí)間對(duì)比如圖7所示。
圖7 速度對(duì)比折線圖
(2)目標(biāo)跟蹤模塊改進(jìn)效果與分析
本文對(duì)單獨(dú)的KCF目標(biāo)跟蹤算法以及結(jié)合了目標(biāo)檢測(cè)的KCF目標(biāo)跟蹤算法分別進(jìn)行了測(cè)試:
圖8 動(dòng)態(tài)目標(biāo)跟蹤結(jié)果
單獨(dú)的KCF目標(biāo)跟蹤算法,結(jié)果圖片如圖8(a)所示。結(jié)合了YOLO目標(biāo)檢測(cè)算法的KCF目標(biāo)跟蹤算法,結(jié)果圖片如圖8(b)所示。為了更好的顯示效果,采用把目標(biāo)檢測(cè)算法的結(jié)果框值(,,,)做變換(+,+5,-10,-10)后作為目標(biāo)跟蹤的跟蹤框,因此左邊藍(lán)色矩形框?yàn)槟繕?biāo)檢測(cè)結(jié)果框,黃色矩形框即為目標(biāo)跟蹤框。
改進(jìn)效果分析:相比于單獨(dú)的KCF目標(biāo)跟蹤算法,結(jié)合了YOLO目標(biāo)檢測(cè)算法的KCF算法可以減少跟蹤過(guò)程中跟蹤框的漂移,使得跟蹤框與跟蹤對(duì)象大小同步變化,減少了負(fù)樣本的干擾,而且在一定程度上增加了跟蹤目標(biāo)丟失時(shí)找回跟蹤目標(biāo)的概率,達(dá)到更加穩(wěn)定的目標(biāo)監(jiān)測(cè)效果。
本文設(shè)計(jì)了基于視覺(jué)的無(wú)人機(jī)跟蹤系統(tǒng),完成了無(wú)人機(jī)硬件系統(tǒng)的搭建及核心算法的改進(jìn),并對(duì)室外場(chǎng)景中的行人進(jìn)行了動(dòng)態(tài)的跟蹤實(shí)驗(yàn)。首先,基于機(jī)載計(jì)算機(jī),實(shí)現(xiàn)了無(wú)人機(jī)實(shí)時(shí)處理和分析視頻數(shù)據(jù),并融合改進(jìn)的目標(biāo)檢測(cè)算法和目標(biāo)跟蹤算法,增加了目標(biāo)跟蹤的穩(wěn)定性,實(shí)現(xiàn)了室外場(chǎng)景中無(wú)人機(jī)目標(biāo)跟蹤的穩(wěn)定性。所設(shè)計(jì)的目標(biāo)檢測(cè)與跟蹤算法雖然能夠?qū)崿F(xiàn)對(duì)特定目標(biāo)穩(wěn)定、動(dòng)態(tài)的跟蹤,但仍存在一定的不足,在跟蹤過(guò)程中如果發(fā)生目標(biāo)丟失,系統(tǒng)缺少找回丟失目標(biāo)的完備方案,后續(xù)的研究將進(jìn)一步解決這個(gè)問(wèn)題。
[1]劉亞偉, 李小民, 陳為元.基于改進(jìn)CamShift融合Kalman濾波的無(wú)人機(jī)目標(biāo)跟蹤研究[J].電光與控制, 2017(8):33-37.
[2]Song K C , Yan Y H , Chen W H , et al. Research and Perspective on Local Binary Pattern[J]. Acta Automatica Sinica, 2013, 39(6):730-744.
[3]Vo B N , Vo B T , Phung D . Labeled random finite sets and the bayes multi-target tracking filter[J]. IEEE Transactions on Signal Processing, 2014, 62(24):6554-6567.
[4]基于視頻圖像動(dòng)態(tài)目標(biāo)檢測(cè)與跟蹤算法的硬件實(shí)現(xiàn)研究[D].電子科技大學(xué), 2012.
[5]Dong H , Shaorong X , Chao L I , et al. Target Detection and Tracking Based on ABCshift Algorithm[J]. Computer Engineering, 2011, 37(4):203-205.
[6]You Only Look Once: Unified, Real-Time Object Detection[C]// 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE Computer Society, 2016.
[7]王黎, 陸慧娟, 葉敏超,等. Faster-RCNN的癌癥影像檢測(cè)方法[J].中國(guó)計(jì)量學(xué)院學(xué)報(bào), 2018, v.29;No.90(02):30-35.
[8]Akcay S , Kundegorski M E , Willcocks C G , et al. Using deep Convolutional Neural Network architectures for object classification and detection within X-ray baggage security imagery.[J]. IEEE Transactions on Information Forensics & Security, 2018, PP(99):1-1.
[9]Du Juan. Understanding of Object Detection Based on CNN Family and YOLO (J). Journal of Physics Conference Series, 1004, 2018.
[10]姚紅革, 郝重陽(yáng), 雷松則,等.序列圖像中彩色目標(biāo)跟蹤的加權(quán)顏色分布方法[J].中國(guó)圖象圖形學(xué)報(bào), 2018, 14(1):99-105.
[11]Output Constraint Transfer for Kernelized Correlation Filter in Tracking[J]. IEEE Transactions on Systems Man & Cybernetics Systems, 2016, 47(4):693-703.
[12]Zhou T , Zhu M , Zeng D , et al. Scale Adaptive Kernelized Correlation Filter Tracker with Feature Fusion[J]. Mathematical Problems in Engineering, 2017, 2017:1-8.
[13]Henriques, Jo?o F, Caseiro R, Martins P , et al. High-Speed Tracking with Kernelized Correlation Filters[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2014, 37(3):583-596.
[14] Redmon J , Farhadi A . YOLOv3: An Incremental Improvement[J]. 2018.