發(fā)布時間:2022-04-28所屬分類:科技論文瀏覽:1次
摘 要: 摘 要:無人機(jī)的廣泛應(yīng)用在給生產(chǎn)生活帶來便利的同時,也對公共安全構(gòu)成了威脅,這就需要對非法飛行的無人機(jī)進(jìn)行探測和識別。然而,微小無人機(jī)因體積小運動靈活,使得傳統(tǒng)的雷達(dá)、光電等探測手段難以應(yīng)對。為此,提出一種基于 YOLO(You only look once)v5 深度學(xué)習(xí)網(wǎng)絡(luò)
摘 要:無人機(jī)的廣泛應(yīng)用在給生產(chǎn)生活帶來便利的同時,也對公共安全構(gòu)成了威脅,這就需要對非法飛行的無人機(jī)進(jìn)行探測和識別。然而,微小無人機(jī)因體積小運動靈活,使得傳統(tǒng)的雷達(dá)、光電等探測手段難以應(yīng)對。為此,提出一種基于 YOLO(You only look once)v5 深度學(xué)習(xí)網(wǎng)絡(luò)框架的微小無人機(jī)實時探測方法。通過拍攝無人機(jī)飛行姿態(tài)構(gòu)建實驗數(shù)據(jù)集,并進(jìn)行標(biāo)注。隨后利用數(shù)據(jù)集對 YOLOv5 網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,并測試訓(xùn)練效果,通過數(shù)據(jù)集測試網(wǎng)絡(luò)模型能達(dá)到 94.2%的精確率、82.8%的召回率和 93.5%的平均精度均值。最后,對模型在真實場景下進(jìn)行了測試驗證,視頻流幀速率為 30 FPS(Frames Per Second)條件下,可在 30 米范圍內(nèi)準(zhǔn)確識別出特征尺寸為 200 mm 以上的無人機(jī),并具有較好的實時性。
關(guān)鍵詞:目標(biāo)檢測;YOLOv5;微小型無人機(jī);實時探測;深度學(xué)習(xí)
1 引言
隨著無線通信、飛行控制、慣性器件、智能視頻分析等技術(shù)的快速發(fā)展,當(dāng)前微小型無人機(jī)技術(shù)逐步成熟,并展示出了強(qiáng)大的功能,使其在公共安全、能源電力、農(nóng)業(yè)植保等多種行業(yè)領(lǐng)域都得到了廣泛應(yīng)用。隨著小型商用無人機(jī)的成本不斷下降,購買無人機(jī)的愛好者數(shù)量連年攀升[1],根據(jù)中國民航局的官方公布數(shù)據(jù)顯示,截至 2020 年底,我國實名登記無人機(jī) 52.36 萬架,年飛行量達(dá)到 159.4 萬小時,同比增速達(dá) 27.5%[2]。然而,隨著微小型無人機(jī)在民用領(lǐng)域爆炸式增長,監(jiān)管難度越來越大, 其對公共安全構(gòu)成了嚴(yán)重威脅,給城市安保帶來了更大的挑戰(zhàn)。例如,2021 年 4 月 3 日,杭州蕭山機(jī)場發(fā)生了因無人機(jī)黑飛導(dǎo)致多架航班空中盤旋、備降其他機(jī)場的案件,嚴(yán)重影響航空秩序,威脅機(jī)場安全[3]。因此,通過技術(shù)手段構(gòu)建無人機(jī)監(jiān)測系統(tǒng),對非法飛行的無人機(jī)進(jìn)行精確探測與反制,對確保重要目標(biāo)空域安全,保障社會安全穩(wěn)定具有重要意義。
目前,國內(nèi)外針對無人機(jī)探測的常用技術(shù)主要有雷達(dá)探測、聲學(xué)探測、無線電探測、光電探測等[4]。由于微小型無人機(jī)具有體積小,運動靈活的特點,傳統(tǒng)的手段難以探測如此小的飛行器,更不能識別此類無人機(jī)[5]。因此,微小型無人機(jī)的探測是一個亟待解決的難題。
近年來,隨著深度學(xué)習(xí)技術(shù)的飛速發(fā)展,基于深度學(xué)習(xí)的目標(biāo)檢測算法是實現(xiàn)微小無人機(jī)探測個一種可行手段。基于深度學(xué)習(xí)的目標(biāo)檢測算法主要有一階檢測方法和二階檢測方法兩類,一階檢測方法不需要單獨尋找候選區(qū)域,因此速度較快,如 SSD(Single Shot MultiBox Detector) [6]、YOLO 等。二階檢測方法則將檢測算法分兩步進(jìn)行,先要獲取候選區(qū)域,再對其進(jìn)行分類,精度上一 般 優(yōu) 于 一 階 方 法 , 如 R-CNN ( Region-based Convolutional Neural Network)、Fast R-CNN [7]等。在實際應(yīng)用中需要對采集的無人機(jī)視頻流進(jìn)行實時探測,二階算法難以滿足實時性要求,而 YOLO 系列算法近年來更新迭代很快,在主流數(shù)據(jù)集的測試效果上要優(yōu)于 SSD 算法[8]。李秋珍等人提出了兩種基于 SSD 改進(jìn)算法的實時無人機(jī)識別方法,但兩種改進(jìn)方法精度分別只有 79% 和 83.75%,作者認(rèn)為該算法識別速度基本滿足實時性要求[9]。馬旗等人提出了基于優(yōu)化 YOLOv3 的低空無人機(jī)檢測識別方法,利用殘差網(wǎng)絡(luò)及多尺度融合的方式對原始的 YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行優(yōu)化,在相同訓(xùn)練集下測試, mAP 提升了 8.29%,達(dá)到 82.15%,檢測速度為 26s-1,滿足實時性要求[10]。陶磊等人提出了基于 YOLOv3 的無人機(jī)識別與定位追蹤方法,用 YOLOv3 輸出視頻中的無人機(jī)位置信息,再用 PID 算法調(diào)節(jié)攝像頭角度實現(xiàn)無人機(jī)定位追蹤,模型在測試集上能達(dá)到 83.24%的準(zhǔn)確率和 88.15%的召回率,在配備有英偉達(dá) 1060 顯卡的計算機(jī)上能達(dá)到 20 幀每秒的速度[11]。YOLO 算法無需對目標(biāo)和背景進(jìn)行復(fù)雜的人工建模,構(gòu)建過程相對簡單,泛化能力強(qiáng),發(fā)展很快,且識別速度和識別準(zhǔn)確性方面有一定的優(yōu)勢,已應(yīng)用于多個場景,如疫情期間口罩佩戴檢測[12]、初期火災(zāi)探測[13],已成為目標(biāo)檢測的研究熱點。目前 YOLO 算法已經(jīng)更新到第五版本 YOLOv5,其體積縮小到約原來的 1/9,檢測速度得到大幅提升,精度方面也有不錯的表現(xiàn)。因此,本文提出采用第五版本的 YOLO 算法實現(xiàn)對微小型無人機(jī)的實時探測。首先,根據(jù)自行拍攝的無人機(jī)飛行時的照片構(gòu)建數(shù)據(jù)集;其次,搭建深度學(xué)習(xí)環(huán)境,使用 YOLOv5 輕量化模型對數(shù)據(jù)集進(jìn)行訓(xùn)練;最后,用訓(xùn)練得到的模型對視頻或圖片中的微小型無人機(jī)進(jìn)行探測。
2 YOLO v5 算法原理
YOLO 算法最初是由 Joseph Redmon 等人于 2016 年提出來的一種目標(biāo)識別方法[14],其創(chuàng)新性在于把檢測當(dāng)作回歸問題處理,只需一階檢測,用一個網(wǎng)絡(luò)就可快速輸出目標(biāo)位置和種類,其最大的優(yōu)勢就是通過簡潔的算法可以獲得出色的識別效果。Redmon 對算法進(jìn)行改進(jìn)依次推出了 YOLOv2[15]、YOLOv3 兩個版本。Alexey Bochkovskiy 等人推出了 YOLOv4 版本[16]。隨著 YOLO 的不斷更新迭代,其算法變得更快更精確,Glenn Jocher 在 2020 年推出了最新版本的 YOLOv5。YOLOv5 版本是基于 YOLOv4 版本改進(jìn)的,采用了 PyTorch 框架代替了 YOLOv4 版本的 Darknet 框架,網(wǎng)絡(luò)部分未作修改,僅對參數(shù)進(jìn)行調(diào)整優(yōu)化,使得檢測速度大幅提升,最快的檢測速度達(dá)到了 140FPS[17];同時,YOLOv5 把權(quán)重文件的體積進(jìn)行了縮小優(yōu)化,只有 YOLOv4 的 1/9 左右。
YOLO v5 算法檢測可分為三步:首先統(tǒng)一調(diào)整圖像的大小后進(jìn)行分割,然后用卷積神經(jīng)網(wǎng)絡(luò)提取特征,最后通過非極大值抑制(Non-Maximum Suppression, NMS)篩選重復(fù)預(yù)測的邊框,輸出最終的預(yù)測結(jié)果。算法先對所有圖像進(jìn)行尺寸調(diào)整后,將輸入圖像劃分為 S×S 個格子,不同格子只負(fù)責(zé)其對應(yīng)區(qū)域的物體識別,減少了重疊識別,大大減少了計算量。每個格子會預(yù)測其內(nèi)部是否存在目標(biāo)的位置中心坐標(biāo),若某個目標(biāo)的中心位置落入其中某一個格子,那么該物體的識別就會由這個格子來負(fù)責(zé)。每個小格子將預(yù)測 A 個假定類別的概率和 B 個邊界框,每個邊界框包含 5 個參數(shù),分別為 x,y,w,h 和 Confidence,其中(x, y)為預(yù)測邊框的中心點坐標(biāo);(w, h)為預(yù)測邊框的寬度和高度。Confidence 反映邊框中是否包含目標(biāo)以及包含目標(biāo)時預(yù)測目標(biāo)位置的準(zhǔn)確性,其由公式(1)計算得到。
YOLOv5 目標(biāo)檢測模型是基于卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)的,主要由輸入端、Backbone、Neck、Prediction 四部分組成 [14],其構(gòu)成如圖 1 所示。輸入端采用了 Mosaic 數(shù)據(jù)增強(qiáng)提升了小目標(biāo)的檢測效果,另外,采用自適應(yīng)錨框計算的方法,不同的數(shù)據(jù)集都會有初始設(shè)定長寬的錨框,可以得到更大的交并比,提高大大提高了訓(xùn)練和預(yù)測的效率;Backbone 部分為在不同圖像細(xì)粒度上聚合并形成圖像特征的卷積神經(jīng)網(wǎng)絡(luò),主要有 Focus 結(jié)構(gòu)和 CSP 結(jié)構(gòu)。 Neck 部分是在 Backbone 和 Prediction 之間,是一系列混合和組合圖像特征的網(wǎng)絡(luò)層,將圖像特征傳遞到 Prediction 部分。Prediction 部分為最終檢測部分,主要對圖像特征進(jìn)行預(yù)測,并生成邊界框、預(yù)測目標(biāo)種類。其采用了 GIoU_loss(Generalized Intersection over Union)計算預(yù)測框(predicted bounding box)回歸損失函數(shù)均值, Box 值越小,預(yù)測框回歸越準(zhǔn)確;采用了 BCE Logits_loss 計算目標(biāo)檢測損失函數(shù)均值,objectness 值越小,目標(biāo)檢測越準(zhǔn)確;采用二元交叉熵?fù)p失函數(shù) BCE_loss 計算目標(biāo)分類損失函數(shù)均值, classification 值越小,目標(biāo)分類越準(zhǔn)確。
3 探測實驗
3.1 數(shù)據(jù)集的準(zhǔn)備
目前,基于深度學(xué)習(xí)的微小型無人機(jī)探測方面研究較少,互聯(lián)網(wǎng)上沒有標(biāo)準(zhǔn)的數(shù)據(jù)集可供使用,因此需要自行采集數(shù)據(jù)構(gòu)建所需數(shù)據(jù)集。
(1)數(shù)據(jù)采集。在不同天氣、時間和背景對三款大疆無人機(jī)進(jìn)行拍攝,其型號分別為 Inspire2(尺寸為 645mm×650mm×313mm ) 、 Mavic Air2 (尺寸為 183mm×253mm×77mm ) 、 Phantom4 pro (尺寸為 330mm×225mm×405mm),整理后得單臺 Inspire2 圖片 60 張、單臺 Mavic Air2 圖片 64 張、單臺 Phantom4 pro 圖片 62 張,2 臺及以上無人機(jī)圖片 24 張。
(2)數(shù)據(jù)標(biāo)注。YOLOv5 模型訓(xùn)練前需對數(shù)據(jù)集進(jìn)行標(biāo)注,選用 LabelImg 標(biāo)注軟件對圖片中的無人機(jī)進(jìn)行人工逐一標(biāo)注,完整框選出無人機(jī)邊界并標(biāo)注名稱,標(biāo)注過程如圖 2(a)所示。每一張圖片標(biāo)注完之后,將會自動生成一個相應(yīng)的注釋文檔,包含物體名稱編號,邊界框的位置和大小等信息,如圖 2(b)所示。
(3)數(shù)據(jù)集構(gòu)建。將圖片和對應(yīng)的標(biāo)注文件上傳到機(jī)器學(xué)習(xí)網(wǎng)站 roboflow.com 進(jìn)行格式化,調(diào)整像素為 640px,并按照 7:2:1 的比例分別設(shè)置訓(xùn)練集、驗證集和測試集。
3.2 網(wǎng)絡(luò)訓(xùn)練
網(wǎng)絡(luò)訓(xùn)練是在專用深度學(xué)習(xí)服務(wù)器平臺上進(jìn)行的,平臺的硬件配置和開發(fā)環(huán)境如表 1 所示。
實驗過程為對微小型無人機(jī)數(shù)據(jù)集進(jìn)行遷移學(xué)習(xí)訓(xùn)練,訓(xùn)練使用 YOLOv5s 的輕量化預(yù)訓(xùn)練模型 yolo v5s.pt (通過 COCO val2017 數(shù)據(jù)庫訓(xùn)練得到的輕量化檢測模型)作為知識源進(jìn)行遷移學(xué)習(xí),修改目標(biāo)種類參數(shù) nc (number of classes)為 3,數(shù)據(jù)集配置文件 data.yaml 中設(shè)置好數(shù)據(jù)集路徑,輸入圖像尺寸為 640px,前向傳播批處理大小設(shè)置為 64,迭代次數(shù)設(shè)置為 600。經(jīng)過訓(xùn)練,得到基于微小型無人機(jī)數(shù)據(jù)集的目標(biāo)檢測模型,該模型可用于檢測視頻中每一幀圖像中的無人機(jī),并預(yù)測無人機(jī)的邊界框、型號及相應(yīng)的置信度。
相關(guān)知識推薦:無人機(jī)領(lǐng)域論文如何發(fā)表
使用 Tensorboard 可視化工具查看模型訓(xùn)練結(jié)果。圖3(a)、(b)、(c)分別為訓(xùn)練過程中預(yù)測框回歸損失函數(shù)均值、目標(biāo)檢測損失函數(shù)均值、分類損失函數(shù)均值隨迭代次數(shù)的變化情況。可以看出,三種損失函數(shù)均值隨迭代次數(shù)的增加快速下降,訓(xùn)練后期迭代到 500 次左右趨于穩(wěn)定,最后趨于收斂。圖 4 表示訓(xùn)練過程中精確率、召回率隨迭代次數(shù)的變化情況,隨著迭代次數(shù)增加,精確率和召回率快速上升后趨向于穩(wěn)定。圖 5 為當(dāng)交并比 IoU 閾值分別為 0.5 和 0.5:0.95 時平均精度均值(Mean Average Precision,簡稱 mAP)在逐步提升并趨于穩(wěn)定。
3.3 模型測試
網(wǎng)絡(luò)訓(xùn)練結(jié)束后,把測試集中的圖片輸入訓(xùn)練好的網(wǎng)絡(luò)模型進(jìn)行識別目標(biāo)的位置回歸。只有同時滿足 IoU≥0.5,無人機(jī)的種類識別正確這兩個條件時,判定檢測識別正確;否則為錯誤。選取精確率(Precision)、召回率(Recall)、平均精度均值(mean Average Precision, mAP)作為評價指標(biāo),精確率表示在所有被檢測為正的樣本中實際為正樣本的概率,其公式如(6)所示;召回率表示在實際為正的樣本中被檢測為正樣本的概率,其公式如(7)所示;平均精度均值表示在所有檢測類別上的平均精度的均值,比精確率和召回率更能反應(yīng)模型的全局性能,其公式如(8)所示。
4 實驗結(jié)果與分析
4.1 數(shù)據(jù)集測試結(jié)果分析
用測試集 21 張圖片對訓(xùn)練模型進(jìn)行測試,結(jié)果如表 2 所示,當(dāng)交并比 IoU 值為 0.5 時,訓(xùn)練得到的模型能夠達(dá)到 94.2%的精確率和 82.8%的召回率,三種無人機(jī)識別的精度分別為:Inspire2 為 95.4%,Mavic Air2 為 92.1%, Phantom4 pro 為 95.2%,達(dá)到了較高的識別精度結(jié)果。測試集中部分檢測結(jié)果如圖 8 所示,在多種背景下均能夠正確的檢測出目標(biāo)無人機(jī),并準(zhǔn)確識別出其型號類別。在相同的服務(wù)器平臺上,使用相同的數(shù)據(jù)集對 YOLOv3 和 YOLOv5 兩種算法進(jìn)行對比測試,結(jié)果如表 3 所示,使用 YOLOv5 模型進(jìn)行測試時,mAP 達(dá)到 93.5%,識別速度能達(dá)到 141 FPS,精確率達(dá)到 94.3%,YOLOv3 模型的 mAP 為 81.5%,識別速度為 59 FPS,精確率為 83.2%。本實驗的測試結(jié)果整體上也優(yōu)于文獻(xiàn)[10]、[11] 采用 YOLOv3 算法的測試結(jié)果,更優(yōu)于文獻(xiàn)[9]采用的改進(jìn)的 SSD 算法。
4.2 真實場景探測
為進(jìn)一步驗證基于 YOLOv5 對無人機(jī)的實時探測能力,本實驗通過拍攝一段無人機(jī)視頻,使用訓(xùn)練得到的模型對其進(jìn)行探測。該視頻中同時存在最多 3 種無人機(jī)的畫面,視頻分辨率為 19201080,幀速率 30 FPS。識別結(jié)果如圖 9 所示,當(dāng)較大無人機(jī) Inspire2 在約 45 米范圍內(nèi),較小無人機(jī) Mavic Air2 在約 30 米范圍內(nèi),該模型基本能檢測出視頻中的無人機(jī)目標(biāo),型號識別準(zhǔn)確,同時置信度較高。每一幀圖像的識別時間約為 0.007 秒,識別速率遠(yuǎn)大于源視頻幀速率,具有較好的實時性。通過本文的實驗可以驗證 YOLOv5 算法在無人機(jī)實時探測應(yīng)用上的技術(shù)優(yōu)勢。
5 結(jié)論
(1)使用遷移學(xué)習(xí)訓(xùn)練完的 YOLOv5 模型在測試集上能夠達(dá)到 94.2%的精確率、82.8%的召回率和 93.5%的平均精度均值,此模型不僅能識別到微小型無人機(jī),還能識別出其具體型號,并標(biāo)注其置信度。
(2)在真實場景下,該方法能對光學(xué)監(jiān)控設(shè)備的視頻流進(jìn)行實時探測識別,在配備 NVIDIA GTX TITAN Xp 12 GB 顯卡的計算機(jī)上能達(dá)到 142 FPS 的速度,達(dá)到較為流暢的識別效果。
雖然本文提出的方法性能較好,但對于距離較遠(yuǎn)的微小型無人機(jī),識別效果不佳。因為 YOLO 模型會對圖片壓縮處理,即當(dāng)畫面中無人機(jī)目標(biāo)較遠(yuǎn)(或尺寸較小)時,壓縮后無人機(jī)像素過小,無法提取有效特征,故難以識別。下一步考慮用增加尺度、網(wǎng)絡(luò)檢測分支等方式對 YOLOv5 算法進(jìn)行修改,或者采取先分割大圖為小圖,再檢測小圖的方式增強(qiáng)小目標(biāo)的探測能力。——論文作者:包文歧,謝立強(qiáng),徐才華,劉智榮,朱敏
參考文獻(xiàn):
[1] GUVENCE I, KOOHIFAR F, SINGH S , et al. "Detection, Tracking, and Interdiction for Amateur Drones," in IEEE Communications Magazine, vol. 56, no. 4, pp. 75-81, April 2018, doi: 10.1109/MCOM.2018.1700455.
[2] 張薇.民航局召開通用航空工作領(lǐng)導(dǎo)小組第六次全體會 議 [EB/OL]. http://www.caacnews.com.cn/1/1/202102/t20210226_1 320077.html, 2021-02-26.
[3] 許暉,張翟. 昨夜突發(fā)!杭州蕭山機(jī)場進(jìn)港飛機(jī)不斷盤旋,疑因無人機(jī)侵入!部分航班備降寧波、上海 [EB/OL]. https://hznews.hangzhou.com.cn/shehui/content/2021- 04/04/content_7940611_2.html, 2021-04-04.
[4] 屈旭濤,莊東曄,謝海斌.“低慢小”無人機(jī)探測方法[J]. 指揮控制與仿真,2020,42(02):128-135. QU X T, ZHUANG D Y, XIE H B. Detection Methods for Low-Slow-Small(LSS) UAV[J]. Command Control & Simulation, 2020,42(02):128-135.