?

基于YOLOv5的遙感圖像小目標檢測

2023-03-11 06:29李文博趙正旭
科技創新與應用 2023年6期
關鍵詞:卷積模塊圖像

李文博,趙正旭

(青島理工大學 機械與汽車工程學院,山東 青島 266520)

計算機視覺(Computer Vision,CV)中,目標檢測(Object Detection)技術的研究一直都是該領域熱點研究方向。目標檢測技術是指從復雜的背景中,基于目標幾何和統計特征進行表達與分類,實現對檢測目標的識別和位置確認,為后續的分析處理提供信息。其中,小目標檢測精度和速度是該領域的熱門研究方向[1]。

遙感圖像的目標檢測技術目前在農業、醫學和軍事等領域都有研究應用。隨著深度學習技術的不斷發展,相較手工提取特征的傳統算法,因深度神經網絡識別準確率高、速度快和特征自提取等優勢被廣泛應用到目標檢測領域中來[2]。近些年,許多基于卷積神經網絡的速度快、精度高的目標檢測算法被提出,卷積神經網絡可以對圖像數據自主訓練學習,更新參數,得到一個比較準確的模型[3],并在很多開源檢測數據集的檢測結果和性能表現都很出色[4-9]。目前流行的深度學習目標檢測算法主要為two-stage和one-stage。Two-stage是先生成候選區域,再通過卷積神經網絡對預測目標進行分類和定位,如Mask R-CNN[4]、FasterR-CNN[10]等。One-stage是直接利用卷積神經網絡提取目標特征值,預測目標的分類與定位,較為代表性的為YOLO算法。第一類目標檢測方法其優點是目標定位和檢出率精度高,但是訓練時間長、速度慢,達不到實時性要求。第二類目標檢測方法其優點是速度快,能夠實時對目標對象進行識別定位,但精度不高,特別是對小目標識別不準確。綜合考慮,本文選用YOLO算法中最流行的YOLOv5作為基礎,對DOTA數據集中的遙感圖像中的艦船、車輛進行檢測,采用GIOU_loss作為損失函數,能夠準確檢測出艦船、車輛等遙感圖像中的小目標。

1 YOLOv5算法介紹

YOLO算法作為目標檢測領域的一個經典算法,其中YOLOv1奠定了整個YOLO系列的基礎,后面的YOLO算法是對其的不斷改進創新。YOLOv1發布于2015年,是one-stage detection的開山之作,在此之前的目標檢測都是采用two-stage的方法,雖然準確率較高,但是運行速度慢。由于YOLOv1存在定位不準確及與two-stage方法相比召回率低的缺點,作者于2017年提出了YOLOv2算法,從更準確、更快和更多識別3個角度對YOLOv1算法進行了改進,擴展到能夠檢測9 000種不同對象的檢測識別,被稱為YOLO9000。YOLOv3于2018年提出,總結了在YOLOv2的基礎上做的一些嘗試性改進。其中有2個值得一提的亮點,一個是使用了殘差模型,另一個是使用了FPN架構實現多尺度檢測[5,9]。YOLOv3在之前的基礎上引入了殘差塊,并進一步加深了網絡,改進之后的網絡有53個卷積層,取名為Darknet-53。

YOLOv4是在YOLOv3的主干網絡(Darknet-53)的基礎上增加了Backbone結構,其中包含了5個CSP模塊,可以有效增強網絡的學習能力,降低成本。同時增加了Droblock模塊,緩解過擬合現象。此外YOLOv4使用Mish激活函數,由于其函數曲線相對更平滑,相對Relu激活函數能更好地保證準確率,如圖1所示。

圖1 Mish激活函數

YOLOv5是在YOLOv4的基礎上進行的一定程度上的優化。YOLOv5中新加入了Focus模塊,主要用于切片操作,另外在YOLOv4中使用的CSP模塊在YOLOv5的Backbone和Neck中都有應用。輸入部分依然采用了YOLOv4中采用的Mosaic數據增強技術,另外對于錨框的設置采用了每次訓練時自適應生成的方式,以及為了保持正常的長寬比,在填充增強環節自適應增添最少的黑邊。預測部分采用GIOU_Loss損失函數和NMS非極大抑制。

YOLOv5共有4種模型,分別是YOLOv5-s、YOLOv5-m、YOLOv5-l和YOLOv5-x。4種模型網絡的深度和寬度有所不同。經過同一數據集訓練模型并推理預測結果比較,YOLOv5-s模型速度和性能最好,而YOLOv5-x模型的平均精度均值最佳[1,11]。

YOLOv5網絡模型如圖2所示,該模型包括Input(輸入端)、Backbone(主干網絡)、Neck(網絡)和Prediction(預測端)4部分。

2 訓練數據集

2.1 DOTA數據集介紹

DOTA圖像是從中國資源衛星應用中心提供的谷歌地球,GF-2和JL-1衛星收集的,CycloMedia B.V.DOTA機構提供的航空圖像,由RGB圖像和灰度圖像組成。RGB圖像來自Google Earth和CycloMedia,而灰度圖像來自GF-2和JL-1衛星圖像的全色帶。所有圖像都以“jpg”格式存儲。

2.2 數據集的來源

從DOTA數據集中選擇2 000張圖片,組合訓練集和測試集。樣本集中包含15個類別:飛機、船舶、港口、橋梁、大型車輛、小型車輛、直升機、環形交叉路口、足球場、游泳池、儲罐、棒球場、網球場、籃球場和地面田徑場。

部分樣本集如圖3所示。

圖3 部分樣本集

3 實驗流程

3.1 實驗環境與配置

3.1.1 基于YOLOv5算法的小目標檢測的硬件配置

