?

基于RB-YOLO 的生活垃圾實時檢測算法

2021-02-25 03:36董霄霄劉振國宋滕滕何益智
智能計算機與應用 2021年10期
關鍵詞:卷積準確率算法

董霄霄, 劉振國, 宋滕滕, 何益智, 李 釗

(山東理工大學 計算機科學與技術學院, 山東 淄博 255000)

0 引 言

根據全國大、中城市固體廢物污染環境防治年報[1],2019 年196 個大中城市生活垃圾產生量達到2.3 億噸。 而據中國城市環境衛生協會統計,國內每年產生近10 億噸垃圾,并且城鎮生活垃圾還在以每年5%~8%左右的速度遞增。 大量垃圾的堆棄造成國內近三分之二的城市面臨垃圾圍城的危機,同時導致土地資源匱乏和環境污染加劇等問題。 實現可持續發展,建立一個有效的垃圾處理體系至關重要,而垃圾檢測則是垃圾處理中的重要一環。 根據可回收物、廚余垃圾、有害垃圾、其他垃圾的分類原則對垃圾進行識別和定位,能夠在促進資源化管理的同時提高垃圾處理效率。

在垃圾檢測智能化的背景下,研究人員展示了各種深度學習算法在垃圾檢測方面的能力。 Sousa等人[2]分別基于形狀和材質對食物托盤上的垃圾進行檢測和分類,提出了一種基于Faster RCNN[3](Fast Region-based Convolutional Network method)的分層次的級聯網絡模型,在自制的數據集上分別達到了86%和80.9%的準確率。 文燦華等人[4]從網絡結構出發,分析對比了3 種典型的主干網絡VGG-16[5]、ResNet - 101[6]、 MobileNet _ v1[7]在 Faster RCNN 上的性能,實現對多類別垃圾的高精度檢測。類似 地,Melinte 等 人[8]采 用SSD-MobileNetV2、SSD-InceptionV2、Faster-RCNN-InceptionV4 對城市垃圾進行檢測,研究表明目標檢測器的性能取決于數據增強、CNN 模型、數據集數量、損失優化、超參數調整、遷移學習。

以上兩階段目標檢測算法雖然準確率高,但是訓練難度大、檢測速度慢,在實際應用中限制了垃圾檢測的效率。 因此在檢測速度方面具有極大優勢的YOLO[9-11](You Only Look Once)引起了廣泛研究。許偉等人[12]為了提高檢測速度提出一種改進的MobileNetV3-YOLOv3,在YOLO 層加入GRU 結構,平均準確率為90.50%,檢測速度達到18 幀/s,但實驗數據集僅包含6 種類別約5 000 張圖片。 魏鋮磊等人[13]提出ECA_ERFB_s-YOLOv3 算法提高檢測精度,采用ResNet-50 作為特征提取網絡,引入多尺度感受野模塊和注意力機制,最終達到了89.4%的準確率、17 幀/s 的檢測速度,但是模型較大,不利于邊緣設備的部署。 同樣地,Zhao 等人[14]提出一種用于生活垃圾檢測的Skip-YOLO 模型,采用密集塊提取高維特征圖,檢測精度提高了22.5%,平均召回率提高了18.6%,但是模型復雜且實時性差。

盡管現有的研究已經將垃圾圖像目標檢測與深度學習方法相結合,以改進垃圾圖像的識別與定位,這一領域依舊存在著一些問題:

(1)基于深度學習的垃圾圖像檢測的研究脫離實際。 目前研究以實驗室背景的小數據集為主,與真實場景存在較大差距,難以實際應用到工業中。

(2)現有的模型訓練與預測運算復雜、時效性差,無法滿足實際應用的要求。

(3)生活垃圾數據集具有類內差異性大的特點(例如同屬于“果皮果肉”類的香蕉和蘋果具有完全不同的顏色、形狀等特征),而目前的研究只是從一個廣泛的角度進行,未能解決實際生活中的垃圾檢測問題。

針對上述問題,本文提出了一種基于改進YOLOv3 的復雜場景下生活垃圾檢測算法RBYOLO。 以YOLOv3 算法為基礎,采用輕量級神經網絡RepVGG[15]作為骨干網絡,通過結構重參數化解耦模型訓練與推理,減少了51%的參數量,提升了43%的速度。 采用加權雙向特征金字塔(Bi -directional Feature Pyramid Network,BiFPN)[16]優化特征金字塔(Feature Pyramid Networks,FPN)[17]結構,通過加權特征融合使得模型能夠更好地平衡不同尺度的特征信息,加強低語義和高語義信息共享,提高同類垃圾相似特征的敏感性。 引入空洞空間池化金字塔ASPP (Atrous Spatial Pyramid Pooling,ASPP)[18]多尺度獲取特征信息,提高垃圾檢測復雜背景下模型特征提取能力。 最后結合遷移學習,進一步提高模型準確率。

