易才鍵,陳 俊,王師瑋
(福州大學物理與信息工程學院,福建 福州 350108)
ycjfzu1998@163.com;56851@qq.com;shiweiwangwsw@163.com
隨著經濟的高速發展,城市規模逐漸擴大,人們的生活垃圾產量也逐年增加。面對龐大的垃圾處理需求和“臟亂差”的工作環境,人工分揀生活垃圾的方式存在垃圾分類效率低、工人勞動強度大等問題[1]。針對以上問題,研究應用深度學習技術輔助實現智能化垃圾分類,具有重要的現實意義和實用價值。
近年來,深度學習技術在很多領域表現出色,尤其在圖像分類方面取得了巨大進展[2]。隨著越來越多的學者對卷積神經網絡開展研究,許多性能優異的大型網絡被提出,如VGG[3]、GoogleNet[4]、ResNet[5]等。但是,這些大型網絡普遍存在參數量過大、運行速度慢等問題,無法應用在對實時性有一定要求的場景中。為解決上述問題,一些學者提出輕量型網絡,如SqueezeNet[6]、MobileNet[7]、ShuffleNet[8]等,這類輕量型網絡能夠滿足實際生活和工業生產場景的需求,適合用于生活垃圾圖像的分類。
華為技術有限公司發布了一組符合我國生活垃圾分類標準的數據集(以下簡稱為華為垃圾分類數據集),進一步推動了該領域的發展。在華為垃圾分類數據集上,董子源等[9]提出GCNet(Garbage Classification Network,垃圾分類網絡),引入注意力機制提升模型的特征提取能力,取得96.73%的分類準確率。徐傳運等[10]以深度殘差網絡ResNet18為基礎,引入多分支和特征融合結構,分類準確率可達97.53%。現有的垃圾圖像分類算法雖然性能較好,但是因參量數過大而難以部署在實際的生活垃圾分類場景中。
針對上述問題,本文對輕量型網絡MobileNetV2進行改進,提出了一種輕量級且魯棒性強的生活垃圾圖像分類模型DG-MobileNetV2,該模型可準確、高效地對生活垃圾圖像進行分類。
MobileNetV2網絡[11]使用深度可分離卷積(Depthwise Separable Convolution)代替標準卷積,大大減少了網絡的參數量。深度可分離卷積由深度卷積(Depthwise Convolution,DW)和點卷積(Pointwise Convolution,PW)組成,深度卷積是指每一個卷積核負責一個通道的計算,只提取圖像特征,不進行通道的合并;點卷積是卷積核大小為1×1的標準卷積,用于重新組合通道信息,構建新的特征。標準卷積和深度可分離卷積的過程對比如圖1所示,圖1中Dk是卷積核尺寸,M和N分別是輸入通道數和輸出通道數。
圖1 標準卷積與深度可分離卷積對比Fig.1 Comparison between standard convolution and depthwise separable convolution
在不考慮偏置參數的情況下,以3×3尺寸的卷積核為例,深度可分離卷積的計算量約標準卷積的1/9 倍,計算量大幅降低。
除了保留深度可分離卷積操作,MobileNetV2 在MobileNetV1的基礎上還提出逆殘差結構(Inverted Residual)和線性瓶頸結構(Linear Bottleneck)。線性瓶頸結構如圖2所示,首先使用PW進行升維操作,其次經過DW提取特征,最后利用PW降低維度,圖中t為維度縮放的倍數。線性瓶頸結構中的“先升維后降維”卷積操作即為逆殘差結構,能夠在DW前引入盡可能多的圖像信息,更有利于特征提取。根據步長stride的不同,線性瓶頸結構分為兩種情況:步長stride=1時,引入殘差連接結構;stride=2時,沒有殘差連接結構。
圖2 線性瓶頸結構Fig.2 Structure of linear bottleneck
在卷積神經網絡中,特征提取主要依賴卷積操作,為提高模型的特征提取能力,本文提出雙尺度深度卷積(Dual-Scale Depthwise Convolution,DSDC)模塊。多尺度卷積的思想源自于GoogleNet的Inception結構,本文通過并聯3×3和5×5兩種尺度的深度卷積核替換原來的3×3卷積核。DSDC模塊的結構如圖3所示,輸入特征圖分別進行3×3和5×5的深度卷積,之后將計算后的特征圖拼接起來作為整個模塊的輸出。
圖3 DSDC模塊結構Fig.3 Dual-scale depthwise convolution structure
在深度可分離卷積過程中,深度卷積僅關注圖像的空間信息,通道信息的融合依靠點卷積操作,然而點卷積操作往往會消耗大量的計算資源。因此,本文利用分組卷積(Group Convolution,GConv)結合通道混洗(Channel Shuffle,CS)技術代替網絡中的部分點卷積操作,不僅壓縮了模型的參數量,還保證了通道間信息的流通。
通道混洗技術以分組卷積為前提,首先將輸入通道數C分為G組,令每個卷積核僅負責C/G個通道的卷積計算,然后將結果拼接得到輸出特征,通過分組卷積能夠將計算量壓縮至標準卷積的1/G。但是,分組卷積的弊端也很明顯,不同組之間相互獨立,通道之間的信息沒有交流。通道混洗技術將分組卷積后的輸出特征進行打亂與重組,在不增加任何參數量的前提下,使不同組的通道信息充分融合。圖4(a)是普通的分組卷積操作,通道信息無法交流;圖4(b)利用通道混洗技術保證了通道信息的交流與融合。
圖4 分組卷積與通道混洗技術Fig.4 Group convolution and channel shuffle technology
DG-MobileNetV2以MobileNetV2為基礎,構建新的線性瓶頸模塊,調整網絡寬度因子,達到壓縮模型參數量、提高分類準確率的效果。改進后的線性瓶頸模塊(New-Bottleneck)如圖5所示,其中t為維度縮放的倍數。圖像特征提取方面,利用DSDC模塊替換原DW操作;通道特征融合方面,利用GConv結合CS技術替換負責降維的PW。
圖5 改進后的線性瓶頸模塊Fig.5 Improved linear bottleneck
網絡寬度因子α是MobileNetV2的一個超參數,例如α=0.50代表Bottleneck的輸出通道數變為原來的一半。通過調整寬度因子,能夠在犧牲一些分類準確率的前提下,再次壓縮模型的參數量。在DG-MobileNetV2中,α設置為0.50。
表1是DG-MobileNetV2網絡的整體結構,其中t為New-Bottleneck中PW的升降維倍數;c為輸出通道數,此時α=0.50;n為New-Bottleneck的重復次數;s為步長。
表1 DG-MobileNetV2網絡整體結構Tab.1 Overall structure of DG-MobileNetV2 network
本文實驗在Windows 10操作系統下完成,基于Pytorch深度學習框架。硬件環境為16 GB內存的IntelCore i7-9000K CPU處理器、11 GB顯存的NVIDIA GeForce RTX 2080 Ti顯卡。
本文采用華為垃圾分類數據集,該數據集中含有40 個小類、4 個大類,共14,683 張生活垃圾圖像和對應的分類標簽。其中,4 個大類按照我國的生活垃圾分類標準,分為可回收垃圾、廚余垃圾、有害垃圾和其他垃圾。在本文實驗中,按照4:1的比例劃分數據集,80%的數據作為訓練集,20%的數據作為測試集。
為增強模型的泛化能力,防止訓練過擬合現象,對訓練集做數據增強操作,具體步驟如下:第一步,對每一張圖像進行水平翻轉、垂直翻轉、逆時針旋轉90°、逆時針旋轉180°、逆時針旋轉270°共5 種操作,擴充數據集至原來的6倍;第二步,在訓練過程中引入隨機旋轉、隨機翻轉和隨機擦除操作。部分圖像數據及數據增強后的效果如圖6所示,其中圖6(a)為原圖,圖6(b)—圖6(f)為第一步數據增強的結果,圖6(g)—圖6(i)為第二步數據增強的結果。
圖6 原數據圖像及數據增強效果Fig.6 Original image and data enhancement effect
本文實驗使用Adam作為優化器,損失函數選擇交叉熵函數。在數據增強后的數據集上進行實驗,設置30 個迭代周期,每批次訓練32 張圖像。為保證模型的收斂,實驗采用變學習率的訓練方式,初始學習率設置為0.002,每經過10 個迭代周期降低為原來的一半。除此之外,本文的部分實驗采用遷移學習策略,將原始模型在公開數據集ImageNet的子集ImageNet100上進行訓練,訓練后的模型權重將用于相應模型的初始化。
在實驗過程中,多尺度卷積模塊在提升模型性能的同時必定會導致參數量的上升;調整模型的寬度因子,參數量和分類準確率會同時下降。為了尋找最優的多尺度組合和寬度因子,以MobileNetV2為基準模型,引入一個評價標準Value,Value的表達式如下:
式中,Ac和As分別是當前模型與基準模型的分類準確率,Pc和Ps分別是當前模型和基準模型的參數量。
4.4.1 多尺度卷積核對比實驗
對多組多尺度卷積模塊進行對比實驗,由于點卷積無法充分提取圖像特征,過大的卷積核如9×9、11×11會導致模型參數量劇增,因此僅對3×3、5×5和7×7的卷積核進行組合。
對比實驗結果如表2所示,由Value的定義可知,本實驗應選擇Value值最大的組合。(1)多尺度的深度卷積模塊的性能優于單尺度,并且尺度越多,模型性能越好,這說明引入多尺度卷積能夠提高模型的泛化能力;(2)相較于基準模型,多尺度模型的參數量有了不同程度的增加,權衡模型的參數量和分類準確率,選用Value值最大的{3×3,5×5}卷積組合;(3)本文選用的卷積組合{3×3,5×5}在僅增加0.107 M參數量的情況下,提高了1.33%的分類準確率。
表2 多尺度卷積核對比實驗Tab.2 Comparative experiment of multi-scale convolutional kernel
4.4.2 寬度因子調整
為了驗證本文寬度因子α的合理性,將本文方法(α=0.50)與α分別設置為0.25、0.35、0.75、1.00的模型進行對比實驗。對比實驗結果如表3所示,由Value的定義可知,本實驗應選擇Value值最小的模型。本文方法能夠在僅犧牲0.40%分類準確率的前提下,將模型的參數量壓縮至0.587 M,參數量約為基準模型的0.26 倍。
表3 寬度因子調整實驗Tab.3 Experiment of width factor adjustment
4.4.3 消融實驗
為驗證本文對MobileNetV2的多個改進點有利于模型的性能提升與輕量化,在數據增強后的華為垃圾分類數據集上進行消融實驗,共設計6 種實驗進行評估:(1)基準模型;(2)基準模型引入DSDC模塊;(3)設置基準模型的寬度因子為0.50;(4)基準模型中引入GConv結合CS技術;(5)基準模型訓練過程中使用遷移學習策略;(6)本文方法。各實驗在測試集上的準確率隨迭代次數的變化情況如圖7所示。
圖7 測試集準確率曲線Fig.7 Test set accuracy curve
消融實驗的結果如表4所示。DSDC模塊和寬度因子調整效果在本文“4.4.1”與“4.4.2”實驗中已經得到驗證;與基準函數對比,GConv結合CS技術不僅降低了0.953 M的參數量,還提升了0.67%的分類準確率;遷移學習策略在不增加參數量的前提下,將分類準確率提高了3.14%。最終,本文提出的DG-MobileNetV2在華為垃圾分類數據集上的分類準確率為90.58%,模型參數量僅0.403 M,相較于MobileNetV2,分類準確率提升4.54%,參數量減少約81.9%。
表4 消融實驗Tab.4 Ablation experiment
4.4.4 不同模型性能對比實驗
為驗證本文模型的性能,在數據增強后的華為垃圾分類數據集上進行性能對比實驗。將本文算法與VGG、GoogleNet、ResNet等經典模型及SqueezeNet、MobileNet、ShuffleNet等輕量型模型進行對比,以分類準確率和模型參數量為指標,實驗結果如表5所示。從表5可以看出,本文算法的分類準確率為90.58%,分別高于VGG16、GoogleNet、SqueezeNet、MobileNetV2、ShuffleNetV2模型6.61%、5.21%、12.96%、4.54%、5.61%,僅低于ResNet50模型0.47%,分類效果良好;本文算法的參數量僅有0.403 M,遠遠低于VGG16、ResNet50等經典模型,與輕量型模型相比,本文算法的參量數約為SqueezeNet的54.7%、MobileNetV2的18.1%、ShuffleNetV2的32.0%,在參數量方面具有絕對的優勢。
表5 不同模型性能對比實驗Tab.5 Performance comparison experiment of different models
針對人工分揀生活垃圾過程存在的問題,本文在MobileNetV2的基礎上進行改進,提出輕量型生活垃圾分類模型DG-MobileNetV2,具體的改進點如下:(1)引入DSDC模塊,提高模型的特征提取能力;(2)調整寬度因子,壓縮模型參數量;(3)引入通道混洗技術,保證特征圖通道信息的融合,降低模型參數量的同時提升分類效果。實驗過程中,采用數據增強、遷移學習、變學習率等訓練策略,得出結果:DG-MobileNetV2在華為垃圾分類數據集上的分類準確率達到90.58%,參數量僅為0.403 M,充分證明了本文模型的魯棒性與有效性。下一步工作是嘗試將本文模型移植至移動端或嵌入式設備中,部署到實際的生活垃圾分類場景,發揮模型參數量小、輕量型的優點,輔助人們更好地對生活垃圾進行分類。