世俱杯规则-虎牙直播-比利亚vs西班牙人-德国杯|www.cnyhmy.com

基于改進YOLOv5s的四旋翼自主降落標識檢測算法

時間:2024-10-15 18:45:02 來源:網友投稿

李曉軒,甄子洋,劉 彪,梁永勛,黃祎聞

(1.南京航空航天大學 自動化學院,南京 210016;
2.沈陽飛機設計研究所 揚州協同創新研究院,江蘇 揚州 225006)

隨著無人機技術的飛速發展,大量難題已被解決,但仍然還存在一些需要解決的問題,其中就包括無人機回收技術[1-2]。在無人機導航領域中,無人機自主降落系統已成為研究熱點。傳統的導航方式有GPS 全球衛星定位導航、慣性導航、無線電導航等。GPS采用的是多衛星單程測距系統,如果接收機測量到了其與空間中至少四顆導航衛星之間的距離,那么就可以通過計算從而確定接收機的位置。但GPS受制于美軍,且信號接收容易受到無人機所處環境的影響。因此,在無人機自主降落時僅使用GPS是非常受限的。慣性導航的應用是最廣泛的,它不依賴于外界信息,僅通過其內部的加速度計以及陀螺儀就可以確定自身導航信息。但是隨著時間增加會導致它的估計誤差積累,所以它往往與其他導航方法結合使用。無線電導航利用了電磁波的傳播特性,缺點在于無線電信號容易被干擾且需要自身主動發射電磁波信號,這就容易暴露自身位置。

由于傳統導航方式有上述的各種缺點,利用計算機視覺信息作為導航信息實現無人機自主降落已成為熱點。計算機視覺是多學科交叉的產物,是包含大量信息的被動信息源。無人機的計算機視覺導航通過在無人機上安裝機載相機,從而通過相機捕捉到實時圖像,并輸入到機載計算機中,通過各種算法計算出無人機的各項導航參數,然后將這些導航信息提供給控制系統從而完成各項任務。相機是一種成本相對較低的傳感器,且可以提供豐富的環境信息。相對于其他傳感器,基于視覺的自主降落技術能夠捕獲大量的環境信息,且不依賴外部的其他設備,不易受干擾,在電子對抗時有較大優勢,因此使用計算機視覺已經成為國內外的無人機自主降落技術以及著艦技術的主流[3-4]。

確定了計算機視覺的導航方式后,就要考慮選擇合適的目標檢測算法。傳統的目標檢測算法一般由人工提取目標特征,由于檢測過程比較復雜,這就導致了目標檢測的效率不高,精度較低,效果較差。近年來,由于深度學習技術的研究取得了一定的突破,基于深度學習的卷積神經網絡(CNN)[5]在目標檢測中的應用也取得了長足的進展,人們已經開始逐漸拋棄傳統的人工提取圖像中特征的方式,而使用卷積神經網絡來自動提取圖像中的特征并進行分析。基于深度學習的目標檢測算法大大提高了目標檢測效果,且范化能力更強,應用范圍更廣,在實際情況下更容易應用,已應用于自動駕駛[6]、人臉識別[7]、智慧醫療[8-9]、工業檢測[10]、活動識別[11]等領域中。目前,基于深度學習的檢測算法最常見的兩種方法分別是基于區域的卷積神經網絡(R-CNN)系列為代表的基于候選框的二階段目標檢測算法和以YOLO(You Only Look Once)系列為代表的基于回歸的單階段目標檢測算法。二階段目標檢測算法雖然在精度上有著較好的表現,但檢測速度較慢不適用于實時檢測系統。而單階段目標檢測算法在有著較快檢測速度的同時,在檢測精度上也表現不俗。

二階段目標檢測算法的代表是R-CNN 系列算法。美國的工程師R.Girshick在2013年第一次將CNN 應用到目標檢測領域,即R-CNN[12]。它使用CNN 自動提取圖片中的特征信息,在訓練網絡時先采用大樣本進行有監督的預訓練,再通過小樣本進行微調,以此來解決模型訓練過度產生過擬合的問題。這種做法相對于傳統方式極大地提升了檢測性能,但它需要對圖像中的候選區域的卷積特征進行很多重復的計算。為了解決圖片縮放后會產生形變,提出了SSP Net網絡[13],它的特點是無論輸入什么尺寸的圖片,輸出的大小都是固定的,這就令SSP Net可以提取不同尺度的特征,且僅需提取一次圖片中候選區域的卷積特征,大大節省了計算資源的浪費,加快了檢測速度。在此基礎上又提出了Fast R-CNN[14],它在R-CNN 中結合了SSP Net的思想,不但提高檢測的精度還提高了檢測的速度。之后又提出了Faster R-CNN[15],它引入了RPN(region proposal networks,區域檢測網絡),進一步提升了檢測的精度與速度。然而檢測速度與單階段目標檢測算法相比仍有一定差距。

