曹胡鍇,劉致軒,雷丹,肖書浩,孟凡非
(武昌首義學(xué)院 機電與自動化學(xué)院,湖北武漢, 430064)
目前,中國的垃圾處理和分類過程仍以人工分揀為主,需要工人在流水線上識別垃圾的類型,人工完成垃圾的分揀操作。雖然這種工作方式簡單可行,但卻帶來了突出的環(huán)境衛(wèi)生問題,而且不能保證分類的效率和準(zhǔn)確性。
目前,基于模式識別的圖像分類方法已被應(yīng)用于工業(yè)領(lǐng)域,但這種圖像分類方法的魯棒性不足,抗干擾能力弱,導(dǎo)致圖像分類結(jié)果準(zhǔn)確性不高。此外,由于算法的有效性有限,垃圾自動分類在很長一段時間內(nèi)沒有取得突破性進(jìn)展。最近,隨著計算機性能的快速發(fā)展,依托大數(shù)據(jù)和GPU計算的深度學(xué)習(xí)取得了很大的進(jìn)展。基于深度學(xué)習(xí)的圖像分類算法已經(jīng)取代了傳統(tǒng)的圖像算法,成為工業(yè)和學(xué)術(shù)界的主流。本文提出了一種基于ResNet50_vd_ssld網(wǎng)絡(luò)的垃圾分類圖像算法,運用深度學(xué)習(xí)技術(shù)來進(jìn)行垃圾分類,通過使用PaddlePaddle來學(xué)習(xí)出可以進(jìn)行垃圾分類的圖像分類模型。基于自學(xué)習(xí)和泛化能力,從而顯著提高圖像分類的準(zhǔn)確性和魯棒性[4~9]。
垃圾分類系統(tǒng)主要由能夠識別不同垃圾類型的嵌入式主控和實現(xiàn)半自動化分揀控制的機械結(jié)構(gòu)組成。分揀機構(gòu)的垂直結(jié)構(gòu)是在我們平時使用的垃圾桶的基礎(chǔ)上進(jìn)行改造設(shè)計的,充分利用了垃圾桶的空間和外形。具體的垃圾識別以及分揀過程如圖1所示。當(dāng)垃圾進(jìn)入系統(tǒng)后,CPU激活攝像頭獲得垃圾圖像,然后運行卷積神經(jīng)網(wǎng)絡(luò)獲得垃圾類別信息,最后控制機械結(jié)構(gòu)根據(jù)垃圾類別的分類使垃圾落入相應(yīng)的垃圾桶。
圖1 系統(tǒng)總體設(shè)計圖
1.2.1 基于深度學(xué)習(xí)的軟件方案
軟件編程平臺選用Python編程平臺,Python在機器學(xué)習(xí)領(lǐng)域非常體貼開發(fā)者,語言簡潔,其生態(tài)成熟,開發(fā)效率更高。
圖2 軟件方案
paddleX集深度學(xué)習(xí)核心訓(xùn)練和推理框架、基礎(chǔ)模型庫、端到端開發(fā)套件和豐富的工具組件于一體。
OpenCV可用于檢測識別圖像中的對象,并且包含了眾多圖像處理和視頻分析算法,并廣泛應(yīng)用于圖像和視頻處理中。
1.2.2 深度學(xué)習(xí)模型的遷移學(xué)習(xí)
圖3 遷移學(xué)習(xí)示意圖
遷移學(xué)習(xí)自從被提出之后就受到工業(yè)及學(xué)術(shù)界的廣泛關(guān)注,遷移學(xué)習(xí)就是把已經(jīng)訓(xùn)練好的模型參數(shù)遷移到新的模型當(dāng)中,來幫助模型進(jìn)行訓(xùn)練。而且一般它們的數(shù)據(jù)和任務(wù)是相似的,所以遷移學(xué)習(xí)是可以通過已經(jīng)學(xué)到的模型參數(shù),通過源領(lǐng)域(圖像)學(xué)到的東西應(yīng)用到目標(biāo)領(lǐng)域(圖像),加快模型的收斂速度及識別準(zhǔn)確率。
圖4 從ImageNet到垃圾分類遷移學(xué)習(xí)示意圖
ResNeXt-101是一個相對簡單且高度模塊化的圖像分類網(wǎng)絡(luò)架構(gòu),它在ImageNet分類數(shù)據(jù)集上的表現(xiàn)優(yōu)于ResNet-101/152、ResNet200等模型。特別是第101層ResNeXt比ResNet-200有更高的準(zhǔn)確性,但復(fù)雜度只有其的50%,而且其準(zhǔn)確率一直比ResNet好。ResNeXt降低了瓶頸比例,用分組卷積取代了中間的正常卷積。這種結(jié)構(gòu)可以在不增加參數(shù)數(shù)量的情況下提高精度,同時減少超參數(shù)的數(shù)量。
圖5 ResNet和ResNeXt的網(wǎng)絡(luò)模塊
本文所使用的網(wǎng)絡(luò)模型是ResNet50_vd_ssld,該模型使用了知識蒸餾技術(shù),在保證模型結(jié)構(gòu)不變的情況下,進(jìn)一步提高了模型的識別準(zhǔn)確率。我們在參數(shù)量不變的情況下,極大地提高了分類精度,并且減少了計算難度,通過知識蒸餾在不減少模型準(zhǔn)確率的情況下,去掉一些無關(guān)的模型參數(shù),來減輕模型的復(fù)雜程度,這提高了模型的訓(xùn)練速度,且有利于其在實際垃圾分類場景中的應(yīng)用。
我們使用MobileNetV2來進(jìn)行垃圾分類的對比訓(xùn)練,預(yù)訓(xùn)練模型采用標(biāo)準(zhǔn)ImageNet格式的訓(xùn)練集,最終MobileNetV2垃圾分類驗證集上在第235個Epoch時,acc1的精度最高,最優(yōu)值為0.3191,top-5準(zhǔn)備率為0.6771,不同模型結(jié)構(gòu)的網(wǎng)絡(luò)在相同數(shù)據(jù)集上的性能表現(xiàn)不同,需要根據(jù)預(yù)測耗時以及存儲的需求選擇合適的模型。
圖6 SSLD流程圖
圖7 MobileNetV2驗證集acc1曲線
在使用通過知識蒸餾得到的預(yù)訓(xùn)練模型進(jìn)行微調(diào)時,我們推薦使用相對較小的網(wǎng)絡(luò)中間層學(xué)習(xí)率。為了驗證ResNet50_vd_ssld模型和MobileNetV2模型的大小差異,本組模型訓(xùn)練策略調(diào)整為:cosine_decay_warmup,lr=0.0075,epoch=120,bs=8,保存間隔為2。
最終垃圾分類驗證集上精度指標(biāo)接近100%,相對于之前模型的物體識別準(zhǔn)確率,模型性能指標(biāo)獲得較大的提升。
圖8 ResNet50_vd_ssld模型誤差
圖9 ResNet50_vd_ssld模型識別準(zhǔn)確率
訓(xùn)練數(shù)據(jù)集是采用“華為云垃圾分類挑戰(zhàn)杯”賽方依照深圳市頒布的垃圾分類標(biāo)準(zhǔn)制作的數(shù)據(jù)集, 本文中所使用的數(shù)據(jù)集全部轉(zhuǎn)換為了ImageNet格式,數(shù)據(jù)集一共包括了14802余張垃圾圖片,共分為可回收物、不可回收物、餐廚垃圾和其他垃圾4大類,然后以此再分為40個小類。
圖10 不同類別樣本分布
首先對圖片進(jìn)行隨機水平翻轉(zhuǎn)、隨機亮度、高斯噪聲、隨機旋轉(zhuǎn)角度等預(yù)處理操作。進(jìn)行數(shù)據(jù)預(yù)處理之后,按照7:2:1的比例對數(shù)據(jù)進(jìn)行劃分為訓(xùn)練集、驗證集和測試集。
在垃圾分類的模型處理中,我同時選取了百度的飛槳PaddlePaddle作為深度學(xué)習(xí)的開發(fā)平臺。實驗證明,基于ResNet50_vd_ssld模型進(jìn)行訓(xùn)練,在ImageNet1k驗證集上即使我的數(shù)據(jù)量不高,也能夠進(jìn)行高精度的圖像分類。
我使用了ResNet50_vd_ssld模型進(jìn)行訓(xùn)練,ResNet 50_vd_ssld模型采用了知識蒸餾技術(shù),它的教師模型是ResNeXt101_32x16d_wsl,也是我下文將要使用的模型,該模型的Top1正確率為84.2%。
圖11 數(shù)據(jù)集圖片展示
圖12 各模型計算速度
表2 訓(xùn)練模型參數(shù)
將在PaddleX上訓(xùn)練得出的圖像分類網(wǎng)絡(luò)模型導(dǎo)出,在Pycharm上進(jìn)行代碼的修改。該模型對40種日常生活中所常見的垃圾進(jìn)行分類,實現(xiàn)了最高100%的識別準(zhǔn)確率,取得了比較好的效果。模型訓(xùn)練了120個Epoch,整體模型在108個Epoch時acc1值達(dá)到最優(yōu),最優(yōu)值為0.7663。最后的實驗結(jié)果也表明:該模型具有很好的魯棒性,部分垃圾種類的識別準(zhǔn)確率達(dá)到99%以上。
表1 樣本分類標(biāo)準(zhǔn)
圖13 塑料袋的識別
圖14 測試集圖片識別準(zhǔn)確率
整個試驗過程所用到的計算機環(huán)境配置以及ResNext101內(nèi)部部分參數(shù)設(shè)置如表3所示[9]。
表3 環(huán)境配置
表4 參數(shù)設(shè)置
上述參數(shù)中,top-1準(zhǔn)確率通常作為模型整體準(zhǔn)確率的評價指標(biāo)之一,其計算方法如式(1)所示:
上式中test_pred 表示在經(jīng)過模型學(xué)習(xí)過程后,測試集的分類結(jié)果。 test_true 表示測試集標(biāo)注的所有標(biāo)簽種類,num(test_pred=test_true)表示識別正確的圖片數(shù), num(test)表示測試集中總圖片數(shù)。top-1準(zhǔn)確率意思就是模型在經(jīng)過學(xué)習(xí)之后,識別正確的圖像占所有測試集樣本中的比重,也表示測試數(shù)據(jù)集平均的識別成功率。
通過對模型進(jìn)行深度學(xué)習(xí)并且進(jìn)行不斷的迭代,模型訓(xùn)練結(jié)束之后,使神經(jīng)網(wǎng)絡(luò)能夠?qū)?0類生活垃圾的圖像進(jìn)行分類。最后我們將模型進(jìn)行導(dǎo)出,通過調(diào)用電腦的攝像頭,這樣可以實時地對垃圾的種類進(jìn)行識別,并取得了不錯的效果。
本論文將ResNet50_vd_ssld網(wǎng)絡(luò)用于垃圾分類,部分種類最高取得了100%的準(zhǔn)確度,其特色和創(chuàng)新表現(xiàn)在:①相比傳統(tǒng)圖像分類算法,模型具有比較好的魯棒性,對環(huán)境噪聲(如照明、遮擋等)有較強的抵抗能力;②實現(xiàn)了垃圾分類端到端分類模型,輸入圖片,就可得到結(jié)果,無需任何人為特征提取和閾值設(shè)定;③訓(xùn)練深度學(xué)習(xí)模型用到了遷移學(xué)習(xí)方法,即利用其他已經(jīng)訓(xùn)練好的模型來開始訓(xùn)練垃圾分類模型,而不是從頭開始訓(xùn)練;④模型訓(xùn)練過程使用了SSLD知識蒸餾方案(SSLD,Simple Semi-supervised Label Distillation),既保證了模型識別的精度,又控制了模型的規(guī)模大小。⑤99%以上的識別準(zhǔn)確度,達(dá)到工程實用標(biāo)準(zhǔn)。
由于時間的關(guān)系,本課題只解決了圖像只含有單一垃圾類別的圖像分類問題,并未考慮圖像中有多個垃圾類別的問題,未來可以用深度學(xué)習(xí)中的多目標(biāo)檢測模型來識別多個目標(biāo)。同時,為了達(dá)到工程實用的目的,垃圾圖像數(shù)據(jù)集還要進(jìn)一步完善,一方面增加垃圾種類,另一方面增加同一種類垃圾的圖像樣本數(shù)量。