張國有,高 希
(太原科技大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,山西 太原 030024)
隨著中國經(jīng)濟(jì)的高速發(fā)展,城市生活垃圾產(chǎn)量逐年升高。根據(jù)國內(nèi)統(tǒng)計年鑒數(shù)據(jù),城市生活垃圾清運(yùn)量從2003年的14 856.5萬噸[1]增加到2021年的23 511.7萬噸[2],平均每年相較2003年增長3.64%。垃圾分類已在國內(nèi)全面展開,目前需要解決的主要問題是人們生產(chǎn)和生活中產(chǎn)生各種各樣的垃圾,人們有時候是很難準(zhǔn)確判斷出其所屬的種類。按照2017年發(fā)布的《生活垃圾分類制度方案》,垃圾主要分為“以塑料、金屬制品為主的可回收垃圾;以瓜果蔬菜食物為主的廚余垃圾;以過期藥品和廢棄電子產(chǎn)品為主的有害垃圾;以建筑垃圾為主的其他垃圾”四大類,此分類標(biāo)準(zhǔn)符合中國國情,能夠切實地落地實施。
相較于傳統(tǒng)的圖像分類任務(wù),以落地于實際工程應(yīng)用為目的的垃圾分類,不僅需要達(dá)到高準(zhǔn)確率、實時性快的特點,而且還需要具備從多種多樣的垃圾圖像中提取顯著語義特征,以應(yīng)對生活場景中多種的垃圾類別。近年來,多位研究學(xué)者對垃圾分類的細(xì)粒度圖像分類問題展開了研究,并提供了新思路。趙冬娥等[3]利用SAM判別方法在可回收垃圾的高光譜圖像中實現(xiàn)檢測與分類,取得了更高的分類準(zhǔn)確度,可達(dá)到99.33%。高明等[4]針對垃圾分類中類別易混淆、背景干擾等挑戰(zhàn),提出一種新型的像素級空間注意力機(jī)制PSATT(pixel-level spatial attention)。薛麗霞等[5]提出一種基于卷積神經(jīng)網(wǎng)絡(luò)并融合注意力機(jī)制和語義關(guān)聯(lián)性的多標(biāo)簽圖像分類方法,可以有效地學(xué)習(xí)標(biāo)簽之間語義關(guān)聯(lián)性,并提升多標(biāo)簽圖像分類效果。馬雯等[6]針對人工分揀垃圾環(huán)境差、任務(wù)繁重且分揀效率低的問題 ,基于現(xiàn)有深度卷積神經(jīng)網(wǎng)絡(luò)模型,提出改進(jìn)的Faster R-CNN目標(biāo)檢測模型與VGG16及ResNet50卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合的方法,與傳統(tǒng)Faster R-CNN算法相比,該方法平均精確度提高8.26百分點,綜合識別率達(dá)到81.77%,且能夠減少圖像處理時間。Seredkin等[7]開發(fā)了一種基于Fast R-CNN[8]在傳送帶上檢測和分類廢物的方法,使得神經(jīng)網(wǎng)絡(luò)模型的平均精度為64%。Yang M等[9]使用具有尺度不變特征變換的支持向量機(jī)和卷積神經(jīng)網(wǎng)絡(luò)。實驗表明:支持向量機(jī)的性能優(yōu)于CNN,由于難以找到最佳超參數(shù),CNN并未得到充分訓(xùn)練。
現(xiàn)有的垃圾圖像分類方法,其運(yùn)算準(zhǔn)確度能達(dá)到90%以上,但在實際應(yīng)用環(huán)境中,模型往往不能直接搭建在現(xiàn)有設(shè)備,例如:樹莓派開發(fā)板、單片機(jī)等。造成的主要原因有:模型在算力較好的GPU等設(shè)備中訓(xùn)練,與實際應(yīng)用環(huán)境計算能力相差甚遠(yuǎn),增加模型參數(shù)量雖然能夠提升準(zhǔn)確率,但是其模型大小遠(yuǎn)超應(yīng)用設(shè)備可用內(nèi)存。針對以上問題,該文以ShuffleNet V2[10]網(wǎng)絡(luò)為基礎(chǔ)進(jìn)行改進(jìn),引入SE模塊和最大公約數(shù)分組卷機(jī)方法,從而減少算法運(yùn)行時間,提升算法性能。主要貢獻(xiàn)有:
(1)在ShuffleNet V2網(wǎng)絡(luò)的基礎(chǔ)上,重新設(shè)計網(wǎng)絡(luò)單元結(jié)構(gòu),以適應(yīng)網(wǎng)絡(luò)能夠在樹莓派等算力小的開發(fā)板上低延時運(yùn)行。
(2)在網(wǎng)絡(luò)中引入SE模塊[11](Squeeze-and-Excitation),通過自適應(yīng)評估網(wǎng)絡(luò)單元處理后的每個通道信息,獲取相應(yīng)通道的相應(yīng)權(quán)重因子,從而強(qiáng)化重要特征層的信息。
(3)針對多級分類問題,一方面在網(wǎng)絡(luò)末端連續(xù)拼接214、4個節(jié)點的全連接層。另一方面,在損失計算和準(zhǔn)確率計算中針對多級分類,引入損失權(quán)重和準(zhǔn)確率權(quán)重,提升模型對多級分類任務(wù)的適應(yīng)能力。
深度可分離卷積,是將傳統(tǒng)的三維卷積核分解為一個逐通道處理的二維卷積(Depthwise Convolution)完成空間相關(guān)性的映射操作,和一個跨通道的1×1大小的三維普通卷積核,即逐點卷積(Pointwise Convolution)來增強(qiáng)特征提取,完成跨通道相關(guān)性的映射操作。逐通道卷積是完全在二維平面內(nèi)進(jìn)行的卷積操作,那么就必須要保證卷積核的數(shù)量和輸入特征矩陣的通道數(shù)相同,如此能夠完成映射跨通道相關(guān)性任務(wù)。而普通1×1大小的三維卷積的卷積核和輸入特征圖具有相同的通道數(shù),既保證了不同通道之間的跨通道映射,還能夠以增加卷積核個數(shù)的方式為不同通道增加跨通道映射的可能性。
假設(shè),輸入特征圖分辨率為Ii×Ii,卷積核尺寸為Ck×Ck,k為卷積核在寬、高維度包含的權(quán)值數(shù)量,輸入通道為P,輸出通道為Q。普通的三維卷積經(jīng)過一次卷積操作后,產(chǎn)生的參數(shù)量為W1,計算量為WFLOPs1,如式(1)、(2)所示:
W1=Ck×Ck×P×Q
(1)
WFLOPs1=Ck×Ck×P×Q×Ii×Ii
(2)
深度可分離卷積產(chǎn)生的參數(shù)量為W2,計算量為WFLOPs2,如式(3)、(4)所示:
W2=Ck×Ck×1×P+1×1×P×Q
(3)
WFLOPs2=Ck×Ck×1×P×Ii×Ii+1×1×P×Q×Ii×Ii
(4)
相同大小卷積核的深度可分離卷積和普通卷積,在參數(shù)量方面的比值為W,在計算量方面的比值為WFLOPs,其計算如式(5)所示:
(5)
當(dāng)卷積核為3×3×64時,輸入特征圖通道和輸出特征圖通道均為64,則傳統(tǒng)普通的三維卷積的參數(shù)量為36 864,而深度可分離卷積的參數(shù)量為4 672,在不考慮偏置的情況下同比縮減為原來的12.7%。經(jīng)過分析對比可知,采用深度可分離卷積,在輕量化網(wǎng)絡(luò)方面相較于傳統(tǒng)卷積網(wǎng)絡(luò)能夠大幅降低運(yùn)算復(fù)雜度。
深度可分離卷積中的Depthwise Convolution是一種特殊的分組卷積,即:輸入特征矩陣通道數(shù)、卷積核個數(shù)、輸出特征矩陣通道數(shù)相等的分組卷積。
分組卷積最早出現(xiàn)在AlexNet[12]中,分組卷積和普通卷積過程的不同在于:分組卷積對輸入特征矩陣和卷積核進(jìn)行了分組,卷積核只與相同分組的輸入特征矩陣進(jìn)行卷積操作,不同組之間不進(jìn)行信息融合。相較于普通卷積在所有的輸入特征圖上做卷積運(yùn)算,屬于通道密集連接方式(channel dense connection),而組卷積則是一種通道稀疏連接方式(channel sparse connection),類似于全連接層之后的隨機(jī)失活(dropout)。使用分組卷積的網(wǎng)絡(luò)如Xception[13]、MobileNet V3[14]、ResNeXt[15]等。其中,Xception和MobileNet采用了深度可分離卷積。在卷積操作過程中,分組卷積和普通卷積參數(shù)量WGC、WCC,如式(6)、(7)所示:
(6)
WCC=Ck×Ck×P×Q
(7)
其中,Q表示分組卷積和普通卷積生成相同尺寸特征矩陣的深度,G表示輸入特征在分組卷積運(yùn)算的channel維度的分組數(shù)量,且其值必為輸入特征和輸出特征的公約數(shù)。
通過對比公式(6)、(7),分組卷積在參數(shù)量方面僅僅是普通卷積的1/G,在計算量方面大幅降低,AlexNet指出在網(wǎng)絡(luò)結(jié)構(gòu)中用分組的卷積操作,增加filter之間的對角相關(guān)性,降低過擬合的風(fēng)險,具有正則化的效果。但是,分組卷積相對于普通卷積還存在一定的不足:大量的分組卷積在網(wǎng)絡(luò)中疊加,受限于分組方式,只有屬于相同組的特征層才能進(jìn)行“信息交流”,不同組之間的特征層在網(wǎng)絡(luò)傳遞過程中始終保持閉塞狀態(tài),降低了網(wǎng)絡(luò)結(jié)果在最終輸出方面涵蓋不同特征層之間信息表達(dá)的可能性。
為提高不同特征層之間信息交流的目的,ShuffleNetV1中使用通道混洗的方式,能夠在不增加網(wǎng)絡(luò)參數(shù)量的情況下完成不同特征層之間的信息交流。通道混洗能夠完成不同特征層之間的信息交流,且相較于使用逐點卷積,具有不增加網(wǎng)絡(luò)參數(shù)量的優(yōu)點。其操作流程是在組卷積運(yùn)算完成之后,將不同分組特征層內(nèi)部重新分組成與組卷積相同分組數(shù)的內(nèi)部分組,將不同分組特征層中的內(nèi)部分組特征層按照順序依次抽取,即可獲得通道混洗后的特征矩陣。
圖1(a)、(b)是ShuffleNet V1網(wǎng)絡(luò)的兩個主要基本單元。在ShuffleNet V1單元(a)中,輸入特征經(jīng)過兩條支路,其中右側(cè)分支進(jìn)行了2次1×1逐點卷積、1次3×3深度可分離卷積以及以此通道混洗操作。而左側(cè)支路則不對輸入特征進(jìn)行任何操作,最終兩條支路特征相加、激活,得到最終的輸出特征。單元(a)針對輸入特征和輸出特征維度相同的情況,而單元(b)的右側(cè)支路采用了和單元(a)基本相同的操作,左側(cè)采用了3×3大小、步距為2的平均池化操作。最終,將兩側(cè)支路的輸出特征在channel維度拼接在一起,得到寬高減半、深度加倍的特征矩陣。
圖1 ShuffleNet單元
ShuffleNet V2網(wǎng)絡(luò)則主要由兩個單多次疊加完成,如圖1(c)、(d)。在ShuffleNet V2單元(c)中,輸入特征首先按照通道數(shù)一分為二,相當(dāng)于對輸入特征在channel維度進(jìn)行了二分組操作,每一組之間有各自的分支結(jié)構(gòu),左側(cè)進(jìn)行不采取任何操作的同等映射,右側(cè)進(jìn)行2次1×1逐點卷積和1次3×3深度可分離卷積,兩側(cè)的輸入和輸出通道數(shù)相同。兩側(cè)輸出特征在channel維度完成拼接融合,并使用通道混洗以保證兩側(cè)特征充分融合。單元(d)在維度方面,主要完成通道加倍、寬高減半操作,屬于下采樣模塊。單元(d)右側(cè)相對于(c)的右側(cè)采用步距為2的深度可分離卷積,完成特征的2倍下采樣。左側(cè)支路進(jìn)行1次步距為2的3×3深度可分離卷積和1次1×1逐點卷積。兩側(cè)支路通過channel維度的拼接,完成特征的通道加倍。在ShuffleNet V2相較于V1,將通道混洗操作從右側(cè)支路中遷移到主路上,不僅在很大程度上解決了分組卷積阻礙不同特征層“信息交流“的問題,而且能夠加強(qiáng)兩側(cè)支路輸出特征的信息融合。
在實際的模型搭建和測試環(huán)節(jié)中發(fā)現(xiàn),直接使用ShuffleNet V2網(wǎng)絡(luò),模型參數(shù)量依舊很大,不能部署在樹莓派開發(fā)板。
為了進(jìn)一步降低模型參數(shù)量,且最大范圍保證準(zhǔn)確度,秉承以下原則重新設(shè)計網(wǎng)絡(luò)模型:(1)在計算量相同的卷積運(yùn)算下,輸入特征與輸出特征具有相同通道數(shù)時,參數(shù)量最??;(2)在組卷積運(yùn)算時,參數(shù)量隨組卷積分組個數(shù)呈正相關(guān);(3)網(wǎng)絡(luò)設(shè)計的分支程度越高,耗時越長的分支對網(wǎng)絡(luò)的運(yùn)行效率將起到?jīng)Q定作用。
Shuffle-SENet單元如圖2所示。
圖2 Shuffle-SENet單元
Shuffle-SENet網(wǎng)絡(luò)對ShuffleNet V2網(wǎng)絡(luò)的改進(jìn)主要體現(xiàn)在以下3點:
(1)將ShuffleNet V2單元中多次出現(xiàn)的1×1逐點卷積,替換為1×1最大公約數(shù)分組卷積。其中為了盡可能減少分組數(shù)量且保證程序能夠穩(wěn)定運(yùn)行,每次組卷積的分組數(shù)是輸入特征通道和輸出特征通道的最大因數(shù)gcd。分組數(shù)gcd在網(wǎng)絡(luò)的不同階段都是非固定、動態(tài)的,例如:輸入通道為24,輸出通道為54,那么gcd值為6。
(2)在ShuffleNet V2單元末端加入通道注意力機(jī)制(Squeeze-and-Excitation)。SE模塊通過自適應(yīng)評估ShuffleNet V2單元處理后的每個通道信息,獲取相應(yīng)通道的權(quán)重因子,從而強(qiáng)化重要特征層的信息,忽略其他特征層信息。
(3)為了適應(yīng)具有多級分類任務(wù)的垃圾分類需求,在ShuffleNet V2網(wǎng)絡(luò)末端加入了兩個全連接層。第一個全連接層共214個節(jié)點,分別對應(yīng)214個細(xì)分類別。第二個全連接層共4個節(jié)點,分別對應(yīng)4個標(biāo)準(zhǔn)垃圾類別。
Shuffle-SENet網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 Shuffle-SENet網(wǎng)絡(luò)結(jié)構(gòu)
首先,對尺寸不同的圖像進(jìn)行等比例水平反轉(zhuǎn)和224×224的隨機(jī)中心裁剪,完成數(shù)據(jù)的預(yù)處理操作,將預(yù)處理后的圖像經(jīng)過Shuffle-SENet網(wǎng)絡(luò)第一階段的卷積層和池化層獲得64×56×56大小的特征圖;然后,按照Shuffle-SENet網(wǎng)絡(luò)的二、三、四階段指定的網(wǎng)絡(luò)單元重復(fù)次數(shù)獲得192×7×7大小的特征圖;最后,網(wǎng)絡(luò)串聯(lián)卷積層和全局最大池化層分別將特征圖深度提升到1 024、尺寸縮小為1。為了適應(yīng)具有多級分類任務(wù)的垃圾分類需求,在ShuffleNet V2網(wǎng)絡(luò)末端加入了兩個全連接層。第一個全連接層共214個節(jié)點,分別對應(yīng)214個細(xì)分類別。第二個全連接層共4個節(jié)點,分別對應(yīng)4個標(biāo)準(zhǔn)垃圾類別。
依照國內(nèi)2017年發(fā)布的《生活垃圾分類制度方案》,包括:4個標(biāo)準(zhǔn)類別、214個細(xì)分類別,共計58 061張圖片,每個標(biāo)準(zhǔn)類別約包含14 515張,每個細(xì)分類別約包含270張。標(biāo)準(zhǔn)類別包括:有害垃圾、可回收垃圾、廚余垃圾以及其他垃圾。
在進(jìn)行深度學(xué)習(xí)模型訓(xùn)練之前需要將數(shù)據(jù)集圖像進(jìn)行預(yù)處理,根據(jù)計算的可靠性和算力支持,首先將所有圖像隨機(jī)裁剪到224×224的統(tǒng)一像素大小,然后按照1∶1的比例對圖像進(jìn)行水平反轉(zhuǎn)。參考Pytorch官網(wǎng)公布的歸一化標(biāo)準(zhǔn),將每張圖像的RGB三通道像素值分別調(diào)整到均值為0.485、0.456、0.406,方差為0.229、0.224、0.225的正態(tài)分布。歸一化將數(shù)據(jù)映射到指定的范圍內(nèi)進(jìn)行處理,降低計算量,使訓(xùn)練過程更加便捷快速。其計算如公式(8)所示:
(8)
其中,μ為數(shù)據(jù)均值(mean),σ為標(biāo)準(zhǔn)差(std)。
實驗采用交叉熵?fù)p失函數(shù)(Cross-Entropy Loss Function)來衡量模型預(yù)測值和真實值之間的差距。其計算如式(9)所示:
(9)
其中,Closs表示預(yù)測值和真實值之間的損失值,m表示訓(xùn)練樣本數(shù)量,n表示預(yù)測類別數(shù)量,q(xij)表示樣本xi為類別j的真實概率,p(xij)表示模型預(yù)測樣本xi為類別j的概率。
對于多級分類問題,4個標(biāo)準(zhǔn)類別和214個細(xì)分類別的損失值都應(yīng)該全部列入衡量范圍。因此,在公式(9)的基礎(chǔ)上加入權(quán)重類別損失函數(shù),其計算如式(10)所示:
Cavg=0.9Closs_major+0.1Closs_minor
(10)
其中,Cavg表示權(quán)重類別損失值,Closs_major表示模型預(yù)測細(xì)分類別的損失值,Closs_minor表示模型預(yù)測標(biāo)準(zhǔn)類別的損失值。
為了提升網(wǎng)絡(luò)對標(biāo)準(zhǔn)類別的分類能力,且在實際垃圾分類中對標(biāo)準(zhǔn)類別存在較高的分類能力,對標(biāo)準(zhǔn)類別和細(xì)分類別的損失值賦予不同的權(quán)重0.9、0.1。本研究針對多級多類別分類問題,使用交叉熵?fù)p失函數(shù)求導(dǎo)更為簡單,能在模型訓(xùn)練過程中加快模型損失計算和更新梯度的速度。
優(yōu)化算法的選擇也是一個模型的重中之重。即使在數(shù)據(jù)集和模型架構(gòu)完全相同的情況下,采用不同的優(yōu)化算法,也很可能導(dǎo)致截然不同的訓(xùn)練效果。如果損失函數(shù)是衡量模型預(yù)測結(jié)果和真實值的差距,那么優(yōu)化方法就是指導(dǎo)模型在迭代過程中得到最優(yōu)解。本試驗采用SGDM[16](Stochastic Gradient Descent with Momentum)優(yōu)化器,通過引入動量機(jī)制,抑制了SGD的震蕩。其優(yōu)化方法如式(11)、(12)所示:
νt=η×νt-1+α×g(wt)
(11)
wt+1=wt-νt
(12)
其中,α表示學(xué)習(xí)率,η表示動量系數(shù),g(wt)表示在第t+1次優(yōu)化時對參數(shù)wt的損失梯度,νt表示在第t+1次優(yōu)化時權(quán)重wt+1對權(quán)重wt的差值,第一次的權(quán)重優(yōu)化設(shè)置ν0為0。實驗中設(shè)置學(xué)習(xí)率初始值α為0.01,動量系數(shù)η為0.9,在訓(xùn)練周期中學(xué)習(xí)率會根據(jù)優(yōu)化策略不斷調(diào)整,以避免網(wǎng)絡(luò)的震蕩難以收斂。
在深度學(xué)習(xí)傳統(tǒng)的優(yōu)化方法中,學(xué)習(xí)率α在優(yōu)化器定義之后總是一成不變的。但是由于模型的權(quán)重在初始階段是隨機(jī)初始化的,學(xué)習(xí)率的大小會直接影響模型的穩(wěn)定性,過大的學(xué)習(xí)率會使模型震蕩難以收斂,過小的學(xué)習(xí)率則會減慢模型收斂速度。因此,該文提出了自定義學(xué)習(xí)率優(yōu)化策略,其計算方法如式(13)所示:
lrf}
(13)
其中,αt代表迭代t次數(shù)據(jù)集的學(xué)習(xí)率,lrf代表學(xué)習(xí)率的迭代相關(guān)系數(shù),lrf的值越大,學(xué)習(xí)率的變換就越穩(wěn)定,且lrf的取值在0~1之間。
學(xué)習(xí)率初始值為0.01,經(jīng)過200個epoch數(shù)據(jù)集迭代之后學(xué)習(xí)率下降到0.001,為初始值的10%。此方法通過在迭代數(shù)據(jù)集過程中動態(tài)調(diào)整學(xué)習(xí)率,避免了模型震蕩難以收斂的缺點。
Yosinski等[17]通過大量實驗評估了不同位置卷積層的遷移能力,實驗發(fā)現(xiàn):低層特征具有很強(qiáng)的遷移能力,而高層卷積層的特征都是和具體任務(wù)相關(guān)的抽象特征,不適合進(jìn)行遷移,需要在新數(shù)據(jù)集上重新學(xué)習(xí)訓(xùn)練?;诖死碚?,為了提高模型提取底層特征的能力,實驗采用載入底層網(wǎng)絡(luò)權(quán)重并所有權(quán)重,重新訓(xùn)練的遷移學(xué)習(xí)方法。
實驗中使用到的硬件設(shè)備和軟件版本以及各種訓(xùn)練參數(shù)如表1所示。
表1 實驗配置
評價指標(biāo)如下:
標(biāo)準(zhǔn)類別的Top1準(zhǔn)確率為:
(14)
細(xì)分類別的Top5準(zhǔn)確率為:
(15)
加權(quán)類別準(zhǔn)確率為:
acc=0.1acctop1+0.9acctop5
(16)
本研究搭建了與ShufffleNet網(wǎng)絡(luò)具有相同版本信息的模型(Shuffle-SENet),并將具有相同版本的不同模型分別完成損失、準(zhǔn)確率、運(yùn)行速度等方面的對比。為驗證優(yōu)化后的模型結(jié)構(gòu)相比ShuffleNet V2原模型的有效性,在百度飛槳提供的垃圾分類數(shù)據(jù)集上,將數(shù)據(jù)集的80%劃分為訓(xùn)練數(shù)據(jù)集,20%為測試數(shù)據(jù)集,進(jìn)行了相關(guān)實驗和模型預(yù)測。
3.2.1 訓(xùn)練損失值對比
ShuffleNet V2、ShuffleNet V1、MobilenNet與Shuffle-SENet的所有版本,遍歷數(shù)據(jù)集200個周期,在訓(xùn)練集的損失值對比如圖4所示。
圖4 訓(xùn)練損失值
由訓(xùn)練損失值的結(jié)果分析,文中模型所有版本損失值的下降速度和收斂速度均略微優(yōu)于ShuffleNet V2、ShuffleNet V1、MobilenNet。除卻參數(shù)量較小的0.5版模型,其余所有模型的損失值皆達(dá)到0.1,但所有模型的損失值在180個迭代周期后達(dá)到收斂。
3.2.2 預(yù)測準(zhǔn)確率對比
ShuffleNet V2、ShuffleNet V1、MobilenNet與Shuffle-SENet的所有版本,迭代200次數(shù)據(jù)集,在測試集的準(zhǔn)確度對比如圖5所示。
圖5 測試準(zhǔn)確度
由于文中模型訓(xùn)練采用遷移學(xué)習(xí)的方法,故模型訓(xùn)練前期存在較高的準(zhǔn)確度。由測試準(zhǔn)確度結(jié)果分析,文中模型的0.5版本相較于ShuffleNet V2、MobileNet即使在參數(shù)量大幅縮減的情況下,也能保持基本一致。文中模型的1.0、1.5版本相較于ShuffleNet V2準(zhǔn)確率基本相同,還能大幅超出ShuffleNet V1平均0.1的準(zhǔn)確率。在迭代數(shù)據(jù)集180個周期之后,文中模型的0.5版本預(yù)測準(zhǔn)確度開始收斂,并達(dá)到90%左右。
3.2.3 與ShuffleNet V2的運(yùn)行速率對比
在保證文中模型在準(zhǔn)確度方面基本不變的情況下,為了驗證采用最大公約數(shù)分組卷積的有效性,統(tǒng)計了所有模型分別在CPU、GPU的單幀圖像預(yù)測時間(Time on CPU、GPU)、參數(shù)量(params)以及浮點運(yùn)算(FLOPs)。如表2所示,文中模型在處理速度方面能夠提升30 ms左右,在參數(shù)量方面最低降低10%,且特征深度越大參數(shù)量降低越明顯,在浮點運(yùn)算量方面能降低32.8%~61.7%。將文中所有版本模型搭載到Raspberry Pi 4B+發(fā)板中。模型的0.5版本單幀預(yù)測時間1.28 s,平均準(zhǔn)確率在80%以上。
表2 不同模型的預(yù)測速率對比
在ShuffleNet V2網(wǎng)絡(luò)的基礎(chǔ)上,重新設(shè)計網(wǎng)絡(luò)單元結(jié)構(gòu),以適應(yīng)網(wǎng)絡(luò)能夠在樹莓派等算力小的開發(fā)板上低延時運(yùn)行。另外,在網(wǎng)絡(luò)中引入SE模塊,通過自適應(yīng)評估網(wǎng)絡(luò)單元處理后的每個通道信息,獲取相應(yīng)通道的權(quán)重因子,從而強(qiáng)化重要特征層的信息。針對多級分類問題,一方面在網(wǎng)絡(luò)末端連續(xù)拼接214、4個節(jié)點的全連接層。另一方面,在損失計算和準(zhǔn)確率計算中針對多級分類,引入損失權(quán)重和準(zhǔn)確率權(quán)重,提升模型對多級分類任務(wù)的適應(yīng)能力。綜合以上策略,雖然Shuffle-SENet網(wǎng)絡(luò)在準(zhǔn)確率方面略有犧牲,但是在實際運(yùn)行中基本滿足了垃圾分類需求,且能夠在樹莓派開發(fā)板之類算力較弱的設(shè)備中低延時、高效運(yùn)行。在后續(xù)的研究之中,可以嘗試引入自注意力機(jī)制,進(jìn)一步提升模型從全局信息中提取重要信息的能力和垃圾分類準(zhǔn)確率。另外,為了提高模型的實時運(yùn)行速率,一方面可以從輕量化網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計方面構(gòu)思,另一方面采用模型壓縮的方法對模型進(jìn)行一系列蒸餾、剪枝、量化等操作,將兩種方法結(jié)合使用對于提升網(wǎng)絡(luò)速率極有可能產(chǎn)生事半功倍的效果。