陳范凱,李士心
天津職業技術師范大學電子工程學院,天津300222
隨著卷積神經網絡(CNN)目標檢測算法不斷發展,檢測性能逐漸提升,使得深度學習算法更適用于機器視覺的應用[1]。根據輸入圖像的處理方式,常使用兩階段檢測和單階段檢測兩種物體檢測方法,在不同應用場景下均表現出良好準確率和識別速度。其中,R-CNN[2]、Fast R-CNN[3]、Faster R-CNN[4]、R-FCN[5]等都是兩階段檢測方法。DenseBox[6]、RetinaNet[7]、SSD 系列[8]、YOLO系列[9-12]等都是單階段檢測方法。
在無人機飛行過程中,搭載設備需實時傳輸航拍圖像,這對目標檢測提出更高要求。此外,圖像以小目標為主,具有模糊、密集排列和稀疏分布等特點,而且常常淹沒在復雜的環境背景中。綜合上述問題,使得傳統檢測方法很難準確定位無人機航拍圖像上的目標,搭建高性能的目標檢測模型成為當下研究的熱點。近年來,YOLO系列檢測方法由于其優越的速度和良好的精度,廣泛應用于無人機航拍圖像的目標檢測。程江川等人[13]采用輕量化高效骨干網絡對模型進行改進,提高模型檢測速度。李利霞等人[14]設計了一種多級特征融合模塊,動態調節各輸出檢測層的權重,提高模型的適應性。李楊等人[15]在YoloX的基礎上,通過Neck多尺度特征融合提高淺層目標的感受野,加大對小目標的識別能力。甄然等人[16]利用深度可分離卷積替換傳統卷積,使Yolov5模型輕量化,同時增加注意力機制,提升模型的小目標識別能力。薛珊等人[17]提出了一種動態實時檢測網絡模型Yolo-Ads,增強了網絡對無人機尺度變化的魯棒性。謝椿輝等人[18]通過增加小目標預測層和優化損失函數來提高模型的檢測效果。上述無人機目標檢測模型主要采用高效輕量化結構來降低模型參數量和計算復雜度,提高算法檢測速度,提升模型識別能力。由于輕量化網絡結構使得網絡感知深度變淺,圖像特征融合和提取能力無法更好發揮,使得無人機航拍圖像檢測精度不高。針對上述問題,改進后模型需在保證無人機檢測速度要求的前提下,致力于提高模型的檢測精度和準確率。論文以Yolov5s 模型為基礎,首先采用梯度流豐富的C2F模塊替換C3模塊加強圖像特征提取和特征融合能力;其次通過輕量化上采樣算子CARAFE 對FPN 網絡進行優化,擴展模型的感受野;最后采用動態標簽分配策略OTA(optimal transport assignment for object detection),從全局信息角度實現標簽最優分配,提高了網絡對候選框的處理效果,使得模型訓練更加穩定高效,以滿足無人機實時檢測要求。
Yolov5 是Yolo 系列第五代,是一款高性能目標檢測模型[19],Yolov5 模型架構包含了Input、Backbone、Neck、Head四個部分。
Input部分:目標檢測模型輸入端,該部分包含一個圖像預處理階段,將輸入圖像進行自適應縮放來匹配網絡的輸入大小,并進行歸一化操作,同時Yolov5 利用Mosaic圖像增強提升模型適應性。
Backbone 部分:Backbone 網絡是模型的主干網絡,通常采用一些性能優異的分類器作為網絡架構用來對目標圖像進行特征提取。Yolov5 采用改進后的CSPDarknet53結構,由Conv模塊、C3模塊以及SPPF模塊構成。
Neck部分:Neck部分是網絡銜接部分,主要用來獲取傳遞特征信息并進行融合。Yolov5使用FPN-PAN結構,FPN 結構是自頂向下結構,通過上采樣和融合底層特征信息的方式得到預測特征圖,PAN采用自底向上結構對FPN 特征圖進行融合補充的特征金字塔網絡結構。Yolov5 在Yolov4 的Neck 網絡基礎上進行改進,通過借鑒CSPNet設計的C3模塊替換普通卷積操作,進一步加強網絡特征融合能力。
Head 部分:Yolov3 以后的系列采用三個檢測層對目標進行檢測識別,分別對應Neck 部分中得到的三種不同尺寸特征圖。特征圖上每個網格都預設了三個不同寬高比的錨框(anchor),可以在特征圖通道維度上保存所有基于anchor的位置信息和分類信息,用來預測和回歸目標。
現有卷積網絡體系結構中,特征上采樣是一個關鍵算子[20]。傳統算法中上采樣以最近鄰插值法為主,僅僅通過像素點位置來決定上采樣核,并沒有利用特征圖的語義信息,而且感知域很小。所以本文采用感受野較大的輕量級通用上采樣算子CARAFE,可以很好利用特征圖的語義信息,同時沒有引入過多參數量和計算量。對于內容信息,CARAFE可以實現在不同位置使用自適應和優化重組內核,實現比主流上采樣運算符(如插值或去卷積)更好的性能。利用CARAFE 代替所有特征層中最近鄰插值上采樣,加強了低分辨率特征圖經過CARAFE上采樣與高分辨率特征圖的融合,提升了特征金字塔網絡性能。CARAFE流程圖如圖1所示。

