朱 威,王立凱,靳作寶,何德峰
(浙江工業(yè)大學 信息工程學院,浙江 杭州 310023)
近年來,隨著互聯(lián)網(wǎng)數(shù)據(jù)和物聯(lián)網(wǎng)數(shù)據(jù)的爆發(fā)式增長以及計算機算力的大幅提高,基于深度學習的計算機視覺技術在目標檢測領域[1]獲得了重大進展。其中快速實時的小目標檢測是目標檢測領域重要研究內容,在無人機航拍目標識別、遙感影像目標識別、農業(yè)病蟲害識別等場景中都有著重要的應用[2]。因此提高小目標檢測的精度和檢測速度具有重要的理論意義和良好的工程應用價值。
在目標檢測任務中,國際光學工程學會(SPIE)定義小目標為像素面積占整個圖像0.12%以下目標物體[3],微軟COCO數(shù)據(jù)集定義小目標為像素面積小于32×32的目標物體[4]。與圖像中的大目標相比,尤其是在低分辨率、背景復雜的場景下,小目標往往只含有少量的語義特征,這給小目標檢測帶來了一定的困難[5]。目前已有不少工作致力于改善小目標檢測的精度和速度。Chen等[6]提出了一種改進的R-CNN的小目標檢測模型,通過上下文模型和區(qū)域提議生成器增強了R-CNN算法,以提高小目標檢測性能。Li等[7]針對小目標分辨率低和噪聲大的問題,提出了用于小目標檢測的感知生成對抗網(wǎng)絡,通過生成小目標的超分辨率圖像,縮小與大目標之間的表示差異來改善小目標檢測。Zhou等[8]提出了一種可縮放尺度的目標檢測網(wǎng)絡,通過在網(wǎng)絡中嵌入超分辨率層,以明確探索尺度間關系,實現(xiàn)跨多個檢測尺度的一致性,較好地檢測了圖像中的多尺度對象。谷雨等[9]為了改善紅外圖像弱小目標檢測的效果,提出了基于改進多尺度分形特征的檢測算法,同時進行了圖像增強和感興趣區(qū)域自適應閾值分割,可以較好地檢測到具有較高局部對比度的紅外圖像小目標。
盡管上述工作在一定程度上改善了小目標檢測的效果,但仍然存在引入了較多的計算量、易受復雜背景干擾、網(wǎng)絡結構復雜影響實時性等問題。為了改善小目標的檢測精度以及抑制背景信息的干擾,同時實現(xiàn)網(wǎng)絡的輕量化,本文在一階段檢測網(wǎng)絡YOLOv4的基礎上,提出了一種引入注意力機制的輕量級小目標檢測網(wǎng)絡。本文網(wǎng)絡設計的注意力機制模塊,可以使網(wǎng)絡更好地關注圖像中的感興趣區(qū)域,增強網(wǎng)絡在復雜背景下的小目標檢測性能;同時改進了模型預測結構,融合更淺層的特征;并結合通道剪枝和知識蒸餾對模型進行壓縮,以獲得輕量級的小目標檢測模型。
YOLOv4目標檢測網(wǎng)絡[10]是在原有的YOLO目標檢測框架上融合近年來計算機視覺方向上最新的技術,在數(shù)據(jù)輸入增強、網(wǎng)絡骨干架構、激活函數(shù)、損失函數(shù)等方面都做了相關的改進,這些改進并沒有為網(wǎng)絡增加太多的計算量,從而達到了速度與精度的平衡。
YOLOv4網(wǎng)絡在YOLOv3的Darknet53特征提取網(wǎng)絡的基礎上通過引入CSP[11]模塊構建CSPDarknet53主干網(wǎng)絡。Darknet53借鑒了ResNet[12]殘差連接的思想,在確保網(wǎng)絡深度的同時,有效地避免了梯度消失的問題。CSPDarknet53中引入的5個CSP模塊,包含了多個殘差結構,可以解決因網(wǎng)絡優(yōu)化時梯度信息重復造成的計算量冗余,在減少計算量的同時不會造成特征信息的損失。
YOLOv4網(wǎng)絡除了采用YOLOv3的FPN[13]結構之外,還引入了PAN[14]結構進行特征融合。在FPN結構中,存在底層特征和頂層特征信息距離過遠的問題。PAN結構通過融合不同深度的特征信息,僅使用少量運算,就可以使底層特征信息與頂層特征信息獲得良好地融合。融合不同尺度的特征信息對于目標檢測來說十分必要,YOLOv4網(wǎng)絡通過在原有FPN的基礎上增加PAN結構來優(yōu)化特征提取,使得不同尺寸的特征都具有更深層次的表達力。
此外,YOLOv4網(wǎng)絡還對回歸損失函數(shù)進行了改進,使用了CIOU_Loss[15]。CIOU_Loss繼承了DIOU_Loss[15]將中心點距離信息和重疊面積考慮到損失計算的優(yōu)點,還將邊界框的長寬比考慮到計算中,提升了網(wǎng)絡在進行邊界框回歸時的精度,加快網(wǎng)絡的收斂。
注意力機制最早出現(xiàn)在文本信息處理領域,目的是解決文本中長句子難以準確地序列編碼到固定長度的問題。文本注意力機制通過為單詞添加權重信息,保留決定整個句子語境的重要單詞[16]。在計算機視覺領域,通過添加注意力機制可以對圖像或特征圖的不同部分進行不同程度地加權操作,使神經(jīng)網(wǎng)絡對特征圖不同區(qū)域關注程度不同,從而使網(wǎng)絡更好地聚焦在感興趣區(qū)域。
在圖像識別領域引入注意力機制時,設輸入特征序列為C=[c1,c2,…,cn],其中n為輸入特征圖中特征向量的個數(shù)。則第i個輸入特征向量的注意力分布權重ρi為:
其中,f(C,q)為注意力打分函數(shù),常見的函數(shù)形式有加性模型、雙線性模型和點積模型等。
接著根據(jù)計算出來的注意力分布,計算輸入信息的加權平均尺度信息,以生成帶有注意力權重的特征序列。方法如下式:
其中,output為圖像序列經(jīng)過注意力加權后的結果。
通過在目標檢測網(wǎng)絡中引入注意力機制可以更加充分地利用有限的圖像特征信息,使網(wǎng)絡學習圖像中的感興趣區(qū)域,提升網(wǎng)絡在復雜背景條件下的抗干擾能力,并融合特征圖使其具有全局感受野,有助于提高特征圖的表達能力[17]。
SENet是由Hu等[18]提出的用于計算機視覺領域的注意力機制網(wǎng)絡。它是一種輕量型插件模塊,可以方便地對網(wǎng)絡進行改進。注意力機制可以通過學習全局信息來選擇和強調感興趣的特征通道,并抑制對檢測沒有幫助的特征通道。
本文在SENet基礎上進行設計,通過構建多尺度融合特征與多方法特征提取器,生成了多尺度融合注意力模塊(Multi-scale SENet,MSENet),以增強小目標檢測網(wǎng)絡中的特征表達能力和復雜背景下抗干擾能力。
首先通過不同尺寸的卷積核集成多種尺度的特征圖并基于新構建的特征圖進行下一步的特征抽取處理。在卷積層內設置多尺度特征融合,使輸出的特征圖結合了分辨率信息和語義信息,為后續(xù)的特征抽取器提供了更加豐富的特征。對于采用大尺寸卷積核帶來的參數(shù)量暴增降低網(wǎng)絡實時性的缺點,采用2層3×3的卷積核替代5×5的卷積核,3層3×3的卷積核替代7×7的卷積核[19]。采用小尺寸卷積核組合可以帶來與大尺寸卷積核相同的感受野,同時還增加了網(wǎng)絡深度,提高了神經(jīng)網(wǎng)絡特征的提取效果。
接著改進SENet的擠壓操作,獲得自適應的通道特征信息。由于SENet在設計時,只通過全局平均池化操作來構造特征提取器獲得全局特征。對于特征信息偏少的小目標來說,僅僅側重于全局特征可能會造成特征信息的丟失,而全局最大池化操作則更注重于局部特征。因此本文同時引入了兩種池化方法進行特征提取,可以更好的獲取小尺寸目標的局部特征信息,增強注意力機制在復雜背景下的特征提取能力。
最后,將兩種池化方式生成的自適應通道特征信息相加后進行激活處理,生成注意力權重信息,再與輸入特征圖進行特征加權后得到通道注意力圖。在第一次全連接降維后的激活操作上,使用了Mish[20]激活函數(shù)替代ReLU激活函數(shù),避免了使用ReLU激活函數(shù)稀疏掉過多的有效特征,有助于模塊獲得更多的非線性關系。
對于輸入特征X∈RC×H×W,C為輸入通道數(shù),H為輸入高度,W為輸入寬度。則對于輸入特征進行不同尺寸卷積提取特征的操作為:
其中:V代表使用不同尺寸的卷積核對輸入特征進行的卷積操作,Xc為經(jīng)過不同尺寸卷積核卷積后的輸出特征。
然后,分別進行兩種池化操作以獲得更好的通道特征信息,輸入為上一步中原始的多尺度特征。
其中:Xavg為全局平均池化操作,Xmax為全局最大池化操作。
通道注意力向量由以下公式產(chǎn)生,Xa是對全局平均池化分支進行特征抽取,Xm是對全局最大池化分支進行特征抽取。在完成特征抽取的同時將它們轉化到非線性空間,以完成激活操作。
其中:輸入為上一步中的多尺度融合特征,Sigmoid為歸一化函數(shù),F(xiàn)C為全連接函數(shù),Mish為非線性激活函數(shù)。
接下來將計算得到的注意力權重加權到第一步中生成的特征圖作為最后的通道注意力特征圖。
最終,改進后的MSENet注意力模塊如圖1,其中“+”代表特征進行相加操作,“×”代表特征進行加權操作。
圖1 改進后的注意力模塊Fig.1 Improved attention module
對于目標檢測而言,深層特征具有更強的語義信息,而淺層特征具有較完整的特征信息,更利于小目標的檢測。因此本文將608×608分辨率下進行預測的19×19、38×38、76×76三個YOLO層的特征圖尺寸修改為38×38、76×76、152×152。具體做法是刪除最后一個19×19的YOLO層,小目標在該層幾乎失去了所有的特征信息。同時通過FPN和PAN結構對76×76的YOLO層進行特征融合和上采樣,并與CSPDarknet53主干網(wǎng)絡中152×152的特征圖連接,從而獲得更高分辨率的特征圖。采用FPN和PAN結構融合生成的152×152特征層不僅具有深層次的定位信息,還具有淺層特征層中豐富的特征信息。
增加的152×152淺層特征層包含來自網(wǎng)絡淺層的目標信息特征,同時也可能為網(wǎng)絡引入背景噪聲的影響。本文將改進的多尺度融合特征注意力機制與YOLOv4主干網(wǎng)絡中的CSP模塊進行融合,生成了帶有注意力信息的MSENet-CSPUnit模塊,并采用此模塊組成CSPDarknet53主干網(wǎng)絡,增強主干網(wǎng)絡對復雜背景下的特征篩選能力,抑制不必要的淺層特征信息。最終改進后的YOLOv4-MSENet整體網(wǎng)絡結構如圖2所示。
圖2 改進后的YOLOv4-MSENetFig.2 Improved YOLOv4-MSENet
為了解決網(wǎng)絡本身參數(shù)存在的冗余,以及引入注意力機制而造成的計算量增加的問題,本文對于小目標檢測模型進行進一步模型壓縮,同時使用知識蒸餾策略來微調恢復模型精度。常用的模型加速方法有模型量化、剪枝、權值共享、網(wǎng)絡分解等[21]。針對本文對于模型精確度的需求,決定采用通道剪枝來實現(xiàn)模型加速。
YOLOv4的卷積層后都引入了批量歸一化層,因此本文選用批量歸一化層的參數(shù)γ作為尺度縮放因子,判斷通道對于模型的貢獻程度,進行通道的稀疏化操作[22]。選用網(wǎng)絡本身的參數(shù)γ可以避免給網(wǎng)絡引入新的參數(shù),額外增加網(wǎng)絡的復雜度。稀疏化操作要進行長時間的迭代訓練,目的是將參數(shù)γ壓縮到0附近。稀疏化訓練結束后,對參數(shù)γ進行排序,根據(jù)預設的剪枝閾值對排序好的尺度縮放因子所在的卷積層進行標記,根據(jù)標記信息刪除待剪枝通道的輸入、輸出參數(shù),生成剪枝完成的模型文件以及新的模型結構配置文件。最后利用修剪后的模型文件進行微調訓練,修改網(wǎng)絡超參數(shù),以恢復剪枝帶來的精度損失。其中,對于通道稀疏化操作,其目標函數(shù)定義為:
其中:x,y分別為輸入和目標值,W為訓練權重,λ為懲罰因子,g(·)為懲罰項。
對于CSPDarkent53主干網(wǎng)絡中包含的ResNet的殘差結構,本文根據(jù)通道貢獻程度對其進行評估,也進行了修剪。由于上采樣層不包含批量歸一化層,因此這部分不包含在需要剪枝的層中。
剪枝結束后,使用知識蒸餾策略對模型精度進行恢復訓練。使用未進行剪枝前的YOLOv4-MSENet模型作為教師網(wǎng)絡,剪枝后的網(wǎng)絡作為學生網(wǎng)絡,進行分類任務和回歸任務的學習。其中回歸任務對于目標檢測任務尤為重要,而教師網(wǎng)絡的回歸結果是無界的,其輸出可能會誤導學生網(wǎng)絡。因此本文借鑒了Chen等[23]的思想,將其應用在YOLOv4知識蒸餾中。在知識蒸餾訓練時,剪枝后的YOLOv4-MSENet網(wǎng)絡作為學生網(wǎng)絡,在計算回歸損失時不會直接向教師網(wǎng)絡學習,而是通過同時計算教師網(wǎng)絡、學生網(wǎng)絡和真實標簽值的L 2距離,只有在學生網(wǎng)絡與真實標簽值的L 2距離和教師網(wǎng)絡與真實標簽值的L2距離的偏差超過了一定范圍M時,才會在損失計算中加入L 2損失,否則就不在損失函數(shù)中引入懲罰,也就是說當學生網(wǎng)絡的輸出結果優(yōu)于教師網(wǎng)絡時,則本次計算不考慮L 2損失。這在一定程度上避免了教師網(wǎng)絡偏離真值而影響到學生網(wǎng)絡。
為了更好地評估本文網(wǎng)絡的小目標檢測性能和魯棒性,實驗采用了無人機小目標數(shù)據(jù)集Vis-Drone2019[24](以下簡稱為VisDrone2019數(shù)據(jù)集)和廣東工業(yè)智造創(chuàng)新大賽天池M布匹疵點數(shù)據(jù)集(以下簡稱為布匹疵點數(shù)據(jù)集)。VisDrone2019數(shù)據(jù)集中包含有大量的小目標對象和密集對象,光照變化和目標對象遮擋也是這個數(shù)據(jù)集的難點。同時由于無人機圖像是垂直拍攝的緣故,待檢測對象包含的特征也相對較少。為了使數(shù)據(jù)集中疵點目標符合小目標的定義,本文對布匹疵點數(shù)據(jù)集的疵點圖片進行了篩選,只選取了符合小目標定義的圖片。對VisDrone2019數(shù)據(jù)集的7 019張帶標簽圖片按7∶2∶1進行隨機劃分,訓練集共4 913張圖片,驗證集共1 406張圖片,測試集共700張圖片;對布匹疵點數(shù)據(jù)集2 165張帶標簽數(shù)據(jù)集進行隨機劃分,訓練集共1 516張圖片,驗證集共433張圖片,測試集共216張圖片。
由于YOLOv4在候選區(qū)域中心使用不同尺寸的錨框進行預測框的生成,因此合適的錨框可以幫助網(wǎng)絡更好地擬合數(shù)據(jù)集中的物體。所以本文利用K-means++算法分別對上述兩個小目標數(shù)據(jù)集進行錨框的重新聚類,以得到更適合、更具有代表性的錨框,提高網(wǎng)絡的收斂速度。
綜合考慮小目標檢測對于圖像高分辨率的需求同時兼顧網(wǎng)絡的實時性,本文在訓練和測試時,使用608×608分辨率的圖像作為網(wǎng)絡的輸入,圖片縮放時使用letterbox策略,保持圖片長寬比例不變,用灰色填充多余部分,避免因為暴力縮放而造成目標失真。同時對數(shù)據(jù)集采用在線數(shù)據(jù)增強方式[25]提高模型的魯棒性,避免模型過擬合,其中包括亮度、飽和度和對比度的調整來減少模型對于圖像色彩的關注度以及隨機縮放和旋轉等。
在訓練階段,本文采用了安裝有pytorch1.6的ubuntu18.04操作系統(tǒng),系統(tǒng)內存為32 G,顯卡為11 G顯存的2080Ti。在優(yōu)化器的選擇上,本文針對SGD優(yōu)化器易陷入局部次優(yōu)解及鞍點的缺點,使用了性能更好的Adam優(yōu)化器[26]來對網(wǎng)絡權重進行更新。在訓練的初始階段,設置學習率為0.001,β1=0.9,β2=0.999,批量大小設為4。在300個迭代過程中,逐步將學習率衰減至0.000 01,有利于將網(wǎng)絡收斂到更好的性能。如圖3所示,在經(jīng)過300個epoch訓練后,改進后的YOLOv4-MSENet網(wǎng)絡已經(jīng)接近收斂。
圖3 YOLOv4-MSENet網(wǎng)絡mAP訓練曲線Fig.3 YOLOv4-MSENet network mAP training curve
為了驗證模型性能,實驗采用均值平均精度(mAP)、幀率以及模型大小作為評價指標,幀率是指網(wǎng)絡每秒可處理圖像數(shù)量,mAP具體計算如式(11)所示:
其中:AP值為某類別下P-R曲線下方的面積,P為精確率(Precision),R為召回率(Recall)。
4.2.1 注意力模塊性能對比
為了測試本文設計的注意力機制模塊的性能,實驗分別將常用的注意力機制模塊CBAM[27]、SENet以及本文設計的MSENet插入到YOLOv4網(wǎng)絡中,與標準的YOLOv4-Baseline進行對比。表1和有2中為四種網(wǎng)絡在兩數(shù)據(jù)集中的性能對比,其中測試集中能夠檢出的最小目標尺度,對應的是該目標在原始圖片尺寸上的像素個數(shù)。從表中結果可以看出,對于兩個小目標數(shù)據(jù)集,使用注意力模塊CBAM、SENet、MSENet構建的注意力機制網(wǎng)絡較YOLOv4-Baseline網(wǎng)絡均可以提高小目標檢測能力,mAP也有明顯的提升,并且本文設計的多尺度融合的注意力模塊構建的YOLOv4-MSENet相較于其它注意力機制構建的網(wǎng)絡表現(xiàn)出了更好的性能。這得益于MSENet通道注意力模塊為特征圖帶來了更好的全局感受野,將網(wǎng)絡更好地聚焦在感興趣區(qū)域,同時抑制了無關的淺層特征信息的影響。此外布匹疵點數(shù)據(jù)集實驗中,檢出最小目標尺度要稍大于VisDrone2019數(shù)據(jù)集,這是因為布匹疵點數(shù)據(jù)集中原始圖片尺寸較大,縮放至網(wǎng)絡輸入尺寸導致信息損失。實際部署中,對于這個問題可以通過將原始圖片分割后,依次輸入至網(wǎng)絡,改善因為圖片過度縮放造成的信息損失。
表1 VisDr one2019數(shù)據(jù)集下不同注意力機制模塊的性能Tab.1 Performance of different attention mechanism modules under the VisDrone2019 dataset
表2 布匹疵點數(shù)據(jù)集下不同注意力機制模塊的性能Tab.2 Performance of different attention mechanism modules under fabric defect dataset
4.2.2 不同網(wǎng)絡性能對比
為了進一步對比本文整體網(wǎng)絡與其它網(wǎng)絡的性能,實驗分別對SSD512、Faster-RCNN、RetinaNet、YOLOv4-Baseline、YOLOv4-MSENet網(wǎng)絡進行了測試。表3和表4中分別給出了幾種網(wǎng)絡在兩數(shù)據(jù)集中性能,其中能夠檢出的最小目標尺度,對應的是該目標在原始圖片尺寸上的像素個數(shù)。從表中可以看出,SSD512網(wǎng)絡和RetinaNet網(wǎng)絡對于小目標數(shù)據(jù)集效果較差;Faster-RCNN效果稍好一點,但模型結構復雜,幀率較低;YOLOv4-Baseline的效果相對于上述除YOLOv4-MSENet外網(wǎng)絡有所提高,而改進后的YOLOv4-MSENet對于兩個小目標數(shù)據(jù)集在檢出最小目標尺度和mAP兩個指標上都有更好提升。一方面,本文設計的注意力機制為網(wǎng)絡提供了更好的特征;另一方面,本文針對小目標檢測而增加一層基于淺層融合特征的YOLOv4預測層,來自骨干網(wǎng)絡的高分辨率特征層與經(jīng)過FPN和PAN結構的深層特征層進行融合,為網(wǎng)絡帶來了豐富的分辨率信息。實驗結果表明本文提出的網(wǎng)絡在小目標數(shù)據(jù)集上具有一定的檢測優(yōu)勢。
表3 VisDr one2019數(shù)據(jù)集在不同網(wǎng)絡之間的性能Tab.3 Performance of VisDrone 2019 dataset between different networks
表4 布匹疵點數(shù)據(jù)集在不同網(wǎng)絡之間的性能Tab.4 Performance of fabric defect dataset between different networks
但從表3和表4可以看出,相比于YOLOv4-Baseline網(wǎng)絡,由于引入了注意力模塊,使本文提出的網(wǎng)絡模型大小略有增大,參數(shù)數(shù)量的增加使得幀率也略有下降,這對于模型的實時性是不利的。因此為了解決計算量增加問題以及參數(shù)冗余的問題,本文進行了通道剪枝實驗。
4.2.3 通道剪枝性能對比
本節(jié)實驗對YOLOv4-MSENet進行通道剪枝實驗,首先對已經(jīng)完成基礎訓練的模型進行300個epoch的稀疏化訓練,借助尺度因子對通道重要性進行排序,之后按照預設裁剪閾值進行裁剪,生成新的模型文件和網(wǎng)絡配置文件。隨后對剪枝效果進行檢測,若模型精度下降嚴重,說明敏感層的參數(shù)被刪除掉,導致精度不可逆的損失,則減小裁剪閾值,對網(wǎng)絡進行重新裁剪。最后對使用合適閾值裁剪過后的網(wǎng)絡進行知識蒸餾,以恢復模型精度。通過采用較小的學習率,經(jīng)過100個epoch的微調訓練后,網(wǎng)絡精度基本達到了理想的效果。
經(jīng)過剪枝后部分卷積層通道數(shù)如圖4所示,其中藍色柱為原網(wǎng)絡中該層通道數(shù),深色柱為經(jīng)過剪枝后該層的通道數(shù)。通過對比可以明顯看出較原通道數(shù),通道剪枝對于減少通道參數(shù)數(shù)量效果顯著。
圖4 通道數(shù)量Fig.4 Channel number
本文對YOLOv4-MSENet分別進行了0.85、0.80、0.75、0.70、0.65五種力度的剪枝實驗,數(shù)值越大代表剪枝力度越大。表5和表6分別為YOLOv4-MSENet模型在兩個數(shù)據(jù)集經(jīng)過剪枝后的模型大小、mAP以及幀率的結果。
表5 VisDrone2019數(shù)據(jù)集在網(wǎng)絡通道剪枝后的表現(xiàn)Tab.5 Performance of the VisDrone2019 dataset after network channel pruning
表6 布匹疵點數(shù)據(jù)集在網(wǎng)絡通道剪枝后的表現(xiàn)T ab.6 Performance of the fabric defect dataset after network channel pruning
從表中可以看出,使用通道剪枝對于網(wǎng)絡加速是比較明顯的,無論是模型大小還是推理時間都較未剪枝前的網(wǎng)絡有所降低。從幾組不同力度的剪枝結果來看,剪枝并不能只追求高的參數(shù)壓縮率,而要在精度和壓縮率之間尋找最佳平衡。在0.75參數(shù)下,相對于0.80和0.85,模型具有更高的精度,相對于0.70和0.65,模型精度略低但具有更快的推理速度,綜合考慮,最終選用的剪枝力度為0.75。在此剪枝力度下,網(wǎng)絡的精度損失較小,且模型參數(shù)得到了較好的壓縮。
從檢測精度來看,最好的剪枝結果的精度較未剪枝前還是略有所下降。這可能是因為本文所采用的兩個數(shù)據(jù)集中都包含有大量極限小目標對象,在剪枝過程中,尺度因子較小的通道被移除,因此可能對精度略有影響。但綜合剪枝后模型大小、推理時間以及模型精度來說,模型壓縮對網(wǎng)絡帶來的速度提升和參數(shù)壓縮效果還是可觀的。
4.2.4 嵌入式計算平臺的部署性能結果
為了驗證本文網(wǎng)絡能否滿足嵌入式部署要求,本小節(jié)實驗在嵌入式GPU平臺NVIDIA Jetson AGX Xavier上對剪枝后的YOLOv4-MSENet-prune-0.75網(wǎng)絡進行了移植部署。實驗使用608×608、512×512、416×416三種輸入分辨率,分別在原始的FP32精度、FP16精度和INT 8精度下進行FPS測試。
從表7中可以看出,網(wǎng)絡推理幀率與網(wǎng)絡輸入分辨率以及模型低比特量化精度密切相關。在608×608分辨率下,使用FP32精度的幀率可以達到16 FPS,使用FP16精度的幀率可以達到31 FPS,使用INT 8精度的幀率可以達到38 FPS,這已經(jīng)可以滿足在大多數(shù)情況下的應用。在實際嵌入式端部署時,可以根據(jù)推理速度與精度的需求,選擇適合的網(wǎng)絡輸入分辨率和模型量化精度。
表7 YOLOv4-MSENet-pr une-0.75在嵌入式GPU平臺的表現(xiàn)Tab.7 Performance of YOLOv4-MSENet-prune-0.75 on the embedded GPU platform (FPS)
4.2.5 綜合結果分析對比
為了綜合對比注意力模塊以及通道剪枝對于網(wǎng)絡的貢獻,本小節(jié)實驗分別使用劃分的測試集對標準的YOLOv4-Baseline、改進的YOLOv4-MSENet以及改進并進行模型壓縮后的YOLOv4-MSENet-prune-0.75在同一個置信度閾值下進行測試。表8和表9分別給出了所用訓練集中各樣本在模型中的檢測情況。
從表8中可以看出,對于未改進前的YOLOv4網(wǎng)絡,people這一類的mAP僅能達到16.7%,這是因為VisDrone2019數(shù)據(jù)集中存在極限尺寸的小目標對象,且背景、視角、飛行高度、目標比例都會發(fā)生變化。而本文改進后的YOLOv4-MSENet-prune-0.75網(wǎng)絡將people類精度提高了3.6%。而對于car、van、bus等尺寸較大的類別也提升明顯。在表9中可以看出本文改進的網(wǎng)絡對于布匹疵點數(shù)據(jù)集也有較好的檢測效果。
表8 VisDrone2019數(shù)據(jù)集各個類別性能mAP@0.5Tab.8 Performance of each category of visdrone2019 dataset with mAP@0.5
表9 布匹疵點數(shù)據(jù)集各個類別性能mAP@0.5Tab.9 Performance of each category of fabric defect dataset with mAP@0.5
圖5為網(wǎng)絡改進前后在VisDrone2019數(shù)據(jù)集檢測結果對比圖。在圖5中大多數(shù)待檢測的目標物體屬于小目標(目標像素值占整個圖像0.12%以下或者像素值小于32×32的目標)。圖5(a)中,是people類的小目標,可以看到目標對象特征較少,YOLOv4-MSENet-prune-0.75可以較好地改善漏檢現(xiàn)象。圖5(b)和(c)為兩組背景較復雜的城市道路環(huán)境,在圖5(b)檢測車輛的效果和圖5(c)中檢測道路中的行人的效果可以看出,相對于原網(wǎng)絡,本文提出的網(wǎng)絡可以在復雜背景下實現(xiàn)更好的小目標檢測效果。
圖5 網(wǎng)絡改進前后在VisDrone2019數(shù)據(jù)集檢測結果對比圖Fig.5 Comparison of detection results in the VisDrone2019 dataset before and after network improvement
圖6為布匹疵點數(shù)據(jù)集,將目標疵點標簽編號分設為1~12,共12類疵點。原網(wǎng)絡在三張圖片中均存在對布匹小疵點目標漏檢的現(xiàn)象,而在改進后的網(wǎng)絡中,漏檢的情況得以改善。
圖6 網(wǎng)絡改進前后在布匹疵點數(shù)據(jù)集檢測結果對比圖Fig.6 Comparison of detection results of fabric defect dataset before and after network improvement
實驗結果表明,相比YOLOv4網(wǎng)絡,本文提出的網(wǎng)絡對于小目標數(shù)據(jù)集具有較好的適應性,這主要是由于本文通過改進注意力機制、增加淺層預測層等方法,有助于網(wǎng)絡更好地利用已有的特征信息,使網(wǎng)絡在同一置信度閾值下更準確的檢測小目標物體,改善漏檢錯檢的情況,實現(xiàn)較好輕量化的小目標檢測。
本文提出了一種引入注意力機制的輕量級小目標檢測網(wǎng)絡。該網(wǎng)絡在YOLOv4的基礎上,將所設計的多尺度融合注意力模塊嵌入到骨干網(wǎng)絡中的CSP模塊中,使得特征圖獲得了全局感受野,增強了特征提取能力;改進了原網(wǎng)絡的預測結構,增加更淺層特征層進行預測,以獲得更豐富的分辨率信息;在訓練過程中,采用了數(shù)據(jù)預處理、錨框重新聚類等方法幫助模型更好收斂;另外通過通道剪枝和知識蒸餾,去除了網(wǎng)絡中的冗余參數(shù),有效地降低了模型的參數(shù)量,不僅降低了模型文件的存儲壓力,同時減少了推理時間,為模型的邊緣設備計算部署提供了條件。實驗結果表明,由于本文同時引入注意力機制與通道剪枝,相比于YOLOv4網(wǎng)絡,在無人機航拍數(shù)據(jù)集的mAP性能提高了2.9%,模型大小降低了93.6%,幀率增加了52.6%;在布匹疵點數(shù)據(jù)集中mAP性能提高了2.2%,模型大小降低了92.1%,幀率增加了49.5%。在嵌入式GPU平臺NVIDIA Jetson AGX Xavier上輸入為608×608分辨率的情況下使用FP32精度模型可以達到16 FPS,使用FP16精度模型可以達到31 FPS,使用INT 8精度模型可以達到38 FPS。
因本文未對圖像進行分辨率增強處理,在極限小目標對象的檢測效果上還有所不足。后續(xù)研究將嘗試使用生成對抗網(wǎng)絡來針對小目標檢測生成高分辨率圖像,繼續(xù)增強小目標檢測效果。在模型壓縮方面將嘗試對YOLOv4骨干網(wǎng)絡中的殘差連接層進行通道剪枝操作,并加入層剪枝等模型壓縮方法,進一步優(yōu)化剪枝力度和效果。