李 康 加云崗 王志曉
(1.西安工程大學計算機科學學院 西安 710048)
(2.西安理工大學計算機科學與工程學院 西安 710048)
如今,垃圾分類已成為社會熱門話題,同時全國各個地級市也已將垃圾分類工作納入了工作規(guī)劃。但是面對海量的垃圾,僅僅依靠傳統(tǒng)的人工分類往往力不從心,而且存在勞動強度大和分類效率低等問題[1]。盡管如此,人工分揀也只能分揀出極少部分可回收垃圾和有害垃圾,大部分垃圾只能就地填埋,帶來環(huán)境污染的同時又造成了資源浪費。隨著人工智能技術的發(fā)展和應用,利用其來實現(xiàn)垃圾的自動分類也逐步變?yōu)榱爽F(xiàn)實。
卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN)自1989年被Lecun[2]提出以來,一直廣受關注,其優(yōu)異的特征提取能力和學習能力助推深度學習[3]在目標分類[4]、檢測[5]和分割[6]等領域取得輝煌的成果。常用的模型有AlexNet[7]、Vgg[8]、GoogleNet[9]、ResNet[10]等,這其中ResNet以其創(chuàng)造性地加入跳躍連接解決了模型訓練中的梯度彌散和網(wǎng)絡退化問題而更加引人注目,應用范圍更廣。
注意力機制(Attention Mechanism)源自于對人類視覺的研究,在自然語言處理領域取得成功后人們將其應用于計算機視覺領域,并取得了很好的效果。注意力機制通過聚焦圖像的特定區(qū)域從而使機器可以采集到更加有用的信息。在實際應用中可分為空間注意力機制[11]、通道注意力機制[12]和混合注意力機制[13],代表性的注意力機制有SENet[14]、CBAM[15]和DANet[16]等,但此類方法為達到更優(yōu)的性能通常以犧牲計算效率為代價。于是,WANG[17]等提出了ECANet(Efficient Channel Attention)注意力機制,這個注意力機制更關注跨通道的交互,并通過可控內(nèi)核大小的一維卷積來實現(xiàn)跨通道的信息交互,克服了性能和復雜度之間的矛盾。
本文針對實現(xiàn)垃圾自動分類這一應用需求和當前分類算法在垃圾圖像處理領域準確率不高和效率低下等缺點,將殘差網(wǎng)絡模型ResNet101 與注意力機制ECANet 相結合,提出了一種新的殘差網(wǎng)絡模型(本文稱之為ResNet-ECA),實驗表明ResNet-ECA模型可以兼顧準確性和高效率的要求。
本文構建的ResNet-ECA 模型以ResNet101 網(wǎng)絡模型為基礎,由特征提取和分類這兩部分組成,整體架構如圖1所示。

圖1 ResNet-ECA的整體模型架構
特征提取部分由5 個卷積殘差塊組成,即conv1 ~conv5_x。而每個卷積殘差塊由數(shù)量不同的Bottleneck_eca(其結構如圖2所示)組成,同一個卷積殘差塊中的Bottleneck_eca 完全相同,不同卷積殘差塊中的Bottleneck_eca 區(qū)別在于輸入通道的維度不同。垃圾圖像每經(jīng)過一個卷積殘差塊圖像尺寸縮小1倍,深度則增大1倍,這樣以來對垃圾圖像的特征提取更加充分。

圖2 Bottleneck_eca模塊
分類器部分則由全連接層FC 構成,它把模型提取到的特征信息進行分類,以得到每個垃圾圖像的預測標簽。這里把垃圾圖像分為紙箱板、玻璃杯、飲料瓶、易拉罐、塑料玩具和毛絨玩具這六個類別。
ResNet 模型可以很好地解決因網(wǎng)絡模型層數(shù)加深而出現(xiàn)的梯度彌散問題,主要在于它引入了恒等跳躍連接,其結構如圖3所示。

圖3 殘差網(wǎng)絡的Bottleneck結構
在這個結構中,若殘差塊的輸入為x,期望得到的輸出是H(x) 。由于跳躍連接的存在,則H(x)=F(x)+x,真正的學習部分F(x)=H(x)-x。若在卷積層沒有學到新信息,即F(x)=0,由于恒等映射的存在,那么H(x)=x,網(wǎng)絡的性能也并未受到影響,實際上F(x)也不可能是0,所以經(jīng)過殘差塊可以學到新的特征信息。
ECANet 不同于SENet 和CBAM 對通道進行降維的策略,實驗證明降低通道維度會對注意力機制的學習策略產(chǎn)生影響,因此ECANet 使用一維卷積來實現(xiàn)跨通道的維度交互,避免了降維;它在保證性能不下降的同時又降低了復雜度,其結構如圖4所示。

