桑一梅 陸萍
摘要:垃圾分類已經(jīng)成為當(dāng)前社會(huì)生活的新風(fēng)尚。本論述針對(duì)當(dāng)前垃圾分類工作環(huán)境差和容易分類出錯(cuò)的問(wèn)題,研究基于深度學(xué)習(xí)的垃圾自動(dòng)分類方法,并設(shè)計(jì)基于深度殘差卷積神經(jīng)網(wǎng)絡(luò)ResNet50的垃圾識(shí)別方法。為避免垃圾圖像數(shù)據(jù)集中訓(xùn)練數(shù)據(jù)量的不足,采用對(duì)使用ImageNet訓(xùn)練好的ResNet50模型進(jìn)行遷移微調(diào)的方法來(lái)優(yōu)化網(wǎng)絡(luò)參數(shù)。在華為云垃圾圖像數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,該方案可以到94%左右的分類準(zhǔn)確率,基本上能夠滿足城市生活垃圾自動(dòng)分類的需求。
關(guān)鍵詞:深度學(xué)習(xí);卷積神經(jīng)網(wǎng)絡(luò);遷移學(xué)習(xí);圖像識(shí)別;垃圾分類
中圖分類號(hào):TP391.4??????????? 文獻(xiàn)標(biāo)志碼:A
0引言
伴隨我國(guó)城市化發(fā)展的不斷深入與人民生活水平的提高,城市生活垃圾的產(chǎn)生量急劇增加,成為環(huán)境治理刻不容緩的問(wèn)題。在對(duì)生活垃圾的處理上,傳統(tǒng)的填埋與焚燒處理存在著占用土地、污染地下水、排放廢氣等問(wèn)題,而且處理能力有限。事實(shí)上,生活垃圾中絕大部分是可以通過(guò)分類回收實(shí)現(xiàn)循環(huán)利用的。為此我國(guó)已在各大城市推行垃圾分類制度,通過(guò)合理的分類投放從源頭上減少生活垃圾數(shù)量,促進(jìn)資源回收利用。
盡管目前各大城市推行垃圾分類已有一段時(shí)間,但總體收效仍有待提升。其中的原因一方面是人們長(zhǎng)久以來(lái)的不分類習(xí)慣,在短時(shí)間內(nèi)很難徹底改變。另一方面在于各城市制定的垃圾分類規(guī)則比較復(fù)雜,市民在投放垃圾時(shí)難以準(zhǔn)確地進(jìn)行分類投放。比如作為我國(guó)首個(gè)推行垃圾分類試點(diǎn)的上海,人們普遍認(rèn)為分類規(guī)則過(guò)于復(fù)雜。
近年來(lái),以深度學(xué)習(xí)為代表的人工智能技術(shù)迅速發(fā)展,已滲透到各行各業(yè)之中。如何利用人工智能技術(shù)高效地進(jìn)行垃圾自動(dòng)化分類,利用現(xiàn)代科技更好地服務(wù)人類生活,成為人們關(guān)心的話題。借助深度學(xué)習(xí)技術(shù)開(kāi)發(fā)智能垃圾分類系統(tǒng)也因此引起了人們廣泛的研究興趣[1~3]。
本論述借助深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)了基于垃圾圖像識(shí)別的智能分類系統(tǒng),使用華為云垃圾圖像分類競(jìng)賽[4]數(shù)據(jù)集作為訓(xùn)練與評(píng)估數(shù)據(jù)。為避免模型訓(xùn)練時(shí)數(shù)據(jù)量不足的問(wèn)題,采用遷移學(xué)習(xí)方法對(duì)在ImageNet[5]上訓(xùn)練好的模型進(jìn)行微調(diào)優(yōu)化的方法。實(shí)驗(yàn)結(jié)果表明本論述方法能夠達(dá)到94%左右的正確識(shí)別率,能夠基本滿足當(dāng)前生活垃圾的自動(dòng)分類需求。
1相關(guān)研究
使用深度學(xué)習(xí)方法對(duì)圖像中的垃圾進(jìn)行自動(dòng)識(shí)別是機(jī)器學(xué)習(xí)中一項(xiàng)典型的分類任務(wù),在該任務(wù)中應(yīng)用最為廣泛的是卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Net? works,CNN)架構(gòu)。在 CNN 中通過(guò)多層卷積(Convolution)、池化(Pooling)、批歸一化(Batch Normalization)、非線性激活運(yùn)算的堆疊,能夠從圖像中自動(dòng)提取具有判別性的特征表達(dá)。隨著網(wǎng)絡(luò)層次的加深,提取的特征就會(huì)更抽象,更具有語(yǔ)義信息,相應(yīng)地識(shí)別能力也會(huì)越強(qiáng)。不過(guò)更深的網(wǎng)絡(luò)也需要使用更多的訓(xùn)練數(shù)據(jù)來(lái)學(xué)習(xí)模型參數(shù)。自2012年AlexNet[6]網(wǎng)絡(luò)架構(gòu)提出并在當(dāng)前的ImageNet 圖像識(shí)別競(jìng)賽上取得成功后,其他層次更深、性能更強(qiáng)的CNN 網(wǎng)絡(luò)架構(gòu)陸續(xù)被設(shè)計(jì)出來(lái),如 VGG[7]、GoogLeNet[8]、ResNet[9]、DenseNet[10]等,這些網(wǎng)絡(luò)架構(gòu)目前已經(jīng)成為圖像識(shí)別與視頻分析等計(jì)算機(jī)視覺(jué)任務(wù)的骨干模型。
在使用VGG 與 ResNet 等網(wǎng)絡(luò)架構(gòu)作為其他計(jì)算機(jī)視覺(jué)任務(wù)的骨干模型時(shí),如果從頭開(kāi)始訓(xùn)練網(wǎng)絡(luò)模型對(duì)于硬件條件要求比較高,而且也需要比較長(zhǎng)的訓(xùn)練時(shí)間。由于實(shí)際使用時(shí)的數(shù)據(jù)集大小一般都比較小,難以支撐起這些模型的訓(xùn)練,因此一般會(huì)采用在 ImageNet數(shù)據(jù)集上訓(xùn)練好的參數(shù)作為模型初始狀態(tài)。 ImageNet 圖像數(shù)據(jù)集作為當(dāng)前最大的圖像識(shí)別數(shù)據(jù)集,其中包含有2.2萬(wàn)個(gè)類別的約1500萬(wàn)張圖片,這使得在該數(shù)據(jù)集上訓(xùn)練后的CNN 網(wǎng)絡(luò)能夠識(shí)別現(xiàn)實(shí)世界中絕大多數(shù)的目標(biāo)。為了讓這些骨干模型擁有更好的性能,可以使用當(dāng)前任務(wù)的數(shù)據(jù)對(duì)ImageNet上訓(xùn)練好的模型參數(shù)進(jìn)行微調(diào)優(yōu)化。這種處理也被稱為遷移學(xué)習(xí),它使得模型在其他數(shù)據(jù)集上學(xué)習(xí)到的知識(shí)能夠在新的環(huán)境中得到應(yīng)用。
2基于ResNet 遷移學(xué)習(xí)的垃圾分類模型
針對(duì)垃圾圖像的分類與識(shí)別任務(wù),本論述選用當(dāng)前在計(jì)算機(jī)視覺(jué)任務(wù)中獲得廣泛應(yīng)用的ResNet 網(wǎng)絡(luò)架構(gòu)作為分類模型的骨干網(wǎng)絡(luò)。為進(jìn)一步提升模型對(duì)不同垃圾圖像的識(shí)別性能,本論述設(shè)計(jì)多分枝的分類架構(gòu),并借助遷移學(xué)習(xí)來(lái)解決訓(xùn)練數(shù)據(jù)不足的問(wèn)題。 2.1 ResNet 殘差網(wǎng)絡(luò)
在深度網(wǎng)絡(luò)架構(gòu)中,隨著網(wǎng)絡(luò)層數(shù)的加深,極易發(fā)生梯度消失或梯度爆炸問(wèn)題,使得網(wǎng)絡(luò)在優(yōu)化時(shí)變得非常困難。在梯度消失或梯度爆炸時(shí),只有靠近損失函數(shù)比較近的一些層才能有效的學(xué)習(xí),而較深層的參數(shù)很難進(jìn)行更新。在ResNet 網(wǎng)絡(luò)中引入了“殘差”的概念來(lái)解決這一問(wèn)題,設(shè)計(jì)短路連接Block如圖1所示。這樣的短路使得整體網(wǎng)絡(luò)具有至少不弱于恒等變換的性能,有效地抑制了網(wǎng)絡(luò)層次加深時(shí)的梯度消失問(wèn)題。
圖1ResNet短路連接Block 中,輸入 x 在經(jīng)過(guò)兩層的weight layer進(jìn)行 F(x)運(yùn)算后,需要加上原始的輸入 x ,實(shí)現(xiàn)對(duì)初始輸入信號(hào)的復(fù)用,也即為恒等映射(ide? ntity mapping),然后再經(jīng)過(guò)ReLU激活。這樣的處理使得經(jīng)網(wǎng)絡(luò)處理的結(jié)果由 F(x)變?yōu)?F(x)+x ,也就使得網(wǎng)絡(luò)具有不弱于恒等變換的性能,并且有效地解決了網(wǎng)絡(luò)中的梯度消失或爆炸問(wèn)題。通過(guò)堆疊如圖1所示的短路模塊,能夠使得網(wǎng)絡(luò)在達(dá)到上百層后仍能夠有效的學(xué)習(xí)。
2.2多分枝垃圾圖像分類模型
由于ResNet具有優(yōu)秀的性能,本論述將其選用為垃圾圖像分類的骨干網(wǎng)絡(luò),但是ResNet僅提取了圖像的全局特征,圖像中背景噪聲會(huì)對(duì)分類性能帶來(lái)一定的干擾。為提升模型的識(shí)別性能,本論述設(shè)計(jì)多分支圖像分類模型如圖2所示。5F205054-FABA-472C-BF81-EB31AFBEB609
多分支垃圾圖像分類模型中采用ResNet對(duì)縮放到統(tǒng)一大小后的垃圾圖像進(jìn)行特征的提取。每張垃圾圖像提取后的圖像為一個(gè)h×w×c 的特征張量,其中h 、 w 、c 分別為特征張量的高、寬與通道數(shù)。與一般的圖像識(shí)別模型不同的是,本論述模型對(duì)提取的特征張量采用不同尺度與不同方案的池化處理操作,使得提取的特征張量得到最大程度的利用,充分挖掘其中的判別信息來(lái)進(jìn)行分類處理。
在深度卷積神經(jīng)網(wǎng)絡(luò)中 GAP 與 GMP 為全局平均池化(Global Average Pooling)與全局最大池化(Global Max Pooling)是最為常用的降低特征張量尺度的運(yùn)算,它們能夠有效地匯聚特征信息,提高感受野并降低運(yùn)算量。采用兩種池化運(yùn)算的原因是GAP在池化運(yùn)算中能夠更好地保留特征中的空間信息,特別是在采用最為常用的步長(zhǎng)為2、尺寸為2的設(shè)置時(shí),GAP運(yùn)算后的每個(gè)點(diǎn)即原四個(gè)像素的平均值,這就很好地保留了原始的空間信息。而GMP在相同的設(shè)置下獲得的是四個(gè)原始像素的最為顯著的信息,但是通常GMP能夠獲得比GAP更為優(yōu)秀的性能。
為將GAP與GMP兩者各自的優(yōu)勢(shì)結(jié)合起來(lái),在本論述多分支垃圾圖像識(shí)別模型中,對(duì)由ResNet提取的特征張量采用GAP、GMP與GAP-2、GMP-2四種不同的池化處理,再進(jìn)行特征張量相加的方案。其中GAP與 GMP為自適應(yīng)輸出尺寸的池化運(yùn)算,最終輸出的結(jié)果為1×1× c 的特征張量,對(duì)它們各自運(yùn)算后的結(jié)果再按元素相加,從而綜合利用兩者的處理優(yōu)勢(shì)。圖2中的 GAP-2與 GMP-2為輸出結(jié)果為2×2×c 的特征張量,這樣的處理能夠更為精細(xì)地保留圖像的細(xì)節(jié)特征,不過(guò)特征的維度要比GAP與GMP運(yùn)算后的結(jié)果更高一些。
在獲得兩組不同的特征后,模型中將進(jìn)一步對(duì)它們作變形處理獲得 c 維與4c 維度的特征向量,再經(jīng)過(guò) Dropout層與全連接層獲得最終的特征表達(dá)。最后對(duì)兩個(gè)特征向量分別使用Softmax 映射的處理來(lái)輸出各自的最終識(shí)別結(jié)果。在訓(xùn)練模型時(shí)也相應(yīng)的采用了交叉熵分類損失函數(shù)來(lái)對(duì)模型進(jìn)行聯(lián)合訓(xùn)練,總的損失值取為兩個(gè)分支的損失之和。
2.3模型遷移訓(xùn)練
遷移學(xué)習(xí)是機(jī)器學(xué)習(xí)中一種常用的知識(shí)轉(zhuǎn)移方法,它可以將在某一任務(wù)中學(xué)習(xí)到知識(shí)或經(jīng)驗(yàn)應(yīng)用到其他場(chǎng)景中,避免從頭學(xué)習(xí)所帶來(lái)時(shí)間消耗與硬件代價(jià)。由于在大多數(shù)情況下,用于訓(xùn)練模型的數(shù)據(jù)量都比較少,完全從隨機(jī)初始化的模型開(kāi)始訓(xùn)練會(huì)導(dǎo)致過(guò)擬合,無(wú)法學(xué)習(xí)到當(dāng)前任務(wù)中數(shù)據(jù)的內(nèi)在模式。在這種情況下,遷移學(xué)習(xí)可以很好地解決該矛盾。利用已經(jīng)在其他任務(wù)中訓(xùn)練后的模型參數(shù)作為初始狀態(tài),再利用當(dāng)前任務(wù)中的數(shù)據(jù)對(duì)模型參數(shù)進(jìn)行微調(diào),既可以利用原有的知識(shí)經(jīng)驗(yàn),又可以獲得對(duì)當(dāng)前任務(wù)數(shù)據(jù)的擬合。
在本論述設(shè)計(jì)的垃圾分類模型中,也采用了遷移學(xué)習(xí)方法來(lái)解決訓(xùn)練數(shù)據(jù)量有限的問(wèn)題。模型采用了在ImageNet上訓(xùn)練好的ResNet50模型參數(shù)作為初始狀態(tài),在訓(xùn)練時(shí)采用了分兩階段優(yōu)化的方案。首先是固定ResNet50的Layer1~Layer4各模塊的參數(shù),對(duì)各分支進(jìn)行優(yōu)化處理;然后再將整體網(wǎng)絡(luò)全部打開(kāi),進(jìn)行整體微調(diào)。
3實(shí)驗(yàn)
實(shí)驗(yàn)使用的垃圾圖像為華為垃圾分類大賽中提供的Garbage-classify數(shù)據(jù)集。該數(shù)據(jù)集中的圖像均已提供垃圾名稱與所屬類別,原始類別數(shù)為43。根據(jù)比賽規(guī)則這些類別又被進(jìn)一步歸為4個(gè)類別:可回收物、廚余垃圾、有害垃圾、其他垃圾。數(shù)據(jù)集中的訓(xùn)練集含有14000多張圖像。在實(shí)驗(yàn)時(shí)這些圖像被統(tǒng)一縮放到224×224像素大小,并使用隨機(jī)裁剪與圖像標(biāo)準(zhǔn)化等方法進(jìn)行數(shù)據(jù)擴(kuò)增處理。由于華為垃圾分類比賽無(wú)法獲得測(cè)試數(shù)據(jù)集,因此采用對(duì)訓(xùn)練集作4:1的隨機(jī)拆分,即4/5數(shù)據(jù)用于訓(xùn)練,1/5數(shù)據(jù)用于驗(yàn)證模型的性能。實(shí)驗(yàn)時(shí)采用最終類別為43類的設(shè)置,即網(wǎng)絡(luò)的輸出層為43維的預(yù)測(cè)向量,再進(jìn)一步根據(jù)規(guī)則詞典輸出垃圾分類結(jié)果。
實(shí)驗(yàn)在Ubuntu20.04系統(tǒng)中采用PyTorch深度學(xué)習(xí)框架構(gòu)建垃圾分類模型,并使用Nvidia GTX1080+GU? DA 進(jìn)行硬件加速,使用的處理器為 Intel(R)CoreTM i7-6700@3.4GHZ。在訓(xùn)練模型時(shí)使用學(xué)習(xí)率為0.001的SGD優(yōu)化器,訓(xùn)練階段的每個(gè)批次中樣本數(shù)設(shè)置為32,迭代的epoch總數(shù)為80。
實(shí)驗(yàn)對(duì)模型采用 GAP 與 GMP后的單分枝模型與本論述多分枝模型獲得的分類準(zhǔn)確率進(jìn)行對(duì)比,并把模型輸出43個(gè)類別再按規(guī)則分類4類的結(jié)果與模型直接預(yù)測(cè)4類的結(jié)果也作了對(duì)比,具體結(jié)果見(jiàn)表1所列。從結(jié)果可以看出采用先預(yù)測(cè)原始類別再按規(guī)則分類時(shí),使用GAP與GMP單分支結(jié)構(gòu)的預(yù)測(cè)準(zhǔn)確率分別為92.12%與92.73%,已經(jīng)具有比較好的性能。在使用本論述的多分支架構(gòu)后準(zhǔn)確率上升到94.36%,說(shuō)明多分支架構(gòu)所帶來(lái)的性能提升。在直接預(yù)測(cè)4個(gè)類別時(shí),各模型的性能整體上要弱于先預(yù)測(cè)原始類別再按規(guī)則進(jìn)行分類的結(jié)果。本論述認(rèn)為這可能是按4個(gè)類別預(yù)測(cè)時(shí),每個(gè)類別內(nèi)數(shù)據(jù)差異太大的結(jié)果。比如“筷子”與“花盆”同屬于其他垃圾,兩者間的特征差異太大,直接將它們歸為同一類處理時(shí)模型內(nèi)部參數(shù)顯然會(huì)比將兩個(gè)類別分開(kāi)預(yù)測(cè)時(shí)要更為困難。
4 總結(jié)
本論述提出一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的垃圾自動(dòng)系統(tǒng)模型,在使用ResNet50殘差網(wǎng)絡(luò)作為骨干網(wǎng)絡(luò)的基礎(chǔ)上設(shè)計(jì)多分支的垃圾圖像分類網(wǎng)絡(luò)結(jié)構(gòu),并借助了遷移學(xué)習(xí)方法來(lái)解決訓(xùn)練數(shù)據(jù)不足的問(wèn)題。本論述設(shè)計(jì)的模型在華為云垃圾分類數(shù)據(jù)集上取得了94.36%的分類準(zhǔn)確率,基本能夠達(dá)到現(xiàn)實(shí)中的分類需求。在后續(xù)工作中將進(jìn)一步考慮引入注意力機(jī)制來(lái)提升模型性能,或嘗試實(shí)現(xiàn)基于視頻檢測(cè)的自動(dòng)分類系統(tǒng),增強(qiáng)模型在復(fù)雜場(chǎng)景中的適用性。
參考文獻(xiàn):
[1]袁建野,南新元,蔡鑫,等. 基于輕量級(jí)殘差網(wǎng)路的垃圾圖片分類方法[J].環(huán)境工程,2021,39(2):110-115.5F205054-FABA-472C-BF81-EB31AFBEB609
[2]董子源,韓衛(wèi)光. 基于卷積神經(jīng)網(wǎng)絡(luò)的垃圾圖像分類算法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2020,29(8):199-204.
[3] Adedeji O,Wang Z. Intelligent waste classification system us?ing deep learning convolutional neural network[J]. ProcediaManufacturing,2019(35):607-612.
[4]華為云大賽平臺(tái)[EB/OL]. https://competition.huaweicloud.com/home.
[5] Deng J,Dong W,Socher R,et al. ImageNet:a large-scale hi?erarchical image database[C]// Proceedings of the IEEE con?ference on Computer Vision and Pattern Recognition. 2009:248-255.
[6] Krizhevsky A,Sutskever I,Hinton G. ImageNet Classificationwith Deep Convolutional Neural Networks[J].Advances inneural information processing systems,2012,25(2):1-9.
[7] Simonyan K,Zisserman A.Very Deep Convolutional Networksfor Large- Scale Image Recognition[J]. CoRR,2014,abs/1409.1556.
[8] Szegedy C,Liu W,Jia Y,et al. Going Deeper with Convolu?tions[C]// Proceedings of the IEEE conference on ComputerVision and Pattern Recognition. 2015:1-9.
[9] He K,Zhang X,Ren S,et al. Deep residual learning forimagerecognition[C]// Proceedings of the IEEE conference on Com?puter Vision and Pattern Recognition. 2016:770-778.
[10] Huang G,Liu Z,Van Der Maaten L,et al. Densely connect?ed convolutional networks[C]//Proceedings of the IEEE con?ference on Computer Vision and Pattern Recognition. 2017:4700-4708.5F205054-FABA-472C-BF81-EB31AFBEB609