單階段目標檢測算法主要包括YOLO 系列算法以及SSD(single shot multibox detector)算法[16]。2015年,單階段目標檢測算法的開山之作YOLO 系列算法被首次提出[17]。YOLO 算法最后采用全連接層得到檢測結果,而SSD算法直接使用卷積提取不同尺度的特征圖來得到檢測結果。YOLOv2[18]在YOLOv1的基礎上進行改進,它在引入錨框機制的同時還引入了批標準化(BN,batch normalization,)的概念。YOLOv3[19]又進行了進一步改進,它的骨干網絡(Backbone)使用darknet53,并將錨框的大小擴增到3種類型,此外使用sigmoid函數作為邏輯分類器將輸出限制在0和1之間,這大大提高了YOLOv3的推理速度。在此基礎上改進又提出了YOLOv4算法[20],它用Mish函數代替原先的ReLU 函數作為激活函數,因為Mish的函數圖像比ReLU 更加平滑,在檢測速度與精度之間做到了較好權衡。而YOLOv5將之前版本的優點融會貫通,無論是在精度還是速度上,都有了較大的進步[21]。YOLOv5算法包 括 YOLOv5n,YOLOv5s,YOLOv5m,YOLOv5l,YOLOv5x五個版本,他們的參數量逐漸增加,檢測精度也隨之升高,但檢測速度會逐漸減慢。YOLOv5s在有著良好檢測精度的同時速度也較快[22],適用于無人機自主降落實時系統中,但在一些獨特場景下對小目標的檢測仍有一些不足。

本研究以二維碼構成的降落標識物為檢測目標,如圖1所示,采集一千多張不同高度不同角度無人機拍攝的降落標識物圖片,構建降落標識物檢測數據集。基于YOLOv5s檢測網絡,為了增強對小目標檢測的能力,做出如下改進:

圖1 降落標識物

1)增加小目標檢測層,即增加了一個預測頭來檢測更小尺度的目標;

2)采用BiFPN 加權雙向特征金字塔網絡代替原先PANet結構,快速進行多尺度特征融合;

3)將EIoU Loss替換CIoU Loss作為算法的損失函數,在提高邊界框回歸速率的同時提高模型整體性能。

YOLOv5 算法的速度快,靈活性高,該算法在YOLOv4的基礎上做出了一些改進,使得其速度與精度都有了一定提高。它由4個部分組成,分別是輸入端、Backbone、Neck和Head。YOLOv5s的網絡結構如圖2所示。

圖2 YOLOv5s網絡結構圖

輸入端起到預處理輸入數據集的作用,包括自適應錨框計算、Mosaic數據增強等步驟。在網絡訓練時,模型首先會在初始錨點框的基礎上輸出得到的預測框,然后計算預測框與真實框的差值,接下來就可以反向更新網絡中的各項參數,因此設定初始錨點框也是比較關鍵的一環。在之前的YOLO 系列檢測算法中,訓練不同的數據集時,為了獲得初始錨點框,需要運行單獨的程序來獲得,而YOLOv5s的代碼集成了此項功能,每次訓練時,依賴數據集的名稱,它可以進行自適應的計算,從而得到最佳的錨點框。Mosaic數據增強借鑒了CutMix增強的方法,只不過本方法采用了4張圖片,對其進行了隨機裁剪、縮放、旋轉等操作,從而合成了1張圖像,采用Mosaic數據增強的方法,不僅使圖片能豐富檢測目標的背景,而且能夠提高小目標的檢測效果。并且在Batch Normalization計算的時候一次性會處理四張圖片。

