吳 琦 閆畢成 王晨晨 崔文旭 辛若騰 司廣濤
(曲阜師范大學(xué)計(jì)算機(jī)學(xué)院 日照 276826)
經(jīng)濟(jì)的增長,致使社會(huì)垃圾數(shù)量快速增加,垃圾處理設(shè)施面臨巨大壓力。焚燒、填埋等傳統(tǒng)的垃圾處理方式,容易對環(huán)境造成破壞,不利于可持續(xù)發(fā)展。國家積極鼓勵(lì)垃圾分類回收體系建設(shè),推進(jìn)資源回收再利用,建立綠色低碳循環(huán)經(jīng)濟(jì)體系[1]。垃圾分類成為世界共同的關(guān)注點(diǎn),垃圾分類處理行業(yè)市場規(guī)模不斷擴(kuò)大。進(jìn)行垃圾分類,有助于對垃圾進(jìn)行合理的回收利用,降低資源回收的成本。
目前國內(nèi)外對于垃圾圖像分類問題,主要研究方法包括基于傳統(tǒng)計(jì)算機(jī)視覺的分類方法和基于深度學(xué)習(xí)的圖像分類方法。在傳統(tǒng)的計(jì)算機(jī)視覺技術(shù)方面,陳婧敏等[2]使用SURF-RANSAC 與模板匹配算法,能夠有效地實(shí)現(xiàn)對塑料垃圾的分類。鄭龍海[3]等通過SFS 算法和SVM 分類器,可以對建筑垃圾中木頭和磚塊實(shí)現(xiàn)較為準(zhǔn)確的分類。黃惠玲[4]等通過閾值分割和K 均值聚類算法實(shí)現(xiàn)對建筑垃圾的顏色識別和位置確定。Guo 等[5]使用SURF 和幾何哈希算法有效實(shí)現(xiàn)目標(biāo)匹配,提高垃圾分類的速度和準(zhǔn)確率??梢姡瑐鹘y(tǒng)的圖像分類方法對于種類較少,圖像簡單的分類問題效果較好。隨著圖像類型的多樣化發(fā)展、數(shù)據(jù)樣本的不斷增加,圖像數(shù)據(jù)復(fù)雜度不斷提高。這種情況下,傳統(tǒng)圖像分類方法的準(zhǔn)確度較低,適應(yīng)性不強(qiáng)。
隨著深度學(xué)習(xí)算法的快速發(fā)展,垃圾圖像分類進(jìn)入新的發(fā)展階段。相比傳統(tǒng)圖像分類算法,基于深度學(xué)習(xí)的圖像分類方法,能夠自動(dòng)進(jìn)行圖像特征的學(xué)習(xí),識別精度更高、容錯(cuò)性和適應(yīng)性更強(qiáng),為垃圾處理行業(yè)提供新的動(dòng)力。目前,已有學(xué)者開展了基于深度學(xué)習(xí)的垃圾圖像分類方法研究。Wang[6]使用VGG16網(wǎng)絡(luò)實(shí)現(xiàn)垃圾分類,并獲得75.6%的準(zhǔn)確度,分類精度較低。吳曉玲等[7]通過設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)模型對塑料垃圾進(jìn)行分類,最終獲得84.01%的準(zhǔn)確率。Li 等[8]基于Mask Scoring RCNN 的網(wǎng)絡(luò)模型進(jìn)行四種垃圾的分類識別,達(dá)到約65%的準(zhǔn)確度,分類精度較低,垃圾種類較少,難以滿足實(shí)際應(yīng)用情況??梢姡延醒芯繉τ诶诸悳?zhǔn)確度較低,不能滿足現(xiàn)實(shí)應(yīng)用的需求。
為了在較短時(shí)間內(nèi)獲得更高分類精度的模型,縮短模型訓(xùn)練周期,并減少垃圾圖像數(shù)據(jù)集的使用,部分學(xué)者采用遷移學(xué)習(xí)進(jìn)行垃圾圖像的研究。Rabano 等使用MobiLeNet 進(jìn)行垃圾圖像分類,能實(shí)現(xiàn)89.34%的準(zhǔn)確率[9]。李丕兵等設(shè)計(jì)基于Inception 的模型對垃圾進(jìn)行分類,獲得90%以上的準(zhǔn)確度[10]。Rismiyati 等通過對Xception 網(wǎng)絡(luò)的訓(xùn)練,在TrashNet 的6 分類垃圾數(shù)據(jù)集上獲得88%的準(zhǔn)確度[11]。上述研究分類準(zhǔn)確度雖然較以往研究有所改善,但是還需進(jìn)一步的提高,并且對垃圾分類算法部署在現(xiàn)實(shí)應(yīng)用環(huán)境下的研究較少。
邊緣計(jì)算是在網(wǎng)絡(luò)邊緣設(shè)備上提供服務(wù),將運(yùn)算中心由云服務(wù)器轉(zhuǎn)移到邊緣計(jì)算設(shè)備上,具有安全性強(qiáng)、延遲低、擴(kuò)展性強(qiáng)等優(yōu)點(diǎn)。隨著人工智能發(fā)展,學(xué)者提出了邊緣智能的概念,把神經(jīng)網(wǎng)絡(luò)與邊緣計(jì)算結(jié)合起來,實(shí)現(xiàn)數(shù)據(jù)在邊緣設(shè)備的計(jì)算、存儲[12~13]。對于垃圾圖像分類來說,將算法部署到邊緣計(jì)算設(shè)備上,更有利于實(shí)現(xiàn)實(shí)時(shí)、高效檢測的功能,緩解數(shù)據(jù)大量傳輸?shù)膲毫Α?/p>
因此,為了研究垃圾分類算法在實(shí)際環(huán)境中的實(shí)用性,基于ResNet 預(yù)訓(xùn)練模型設(shè)計(jì)了GarbageCNet 分類模型,使用遷移學(xué)習(xí)方法和公開的垃圾分類數(shù)據(jù)集,通過不斷優(yōu)化模型參數(shù)和結(jié)構(gòu)提高垃圾分類精度,并將算法在邊緣計(jì)算設(shè)備上部署運(yùn)行,實(shí)現(xiàn)垃圾圖像的高效分類。
隨著深度學(xué)習(xí)技術(shù)的發(fā)展,出現(xiàn)了數(shù)百層、上千層的神經(jīng)網(wǎng)絡(luò),如VGGNet、AlexNet 等是通過堆疊卷積層、池化層,添加全連接層來實(shí)現(xiàn)模型精度的提高。但是神經(jīng)網(wǎng)絡(luò)層數(shù)的增加,出現(xiàn)了梯度爆炸、梯度消失、退化等問題制約著模型性能的提高。
現(xiàn)有研究表明,通過使用BN層、改進(jìn)激活函數(shù)等方法可以解決神經(jīng)網(wǎng)絡(luò)層數(shù)的增加導(dǎo)致的梯度爆炸問題;使用殘差結(jié)構(gòu)、改進(jìn)激活函數(shù)等方法可以解決梯度消失問題[14]。因此,He 等提出了殘差網(wǎng)絡(luò)ResNet 來解決退化問題[15],并被廣泛用于分類領(lǐng)域。研究發(fā)現(xiàn),ResNet 比VGGNet 具有更好的效果,能達(dá)到更高的準(zhǔn)確度。
殘差網(wǎng)絡(luò)是由一系列殘差模塊組成,如圖1 所示。利用殘差邊將網(wǎng)絡(luò)層跳躍式連接,使得圖像的特征可以傳遞到后面的網(wǎng)絡(luò),后面的網(wǎng)絡(luò)也能得到訓(xùn)練,這為更深層次網(wǎng)絡(luò)的發(fā)展提供了思路。
圖1 殘差模塊
假設(shè)殘差模塊輸入為x,左側(cè)殘差邊F(x)由卷積操作組成,右邊是直接映射x,則殘差塊的輸出為F(x)+x。在殘差模塊中使用Relu 激活函數(shù),加快計(jì)算和模型收斂速度[16],公式如下:
傳統(tǒng)的模型訓(xùn)練方法需要大量的數(shù)據(jù)來保證模型精度和泛化能力,但是現(xiàn)實(shí)應(yīng)用過程中存在數(shù)據(jù)集過小的問題,所以有學(xué)者提出了遷移學(xué)習(xí)[17]。在圖像分類問題中,遷移學(xué)習(xí)是將在原數(shù)據(jù)集上學(xué)到的特征提取技巧,用于新數(shù)據(jù)集圖像的分類。本文使用大型數(shù)據(jù)集ImageNet 上的ResNet 預(yù)訓(xùn)練模型用于我們新模型的特征提取,減少訓(xùn)練過程的時(shí)間開銷。此外,雖然深層網(wǎng)絡(luò)能夠提高模型精度,但考慮到模型部署的硬件環(huán)境運(yùn)算能力有限,為兼顧模型精度與運(yùn)算時(shí)間,本文基于50 層的殘差網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)垃圾分類模型。
綜上,本文提出了如圖2 所示的垃圾分類網(wǎng)絡(luò)(Garbage classification Network,GarbageCNet),使用ResNet50 的卷積層和下采樣層提取圖像特征,通過在ResNet50 后添加全連接層、改變參數(shù)等來優(yōu)化模型,模型最后使用Softmax,將神經(jīng)網(wǎng)絡(luò)的輸出變成概率分布。在進(jìn)行卷積池化操作結(jié)束后,使用全局平均池化層(Global Average Pooling,GAP)連接,可以保留學(xué)習(xí)到的空間信息、減少參數(shù)量,提高模型的泛化能力[18]。在模型中加入Dropout層[19],使網(wǎng)絡(luò)節(jié)點(diǎn)隨機(jī)失活,提高模型魯棒性。
圖2 GarbageCNet模型結(jié)構(gòu)
模型的損失函數(shù)可以度量預(yù)測值與真實(shí)值的距離,本文使用交叉熵函數(shù)加快模型訓(xùn)練,使得模型具有更好的性能,公式如下:
模型中使用自適應(yīng)矩估計(jì)(Adam)優(yōu)化器[20],該優(yōu)化器計(jì)算高效,內(nèi)存占有較少,有助于垃圾分類模型在嵌入式設(shè)備樹莓派上的運(yùn)行。
使用含有12 種類別垃圾的數(shù)據(jù)集,共計(jì)15000多張照片,類別有紙張、電池、衣服等[21],按照6∶2∶2 的比例分為訓(xùn)練集、測試集、驗(yàn)證集,進(jìn)行模型訓(xùn)練、驗(yàn)證。本文進(jìn)行數(shù)據(jù)預(yù)處理時(shí),將數(shù)據(jù)集的圖片進(jìn)行隨機(jī)改變亮度、翻轉(zhuǎn)等,對數(shù)據(jù)進(jìn)行增強(qiáng),提高數(shù)據(jù)多樣性和隨機(jī)性,增強(qiáng)模型的泛化能力和魯棒性。
訓(xùn)練過程中,首先凍結(jié)ResNet50 預(yù)訓(xùn)練模型的部分卷積層和下采樣層,對其他網(wǎng)絡(luò)層進(jìn)行微調(diào);其次,為達(dá)到更好的訓(xùn)練結(jié)果,不斷改變凍結(jié)參數(shù)的層數(shù),通過不斷改變模型訓(xùn)練的超參數(shù)(如學(xué)習(xí)率、一次迭代的樣本數(shù)參數(shù))來優(yōu)化模型。為兼顧模型精度與訓(xùn)練平臺性能,本實(shí)驗(yàn)將batch_size設(shè)置為24。部分實(shí)驗(yàn)數(shù)據(jù)如表1 所示。經(jīng)過分析發(fā)現(xiàn),在訓(xùn)練epochs 為30、ResNet50 訓(xùn)練層數(shù)為30時(shí),準(zhǔn)確度較高達(dá)到96.07%。在數(shù)據(jù)集較小時(shí),模型訓(xùn)練參數(shù)過多會(huì)造成準(zhǔn)確度的降低。
表1 實(shí)驗(yàn)數(shù)據(jù)
為體現(xiàn)本方法選擇基于殘差網(wǎng)絡(luò)搭建垃圾分類模型GarbageCNet的優(yōu)越性能,對GarbageCNet和基于VGG19 預(yù)訓(xùn)練搭建的垃圾分類模型VGG19GarbageCNet,進(jìn)行對比實(shí)驗(yàn),結(jié)果如圖3 所示。在相同的硬件環(huán)境下進(jìn)行50 個(gè)epoch 訓(xùn)練,VGG19GarbageCNet 達(dá)到92.27%的準(zhǔn)確率,而GarbageCNet達(dá)到96.33%的準(zhǔn)確率。GarbageCNet所用時(shí)間較VGG19GarbageCNet 更短,并且精度高了4.06%。經(jīng)過分析發(fā)現(xiàn),本方法使用的GarbageCNet,提高了分類的精確度,模型表現(xiàn)更好,比VGG19GarbageCNet模型收斂速度快、準(zhǔn)確度更高。
圖3 VGG19模型與GarbageCNet
訓(xùn)練結(jié)束后,GarbageCNet 的優(yōu)化模型保存下來。然后,使用測試數(shù)據(jù)集測試模型精確度。部分測試結(jié)果如表2所示。
表2 GarbageCNet的分類結(jié)果
其中,f1 值表示精確度和召回率的調(diào)和平均數(shù),出現(xiàn)的次數(shù)表示該種類出現(xiàn)的次數(shù)。用precision 表示精確度,用recall 表示召回率,則f1 的計(jì)算公式為
分類結(jié)果表明,對于金屬垃圾這種復(fù)雜、不規(guī)則的物體,分類的準(zhǔn)確度較低。對于鞋子、衣服等形狀較為固定的物體準(zhǔn)確度較高??傮w來說,GarbageCNet 能較好地實(shí)現(xiàn)垃圾分類,識別準(zhǔn)確度較高。
樹莓派是基于Linux 系統(tǒng)的微型電腦,樹莓派有較強(qiáng)的計(jì)算能力,同時(shí),其較低的價(jià)格為將它用于邊緣計(jì)算提供了可能。為此,本文將圖像分類方法部署到邊緣計(jì)算設(shè)備,具體步驟如下:
第一步,網(wǎng)絡(luò)模型訓(xùn)練完成后,將分類精度較高的垃圾分類模型保存下來。第二步,在樹莓派上搭建合適的運(yùn)行環(huán)境,把模型部署到樹莓派上。進(jìn)行調(diào)試優(yōu)化和垃圾的分類檢測。第三步,垃圾圖像采集。本項(xiàng)目垃圾圖像的采集使用樹莓派攝像頭模塊,將獲取的圖像進(jìn)行預(yù)處理后傳入神經(jīng)網(wǎng)絡(luò)模型計(jì)算,最后得出預(yù)測結(jié)果。
為驗(yàn)證GarbageCNet 的準(zhǔn)確度和魯棒性,需要對模型進(jìn)行測試。在將模型部署到樹莓派上后,選取訓(xùn)練數(shù)據(jù)集中常見的垃圾種類進(jìn)行測試。使用樹莓派攝像頭對垃圾圖像進(jìn)行拍攝采集,調(diào)用GarbageCNet 進(jìn)行圖像分類,對每種垃圾進(jìn)行100 次實(shí)驗(yàn)。分別記錄每種垃圾的分類結(jié)果,相關(guān)數(shù)據(jù)如圖4所示。
圖4 垃圾分類混淆矩陣
上述結(jié)果表明:本文提出的基于深度學(xué)習(xí)與邊緣計(jì)算的垃圾分類模型,對于生活中的常見垃圾的分類具有較高的精確度,可以實(shí)現(xiàn)較為準(zhǔn)確和穩(wěn)定的垃圾分類效果。
針對垃圾分類問題,提出基于深度學(xué)習(xí)與邊緣計(jì)算的垃圾分類算法,使用遷移學(xué)習(xí)技術(shù)搭建GarbageCNet 垃圾分類模型。將訓(xùn)練好的模型部署到樹莓派上,經(jīng)過測試,算法能夠以較高的精度和效率實(shí)現(xiàn)垃圾分類。本文提出的垃圾分類方法,雖然可以較好地實(shí)現(xiàn)垃圾分類,但是模型規(guī)模較大,算法的準(zhǔn)確度還有較大的提升空間。在以后的研究中可以不斷優(yōu)化模型結(jié)構(gòu)來提升模型的效率、模型準(zhǔn)確度,不斷提高垃圾分類算法的性能。