圖1 CARAFE流程圖Fig.1 CARAFE flow chart
CARAFE分為兩個主要模塊,分別是上采樣核預測模塊和特征重組模塊。假設上采樣倍率為σ,給定一個形狀為H×W×C的輸入特征圖,CARAFE首先利用上采樣核預測模塊預測上采樣核,然后利用特征重組模塊完成上采樣,得到形狀為σH×σW×C的輸出特征圖。在上采樣預測模塊中,為了減少后續計算量,首先對于輸入形狀為H×W×C的特征圖經過1×1卷積進行通道數壓縮,壓縮為H×W×Cm再進行內容編碼和上采樣核預測,利用Kencoder×Kencoder卷積層來預測上采樣核,輸入通道數為Cm,輸出為,然后將通道在空間維度展開,得到形狀為的上采樣核,將上采樣核進行歸一化操作,使其卷積核權重和為1。在特征重組模塊中,對于輸出特征圖中每個位置,將其映射回輸入特征圖,取以之為中心的Kup×Kup的區域,和預測該點上采樣核作點積,得到輸出值。相同位置不同通道共享同一個上采樣核,最后得到輸出為σH×σW×C的輸出特征圖。
利用CARAFE 上采樣替換特征金字塔網絡中最近鄰上采樣改進后的模型,在召回率、準確率和檢測精度方面均有提升,增強了特征金字塔網絡對圖像特征提取和融合的能力。
Yolov5 模型中C3 模塊主要借助CSPNet 提取分流結合殘差結構的思想,通過n值控制CSPNet 中主分支梯度模塊BottleNeck,達到豐富模型語義效果,C3 模塊結構如圖2 所示。C2F 模塊首先經過ConvBnNSiLU 將模塊前特征信息進行卷積提取,再通過Spilt模塊進行分流,分割后信息進入n個BottleNeck模塊分別進行梯度流提取,將信息匯入Concat 模塊進行合并,最后經過卷積進行特征融合,C2F模塊結構如圖3所示。相比較C3模塊,C2F 模塊主要是通過更多分支層連接,從而豐富模型梯度流,對小目標和密集目標具有更好的識別效果。利用C2F 模塊替換所有C3 模塊改進后的模型,在增加少量參數量的情況下,較大地提升了模型的識別能力。改進后的模型結構圖如圖4所示。

圖2 C3模塊結構圖Fig.2 C3 module structure diagram

圖3 C2F模塊結構圖Fig.3 C2F module structure diagram

圖4 改進后Yolov5模型結構圖Fig.4 Improved Yolov5 model structure diagram
在目標檢測中,標簽分類主要是為目標框尋求獨立的正負樣本標簽[21]。Yolov5 模型在標簽分配上采用真實框和預選框之間的寬高比,這類標簽分配機制無法考慮尺寸、形狀或者邊界遮擋帶來的差異性,同時沒有進行全局性考慮。在處理不明確錨框時,往往需要局部之外的更多信息,而傳統標簽分配策略就是獨立為每個真實框找尋最優標簽,沒有利用全局最優思想,容易造成模糊錨框在標簽分配時對訓練網絡進行錯誤干擾,影響目標檢測效率。所以引入了一種基于全局考慮的動態標簽分配策略OTA,將標簽分配過程公式化為最優運輸問題,免去傳統手工設定參數的方式來實現標簽分配,讓檢測網絡自主選擇每個目標框對應候選框的數量,解決了模糊錨框的分配問題,提高了網絡對候選框的處理效果。OTA流程圖如圖5所示。

