鄭佑 順 ,林珊玲 ,林 志 賢 ,周雄圖 ,郭 太 良
(1.福州大學 物理與信息工程學院,福建 福州350116;2.中國福建光電信息科學與技術(shù)創(chuàng)新實驗室,福建 福州350116;3.福州大學 先進制造學院,福建 泉州362200)
根據(jù)中國城鄉(xiāng)建設(shè)統(tǒng)計年鑒統(tǒng)計,我國城市生活垃圾的產(chǎn)生量由1979 年的0.25 億噸增至2018年的2.28 億噸[1]。 隨著人民生活水平的提高,垃圾產(chǎn)生量仍在上升。有效回收生活垃圾成為急需解決的問題,這對于可持續(xù)發(fā)展具有重大的意義。 垃圾分類是回收的前提。 目前,我國垃圾分類主要以人工分揀為主,存在勞動強度大、效率低等缺點。 實現(xiàn)垃圾分揀的智能化與自動化具有重要的意義。垃圾圖片分類算法有助于實現(xiàn)垃圾分揀的智能化與自動化。
近年來,越來越多的專家學者對垃圾分類算法進行了研究與實踐。吳建等人使用傳統(tǒng)的計算機視覺方法,手動提取特征,識別實驗室廢物垃圾[2]。 黃惠玲等人提出基于HSV 的閾值分割算法和K 均值聚類算法識別建筑垃圾圖像[3]。 黃興華等人提出基于紋理特征融合的道路垃圾圖像識別算法[4]。 向偉等人提出改進的CaffeNet 網(wǎng)絡(luò)識別水面垃圾[5]。 但是缺乏針對生活垃圾圖片分類算法的研究。 目前,我國各城市全面推行垃圾分類制度,基本建立相應(yīng)的法律法規(guī)和標準體系,將生活垃圾細分,大致可分為可回收垃圾、有害垃圾、廚余垃圾和其他垃圾四大類。 針對我國垃圾分類現(xiàn)狀,收集制作了小型生活垃圾數(shù)據(jù)集,選取經(jīng)典網(wǎng)絡(luò)ResNet18[6]作為基礎(chǔ)網(wǎng)絡(luò),使用GhostNet[7]的幻象模塊代替殘差學習單元中的普通卷積,減少網(wǎng)絡(luò)的參數(shù)量,提出基于幻象殘差結(jié)構(gòu)的垃圾圖片分類算法。
卷積神經(jīng)網(wǎng)絡(luò)是由腦結(jié)構(gòu)啟發(fā)的特殊類型的神經(jīng)網(wǎng)絡(luò),使用了多層次的特征提取的方法,能夠從數(shù)據(jù)中自動學習特征的表示,具有強大的學習能力,在深度學習的相關(guān)領(lǐng)域應(yīng)用廣泛。 LeNet-5[8]是最早的卷積神經(jīng)網(wǎng)絡(luò)之一,被用于手寫字符的識別,奠定了卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計時卷積層、下采樣層、全連接層的拓撲結(jié)構(gòu),產(chǎn)生了深遠的影響。但是由于當時缺乏大規(guī)模訓(xùn)練數(shù)據(jù)以及硬件條件有限,LeNet-5 對于復(fù)雜問題的處理結(jié)果并不理想。如今大數(shù)據(jù)和硬件的發(fā)展加速了卷積神經(jīng)網(wǎng)絡(luò)的研究,卷積神經(jīng)網(wǎng)絡(luò)的性能也在不斷的提升。AlexNet[9]大獲成功,掀起了卷積神經(jīng)網(wǎng)絡(luò)的研究熱潮。VGGNet[10]提出一種簡單有效的卷積網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計的原則。 同時使用多層的小尺寸濾波器代替大尺寸的濾波器,在達到相同感受野效果的同時減少參數(shù)數(shù)量。 這種使用小尺寸的卷積核并增加網(wǎng)絡(luò)深度的思想一直被沿用至今。
通過增加網(wǎng)絡(luò)的深度可以引入更多的非線性特征,但也使得網(wǎng)絡(luò)變得更復(fù)雜,難以訓(xùn)練。何愷明等人提出的深度殘差網(wǎng)絡(luò)ResNet 在卷積層外部加入捷徑連接支路執(zhí)行一個簡單的恒等映射構(gòu)成基本殘差學習單元,通過順序堆疊殘差學習單元解決卷積神經(jīng)網(wǎng)絡(luò)過深時網(wǎng)絡(luò)退化難以訓(xùn)練的問題,使得訓(xùn)練深層卷積神經(jīng)網(wǎng)絡(luò)成為可能。基本殘差學習單元如圖1 所示,這既沒有引入新的參數(shù),也沒有增加計算復(fù)雜度,ResNet 及其思想具有很強的推廣性。
圖1 殘差學習單元
神經(jīng)網(wǎng)絡(luò)中通常用大量卷積操作生成豐富、相似甚至冗余的特征圖,以保證對輸入數(shù)據(jù)有全面的理解。 華為諾亞方舟實驗室在GhostNet 中提出并非所有特征圖都要用卷積操作得到,相似的特征圖可以用更廉價的操作生成。 作者把這些相似的特征圖稱為彼此的幻象并設(shè)計了一種全新的神經(jīng)網(wǎng)絡(luò)基本單元Ghost Module(幻象模塊),如圖3 所示。 相比于圖2 所示的傳統(tǒng)卷積,幻象模塊分三步走。 首先采用普通卷積操作生成部分真實的特征層,然后通過對真實特征層進行線性變換獲得幻象特征層,再將真實特征層與幻象特征層拼接到一起組成完整的特征層。假設(shè)輸入為h×w×c,輸出為h′×w′×n,卷積核尺寸為k,幻象模塊使用深度卷積對真實特征層進行線性變換。則輸入經(jīng)過普通卷積的參數(shù)量為n×k×k×c,輸入經(jīng)過幻象模塊的參數(shù)量為:cost=n/s×k×k×c+(s-1)×n/s×k×k,幻象模塊參數(shù)量的壓縮率為:s×c/(c+s-1)≈s,本文經(jīng)過實踐發(fā)現(xiàn)s=2,k=3 時,引入幻象模塊后網(wǎng)絡(luò)性能較好。
圖2 普通卷積
圖3 幻象模塊
鑒于數(shù)據(jù)集規(guī)模較小以及ResNet18 良好的網(wǎng)絡(luò)性能和其在殘差網(wǎng)絡(luò)中的參數(shù)量較少,本文選用該網(wǎng)絡(luò)進行改進。 將ResNet18 殘差學習單元中的普通卷積用幻象模塊替換,構(gòu)成幻象殘差學習單元,減少網(wǎng)絡(luò)的參數(shù)量。 通過順序堆疊幻象殘差學習單元構(gòu)成G-ResNet18 網(wǎng)絡(luò)。 幻象模塊的網(wǎng)絡(luò)結(jié)構(gòu)如圖4 所示,幻象殘差學習單元如圖5 和圖6 所示。G-ResNet18 網(wǎng)絡(luò)結(jié)構(gòu)如表1 所示。
圖4 幻象模塊網(wǎng)絡(luò)結(jié)構(gòu)
圖5 幻象殘差學習單元(strides=1)
圖6 幻象殘差學習單元(strides=2)
表1 G-ResNet18 網(wǎng)絡(luò)結(jié)構(gòu)
針對我國垃圾分類規(guī)范,通過網(wǎng)上下載和手機拍攝部分常見的生活垃圾圖片構(gòu)成數(shù)據(jù)集, 共10類,4 874 張圖片。 每一類圖片數(shù)量差別不大,盡量保證數(shù)據(jù)均衡。 數(shù)據(jù)集的分布和標簽如表2 所示。由于數(shù)據(jù)集規(guī)模不大,過多的網(wǎng)絡(luò)參數(shù)會擬合訓(xùn)練數(shù)據(jù)的所有特點,而非數(shù)據(jù)之間的共性,導(dǎo)致過擬合。為了防止過擬合,采用隨機水平翻轉(zhuǎn)、隨機垂直翻轉(zhuǎn)、隨機縮放、隨機旋轉(zhuǎn)、逆時針方向裁剪、水平偏移和豎直偏移的數(shù)據(jù)增強方法擴充訓(xùn)練數(shù)據(jù)。 效果圖如圖7 所示。
實驗采用Keras 2.2.2 深度學習開源框架,在64 位Windows 10 操作系統(tǒng)下,通過Python 3.5 編程語言開發(fā)。 硬件平臺為CPU:Intel i7-9700F,內(nèi)存:16 GB,GPU:RTX 2070 8 GB。 實驗將數(shù)據(jù)集隨機打亂后按4:1 劃分為訓(xùn)練集和測試集。一共訓(xùn)練了300 個epoch,訓(xùn)練批次樣本數(shù)為32,優(yōu)化器選用Adam,采用SGDR(Stochastic Gradient Descent with Warm Restarts)[11]學習率進行網(wǎng)絡(luò)訓(xùn)練,通過softmax 分類器進行分類。
表2 數(shù)據(jù)集分布和標簽
圖7 數(shù)據(jù)增強效果圖
學習率是網(wǎng)絡(luò)最重要的超參數(shù)之一,當學習率設(shè)置過大時會導(dǎo)致模型難以收斂,過小時會導(dǎo)致模型收斂速度過慢。 SGDR 即帶重新啟動的隨機梯度下降的學習率,使用余弦函數(shù)作為周期函數(shù),并在每個周期最大值時重新開始學習速率。 通過突然提高學習率,來“跳出”局部最小值并找到通向全局最小值的路徑,可以加快網(wǎng)絡(luò)收斂,找到精度的最優(yōu)值。 SGDR 的公式為:
圖8 SGDR 學習率曲線
圖9 為ResNet18 模型訓(xùn)練的精度曲線,圖10 為G-ResNet18 模型訓(xùn)練的精度曲線。 從圖中可以看出,G-ResNet18 模型收斂更快,且識別精度比ResNet18精度提高了1%,最終測試正確率達到了89%。 本文從識別精度和參數(shù)量兩個方面對比了經(jīng)典網(wǎng)絡(luò) 模型ResNet18、ResNet34、ResNet50 和G-ResNet18在實驗數(shù)據(jù)集下的表現(xiàn),如表3 所示。 可以看出,本文的網(wǎng)絡(luò)模型在保證模型性能的同時大大減少了參數(shù)量,與ResNet18 相比,參數(shù)量減少了46% ,識別精度提高了1% 。 實驗結(jié)果表明,本文的網(wǎng)絡(luò)模型對于小型生活垃圾數(shù)據(jù)集上的表現(xiàn)效果較好,幻象模塊有助于減少網(wǎng)絡(luò)的參數(shù)量。
圖9 ResNet18 精度曲線
圖10 G-ResNet18 精度曲線
表3 本文網(wǎng)絡(luò)模型與經(jīng)典網(wǎng)絡(luò)模型對比
本文針對我國垃圾分類現(xiàn)狀,收集制作了小型生活垃圾數(shù)據(jù)集,并提出了基于幻象殘差結(jié)構(gòu)改進的ResNet18 生活垃圾圖片分類算法。 對比原網(wǎng)絡(luò),該算法在保證性能的同時將參數(shù)量減少了46%,并在自制的生活垃圾數(shù)據(jù)集上取得了89%的識別精度,識別精度提高了1%,有效增加了垃圾分揀的智能化和自動化水平。