Backbone用于提取輸入圖像的信息特征,它使用了CSPDarknet53網絡。Backbone作為YOLOv5s的骨干結構,還包含Focus、Conv、C3、SPP等模塊。其中Focus結構在YOLOv1-YOLOv4中沒有引入,Focus模塊重要的是切片操作,它從縱向和橫向兩通道對輸入進行切片后重新拼接;
Conv中主要的操作有卷積、正則化和激活層;
C3中包括N個殘差網絡Bottleneck,輸入的特征圖首先經過1×1的卷積層,再經過3×3的卷積層,然后將得到的結果直接與輸入特征相加;
SPP 是空間金字塔池化層,它用于解決輸入不是固定尺寸的情況,它能將任意大小的特征圖轉換成固定大小的特征向量,它在3 種尺度上進行最大池化操作,然后將輸出結果進行拼接。

Neck是為了實現不同尺度特征信息的融合,它包括特征金字塔(FPN)[23]結構和路徑聚合網絡(PAN)[24]結構。由于高層的語義特征比低層的要強,為了增強整個金字塔的語義特征,FPN 自頂向下的將高層的強語義特征傳遞下來,但是它并沒有傳遞定位信息。PAN 針對這一點不足,為了將低層較強的定位特征傳遞到上層,它在FPN 的基礎上又添加了一個自底向上的金字塔,彌補了FPN 的不足。

Head是YOLOv5s的檢測部分,它繼承了YOLOv4的Head進行多尺度預測,提高了對不同尺寸目標的檢測性能,它可以輸出大、中、小3種不同尺寸的特征圖,分別用于檢測小、中、大3種目標。

本文以YOLOv5s網絡為基礎進行了如下3種改進:通過增加一個小目標檢測頭來提升對小尺度目標的檢測能力;
采用BiFPN 加權雙向特征金字塔網絡代替原先PANet結構,快速進行多尺度特征融合;
損失函數使用EIoU Loss,提高邊界框回歸速率的同時提高模型整體性能。下面分別從以上3個方面進行詳細介紹。

2.1 小目標檢測頭

原來的YOLOv5s骨干網絡為了檢測大中小3種尺度的目標使用了3種大小的特征圖,這3種不同大小的特征圖分別來自網絡對原始輸入圖像進行8倍、16倍和32 倍下采樣,如圖3所示,得到這3種特征圖后將其輸入到特征融合網絡中進行特征融合。雖然經過卷積次數越多的特征圖的語義信息越豐富,但是代價是目標的位置信息也會慢慢丟失,這樣就不利于檢測小目標。相反的,雖然卷積次數越少,特征圖語義信息不足,但是目標的位置信息更加準確。因此為了提升小目標的檢測效果,本文在YOLOv5s原有的網絡上將4 倍下采樣得到的特征圖也輸入到特征網絡中,從而得到新的大小的特征圖,此特征圖的感受野小,且擁有更加豐富的位置信息,能對更小尺度的目標有更好的檢測效果,如圖4所示。

圖3 原始YOLOv5s目標檢測層

圖4 改進算法的目標檢測層

2.2 BiFPN結構

BiFPN 是加權雙向特征金字塔,BiFPN 有兩個主要思想:1)高效的雙向跨尺度連接;
2)加權特征融合。BiFPN構造了自上而下、自下而上的雙向通道,對主干網絡中的不同尺度信息進行融合。在融合時,通過上采樣和下采樣將不同尺度信息變為同一尺度,并在同一特征的原始輸入節點和輸出節點之間添加橫向連接,這樣不僅不增加成本還能融合更多特征。相比于PANet,它還移除了單輸入邊的結點,因為單輸入邊的結點沒有進行特征融合,故具有的信息比較少,對于最后的融合沒有什么貢獻度,相反,移除還能減少計算量。加權特征融合簡單來說,就是針對融合的各個尺度特征增加一個權重,調節每個尺度的貢獻度,這其實是注意力機制與FPN 的碰撞。此外,還可以將BiFPN 看成一個基本單元,通過重復堆疊幾次此單元的方式可以融合更多特征,它的網絡結構如圖5所示。

圖5 BiFPN 結構

2.3 EIoU Loss

本文采用EIoU Loss替代原始模型的CIoU Loss作為損失函數。EIoU Loss的收斂速度更快,評價也更加準確,不但可以提高模型整體性能,而且在一定程度上可以彌補多尺度特征融合模塊增加導致的訓練時間增加、收斂速度變慢的問題。EIoU Loss是針對CIoU Loss進行改進的,CIoU Loss的計算公式為:

