張麗艷,趙藝璇,牟鈺鵬,李林
(大連交通大學 電氣信息工程學院,遼寧 大連 116028) *
黨的十八大以來,黨和國家對生態(tài)文明日益重視,將生態(tài)文明列入“五位一體”的總體布局,而垃圾分類則是生態(tài)文明建設的重要環(huán)節(jié)和關鍵領域.目前垃圾分類設施過于簡單,為了提高分類效率,避免發(fā)生錯分、誤分的現(xiàn)象,智能垃圾分類產(chǎn)品成為當今研究重點[1].美國CleanRobotics公司研制了一款名為Transhbot的全自動分類垃圾桶.Trashbot操縱攝像頭、傳感器、金屬探測器和馬達,把垃圾放在精確的位置.法國Uzer公司研發(fā)了一款名為Eugene的智能垃圾箱,只需把丟棄的垃圾上的條形碼對準掃描儀就可識別出垃圾是何種類.吳凡[2]等研究人員發(fā)明的智能垃圾桶只需掃描垃圾袋上的二維碼,所屬類別垃圾桶的蓋子會自動打開,指引投放.但以上研究對于列車上常見垃圾的分類并不適用,為此本文基于ResNet50神經(jīng)網(wǎng)絡模型提出一種列車垃圾分類器,實現(xiàn)垃圾智能分類.
深度學習是機器學習領域中最重要的研究方向之一,是機器模擬人腦對文字、圖像、聲音等數(shù)據(jù)進行一系列分析,從而解決模式識別中的困難問題[3].通常情況下,具有良好分類能力的模型需要經(jīng)過大量數(shù)據(jù)集訓練,消耗巨大的時間資源和計算資源,因此研究者提出遷移學習方法來解決此類問題[4-5].本文使用在ImageNet上進行過預訓練的ResNet50模型對列車常見12種垃圾進行分類識別.
遷移學習(Transfer Learning)是一種機器學習方法,是將源領域的標注數(shù)據(jù)或者知識結構遷移到結構相似的目標領域中,使得目標領域能夠取得更好的學習效果.在目標域數(shù)據(jù)很難獲取或者數(shù)據(jù)量較少且分類識別模型較復雜的情況下可以通過遷移學習來防止結果過擬合或者欠擬合,提高分類識別效果;其次,建立完整模型較復雜且對硬件要求高,通過遷移學習可大大減少耗時,提高學學習效率.
遷移學習一般過程為將模型在數(shù)據(jù)量充足的源域中進行預訓練,隨后在數(shù)據(jù)量稀少的目標域中進行參數(shù)微調(diào),達到減少訓練數(shù)據(jù)、增強模型的泛化能力、便于進行深度學習的目的[6-7].在進行遷移學習時要考慮到兩個關鍵因素,分別是新數(shù)據(jù)集的大小和與原數(shù)據(jù)集的相似性.當新數(shù)據(jù)集較小且與原數(shù)據(jù)集相似時,為了防止過擬合不建議進行微調(diào),只訓練線性分類器是較好的選擇;當新數(shù)據(jù)集較大且相似時,有足夠的數(shù)據(jù)的條件下可以對整個網(wǎng)絡進行微調(diào).本實驗選用包含2萬多個圖像類別且已手動注釋完成的ImageNet數(shù)據(jù)集作為遷移學習的源域,自行采集的列車常見12種垃圾圖片作為目標域,采用遷移學習方法,將其他層參數(shù)結構凍結,只改變?nèi)B接層的結構參數(shù)對模型進行訓練.
ResNet又名殘差神經(jīng)網(wǎng)絡[8],即在傳統(tǒng)卷積神經(jīng)網(wǎng)絡中加入殘差學習(Residual Learning)的思想,避免了隨著網(wǎng)絡模型層數(shù)的加深出現(xiàn)學習退化現(xiàn)象.在本質(zhì)上可以將殘差學習的思想理解為一個塊(Block),可用公式(1)定義.其中y表示輸出,F(xiàn)(x,{Wi})表示殘差部分,x表示樣本.
y=F(x,{Wi})+x
(1)
表1所示為本實驗所用的ResNet50模型的網(wǎng)絡結構,由49個卷積層和1個全連接層組成[9].將49個卷積層分為五組,卷積核的大小有三種,分別為7×7、1×1、3×3,用于對輸入圖像進行特征的提取,卷積層的激活函數(shù)為非線性Relu激活函數(shù).使用一個7×7的平均池化和一個3×3的最大池化,步長均設定為2,每一次的池化操作都會使其維度降為原來的1/2.全連接層的維度設置為類別數(shù)12.
表1 ResNet50網(wǎng)絡結構
在建立本文分類模型時使用Softmax分類器.Softmax函數(shù)可用公式(2)表示.
(2)
計算機應用的二進制計算方法在計算時容易出現(xiàn)溢出現(xiàn)象,應用公式(3)可有效避免溢出現(xiàn)象,其中M表示輸入xi的最大值.本文在對分類模型訓練時使用防止溢出的Softmax分類器.
(3)
本文采集列車常見12種垃圾圖像,并按其類別制作數(shù)據(jù)集.為提高模型的魯棒性,每類垃圾圖像數(shù)據(jù)集均含有正面、背面及不同形狀.將采集的數(shù)據(jù)集分為兩組,其中第一組為11 187張列車常見12種垃圾圖像,每種垃圾圖像的70%作為訓練集,30%作為驗證集;第二組為模型測試集,在不同光線、不同角度、不同背景、不同距離對12種相
同列車常見垃圾進行拍攝,每種100張.
第一組數(shù)據(jù)集的垃圾所屬類別、垃圾中文名稱以及每類垃圾數(shù)據(jù)集的圖片數(shù)量如表2所示.為了提高數(shù)據(jù)集的魯棒性和識別準確性,對一些可識別特征較少的垃圾合理增加了圖像數(shù)量.
表2 列車常見12種垃圾 張
網(wǎng)絡模型訓練在Windows10操作系統(tǒng)下進行,使用Pycharm集成開發(fā)環(huán)境對代碼進行編寫與調(diào)試.實驗主要依賴Tensorflow深度學習框架進行,并使用GPU加速提高網(wǎng)絡模型訓練效率.實驗環(huán)境及超參數(shù)選擇采用表3策略.
表3 實驗環(huán)境配置
本文對基于ImageNet的ResNet50模型進行遷移學習訓練. 預訓練模型的源域是ImageNet中的1000類物體,目標域是列車常見12種垃圾,實驗使用本文建立的數(shù)據(jù)集進行訓練,將其他層參數(shù)結構凍結,只改變?nèi)B接層的結構參數(shù),將全連接層維度設置為12維并通過Softmax分類器實現(xiàn)分類,選擇交叉熵(Cross Entropy)損失函數(shù)和Adam梯度優(yōu)化方法訓練模型.在實驗過程中,通過觀察損失函數(shù)圖像將學習率設置為0.003,批次設置為100,迭代次數(shù)設置為500,最終使模型達到收斂.訓練模型準確率和損失函數(shù)圖像如圖1所示,圖1(a)中橫坐標表示迭代次數(shù),縱坐標表示準確率,其中實線與點劃線分別表示訓練模型與驗證模型的準確率隨迭代次數(shù)的增加而增加,最終模型準確率接近100%.圖1(b)中橫坐標表示迭代次數(shù),縱坐標表示損失函數(shù),實線與點劃線分別表示訓練模型與驗證模型的損失函數(shù)隨迭代次數(shù)的增加而逐漸減小并逐漸收斂至趨于穩(wěn)定,表示本文訓練的模型對列車常見12種垃圾可以達到一個較理想的分類識別效果.
(a) ResNet50準確率 (b) ResNet50損失函數(shù)
將測試集圖像尺度處理為224×224×3,輸入至訓練完成后的網(wǎng)絡模型中進行12種列車常見垃圾類別的預測,根據(jù)得到的預測結果判別預測概率最高的即為所識別的垃圾種類.在每類100張的測試集圖像中,采用公式(4)、公式(5)和公式(6)分別計算每類垃圾的分類精確率(Precision)、召回率(Recall) 和F-度量值(F-Measure, F1),測試結果如表4所示.
(4)
(5)
(6)
使用ResNet50與Inception-V3兩種分類算法對測試集中12種列車常見垃圾進行分類識別,對比兩種算法的精確率、召回率以及F-度量值,如表4所示.
表4 兩種算法對12種列車常見垃圾測試的精確率、召回率、F-度量值 %
表4 兩種算法對12種列車常見垃圾測試的精確率、召回率、F-度量值(續(xù)) %
通過測試,得到ResNet50模型的平均精確率為97.4%,Inception-V3模型的平均精確率為96.5%;ResNet50模型的平均召回率為97.4%,Inception-V3模型的平均召回率為96.6%; ResNet50模型的平均F-度量值為97.5%,Inception-V3模型的平均F-度量值為96.5%.綜合可見ResNet50模型的分類識別效果較Inception-V3優(yōu)秀.
通過PyQt5編寫GUI仿真系統(tǒng),實現(xiàn)了基本的拍照與分類識別功能,圖2展示了“紙巾”的識別界面.
圖2 “紙巾”識別界面
在對模型的測試過程中,相比Inception-V3分類模型,ResNet50模型對12種列車常見垃圾具有較好的分類識別效果,在精確率和召回率上均有提升,具有更好應用價值. ResNet50分類模型對于可回收垃圾中的塑料瓶、干垃圾中的塑料袋、有害垃圾中的藥品等的分類精確率表現(xiàn)較好,對干垃圾中打火機的分類識別精確率達到100%;對于可回收垃圾中的廢報紙、干垃圾中的堅果殼、濕垃圾中的食物殘渣等的分類模型召回率表現(xiàn)較佳,對有害垃圾中指甲油的分類識別召回率達到100%.但本文數(shù)據(jù)集中圖片種類及數(shù)量有限,在實際應用中可以按需要增加數(shù)據(jù)集種類及數(shù)量并繼續(xù)訓練模型,提高分類識別精度.