王 超,萬兆江,周瑜杰,劉雨衡
(1 西南石油大學(xué) 工程訓(xùn)練中心,四川 南充637001;2 西南石油大學(xué) 工程學(xué)院,四川 南充 637001)
垃圾分類是保護(hù)生態(tài)環(huán)境、促進(jìn)經(jīng)濟發(fā)展的有效措施。據(jù)有關(guān)組織統(tǒng)計,中國每年產(chǎn)生的垃圾總量約1.5億噸,因而當(dāng)下則亟需采取行動來有效緩解垃圾治理壓力。基于此,將垃圾進(jìn)行分類回收,不僅能夠有效提高垃圾的回收利用率,而且還有助于降低垃圾的處理成本。
目前,垃圾分類多是采用人工自主方式,不僅效率低、成本高,而且較易導(dǎo)致誤分類。如何解決效率成本的問題,施行有效、智能的處理具有重要的研究意義。鄭佑順等人通過殘差結(jié)構(gòu),采用幻象模塊代替ResNet18,減少了網(wǎng)絡(luò)參數(shù)量,提高識別精度。崔文婧等人通過VGG16的卷積神經(jīng)網(wǎng)絡(luò)對海洋漂浮垃圾進(jìn)行分類識別,結(jié)果表明,該方法能有效區(qū)分干擾因素,得到有效特征點。許玉蕊等人通過Inception模 塊 提 取 垃 圾 特 征,并 加 入Batch Normalization層提高了模型的訓(xùn)練速度和準(zhǔn)確率。
綜上可知,采用卷積神經(jīng)網(wǎng)絡(luò)對垃圾進(jìn)行分類值得做更進(jìn)一步的研究,旨在用來切實解決垃圾分類問題。同時,在圖像和視頻處理采集過程中,由于受各種客觀因素影響,圖像特征提取和細(xì)節(jié)信息可能出現(xiàn)一些意想不到的問題,采用圖像預(yù)處理算法將能夠較好地解決圖像采集中手工覆蓋提取不全和選擇困難繁雜的問題。
因此,本文提出了一種改進(jìn)ResNet-50的垃圾分類識別算法。通過二維Gamma函數(shù)對圖像進(jìn)行光照校正預(yù)處理,并且,采用激活函數(shù)和層優(yōu)化了50網(wǎng)絡(luò)結(jié)構(gòu),得到最優(yōu)的網(wǎng)絡(luò)模型。該算法可實現(xiàn)可回收垃圾、廚余垃圾、其它垃圾和有害垃圾四類垃圾的分類。
在進(jìn)行垃圾分類工作的過程中,由于工作環(huán)境多變、垃圾與其他物體發(fā)生相互遮擋以及環(huán)境的光照條件多變等因素的影響,難免會產(chǎn)生白噪聲、并造成場景的光照不均勻現(xiàn)象,導(dǎo)致待分類垃圾的一些重要特征信息缺失,嚴(yán)重影響了正常垃圾分類工作。針對這些問題,本文采用濾波算法和光照自適應(yīng)校正算法來對圖像進(jìn)行預(yù)處理。圖像預(yù)處理設(shè)計如圖1所示。

圖1 圖像預(yù)處理設(shè)計Fig.1 Images pre-processing design
本文圖像預(yù)處理選擇色彩空間中的通道中進(jìn)行。因為,相較于色彩空間,色彩空間更符合人眼的視覺特性,且其通道直接對應(yīng)圖片的亮度,相比于處理的3個通道,既減少了卷積的次數(shù),也有利于提高算法的運行速度。對預(yù)處理算法內(nèi)容擬展開研究分述如下。
(1)圖像的濾波處理:由于相機采集的圖像中多為高斯噪聲,故采用高斯濾波的方法來對圖像進(jìn)行濾波操作。高斯濾波公式可寫為:

其中,為濾波后的圖像;為高斯模板;為攝像頭采集的原圖片。
(2)提取光照分量:基于Retinex理論,圖像主要由光照分量、反射分量和噪聲組成。本文采用Retinex理論中多尺度高斯函數(shù)卷積的方法,來提取光照分量,提取的數(shù)學(xué)表達(dá)式如下:

其中,為估計的光照分量;為需要提取的光照分量的圖像;為高斯函數(shù)。
(3)函數(shù)校正:通過劉志成等人構(gòu)造出的二維函數(shù)。對源圖像的色彩空間中的通道進(jìn)行校正。二維函數(shù)的數(shù)學(xué)定義式見如下:

