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