?

基于YOLO-v7的無人機航拍圖像小目標檢測改進算法

2024-02-21 06:00郝紫霄
軟件導刊 2024年1期
關鍵詞:航拍函數特征

郝紫霄,王 琦

(江蘇科技大學 計算機學院,江蘇 鎮江 212003)

0 引言

目標檢測作為圖像處理與計算機視覺領域的關鍵問題,備受重視。隨著無人機、衛星遙感、航空航天等技術的發展,航拍圖像目標檢測已成為研究熱點。無人機航拍圖像是航拍圖像的重要分支,是以無人機作為圖像傳感器的空中搭載平臺所拍攝的圖像。無人機具有操控簡單、飛行靈活、成本低等優點。目前,無人機航拍圖像目標檢測已廣泛應用于城市規劃、交通監測、生態保護、軍事安防等領域,且適用場景不斷拓展[1]。然而,航拍圖像區別于普通圖像,具有背景信息復雜、目標尺度小、目標具有顯著的方向性且分布稀疏不均等特點[2],這使得航拍圖像的目標檢測,尤其是小目標檢測充滿挑戰。

為應對現有算法在無人機航拍圖像小目標檢測任務中存在的誤檢率與漏檢率高、精度較低等問題,本文提出一種基于YOLO-v7 的無人機航拍圖像小目標檢測改進算法FCL-YOLO-v7。在此基礎上,本文作出如下貢獻:①將原始的3 個比例檢測層擴充為4 個比例檢測層,增加小目標檢測層;②用FReLU 激活函數代替YOLO-v7 網絡中Conv 模塊與RepConv 模塊中的SiLU 激活函數;③在YOLO-v7 的骨干網絡(backbone)中添加CBAM 注意力機制模塊;④通過從公開數據集中獲取圖片與自主采集圖片,構建針對小目標的無人機航拍圖像數據集。本文通過對比實驗與消融實驗驗證了改進算法在無人機航拍圖像小目標檢測任務中的優越性。

1 相關研究

傳統算法在無人機航拍圖像目標檢測領域取得了良好效果。韓露[3]基于SIFT 算法與霍夫變換,提出了針對無人機航拍圖像中十字路口目標的檢測方法。Xu 等[4]利用HOG 特征與SVM 分類器,并結合Viola-Jones 檢測器,實現了低空無人機圖像中的車輛目標檢測。然而,傳統算法不適應數據量龐大的無人機航拍數據集,且無法達到精準實時的檢測效果。

基于深度學習的目標檢測已成為主流,主要可以分類為一階段的目標檢測算法和二階段的目標檢測算法。二階段目標檢測算法基于區域建議,先生成一系列樣本候選框,然后通過卷積神經網絡進行樣本分類,常用算法有Fast RCNN[5]、Faster RCNN[6]等。王立春等[7]利用Faster RCNN 算法,并結合連通區域顏色面積特征,提高了無人機圖像中公路標線目標檢測準確率。二階段算法雖然精度高,但實時性較差。一階段目標檢測算法又被稱為基于回歸的目標檢測算法,直接回歸物體的類別概率和位置坐標,可以更好地兼顧精度與速度,代表算法有SSD(Single Shot Multi-Box Detector)[8]、YOLO(You Only Look Once)[9]系列等。Li 等[10]利用遷移學習原理,設計了一種多塊SSD算法,提高了鐵路監測場景下無人機航拍圖像小目標檢測精度。Zhang 等[11]提出一種改進的YOLO-v3 模型,使其具有更深的特征提取網絡和更多的不同尺度的檢測層,并通過實驗驗證了其魯棒性與準確性。Sun 等[12]提出了一種改進的YOLO-v5 算法,添加了上采樣應對高采樣和大感受野的問題,同時采用特征融合方法應對淺層特征語義信息不足的問題,并用Mobilenet-V2 輕量網絡提升檢測速度。

2 相關算法與技術

2.1 YOLO-v7原理與結構

