Drone-YOLO:一種有效的無人機圖像目標檢測
01 前景概要
今天分享中,我們提出了Drone-YOLO,這是一系列基于YOLOv8模型的多尺度無人機圖像目標檢測算法,旨在克服與無人機圖像目標檢測相關的特定挑戰。為了解決大場景大小和小檢測對象的問題,我們對YOLOv8模型的頸部組件進行了改進。具體而言,我們采用了三層PAFPN結構,并結合了一個使用大規模特征圖為小型目標量身定制的檢測頭,顯著增強了算法檢測小型目標的能力。此外,我們將夾層融合模塊集成到頸部上下分支的每一層中。這種融合機制將網絡特征與低級特征相結合,提供了關于不同層檢測頭處物體的豐富空間信息。我們使用深度可分離進化來實現這種融合,它平衡了參數成本和大的感受野。在網絡主干中,我們使用RepVGG模塊作為下采樣層,增強了網絡學習多尺度特征的能力,并優于傳統的卷積層。
所提出的Drone-YOLO方法已在消融實驗中進行了評估,并在VisDrone2019數據集上與其他最先進的方法進行了比較。結果表明,我們的Drone-YOLO(L)在目標檢測的準確性方面優于其他基線方法。與YOLOv8相比,我們的方法在mAP0.5指標上實現了顯著改進,VisDrone2019測試增加了13.4%,VisDrone 2019-val.增加了17.40%。此外,只有5.25M參數的參數高效Drone-YOLO(tiny)在數據集上的性能與9.66M參數的基線方法相當或更好。這些實驗驗證了Drone-YOLO方法在無人機圖像中目標檢測任務中的有效性。
02 背景
在過去的15年里,隨著無人機控制技術的逐漸成熟,無人機遙感圖像以其成本效益和易獲取性成為低空遙感研究領域的重要數據源。在此期間,深度神經網絡方法得到了廣泛的研究,并逐漸成為圖像分類、目標檢測和圖像分割等任務的最佳方法。然而,目前應用的大多數深度神經網絡模型,如VGG、RESNET、U-NET、PSPNET,主要是使用手動收集的圖像數據集開發和驗證的,如VOC2007、VOC2012、MS-COCO,如下圖所示。
與人工拍攝的真是圖像相比,從無人機獲得的圖像顯示出顯著差異。這些無人機拍攝的圖像如下:
除了這些圖像數據特征外,無人機遙感目標檢測方法還有兩種常見的應用場景。第一個涉及使用大型臺式計算機進行飛行后數據處理。無人機飛行后,捕獲的數據在臺式計算機上進行處理。第二個涉及飛行過程中的實時處理,無人機上的嵌入式計算機實時同步處理航空圖像數據。該應用程序通常用于無人機飛行期間的避障和自動任務規劃。因此,應用神經網絡的目標檢測方法需要滿足每個場景的不同要求。對于適用于臺式計算機環境的方法,需要高檢測精度。對于適用于嵌入式環境的方法,模型參數需要在一定范圍內才能滿足嵌入式硬件的操作要求。在滿足操作條件后,該方法的檢測精度也需要盡可能高。
因此,無人機遙感圖像中目標檢測的神經網絡方法需要能夠適應這些數據的特定特征。它們的設計應滿足飛行后數據處理的要求,可以提供高精度和召回率的結果,或者它們應設計為具有較小規模參數的模型,可以部署在嵌入式硬件環境中,用于無人機上的實時處理。
03 新框架設計介紹
下圖顯示了我們提出的Drone-YOLO(L)網絡模型的架構。該網絡結構是對YOLOv8-l模型的改進。在網絡的主干部分,我們使用RepVGG結構的重新參數化卷積模塊作為下采樣層。在訓練過程中,這種卷積結構同時訓練3×3和1×1卷積。在推理過程中,兩個卷積核被合并為一個3×3卷積層。這種機制使網絡能夠在不影響推理速度或擴大模型大小的情況下學習更穩健的特征。在頸部,我們將PAFPN結構擴展到三層,并附加了一個小尺寸的物體檢測頭。通過結合所提出的三明治融合模塊,從網絡主干的三個不同層特征圖中提取空間和信道特征。這種優化增強了多尺度檢測頭收集待檢測對象的空間定位信息的能力。
如下圖所示,我們提出了sandwich-fusion(SF),這是一種三尺寸特征圖的新融合模塊,它優化了目標的空間和語義信息,用于檢測頭。該模塊應用于頸部自上而下的層。該模塊的靈感來自YOLOv6 3.0【YOLOv6 v3.0: A Full-Scale Reloading】中提出的BiC模型。SF的輸入如圖所示,包括主干較低階段、相應階段和較高階段的特征圖。目標是平衡低級特征的空間信息和高級特征的語義信息,以優化網絡頭部對目標位置的識別和分類。
04 項目落地效果
項目中,我們使用Ubuntu 20.04作為操作系統,Python 3.8、PyTorch 1.16.0和Cuda 11.6作為軟件環境。實驗采用NVIDIA 3080ti圖形卡作為硬件。神經網絡的實現代碼是在Ultralytics 8.0.105版本的基礎上修改的。在項目中的訓練、測試和驗證過程中使用的超參數保持一致。訓練epoch被設置為300,并且輸入到網絡中的圖像被重新縮放到640×640。在下面列出的一些結果中,所有YOLOv8和我們提出的Drone-YOLO網絡都具有來自我們檢測結果。在這些落地中,這些網絡都沒有使用預訓練參數。
在嵌入式應用實驗中,我們使用NVIDIA Tegra TX2作為實驗環境,該環境具有256核NVIDIA Pascal架構GPU,提供1.33 TFLOPS的峰值計算性能和8GB的內存。軟件環境為Ubuntu 18.04 LTS操作系統、NVIDIA JetPack 4.4.1、CUDA 10.2和cuDNN 8.0.0。
在VisDrone2019-test測試效果
基于NVIDIA Tegra TX2的結果
Drone-YOLO實際效果
左邊是Yolov8的結果,可以看出紅色框中大部分目標沒有檢測出來
論文地址:www.mdpi.com/2504-446X/7/8/526