式中,I為真實框與預測框的交并比,bgt與b分別代表真實框的中心點與預測框的中心點;
ρ代表真實框的中心點與預測框的中心點之間的歐式距離;
c代表可以同時包含真實框和預測框的最小外接四邊形的對角線長度;
θ是一個權重系數,其表達式為:

式中,v是兩框長寬比的距離,其表達式為:

式中,wgt、hgt分別為真實框的長和寬;
w、h分別為預測框的長和寬。

從公式可以看出CIoU Loss的優點在于同時兼顧了真實框與預測框的交并比即重疊面積、中心點距離和縱橫比,但缺點是其公式中的v反映的是兩框長寬比的差異,沒有考慮到寬度和高度分別與其置信度的真實差異,所以有時會降低模型優化的速率。而EIoU Loss繼承了CIoU Loss的優勢,沿用了交并比損失LIoU、中心點距離損失Ldis,而寬高損失Lasp直接設置為真實框和預測框之間的寬度和高度最小差,使收斂速度更快。計算公式如下:

式中,cw和ch為可以包含真實框與預測框的最小外接矩形框的寬和高。

經過上述3 種改進后,算法的整體網絡結構如圖6所示。

圖6 改進的YOLOv5s網絡結構圖

3.1 數據集

本文主要針對無人機自主降落場景下的降落標識進行視頻采集,共計采集1 350張圖片,其中80%用于訓練集,15%用于驗證集,5%用于測試集,其中部分數據如圖7所示,他們是在不同天氣,不同背景,不同角度,以及不同高度下拍攝的二維碼降落標識的圖片。采集完數據集后,下一步就需要對數據集進行標注,以便網絡學習,利用Make Sense網頁對數據集進行在線標注,標注成YOLO 格式,共有一個標記類別,是QRcode(降落標識)。完成標注后,每一張圖片都會生成一個txt文件,文件名與圖片名相同。txt文件中共有n行5列,每一行都代表一個檢測目標的標記框,其中第一列代表該框的類別,第二列代表框中心的橫坐標與圖片寬度之比,第三列代表框中心的縱坐標與圖片高度之比,第四列代表框的寬度與圖片的寬度之比,最后一列代表框的高度與圖片的高度之比。因為采集的降落標識數據集有限,改進后的算法與原算法的map值相差不大,在驗證改進算法性能的優越性時,使用自制數據集并不太合適,所以采用VOC2012數據集中的部分數據作為數據集,將幾種算法同時用在此數據集上,從而對比不同算法之間的性能。

圖7 數據集中部分圖片

3.2 實驗環境與模型訓練

實驗環境如下:操作系統為Ubuntu18.04,使用Ge-Force GTX 1660顯卡進行運算,顯存大小為6GB,CPU 配置為Intel(R)Core(TM)i5-9400F@2.90GHz,CUDA的版本為11.1.0,Python的版本為3.8.12,Pytorch 的版本為1.8.0。本實驗的一些參數設置如下:總迭代次數設置為100次,迭代批量大小設置為16,優化器使用的是SGD算法。

3.3 評估指標

本文介紹3種常見的評估指標:平均精度AP(average precision)、平均精度均值mAP(mean AP)和每秒檢測圖片的幀數fps(frames per second)。其中,平均精度由精確率(precision)和查全率(recall)所決定。精確率是相對于預測結果而言的,它表示的是預測為正的樣本中有多少是預測對的,所以用預測對的正樣本數除以模型預測的正樣本總數。查全率是相對于樣本而言的,即樣本中有多少正樣本被預測正確,所以用預測對的正樣本數除以實際樣本總數。上述每種指標的計算公式如下:

式中,AP是指精度-回歸曲線(Precision_Recall,P_R)的面積。mAP是通過對所有類別的AP進行平均得到的。N表示檢測到的類別總數。如果mAP值越大,那么算法的識別準確率就越高,檢測效果就越好;
TP表示預測正確的正樣本框的數量,FP表示預測錯誤的正樣本框的數量,FN表示遺漏的樣本框的數量。

3.4 改進后模型的性能分析

在VOC2012數據集上,改進后模型的P-R 曲線如圖8所示。改進后的模型性能與改進前的模型以及YOLOv4算法的對比如表1所示,改進后算法對所有類別的檢測精準率、查全率、FPS、mAP@0.5和mAP@[0.5:0.95]分別達到77.8%,128,71.9%和48.2%。

