呂艷輝,賈旭東,李 彬
(沈陽理工大學信息科學與工程學院,沈陽 110159)
近年來,隨著無人機技術的逐漸成熟,無人機已被廣泛地應用于各個領域。利用無人機航拍的視頻對目標進行跟蹤,無論是在軍事領域還是在民用領域,都發(fā)揮著巨大作用。目標跟蹤任務可以分為兩類:一類是多目標跟蹤[1],另一類是單目標跟蹤[2]。與多目標跟蹤相比,更傾向于單目標跟蹤,因為在視頻序列中,往往更專注于出現的某一個體的運動情況。目前,目標跟蹤的研究方法主要分為兩類,一類是基于目標檢測結果的目標跟蹤方法[3-4],另一類是基于孿生網絡[5]和相關濾波的目標跟蹤方法,兩者各有優(yōu)點,前者精度更高,后者速度更快。
目標檢測算法以2012 年的AlexNet 網絡為分界線[6],之前的稱為傳統(tǒng)的目標檢測算法,之后的稱為基于深度學習的目標檢測算法。基于深度學習的目標檢測算法主要分為兩類,即單階段和雙階段。其中,YOLO 和SSD 屬于單階段的目標檢測算法[7-8],R-CNN、Fast R-CNN 以及Faster R-CNN 均屬于雙階段的目標檢測算法[9-11]。在雙階段目標檢測算法中,以Faster R-CNN 最具代表性,但由于網絡模型本身的設計問題,對小目標的檢測以及實時性方面都存在一定的不足。
在單階段的目標檢測算法中,以YOLO 系列的算法最為成功。輕量化的網絡模型以及單階段天生優(yōu)秀的設計結構使算法不斷刷新檢測速度和精度。以VOC07 數據集為例,YOLOv1 的mAP 僅為66.4,遠低于雙階段檢測算法。而隨著YOLOv2 的提出,mAP 就達到了78.6,此時該精度已經超過了雙階段的目標檢測算法。YOLOv3 不但保持了精度,而且在檢測速度上比雙階段檢測算法R-CNN 快1 000 倍,比Fast R-CNN 快100 倍,既達到了雙階段的檢測精度,又使檢測速度得到大幅度提升[12]。
此外,在基于深度學習的單目標跟蹤算法中,基于孿生網絡的SiamFC 是單目標跟蹤中又一研究方向[5],后續(xù)很多基于深度學習的單目標跟蹤算法的提出都是以該算法為基礎。例如SiamMask,SiamRPN,Dimp 等[13-15]。雖然目前基于孿生網絡的單目標跟蹤算法有著比較好的跟蹤效果,但是由于網絡得到的信息全部由第1 幀提供,得到的信息量實在太少。因當前目標跟蹤領域樣本不足導致精度不高,跟蹤速度難以滿足實時性要求。
單目標跟蹤方法中,還有核相關濾波方法以及在此基礎上與深度學習相結合的算法。這類算法因為運算量大,要求設備算力高,很多都需要在線微調網絡參數,所以速度不是很理想,實際應用中還有些局限性。
鑒于此,本文基于深度學習的目標檢測網絡YOLOv4[16],針對無人機航拍視頻中的某一車輛目標,研究其目標跟蹤方法。對于單目標跟蹤,首先要檢測到該目標并且知道該目標的種類,然后通過將幀與幀之間同一個目標關聯起來,并在它所屬的目標類別中找到并標注,來實現目標跟蹤。所以,本文主要研究目標預測算法、抗遮擋算法以及圖像匹配算法。
K 鄰域搜索算法的不足是只能對當前幀中目標可能出現的位置區(qū)域進行簡單估計,而不會將視頻前后幀該區(qū)域中出現的目標檢測結果進行關聯。這樣,如果有與跟蹤目標外觀相同的目標存在,就會產生干擾。
基于K 鄰域搜索算法,本文結合IoU 和中心點偏移思想,提出K 鄰域目標預測算法,對跟蹤目標進行區(qū)域搜索及預測,該算法可以有效彌補K 鄰域搜索算法的不足?;贙 鄰域的目標預測算法的具體執(zhí)行過程如下。
Step 1 根據前一幀跟蹤框的大小,計算出k=2時該跟蹤框所對應的K 鄰域范圍,并將當前幀檢測范圍縮小至該K 鄰域內。
Step 2 如果當前幀在該K 鄰域內只有一個目標被檢測出來(目標的檢測框至少有2/3 區(qū)域在K鄰域范圍內),那么該目標就是前一幀的目標,繪制跟蹤框,繼續(xù)執(zhí)行Step 1;如果當前幀在該K 鄰域內出現兩個以上目標,則執(zhí)行Step 3。
Step 3 將K 鄰域內的目標分別與跟蹤(模板)目標進行相似度計算,得到相似度得分,并進行排序。
Step 4 將排好序的相似度得分所對應的目標檢測框與前一幀的跟蹤框做IoU 和中心點的歐氏距離;取歐氏距離最小的中心點對應的檢測框,并和前面的圖像匹配所計算出的相似度以及最大的IoU 相結合,來判斷哪一個檢測框檢測的是跟蹤目標,判斷順序為:先比較圖像的相似度,然后根據IoU 排除相似車輛,最后用中心點的歐氏距離選擇跟蹤目標。
Step 5 接收下一幀并繼續(xù)執(zhí)行Step 1~Step 4,直到視頻結束。
IoU 的計算如式(1)所示。
其中,gt 是前一幀的跟蹤框;bb 是當前幀在K 鄰域范圍內出現的檢測框;用gt 和K 鄰域內的檢測框分別進行IoU 的計算,并選擇IoU 值最大的檢測框進行保留,滿足式(2):
其中,IoU()為檢測框與前一幀跟蹤框的交并比;gt為前一幀的跟蹤框;bbn為當前幀在K 鄰域內出現的第n 個檢測框;n 為K 鄰域內的檢測框總個數。
除了計算檢測框與跟蹤框的交并比之外,還應該考慮前一幀的跟蹤框的中心點坐標和當前幀中K鄰域范圍內的各個檢測框的中心點坐標的歐氏距離。運動中的車輛無論是按照當前的運動狀態(tài)保持直行,還是突然改變運動方向,跟蹤框與檢測框的中心點在圖像上的x,y 坐標不會發(fā)生很大變化,則二者之間最近的歐氏距離所對應的當前幀檢測框檢測的就是上一幀目標車輛。計算公式如式(3)所示。
其中,d 為兩點的歐氏距離;cgt為前一幀跟蹤框的中心點;cbb為當前幀檢測框的中心點。取距離最小的中心點對應的檢測框,并和前面的圖像匹配所計算出的相似度以及最大的IoU 相結合,來判斷哪一個檢測框檢測的是前一幀的跟蹤目標。
在K 鄰域搜索算法中,如果在K 鄰域內出現與模板車輛類型相同的車,若該車和模板的相似度更大,那么使用K 鄰域進行篩選,就會導致跟蹤錯誤,如圖1 所示。
圖1 中,gt 為上一幀中的跟蹤框,綠色虛線矩形框為gt 的K 鄰域,當前幀中的兩個檢測框bb1 和bb2 是兩輛相同的車,經過篩選后,仍會產生干擾目標。因為如果假設bb1 中的目標是真正的跟蹤目標,那么bb2 就是干擾目標,若bb2 與gt 中的目標相似度更大,那么就會誤認為bb2 是跟蹤目標,導致最終失去真正的目標。
基于K 鄰域的目標預測算法結合了IoU 以及跟蹤框與檢測框中心點偏移的思想,因此,該算法不僅縮小了檢測范圍,還將前一幀跟蹤框與當前幀的檢測框關聯起來,通過比較它們之間的IoU 大小以及與中心點的歐氏距離,加強了限制條件,進而提高了預測算法的準確度,如圖2 所示。
圖2 基于K 鄰域的目標預測算法示意圖Fig.2 Schematic diagram of target prediction algorithm based on K neighborhood
在目標跟蹤領域,對于跟蹤目標被遮擋的情況一直都是該領域的一個難點。目標一旦被遮擋,在其重新出現的時候能否準確地找到該目標是抗遮擋算法的關鍵,本文提出一種基于車輛運動狀態(tài)估計的抗遮擋算法。
本文研究的目標跟蹤算法是基于YOLOv4 目標檢測算法實現的,目標跟蹤的前提是能檢測到該目標,然后經過預測算法及圖像匹配完成目標跟蹤。當目標消失時,根據目標消失之前的坐標及前n 幀的運動狀態(tài)估計在遮擋期間目標的運動狀態(tài)及坐標,直到目標出現。該算法的執(zhí)行步驟如下:
Step 1 基于YOLOv4 進行目標檢測,框選出要跟蹤的目標車輛。
Step 2 跟蹤目標是否發(fā)生遮擋,如果是,執(zhí)行Step 3;否則,在跟蹤開始后,每20 幀記錄一次車輛在視頻中移動的平均速度。
Step 3 跟蹤目標被遮擋是否超過50 幀,如果是,執(zhí)行Step 4;否則,估計目標在遮擋期間的移動軌跡及坐標,同時獲取當前估計位置的K 鄰域。如果車輛被重新檢測并且被K 鄰域捕獲到,則進行目標匹配,若匹配成功則繼續(xù)進行跟蹤;否則,執(zhí)行Step 4。
Step 4 開啟全圖搜索和匹配。
Step 5 接收下一幀并繼續(xù)執(zhí)行Step 1~Step 4,直到視頻結束。
基于車輛運動狀態(tài)估計的抗遮擋算法在跟蹤開始超過20 幀之后,進行每20 幀記錄一次車輛在視頻中移動的平均速度,依據此方式,當目標在視野中消失時,保存消失時的坐標以及前20 幀的移動速度。如果目標消失在50 幀以內(大約3 s),根據消失前的跟蹤框生成一個估計框,估計在消失期間的移動軌跡及坐標,讓這個估計框根據遮擋之前的車輛運動狀態(tài)而移動,同時根據估計框獲得一個K=2 的搜索范圍,保持監(jiān)聽,直到檢測到出現在該搜索范圍內的目標,再進行匹配,若未匹配成功,則開啟全圖匹配,解除坐標和運動速度的記錄,由圖像匹配算法自行尋找,繼續(xù)重復上述跟蹤方式。
在目標跟蹤過程中,如果在K 鄰域內有多個目標被檢測出來,則需要找到與選定的跟蹤模板目標最相似的目標以更新當前幀的跟蹤框。本文提出一種多特征融合的圖像匹配算法,該算法采用顏色直方圖特征和HOG 特征融合的方式,進行模板與檢測目標的相似度計算。多特征融合的圖像匹配算法的執(zhí)行步驟如下。
Step 1 框選完要跟蹤的目標(模板)之后,對該模板進行顏色直方圖特征和HOG 特征的提取,并將這兩種特征轉換為特征向量。
Step 2 在后續(xù)幀中,將檢測出的同類別目標截取為圖片,同樣提取各個目標的顏色直方圖特征和HOG 特征,并得到特征向量。
Step 3 分別計算跟蹤目標和Step 2 中得到的所有目標之間的顏色直方圖特征相似度與HOG 特征相似度,并進行加權得分。
Step 4 將Step 3 中得分最多的目標作為當前幀匹配到的跟蹤目標。
Step 5 進行到下一幀并繼續(xù)執(zhí)行Step 1~Step 4,直到視頻結束。
其中,顏色直方圖特征的提取及相似度的計算方法如下。先對圖像尺寸進行統(tǒng)一,然后統(tǒng)計每個R、G、B 原色在兩幅圖片中出現的次數,這樣就構成了3 種原色在圖片中出現頻率的直方圖,這3 種顏色直方圖即為該幅圖像的直方圖特征,然后計算直方圖的余弦相似度。首先獲取直方圖的“指紋”信息,每種原色像素值的取值范圍是0~255,將這個范圍分成4 個范圍相等的區(qū),即[0,63](0 區(qū)),[64,127](1 區(qū)),[128,191](2 區(qū)),[192,255](3區(qū))。對于圖像中出現的任何一種顏色,一定屬于這4 個區(qū)中其中的一個,然后統(tǒng)計每個區(qū)出現的像素數,最后得到一個64 維的向量,即為該直方圖的指紋。得到待比較的兩幅圖像的指紋后,通過計算兩個向量之間的相似度,就可以得到兩幅圖像的相似度。假設P[P1,P2,…,Pn]和Q[Q1,Q2,…,Qn]是兩個n 維向量,則P 與Q 夾角θ 的余弦如式(4)所示。
HOG 特征的提取及相似度的計算方法如下。在得到HOG 特征描述子后,計算特征描述子之間的歐氏距離,距離越小,則兩幅圖片越相似。兩個HOG特征向量的歐氏距離公式如式(5)所示。
其中,xi、yi為HOG 特征向量的兩個坐標值。
對每個篩選完畢參與計算的候選框,提取其特征與模板進行顏色直方圖特征的余弦相似度計算和HOG 特征的歐式距離相似度計算后,分別乘以其對應的權重,相加得到最后的相似度得分。如式(6)所示。
式中,Si為第i 個候選框中的圖像和跟蹤目標的總相似度得分;W1為顏色直方圖特征相似度權重系數,值為1;W2為HOG 特征相似度權重系數,值為2;S 為括號內參數的相似度計算函數;S(ci,ct)為第i 個候選框和跟蹤目標t 的顏色直方圖特征相似度函數;ci為當前幀檢測框的中心點;ct為前一幀跟蹤框的中心點;S(hi,ht)為第i 個候選框和跟蹤目標t的HOG 特征相似度函數;hi為第i 個候選框的HOG特征;ht為跟蹤目標的HOG 特征。最后,選擇相似度總得分最多的候選框更新為當前幀的跟蹤框。
本文實現目標跟蹤方法的平臺是R740 服務器,該服務器的配置如下頁表1 所示。
表1 R740 服務器配置表Table 1 Configuration table of R740 server
本文使用的目標檢測算法是AlexeyAB 發(fā)布的darknet-Yolov4 的C 語言版本,其權重yolov4.weights 由官方提供且已經過訓練。該模型的準確度可以達到65.7% mAP@0.5 (43.5% AP@0.5:0.95),其檢測效果可以滿足本文的檢測要求。實驗選用無人機拍攝的幾個不同場景進行測試。圖3~圖5 分別給出了城市公路場景、城市公路交通擁堵場景以及高速公路車輛全遮擋情況,其中,圖3 和圖5 來源于單目標跟蹤測試集中的OTB 系列。在上述場景對跟蹤速度進行測試,程序處理速度約為24.4 幀/s,能夠滿足實時性的要求。
圖3 城市公路場景Fig.3 Scenarios of urban roads
圖3 中第370 幀是無遮擋情況下的跟蹤效果,第400 幀和420 幀是交通燈對車輛有部分遮擋情況下的跟蹤效果。
由圖4 可以看出,利用多特征融合的圖像匹配算法結合K 鄰域目標預測算法,即使在目標車輛附近出現顏色相同外形相似的車輛,依然能夠很好地進行跟蹤。
圖4 城市公路交通擁堵場景Fig.4 Traffic congestion scenarios of urban roads
如圖5 所示,第134 幀中車輛即將消失,第140 幀是車輛被完全遮擋時,抗遮擋算法對車輛的運動估計,第144 幀是當車輛從遮擋物中駛出時,由估計框生成的K 鄰域將再次檢測到的目標捕獲,并與模板目標進行匹配??梢钥闯?,抗遮擋算法在一定程度上可以解決目標的全遮擋問題。
圖5 高速公路車輛全遮擋情況Fig.5 Full occlusion of expressway vehicles
表2 給出了本文跟蹤算法在各場景中的跟蹤準確率。
表2 各場景的跟蹤準確率Table 2 Tracking accuracy of each scenario
由表2 可知,本文提出的目標跟蹤算法對車輛跟蹤的平均準確率為91.1%。表3 給出了本文算法與其他算法跟蹤準確率對比。
表3 各算法的跟蹤準確率對比Table 3 Comparison of tracking accuracy of each algorithm
由表3 可以看出,與傳統(tǒng)的TLD 算法和基于孿生網絡的單目標跟蹤算法相比,本文跟蹤算法跟蹤精度平均提高了6.35%。
本文從深度學習的目標檢測網絡YOLOv4 出發(fā),針對無人機航拍視頻中的某一車輛目標研究其目標跟蹤方法。分別提出K 鄰域目標預測算法、基于車輛運動狀態(tài)估計的抗遮擋算法以及多特征融合的圖像匹配算法。通過將上述算法進行結合,實現了基于檢測結果的單目標跟蹤算法。通過在不同的拍攝場景下運行該算法,效果良好,平均準確率達到91.1%,處理速度約為24.4 幀/s,準確率較其他跟蹤算法提升了6.35%,且滿足實時性的要求。
本文提出的目標跟蹤方法,能夠快速、準確地在無人機拍攝的視頻中對某一車輛目標進行跟蹤,具有很好的通用性和可擴展性。但是本算法仍具有一定的局限性,本文僅在幾種相對簡單場景中進行了測試,未來還需要對更復雜的車輛運動行為進行深入研究。