楊旺功,趙一飛
(北京印刷學院新媒體學院,北京 102600)
垃圾分類是解決垃圾問題的有效途徑。雖然我國已經多年嘗試推廣垃圾分類,但由于城市居民環保意識和責任感缺失,且我國垃圾分類體系不完善,實際推行效果并未達到預期效果。中國城市環境衛生協會提供的數據顯示,目前我國人均生活垃圾年產量為440公斤,全國城市垃圾的年產量達1.5億噸,且每年以8%到10%的速度增長,全國歷年垃圾存量已超過60億噸。全國688座城市(除縣城外)已有2/3的大中城市遭遇垃圾問題,每年因垃圾造成的資源損失價值在250億—300億元[1]。
居民將生活垃圾投放于垃圾收集容器后,被小型環保專用收集車運輸至垃圾轉運站,再由專用密閉型垃圾車運輸至垃圾處理終端地點進行統一處理。當前國內垃圾分類處理是以人工流水線分揀的方式為主,此方法不僅成本高、勞動強度大、效率低下,已經不能滿足目前垃圾處理需求。此外,人工分揀出錯率高、速度慢,從而導致大部分可重復利用的垃圾被焚燒或填埋。隨著深度學習在計算機視覺領域的發展,基于卷積神經網絡網絡的圖像分類取得顯著成果,使得利用利用計算機視覺完成垃圾自動分類成為可能,將深度學習模型與機械自動化技術融合,應用于垃圾分類處理的工作流程,實現基于深度學習的垃圾分類系統,提高垃圾處理的自動化水平和可回收垃圾的利用率。因此,基于卷積神經網絡的垃圾圖像分類算法的研究,具有重要的研究價值。
早期對垃圾圖像分類的研究采用的是經典圖像分類算法[2-5],需要手工選取特征,并使用分類器完成分類任務。由于傳統分類算法需要手工提取圖像特征,算法的魯棒性較差,處理時間長、過程復雜,無法達到實時處理的效果。隨著卷積神經網絡(Convolution Neural Network,CNN)的發展,已經被廣泛應用于計算機視覺任務。作為數據驅動的算法,卷積神經網絡具有結構簡單、訓練參數少,自動特征提取的特點。AlexNet[6]在2012年ImageNet競賽中以絕對優勢大敗所有基于非深度學習模型,從而奠定了深度學習在視覺任務中的地位。隨后,基于卷積神經網絡的深度學習迅猛發展,如GoogleNet[7]、VGGNet[8]、ResNet[9]等算法有效提升了圖像分類的精度。基于圖像的垃圾分類任務,在深度學習的推動下也得到了的長足的發展。斯坦福大學的Mindy Yang和Gary Thung創建TrashNet數據集,該數據集包括6個類別,其中每個圖像僅出現一種類型的垃圾[10]。Ozkaya等在TrashNet數據集上比較不同CNN的分類性能,并自建卷積神經網絡和微調,取得了良好的分類效果[11]。Mittal等自建數據集GINI,搭建卷積神經網絡GarbNet,最終實現了87.69%的準確率。向偉等使用CaffeNet,調整卷積核尺寸和網絡深度,在自建的垃圾圖像數據集上獲得95.75%的準確率[12]。國內基于深度學習的垃圾圖像分類研究較少,本文提出一種基于雙線性卷積神經網絡的垃圾圖像分類算法(Trash Classification Net,TCNet),在網絡結構中融合了注意力機制模塊,提高了模型在垃圾分類任務上的準確性與魯棒性。
本文構建了垃圾圖像分類模型TCNet,其包括特征提取器、分類器兩部分,神經網絡的整體結構如圖1所示。特征提取器由EfficientNet_B3[13]作為主干部分,并在特征提取器之后加入注意力機制模塊,最后對兩個網絡提取的特征進行雙線性乘積運算,以獲得輸入圖像的雙線性特征。分類器由兩層全連接層,設置每層的隨機失活率為0.1,最后接Softmax分類器,對特征提取的特征進行分類。