表1 不同算法性能對比結果

圖8 P-R曲線

圖8顯示了VOC 數據集中20個不同的類別以及所有類別的P-R曲線,圖中以“aeroplane 0.838”為例,“aeroplane”表示類別名,“0.838”表示將IoU 設為0.5時,該類別的AP值。由于P-R曲線只是宏觀上展示模型性能,不同模型之間的性能差異主要通過mAP 來衡量,且用VOC數據集僅是為了驗證改進算法在性能上的優越性,并不用關注各個類別,只用關注所有類別的P-R曲線即可。

實驗結果證明,改進后的算法在VOC2012數據集上比原算法有更好的檢測效果,在精度與速度上的權衡是最好的,雖然FPS略有降低但精度卻得到了提升,在無人機自主降落時,FPS的略微降低的影響基本可以忽略不計,但精度每提升一點,無人機自主降落的安全性就會提升一點。由于YOLOv4的網絡參數要多于YOLOv5s,所以YOLOv4算法在精度上會有一定優勢,但是FPS卻較低,即檢測速度比較慢,若將YOLOv4算法部署在無人機上的機載計算機系統中,系統會缺乏實時性,因此不適合應用于無人機上進行自主降落任務。

3.5 實飛實驗

為了驗證改進算法在無人機上的實際性能如何,將改進算法應用到如圖9所示的無人機上。采用的無人機的軸距為410mm,使用碳纖維機身,同時兼顧了機身的重量與續航。它還包含有Pixhawk4基礎套件,用來完成PX4最基本的飛行功能;
同時配備有單目視覺相機用于獲取視覺信息,作為改進算法的輸入;
機載計算機采用NVIDIA TX2,它作為無人機自主降落任務的核心用來運行改進的目標檢測算法來處理單目相機獲取到的原始數據,并通過相關算法計算出無人機與降落標識物之間的相對位姿關系,最后通過Mavros將此信息發送至飛控之中,從而引導無人機安全的自主降落到降落標識物上。

圖9 實驗所用無人機

在無人機上的實際檢測效果如圖10所示。

圖10 降落標識檢測效果圖

實驗結果證明,當無人機的高度越來越高時,如果視野中同時存在一個大目標和一個小目標,原YOLOv5s算法只能檢測到大目標卻不能檢測到小目標,而改進后的算法能同時檢測到兩種大小的目標,證明了改進后的算法在二維碼數據集中對小目標有更好的檢測效果。同時改進后的算法在TX2上的FPS約為32,也滿足嵌入式部署的實時性要求。

改進YOLOv5s算法首先通過增加小目標檢測層來提升對小目標特征的檢測能力;
然后采用BiFPN 加權雙向特征金字塔網絡代替原先PANet結構,快速進行多尺度特征融合;
最后損失函數使用EIoU Loss,使收斂更快。實驗表明,改進算法相較于原算法有更好的小目標檢測能力,能夠獲得較好的檢測準確度和比較快的檢測速度,可以滿足無人機自主降落的準確性和實時性的需求。由于在實際應用中場景是多種多樣的,本文選取的降落標識可能在某些背景中不是特別明顯,后續工作可以選取不同的降落標識物,并采集更多的數據集,通過實驗結果來選擇合適的降落標識物,且可以在提升檢測的實時性上作進一步研究。

猜你喜歡 尺度卷積精度 基于3D-Winograd的快速卷積算法設計及FPGA實現北京航空航天大學學報(2021年9期)2021-11-02財產的五大尺度和五重應對內蒙古民族大學學報(社會科學版)(2020年2期)2020-11-06從濾波器理解卷積電子制作(2019年11期)2019-07-04基于DSPIC33F微處理器的采集精度的提高電子制作(2018年11期)2018-08-04基于傅里葉域卷積表示的目標跟蹤算法北京航空航天大學學報(2018年1期)2018-04-20宇宙的尺度太空探索(2016年5期)2016-07-12GPS/GLONASS/BDS組合PPP精度分析測繪科學與工程(2016年5期)2016-04-17改進的Goldschmidt雙精度浮點除法器電子設計工程(2015年3期)2015-02-279時代英語·高三(2014年5期)2014-08-26一種基于卷積神經網絡的性別識別方法電視技術(2014年19期)2014-03-11

推薦訪問:降落 算法 標識

最新推薦
猜你喜歡