圖5 OTA流程圖Fig.5 OTA flow chart
被測圖片進入目標識別模型,對FPN層上所有錨框進行成本計算,生成正負樣本的成本矩陣C(cost matrix),其中GT表示正樣本目標框和anchors對應生成的成本大小,BG表示負樣本即背景類和anchors 的成本。正樣本成本價值表示從真實框傳輸一個正標簽到預選框的運輸成本記為,將其定義為真實框和預選框之間的分類損失和回歸損失的加權和,如公式(1)。
其中,θ是模型參數,分別表示候選框aj預測分類得分和預測目標得分,和表示真實框相關預測分數。Lcls和Lreg分別表示交叉熵損失和IoU損失,α表示權重系數。
其中,?表示背景類。將Cbg∈R1×n和Cgt∈Rm×n進行合并組成完整的成本矩陣C∈R(m+1×n),同時將每個目標框對應的標簽數S進行適應性變化,如公式(3)所示:
將生成的成本矩陣C和供應量S以及需求量d通過Sinkhorn-Knopp Iteration 算法來獲得標簽分配方案π*,得到π*后,對應標簽分配就是將每個anchor傳輸給這個anchor最多標簽的真實框。
為了進一步優化標簽分配策略,針對每個真實框,只挑選每個FPN 層中距離邊界框中心最近的r2錨框,對于其他錨框,對應的成本會加上額外常數項,減少訓練階段其被分配為正樣本的概率。同時根據預測框和對應真實框的IoU 值動態估計每個真實框合適的正樣本數量,降低計算量,加強標簽分配策略泛化能力,提高目標識別模型的準確率。
采用由天津大學團隊開源的數據集VisDrone2019,該數據集是一個大型無人機視角下的數據集,數據集亮度、色彩、氣候環境等因素豐富,涵蓋生活中常見10 種目標,且檢測目標小而密集,非常符合本次實驗要求。從數據集中分別隨機抽取了1 550張,464圖片組成本次實驗的訓練集和驗證集。
所有實驗均在相同的硬件環境中進行,相關環境配置如表1所示。

表1 實驗配置表Table 1 Experimental configuration table
本實驗選取了目標檢測領域重要評價指標對模型進行性能檢測,分別是準確率P(Precision)、召回率R(Recall)、精度AP(average precision)和平均精度mAP(mean average precision)[22],對應計算公式如式(4)~(7)所示:
上述式中,n表示標簽種類,TP表示正確識別正樣本個數,FP表示錯誤識別正樣本的負樣本個數,FN表示錯誤識別負樣本的正樣本個數。
為了驗證改進模型算法的可行性和有效性,針對改進模塊進行橫向對比實驗,在保持原有模型基礎上,對相同位置不同改進點進行對比實驗。實驗均在Yolov5-7.0版本基礎上進行改進,迭代次數為300次。
3.4.1 CARAFE上采樣對比分析
利用輕量級上采樣算子CARAFE 替換傳統模型中最近鄰插值法(Nearest),同時對比上采樣插值法,選取雙立方插值法(Bicubic)、轉置卷積法(ConvTranspose2d)進行對比實驗。由表2可知,利用CARAFE上采樣改進后的模型準確率達到了49%,召回率達到了42.9%,mAP值達到了42.6%,相較其他上采樣算法,性能更佳。

表2 不同上采樣算法檢測性能對比表Table 2 Different upsampling algorithms detection performance comparison table
3.4.2 C2F模塊對比分析
為了驗證含有殘差結構C2F模塊的有效性,針對模型中殘差模塊進行對比實驗分析。Yolov5模型4.0版本以后殘差模塊采用C3模塊。C3_Faster模塊是在FasterNet[23]輕量化模型基礎上提出的,致力于保證準確率的同時減少模型參數。CSPstage 模塊引用DAMO-YOLO 的RepGFPN多尺度特征融合思想[24],通過加強特征融合能力來提高目標檢測精度。VoVGSCSP 模塊[25]是由高效輕量化卷積GSConv組成的,用于提高模型檢測速度和精度。C2F模塊采用多層次梯度提取的思想,加深了特征提取的網絡層次,加大了模型參數量的同時提升模型檢測精度。對比實驗選取的5 種殘差模塊在目標特征提取和特征融合方面均表現出優異效果。由表3可知,相比較其他模塊而言,C2F 模塊參數量有所增加,但mAP 提升較明顯。相較于C3_Faster 模塊的mAP@0.5提高了10.7 個百分點,較CSPstage 模塊提高了2.1 個百分點,達到46.6%,同時mAP@0.5-0.95 達到24.1%。對比實驗結果進一步驗證了C2F模塊的有效性。

表3 不同殘差結構模塊實驗數據對比表Table 3 Different residual structure module experimental data comparison table
為了驗證改進模型算法的高效性,對算法所提及的改進點在數據集上進行消融實驗。由表4可知,Yolov5算法模型在數據集上平均精度為40.6%,用C2F模塊替換C3 模塊后的Yolov5s_1 模型在平均精度方面提高了5.7 個百分點,表明選用C2F 模塊在目標檢測模型性能上有所提升。Yolov5s_2是在傳統模型基礎上通過采用CARAFE上采樣算子設計的目標模型,其平均精度提升了0.7 個百分點。利用動態標簽分配策略改進的模型Yolov5s_3,性能有了較大提升,mAP@0.5達到了60.4%。Yolov5s_4 模型、Yolov5s_5 模型和Yolov5s_6 模型都為改進點兩兩融合的模型,從實驗結果可知,兩兩融合后的模型較之前模型均有提升,并且表現出性能疊加效果。Yolov5s_UAV是所有改進點融合的檢測模型,在檢測速度方面,改進后的模型雖然FPS 有所下降,但仍能達到103 FPS,滿足無人機對于目標檢測的速度要求。在檢測精度方面,改進后的模型較傳統模型mAP@0.5 提升24.7個百分點,達到65.3%,mAP@0.5-0.95提升14.3個百分點。對于無人機航拍數據集,所提改進方法在目標檢測方面性能均有提升,Yolov5s_UAV模型保持較高檢測速度的同時大幅提升了檢測精度,具有很高的適用性。

