?

改進的YoloV3輕量化多目標檢測算法

2024-02-22 07:44蘇擎凱何睿清曹雪虹
計算機工程與設計 2024年2期
關鍵詞:網絡結構特征提取分組

蘇擎凱,童 瑩,何睿清,曹雪虹,

(1.南京郵電大學 通信與信息工程學院,江蘇 南京 210003;2.南京工程學院 信息與通信工程學院,江蘇 南京 211167)

0 引 言

目標檢測的任務是找出圖像中所有感興趣的目標,確定它們的類別和位置[1]。如今目標檢測的應用已經遍及生活的各個方面,往往需要將目標檢測網絡部署在各種邊緣端、移動端上,而由于邊緣設備、移動設備的硬件限制要求目標檢測網絡在降低參數量的前提下盡可能達到實時、準確的目標檢測效果,因此高精度輕量化目標檢測網絡研究具有重要的現實意義。經典的目標檢測網絡分為雙階段檢測算法和單階段檢測算法。單階段檢測算法有更快的檢測速度。最具代表性的是SSD(single shot multibox detector)[2]與Yolo(you only look once)系列網絡。Redmon提出的YoloV1[3]、YoloV2[4]與YoloV3[5],以及Bochkovskiy等提出的YoloV4網絡,逐漸提高了檢測精度,但也使得網絡結構更加復雜,推理速度下降,這并不利于目標檢測網絡在移動設備上的運行。因此輕量化神經網絡越來越為人們所重視,MobileNet[6-8]系列,MnasNet[9]以及ShuffleNet系列[11,12]等相繼被提出,這些網絡降低了參數量,同時也降低了檢測精度。

針對以上問題,本文設計實現了一種輕量化多目標檢測網絡MSPF-YoloV3,此網絡采用MobileNetV2作為YoloV3的特征提取網絡;在特征提取網絡的瓶頸結構(Bottleneck)中,利用低內存占用、低分組數的通道混洗(Shuffle)結構增加通道間信息交流,提高檢測精度;采用SPP模塊融合多尺度的感受野;改進特征融合網絡,將淺層特征與深層特征融合,增加對不同大小目標[13-16]的檢測精度。

1 網絡結構

1.1 網絡結構總體設計

本文設計實現的網絡MSPF-YoloV3如圖1所示。原YoloV3網絡的參數量主要來自于特征提取網絡DarkNet53,因此本文將其替換為更加輕量化的MobileNetV2網絡,并且對其中的Bottleneck進行改進,在Bottleneck的輸入與輸出的位置分別加入分組數為2的通道混洗操作,增加通道之間的信息交流(如圖1中Bottleneck)。在特征提取網絡的輸出之后增加SPP模塊,將不同大小的特征圖進行拼接,將多重大小感受野進行融合(如圖1中SPP)。最后改進特征融合網絡PANet,引出淺層特征與深層特征的上采樣結果融合(如圖1中Feature Fusion)。此網絡名字中M代表MobileNetV2,S代表通道混洗Shuffle操作,P代表SPP模塊,F代表特征融合,YoloV3表示使用YoloV3的基礎網絡結構。

圖1 MSPF-YoloV3網絡結構總覽

1.2 特征提取網絡

DarkNet53是YoloV3的特征提取網絡[5],作為原Yolov3的主干網絡,網絡結構見表1。

表1 DarkNet53結構

本文采用MobileNetV2網絡代替DarkNet53作為YoloV3的特征提取網絡。網絡結構見表2。

表2 MobileNetV2網絡結構

MobileNetV2網絡提出了一種新的逆殘差模塊[7]Bott-leneck,使得殘差模塊中的特征傳遞可以在高維度進行,殘差模塊之間的特征傳遞在低維度上進行,有效提高了特征提取效果,且使用了深度可分離卷積,大大減少了參數量。其內部結構變化如圖2所示。

圖2 殘差結構對比

Bottleneck只有在步長為1時才使用殘差連接,在步長為2時不使用[7]。該結構中首先通過一個1×1卷積塊將輸入升維,然后通過深度可分離卷積代替一般的卷積塊,實現對圖像的卷積和降維,同時將輸出的激活函數relu改為Linear線性連接。深度可分離卷積將普通卷積分解成深度卷積與點卷積。k為卷積核大小,C1為輸入通道數,C2為輸出通道數,普通卷積參數量Pc如式(1)所示

Pc=k×k×C1×C2

(1)

深度可分離卷積參數量Pdc如式(2)所示

Pdc=k×k×C1+1×1×C1×C2=

C1×(k×k+C2)

(2)

深度可分離卷積與普通卷積的參數量比值Pdc/c如式(3)所示

(3)

一般卷積核大小選擇3×3,因此深度可分離卷積的參數量約為普通卷積的1/8到1/9。同樣的,本文將網絡的所有普通卷積都替換成深度可分離卷積,既達到了與原來相同的效果,又減少了大量的參數,以此作為基礎網絡M-YoloV3。

1.3 通道混洗

