周詩禹,王旭,劉霽,鐘麗輝
(西南林業大學計算機與信息學院,云南昆明 650224)
目前,垃圾隨著生活水平的提高而不斷增多,但垃圾分類主要依靠人工分類,工作量大,時間經濟成本高,識別效率較低,探索計算機協助手段的垃圾分類方法依然是目前研究的熱點和難點[1-2]。近年來,深度學習在圖像、視頻和音頻等方面的應用取得突破性進展,基于大數據平臺的深度學習算法是現在人工智能研究的主流。深度學習的卷積神經網絡在圖像識別方面應用較為成熟、識別率高、效果明顯[3]。深度學習處理垃圾分類的主要目的是使垃圾得到精確分類,降低垃圾處理的難度以及垃圾處理成本,提高垃圾的資源利用及其經濟價值。
目前,多種新型高準確率深度學習網絡出現,能提升數字圖像處理技術對垃圾識別的準確性,能在保證準確率的前提下,讓數字圖像處理與垃圾分類識別相結合,解放垃圾分揀工人,降低回收分揀壓力。將卷積神經網絡應用于圖像處理中,提高市場垃圾分類應用App的識別準確率,有利于人們全面認識垃圾所屬種類[5-6]。
本文利用Tensorflow 搭建深度學習的框架,以AI Studio 上萬張垃圾圖像作為數據,利用Densenet密集網絡對垃圾數據進行學習訓練和識別。
Densenet 密集網絡擺脫加寬網絡結構和加深網絡層數的思維定式,Densenet密集網絡采用密集連接機制,即采用Dense-Block+Transition 的結構來保持訓練中的特征圖像大小尺寸一致,實現特征的重復利用,Densenet 基本網絡結構如圖1 所示。Densenet密集網絡減緩梯度消失現象的同時,在參數計算更少的情況下,訓練出來的網絡模型較其他網絡如殘差網絡更好。

圖1 Densenet各層網絡結構
Densenet 密集網絡中DenseBlock 層包含很多層模塊,其中每一層的特征圖像大小都一致,層與層之間使用密集連接。非線性函數組合方式是采用的BN-ReLU-Conv結構,也稱為Preactivation。同時DenseBlock 的內部采用Bottleneck 層來減少訓練過程的計算量,該結構就是在Pre-activation原結構中增加1*1卷積層,即為:BN-ReLU-1*1 Conv-BN-ReLU-3*3 Conv,這類結構被Densenet稱為DenseNet-B結構,結構單獨添加1*1卷積層能起到降低特征數量、提升計算效率的作用。Densenet密集網絡中Transition 層,主要用于兩個DenseBlock 層之間,降低特征圖像大小,保持特征圖大小一致;由1個卷積層和1個平均池化層構建組成:BN-ReLU-1*1 Conv-2*2AvgPooling,起到壓縮模型的作用。
在AI Studio上選取了26個類別,11000張垃圾分類圖像作為本文垃圾分類的數據集,數據集如圖2 所示。其中,26 類中每類80%的圖像作為Densenet 密集網絡的訓練集,每類剩余20%圖片數據為測試集。

圖2 數據集圖像
本文利用Densenet密集網絡實現垃圾分類。首先,對初始垃圾圖像數據進行歸類標簽及圖像預處理;然后利用訓練數據集數據對Densenet密集網絡訓練得到準確率較高的模型,保存訓練模型;最后測試驗證模型識別準確率。Densenet密集網絡的垃圾分類識別實現的流程圖如圖3所示。

圖3 Densenet網絡的垃圾分類識別的流程圖
Densenet 卷積神經網絡的輸入層圖片尺寸為224*224,不滿足尺寸要求的圖像直接進行丟棄處理,使圖片能正常輸入到網絡進行訓練提取特征;為了防止過擬合,對數據集圖像進行翻轉和旋轉操作,擴大數據集。
首先,通過Tensorflow深度學習框架加載Densenet密集型卷積神經網絡;其次將預處理好的約8000張圖像數據分批次送入Densenet密集型卷積神經網絡進行訓練;再次,每32張圖片小批次訓練集計算損失值,通過優化器Adam 找到最優梯度下降方法;最后,反饋更新權重值,不斷提升準確率。當每一個大批次訓練數據訓練完成后,將驗證集數據丟入該次訓練得到的訓練模型中,計算出該模型的準確率。每次訓練準確率與上一次訓練得到模型比較準確率,最終得到最高測試準確率的網絡。
首先,調整測試集圖像大小并加載測試集圖像;然后,加載選定損失值適中、驗證集準確率最高的訓練模型;最后模型識別測試集所屬種類。
預處理訓練集數據加上調用GPU高運算模式訓練網絡,訓練26類約8千多張垃圾圖片數據時間約5小時,訓練最終保留驗證集頂層top-1準確約為0.875的模型,傳輸測試集處理好的圖片進行預測。訓練過程如圖4所示,預測結果如圖5所示。

圖4 Densenet網絡訓練結果

圖5 預測結果
測試最終準確率達90%,預測錯誤率為10%,該模型能夠能很好地識別各種垃圾類別。
本文以AI Studio上11000張垃圾圖像,共26個類別作為本論文的垃圾分類數據集。其中,80%的圖像作為Densenet密集網絡的訓練集,每類剩余20%圖片數據為測試集,利用Tensorflow 搭建深度學習的框架,利用Densenet 密集網絡對垃圾數據實現了分類,識別的準確率為90%。本文數據集中在常見的垃圾圖像,為提高垃圾分類識別智能化的準確性,需要涉及面更廣更全面的垃圾圖像,以期通過App增加人們對垃圾分類的相關知識)針對不同網絡的特性合理安排App 的使用方式,實現基于深度學習的智能垃圾分類。