王旭辰 韓煜祺 唐林波 鄧宸偉
(北京理工大學信息與電子學院雷達技術(shù)研究所,北京 100081)
隨著科技的進步,計算機逐漸可以代替人類的視覺系統(tǒng)去處理各種圖像、視頻信息。其中多目標跟蹤是目前計算機視覺領(lǐng)域研究的主要內(nèi)容之一。在生活中,各大城市的機動車保有量與日俱增。然而交通系統(tǒng),尤其是交通監(jiān)管系統(tǒng)發(fā)展較為緩慢。面對持續(xù)增長的機動車總量,在重要道路口安裝固定相機進行車輛監(jiān)管的方法明顯無法滿足目前需求。
隨著多翼無人機技術(shù)的發(fā)展,為解決車輛監(jiān)管問題提供了新思路。與路口固定相機相比,無人機有著小巧靈活、視角廣、可快速移動部署等優(yōu)點,有助于采集更全面的車輛信息。同時在軍用領(lǐng)域中,無人機技術(shù)和計算機視覺技術(shù)的結(jié)合,可以完成對地面目標快速跟蹤和精準打擊,在地面?zhèn)刹?、敵我識別、精準制導等方面均有重要的應(yīng)用。因此,無論從民用還是軍事領(lǐng)域,基于無人機視角下的多目標檢測和跟蹤技術(shù)都有著重要的應(yīng)用場景。
近年來,國內(nèi)外學者對多目標跟蹤領(lǐng)域進行了深入研究,并提出大量算法。多目標跟蹤主要基于“Tracking-By-Detection”策略,即基于檢測的多目標跟蹤。其中分為傳統(tǒng)多目標跟蹤算法和基于深度學習的多目標跟蹤算法。傳統(tǒng)的多目標跟蹤算法,主要通過傳統(tǒng)的數(shù)據(jù)關(guān)聯(lián)方式,關(guān)聯(lián)幀和幀之間的檢測結(jié)果。主要有聯(lián)合數(shù)據(jù)關(guān)聯(lián)[1](JPDA,Joint Probabilistic Data Association)、多假設(shè)跟蹤(MHT,Multiple Hypothesis Tracking)等?;谏疃葘W習的多目標跟蹤算法主要基于圖像特征設(shè)計端到端的卷積神經(jīng)網(wǎng)絡(luò)對目標進行跟蹤。2014 年,Zhang 基于雙層自編碼特征,將數(shù)據(jù)關(guān)聯(lián)問題建模成求解最小生成樹問題[2],首次將深度學習用于多目標跟蹤領(lǐng)域;Xu 等人提出深度匈牙利匹配網(wǎng)絡(luò)[3](DHN,Deep Hungarian Net),確定了合適的損失函數(shù),使網(wǎng)絡(luò)實現(xiàn)端對端的訓練;Wan 等人建立一個表觀特征提取網(wǎng)絡(luò)并與深度數(shù)據(jù)關(guān)聯(lián)算法結(jié)合的端到端網(wǎng)絡(luò)。針對訓練樣本不充足的問題,采用單目標跟蹤中常用的跨幀匹配的方式,進行數(shù)據(jù)關(guān)聯(lián)[4]。Zhu等人在端到端的網(wǎng)絡(luò)中,融入空間注意力模塊,使網(wǎng)絡(luò)更加注意前景目標。引入循環(huán)網(wǎng)絡(luò),利用時間注意力機制分析目標軌跡中各個歷史信息的權(quán)重,增強了算法的魯棒性[5]。Chu 等人通過局部關(guān)聯(lián)的形式完成了K 幀的聯(lián)合數(shù)據(jù)關(guān)聯(lián),通過一個連續(xù)的外積公式來近似K 階關(guān)聯(lián)矩陣,使端到端數(shù)據(jù)關(guān)聯(lián)算法集成的更為緊密[6]。Bing 等人將多目標跟蹤中,檢測、重識別、數(shù)據(jù)關(guān)聯(lián)多個子任務(wù)合并為一個整體框架,共享任務(wù)特征,提高了網(wǎng)絡(luò)的利用率[7]。
然而對于傳統(tǒng)多目標跟蹤方法,提取目標信息較少,難以符合所有實際可能出現(xiàn)的情況[8];對于基于深度學習的多目標跟蹤方法,可以從大量數(shù)據(jù)中提取外觀、運動、交互等信息,進行建模,魯棒性較高。但是由于一般計算量較大,對硬件要求較高,實時性較差。而利用無人機對目標進行跟蹤屬于動態(tài)背景下對運動目標的跟蹤,面對障礙物遮擋視角旋轉(zhuǎn)等復雜情況,對跟蹤技術(shù)的穩(wěn)定性和準確性有著很高的要求。
基于以上的分析,結(jié)合傳統(tǒng)多目標跟蹤和基于深度學習的多目標跟蹤兩類方法的優(yōu)點,提出一種可以在無人機載平臺下,對于多個目標進行自主檢測與跟蹤的算法。數(shù)據(jù)關(guān)聯(lián)方面參考了傳統(tǒng)多目標跟蹤算法中的匈牙利匹配算法,通過增廣路徑求出檢測與跟蹤結(jié)果的最優(yōu)匹配結(jié)果。在目標信息提取方面,參考基于深度學習的多目標跟蹤算法,訓練了一個重識別網(wǎng)絡(luò),以提取不同幀的目標外觀信息,同時使用卡爾曼濾波,提取不同幀間相同目標的運動信息。并將兩個信息進行融合,通過匈牙利匹配算法得到最終跟蹤結(jié)果。檢測器使用YOLOv3算法[9],通過公開數(shù)據(jù)集和大量無人機采集的數(shù)據(jù)進行訓練。并最終在公開數(shù)據(jù)集和實地無人機采集的數(shù)據(jù)中,對于障礙物遮擋、視角旋轉(zhuǎn)、目標尺度變化三方面進行了仿真驗證,取得了良好的跟蹤效果。
本節(jié)提出了一種無人機載平臺下的多目標檢測和跟蹤算法,基于YOLOv3算法的檢測結(jié)果,對無人機視角下的多個目標進行鎖定和跟蹤。
本小節(jié)介紹基于YOLOv3算法的多目標檢測算法工作原理和工作流程。
相比于YOLOv2[10]算法,YOLOv3算法在特征提取方面,使用更深的Darknet-53 網(wǎng)絡(luò)。通過卷積層進行了五次采樣,最后通過全連接層進行目標分類。同時借鑒ResNets[11]引入殘差網(wǎng)絡(luò)結(jié)構(gòu),很大程度上增加了網(wǎng)絡(luò)的深度,解決了訓練深度網(wǎng)絡(luò)中的梯度消失問題,明顯的提升了識別的準確率。在預(yù)測方面,借鑒了FPN[12](Feature Pyramid Networks)網(wǎng)絡(luò)采用多尺度特征融合的預(yù)測方式,可以更好的提取小目標的信息,更適合應(yīng)用于無人機視角下的目標檢測。
多目標檢測算法的主要工作流程如圖1所示。
(1)通過視頻流讀取測試視頻,分別在尺度為13*13、26*26、52*52的特征圖中進行預(yù)測。
(2)以尺度為13*13的特征圖為例,將視頻幀分為169個grid cell,并在每個grid cell中預(yù)測是否由目標中心點存在,同時預(yù)測出目標屬于車輛種類的置信度。并依據(jù)網(wǎng)絡(luò)權(quán)重,預(yù)測出在每個目標的位置坐標偏移量,通過公式計算出目標框的具體參數(shù)。
(3)為了消除目標檢測中,同一目標的多余框,進行非極大值抑制處理。即首先過濾掉小于置信度閾值的檢測框,然后對于剩下所有預(yù)測框,根據(jù)預(yù)測類別為車輛的概率依次排序。將概率最大的檢測框開始分別與其余檢測框進行交并比檢測,并過濾掉大于閾值的檢測框。最后從剩余檢測框中,選取置信度最高的檢測框作為車輛檢測的最終檢測框。
本小節(jié)介紹了一種基于目標運動信息的跟蹤匹配算法,如圖2 所示。使用卡爾曼濾波根據(jù)上一幀目標位置預(yù)測本幀中目標的位置。借鑒SORT[13]算法引入馬氏距離,計算本幀目標預(yù)測位置和檢測位置之間的馬氏距離,最后根據(jù)匈牙利匹配算法進行目標運動信息匹配。
2.2.1 卡爾曼濾波
卡爾曼濾波最早于1960 由匈牙利數(shù)學家卡爾曼提出,是一種利用線性系統(tǒng)狀態(tài)方程,根據(jù)輸入輸出數(shù)據(jù),對系統(tǒng)狀態(tài)進行最優(yōu)解的估計算法。其核心思想為:根據(jù)當前時刻的測量值和上一時刻的預(yù)測值和誤差,計算得到目前時刻的最優(yōu)解,再預(yù)測下一時刻的測量值。具體步驟為:
(1)由k-1 時刻的最優(yōu)值xk-1去預(yù)測當前時刻的系統(tǒng)狀態(tài)值,見公式(1)。
(2)由k-1 時刻的誤差協(xié)方差Pk-1和噪聲Q 預(yù)測當前時刻的均方誤差。
(3)計算卡爾曼增益,見公式(3)。
(4)通過濾波估計方程計算中K時刻的最優(yōu)值,見公式(4)。
(5)通過濾波均方誤差更新矩陣,見公式(5)。
卡爾曼濾波用于根據(jù)之前視頻幀目標位置數(shù)據(jù),預(yù)測當前視頻幀中目標所在位置,再通過數(shù)據(jù)擬合和濾波估計方程計算出當前時刻目標所在位置的最優(yōu)解,即在目標檢測的基礎(chǔ)上得到更準確的預(yù)測框。
2.2.2 運動信息匹配
為了提取目標位置變化時的運動信息,計算本幀卡爾曼濾波預(yù)測出的目標位置與檢測位置之間的馬氏距離,計算如公式(6)所示:
其中,(yi,Si)表示第i個軌跡在空間內(nèi)的投影,dj表示第j個檢測框。跟蹤場景定義在八維空間(u,v,γ,h,x',y',γ')內(nèi),其中包含檢測框中心位置(u,v)、橫縱比γ、高度h、以及它們在空間坐標內(nèi)的速度。由于包含不同的量綱,所以選擇不受量綱影響的馬氏距離。通過計算檢測位置與卡爾曼濾波得出的平均軌跡位置的距離超過標準差的多少來衡量卡爾曼濾波預(yù)估目標位置的不確定性,如公式(7)所示。
如果第i個跟蹤軌跡與第j個檢測之間的關(guān)聯(lián)是允許的,則結(jié)果為1。設(shè)置t(1)為9.4877。
本小節(jié)介紹了一種基于目標外觀信息的跟蹤匹配算法。首先引入一個深度特征網(wǎng)絡(luò),用來提取目標外觀信息。然后借鑒DeepSort算法引入余弦距離,計算不同幀間所有檢測目標兩兩之間的余弦距離,余弦距離越小,則代表兩個目標為同一目標的概率越大。
2.3.1 深度特征提取網(wǎng)絡(luò)
通過引入一個基于深度學習的深度特征網(wǎng)絡(luò)來提取每幀的不同目標的外觀信息。使用Car-Reid數(shù)據(jù)集訓練了該特征網(wǎng)絡(luò),使其可以提取出得出區(qū)分度較高的車輛外觀信息。Car-Reid數(shù)據(jù)集包括了576 種不同類型外觀顏色的車輛照片組,每一種車輛照片組包含了此類車的不同角度拍攝的圖片,保證網(wǎng)絡(luò)可以最大限度的提取每一種車的各類角度的外觀信息,具體網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。
表1 目標外觀特征提取網(wǎng)絡(luò)Tab.1 Object appearance feature extraction network
網(wǎng)絡(luò)由2 個卷積層和6 個殘差塊組成,共有2,800,864個參數(shù)。在稠密層(Desne10)中計算128維的全局特征,最后通過BN層批處理和l2標準化,將外觀特性投影到單位球面上,使其與余弦外觀度量兼容。
2.3.2 外觀信息匹配
參考DeepSort 算法[14]引入余弦距離,用來描述不同幀之間的目標外觀相似度,如公式(8)所示。其中對于每幀中的每一個檢測框d(i,j),計算同時對于每一個軌跡,創(chuàng)建一個數(shù)組,用于儲存最近50幀成功關(guān)聯(lián)的目標的外觀特征向量。
d(2)(i,j)表示第i個跟蹤軌跡和第j個檢測目標之前的余弦距離。其中表示每個軌跡保存對應(yīng)目標的外觀信息。表示關(guān)聯(lián)外觀描述符的原型庫。并且根據(jù)t(2)來衡量是否允許關(guān)聯(lián)。
數(shù)據(jù)關(guān)聯(lián)方法采用傳統(tǒng)多目標跟蹤算法中的匈牙利匹配算法,匈牙利算法是基于Hall 定理中充分性證明的思想,用增廣路徑求二分圖最大匹配的算法。為了更好的融合目標運動信息和目標外觀信息,提出信息融合公式,如公式(10)所示。
其中,d(1)(i,j)為由卡爾曼濾波提取的目標運動信息而得出的馬氏距離,d(2)(i,j)為由特征提取網(wǎng)絡(luò)提取的目標外觀信息而得出的余弦距離。并引入?yún)?shù)λ,λ代表了兩種信息在進行數(shù)據(jù)關(guān)聯(lián)時所占的影響因子,在本文中λ取0.995。當λ取0.9 時外觀特征和運動信息對成本矩陣的影響因數(shù)大概均為0.5。但由于無人機視角的靈活性使得即使在匹配正確的情況下,相鄰兩幀的馬氏距離依舊很大,所以在參數(shù)選擇中刻意減小了運動信息的影響因數(shù)。但是由于提取外觀時,不可能百分百提取目標車輛的全部信息,過于的忽略運動信息會使得在匹配的過程中,遇到障礙物遮擋等情況下,ID 跳變成與目標車輛外觀特征相似的跟蹤軌跡。所以經(jīng)過大量實驗,本課題選取了較為合理的,適用于無人機視角的參數(shù)λ。最后通過得到的成本矩陣,由匈牙利匹配算法得到匹配結(jié)果。下面給出匈牙利算法的具體表示形式,如公式(11)所示。
其中ci,j為成本矩陣中,對應(yīng)位置的權(quán)重,xi,j為第i個檢測框與第j個跟蹤框的匹配結(jié)果的二進制數(shù)值。
為進一步驗證提出的無人機視角下的多目標檢測和跟蹤算法,在UAV123 數(shù)據(jù)集和實測數(shù)據(jù)集中,對于障礙物遮擋、視角旋轉(zhuǎn)、目標尺度變化三類情況進行仿真驗證。其中UAV123 數(shù)據(jù)集中選取car1、car2、car6 共3 組數(shù)據(jù),實測數(shù)據(jù)集為無人機實地采集數(shù)據(jù)共5325 幀,測試平臺CPU 為I5-7300HQ,GPU為1050Ti。
在實際應(yīng)用中,當無人機視角旋轉(zhuǎn)時,由于視角移動過快等原因,可能會出現(xiàn)檢測器在個別幀漏檢情況,導致下一幀重新識別到目標時,算法錯誤判斷成新目標,造成ID 跳變。本算法中,使用外觀信息和運動信息同時對重檢目標進行判斷,可以很大程度上避免因漏檢造成的跟蹤失效情況。
在實際采集的無人機數(shù)據(jù)下,測試算法在無人機視角旋轉(zhuǎn)下的穩(wěn)定性,測試結(jié)果如圖3 所示。可見,在第一行圖片中,290幀無人機視角發(fā)生快速橫向移動,導致本幀視野模糊同時檢測器失效。在297 幀到301 幀的過程中,依次檢測到1~3 號車,最后重新跟蹤成功。在第二行數(shù)據(jù)中,無人機視角發(fā)生旋轉(zhuǎn),從326 幀到750 幀的過程中,視野里的三輛車的暴露面逐漸改變,算法依然可以保持穩(wěn)定的檢測跟蹤效果,不發(fā)生ID跳變。
隨著無人機相對目標由遠及近的過程,會帶來目標在無人機視角中的尺度大范圍變化,容易造成跟蹤器不能很好的適應(yīng)目標的尺度變化,使得跟蹤相對于目標過大或者過小的情況。本算法中,并沒有使用一般跟蹤算法中的尺度金字塔,通過不同步長來適應(yīng)目標尺度變化。本算法通過檢測器中FPN 網(wǎng)絡(luò)分別從三個尺度上進行信息提取和融合,可以很好的適應(yīng)目標的尺寸變化。從而根據(jù)檢測器結(jié)果生成跟蹤結(jié)果。
為驗證算法穩(wěn)定性,選取了UAV123 數(shù)據(jù)集中car1和car6中,目標尺度變化較為明顯的測試視頻,來驗證本算法對于車輛目標尺度變化的跟蹤效果穩(wěn)定性,測試結(jié)果如圖4 所示??梢钥闯鲈跍y試視頻中,car1 中第8 幀到第418 幀,目標車輛在無人機視角下尺度逐漸變?。辉赾ar6 中第2 幀到第457 幀,目標車輛在尺度變化的同時還包含了輕微的視角變化。本課題算法均可以在ID 不發(fā)生跳變的情況下進行穩(wěn)定的檢測與跟蹤。
在無人機跟蹤目標的過程中,由于無人機的靈活性,使得無人機視角很容易被障礙物遮擋,此時十分考驗算法對于目標的重檢和重識別的能力。如果僅根據(jù)目標運動信息進行跟蹤,當目標通過障礙物的同時,發(fā)生運動方向的突變,會造成跟蹤算法的失效;如果僅根據(jù)目標外觀信息進行,目標中若存在相似目標,很容易在無人機視角發(fā)生遮擋后,跟蹤目標ID 跳變成外觀相似目標的ID。本算法通過儲存之前跟蹤軌跡的最近50 幀車輛外觀信息特征同時預(yù)測車輛的運動軌跡,在當無人機飛過障礙物后目標車輛再次出現(xiàn)在視角時,同時結(jié)合目標外觀信息和目標運動信息,再次重新識別匹配,使其ID不發(fā)生跳變。
UAV123 數(shù)據(jù)集中,選取在無人機視角遮擋下,即包含相似目標又包含目標遮擋后目標運動方向發(fā)生突變的情況進行測試,測試結(jié)果如圖5所示。
四號和五號車的外觀相似,均為黑色轎車。同時,四號和五號車在經(jīng)過障礙物遮擋之后,并沒有進行沿著環(huán)形車道行駛,運動方向改變成另一條匝道??梢钥闯觯v車通過障礙物后,即使存在外觀相似目標和目標運動突變的情況,本算法依然可以有效的重新檢測跟蹤,并且保持相同的ID。
無人機技術(shù)和計算機視覺技術(shù)的結(jié)合應(yīng)用,在民用和軍事領(lǐng)域均具有重要價值和研究意義。本文結(jié)合傳統(tǒng)多目標跟蹤算法和基于深度學習的多目標跟蹤算法特點,提出基于深度學習的無人機載平臺多目標檢測與跟蹤算法。數(shù)據(jù)關(guān)聯(lián)方面參考傳統(tǒng)多目標跟蹤算法,采用匈牙利匹配算法。在信息提取方面,參考基于深度學習的多目標跟蹤算法,訓練了一個重識別網(wǎng)絡(luò),以提取不同幀的目標外觀信息,同時使用卡爾曼濾波,提取不同幀間相同目標的運動信息。通過一個信息融合公式,將兩類信息轉(zhuǎn)換成為一個成本矩陣,最后通過匈牙利匹配算法得出跟蹤結(jié)果。本文提出的跟蹤算法在大量公開數(shù)據(jù)集和實際采集視頻中進行了仿真驗證,并取得了良好的跟蹤效果。