2022年提出的YOLO-v7[13]算法,其作為YOLO 系列的新秀,相比之前的YOLO 算法在精度與速度等方面都有所提升,在Microsoft COCO 數據集上的驗證精度比YOLO-v5s算法高6.4 個百分點,每秒處理的圖像幀數目多39 幀。在先前版本算法基礎上,YOLO-v7 作出的改進主要有:①設計了幾種可訓練的bag-of-freebies 免費包方法,包括重參數化、引導頭(lead head)、輔助頭(auxiliary head),使得實時目標檢測可以在不增加推理成本的前提下,大幅度提高檢測精度;②在PlainNet 和ResNet 中設計了有計劃的重參數化卷積結構,解決了重參數化的模塊如何取代原始模塊的問題,以及使用計算和優化方法生成可靠的軟便簽(Soft Label)并設計合理分配機制,解決了動態標簽分配策略如何處理不同輸出層的分配問題;③提出了“extend 擴展”方法與“復合縮放”方法,在實時目標檢測任務中能夠更充分地利用參數與計算資源。YOLO-v7 相比現有的實時目標檢測器,參數量減少約40%,計算量減少約50%,推理速度與檢測精度也得到提升;④YOLO-v7 對YOLO 的架構進行了革新,以YOLO-v4、Scaled YOLO v4[14]等為基礎,構建了基于ELAN 計算塊的E-ELAN(Extended Efficient Layer Aggregation Network)網絡架構,在不破壞原有梯度路徑的條件下,提高了網絡學習能力。ELAN 結構如圖1所示。

Fig.1 ELAN structure diagram圖1 ELAN結構示意圖

YOLO-v7 的head 網絡中的ELAN 模塊與backbone 網絡中的ELAN 模塊(見圖2)略有不同,進行concat 操作的數量由4個變為6個,示意圖如圖2所示。

Fig.2 Head-ELAN diagram圖2 Head-ELAN示意圖

通過上述改進,YOLO-v7 的速度足以支持其在邊緣設備上做推理運算。YOLO-v7在保持相對精度(56.8%)下的絕對的速度優勢(30FPS)使得它在無人機集群飛行、無人機自主避障、無人機輔助降落等應用場景中擁有可預見的廣闊前景。

2.2 FReLU激活函數

YOLO-v7 網絡中的Conv 模塊中包括卷積操作、批歸一化操作(Batch Normalization)、激活函數操作。在原始YOLO-v7 算法中使用的是SiLU(Sigmoid Weighted Liner Unit)激活函數[15],公式如式(1)所示。

SiLU 函數的簡單性及其與ReLU 函數的相似性使其可以有效替換ReLU 激活函數。而2020 年提出的FReLU(Funnel Activation)[16]激活函數在圖像分類、對象檢測、語義分割任務上的表現都優于ReLU、SiLU 等激活函數,克服了激活函數的空間不敏感對視覺任務的阻礙。作為專門為視覺任務設計的激活函數,FReLU 使用簡單的二維條件代替激活函數中人工設計的條件,二維空間條件可以實現像素級的建模能力,用規則卷積捕捉復雜的視覺布局。FReLU 的公式如式(2)、式(3)所示。

其中,T(xc,i,j)代表定義的漏斗式條件;代表第c通道上,以2D 位置(i,j)為中心的窗口代表此窗口在同一通道中的共享參數。FReLU 以微不足道的計算開銷與空間條件開銷為代價,在一定程度上提升了目標檢測,特別是小目標檢測的精度。

2.3 CBAM注意力機制

即添即用的注意力機制模塊可以讓目標檢測網絡自適應地關注到值得注意的區域與特征,而不是不加區分地關注所有區域與特征。注意力機制可分為通道注意力機制、空間注意力機制、結合通道與空間的注意力機制。卷積注意力機制模塊(Convolutional Block Attention Module,CBAM)[17]是通道注意力機制與空間注意力機制結合的典型實現,可以關注每個通道的比重與每個像素點的比重。CBAM 的示意圖如圖3所示。

Fig.3 CBAM diagram圖3 CBAM示意圖

圖3 中通道注意力機制模塊的公式如式(4)、式(5)、式(6)所示。