其中,為校正后的圖像;為估計光照分量的均值;為光照分量。
本文采用預(yù)處理流程為:將攝像頭采集的原圖像進(jìn)行高斯濾波,再將色彩空間轉(zhuǎn)化為色彩空間,分離出通道。對分離后的通道采用公式(2)的方法進(jìn)行光照分量的提取,接下來使用函數(shù)進(jìn)行校正。得到校正后的通道,在此基礎(chǔ)上可將校正后的通道和原來的、進(jìn)行合并,并轉(zhuǎn)化為色彩空間。由此得到的預(yù)處理流程如圖2所示。

圖2 圖像預(yù)處理流程Fig.2 Images pre-processing process
1.2.1 模型的選擇
本文要甄別的垃圾種類較多,需要提取數(shù)目可觀的圖像特征,此時若采用較深的網(wǎng)絡(luò)結(jié)構(gòu),確實可以犧牲訓(xùn)練的速度來增強網(wǎng)絡(luò)的特征提取能力。但是網(wǎng)絡(luò)層數(shù)的增加,不僅會使訓(xùn)練的速度大大降低。模型難以收斂、甚至不收斂,還會使模型出現(xiàn)網(wǎng)絡(luò)退化、信息丟失等復(fù)雜問題。因此,在2015年,He等人提出了ResNet網(wǎng)絡(luò)即殘差神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。

圖3 殘差塊結(jié)構(gòu)Fig.3 Residual block structure
研究可得,對于圖3中殘差塊的基本設(shè)計原理可給出如下的闡釋論述。
該殘差塊輸出為:

故其中卷積網(wǎng)絡(luò)的學(xué)習(xí)目標(biāo)為:

若此時卷積神經(jīng)網(wǎng)絡(luò)發(fā)生了梯度彌散問題,無法繼續(xù)學(xué)習(xí),即()0,此時有()0,即輸出與輸入為恒等映射,這樣就解決了前文所述的訓(xùn)練收斂難、網(wǎng)絡(luò)退化和信息丟失等問題。
在本文中,選用ResNet-50網(wǎng)絡(luò)作為基礎(chǔ)框架。原始的ResNet-50網(wǎng)絡(luò)采用了作為激活函數(shù),而激活函數(shù)在負(fù)區(qū)間沒有輸出,故易出現(xiàn)神經(jīng)元失活等問題,影響網(wǎng)絡(luò)的廣度和深度以及收斂速度。因此,本文優(yōu)化了原始的ResNet-50的一些網(wǎng)絡(luò)結(jié)構(gòu)來減少模型的信息丟失和提高模型的泛化能力。主要優(yōu)化部分可做分析表述如下。
(1)采用函數(shù)代替作為激活函數(shù)。函數(shù)在負(fù)區(qū)間內(nèi)仍有梯度。即輸入值為負(fù)的時候,函數(shù)在負(fù)區(qū)間內(nèi)仍有梯度。可以說函數(shù)繼承了函數(shù)優(yōu)點并且彌補了其不足。
(2)改變()層和激活函數(shù)的位置。 通過He等人的實驗研究,可知在中將層和激活函數(shù)放在卷積操作之前可以更進(jìn)一步地提高模型的泛化能力。
至此,本次研究得到的網(wǎng)絡(luò)結(jié)構(gòu)則如圖4所示。

圖4 優(yōu)化后的ResNet-50網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.4 Optimized ResNet-50 network structure diagram
1.2.2 損失函數(shù)和優(yōu)化算法的選擇
(1)損失函數(shù)。損失函數(shù)()是經(jīng)常在監(jiān)督學(xué)習(xí)(深度學(xué)習(xí)的一種學(xué)習(xí)方法)中用到的一個函數(shù)。 函數(shù)的作用是可以衡量預(yù)測分布與真實分布的誤差大小,作為深度學(xué)習(xí)的優(yōu)化的目標(biāo)函數(shù),為訓(xùn)練中的模型指引優(yōu)化的方向。
本文進(jìn)行的垃圾分類研究屬于多分類問題,因此,在深度學(xué)習(xí)算法中將交叉熵選為損失函數(shù)。交叉熵是信息論中的一個概念,在深度學(xué)習(xí)中,會將其用于評估預(yù)測分布和真實分布的相似度(混亂程度),非常適合用于多分類問題。交叉熵函數(shù)的數(shù)學(xué)定義公式具體如下:

其中,表示交叉熵;P表示預(yù)測分布中的第個值;R表示真實分布中的第個值;表示分布長度。
(2)優(yōu)化算法。在深度學(xué)習(xí)中,基本優(yōu)化算法使用的是梯度下降算法(Gradient Descent),此后出現(xiàn)的各種優(yōu)化算法都是以該算法為基礎(chǔ)改進(jìn)得來的。
隨機梯度下降(Stochastic Gradient Descent,SGD)算法可以對模型進(jìn)行優(yōu)化訓(xùn)練。SGD是通過隨機采樣少量的訓(xùn)練樣本來計算梯度,故而計算速度快,對硬件設(shè)備要求低,但卻也存在著收斂不穩(wěn)定的問題。研究中,通過引入動量和隨機分布樣本在一定程度上能夠減緩其不穩(wěn)定的收斂狀態(tài)。此外,在優(yōu)化算法中,還使用了權(quán)值衰減()、神經(jīng)元失活()等算法來防止模型過擬合,進(jìn)一步提高模型的泛化能力。
2.1.1 數(shù)據(jù)集的收集和預(yù)處理
(1)數(shù)據(jù)集收集和標(biāo)注。由于開源的垃圾分類數(shù)據(jù)集的圖片分類標(biāo)準(zhǔn)不同,并且圖片涵蓋的種類也頗多,故本文數(shù)據(jù)集由2部分組成:抽取的開源數(shù)據(jù)集中生活常見垃圾圖片、及收集的日常生活中所產(chǎn)生的垃圾圖片。圖片的標(biāo)注參照的是《成都市生活垃圾管理條例》的分類標(biāo)準(zhǔn),其中包含了可回收物垃圾、有害垃圾、廚余垃圾、其他垃圾圖片各1000張。數(shù)據(jù)集中部分圖片如圖5所示。

圖5 數(shù)據(jù)集部分圖片F(xiàn)ig.5 Images of part of the dataset
(2)數(shù)據(jù)集的預(yù)處理。本文數(shù)據(jù)集預(yù)處理(數(shù)據(jù)增強)方法是對圖片進(jìn)行一些操作(隨機翻轉(zhuǎn)、隨機裁剪、隨機縮放、隨機旋轉(zhuǎn)),以此來增加其數(shù)據(jù)信息量,并按照16:3:1的比例劃分為訓(xùn)練集、驗證集、測試集。3種數(shù)據(jù)集的種類和數(shù)量見表1。

表1 數(shù)據(jù)集種類和數(shù)量Tab.1 Types and numbers of the dataset
2.1.2 算法驗證
在深度學(xué)習(xí)算法開始訓(xùn)練前,由于原始的ResNet-50上的線性輸出層有1000層,為符合最終將垃圾分4類的要求,故還需要在模型中將線性輸出層改為4層。
本文進(jìn)行訓(xùn)練采用超參數(shù)為:批處理大小為每批16張圖片,訓(xùn)練輪數(shù)為80輪,學(xué)習(xí)率為0.001。訓(xùn)練過程中訓(xùn)練集和測試集的損失值和準(zhǔn)確率如圖6所示。由圖6可知,該模型損失值下降收斂較快,而且準(zhǔn)確率上升也很快,準(zhǔn)確率最終達(dá)到了99%。

圖6 訓(xùn)練集和測試集的損失值和準(zhǔn)確率Fig.6 Loss value and accuracy of training set and test set
研究中,還將使用訓(xùn)練后的模型與預(yù)處理算法對不同類型的垃圾類別進(jìn)行識別,算法識別的不同效果如圖7所示。經(jīng)測試可知,該模型能準(zhǔn)確識別出4種類型的垃圾,效果較佳。

圖7 算法預(yù)測結(jié)果Fig.7 Prediction results of the algorithm
保護(hù)生態(tài)環(huán)境是當(dāng)今社會的熱點話題之一,而做好垃圾分類則是其中的關(guān)鍵環(huán)節(jié)。本文通過分析大量文獻(xiàn)與實驗數(shù)據(jù),提出了一種改進(jìn)ResNet-50網(wǎng)絡(luò)的垃圾分類模型。對比傳統(tǒng)的分類模型,利用殘差神經(jīng)網(wǎng)絡(luò)實現(xiàn)垃圾分類具有更高準(zhǔn)確性和更快響應(yīng)的特點,在達(dá)成目的的同時,還能夠節(jié)省大量的人力和物力。在實際應(yīng)用場景測試中,垃圾分類識別的精準(zhǔn)率也接近預(yù)期值。但本文測試算法也存在一定問題,諸如:測試環(huán)境單一、圖片數(shù)量有限、訓(xùn)練時的干擾項較少等。未來工作還會對在不同的環(huán)境條件下進(jìn)行測試、增加數(shù)據(jù)集大小、以及設(shè)置更多的干擾項等諸多方面繼續(xù)豐富研究成果,致力得到更為精準(zhǔn)、且符合實際分類環(huán)境的算法。