1 RB-YOLO 模型結構

生活垃圾排列無序、形狀多變,同類垃圾的特性差別很大,這就產生了一定程度的數據波動,這種數據波動使得網絡在學習過程中存在過擬合現象。 訓練結果缺乏足夠的泛化,影響最終平均精度。 本文提出了一種用于生活垃圾實時檢測的RB-YOLO 模型,具體結構如圖1 所示。 采用RepVGG 進行特征提取,在訓練和推理階段采用不同的網絡結構,保證模型在訓練時的準確率和推理時的速度。 特征提取網絡還結合了ASPP 以實現多重感受野,由于26×26 和52×52 的檢測器擁有足夠大的感受野,因此本文僅對13×13 的檢測器添加ASPP 模塊,在增加少量計算量的同時擴大感受野。 完成特征提取之后,采用BiFPN 對提取到的特征信息進行加權雙向特征融合增強,以充分利用低層次的特征信息和高層次的語義信息。

圖1 RB-YOLO 網絡結構圖Fig.1 Structure of RB-YOLO networks

1.1 改進主干特征提取網絡

為了滿足檢測模型的實時性和準確率,本文針對YOLOv3 的主干特征提取網絡進行了優化,采用輕量級卷積神經網絡模型RepVGG 替換原始的DarkNet-53。 相比于DarkNet-53,RepVGG 具有以下優點:首先,RepVGG 全部采用3×3 卷積。 與1×1卷積和5×5 卷積相比,3×3 卷積計算密度(理論運算量/所 用 時 間) 更 大, 計 算 速 度 更 快; 其 次,RepVGG 采用單路架構運算速度快且占用內存少。

RepVGG 網絡由20 多層3×3 卷積堆疊而成,分成5 個stage,每個stage 的第一層是stride =2 的降采樣,每個卷積層用ReLU作為激活函數。 RepVGG 的主要特點是解耦了模型訓練和推理,針對網絡訓練和推理階段不同的需求采用不同的網絡架構。 在訓練階段最重要的是準確率,因此RepVGG 網絡采用多分支結構,由3×3 卷積、1×1 卷積分支和identity 的殘差分支相結合的RepVGG Block 組成,多分支的結構通過應用不同的卷積核獲得不同的感受野,將不同感受野獲取到的信息進行融合強化特征提取以提高模型性能。 同時,具有多個分支的殘差結構相當于網絡具有多條梯度流通路徑,等同于同時訓練多個網絡并進行融合,類似于模型集成。 在推理階段更關注速度,因此RepVGG 網絡采用單路結構,通過結構重參數化將訓練階段的模型等價轉換得到類VGG 的推理模型,由3×3 卷積塊構成極大地提高了推理速度,方便模型部署和加速。 在RepVGG 系列模型中,RepVGGA0 作為基礎模型參數量少且推理速度快,在獲取特征信息方面也有較好的性能。 考慮到在實際工業中的應用,在本文中采用RepVGG-A0 作為主干網絡。

RepVGG 網絡中提出的結構重參數化技術,通過改變結構和參數將網絡模型由多分支結構轉換為單分支結構,2 種模型在數學推理上是等價的,能夠提高設備內存利用率,同時提升模型的推理速度。 結構重參數化具體流程如圖2 所示,主要思路包括卷積層和BN層融合(圖2(a))、卷積層合并(圖2(b))兩部分。

圖2 結構重參數化過程Fig.2 Process of structure reparameterization

1.1.1 卷積層和BN 層融合

在卷積神經網絡中,BN 層(Batch Normalization)得到了廣泛的應用,能夠提高網絡泛化能力,加快收斂速度,緩解了梯度彌散問題。 在網絡的推理階段,將BN 層的運算直接嵌入到卷積層中,減少運算量,提升網絡的運行速度。

卷積層輸出如公式(1)所示:

其中,x為每一層輸入;w為權重;b為偏置。

BN 層主要包括歸一化和縮放兩部分,BN 層輸出的具體計算方式如式(2)所示:

其中,γ為縮放參數;β為偏移參數;μ為樣本均值;σ為標準差;ε表示一個極小值(防止分母為0)。將卷積層和BN 層合并,將式(1)代入式(2)可得:

將BN 層輸出y2經過變形可得到如下形式:

在推理階段,BN 層的樣本均值和標準差來自于訓練樣本的數據分布,縮放參數和偏移參數是和其它模型參數一起通過梯度下降方法訓練得到,即μ、σ、γ、β均為固定常數值。 則令得到公式(5),因此根據推導可知將BN 層直接合并到卷積層的計算中,相當于將卷積核縮放一定倍數,并對偏置進行一定改變,省去了整個BN層的計算量,提高了推理速度。 數學公式具體如下:

1.1.2 卷積層合并

經過卷積層和BN 層融合之后,可以得到3×3卷積、1×1 卷積分支和Identity 分支,以及3 個偏置向量。 假設輸入通道數等于輸出通道數,且每種卷積具有相同的步長。 1×1 卷積和3×3 卷積層合并過程如圖3 所示。 根據圖3 可知,1×1 卷積可轉換為中心值為1×1 卷積的權重值,其他位置值為0 的3×3 卷積,1×1 卷積和3×3 卷積層合并即將1×1 卷積核中的數值移動到3×3 卷積核的中心。 而Identity分支可以看作是一個核為單位矩陣的1×1 卷積,進而填充為特殊的3×3 卷積,將其與輸入的特征映射相乘之后,輸出數據保持不變。 1×1 卷積和3×3 卷積層合并過程如圖3 所示。 根據卷積的可加性,1×1 卷積分支Identity 分支進行等價轉換后即可和3×3 卷積進行合并。 最終的偏置向量可由3 個偏置向量相加得到。

圖3 1×1 卷積和3×3 卷積層合并Fig.3 Combination of 1×1 convolution and 3×3 convolution layer

1.2 引入空洞空間卷積金字塔池化

在進行了主干特征提取之后,本文引入了ASPP 模 塊。 ASPP 在 SPP ( Spatial Pyramid Pooling)[19]模塊基礎上引入了空洞卷積[20],可以增強模型對不同尺度分割目標的感知能力。 空洞卷積是在標準卷積中添加空洞來增加感受野,可以有效緩解下采樣導致的空間分辨率降低的問題。 對于給定的輸入,ASPP 采用多個具有不同膨脹率的并行擴張卷積層,能夠在不降低特征圖分辨率的情況下擴張感受野,使得計算成本不顯著增加。 ASPP 通過不同膨脹率的空洞來獲取長跨度的上下文語義信息,這不僅提高了準確率,而且速度更快。

針對垃圾檢測背景復雜的問題,ASPP 能夠通過不同的感受野將局部信息和全局信息進行融合,豐富了特征圖的表達能力,提高復雜場景下垃圾檢測能力。 在該模型中,使用全局平均池化、一個普通卷積和3 個空洞卷積{Rate =3,5,7}(Rate為空洞率)。 圖4 展示了包含3 個空洞卷積的ASPP 結構,將圖像級特征的全局平均池化與空洞卷積的結果進行融合得到最終結果。

圖4 ASPP 結構圖Fig.4 ASPP structure chart

1.3 加強多尺度特征融合

YOLOv3 采用FPN 來檢測大小不同的物體,不同的尺度輸出特征的在融合時貢獻相等,對有效信息沒有特殊關注,同時FPN 獲取到的特征信息受到單向信息流的限制。 BiFPN 主要包括雙向多尺度連接和加權特征融合兩部分。 首先,以類似殘差連接的方式在輸入和輸出節點之間增加了一條額外的邊,在增加少量計算的代價下融合更多特征;同時借鑒PANet[21]提出的自上而下和自下而上的雙向路徑作為基礎層,多次重復以實現更有效的特征融合。其次,考慮到不同尺度特征圖重要性不同,BiFPN 使用加權融合的方法來融合不同分辨率的特征層,通過可訓練的權重,調節特征在特征融合中的貢獻,可以用于解決FPN 中的平等貢獻問題,針對多尺度的目標細粒度檢測任務有很好的效果。

針對生活數據集同類別差異性大的問題,本文采用BiFPN 對提取到的特征進行加強,將主干的C3到C5 層的特征傳遞到BiFPN 作為選定的多尺度特征層。 自上而下的特征融合通過上采樣來完成,高層特征通過上采樣調整分辨率、進而與低層特征信息進行融合,對融合后的特征進行3×3 卷積以消除混疊效應。 自下而上的特征融合通過下采樣來完成,將自上而下融合得到的特征通過池化操作調整分辨率與高層特征進行再融合,最終得到3 個尺度不同的輸出特征P3、P4、P5,具體結構如圖5 所示。

