趙志成 羅 澤
1(中國科學(xué)院計算機(jī)網(wǎng)絡(luò)信息中心 北京 100190)
2(中國科學(xué)院大學(xué) 北京 100049)
煙盒的包裝紙作為商家的標(biāo)志,其識別和分類問題非常重要,在生產(chǎn)自動化、真假煙鑒別、行業(yè)信息化等方面有著非常廣泛的應(yīng)用前景。目前,煙盒的規(guī)格識別主要是通過感官(即人眼),根據(jù)煙盒上含有的信息判斷其相應(yīng)的煙盒規(guī)格[1]。受限于人工識別的識別效率和人工識別容易產(chǎn)生視覺疲勞無法進(jìn)行大規(guī)模高效識別等缺點(diǎn),建立相應(yīng)準(zhǔn)確、高效、泛化性能強(qiáng)的煙盒規(guī)格自動識別算法顯得十分重要。
自從AlexNet[2]橫空出世以來,基于深度學(xué)習(xí)和卷積神經(jīng)網(wǎng)絡(luò)的方法在計算機(jī)視覺領(lǐng)域發(fā)展非常迅速。NIN[3]使用全局平均池化層來代替參數(shù)眾多的全連接層,并采用1×1卷積來學(xué)習(xí)通道間的非線性組合。VGG-Net[4]提出了一種模塊化的網(wǎng)絡(luò)設(shè)計策略,將相同類型的網(wǎng)絡(luò)塊重復(fù)堆疊,從而簡化了網(wǎng)絡(luò)設(shè)計的工作,并為下游應(yīng)用提供了遷移學(xué)習(xí)的機(jī)會。Highway network[5]引入了門控機(jī)制,使得信息流可以跨幾層傳輸而不會產(chǎn)生衰減,并且有助于網(wǎng)絡(luò)的融合。在這些研究的啟發(fā)下,ResNet[6]通過引入跨層連接(Skip Connection),在一定程度上緩解了深度神經(jīng)網(wǎng)絡(luò)層數(shù)過深難以訓(xùn)練的問題,使得網(wǎng)絡(luò)可以學(xué)習(xí)到更深層次的表示。ResNet已經(jīng)成為目前最成功的CNN架構(gòu)之一,被應(yīng)用到各種計算機(jī)視覺的眾多下游任務(wù)當(dāng)中[7]。
不同于傳統(tǒng)的圖像分類問題,煙盒的規(guī)格識別可以被歸納為細(xì)粒度識別的任務(wù)。細(xì)粒度圖像分類(Fine-grained Image Categorization),又被稱作子類別圖像分類(Sub-category Recognition),是近年來計算機(jī)視覺、模式識別等領(lǐng)域一個非常熱門的研究課題[8]。其目的是對粗粒度的大類別進(jìn)行更加細(xì)致的子類劃分,但是由于子類別間細(xì)微的類別間差異和較大的類內(nèi)差異,與普通的圖像分類任務(wù)相比,細(xì)粒度圖像分類難度更大[9]。在現(xiàn)實生活中,識別不同的子類別有著非常大的應(yīng)用需求,例如人臉識別[10]、指紋識別[11],以及識別不同種類汽車、鳥類[12]等。此外,由于煙盒的設(shè)計周期性地發(fā)生變化,某些煙盒的包裝在視覺上較為相似,使得煙盒的規(guī)格的自動化識別仍然具有一定的挑戰(zhàn)[13]。
近年來深度學(xué)習(xí)和人工智能在煙草行業(yè)的研究和應(yīng)用已經(jīng)越來越多,結(jié)合深度學(xué)習(xí)以及計算機(jī)視覺等不同技術(shù)的人工智能系統(tǒng)受到了越來越多的關(guān)注。葉安新[14]基于遺傳算法對于煙草運(yùn)送車的行駛路徑進(jìn)行優(yōu)化。鐘宇等[1]利用計算機(jī)視覺對卷煙包裝進(jìn)行圖像處理和特征向量提取,分別以相似性度量模型、機(jī)器學(xué)習(xí)模型對特征向量進(jìn)行分類來判定卷煙真?zhèn)?。李敬[15]利用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行煙草病蟲害的自動識別。高震宇等[16]使用卷積神經(jīng)網(wǎng)絡(luò),建立了基于卷積神經(jīng)網(wǎng)絡(luò)的煙絲組成識別模型。
本文以不同設(shè)備采集的煙盒圖像為研究的對象,采用基于深度殘差網(wǎng)絡(luò)的深度學(xué)習(xí)算法,同時引入了自適應(yīng)選擇卷積網(wǎng)絡(luò)(SKNet)對現(xiàn)有的殘差網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了改進(jìn),改善了傳統(tǒng)深度學(xué)習(xí)方法中容易過擬合以及分類效果差的問題,取得了99.2%的分類準(zhǔn)確率。
卷積神經(jīng)網(wǎng)絡(luò)由于其強(qiáng)大的特征表達(dá)能力在許多計算機(jī)視覺任務(wù)中被廣泛地使用[17]。研究人員發(fā)現(xiàn)在一定的深度范圍內(nèi),隨著網(wǎng)絡(luò)層數(shù)的增加,模型可以擬合更加復(fù)雜的函數(shù),模型的性能也可以得到提升。但是在網(wǎng)絡(luò)層數(shù)增加到一定的數(shù)目之后,繼續(xù)增加網(wǎng)絡(luò)的層數(shù),訓(xùn)練精度和測試精度迅速下降。為了解決由于深度增加帶來的網(wǎng)絡(luò)退化問題,深度殘差網(wǎng)絡(luò)引入了跨層連接的設(shè)計,在一定程度上緩解了由于深度增加帶來的梯度爆炸或梯度消失[18]。
深度殘差網(wǎng)絡(luò)是由很多個殘差學(xué)習(xí)單元堆疊而成的。給定輸入的圖像數(shù)據(jù),深度殘差網(wǎng)絡(luò)將輸入的數(shù)據(jù)依次送入卷積層Conv、非線性激活函數(shù)層ReLU和批處理歸一化層Batch Normalization;然后將處理的結(jié)果進(jìn)一步送入到多個殘差單元,再經(jīng)過全局平均池化層和全連接層;最后得到輸出結(jié)果。
在構(gòu)建超深的網(wǎng)絡(luò)比如100層以上的網(wǎng)絡(luò)時,將多個原始?xì)埐顚W(xué)習(xí)模塊直接堆疊起來會造成參數(shù)量的爆炸。為了在不損失精度的同時降低整個網(wǎng)絡(luò)的參數(shù)量,He等[6]提出了一種稱為“瓶頸(Bottleneck)”的殘差模塊結(jié)構(gòu),這種瓶頸結(jié)構(gòu)的設(shè)計主要目的是為了減少參數(shù)量和計算量,使得深度殘差網(wǎng)絡(luò)的訓(xùn)練速度加快。ResNet的殘差學(xué)習(xí)單元的具體設(shè)計如圖1所示。
圖1 殘差單元
如圖1所示,假設(shè)殘差單元的原始輸入為x,期望輸出的映射是H(x),那么殘差可以被定義為:F(x)=H(x)-x。由于梯度爆炸和梯度消失,讓網(wǎng)絡(luò)直接學(xué)習(xí)期望輸出的潛在映射H(x)是比較困難的。ResNet不再讓網(wǎng)絡(luò)學(xué)習(xí)一個完整的輸出,而是學(xué)習(xí)殘差F(x)。圖1所示的輸入特征x的恒等映射也可以表示為跨層的連接,這是一條從輸入直接到輸出的通路,在輸出之前將x與經(jīng)過學(xué)習(xí)的殘差值F(x)相加,可以得到期望的映射結(jié)果H(x)。這種跨層連接的方式使得梯度在向前傳播時,后一層的梯度可以無損地傳遞到前一層。實驗證明學(xué)習(xí)殘差而非直接學(xué)習(xí)映射不僅可以使得網(wǎng)絡(luò)收斂更快,還可以緩解由于簡單增加網(wǎng)絡(luò)深度造成的“網(wǎng)絡(luò)退化”問題。
本文采用ResNet-50和ResNet-101兩種非常具有代表性的網(wǎng)絡(luò)模型作為基礎(chǔ)的骨干網(wǎng)絡(luò)。假設(shè)輸入圖像尺寸是256×256,ResNet-50和ResNet-101的具體配置如表1所示。
表1 ResNet結(jié)構(gòu)表
遷移學(xué)習(xí)的目的是為了將源領(lǐng)域的信息應(yīng)用到目標(biāo)域的學(xué)習(xí)過程當(dāng)中。考慮到煙盒規(guī)格數(shù)據(jù)集的規(guī)模較小,我們采用微調(diào)(Fine Tune)的方式來進(jìn)行遷移學(xué)習(xí)。如圖2所示,本文利用已經(jīng)在大型公開數(shù)據(jù)集ImageNet上進(jìn)行預(yù)訓(xùn)練得到的基礎(chǔ)網(wǎng)絡(luò)來進(jìn)行特征的提取。在基礎(chǔ)網(wǎng)絡(luò)進(jìn)行特征提取之后,構(gòu)建煙盒規(guī)格識別的分類網(wǎng)絡(luò),最終得到基于煙盒圖像的規(guī)格識別模型。
(a)
注意力機(jī)制可以看作是一種資源分配的機(jī)制[19-20]。從廣義上講,可以將注意力機(jī)制當(dāng)成一種工具,將可用處理資源的分配傾向于輸入信號的信息最豐富的組成部分。注意力機(jī)制的發(fā)展和理解一直是深度學(xué)習(xí)領(lǐng)域的一個長期的研究方向。
注意力機(jī)制已經(jīng)在不同領(lǐng)域被廣泛應(yīng)用來提升相關(guān)任務(wù)的性能,從圖像的定位和理解到基于序列的模型。注意力機(jī)制不僅要告訴我們重點(diǎn)關(guān)注哪些區(qū)域,還要提高關(guān)注區(qū)域的表示權(quán)重。我們的目標(biāo)是通過使用注意機(jī)制來增加模型的表現(xiàn)力,關(guān)注重要特征并抑制不必要的特征。
煙盒的規(guī)格識別屬于細(xì)粒度的圖像分類問題。在細(xì)粒度的圖像分類問題當(dāng)中,讓網(wǎng)絡(luò)學(xué)習(xí)到更有判別能力的特征顯得非常重要。為了讓網(wǎng)絡(luò)學(xué)習(xí)到更具判別力的特征,最近的一些工作提出了不同的注意力模塊。李蘭等[20]采用結(jié)合通道注意力機(jī)制和空間注意力機(jī)制的卷積注意力模塊對不同商家的招牌進(jìn)行細(xì)粒度分類。Hu等[21]提出了SENet(Squeeze-and-Excitation module)來提升分類的結(jié)果,SENet使用全局平均池化來進(jìn)行通道注意力的計算。
為了使得神經(jīng)元能夠自適應(yīng)地調(diào)節(jié)感受野的大小,自適應(yīng)注意單元引入了SK(Selective Kernel)卷積,這種多分支的結(jié)構(gòu)設(shè)計可以使得網(wǎng)絡(luò)在不同感受野大小的卷積核中進(jìn)行自動的選擇,從而可以提升網(wǎng)絡(luò)表達(dá)能力。如圖2所示,自適應(yīng)選擇卷積單元由分裂、融合和選擇三個模塊組成。
在通過分裂操作將網(wǎng)絡(luò)分成兩個分支之后,需要設(shè)計一個門控單元來控制承載不同信息的多個分支如何進(jìn)入下一個神經(jīng)元。首先如式(1)和圖3所示,通過逐元素的加法將兩個分支的信息進(jìn)行融合,得到特征圖U∈RH×W×C。
圖3 自適應(yīng)注意力單元
(1)
接著通過將特征圖進(jìn)行全局平均池化可以得到S∈RC,其中Sc由U中第c個通道的特征圖Uc通過全局平均池化得到的。
受到SENet的模塊壓縮思想的啟發(fā),為了提升執(zhí)行的效率以及網(wǎng)絡(luò)的學(xué)習(xí)能力,緊湊特征z∈Rd×1通過以下方式計算得到:
z=Ffc(s)=δ(B(Ws))
(2)
式中:W∈Rd×c;d代表輸出的維度;B代表批量歸一化;δ代表激活函數(shù);Ffc表示多層全連接操作。
選擇模塊把融合模塊得到的緊湊的結(jié)果z通過兩個全連接層以及Softmax函數(shù)回歸出不同感受野的特征圖通道之間的權(quán)重信息。權(quán)重ac和bc的計算方式如下:
(3)
(4)
式中:V=[V1,V2,…,Vc];c∈[0,1,…,C-1];特征圖V∈RH×W×C為最終輸出的結(jié)果;Vc為其第c幅特征圖。
為了將自適應(yīng)選擇卷積網(wǎng)絡(luò)集成到深度殘差網(wǎng)絡(luò)當(dāng)中,需要在每個殘差單元當(dāng)中插入自適應(yīng)選擇卷積網(wǎng)絡(luò)。具體的做法如圖4所示,在原始的特征圖之后插入自適應(yīng)選擇卷積網(wǎng)絡(luò),一個比較直觀的理解是在通過不同感受野的自適應(yīng)卷積生成了對于原始特征圖的注意力權(quán)重。通過這個注意力權(quán)重可以有效地過濾原始特征圖中不重要的信息,給予需要關(guān)注的區(qū)域更高的權(quán)重。在加入自適應(yīng)選擇卷積網(wǎng)絡(luò)之后,原有殘差單元特征圖提取特征的能力有了明顯的增強(qiáng)。
圖4 將自適應(yīng)選擇卷積網(wǎng)絡(luò)嵌入原始?xì)埐顔卧?/p>
為了保證實驗樣本的多樣性和實驗結(jié)果的可靠性,本文使用單反、手機(jī)、掃描儀等不同設(shè)備采集了包括白沙、芙蓉王、中華等常見13個規(guī)格的煙盒圖像,在采集的過程中采集了不同規(guī)格的煙盒的正反面。考慮到煙盒包裝紙的變化,采集了同一規(guī)格不同的批次的樣本。同時,為了保證圖像采集的質(zhì)量,盡量選擇光線較好的地方,煙盒的圖像處于整個畫面的中央位置以此降低周圍背景的影響。我們總計采集了13個規(guī)格共計2 500幅圖像,具體的數(shù)據(jù)集分布如圖5所示,具體的樣本示例如圖6所示。
圖5 數(shù)據(jù)集的整體分布
圖6 數(shù)據(jù)集示意圖
為了能更好地驗證不同模型的性能,本文設(shè)置原始訓(xùn)練集2 000幅(80%),測試集500幅(20%)。在隨機(jī)劃分訓(xùn)練集和驗證集后,需對圖像進(jìn)行預(yù)處理操作,預(yù)處理操作主要包括多角度旋轉(zhuǎn)、隨機(jī)裁剪、去均值和尺度歸一化等操作。圖像預(yù)處理的目的一方面是為了更方便讓CNN學(xué)習(xí)圖像間細(xì)微區(qū)別,另一方面則是為了擴(kuò)充數(shù)據(jù)集便于網(wǎng)絡(luò)學(xué)習(xí)到更具有判別性的特征。
本文采用深度學(xué)習(xí)框架MXNet,圖片輸入大小為256×256,batch size設(shè)置為64,epochs設(shè)置為50,采用交叉熵?fù)p失函數(shù)作為優(yōu)化的目標(biāo)。實驗采用的骨干網(wǎng)絡(luò)的初始權(quán)重均來自ImageNet上預(yù)訓(xùn)練的權(quán)重,采用SGD作為優(yōu)化算法,初始的學(xué)習(xí)率設(shè)置為0.001。在后續(xù)過程中對學(xué)習(xí)率采用等間隔調(diào)節(jié)的策略,每20輪迭代后學(xué)習(xí)率調(diào)整為當(dāng)前學(xué)習(xí)率為0.1倍。
為了測試出不同骨干網(wǎng)絡(luò)之間的性能差異,本文首先在五個具有代表性的骨干網(wǎng)絡(luò)VGG-16、VGG-19、Inception-v3、ResNet-50和ResNet-101上進(jìn)行實驗。實驗的結(jié)果如表2所示,可以看出相比于VGG,ResNet在參數(shù)量大幅減少的情況下取得了更高的準(zhǔn)確率。
表2 不同骨干網(wǎng)絡(luò)實驗結(jié)果和參數(shù)量對比
為了進(jìn)一步提升深度殘差網(wǎng)絡(luò)的特征表示能力,本文在ResNet-50以及ResNet-101網(wǎng)絡(luò)中嵌入了自適應(yīng)選擇卷積網(wǎng)絡(luò)。
同時,為了通過對比實驗來驗證自適應(yīng)選擇卷積網(wǎng)絡(luò)的良好的性能,本文選取了比較有代表性的兩個注意力單元:SENet(Squeeze-and-Excitation Networks)和CBAM(Convolutional Block Attention Module)來進(jìn)行對比實驗,從而分析不同設(shè)計的注意力單元的性能。
從表3的結(jié)果可以看出,相比于另外兩個注意力單元SENet和CBAM,自適應(yīng)選擇卷積網(wǎng)絡(luò)在參數(shù)量更少的情況下取得更高的準(zhǔn)確率,這在一定程度上反映將自適應(yīng)選擇卷積網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)結(jié)合的方法在煙盒規(guī)格識別任務(wù)上的有效性。與此同時,ResNet-50+SK在參數(shù)量遠(yuǎn)遠(yuǎn)少于ResNet-101的情況下,取得了比ResNet-101更高的準(zhǔn)確率。本文的實驗結(jié)果表明,通過添加自適應(yīng)選擇卷積網(wǎng)絡(luò)不僅可以有效地提高網(wǎng)絡(luò)的提取特征的能力,同時也可以有效提升分類的準(zhǔn)確率。
表3 不同注意力單元實驗結(jié)果和參數(shù)量對比
為了更好地分析實驗的結(jié)果,本文首先可視化了ReNet-101+SK方法在煙盒規(guī)格識別測試集上的混淆矩陣。如圖7所示,可以看出本文模型在13個規(guī)格的煙盒規(guī)格識別中取得了很高的正確率,在測試集上11個規(guī)格的煙盒沒有出現(xiàn)分類錯誤的樣本,測試集中錯分的少數(shù)樣本主要存在于軟硬中華兩個規(guī)格當(dāng)中,我們推測可能是由于軟硬中華從感官上來說確實相似度比較高。
圖7 混淆矩陣
為了進(jìn)一步分析注意力機(jī)制的有效性,本文采用類別激活映射Grad-CAM[22]技術(shù)來對于網(wǎng)絡(luò)的重點(diǎn)“關(guān)注點(diǎn)”可視化。如圖8所示,左邊一列是原始的輸入圖像,中間兩列分別是ResNet-50和ResNet-101的可視化圖,最右邊一列是ResNet-101和自適應(yīng)單元結(jié)合的可視化圖。在利用Grad-CAM對不同的網(wǎng)絡(luò)進(jìn)行可視化后,通過對比,可以清晰地觀察到,在引入自適應(yīng)選擇卷積網(wǎng)絡(luò)后,網(wǎng)絡(luò)在不同的背景下可以更好地提取出煙盒主體的位置,并且最終判別物體的概率也更高,這進(jìn)一步表明了通過引入注意力機(jī)制的確讓模型學(xué)會了關(guān)注重點(diǎn)的信息過濾無關(guān)的信息,從而在一定程度上改善了分類的效果。
圖8 不同模型感興趣區(qū)域可視化
本文在煙盒規(guī)格識別的問題上引入了深度學(xué)習(xí)的方法,通過將深度殘差網(wǎng)絡(luò)和自適應(yīng)選擇卷積網(wǎng)絡(luò)相結(jié)合,在原有殘差單元中嵌入了自適應(yīng)選擇卷積網(wǎng)絡(luò),不僅提升了網(wǎng)絡(luò)的特征表示和特征辨別能力,也取得了99.2%的準(zhǔn)確率。實驗結(jié)果證明了將深度學(xué)習(xí)方法用于煙盒的規(guī)格分類是可行且有效的。與傳統(tǒng)的人工識別方法相對比,本文方法不僅有效地提升了準(zhǔn)確率而且具有大規(guī)模部署的潛力,具有更好的泛化性和魯棒性。目前我們采集的數(shù)據(jù)集共有2 500幅圖像,未來我們將嘗試在更大規(guī)模的數(shù)據(jù)集上進(jìn)行更加深入的研究以及進(jìn)一步提高網(wǎng)絡(luò)的推理效率,將算法進(jìn)一步部署和應(yīng)用到煙草行業(yè)的工業(yè)系統(tǒng)當(dāng)中。