余 浩 王天樂 邵建新 張 磊 楊雅雯 王 越
南通大學機械工程學院 江蘇南通 226019
隨著無人機技術的迅速發展,無人機在越來越多的領域發揮其重要作用。而無論軍事領域還是民用領域,使用目標識別跟蹤技術的無人機都已屢見不鮮。軍用無人機在情報偵察、信息對抗、要員監察等領域發揮了重大作用;民用無人機則在車輛監控、野外救援、攝影和公共安全等領域發揮了重大作用。
我國自主研究無人機系統起步相對較晚,20世紀70年代,才正式開始進行自主開發研制無人機和偵察機,80年代初開始裝備空軍部隊。近年來,我國研制出并投入使用的無人化飛機型號已多達百種,日常生活中無人機也屢見不鮮了。本無人機從相機傳感器中獲取信息并提取處理,其主要原理包含數字圖像處理、傳感器技術、概率論與數理統計、數字信號處理等多個領域學科。
目標檢測算法主要分為兩大類:一種是two-stage目標檢測,還有一種是one-stage目標檢測。two-stage目標檢測因為用到的CNN特征會產生候選區域,所以需要通過卷積神經網絡提取對候選區域目標的特征的描述。而one-stage目標檢測經過單次檢測直接預測出目標的類別與位置。相比two-stage目標檢測,one-stage檢測精度低但速度快。
YOLO系列是one-stage目標檢測的代表算法之一,從YOLOv1到YOLOv2演化過程中,細節和網絡結構方面都有很大改善。YOLOv2算法是將物體作為一個回歸物體求解,當輸入圖像時,卷積層提取圖像信息,全連接層用來預測圖像位置和類別概率值。相比YOLOv1,YOLOv2在檢測精度和運行效率上提升10%和12%。YOLOv2改善了最先進的Bag-of-Freebies和Bag-of-Specials方法,使其在單CPU上能夠運行。在網絡結構方面保留了YOLOv3的head部分,修改了主干網絡為CSPDarknet53,同時采用了SPP(空間金字塔池化)的思想來擴大感受視野,PANet作為neck部分。
目標跟蹤的方法主要分為經典算法,是基于核相關濾波算法和深度學習的跟蹤算法。其中基于核相關濾波算法是衡量兩個信號的相似度,相似度越高相關值越大。KCF便是基于相關濾波的一種跟蹤算法。KCF全稱為Kernel Correlation Filter核相關濾波算法,在2014年由Joao F.Henriques、Rui Caseiro、Pedro Martins和Jorge Batista提出來的。KCF是一種鑒別式追蹤方法,這類方法主要追蹤給出的樣本去訓練一個目標檢測器,其中運用的循環矩陣和相關濾波是KCF的主要特點。
KCF將給出的樣本進行上下左右平移(如圖1),每一幀的位置用于訓練目標檢測器。這種平移可轉化為循環矩陣,利用傅里葉空間可對角化的性質將矩陣的運算轉化為向量的哈達瑪積。這樣大大降低了運算量,提高了速度。

圖右平移
相關濾波是用來描述兩個信號之間的相關性。KCF檢測第一幀時,其位置記為patch 0。在后續圖像幀上,有patch 1~patch n共計n個patch,那么KCF預測的位置即為與patch 0相關值最高的patch。Patch predict=max(correlation(patch 0,patch k)),1≤k≤n)。
在計算patch 0與patch k(1≤k≤n)的相關值時,轉換到了傅里葉域進行。因為兩個patch的相關卷積相當于傅里葉域中的元素乘積(時域卷積=頻域點積),而乘積計算大大快于卷積運算。
為保證程序能在無人機中實現,需要在MATLAB上仿真運行。首先是貓狗識別,在MATLAB上提取特征制成圖像集,運用MATLAB自帶YOLOv2算法進行仿真。以下是訓練過程(圖2)和模型損失曲線(圖3):

圖2 單CPU訓練過程

圖3 模型損失曲線
訓練完成后,用一張貓圖片進行測試(圖4),可以看出訓練成功。但由于訓練圖像使用圖片較少,提取特征不多,所以損失曲線較為平滑圖像識別率不高。接下來是人臉識別的仿真運行,此識別運用PCA和Adaboost迭代算法進行訓練,訓練完成可識別人臉,至此仿真運行結束。

圖4 貓圖像測試
首先需要訓練自己的卷積神經網絡構架,通過采集給定樣本相關的視覺信息整理至一個文件夾,即數據集。通過darknet框架實現YOLO的訓練過程中,需要使用yolo mark形成符合YOLO格式的標注文件并對每張圖片進行標注。在神經網絡訓練完畢之后,在ROS框架下使用YOLO,需要將ROS與darknet結合,這里我們使用現有ROS包darknet ros。將得到的模型通過darknet框架與攝像頭結合進行識別,這時我們便能從預覽窗口顯示預測目標的位置了。
安裝并打開qgroundcontrol軟件,查看并校對固件。校準磁羅盤、陀螺儀、加速度計、地平線,完成無人機的初步校準。
準備一個顯示器,用HDIM線連接機載電腦與顯示器,再連接鼠標與鍵盤,打開nomachine軟件(圖5)連接無人機機載電腦,將于基于YOLOv2與KCF的無人機圖像識別與實時跟蹤程序導入無人機飛控中實現目標。

圖5 Nomachine軟件界面
在終端的預覽窗口中框選(主要運用onMouse函數實現框選)所要跟蹤的物體后實現跟蹤。KCF算法實現目標跟蹤:在ROS主循環中發布跟蹤目標的位置及狀態標志位發布出去,讓跟蹤節點進行定位。使用vision cb函數訂閱跟蹤節點并發布位置偏移,用于生成控制指令進行跟蹤。
本文采用當前目標檢測領域中準確度和實時性均有較好表現的YOLOv2模型,并在MATLAB上進行仿真模擬。我們在無人機中將圖像識別和目標跟蹤結合,當框選圖像目標時,無人機搭載的KCF目標跟蹤算法能實時自動跟蹤。我們擴展無人機的檢測能力:將人臉識別加入無人機檢測,但由于龐大的人臉數據,我們只能訓練較少的人像。后續此識別可運用于野外救援、軍事勘察、嫌疑人查找、要員安全監察等領域。因此,基于YOLOv2與KCF的無人機圖像識別與實時跟蹤研究具有較強的理論探索意義和工程應用價值。