胡清翔,饒文碧,2,熊盛武,2
(1.武漢理工大學 計算機與人工智能學院,武漢 430000;2.武漢理工大學 三亞科教創(chuàng)新園,海南 三亞 572000)
目標檢測是計算機視覺領域的重要研究方向,隨著深度學習的不斷發(fā)展,基于深度學習的目標檢測方法逐步取代了傳統(tǒng)的檢測方法。
小目標檢測是目標檢測領域中的重點和難點方向之一。CHEN 等[1]將小目標定義為目標所占的像素面積與圖像總面積的比值小于0.58%。此外,不同的數(shù)據(jù)集對小目標也有各自的定義。在COCO 數(shù)據(jù)集中,尺寸小于32×32 像素的目標為小目標。小目標具有分辨率低、像素過少以及位置缺乏準確性的特點。因此,相對于通常尺寸的目標,小目標的檢測更加困難。
為獲得較優(yōu)的檢測結果,研究人員不斷增加目標檢測網(wǎng)絡模型的寬度、深度,網(wǎng)絡結構復雜,模型參數(shù)量以及運算量極大,難以部署到無人機等邊緣設備且無法達到實時檢測的目的[2-3]。具有實時檢測能力的小目標檢測算法逐步得到研究人員的關注。為提升小目標檢測能力,主要有以下方法:對圖片進行超分辨率[4-5]、數(shù)據(jù)增強[6-8]、多特征融合[9-11]、結合上下文信息加強特征提?。?2-13]以及額外預測目標框的旋轉角度[14-15],使預測框更貼近真實目標。上述方法為增強小目標的檢測能力,需要增加極大的計算代價,因而在實際應用中難以滿足實時檢測要求。
文獻[4]提出通過生成對抗網(wǎng)絡(Generative Adversarial Network,GAN)對兩階段算法中的候選區(qū)域進行超分辨率,然后對超分辨率后候選區(qū)域中的目標進行分類以及定位。為減少MTGAN 中超分辨方法帶來的巨量計算代價,文獻[5]提出一種對候選區(qū)域進行裁剪的方法,將超分辨率方法應用于裁剪后的候選區(qū)域。但是上述方法具有較大的計算代價和時間開銷,并且基于GAN 的超分辨率方法會產(chǎn)生人工噪音,對小目標的檢測起到負面影響。
AKYON 等[6]提出SAHI 方法。SAHI 方法通過切片輔助推理,將圖片分割為多個重疊的切片,提升小目標在切片圖像中的占比,最后對切片圖片檢測出的結果進行非極大值抑制(Non-Maximum Suppression,NMS)后處理,從而獲得最終的檢測結果。SINGH 等[8]提出圖像金字塔方法,將同一張圖像設置為不同尺寸大小,并將其送入神經(jīng)網(wǎng)絡,在尺寸大的圖片上檢測小目標,在尺寸小的圖片上檢測中、大型目標。WOO 等[9]提出StairNet 方法,在上采樣過程中引入反卷積操作。與不可學習的線性上采樣相比,可學習的反卷積可以獲得特征的細節(jié)信息,有利于小目標特征信息的保存以及傳遞。戚玲瓏等[11]提出一種改進YOLOv7 的小目標檢測方法,利用注意力機制與SIoU 損失函數(shù)提高網(wǎng)絡對小目標的敏感度,但是沒有進一步研究IoU 度量方法對小目標的影響。ZHU 等[12]提出TPH-YOLO 方法,TPH-YOLO方法在YOLOv5 方法的基礎上,使用Transformer 獲取上下文信息,在特征融合網(wǎng)絡中加入CBAM 注意力機制加強小目標的特征提取能力。HAN[14]等提出ReDet,通過額外預測目標框的旋轉角度并且提出旋轉不變的特征對齊方法,加強對航空圖像中的小目標的檢測精度,但是網(wǎng)絡需要額外預測目標框角度,增加了網(wǎng)絡的學習成本與收斂難度。
針對目標檢測模型難以部署在邊緣設備、不能達到實時檢測以及小目標檢測不佳的問題,本文提出基于YOLO 的輕量級小目標檢測算法SS-YOLO。為達到實時檢測速度,SS-YOLO 使用深度可分離卷積操作刪除多分支并行結構,精簡網(wǎng)絡架構。為解決小目標檢測能力不足的問題,SS-YOLO 增加了用于檢測微小目標的特征圖P2,并且通過SUCA(Semantic Upsampling Convolution with Adaptive fusion factor)模塊加強低層特征圖的語義信息。使用基于二維高斯分布的LCNWD損失函數(shù)增強網(wǎng)絡對小目標進行定位,克服IoU 度量方法對目標尺寸敏感的缺點。
YOLO 系列算法在目標檢測領域中具有推理時間較快、檢測精度較高的優(yōu)點。因此,本文提出輕量級主干網(wǎng)絡、SUCA 模塊以及LCNWD損失函數(shù),并將其應用于YOLOv5 算法。
YOLOv5 網(wǎng)絡模型結構如圖1 所示。該模型由3 個主要部分構成,分別是用于初步提取特征的主干網(wǎng)絡Backbone、特征融合網(wǎng)絡Neck 以及用于分類和定位的預測頭Head。Backbone 在對輸入圖像進行特征初步提取獲得特征圖后,送入特征融合網(wǎng)絡Neck 進行特征增強,得到下采樣倍數(shù)分別為8、16、32 的特征圖P3、P4、P5。檢測頭Head 在不同尺寸的特征圖上檢測不同尺寸大小的目標。
圖1 YOLOv5 網(wǎng)絡模型結構Fig.1 Structure of YOLOv5 network model
本文提出的改進思路示意圖如圖2 所示。加快目標檢測速度的主流方法是使用深度可分離卷積以減少網(wǎng)絡參數(shù)量、刪除網(wǎng)絡中多余的旁路分支以精簡結構。受TRC 方法[16]的啟發(fā),本文提出結合歸一化注意力的PP-LCNet[3]輕量級網(wǎng)絡作為特征提取網(wǎng)絡,以加快網(wǎng)絡的檢測速度。
圖2 本文的改進思路示意圖Fig.2 Schematic diagram of improvement ideas in this paper
在YOLOv5 中,Neck 部分會輸出下采樣倍數(shù)分別為8、16、32 的3 個特征圖,分別用于檢測小型、中型以及大型目標。但是在面向無人機遙感領域中,存在大量尺寸小于12 像素的遠景目標。這些目標即使在下采樣倍數(shù)為8 的特征圖中也很難保存足夠的 特征信息。受YOLOF[17]的啟發(fā),在Neck 網(wǎng)絡中額外加入下采樣倍數(shù)為4 的特征圖P2,用于檢測極小的遠景目標。
文獻[18-19]提出的目標檢測包含需要語義信息的分類任務以及位置信息的定位任務。高層的低分辨率特征圖(P4、P5)具有較強的語義信息,但是定位信息較弱。與其相反,低層的特征圖(P2、P3)語義信息較弱,但是定位信息較強。自底向上的路徑聚合網(wǎng)絡通過加強高層特征圖的定位信息,提升中大型目標的檢測能力。但是在無人機遙感圖像中,待檢測的小目標聚集在P2、P3 特征圖中,因此單獨提升P4、P5 特征圖的定位信息對于小目標檢測性能基本沒有提升。由于P2、P3 特征圖的語義信息較弱,因此為加強小目標的檢測能力,需要額外增強其語義信息。受DUC(Dense Upsampling Convolution)[20]以 及fusion factor[21]的啟發(fā),本文提 出SUCA 結合自適應融合因子的語義上采樣卷積方法,用于補充低層特征圖中的小目標的語義信息。
在目標檢測網(wǎng)絡中使用最廣泛的定位回歸損失函數(shù)為IoU 損失函數(shù),但是IoU 度量方法對目標尺寸敏感。在相同偏移下,大目標的IoU 值顯著大于小目標的IoU 值,因此網(wǎng)絡對小目標的定位關注程度明顯低于大目標。受CIoU 損失函數(shù)與歸一化Wasserstein距 離(Normalized Wasserstein Distance,NWD)方法[22]的啟發(fā),本文提出結合NWD 度量方法與中心點距離懲罰項的LCNWD定位回歸損失函數(shù),使目標檢測網(wǎng)絡更加關注小目標的定位回歸,加強定位精度。
SS-YOLO 網(wǎng)絡模型結構如圖3 所示。
圖3 SS-YOLO 網(wǎng)絡模型結構Fig.3 Structure of SS-YOLO network model
YOLOv5 使用CSPDarkNet 作為主干網(wǎng)絡,結構復雜,需要大量計算資源并且推理時間較長,不滿足實時性要求,不適合部署在無人機等邊緣設備上。為滿足在邊緣設備上的實時檢測要求,本文基于輕量級網(wǎng)絡PP-LCNet,結合基于歸一化的注意力機制NAM 提出一種新的主干網(wǎng)絡。改進后的PP-LCNet主干網(wǎng)絡的參數(shù)信息如表1 所示,其中,Conv 代表普通卷積,DSConv 3、DSConv 5 為使用深度可分離卷積搭建的基礎模塊,NAM[23]為加強網(wǎng)絡特征提取能力的注意力模塊。
表1 改進的PP-LCNet 主干網(wǎng)絡參數(shù)信息Table 1 Parameter information of improved PP-LCNet backbone network
在PP-LCNet 中使用深度可分離卷積大幅度減少網(wǎng)絡參數(shù)量。通過反復使用DSConv 3、DSConv 5這2 個模塊進行網(wǎng)絡堆疊,以較低的計算成本實現(xiàn)多尺度特征融合和感受野擴展。
深度可分離卷積減少了網(wǎng)絡參數(shù)量、加快網(wǎng)絡速度,但是其忽略了通道與空間之間的聯(lián)系。因此,深度可分離卷積通常會降低網(wǎng)絡檢測性能。為彌補深度可分離卷積帶來網(wǎng)絡性能下降的不足,本文使用NAM 模塊加強網(wǎng)絡對特征的提取能力。NAM 使用批歸一化的比例因子表示權重的重要性,不用額外加入SE 和CBAM 中的全連接層和卷積層,以極低的計算代價增強PP-LCNet 網(wǎng)絡的特征提取能力。
YOLOv5 與YOLOv7 都采用特征金字塔網(wǎng)絡(Feature Pyramid Network,F(xiàn)PN)結構,在Neck 網(wǎng)絡尾部輸出3 種不同下采樣尺度的特征圖,分別用于檢測大型、中型以及小型目標。原始特征提取網(wǎng)絡模型結構如圖4 所示。
圖4 原始特征提取網(wǎng)絡模型結構Fig.4 Structure of original feature extraction network model
上述的分治方法在COCO、Pascal VOC 等常規(guī)數(shù)據(jù)集中非常有效,但是在無人機遙感圖像中效果不佳。這是因為待檢測目標大多為尺寸極小的遠景目標,在原圖中的尺寸可能小于8×8 像素,這種目標即使被分配在下采樣倍數(shù)為8 的小目標檢測層中,所占尺寸不超過1 像素,沒有足夠的特征信息用于分類以及定位。為解決上述問題,本文在Neck 網(wǎng)絡中加入1 個下采樣倍數(shù)為4 的特征層P2,專門用于檢測極小的目標,增加極小尺寸后的特征提取網(wǎng)絡模型結構如圖5 所示。
圖5 增加極小尺寸后的特征提取網(wǎng)絡模型結構Fig.5 Structure of feature extraction network model with minimal size addition
在P2、P3 特征圖上進行檢測時,由于其感受野較小,因此沒有足夠的語義信息用于分類任務,導致小目標的檢測結果不佳。文獻[21]提出FPN 在小目標檢測任務中效果不好的另一個原因是低層特征圖的檢測任務會被高層影響,為了讓低層特征圖專注于小目標的檢測,應該控制高層語義特征的影響權重。
在低層特征圖中的語義信息可以從高層特征圖自頂向下傳播而來。在FPN 的自頂向下傳播路徑中,需要對低分辨率特征圖進行上采樣,絕大多數(shù)目標檢測算法都采用雙線性插值方法。但是該方法不可學習,并且會帶來大量的人工噪音,損壞語義信息的傳遞。因此,受DUC 與fusion factor 的啟發(fā),本文提出適應融合的語義上采樣模塊SUCA,增強上采樣過程中丟失的語義信息。
SUCA 模塊將亞像素卷積遷移到目標檢測任務中用于替代原有上采樣方法。上采樣倍數(shù)為2 的亞像素卷積過程如圖6 所示。首先對輸入的原始低分辨率特征圖(H×W×1)進行3 層卷積操作,使其通道數(shù)變?yōu)?,再將特征圖中每個像素的4 個通道映射到1 個通道上,使其重新排列為2×2 的區(qū)域,對應高分辨率圖像中1 個2×2 大小的子塊。重排后H×W×4 的特征圖像就轉換為2H×2W×1 的高分辨率圖像。在圖像從低分辨率到高分辨率的放大過程中,插值函數(shù)被隱含地包含在前面的卷積層中,可以隨網(wǎng)絡自動學習。亞像素卷積不僅解決了線性插值中不可學習的問題,并且沒有帶來會損壞檢測精度的人工噪音。
圖6 亞像素卷積像素重排過程Fig.6 Rearrangement process of subpixel convolution pixel
SUCA 模塊結構如圖7 所示。為避免亞像素卷積中的通道擴張操作帶來巨大的計算代價,從而影響算法的檢測速度,SUCA 模塊中的第1 個卷積操作并不會擴張通道數(shù),而是僅對特征進行提取。經(jīng)過亞像素重排、減少通道數(shù)、擴張尺寸后,再利用卷積操作恢復為輸入的通道數(shù),得到圖7 中的B"。
圖7 SUCA 模塊結構Fig.7 Structure of SUCA module
在FPN 結構中,上采樣所得到的特征圖會與主干網(wǎng)絡中提取的特征圖進行拼接融合,為避免低層檢測小目標的任務被高層所影響,本文在SUCA 模塊中加入可學習的自適應融合因子α(α?{0,1}),用于控制從高層上采樣得到特征圖的權重。在圖7中,特征圖B"逐點乘α,然后與低層的高分辨率特征圖C"進行通道拼接融合,從而得到最后需要送入檢測頭的特征圖D"。加入SUCA 模塊后,SS-YOLO 算法的特征提取網(wǎng)絡模型結構如圖8 所示。
圖8 加入SUCA 模塊后特征提取網(wǎng)絡模型結構Fig.8 Structure of feature extraction network model with SUCA module
IoU 是目標檢測中最重要的指標之一,常用于評估真實框與網(wǎng)絡預測框之間的位置關系,計算表達式如式(1)所示:
其中:B為網(wǎng)絡給出的預測框的中心點;BGT為物體真實框中心點。如果預測框和真實框沒有重疊,此時IoU 值將會退化為0,IoU 定位損失將無法計算。針對該問題,YOLOv5 和YOLOv7 采用改進后的IoU損失函數(shù)CIoU:在IoU 損失函數(shù)的基礎上加入距離以及長寬比2 個懲罰項。CIoU 損失函數(shù)主要考慮以下3 個特點:1)重合區(qū)域面積;2)預測框與真實框之間中心點的距離;3)預測框與真實框之間的長寬比例。CIoU Loss 表達式如下:
其中:B、BGT分別表示預測框以及真實框的中心點;ρ為計算2 個中心點之間的歐氏距離;v用于計算2 個框寬高之間的相似性;ωGT與hGT為真實框的寬、高;w與h為預測框的寬、高;α為寬高相似度的權重因子。
CIoU 解決IoU 中沒有重疊時梯度為0 的問題,并且考慮2 個框之間中心點的距離與寬高比例之間的相似性。但是IoU 度量方法對目標的尺寸極其敏感,如圖9 所示。在相同的距離偏移下,小尺寸目標的IoU 下降速率遠大于大尺寸目標。
圖9 IoU 對目標尺寸的敏感性Fig.9 Sensitivity of IoU to object size
文獻[22]提出一種對目標尺寸不敏感的度量方法NWD。圖10 所示為目標尺寸分別為12、32、64 在不同偏移下的IoU 與NWD 對比。
圖10 尺寸為(12,32,64)的目標在相同偏移量下的IoU 與NWD 對 比Fig.10 IoU and NWD comparison of object with size(12,32,64)at the same offset
NWD 方法通過二維高斯分布表示邊界框,并通過其對應的高斯分布計算預測框和真實框之間的相似度。對于任意2 個目標框,本文均可以通過其對應高斯分布的相似性來測量其關系。NWD 的計算式如式(5)和式(6)所示:
其中:W2(N,NGT)表示預測框與真實框的Wasserstein距離;N、NGT分別為預測框與真實框的二維高斯分布;C表示依據(jù)數(shù)據(jù)集中目標尺寸設置的常數(shù)。基于上述2 種方法,本文提出結合CIoU 與NWD 的針對小目標回歸損失函數(shù)LCNWD,如式(7)所示:
LCNWD利用NWD 對目標尺寸不敏感的特性,加強網(wǎng)絡對于小目標的關注程度,并且加入CIoU 的中心點距離懲罰項,使預測框更加貼近真實框,減小預測時產(chǎn)生的位置偏移。
本文在VisDrone-2019 Det 和AI-TOD 數(shù)據(jù)集上進行實驗,驗證SS-YOLO 的魯棒性以及有效性。VisDrone 數(shù)據(jù)集是由天津大學開源的1 個大型無人機遙感數(shù)據(jù)集。該數(shù)據(jù)集被分為3 部分:訓練集(具有6 471 張圖片)、驗證集(具有548 張圖片)、測試集(具有1 610 張圖片)。VisDrone 數(shù)據(jù)集共有10 個不同類別,其目標分類難度較大,并且類別存在長尾效應。其中汽車類別目標最多,遮陽三輪車類別的目標最少。與COCO、Pascal VOC 等常規(guī)數(shù)據(jù)集相比,該數(shù)據(jù)集上的物體尺寸更小,目標的平均尺寸僅為35.8 像素,標注目標數(shù)量更多并且具有不同的拍攝角度。
AI-TOD 數(shù)據(jù)集包含8 036 張航拍圖像,包含8 個類別,700 621 個對象實例。與通常目標檢測數(shù)據(jù)集相比,AI-TOD 中目標的平均大小約為12.8 像素,遠小于其他數(shù)據(jù)集。
實驗中采用平均精度(Average Precision,AP)、平均精度均值(mean Average Precision,mAP)作為模型檢測精度的評價標準。AP 為單類別的檢測精度,由P-R曲線與坐標軸構成的面積計算得到。mAP 為所有類別的AP 平均值。為評估模型大小,本文使用模型參數(shù)量以及推理時間作為評估標準。
在本文實驗中,所有算法均在對應數(shù)據(jù)集的訓練集上訓練80 輪次。網(wǎng)絡輸出的置信度閾值設置為0.25,以保證預測結果的分類精度。SS-YOLO 在VisDrone 測試集上檢測的評價指標如表2 和圖11 所示。SS-YOLO 的mAP 為28.9%,mAP50 為45.9%,推理時間僅為11.5 ms,F(xiàn)PS 最高可達71 幀/s,能夠在滿足無人機等邊緣設備上實時檢測要求的同時,取得較優(yōu)的檢測精度。
表2 SS-YOLO 在VisDrone 測試集上的評價指標Table 2 Evaluation indicators of SS-YOLO on the VisDrone test set %
圖11 混淆矩陣Fig.11 Confusion matrix
3.3.1 橫向對比實驗
本文將YOLOv5s 以 及YOLOv7-tiny[24]作為實驗對比基準,與近年來多種前沿方法進行橫向對比,分別是Cascade R-CNN[25]、YOLOR[26]、YOLOx[27]、Center Net[28]和TPH-YOLO[12]。由于部 分方法對訓練環(huán)境要求較高,因此僅引用論文中的實驗結果。橫向對比實驗的結果如表3 所示。從表3 可以看出,SS-YOLO 相較于YOLOv5s 的模型參數(shù)量減少了37%,推理時間縮短了3.4 ms,mAP50 和mAP 提升2.1 和2.3 個百分點。與最新的YOLOv7-tiny 相比,盡管YOLOv7-tiny 采用repVGG 結構重參數(shù)化加速推理,但是比SS-YOLO 的推理時間縮短5.2 ms,在檢測精度上mAP50 和mAP 分別提升6.7和7.5 個百分點。與目前VisDrone 數(shù)據(jù)集上最優(yōu)秀的目標檢測算法TPH-YOLOv5 相比,SS-YOLO 模型盡管mAP 下降了7.9 個百分點,但是參數(shù)量僅為其4%,推理速度僅為其4.1%,能夠滿足邊緣設備的實時檢測要求。
表3 不同目標檢測算法在VisDrone測試集上的橫向對比結果Table 3 Horizontal comparison results among different object detection algorithms on the VisDrone testset
為進一步驗證模型的魯棒性與有效性,本文在AI-TOD 數(shù)據(jù)集上與YOLOv5s、YOLOv7-tiny 進行額外的對比實驗,輸入圖片大小為800×800 像素。實驗結果如表4 所示。從表4 可以看出,在目標尺寸更小的AI-TOD 數(shù)據(jù)集上,SS-YOLO 能夠有效提升檢測精度。
表4 不同目標檢測算法在AI-TOD 驗證集上的橫向對比結果Table 4 Horizontal comparison results among different object detection algorithms on the AI-TOD validation set
消融實驗結果如表5 所示。從表5 可以看出,在Baseline 中加入SUCA 模塊后,網(wǎng)絡的推理時間與模型參數(shù)量均有所增加,但是檢測精度mAP 與mAP50得到了提升,表明SUCA 模塊可以提升網(wǎng)絡對小目標的檢測精度。在Baseline+SUCA 中加入LCNWD之后,網(wǎng)絡的參數(shù)量沒有發(fā)生變化,但是檢測精度有進一步的提升,說明本文提出的LCNWD損失函數(shù)具有一定的有效性。
表5 消融實驗結果Table 5 Results of ablation experiment
3.3.2 可視化實驗
為更加直觀地觀察該方法在檢測精度上的提升,本文使用多張無人機拍攝的圖像測試算法YOLOv5s、YOLOv7-tiny 和SS-YOLO,檢測結果 如圖12 所示。
從圖12 可以看出,SS-YOLO 的檢測結果優(yōu)于YOLOv5s 以及YOLOv7-tiny。以第1 張圖為例,僅有SS-YOLO 算法檢測到了右上角的2 輛汽車以及1 輛面包車。因此,本文提出的改進方法針對小目標能有效提升檢測性能。
針對無人機遙感圖像場景,本文提出一種基于YOLOv5 的輕量級小目標檢測算法。為解決現(xiàn)有目標檢測算法無法在無人機等邊緣設備中進行實時檢測的問題,本文提出輕量級的主干網(wǎng)絡,簡化主干網(wǎng)絡結構,減少網(wǎng)絡參數(shù)量,加快其推理速度。為解決小目標在高層特征圖中特征信息不足的問題,利用分治方法,加入下采樣倍數(shù)為4 的特征圖P2,使其專注于檢測微小目標。針對小目標所在的特征圖P2、P3 缺乏的語義信息問題,提出結合自適應融合的語義上采樣方法,在增強特征圖語義信息的同時使其自主學習高層特征圖對低層特征圖的影響權重。針對IoU 度量方法對目標尺寸敏感問題,提出了目標尺寸不敏感的LCNWD損失函數(shù)。實驗結果表明,該算法能有效提升了小目標檢測性能,減少模型參數(shù)量、加快其檢測速度。下一步將對標簽分配算法與檢測頭中的特征不對齊問題進行研究,提升模型在無人機遙感場景中小目標的檢測性能。