圖1 TCNet網絡結構
研究發現,人類視覺處理圖像時使用兩條通路,即腹側通路和背側通路。腹側通路處理物體的形狀及輪廓,專注于物體的類型識別;背側通路主要處理物體的空間信息,專注于物體定位。受人類視覺識別機制的思想啟發,B-CNN[14]采用雙鏈路的方式,其結構如圖1所示。
B-CNN模型F由一個四元組表示
F=(fA,fB,P,C)
(1)
fA、fB表示特征提取函數,P為池化函數,C為分類函數。
特征提取函數f(·)可表示為映射關系f:L×I→Rc×D,將輸入圖像I和位置L映射為c×D維的特征向量。采用外積運算的方法融合fA,fB的輸出,得到雙線性特征。池化函數P將所有位置的雙線性特征聚合為一個特征φ(I)。如下式

(2)
式中,l為L的子區域,B表示雙線性操作。
B(l,L,fA,fB)=fA(l,I)TfB(l,I)
(3)
外積運算的過程,需要對其中一個特征進行轉置運算,輸出特征的維度與卷積特征通道對應,且不同通道表示不同層次的語義特征。雙線性模型的外積運算,可以得到不同語義對象間的關系。由于卷積特征對絕對位置不敏感,且不同語義對象的相對位置較穩定。因此,雙線性網絡的外積運算可定位語義特征,能夠在一定程度上模擬人類視覺處理機制。
EfficientNet-B3是系列高效網絡模型EfficientNet中的一種。通常對基準網絡提升,對輸入圖像大小、網絡的深度和寬度(通道數)進行擴展。文獻[13]對分辨率、深度和寬度三個維度進行綜合研究,提出了協調三個維度的模型復合縮放方法。作者設計了結合MBConv和squeeze and excitation方法的EfficientNet-B0作為基準網絡,其核心網絡結構如圖2所示。

圖2 EfficientNet-B0核心結構示意圖
在基準網絡EfficientNet-B0基礎上,利用復合縮放方法對三個維度(分辨率、深度和寬度)進行調整優化,以期獲得在一定資源限定條件下的準確率高的模型。其中圖像分辨率、深度和寬度的對應關系如下式(4)所示
depth:d=αφ
width:w=βφ
resolution:r=γφ
s.t.α·β2·γ2≈2,
α≥1,β≥1,γ≥1.
(4)
其中,α、β、γ是搜索神經網絡所得的常數;φ是由計算資源確定的常數;d、w、r分別表示復合縮放調整后的網絡寬度、深度和分辨率;其約束條件是設定的計算量變換倍數。
視覺注意力機制(Attention Mechanism)是模仿人類大腦視覺系統所特有的信號處理機制。人類視覺會快速掃描整幅圖像,重點關注目標區域的高價值信息和興趣區域;自動忽略低價值信息。人類視覺注意力機制有效提高了視覺信息處理的效率和準確性。注意力機制最先應用于自然語言處理之后被應用于計算機視覺,有效提升了深度學習模型的分類、識別和預測的準確性及效率。注意力機制的數學表達為

(5)
其中,x表示注意力網絡的輸入;Z表示特征圖像,A表示輸出;Fφ表示注意力生成函數。根據網絡中注意力機制結構不同,可分為2種:空間注意力[15](Spatial Attention)和通道注意力[16](Channel Attention)。
1)位置注意力機制
位置注意力機制是通過提取特征圖任意兩個位置的相關性和依賴性。利用空間注意力模塊生成一個空間注意力特征圖,其本質是利用任意兩點特征之間的關聯,來相互增強各自特征的表達。通過計算空間關聯度的方法獲得位置權重,有效彌補膨脹卷積造成的空間信息丟失和提高小目標的檢測率。位置注意力機制的模型結構如圖3所示。

圖3 空間注意力模塊
首先特征圖A經過卷積操作得到三個特征圖B、C、D,維度均為C×H×W,隨后將B、C、D進行維度轉換為C×N(N=H×W);矩陣B的轉置與C相乘,通過softmax獲得空間注意力特征S(N×N);矩陣S的轉置乘以D,乘以尺度系數后(維度為C×H×W),再與特征圖A相加,得到輸出E(維度為C×H×W)。其數學表達如下式所示

