吳 琦 閆畢成 王晨晨 崔文旭 辛若騰 司廣濤
(曲阜師范大學計算機學院 日照 276826)
經濟的增長,致使社會垃圾數量快速增加,垃圾處理設施面臨巨大壓力。焚燒、填埋等傳統的垃圾處理方式,容易對環境造成破壞,不利于可持續發展。國家積極鼓勵垃圾分類回收體系建設,推進資源回收再利用,建立綠色低碳循環經濟體系[1]。垃圾分類成為世界共同的關注點,垃圾分類處理行業市場規模不斷擴大。進行垃圾分類,有助于對垃圾進行合理的回收利用,降低資源回收的成本。
目前國內外對于垃圾圖像分類問題,主要研究方法包括基于傳統計算機視覺的分類方法和基于深度學習的圖像分類方法。在傳統的計算機視覺技術方面,陳婧敏等[2]使用SURF-RANSAC 與模板匹配算法,能夠有效地實現對塑料垃圾的分類。鄭龍海[3]等通過SFS 算法和SVM 分類器,可以對建筑垃圾中木頭和磚塊實現較為準確的分類。黃惠玲[4]等通過閾值分割和K 均值聚類算法實現對建筑垃圾的顏色識別和位置確定。Guo 等[5]使用SURF 和幾何哈希算法有效實現目標匹配,提高垃圾分類的速度和準確率。可見,傳統的圖像分類方法對于種類較少,圖像簡單的分類問題效果較好。隨著圖像類型的多樣化發展、數據樣本的不斷增加,圖像數據復雜度不斷提高。這種情況下,傳統圖像分類方法的準確度較低,適應性不強。
隨著深度學習算法的快速發展,垃圾圖像分類進入新的發展階段。相比傳統圖像分類算法,基于深度學習的圖像分類方法,能夠自動進行圖像特征的學習,識別精度更高、容錯性和適應性更強,為垃圾處理行業提供新的動力。目前,已有學者開展了基于深度學習的垃圾圖像分類方法研究。Wang[6]使用VGG16網絡實現垃圾分類,并獲得75.6%的準確度,分類精度較低。吳曉玲等[7]通過設計神經網絡模型對塑料垃圾進行分類,最終獲得84.01%的準確率。Li 等[8]基于Mask Scoring RCNN 的網絡模型進行四種垃圾的分類識別,達到約65%的準確度,分類精度較低,垃圾種類較少,難以滿足實際應用情況。可見,已有研究對于垃圾分類準確度較低,不能滿足現實應用的需求。
為了在較短時間內獲得更高分類精度的模型,縮短模型訓練周期,并減少垃圾圖像數據集的使用,部分學者采用遷移學習進行垃圾圖像的研究。Rabano 等使用MobiLeNet 進行垃圾圖像分類,能實現89.34%的準確率[9]。李丕兵等設計基于Inception 的模型對垃圾進行分類,獲得90%以上的準確度[10]。Rismiyati 等通過對Xception 網絡的訓練,在TrashNet 的6 分類垃圾數據集上獲得88%的準確度[11]。上述研究分類準確度雖然較以往研究有所改善,但是還需進一步的提高,并且對垃圾分類算法部署在現實應用環境下的研究較少。
邊緣計算是在網絡邊緣設備上提供服務,將運算中心由云服務器轉移到邊緣計算設備上,具有安全性強、延遲低、擴展性強等優點。隨著人工智能發展,學者提出了邊緣智能的概念,把神經網絡與邊緣計算結合起來,實現數據在邊緣設備的計算、存儲[12~13]。對于垃圾圖像分類來說,將算法部署到邊緣計算設備上,更有利于實現實時、高效檢測的功能,緩解數據大量傳輸的壓力。
因此,為了研究垃圾分類算法在實際環境中的實用性,基于ResNet 預訓練模型設計了GarbageCNet 分類模型,使用遷移學習方法和公開的垃圾分類數據集,通過不斷優化模型參數和結構提高垃圾分類精度,并將算法在邊緣計算設備上部署運行,實現垃圾圖像的高效分類。
隨著深度學習技術的發展,出現了數百層、上千層的神經網絡,如VGGNet、AlexNet 等是通過堆疊卷積層、池化層,添加全連接層來實現模型精度的提高。但是神經網絡層數的增加,出現了梯度爆炸、梯度消失、退化等問題制約著模型性能的提高。
現有研究表明,通過使用BN層、改進激活函數等方法可以解決神經網絡層數的增加導致的梯度爆炸問題;使用殘差結構、改進激活函數等方法可以解決梯度消失問題[14]。因此,He 等提出了殘差網絡ResNet 來解決退化問題[15],并被廣泛用于分類領域。研究發現,ResNet 比VGGNet 具有更好的效果,能達到更高的準確度。
殘差網絡是由一系列殘差模塊組成,如圖1 所示。利用殘差邊將網絡層跳躍式連接,使得圖像的特征可以傳遞到后面的網絡,后面的網絡也能得到訓練,這為更深層次網絡的發展提供了思路。

