李鐘華,林初俊,朱恒亮,廖詩宇,白云起
福建理工大學計算機科學與數學學院,福州 350118
近幾年來,小目標檢測作為計算機視覺領域的基本任務之一,在遙感、無人機、自動駕駛等領域都起到了重要作用。隨著深度學習的不斷發(fā)展,研究者們提出了許多優(yōu)秀的檢測算法[1-5],并且取得了較好的檢測結果。但是,對于小目標來說,由于圖像中的像素信息過少,包含的判別性特征不足,導致這些檢測方法在復雜場景下效果不佳,容易出現漏檢、誤檢等問題。因此,針對復雜場景下設計高效的小目標檢測算法仍然面臨著巨大挑戰(zhàn)。
為了解決復雜場景下的小目標檢測問題,研究者們從多種角度出發(fā)提出了大量優(yōu)秀的檢測方法。為了更好地捕捉目標特征,利用特征融合設計網絡模型[6-7]來提升小目標檢測的性能受到了廣泛的關注。這些研究大多借助多尺度特征的FPN網絡,把高層的語義特征保留下來,并且與低層的幾何特征結合,以便獲得高分辨率、強語義的特征。此外,一些研究[8]從卷積神經網絡本身的缺陷出發(fā),設計更好的網絡架構來提升性能。雖然這些方法在一定程度上可以提升復雜場景下小目標檢測的準確性,但是沒有充分利用圖像中的全局上下文信息,而且很少關注小目標本身的結構特征,因此在復雜場景中檢測效果并不令人滿意。
受視覺注意力[9-10]的啟發(fā),人眼往往更多地關注圖像中重要的感興趣區(qū)域。受此啟發(fā),本文提出一種基于多尺度結構感知和全局上下文信息的小目標檢測算法。首先,為了獲取豐富的特征信息,在原有的模型基礎上添加了一層小目標層。同時為了使網絡能夠融合不同尺度下目標攜帶的細節(jié)信息,并獲得更豐富的結構特征,本文提出一種多尺度結構感知模塊(multi-scale structure perception,MSSP),該模塊能有效地使模型定位到目標本身,更加關注目標本身的結構,而不是背景等一些噪聲信息。其次,為了充分利用全局特征,搭建上下文信息的橋梁,提出一種全局上下文信息模塊(global context module,GCM)。該模塊能有效建立特征圖中當前通道和其余通道之間的置信程度,通過一系列的交互計算,網絡可以感知到一些比之前更加有用的特征,從而改進小目標攜帶特征信息較少的問題。此外,本文還從小目標像素點少可能造成梯度爆炸這一問題出發(fā),提出了一種新的帶權重的損失函數W-CIoU(weight CIoU)。該損失函數更加適用于小目標檢測,它不僅一定程度上解決了梯度爆炸的問題,還保證了網絡訓練的收斂速度。在VisDrone 無人機小目標數據集以及TinyPerson數據集進行了大量實驗,結果表明本文提出的方法以及損失函數在小目標檢測的各項指標上都比基線模型優(yōu)秀,也驗證了提出的網絡模型對小目標檢測有更好的檢測效果。
本文的主要貢獻包含以下3個方面:
(1)提出一種多尺度結構感知模塊,使網絡融合多尺度下的結構特征,關注目標完整的結構,提高網絡的檢測效果。
(2)提出一種全局上下文信息模塊,建立特征圖中不同通道之間的聯系,解決小目標攜帶特征信息少這一問題,提升了復雜場景下的檢測準確性。
(3)提出一種新的帶權重的損失函數W-CIoU,可以緩解梯度爆炸現象,有效提升了網絡的收斂速度。
為了使網絡融合不同尺度的目標特征,保持對目標本身的關注,提出一個基于多尺度結構感知的方法用于小目標檢測。為了更好地利用全局信息,設計了一種全局上下文信息模塊。最后提出了一種更適合小目標檢測的損失函數W-CIoU,可以提升模型訓練的收斂速度。
為了兼顧實時性和準確性,本文選取YOLOv5作為基線網絡。為了得到更加豐富全面的結構特征信息,本文針對小目標提出了多尺度結構感知模塊(MSSP),可以感知更加豐富的目標結構。另外,針對小目標像素點少,設計了全局上下文信息模塊(GCM),進一步豐富網絡深層的語義信息,以便于彌補小目標在深層丟失的細節(jié)。本文提出的網絡架構如圖1所示。
圖1 網絡結構Fig.1 Network structure
其中MSSP 代表多尺度結構感知模塊,GCM 代表全局上下文信息模塊,Head代表檢測頭,負責對最后的結果進行分類和定位。F1~F5代表特征金字塔每一層經過特征提取后的特征圖,P2~P5以及O2~O5分別代表了最終送入MSSP模塊以及檢測頭的特征圖,對于每一個檢測頭采用本文提出的W-CIoU 損失函數進行監(jiān)督訓練。除此之外,為了增強小目標的多尺度特征,本文在現有的3個不同尺度特征圖檢測的基礎上,增加了一層小目標層(small target layer,STL),即圖中淺藍色方塊。該小目標層通過上采樣操作對上一層輸出的特征圖進行放大,通過卷積歸一化等操作對特征信息進行處理。小目標層主要處理分辨率較高的特征圖,分辨率越大,表示圖像中目標的清晰度越高,包含的小目標特征信息就越豐富,從而有利于網絡進行特征提取,減少小目標的漏檢和誤檢。同時,檢測頭的數量也會增加一個,配合本文提出的模塊以及損失函數設計,提升模型的檢測性能。
為了充分利用不同尺度下的特征信息,同時保證模型關注小目標本身,本文提出一種多尺度結構感知模塊(MSSP),該模塊共有兩個部分,分別是多尺度融合模塊(multi-scale structure fusion,MSFF)和結構細化層(structure refinement layer,SRL),如圖2 所示,其中MSFF 表示多尺度結構融合模塊,SRL表示對目標結構進行細化。
圖2 多尺度結構感知模塊Fig.2 Multi-scale structure perception module
圖像的特征圖作為MSFF模塊的輸入信息,分別經過五個并行的分支后輸出。其中,第一個分支是1×1的標準卷積,主要目的就是保持原有的感受野。第二至四個分支是空洞率分別為2、4、6的空洞卷積,可以獲得不同的感受野,從而獲得目標不同尺度的特征信息;第五個分支是最大池化操作,減少無用信息的影響,提高所提取特征的魯棒性。最后將五個分支的特征圖在通道維度上進行拼接。
MSFF 模塊的計算過程如公式(1)和(2)所示。其中,x代表圖像的特征圖,r代表空洞率,Conv代表卷積操作,MaxPool代表最大池化操作,Concat代表拼接操作,y代表該模塊的輸出結果。
在得到融合后的特征信息之后,為了使網絡能夠更快速地定位到目標本身,而不是一些噪聲信息,本文引入注意力機制來提高檢測器對小目標的特征捕捉能力,提出一種結構細化層(SRL),結構如圖3 所示,其中,ConvBnSiLu 代表卷積(Conv)、批量歸一化(Bn)以及激活函數操作(SiLu)。
圖3 結構細化層Fig.3 Structure refinement layer
SRL主要包含一個位置增強模塊(location enhancement),該模塊融合了空間注意力和通道注意力[10],可以更加準確地捕獲目標結構。輸入的特征圖進行卷積操作后,輸入到位置增強模塊里,通過兩個普通卷積操作后,然后依次通過通道注意力和空間注意力。通道注意力會著重于分析每個通道的特征,即目標結構;而空間注意力則更關注于目標的位置,即目標在哪里,可以很好地對通道注意力進行信息互補。此外,所設計的位置增強模塊還可以作為任意一層特征圖后的優(yōu)化處理操作,是一個即插即用的模塊。
為了更直觀地驗證SRL 的效果,分別對網絡使用SRL前后做了可視化分析,如圖4所示。
圖4 可視化分析Fig.4 Visual analysis
第2 列是沒有使用SRL 的結果,第3 列是加上SRL后的效果圖,可以看出使用結構細化層之后,網絡模型更加注意到小目標本身包含的特征區(qū)域,而不是背景等一些噪聲信息,證明了該模塊的有效性。
眾所周知,圖像的全局視圖可以提供有用的上下文信息,因此在小目標周圍的其他物體可能會對檢測結果的提升帶來一定的幫助。另外,由于卷積是一種局部的操作,受卷積核大小的限制,它只會對像素鄰近的區(qū)域進行相關計算,這就導致了全局的上下文信息沒有被充分利用起來。為了捕捉不同區(qū)域像素之間的聯系,本文引入Transformer[11-12]架構設計了一種全局上下文信息模塊(GCM),結構如圖5 所示。由于Transformer 可以有效地捕捉圖像特征的長距離依賴關系,因此GCM 是一種全局操作,它會為當前區(qū)域和其他區(qū)域搭建起橋梁,通過不同區(qū)域像素之間相互學習,更好地利用全局信息,從而改善小目標攜帶特征信息少這一問題,提高模型對小目標的檢測能力。其中ConvBnSiLu操作與圖3代表的含義一致。原始的Transformer采用的是LayerNorm層歸一化,考慮到這種歸一化通常是對不定長文本序列的處理,而圖像的尺寸往往是統(tǒng)一的,故沒有采用原設計模型的LayerNorm,即圖中的Transformer-LN。
圖5 全局上下文信息模塊Fig.5 Global context module
目前已有的一些方法通常采用的損失函數是CIoU[13],其定義如式(3)~式(5)所示:
其中,IoU代表交并比,b、bgt分別代表預測框和真實框的中心點,ρ代表這中心點之間的歐式距離,c代表能覆蓋預測框和真實框的最小矩陣的對角線長度,w、wgt分別代表預測框和真實框的寬度,h、hgt分別代表預測框和真實框的高度。考慮懲罰項v對w和h求梯度的情況,如式(6)、式(7)所示:
不難看出,如果目標過小,那么w和h就會頻繁地出現在0到1的區(qū)間之內,從而導致趨近于無窮大,造成梯度爆炸,不利于模型的收斂;另外,當懲罰項v在預測框和真實框長寬比相同時退化成0,即失效的情況。針對兩種局限性,提出一種更加高效的損失函數W-CIoU,定義如式(8)、式(9)所示:
其中,T是為了防止β=0 的情況加入的偏移量,其余參數含義與CIoU 保持一致。同時,將每一項都進行二次冪的計算,加速損失函數收斂速度。同樣,考慮β對w和h求梯度的情況,如式(10)、式(11)所示:
可以看出,此時的梯度函數就不會因為目標過小而導致梯度爆炸的問題,同時,還比較了這兩個損失函數在訓練時的loss圖,結果如圖6所示。
圖6 在數據集VisDrone訓練時的loss曲線Fig.6 Loss curve on VisDrone dataset
從圖6 中可以看出,W-CIoU 在緩解梯度爆炸的同時,還保持了較快的網絡收斂速度。相較于CIoU,本文設計的W-CIoU 更適用于小目標檢測。
本文采用數據集VisDrone2019[14]以及TinyPerson[15]數據集來訓練并評估改進后的模型。這兩個數據集都是以小目標為主,其中VisDrone2019數據集是在不同的場景、光照條件下使用不同的無人機平臺收集。TinyPerson數據集主要包括海灘和海上的人群,其目標像素點少于20個像素。
在模型訓練階段,epoch 設置為150,batchsize 設置為16。在評價指標方面,本文采取P(precision)、R(recall)、Params、mAP50、mAP50:95等指標作為模型的評價指標。mAP50表示IoU閾值等于0.5時所有目標類別的平均檢測精度,mAP50:95 表示步長為0.05,計算IoU閾值從0.5~0.95的所有IoU閾值下的檢測精度的平均值。Params代表模型的參數量,主要用于衡量模型關于顯存資源的消耗。
對比了改進后的算法和其他算法在兩個數據集上的表現,包括了經典的小目標檢測算法,例如FPN、FS-SSD、TPH-YOLO以及SPD-CONV,同時比較了其他YOLO系列的算法性能。實驗結果如表1所示。
表1 對比實驗Table 1 Comparative experiment
其中,Ours 代表本文提出的模型,為了保證對比的合理性,本文選取了同一規(guī)格參數量的算法進行對比。表格上半部分代表各算法在VisDrone數據集的結果,下半部分代表各算法在TinyPerson數據集的結果。從表1可以看出,本文提出的模型相較于基線網絡YOLOv5-S在數據集VisDrone 上mAP50 和mAP50:95 分別提高了6.4 和4.6 個百分點,在數據集TinyPerson 上mAP50 和mAP50:95分別提高了2.85和0.89個百分點。
為了驗證提出的多尺度結構感知模塊(MSSP)、全局上下文模塊(GCM)以及引入的小目標層(STL)的有效性,本文評估不同模塊在VisDrone數據集相同實驗條件下對小目標檢測性能的影響,即消融實驗。實驗結果如表2所示。
表2 消融實驗Table 2 Ablation experiment 單位:%
實驗結果表明,設計的多尺度結構感知模塊、全局上下文信息模塊以及添加的小目標層都對小目標的檢測有明顯提升。對比基線網絡,STL 在mAP50 和mAP50:95 分別提高了4.5 和2.4 個百分點;MSSP 模塊在mAP50和mAP50:95分別提高了0.4和0.5個百分點;GCM模塊在mAP50和mAP50:95分別提高了0.5和0.7個百分點。另外,各個模塊之間的組合相較于單獨使用某個模塊效果要好,驗證了本文提出的多尺度結構感知模塊和全局上下文信息模塊的有效性。
為驗證提出的多尺度結構感知MSSP 模塊的有效性,對比了其他幾種多尺度模塊融合的性能表現。為了充分發(fā)揮多尺度融合模塊的特點,實驗添加了小目標層STL模塊作為基線。實驗結果如表3所示,本文設計的MSSP 模塊相較其他方法取得了不錯的效果,證明了MSSP的有效性。
表3 多尺度結構感知模塊對比實驗Table 3 Multi-scale structure perception comparison experiments 單位:%
為驗證提出的W-CIoU損失函數,對比了其他幾種主流的損失函數在小目標檢測中的性能表現,實驗結果如表4所示。從表中可以看出,本文提出的W-CIOU在大多數指標上表現出色,在指標mAP50 上略遜色于EIOU,這主要由于EIOU從預測框和真實框的寬和高的差異角度出發(fā)進行最小化。而本文設計的損失函數WCIoU 綜合考慮了小目標的特點,從緩解梯度爆炸的角度出發(fā),起到了加速收斂的作用,如在指標mAP50:95上表現出色,說明W-CIOU更關注高質量的預測框。另外,在精度P和召回率R指標也取得了最優(yōu)結果。綜合各項指標來看,W-CIOU更適用于小目標檢測。
表4 損失函數對比實驗Table 4 Loss function comparison experiment單位:%
為了更詳細地驗證全局上下文信息模塊(GCM)對小目標檢測的影響,進行了對比實驗,分別在主干網絡不同層數的位置添加該模塊,實驗結果如表5所示。
表5 全局上下文信息模塊消融實驗Table 5 Global context ablation experiments單位:%
通過實驗結果可以看出,GCM 在深層時結果有明顯的提升,在淺層的表現并不是特別理想;隨著網絡層數的不斷加深,網絡性能反而會變差。如表5 中所示,當層數為5時,mAP50和mAP50:95指標取得最好的結果。主要原因在于特征金字塔越往上,即層數越深,特征圖的尺度就越小,包含小目標區(qū)域的特征越少,從而導致小目標檢測的性能變差,故本文選取五層的特征金字塔作為主干網絡。
同時,結合實驗以及分析,認為有以下兩點原因導致該模塊在F3、F4的表現不如F5。
(1)淺層學習到的特征質量不高。淺層學習到的特征大多數是目標的紋理、外觀等十分容易學習到低層特征,甚至有些通道分支學習到的都是背景噪音等特征。而深層的特征就會更偏向于目標本身,該模塊使各自通道學習到的特征信息與全局進行交互,最大程度上地利用了全局上下文信息。
(2)淺層通道數量不夠。淺層可以學習的特征通道數過少,參與交互的特征信息不足,這就導致即使淺層學習到了一些小目標的特征信息,全局上下文信息模塊也很難進行交互從而學習到更有判別力的特征。
圖7展示了網絡分別在淺層和深層提取的特征圖,第一行代表淺層F3特征圖,第二行代表深層F5特征圖深層的特征圖相較于淺層更豐富、更具體,這也驗證了上述的分析。
圖7 深層和淺層的特征圖對比結果Fig.7 Comparison of feature maps between deep and shallow layers
將改進后的模型與基線網絡進行了視覺效果的對比,如圖8 所示??梢钥闯龈倪M后的模型在目標遮擋、光線昏暗以及模糊情況下,相比原模型,漏檢、誤檢的情況有明顯的改善,尤其在小目標檢測上表現更加出色。圖中的白色方框展示了本文算法和基線網絡在視覺效果上較為明顯的區(qū)域。
圖8 視覺效果對比Fig.8 Visual effect comparison
本文提出了一種基于多尺度結構感知和全局上下文信息的小目標檢測算法。首先,為了使模型融合不同尺度下小目標的特征信息,快速定位到目標本身,提出一種多尺度結構感知模塊。通過實驗結果和視覺效果的分析驗證了該模塊的可行性,它可以使網絡對小目標特征更加關注。其次,為了更好地利用上下文信息,本文借助Transformer 結構捕捉長距離依賴的優(yōu)勢,提出了全局上下文信息模塊,該模塊使得每個通道都能與其他通道進行交互、學習。最后,本文提出了一個更適合小目標檢測損失函數,即帶權重的W-CIoU 損失函數,可以有效地加快模型收斂的速度。大量的實驗結果表明,本文方法在召回率、平均準確率等指標都有明顯的提升,驗證了本文提出的方法更適合復雜場景下的小目標檢測。