表4 改進過程模型變化實驗數據表Table 4 Experimental data sheet for improved process model changes
將數據集分別通過Yolov5s模型和改進后的Yolov5s_UAV 模型進行對比實驗。與原模型相比,改進后的模型無論在召回率、準確率還是精度方面都有一定的提升,對數據集全類別提升效果明顯,改進后的模型和傳統模型各個類別的訓練結果對比如表5 所示。通過訓練結果對比圖6 可知,傳統Yolov5s 模型在訓練過程中存在準確率不穩定、召回率不理想和mAP 值不高的問題。改進后的模型在訓練方面比傳統模型準確率更加穩定,召回率曲線更加平滑,同時mAP值也有所提高。

表5 改進模型前后種類檢測性能對比表Table 5 Comparison table of species detection performance before and after improved model

圖6 改進前后模型檢測性能對比圖Fig.6 Comparison of model detection performance before and after improvement
為了驗證改進后模型的高效性和適應性,本文采用其他模型對該數據集進行訓練驗證,分別為Yolov5系列的l、m、s、n版本模型和Yolo系列目前兩大高版本Yolov6和Yolov7[26],同時選取了兩個熱門無人機目標檢測算法優化模型進行對比實驗,分別是輕量化無人機遙感圖像小目標檢測模型LUSS-YOLO[22]和對于航拍小目標的改進模型VA-YOLO[27]。選取參數量、計算力(GFLOPs)、模型大小、mAP@0.5 和mAP@0.5-0.95 等5 個性能指標進行記錄,數據如表6 所示。從表可知,Yolov5s_UAV具有比Yolov5 系列模型參數少和精度高的優點。對比高版本Yolov6和Yolov7,Yolov5s_UAV模型小且檢測精度高。與LUSS-YOLO、VA-YOLO 無人機優化模型相比,改進后模型雖然參數量和模型大小有所增加,但是對于目標識別的精度有較大提高。Yolov5s_UAV 是在滿足無人機目標檢測速度的前提下,通過優化檢測模型結構,從而加強模型性能。

表6 其他主流無人機檢測模型實驗數據對比表Table 6 Other mainstream UAV detection model experimental data comparison table
考慮無人機飛行過程中極易出現圖像抖動、目標遮擋和光線變化等情況,為了更加直觀驗證改進后模型的高效性以及對復雜環境的適應性,組建無人機航拍目標測試集并對傳統模型和改進后的模型進行視覺檢測結果對比。對比結果圖如圖7 所示,圖左側為傳統模型Yolov5s的目標檢測圖,圖右側為改進后的模型Yolov5s-UAV的目標檢測圖。其中圖7(a)表示密集小目標情況下改進前后模型對比圖;圖7(b)表示黑暗模式下對比圖;圖7(c)表示強光照射目標模糊情況下檢測對比圖;圖7(d)表示有目標遮擋情況下檢測對比圖;圖7(e)表示超高角度下模型檢測對比圖。由圖7可知,傳統模型在面對惡劣環境下存在小目標漏檢情況,改進后的模型對小目標檢測性能有了提升,減少了小目標漏檢情況,提高了模型的檢測精度,對復雜環境具有更好的適應性。

圖7 復雜環境下改進前后模型檢測對比圖Fig.7 Comparison of model detection before and after improvement in complex environments
通過分析無人機航拍圖像的特點,總結了無人機航拍圖像檢測方法的不足,在Yolov5模型基礎進行了一些改進,利用C2F 模塊和CARAFE 上采樣算法對骨干網絡進行修改,加強了模型對圖像的特征提取和特征融合能力;采用全局性動態標簽分配策略進行標簽分配,提高了模型對密集目標和小目標的檢測精度。Yolov5s_UAV模型較傳統模型在性能上有較大提升,對數據集被測目標所有種類上的識別準確率、召回率和精度均有顯著提升,mAP@0.5 值提升24.7 個百分點達到了65.3%,mAP@0.5-0.95 提升14.3 個百分點達到了34.5%。改進后的模型在滿足無人機實時檢測的情況下,可以更為準確地完成航拍過程中小目標的檢測任務。