圖5 RB-YOLO 中的BiFPN 結構Fig.5 BiFPN structure in RB-YOLO

2 實驗和結果

2.1 實驗數據集

本文所采用的數據集共34 319 張圖片,主要有3 個來源。 一是2020 年深圳舉辦“華為云杯·生活垃圾圖片分類”大賽公布的VOC 格式的生活垃圾圖像數據集(以下簡稱為“華為云垃圾數據集”),該數據集有4 個大類和47 個小類,總計19 655張圖像。二是由Mittal G 等人發布的COCO 格式的TACO 數據集,共由1 500張圖片和4 784個標注。 三是通過網絡爬蟲、百度飛槳平臺搜集到13 164張生活垃圾圖片,大部分從百度的垃圾數據集中挑選而來,小部分來自網絡爬取并進行手工標注。 在數據處理過程中,本文發現華為云垃圾數據集和TACO 數據集小部分圖像存在標注錯誤、漏標的問題,而百度數據集漏標更為嚴重。 針對此,本文將問題數據通過LabelImg 重新標注,并且對數據集的類別進行了統一,最終得到了本文數據集Domestic Garbage Dataset(DGD),將原始數據集按照4:1 的比例分為訓練集和測試集。

2.2 實驗環境

本文實驗在Window 系統上進行評估。 實驗使用了深度學習框架Pytorch 1.6 和編譯器Python 3.7,硬件環境為Intel(R) Core(TM) i5-10400F CPU、GTX2070s 顯卡、8 GB 顯存以及32 GB 內存的電腦。

在網絡參數設置方面,訓練時輸入圖像設置為416×416,采用Adam作為優化函數對模型進行訓練。 基于遷移學習的思想采用凍結訓練,對預訓練網絡模型權重參數進行層遷移,凍結預訓練網絡模型中主干網絡的權重參數,初始學習率為1e-3,epoch為50,Batch_Size為32;解凍后初始學習率設為1e-4,epoch為150(在凍結訓練模型的基礎上再訓練100epoch),Batch_Size為16。 為了增強模型的魯棒性和泛化能力,對訓練數據集采用了簡單的在線數據增強,包括圖像縮放、圖像翻轉等。

2.3 評價指標