圖1 殘差模塊
假設殘差模塊輸入為x,左側殘差邊F(x)由卷積操作組成,右邊是直接映射x,則殘差塊的輸出為F(x)+x。在殘差模塊中使用Relu 激活函數,加快計算和模型收斂速度[16],公式如下:
傳統的模型訓練方法需要大量的數據來保證模型精度和泛化能力,但是現實應用過程中存在數據集過小的問題,所以有學者提出了遷移學習[17]。在圖像分類問題中,遷移學習是將在原數據集上學到的特征提取技巧,用于新數據集圖像的分類。本文使用大型數據集ImageNet 上的ResNet 預訓練模型用于我們新模型的特征提取,減少訓練過程的時間開銷。此外,雖然深層網絡能夠提高模型精度,但考慮到模型部署的硬件環境運算能力有限,為兼顧模型精度與運算時間,本文基于50 層的殘差網絡結構設計垃圾分類模型。
綜上,本文提出了如圖2 所示的垃圾分類網絡(Garbage classification Network,GarbageCNet),使用ResNet50 的卷積層和下采樣層提取圖像特征,通過在ResNet50 后添加全連接層、改變參數等來優化模型,模型最后使用Softmax,將神經網絡的輸出變成概率分布。在進行卷積池化操作結束后,使用全局平均池化層(Global Average Pooling,GAP)連接,可以保留學習到的空間信息、減少參數量,提高模型的泛化能力[18]。在模型中加入Dropout層[19],使網絡節點隨機失活,提高模型魯棒性。

圖2 GarbageCNet模型結構
模型的損失函數可以度量預測值與真實值的距離,本文使用交叉熵函數加快模型訓練,使得模型具有更好的性能,公式如下:
模型中使用自適應矩估計(Adam)優化器[20],該優化器計算高效,內存占有較少,有助于垃圾分類模型在嵌入式設備樹莓派上的運行。
使用含有12 種類別垃圾的數據集,共計15000多張照片,類別有紙張、電池、衣服等[21],按照6∶2∶2 的比例分為訓練集、測試集、驗證集,進行模型訓練、驗證。本文進行數據預處理時,將數據集的圖片進行隨機改變亮度、翻轉等,對數據進行增強,提高數據多樣性和隨機性,增強模型的泛化能力和魯棒性。
訓練過程中,首先凍結ResNet50 預訓練模型的部分卷積層和下采樣層,對其他網絡層進行微調;其次,為達到更好的訓練結果,不斷改變凍結參數的層數,通過不斷改變模型訓練的超參數(如學習率、一次迭代的樣本數參數)來優化模型。為兼顧模型精度與訓練平臺性能,本實驗將batch_size設置為24。部分實驗數據如表1 所示。經過分析發現,在訓練epochs 為30、ResNet50 訓練層數為30時,準確度較高達到96.07%。在數據集較小時,模型訓練參數過多會造成準確度的降低。

表1 實驗數據
為體現本方法選擇基于殘差網絡搭建垃圾分類模型GarbageCNet的優越性能,對GarbageCNet和基于VGG19 預訓練搭建的垃圾分類模型VGG19GarbageCNet,進行對比實驗,結果如圖3 所示。在相同的硬件環境下進行50 個epoch 訓練,VGG19GarbageCNet 達到92.27%的準確率,而GarbageCNet達到96.33%的準確率。GarbageCNet所用時間較VGG19GarbageCNet 更短,并且精度高了4.06%。經過分析發現,本方法使用的GarbageCNet,提高了分類的精確度,模型表現更好,比VGG19GarbageCNet模型收斂速度快、準確度更高。

圖3 VGG19模型與GarbageCNet
訓練結束后,GarbageCNet 的優化模型保存下來。然后,使用測試數據集測試模型精確度。部分測試結果如表2所示。

表2 GarbageCNet的分類結果
其中,f1 值表示精確度和召回率的調和平均數,出現的次數表示該種類出現的次數。用precision 表示精確度,用recall 表示召回率,則f1 的計算公式為
分類結果表明,對于金屬垃圾這種復雜、不規則的物體,分類的準確度較低。對于鞋子、衣服等形狀較為固定的物體準確度較高。總體來說,GarbageCNet 能較好地實現垃圾分類,識別準確度較高。
樹莓派是基于Linux 系統的微型電腦,樹莓派有較強的計算能力,同時,其較低的價格為將它用于邊緣計算提供了可能。為此,本文將圖像分類方法部署到邊緣計算設備,具體步驟如下:
第一步,網絡模型訓練完成后,將分類精度較高的垃圾分類模型保存下來。第二步,在樹莓派上搭建合適的運行環境,把模型部署到樹莓派上。進行調試優化和垃圾的分類檢測。第三步,垃圾圖像采集。本項目垃圾圖像的采集使用樹莓派攝像頭模塊,將獲取的圖像進行預處理后傳入神經網絡模型計算,最后得出預測結果。
為驗證GarbageCNet 的準確度和魯棒性,需要對模型進行測試。在將模型部署到樹莓派上后,選取訓練數據集中常見的垃圾種類進行測試。使用樹莓派攝像頭對垃圾圖像進行拍攝采集,調用GarbageCNet 進行圖像分類,對每種垃圾進行100 次實驗。分別記錄每種垃圾的分類結果,相關數據如圖4所示。

圖4 垃圾分類混淆矩陣
上述結果表明:本文提出的基于深度學習與邊緣計算的垃圾分類模型,對于生活中的常見垃圾的分類具有較高的精確度,可以實現較為準確和穩定的垃圾分類效果。
針對垃圾分類問題,提出基于深度學習與邊緣計算的垃圾分類算法,使用遷移學習技術搭建GarbageCNet 垃圾分類模型。將訓練好的模型部署到樹莓派上,經過測試,算法能夠以較高的精度和效率實現垃圾分類。本文提出的垃圾分類方法,雖然可以較好地實現垃圾分類,但是模型規模較大,算法的準確度還有較大的提升空間。在以后的研究中可以不斷優化模型結構來提升模型的效率、模型準確度,不斷提高垃圾分類算法的性能。