2018年,ShuffleNetV1提出了一種分組卷積和通道混洗的方法[11],分組卷積是將輸入通道分若干組,不同組的通道與不同的卷積核進行卷積,最后將結果拼接在一起,這種卷積方式會導致不同組的通道之間沒有任何的信息交流,而通道混洗的操作會按照既定規則將各個分組中的通道打亂,重新排列,使得不同分組之間的信息相互融合,克服了組卷積的缺點。經過ShuffleNetV1網絡的實驗,發現分組數g越大,網絡的識別效果越好[11],但是ShuffleNetV2提出分組數g越大,占用的內存越大[12],這對于在移動設備上運行神經網絡是一個劣勢。

本文使用的特征提取網絡中的深度可分離卷積可以看作是組卷積的一個特殊情況,即分組數g與輸入通道相同,因此也具有通道間信息交流少的特點。本文設計用兩次分組數g為2的通道混洗操作來代替一次分組數g為4的通道混洗操作增加不同組通道之間的信息交流,既滿足分組數越大效果越好的結論,也符合減少分組數以減少內存占用的原則。

通道混洗的具體做法是先將輸入通道分組疊加為矩陣,之后將這個矩陣轉置并逐行讀入,便得到了輸出通道。遵循這種方法,本文證明兩次g=2的通道混洗結果與一次g=4的通道混洗結果一致,而且此操作不會增加模型的參數量。推算過程如圖3、圖4所示。

圖3 一次g=4的通道混洗

圖4 兩次g=2的通道混洗

因此本文在原Shuffling Module(如圖5(a)所示)基礎上進行改進,在輸入與輸出的位置分別加入g=2的通道混洗操作作為本文改進的Bottleneck,如圖5(b)所示。在圖中位置加入通道混洗,可以在兩個Bottleneck之間形成等價于g=4的通道混洗操作,既節約了內存,又盡可能利用高分組數增加了通道之間的信息交流,提高目標檢測精度。本文將使用這種Bottleneck的網絡稱為MS-YoloV3。

圖5 原Shuffle Module與加入通道混洗的Bottleneck對比

1.4 SPP模塊

SPP模塊的功能是將輸入特征圖并行經過不同大小的池化層,再將各支路的結果拼接在一起,結構如圖6所示。

圖6 SPP模塊結構

SPP模塊借鑒了空間金字塔的思想[16-18],實現了局部特征和全局特征融合,豐富了特征圖的表達能力,有利于待檢測圖像中目標大小差異較大的情況,提高對不同大小目標的檢測精度。

因此本文將SPP模塊直接連接在特征提取網絡的輸出之后,可以將不同尺寸的特征融合,提高感受野大小,對于YoloV3這種多目標檢測網絡非常有利,本文將這種網絡結構稱為MSP-YoloV3。

1.5 特征融合

經過上述的理論分析,MSP-YoloV3網絡結構設計如圖1(不包括圖中特征融合部分)所示。將M-YoloV3網絡與MSP-YoloV3網絡在PASCAL VOC數據集上進行訓練,分別向兩個網絡分別輸入一張相同的圖片,兩種網絡推理得到結果如圖7中的前兩張結果所示。

圖7 各網絡推理結果

對比兩種網絡推理結果,發現MSP-YoloV3網絡比M-YoloV3網絡多檢測到了最左邊的汽車,且絕大多數的檢測置信度大于基礎網絡的檢測置信度,但是對于遠處的尺寸較小的行人卻沒有標示出檢測框,分析原因:

(1)M-YoloV3網絡對左側的車可能已經檢測到了,但由于置信度較低(低于設置的閾值0.5),導致結果中沒有標示出檢測框。而網絡的對人檢測的精確度比對汽車的精確度高,對遠處的人的置信度達到了0.5,因此標示出了檢測框。

(2)對比兩張推理結果中的各個檢測框,可以看到MSP-YoloV3網絡每一個目標的置信度都是大于M-YoloV3網絡的,因為加入通道混洗操作之后通道間的信息交流增加,提高了精確度,但是對于遠處的行人這種尺寸較小的目標檢測精度卻降低了,因為在特征提取網絡中的各個Bottleneck都加入了通道混洗操作,導致淺層的特征圖中所包含的目標信息過早被打亂,使得小尺寸目標的檢測更加困難。

在特征提取網絡中,淺層的特征圖感受野小,特征語義信息比較少[19-21],但是目標位置準確,比較適合檢測小尺寸目標;而深層的特征圖感受野大,包含更多的特征語義信息,也包含了更多的背景噪音,對小尺寸目標的檢測不利。因此本文將經過更少量特征提取網絡的淺層特征圖引出,并與深層特征圖在PANet中進行融合,利用淺層特征的位置信息,指導深層特征對小尺寸目標進行更加準確的檢測。網絡結構設計如圖1所示,增加圖1中的特征融合部分,得到本文完整的網絡MSPF-YoloV3。推理圖片結果圖7中的第三張結果圖所示。MSPF-YoloV3推理結果證明將淺層特征與深層特征進行融合,增加了對小尺寸目標的識別精度,效果較為顯著。

2 實驗結果與分析