其中,uc是第c個通道大小為(H,W)的特征圖;zcm是全局最大池化處理后的結果;zca是全局平均池化操作后的結果;Fmlp是共享全連接層處理;將兩個處理結果相加再取Simoid函數值,得到權重Mc,最后,將權重與輸入特征層相乘。

圖3中空間注意力機制模塊的公式如式(7)所示。

其中,Ms(F)是對特征圖F處理得到的權重值;AP是平均池化操作;MP是最大池化操作;Conv表示對堆疊結果進行卷積操作;σ是Simoid函數操作。

CBAM 可以提高目標檢測網絡性能,節省參數與計算力,但在實際使用時要根據自身數據與網絡特點綜合決定插入與否以及具體插入位置,否則會得不償失。

3 改進的YOLO-v7算法

3.1 FCL-YOLO-v7

隨著無人機飛行高度的變化,目標的成像尺寸也會隨之變化,因此目標檢測模型要適應多種尺度。為使網絡盡可能多地獲取小目標的特征信息,從而提升小目標的檢測效率,本文對YOLO-v7 的網絡結構進行了改進。YOLOv7 中,backbone 網絡對輸入圖像的寬高進行壓縮,同時擴張通道數;經backbone 對特征點進行連續下采樣后,會產生具有高語義內容的特征層,然后加強特征提取網絡會重新進行上采樣,使得特征層的尺度重新變大,利用大尺度的特征去檢測小目標。原始YOLO-v7 算法的加強特征提取網絡會進行兩次上采樣,而FCL-YOLO-v7 添加了第3次上采樣,繼續處理特征圖,并將第3 次上采樣之后的特征圖與骨干網絡中經過Stem 模塊、第一個Conv-ELAN 模塊后生成的特征層進行拼接操作,實現特征融合,從而生成寬高為160 的第4 個輸出檢測層。此外,由于上采樣次數增加為3,下采樣的次數也改為3 次,反映到網絡結構上的變化為:加強特征提取網絡中添加了一組“下采樣模塊-ElAN 模塊”。因此,相比原始YOLO-v7 生成的3 個檢測層,改進算法中對應尺度的檢測層中由加強特征提取網絡生成的部分在進行RepConv 操作前多進行了一組上采樣與一組下采樣操作,檢測層包含的小目標信息量得到提升。經過改進,YOLO-v7 的特征金字塔結構得到了拓展[18],在一定程度上解決了淺層特征語義信息不足的問題;改進算法還考慮到新增的上采樣結果可能會對小目標特征不明確,因此將之前下采樣中生成的特征層與上采樣中尺度相同的特征圖進行堆疊,不僅盡可能多地保留了小目標信息,而且有利于充分利用深層特征與淺層特征,有利于融合紋理特征與語義特征。

為改進小尺度目標檢測效果,FCL-YOLO-v7 對錨框(Anchor)進行了調整。錨框機制的原理是遍歷輸入圖像上所有可能存在目標的像素框,然后選出實際存在目標的像素框,并對像素框的尺寸與位置進行調整從而完成目標檢測任務。在實際任務中,錨框設置為多種不同尺度,以使網絡檢測范圍盡可能多地覆蓋面積與區域,同時方便后續錨框調整到與真實框基本接近。錨框機制的引入不僅可以降低模型訓練復雜度、提高運行速度,還能有效預測不同寬高比的物體。錨框是檢測的起點,需要將設計好的錨框分配給不同尺度的物體,然而物體的尺度是連續的,錨框的尺度是離散的,如果沒有設計好錨框尺寸,容易造成小目標漏檢。在原始YOLO-v7 算法中,Anchor 參數為[12,16,19,36,40,28];[36,75,76,55,72,146];[142,110,192,243,459,401],每一組Anchor 參數代表在不同的特征圖上的錨框,一般在含有更多小目標信息的大的特征圖上去檢測小目標。改進后的網絡Anchor 參數為[12,16,30,15,15,30];[56,20,28,43,93,30];[46,95,167,48,110,155];[383,136,286,354,609,255],解決了之前的3組錨框配置無法滿足4個檢測層的問題。