處理器:Intel Xeon Silver 4210 CPU@2.20 GHz。

內存:12 GB。

顯卡:GeForce RTX 2080 Ti。

3.1.2 基于YOLOv5算法的小目標檢測的軟件環境

操作系統:Centos7。

實驗平臺:python 3.7,pytorch1.7.1。

3.2 超參數設置

本文基于YOLOv5算法,采用小批量隨機梯度下降法(SGD)來訓練小目標檢測模型。在開始訓練前,首先將YOLOv5模型的初始學習率設為0.01,動量參數設為0.937,權重衰減系數設為0.000 5,最大訓練次數設為300,輸入圖片尺寸設為1 024 px×1024 px,batch_size設為16。

3.3 YOLOv5模型訓練

本文使用DOTA數據集通過Input(輸入端)進行輸入,由于遙感圖像數據集中要檢測的目標尺寸較小,為了提升網絡的訓練效果,Input端對輸入的圖片進行預處理操作,并將其輸入到YOLOv5網絡中進行訓練,分別經過Backbone(特征提取網絡)、Neck(特征融合網絡),得到訓練好的模型,然后利用訓練好的模型通過檢測網絡(Prediction預測端)進行預測,最后輸出預測結果。小目標檢測過程如圖4所示。

圖4 小目標檢測過程

3.3.1 Input(輸入端)

DOTA數據集通過Input(輸入端)進行輸入,在Input端會采用Mosaic數據增強、自適應錨框計算和統一圖片尺寸大小等方法對要訓練的數據進行預處理,從而減少黑邊降低冗余信息,以此來提升遙感圖像目標檢測精度。

3.3.2 Backbone(特征提取網絡)

Backbone包括Focus模塊、CSP模塊和SPP模塊。YOLOv4中的Backbone中只有CSP模塊,而YOLOv5中新增了Focus模塊[5]。新增的Focus模塊的作用主要是對圖片進行切片操作,類似于下采樣,其過程是逐步變化的。比如在Focus模塊中輸入圖像為1 024 px×1 024 px×3 px,通過切片操作將圖像變為512 px×512 px×12 px的特征圖,再經過3×3的卷積操作,最終輸出512 px×512 px×32 px的特征圖。SPP是空間金字塔池化的簡稱,由卷積層、不同大小的池化層和卷積層構成,其先通過一個標準卷積模塊將輸入通道數減半,然后分別采用kernel-size為5、9、13的最大池化Maxpool(對于不同的核大小,padding是自適應的),再將3次最大池化的結果與未進行池化操作的數據進行Concat,提高感受野。

3.3.3 Neck(特征融合網絡)

Neck的結構由FPN(自上而下)+PAN(自底向上結構的特征金字塔)結構組成,FPN結構采用上采樣方法傳遞信息和融合信息,獲取預測的特征圖。YOLOv5網絡結構中在FPN層后面,還添加了一個特征金字塔,自下向上,其中有2個PAN(路徑聚合網絡)結構,通過下采樣操作,將低層與高層的特征信息進行融合,輸出預測的特征圖。

3.3.4 Prediction(預測端)

Prediction由非極大值抑制(NMS)和Bounding box損失函數2大部分組成。在Bounding box中,GIOULoss函數作為損失函數,通過NMS函數可以在預測結果處理階段解決多余預測框問題或進行篩選,以此選擇最優預測框。計算公式如下

式中:實線框A表示目標位置框線,虛線框B表示目標的預測框線,C作為包圍A、B框線的最小包圍框。IOU是輸出框和真實框的交并比。

4 實驗結果

YOLOv5的初始權值采用COCO數據集上訓練好的yolov5s.pt,權值采用模型從源數據學到的遷移到目標數據集上,使得YOLOv5模型收斂,得到訓練好的模型,其中YOLOv5模型訓練耗時為6.609 h,得到的權值文件大小為14.8 MB,隨著迭代次數增加,訓練參數變化如圖5所示。

圖5 訓練參數變化圖

box_loss:推測為GIOU損失函數均值,其值越小方框越準。

obj_loss:推測為目標檢測loss均值,其值越小目標檢測越準。

cls_loss:推測為分類loss均值,其值越小分類越準。

實驗使用衛星拍攝的遙感圖像作為數據,原始圖片中汽車、輪船是尺寸很小的目標物體,本文針對小目標檢測任務訓練的YOLOv5模型能夠準確地識別出目標的類別。由表1可知,相較于YOLOv3,YOLOv5檢測精度提高了8.93%。

表1 模型對比試驗結果比較

5 結束語

目前遙感圖像中存在對物體檢測尺寸較小、檢測不準確等問題,本文提出將YOLOv5算法應用到遙感圖像目標檢測中,首先對輸入圖片進行預處理,通過隨機縮放、裁減和排列對圖片進行拼接,增加小目標數量,提高網絡魯棒性豐富數據集。然后將圖像進行卷積得到特征圖,并送入主干網絡中進行特征融合。GIOU_Loss做為損失函數,對遙感圖像中的小目標進行檢測。本文采用衛星拍攝的圖片作為目標檢測數據,根據結果展示表明,YOLOv5算法能有效檢測識別出遙感圖像中的小目標。

猜你喜歡
卷積模塊圖像
28通道收發處理模塊設計
“選修3—3”模塊的復習備考
基于3D-Winograd的快速卷積算法設計及FPGA實現
巧用圖像中的點、線、面解題
有趣的圖像詩
卷積神經網絡的分析與設計
從濾波器理解卷積
基于傅里葉域卷積表示的目標跟蹤算法
遙感圖像幾何糾正中GCP選取
集成水空中冷器的進氣模塊
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合