2.1 實驗環境

本文的實驗平臺為Ubuntu16.04,裝有兩塊NVIDIAGTX 1080Ti顯卡,評價指標采用mAP,即各類別AP的平均值。數據集采用PASCAL VOC07+12數據集與COCO2014數據集,COCO2014數據集使用與PASCAL VOC07+12數據集中相同的20個類的圖片。初始學習率設置為0.001,隨訓練epoch動態減少,訓練epoch為500,loss穩定后保存結果。

2.2 實驗結果

本文在PASCAL VOC07+12數據集上訓練測得YoloV3原網絡、M-YoloV3網絡,MP-YoloV3網絡,MSP-YoloV3網絡以及MSPF-YoloV3的mAP與FPS(Frames Per Second)見表3。

表3 PASCAL VOC07+12數據集上的性能對比

在COCO2014數據集上測得的mAP與FPS,結果見表4。

表4 COCO2014數據集上的性能對比

從表3和表4中的結果可以看出,以MobileNetV2代替DarkNet53作為特征提取網絡,參數量的降低導致了一定檢測精度損失,而加入SPP模塊、修改Bottleneck以及改進特征融合網絡都使檢測精度得到了顯著提升。這些改進使得網絡在推理時的FPS在兩個數據集上分別達到了44.21 FPS與43.78 FPS。驗證了本文網絡改進在不同數據集上的魯棒性。

本文提出的各種改進措施均不會增加大量的參數量,在深度可分離卷積的作用下網絡權重大小降低了約198 MB。適合在存儲空間有限的移動設備上運行,各網絡的權重文件大小見表5。

表5 不同網絡模型權重文件大小/MB

MSPF-YoloV3網絡在PASCAL VOC07+12數據集20個分類(a)~(t)的準確率如圖8所示,COCO2014數據集中20個分類的準確率如圖9所示。圖中縱坐標表示識別率Precision,范圍是0~1,橫坐標表示得分閾值Score-Threhold,范圍是0~1,本文取Score-Threhold=0.5時的Precision作為最終結果,每張子圖的右下角標注了數據的類別(class)和識別精確度(precision)。

圖8 20個類別的準確率(PASCAL VOC07+12)

圖9 20個類別的準確率(COCO2014)

其次本文為了驗證加入分組數為2的通道混洗之后可以達到與分組為4的效果且會占用較少的內存,測量了不同通道數時通道混洗操作的占用內存,結果見表6。

表6 不同通道數情況下占用的內存/MiB

表中分組數g=4列表示一次g=4的通道混洗操作,分組數g=2列表示兩次g=2的通道混洗操作,所測數據表明在每一種通道數的情況下,將分組數g=4的通道混洗操作替換為兩次g=2的通道混洗操作,使得內存占用平均下降了14%。

最后,本文向各種網絡送入與圖7不同的圖片,這些圖片擁有不同大小、不同類別的目標。各種網絡的推理結果如圖10所示。

圖10 3種網絡的推理結果

從圖10檢測結果中可以看出,M-YoloV3網絡可以檢測出來的目標較少且大多置信度不高,而加入了通道混洗操作的MSP-YoloV3網絡可以檢測到更多的目標,但卻存在著一些識別錯誤或者沒有檢測到小尺寸目標的情況,比如(a)列第二行的圖片中的左下角目標框,將motorbike標注為了bicycle,(b)列第二行的圖片中將右側汽車標注為了bus,而第三行改進了特征融合網絡的MSPF-YoloV3,對不同大小,不同類別的目標檢測置信度都有所提升,驗證了模型推理效果的有效性與普適性。

3 結束語

本文通過采用MobileNetV2作為YoloV3網絡的特征提取網絡,將網絡中的所有普通卷積替換為深度可分離卷積,并且在特征提取網絡的Bottleneck結構中設計實現了一種低分組數、低內存占用的通道混洗結構,參數量更少,保證了網絡的檢測精度,最后改進PANet將位置信息更為準確的淺層特征作為“指導”與深層特征融合彌補小目標檢測的劣勢,得到MSPF-YoloV3網絡。通過消融實驗方法驗證了每一步網絡結構修改的有效性,通過在不同的數據集以及不同的推理圖片上的實驗結果驗證了MSPF-YoloV3網絡的魯棒性與普適性。

本文設計實現的MSPF-YoloV3網絡相比于YoloV3網絡權重大小降低了約80%,mAP提升了約16%,且這種通道混洗結構設計的思路可以靈活運用增加通道間信息交流,為解決移動設備上運行目標檢測網絡提供了一種思路。

猜你喜歡
網絡結構特征提取分組
分組搭配
基于Daubechies(dbN)的飛行器音頻特征提取
怎么分組
分組
Bagging RCSP腦電特征提取算法
基于互信息的貝葉斯網絡結構學習
知識網絡結構維對于創新績效的作用機制——遠程創新搜尋的中介作用
滬港通下A+ H股票網絡結構演化的實證分析
復雜網絡結構比對算法研究進展
基于MED和循環域解調的多故障特征提取
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合