激活函數作為非線性因素,具有去線性化,即克服線性模型局限性的作用。因此,目標檢測模型中激活函數的選擇對其性能的影響不容忽視。在YOLO-v7 網絡中,Conv 模塊是其結構的關鍵組成部分。Conv 模塊中封裝了3 個功能,分別是卷積、批歸一化、激活函數。改進算法將原網絡中的Conv 模塊包含的激活函數由SiLU 替換為FRe-LU,原網絡中RepConv 模塊包含的激活函數也使用FReLU函數替換SiLU 函數。YOLO-v7 中的RepConv 借鑒了RepVGG[19]的架構,延續了其推理速度快、記憶效率高的性能,而RepVGG 的提出是為了解決ResNet 等復雜多分支設計的模塊難以實現且特質化困難的問題。

YOLO-v7 網絡中的backbone 部分首先是Stem 結構,它由堆疊的3 層Conv 模塊構成。第1 個Conv 模塊的卷積核設置1,步長設置為1;第2 個的卷積核設置為3,步長為2;第3 個的卷積核設置為3,步長為1,以實現寬高分別減半、通道數變為64 的效果(針對三通道彩色圖片的處理效果)。改進算法將YOLO-v7 的Stem 結構的第一個Conv 模塊替換為CBAM 注意力機制模塊。CBAM 是一種輕量型的通道—空間注意力機制,適合無人機的實時目標檢測任務。

經過上述改進,FCL-YOLO-v7 算法的網絡結構如圖4所示。

3.2 PCUS-DataSets

無人機航拍圖像小微目標數據集較缺乏,因此本文構建自定義數據集進行后續實驗。自定義數據集PCUS-DataSets 的圖片由公開數據集DTB70[20]、Visdrone[21]、Det-Fly[22]、NPS-Drones 以及自采集數據集中的相關圖片所構成,其中,自采集圖像由大疆Mavic Air 2 無人機通過實際飛行進行采集,分辨率為8 000×6 000。PCUS-DataSets 的圖片總量為718 張,隨機劃分為訓練集圖片588 張,驗證集圖片65 張,測試集圖片65 張。為定量定性地測試本文算法針對無人機航拍圖像中小目標的檢測性能,PCUS-Data-Sets 中的目標尺度均微小,在整張圖片中的像素數占比可低至1/50 000。數據集還包含大量稠密分布、遮擋分布、邊角分布、前景與背景難以區分等檢測較為困難的小目標,分別如圖5(a)(b)(c)(d)所示(彩圖掃OSID 碼可見,下同)。

Fig.5 Diagram of some targets圖5 部分目標示意圖

PCUS-DataSets 中的目標被標記為Pedestrian、Cyclist、UAV、Sheep 4 類:Pedestrian 類標記行人目標,共1 122 個;Cyclist 類標記騎行者目標,標記框覆蓋騎行者及其代步非機動車機身,共616 個;UAV 標記同伴無人機目標,使算法的應用場景從單個無人機飛行擴展為無人機集群飛行,共325 個;Sheep 標記羊目標,共583 個。PCUS-DataSets 的拍攝場景多樣,包含公園、商業街區、廣場、公路、校園、水庫、草地、天空、海濱等,且涵蓋各時間維度。

4 實驗與分析

實驗條件為:本文實驗是在Windows10 操作系統下進行;使用單塊GPU,型號為NVIDIA GeForce RTX 3060 Laptop GPU;處理器為AMD Ryzen 75800H;訓練時采用帶預熱的余弦退火算法;網絡輸入尺寸為640×640;實驗數據集為自主構建的PCUS-DataSets 數據集。實驗參數設置如表1所示。

Table 1 Partial experimental parameters表1 部分實驗參數

為評價改進算法性能,引入指標:精確率(Precision)、召回率(Recall)、測試所用非極大值抑制時間(NMS_time),公式如式(8)、式(9)所示。

其中,TP代表將正類預測為正類數,FP代表將負類預測為正類數,FN代表將負類預測為正類數。