本文實驗采用了mAP((Mean average precision)、FLOPs(Floating-point Operations)、FPS(Frames Per Second)、Params(parameters)作為模型性能評價指標。 其中,mAP指所有目標平均準確率的均值,綜合表示模型性能;FLOPs是浮點運算數,用來衡量模型的復雜度;FPS即每秒傳輸幀數, 可以驗證模型的實時性;Params為參數量,代表模型所需要的算力。

2.4 實驗結果與分析

針對以上改進,本文設計了2 組實驗進行驗證。一是對RB-YOLO 進行消融實驗以驗證每個改進點的有效性,二是與其他算法綜合對比驗證所提出算法的可行性。

2.4.1 消融實驗結果

為了驗證所提出方法的可行性,在提出的DGD數據集上進行了一系列對比實驗,見表1。 表1 中,“√”表示添加該模塊,否則為不添加。 實驗考慮了RepVGG、BiFPN、ASPP 三個因素對實驗結果的影響,在對比實驗中逐個添加改進模塊以驗證單個變量對實驗數據的影響。 測試集圖片大小為416×416,訓練周期為150 個epoch。

本文實驗將YOLOv3 作為基礎模型,消融實驗結果見表1。 消融實驗檢測的對比仿真結果如圖6所示。 圖6 中,第1、2、3 列原圖片來自數據集測試集,第4 列原圖片來自網絡搜索。 對比第1 組和第2 組實驗數據,結果表明相比YOLOv3,RepVGGYOLO 模型準確率提升了0.88%,速度提升了27FPS,FLOPs減少了19.9 G,RepVGG-A0 作為特征提取網絡在保證準確率的同時將檢測速度提升了約1.7 倍。 改進的特征融合BiFPN 也起到了不錯的效果,從第2 和第3 組實驗數據可以看出對比原模型精度提升了0.85%,且參數量進一步減少了3.64 M,有利于工業端的部署,但是增加了部分運算量。 從圖6(c)可以看出,改進特征融合對于發生形變的易拉罐具有更好的檢測效果,在一定程度上能夠使得檢測結果更加優化。 第2 組和第4 組實驗驗證了ASPP 的可行性,對比RepVGG-YOLO,精度提升了1.31%,速度減少了8FPS。 從圖6(d)可以看出,加入ASPP 后能夠檢測出背景復雜的陶瓷器皿和被遮擋的污損用紙,而其它模型(a)、(b)、(c)均有不同程度的漏檢。 1、5 組實驗可以看出,本文提出算法RB-YOLO 準確率比YOLOv3 提升了4.31%,速度提升了16FPS,計算量減少了17.52 G,參數量減少了約51%。 由圖6(e)的檢測結果同樣可以看出,本文算法的檢測結果更加細致和全面,且對于網絡搜索的圖片具有良好的檢測效果,證明了本文所提出算法的可行性和魯棒性。

圖6 消融實驗檢測結果對比Fig.6 Comparison of detection results of ablation experiments

表1 消融實驗Tab.1 Ablation experiments

2.4.2 與其他模型對比實驗結果

為了驗證算法的優越性,將RB-YOLO 與常見的目標檢測算法YOLOv3、SSD、Faster RCNN 在DGD數據集上進行實驗對比,所采用的框架均為Pytorch,默認輸入圖像大小為416×416,訓練周期為150 個epoch。 表2 展示了RB-YOLO 算法與其他算法的對比,圖7 展示了RB-YOLO 與其他算法的檢測效果(從左到右依次為Faster RCNN、SSD、RB-YOLO檢測效果圖;第1、2 行原圖片來自數據集測試集,第3 行原圖片來自網絡搜索)。

從表2 和圖7 可以看出,和其他幾種算法相比,本文提出的RB-YOLO 不論在速度、還是準確率上都具有巨大優勢,更好地實現了速度和精度的均衡。在檢測速度方面,RB-YOLO 檢測速度最快,達到了53FPS,比SSD 算法高出27FPS, 快了大約1 倍;比Faster RCNN 算法高出32FPS,快了大約1.5 倍;比YOLOv3 高出16FPS,快了大約0.4 倍。 在準確率上,RB-YOLO 同樣優于其他算法,達到73.83%,同時對圖7 進行綜合分析也能夠看出,相比Faster RCNN 和SSD,RB-YOLO 在3 組圖片中能夠較為細致、全面地檢測出圖片中的目標,并且能夠正確分類。 Faster RCNN 雖然檢測出較多的目標,但是沒有正確分類,SSD 則沒有檢測出任何目標。 3 組不同來源的數據證明RB-YOLO 不僅在DGD 數據集上取得了良好的效果,同時也具有良好的魯棒性,能夠被廣泛應用。 在參數量方面,RB-YOLO 的參數量明顯小于YOLOv3 和Faster RCNN,但是比SSD 略大6.61 M,因為RB-YOLO 中ASPP 模塊的引入增加了大量參數。 綜合分析,基于RB-YOLO 的垃圾檢測算法在快速檢測的同時保證了垃圾檢測的準確率,能夠較好地完成垃圾檢測任務。

圖7 不同目標檢測算法檢測結果對比Fig.7 Comparison of detection results of different target detection algorithms

表2 不同目標檢測算法結果比較Tab.2 Comparison of results of different target detection algorithms

3 結束語

針對生活垃圾數據集存在的背景復雜、類內差異大的問題,進一步實現生活垃圾的快速檢測,本文提出了一種基于改進YOLOv3 的輕量級垃圾檢測算法。 該算法將特征提取網絡Darknet-53 替換為RepVGG,在保持精度不變的同時大幅減少計算量和提升速度;采用BiFPN 加強特征融合,進一步減小網絡模型的參數量;引入ASPP 實現局部信息和全局信息的有效融合,更好地對復雜背景下的目標進行檢測。 在DGD 數據集上,RB-YOLO 算法的準確率和速度均優于其他算法,但是根據實際檢測效果來看,依舊存在一定的漏檢情況,因此,下一步的研究方向是在保持檢測速度的同時提高模型的準確率。

猜你喜歡
卷積準確率算法
基于全卷積神經網絡的豬背膘厚快速準確測定
基于圖像處理與卷積神經網絡的零件識別
乳腺超聲檢查診斷乳腺腫瘤的特異度及準確率分析
多層螺旋CT技術診斷急性闌尾炎的效果及準確率分析
不同序列磁共振成像診斷脊柱損傷的臨床準確率比較探討
頸椎病患者使用X線平片和CT影像診斷的臨床準確率比照觀察
基于深度卷積網絡與空洞卷積融合的人群計數
Travellng thg World Full—time for Rree
卷積神經網絡概述
學習算法的“三種境界”
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合