秦 浩 王曉峰 喻 駿 黃飛龍 文冠鑫 蘇盈盈
(1. 重慶科技學(xué)院 電氣工程學(xué)院, 重慶 401331; 2. 重慶科技學(xué)院 數(shù)理與大數(shù)據(jù)學(xué)院, 重慶 401331)
對(duì)生活垃圾進(jìn)行分類收集和處理,有利于保護(hù)環(huán)境、節(jié)約資源。利用圖像識(shí)別分類技術(shù)對(duì)生活垃圾進(jìn)行分類,目的是實(shí)現(xiàn)對(duì)生活垃圾類別的高效、快速、精準(zhǔn)識(shí)別。目前,在這方面的研究已取得了一些成果。吳健等人設(shè)計(jì)了基于計(jì)算機(jī)視覺的實(shí)驗(yàn)室垃圾分析與識(shí)別方案[1];吳碧程等人提出了基于卷積神經(jīng)網(wǎng)絡(luò)的智能垃圾分類系統(tǒng)[2];汪洋等人提出的基于卷積神經(jīng)網(wǎng)絡(luò)的垃圾分類系統(tǒng),對(duì)7種生活垃圾進(jìn)行分類,準(zhǔn)確率可達(dá)91.71%[3]。本次研究,我們針對(duì)圖像出現(xiàn)陰影遮擋、暗光、模糊等復(fù)雜情況,引入Retinex算法[4],并通過改進(jìn)VGG-16[5]卷積神經(jīng)網(wǎng)絡(luò)模型,構(gòu)建了一種可適應(yīng)多種類生活垃圾的智能分類模型。
據(jù)《生活垃圾分類標(biāo)志》(GB/T 19095 — 2019),生活垃圾分為4個(gè)大類:可回收物、有害垃圾、廚余垃圾(濕垃圾)和其他垃圾(干垃圾)。目前,還沒有公開的垃圾分類識(shí)別實(shí)驗(yàn)數(shù)據(jù)集。我們研究使用的生活垃圾圖像數(shù)據(jù),主要通過網(wǎng)絡(luò)爬取和攝像機(jī)拍攝2個(gè)途徑獲得。數(shù)據(jù)集中共有77 656張圖片,其中將有害垃圾分為12個(gè)小類,可回收垃圾分為136個(gè)小類,廚余垃圾分為48個(gè)小類,其他垃圾分為47個(gè)小類,共計(jì)243種生活垃圾類別。每張圖片的格式全部處理為JPEG格式。同時(shí),對(duì)獲得的數(shù)據(jù)進(jìn)行標(biāo)記、整理,制作成一個(gè)多種類的生活垃圾圖像數(shù)據(jù)集(見圖1)。
圖1 生活垃圾圖像樣本
在訓(xùn)練集的處理上,采用十折交叉驗(yàn)證(10-fold cross-validation),測(cè)試改進(jìn)模型的準(zhǔn)確性。將77 656張生活垃圾圖片分成均等的10份,對(duì)其編號(hào);輪流將其中的9份作為訓(xùn)練集,1份作為測(cè)試集。每進(jìn)行一輪實(shí)驗(yàn)都會(huì)得到相應(yīng)的正確率,將10次實(shí)驗(yàn)測(cè)得的正確率平均值作為分類模型的精準(zhǔn)度評(píng)價(jià)指標(biāo)。
在驗(yàn)證集的處理上也實(shí)行交叉驗(yàn)證,從10份數(shù)據(jù)集中輪流抽出1份作為驗(yàn)證集,其他9份作為訓(xùn)練集。循環(huán)驗(yàn)證,直到每份都被作為驗(yàn)證集使用過。對(duì)每次訓(xùn)練結(jié)果的精度做精準(zhǔn)記錄,通過計(jì)算精準(zhǔn)度平均值,保留精準(zhǔn)度最高的模型,并將該模型的權(quán)重、超參數(shù)作為最終模型的權(quán)重和超參數(shù)。十折交叉驗(yàn)證過程如圖2所示。
圖2 十折交叉驗(yàn)證劃分
在測(cè)試集的處理上,用了7 059張圖片對(duì)改進(jìn)的VGG-16卷積神經(jīng)網(wǎng)絡(luò)模型分類精準(zhǔn)度進(jìn)行檢測(cè),進(jìn)一步驗(yàn)證模型的準(zhǔn)確率和泛化能力。
為了保證模型檢測(cè)結(jié)果的穩(wěn)定性和準(zhǔn)確性,針對(duì)拍攝采集圖像過程中由于光線、視角等因素導(dǎo)致的陰影遮擋、暗光、模糊等復(fù)雜情況,引入Retinex算法,在圖像動(dòng)態(tài)范圍壓縮、邊緣增強(qiáng)和顏色恒定3個(gè)方面進(jìn)行處理,增強(qiáng)圖像自適應(yīng)性。將照射圖像估計(jì)為空間平滑圖像,以(x,y)為像素點(diǎn)坐標(biāo),原始圖像為S(x,y),輸出圖像為R(x,y),亮度圖像為L(zhǎng)(x,y)。以exp表示指數(shù)函數(shù)。將對(duì)數(shù)域r(x,y)圖像輸出轉(zhuǎn)化為實(shí)數(shù)域R(x,y)圖像輸出。Retinex算法流程如圖3所示。
圖3 Retinex算法流程
由圖3可知,原始圖像、反射圖像、亮度圖像滿足式(1)。
S(x,y)=R(x,y)*L(x,y)
(1)
對(duì)式(1)進(jìn)行兩邊同時(shí)取對(duì)數(shù)變換,得初始圖像對(duì)數(shù)域輸出表達(dá)形式:
(2)
為了對(duì)原始圖像進(jìn)行增強(qiáng)處理,引入中心環(huán)繞函數(shù)F(x,y)即高斯核函數(shù),如式(3)。
(3)
式中:λ為歸一化常數(shù);c是高斯環(huán)繞尺度因子。由于高斯核函數(shù)的二重積分為1,λ滿足式(4)即可。
?F(x,y)dxdy=1
(4)
通過式(3)的高斯核函數(shù)和式(2)中的初始圖像,可得改進(jìn)后的圖像對(duì)數(shù)域和實(shí)數(shù)域輸出形式:
(5)
(6)
式中:R(x,y)為輸出圖像實(shí)數(shù)域形式;K指中心環(huán)繞函數(shù)的個(gè)數(shù),取值為3,意將原始圖像從小、中、大3個(gè)尺度分別對(duì)圖像邊緣細(xì)節(jié)、色彩范圍、平衡色彩進(jìn)行處理;⊕指卷積操作;wk為中心環(huán)繞函數(shù)的權(quán)重系數(shù)。
實(shí)驗(yàn)結(jié)果表明,當(dāng)中心環(huán)繞函數(shù)的權(quán)重系數(shù)w=0.11,高斯環(huán)繞尺度因子c=15時(shí),對(duì)處理圖像暗光環(huán)境有較好的效果;當(dāng)w=0.06,c=80時(shí),對(duì)處理模糊圖像的效果較為明顯;當(dāng)w=0.05,c=120時(shí),對(duì)處理陰影遮擋圖像的效果較好。通過Retinex算法處理陰影遮擋、模糊、暗光圖像的效果如圖4所示。
圖4 以Retinex算法對(duì)圖像的處理效果
在訓(xùn)練過程,利用改進(jìn)后的VGG-16卷積神經(jīng)網(wǎng)絡(luò)對(duì)輸入的生活垃圾圖像特征進(jìn)行提取。通過遷移學(xué)習(xí),利用ImageNet上預(yù)訓(xùn)練的VGG-16模型前4個(gè)卷積塊的權(quán)重參數(shù),初始化本次研究模型的前4個(gè)卷積塊的卷積核大小、卷積核數(shù)量、神經(jīng)元、權(quán)重參數(shù),同時(shí)使用大量生活垃圾圖像數(shù)據(jù)對(duì)模型進(jìn)行訓(xùn)練,更新權(quán)重參數(shù),得到針對(duì)生活垃圾智能分類的最優(yōu)權(quán)重參數(shù)。模型訓(xùn)練過程如圖5所示。
圖5 模型訓(xùn)練過程
在測(cè)試過程中,首先加載訓(xùn)練的最優(yōu)權(quán)重參數(shù),然后將測(cè)試集作為模型輸入,預(yù)測(cè)得到與有害垃圾、廚余垃圾、其他垃圾、可回收垃圾對(duì)應(yīng)的分類結(jié)果。模型測(cè)試過程如圖6所示。
圖6 模型測(cè)試過程
VGG-16卷積神經(jīng)網(wǎng)絡(luò)包含13個(gè)卷積層、5個(gè)卷積塊、1個(gè)池化層、1個(gè)全連接層,通過相互交叉堆疊的方式連接在一起(見圖7)。這樣的方式,既使得網(wǎng)絡(luò)參數(shù)在一定的可控范圍之類,又使得網(wǎng)絡(luò)達(dá)到了一個(gè)較為深層次的深度,提升了網(wǎng)絡(luò)模型針對(duì)圖像分類的準(zhǔn)確度。
圖7 VGG-16卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
現(xiàn)以一張224×224像素的可回收垃圾圖像為例,說明其在VGG-16模型中的處理流程。首先,圖像依次經(jīng)過VGG-16模型的5個(gè)卷積塊,在每個(gè)卷積塊中通過5×5和3×3的卷積核以及2×2池化核進(jìn)行卷積、池化操作,對(duì)其特征進(jìn)行提取。此時(shí),圖像的像素由224×224縮小為7×7。然后,經(jīng)過全連接層將提取到的所有特征圖融合,同時(shí)將第5個(gè)卷積塊池化后的圖像數(shù)據(jù)壓平為一維向量,計(jì)算出分類的評(píng)估值。最后,通過Softmax分類器將全連接層的圖像數(shù)據(jù)進(jìn)行映射,得出圖像類別的概率得分,從而實(shí)現(xiàn)對(duì)圖像的識(shí)別分類。
對(duì)于有4個(gè)大類243個(gè)小類的多種類生活垃圾圖像,為了防止分類模型出現(xiàn)過擬合情況,導(dǎo)致分類準(zhǔn)確率下降,我們對(duì)VGG-16卷積神經(jīng)網(wǎng)絡(luò)的分類交叉熵?fù)p失函數(shù)進(jìn)行了改進(jìn)。原來的損失函數(shù)定義形式如式(7)。
(7)
式中:Lorg表示分類交叉熵?fù)p失函數(shù);N代表樣本總數(shù);αnm為標(biāo)注真實(shí)值的第n個(gè)樣本的第m個(gè)屬性的值,采用one-hot編碼;ynm是網(wǎng)絡(luò)預(yù)測(cè)值第n個(gè)樣本的第m個(gè)屬性值;i表示樣本上限值;j表示樣本屬性上限值。
為了增強(qiáng)模型泛化性能,防止模型出現(xiàn)過擬合的情況,引入L1正則化和L2正則化,構(gòu)建針對(duì)生活垃圾分類的新?lián)p失函數(shù)。
僅使用L1正則化構(gòu)造損失函數(shù),即是在原損失函數(shù)后面加上一個(gè)L1正則化項(xiàng),如式(8)。僅使用L2正則化構(gòu)造損失函數(shù),即是在后面加上一個(gè)L2正則化項(xiàng),如式(9)。
(8)
(9)
式中:β是損失函數(shù)和正則項(xiàng)之間的調(diào)節(jié)系數(shù);n為模型訓(xùn)練集的樣本數(shù)量;δ為模型的所有權(quán)重參數(shù)。
從公式上看,僅使用L1正則化構(gòu)建的損失函數(shù),為了保證損失函數(shù)快速收斂,是對(duì)所有的權(quán)重參數(shù)給予相同的懲罰力度,將導(dǎo)致趨于0的權(quán)重參數(shù)在被懲罰時(shí)變成0;僅使用L2正則化構(gòu)建的損失函數(shù),是對(duì)權(quán)重參數(shù)較大的給予了很大的懲罰力度,而對(duì)權(quán)重參數(shù)較小的給予很小的懲罰力度,將導(dǎo)致趨于0的權(quán)重參數(shù)不被懲罰。為提高模型分類精準(zhǔn)率,防止模型過擬合,對(duì)式(7)的損失函數(shù)Lorg進(jìn)行改進(jìn),提出新的分類交叉熵?fù)p失函數(shù)Lnew。
(10)
(11)
(12)
在改進(jìn)后的損失函數(shù)中,如果p=0,則退化為L(zhǎng)2正則化;如果p=1,則退化為L(zhǎng)1正則化。測(cè)試表明,當(dāng)t=0.76,p=0.54時(shí),能夠同時(shí)兼顧L1和L2正則化,降低模型的過擬合,提高分類精準(zhǔn)率。
在模型訓(xùn)練過程中,有很多訓(xùn)練的圖像數(shù)據(jù)特征具有共線性,它們對(duì)于分類來說都非常重要。而L1正則化隨機(jī)提取其中一個(gè)特征,丟棄其他特征;L2正則化只是在圖像特征呈現(xiàn)高斯分布時(shí)進(jìn)行均值選擇。因此,通過實(shí)驗(yàn)對(duì)比,我們?cè)谠紦p失函數(shù)Lorg上,先引入L1正則化進(jìn)行特征選擇,再引入L2正則化處理共線性的圖像特征。通過這種級(jí)聯(lián)的方式,將其權(quán)值平分給各種圖像特征,保留有用的圖像特征,從而防止模型出現(xiàn)過擬合情況,提升模型準(zhǔn)確率和泛化性能。
為避免實(shí)驗(yàn)環(huán)境因素造成分類模型效果的差異,所有對(duì)比實(shí)驗(yàn)均在相同的軟硬件配置條件下進(jìn)行:采用Windows10系統(tǒng),顯卡為GeForce GTX 1650 with Max-Q,開發(fā)環(huán)境為Pycharm2020、Python3.7,深度學(xué)習(xí)框架為Tensorflow2.0,圖像加速器為CUDA10.0/CUDNN7.6.5。
為了驗(yàn)證設(shè)計(jì)的垃圾圖像分類方法的分類效果,將數(shù)據(jù)增強(qiáng)前后、損失函數(shù)修改前后與原VGG-16模型的準(zhǔn)確率和損失值進(jìn)行對(duì)比。分類模型評(píng)估結(jié)果如表1所示。
表1 分類模型評(píng)估結(jié)果
使用原VGG-16網(wǎng)絡(luò)模型對(duì)垃圾圖像進(jìn)行分類,準(zhǔn)確率為94.43%,損失值為0.53;引入Retinex算法,對(duì)圖像進(jìn)行增強(qiáng)處理后,準(zhǔn)確率為95.56%,提升了1.13個(gè)百分點(diǎn)。在損失函數(shù)中加入L1或者L2正則化后,分類準(zhǔn)確率較原網(wǎng)絡(luò)模型有較小幅度的提升。采用改進(jìn)后的交叉熵?fù)p失函數(shù)之后,分類準(zhǔn)確率達(dá)97.67%,較原網(wǎng)絡(luò)模型在圖像數(shù)據(jù)增強(qiáng)后的準(zhǔn)確率又提升了2.11個(gè)百分點(diǎn);損失值為0.18,也下降了一半。通過引入數(shù)據(jù)增強(qiáng)算法和改進(jìn)損失函數(shù),模型防止了過擬合情況,提升了泛化性能和分類準(zhǔn)確率。
在生活垃圾分類中,采集的垃圾圖像難免存在模糊不清、暗光蔭蔽、陰影遮擋等情況。采用基于深度學(xué)習(xí)的VGG-16卷積神經(jīng)網(wǎng)絡(luò)模型對(duì)垃圾圖像進(jìn)行識(shí)別分類,可以取得較高的準(zhǔn)確率,但該模型原用的交叉熵?fù)p失函數(shù)會(huì)導(dǎo)致模型過擬合,降低了模型性能。針對(duì)垃圾圖像數(shù)據(jù)的多樣性,引入Retinex算法,對(duì)存在遮擋、暗光、模糊問題的圖像進(jìn)行增強(qiáng)處理;同時(shí)改進(jìn)損失函數(shù),加入正則化項(xiàng),提升了模型在垃圾圖像檢測(cè)分類上的準(zhǔn)確率和泛化性能。