(6)
其中,i,j分別表示維度轉換后N的序列。
(7)
2)通道注意力機制
通常對卷積、池化層之后,對每一個通道的特征圖進行相同的操作,認為每一個通道同等重要。真實情況是不同卷積核生成的特征圖對于分類任務的重要性不同,通道注意力機制可以為不同通道的特征圖賦予不同的權重,有效地過濾通道信息。圖4是通道注意力機制模型結構。

圖4 通道注意力模塊
在通道注意力模塊中,對特征圖的空間維度進行壓縮操作(1×1×C),然后進行激發操作,為每個特征通道生成權重值,最后將該權重應用于原來的每個特征通道。對于特定的分類任務,訓練過程即為訓練通道的權重。
實驗采用由斯坦福大學Gary Thung和Mindy Yang收集的垃圾圖像數據集TrashNet,其圖像分類為硬紙板、玻璃、金屬、紙張、塑料或垃圾,測試數據集樣本總數為2527張。

圖5 垃圾圖像分類數據集樣本
本研究按訓練與驗證樣本的比例為7:3進行隨機劃分。最終訓練樣本1769幅圖像,驗證樣本758幅圖像,各分類的樣本分布如表1所示。

表1 實驗樣本分別情況
本研究的實驗電腦配置為PC Intel(R) Xeon(R) CPU E5-2640 v2 @ 2.00GHz的CPU、8GB的Nvidia Geforce GTX 1070 GPU和64G運行內存。所有的程序均是由Python語言編寫并調用CUDA、Cudnn、OPENCV庫并在Windows7統下運行。
本研究采用準確率(accuracy)對實驗進行評估,其含義如式(8)所示

(8)
式中,真陽性(true positive,TP)表示樣本真實為正被預測為正的個數;假陽性(false positive,FP)表示樣本真實為負而被預測為正的個數;真陰性(true negative,TN)表示樣本真實為負且被預測為負的個數;假陰性(false negative,FN)表示樣本真實為正而被錯誤地預測為陰性的個數。
采用TCNet的網絡結構,它是對EfficientNet的改進,并在TrashNet數據集上完成仿真。實驗每個訓練批次為16,采用RMSprop優化函數,初始學習率為0.0001,rho為0.9,epsilon為1e-6,全連接層后添加Dropout機制,Dropout值為0.1。訓練過程如圖所示。

圖6 TCNet網絡實驗仿真過程
為了進一步驗證TCNet網絡的有效性,將特征提取網絡的最后特征圖。本文采用加權梯度類激活熱力圖(Gradient-weighted Class Activation Mapping,Grad-CAM)[17]方法對TCNet模型進行可視化解釋。該方法通過構建熱力圖以顯示輸入的圖像中具體區域對圖像最終的分類判斷起到了關鍵作用。如圖所示特征圖的熱力圖的聚焦位置基本都位于圖像中的目標位置。

圖7 TCNet網絡激活熱力圖
目前,對垃圾圖像分類任務大多采用神經網絡進行實驗完成。為了更客觀評價本模型的性能,本文對典型的模型和方法進行比較。所有實驗使用相同的分類網絡結構,特征提取使用經典模型模型結構,并在TrashNet數據集上進行實驗仿真,仿真結果如表2所示。
可以看出,針對于TrashNet數據集,EfficientNet的分類準確率優于VGG19和InceptionV。EfficientNetB3的輸入圖像更大,結構更復雜,分類性能優于EfficientNetB0。在EfficientNetB3的基礎上,添加了通道注意力模塊,學習通道間的非線性關系,提高關鍵特征的表達力。TCNet采用雙線性匯合的方法計算不同空間位置的外積,并對不同空間位置計算平均匯合以得到雙線性特征,最優的分類準確率為93.13%。

表2 不同方法對垃圾圖像數據集的準確率
1)對于垃圾圖像分類,相較于其它經典模型,EfficientNet圖像分類模型實現了較先進的分類精度。
2)注意力機制有利于垃圾圖像分類工作,能夠提取更準確的特征,使特征圖具備更豐富的語義信息。
3)采用雙線性融合方法,對于圖像的不同位置進行外積運算,從而得到雙線性特征,使其具有高級表達能力的垃圾圖像特征信息。