本文以計算量,即模型運算次數衡量模型時間復雜度;以訪存量,即模型參數數量衡量模型空間復雜度。輸入圖像尺度為640×640 時,FCL-YOLO-v7 模型計算量為121.2 GFLOPS,參數量為35.58M。

4.1 對比實驗及結果分析

為檢測本文改進算法的效果,將其與同類算法進行對比實驗,結果如表2 所示。本文涉及的對比實驗中,網絡的深度(depth_multiple)均設置為1.0,寬度(width_multiple)均設置為1.0。

Table 2 Comparison of detection results of different algorithms表2 不同算法檢測結果比較

由表2 可知,FCL-YOLO-v7 算法在精確率上比YOLO-v3 高7.3 個百分點,比YOLO-v5 高6.5 個百分點,比原始YOLO-v7 算法高6.7 個百分點;在召回率上比YOLO-v3高1.9 個百分點,比YOLO-v5 高3.3 個百分點,比原始YOLO-v7 算法高0.2 個百分點。經過改進,算法性能得到提升,與無人機航拍圖像小目標檢測任務的適配性得到提高。

為直觀展示本文算法改進效果,圖6(a)(b)分別為用YOLO-v7、FCL-YOLO-v7 在PCUS-DataSets 數據集上訓練得到的權重檢測無人機圖像目標所得到的效果圖。

Fig.6 Experimental processed image圖6 實驗處理圖像

YOLO-v7 算法處理的圖6(a)中出現了將斑馬線誤檢為Cyclist 目標、將汽車輪胎誤檢為Pedestrian 目標的情況,正確目標的置信度較低,如右下角Cyclist 目標的置信度為0.78。而FCL-YOLO-v7 算法處理的圖6(b)中則沒有誤檢,且右下角Cyclist 目標的置信度為0.94。由此可見,改進算法能有效解決小目標檢測難題。

4.2 消融實驗及結果分析

為了進一步驗證本文提出的各項改進對算法性能的影響,本文進行了消融實驗。消融實驗設置如表3 所示,對每個實驗進行編號,表格中的“加號”表示“進行此項改進”,實驗結果如表4 所示。實驗1-4 在訓練時應用了遷移學習原理,均使用了YOLO-v7 在Microsoft COCO 數據集上的預訓練權重[23],利用預訓練權重,可以使模型從較高的起點開始訓練,從而以較短的耗時得到更精確的模型。Microsoft COCO 數據集由123 287 張圖片構成,包含80 個目標類,且含有海量的小目標,因此預訓練權重的使用可以解決無人機航拍圖像樣本較少的問題。

Table 3 Ablation experiment design表3 消融實驗設置

Table 4 Results of ablation experiment表4 消融實驗結果

消融實驗證明本文提出的改進方法確實在不影響用時的條件下有效地提高了算法精度,且改進算法中的各項改進均產生了積極影響。

5 結語

本文提出一種基于YOLO-v7 的無人機航拍小目標檢測改進算法FCL-YOLO-v7,增加了小目標檢測層并改進錨框數量與尺度設置,添加CBAM 注意力機制,使用FRe-LU 作為激活函數。在自主構建的無人機航拍圖像小目標數據集PCUS-DataSets 上進行對比實驗及消融實驗,結果證明本文改進算法的性能優于YOLO-v3、YOLO-v5、原始YOLO-v7 算法,精確率較YOLO-v7 提升6.7%。但本文算法也存在不足,如改進方法會提高網絡復雜度,增加參數量。下一步工作可改進如下:在保證高檢測精度的前提下,將模型輕量化,降低模型參數量與網絡復雜度;改進正負樣本劃分與采樣策略,以實現召回率的有效提升;在不同自然環境狀況下,繼續進行無人機實飛作業,擴充數據集。

猜你喜歡
航拍函數特征
二次函數
第3講 “函數”復習精講
航拍下的苗圃與農場
二次函數
函數備考精講
如何表達“特征”
不忠誠的四個特征
難忘的航拍
抓住特征巧觀察
《航拍中國》美得讓人想哭
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合