圖4 ECANet模塊
假設輸入特征F∈RH×W×C,首先它會通過一個平均池化層,在空間維度對輸入特征進行壓縮得到Favg∈R1×1×C;然后通過一維卷積來實現(xiàn)每個通道及其k 個近鄰通道的交互,這里的k 表示跨通道交互的覆蓋范圍,也是卷積核的尺寸,可以自定義k值,圖中是以k=3 為例,得到特征圖Fconv∈R1×1×C;其次利用Sigmoid 函數(shù)對Fconv進行激活操作,得到權重系數(shù)Mc(F)∈R1×1×C。將權重系數(shù)Mc(F) 與輸入特征F逐元素相乘,這樣可得到新的輸出特征F′,整個過程可以用式(1)和式(2)表示:
其中,σ表示Sigmoid 激活函數(shù),fk表示卷積核大小為k的一維卷積操作。
其中,?表示權重系數(shù)Mc(F) 與輸入特征F相乘。
本文的數(shù)據(jù)集來源于網(wǎng)絡爬蟲和個人生活中所收集的2450 張彩色圖像,分為紙箱板、玻璃杯、飲料瓶、易拉罐、塑料玩具和毛絨玩具六個類別,如圖5所示。

圖5 垃圾圖像數(shù)據(jù)集的六個類別
由于原始數(shù)據(jù)集的圖像大小不一,在進行網(wǎng)絡訓練時把原始垃圾圖像統(tǒng)一縮放到256*256 像素,以保持輸入的統(tǒng)一。此外,由于原始數(shù)據(jù)量不多,在訓練時需要對原始數(shù)據(jù)集進行數(shù)據(jù)增強處理,采用的方法有左右翻轉、上下翻轉、旋轉45°等。示例圖像如圖6所示。

圖6 數(shù)據(jù)增強示意圖
原始數(shù)據(jù)集經(jīng)過數(shù)據(jù)增強后得到9800 張彩色圖像,按4∶1 的比例劃分訓練集和測試集,從而可得到訓練集7840張,測試集1960張。
實驗采用的系統(tǒng)是Ubuntu 16.04,使用Python 3.5 和Pytorch 0.4.1 學 習 框 架,CPU 是Intel Xeon E5-2630 @2.20GHz,內(nèi)存32GB。GPU 是NVIDIA 1080Ti。
實驗選用SGD算法去優(yōu)化模型,初始學習率是0.01,每隔20 個訓練周期學習率衰減10%,動量系數(shù)為0.9,設置訓練集和測試集的批次大小均為16,迭代訓練100次,設置Dropout的丟棄率為0.5。
為了測試文中提出的ResNet-ECA 模型的性能,用ResNet-ECA 模型與未添加注意力機制ECA的ResNet101 模型相對比,從損失函數(shù)Loss 和準確率Acc 兩方面做比較。其訓練損失函數(shù)和測試損失函數(shù)隨迭代次數(shù)的變化曲線分別如圖7(a)和圖7(b)所示;其訓練集準確率和測試集準確率與隨迭代次數(shù)的變化分別如圖8(a)和圖8(b)所示。

圖7 損失函數(shù)對比圖

圖8 準確率對比圖
由圖7 和圖8 可以看出,加入注意力機制的模型ResNet-ECA 收斂速度更快,曲線波動的幅度也更小,損失函數(shù)更小,準確率也更高。
通過實驗進一步驗證模型對各個類別的分類能力,可以看到加入注意力機制的ResNet-ECA 可以取得97.85%的平均準確率,同時在各個子類上也表現(xiàn)優(yōu)異,說明ResNet-ECA 模型的分類能力比較好,測試結果如表1所示。

表1 ResNet101與ResNet-ECA在各類別準確率對比(單位:%)
結合圖7、圖8 和表1 可以看出,加入注意力機制的ResNet-ECA 模型明顯優(yōu)于原始的ResNet101模型,而且在各個類別上均表現(xiàn)優(yōu)異,說明加入注意力機制是有效的。
本文提出了一種基于注意力機制的改進殘差網(wǎng)絡模型ResNet-ECA,增強了對垃圾圖像局部細節(jié)的提取能力。構建了垃圾圖像數(shù)據(jù)集,訓練了模型權重,實驗證明本文提出的方法可以有效提高垃圾圖像的分類準確率,具有良好的競爭優(yōu)勢。不過實際的垃圾分類本身具有諸多復雜性,下一步我們將嘗試通過多特征融合等方法進一步提高卷積神經(jīng)網(wǎng)絡的特征表達能力,從而讓垃圾分類更加精準,滿足實際應用需求。