趙志成 羅 澤
1(中國科學院計算機網絡信息中心 北京 100190)
2(中國科學院大學 北京 100049)
煙盒的包裝紙作為商家的標志,其識別和分類問題非常重要,在生產自動化、真假煙鑒別、行業(yè)信息化等方面有著非常廣泛的應用前景。目前,煙盒的規(guī)格識別主要是通過感官(即人眼),根據煙盒上含有的信息判斷其相應的煙盒規(guī)格[1]。受限于人工識別的識別效率和人工識別容易產生視覺疲勞無法進行大規(guī)模高效識別等缺點,建立相應準確、高效、泛化性能強的煙盒規(guī)格自動識別算法顯得十分重要。
自從AlexNet[2]橫空出世以來,基于深度學習和卷積神經網絡的方法在計算機視覺領域發(fā)展非常迅速。NIN[3]使用全局平均池化層來代替參數眾多的全連接層,并采用1×1卷積來學習通道間的非線性組合。VGG-Net[4]提出了一種模塊化的網絡設計策略,將相同類型的網絡塊重復堆疊,從而簡化了網絡設計的工作,并為下游應用提供了遷移學習的機會。Highway network[5]引入了門控機制,使得信息流可以跨幾層傳輸而不會產生衰減,并且有助于網絡的融合。在這些研究的啟發(fā)下,ResNet[6]通過引入跨層連接(Skip Connection),在一定程度上緩解了深度神經網絡層數過深難以訓練的問題,使得網絡可以學習到更深層次的表示。ResNet已經成為目前最成功的CNN架構之一,被應用到各種計算機視覺的眾多下游任務當中[7]。
不同于傳統(tǒng)的圖像分類問題,煙盒的規(guī)格識別可以被歸納為細粒度識別的任務。細粒度圖像分類(Fine-grained Image Categorization),又被稱作子類別圖像分類(Sub-category Recognition),是近年來計算機視覺、模式識別等領域一個非常熱門的研究課題[8]。其目的是對粗粒度的大類別進行更加細致的子類劃分,但是由于子類別間細微的類別間差異和較大的類內差異,與普通的圖像分類任務相比,細粒度圖像分類難度更大[9]。在現(xiàn)實生活中,識別不同的子類別有著非常大的應用需求,例如人臉識別[10]、指紋識別[11],以及識別不同種類汽車、鳥類[12]等。此外,由于煙盒的設計周期性地發(fā)生變化,某些煙盒的包裝在視覺上較為相似,使得煙盒的規(guī)格的自動化識別仍然具有一定的挑戰(zhàn)[13]。
近年來深度學習和人工智能在煙草行業(yè)的研究和應用已經越來越多,結合深度學習以及計算機視覺等不同技術的人工智能系統(tǒng)受到了越來越多的關注。葉安新[14]基于遺傳算法對于煙草運送車的行駛路徑進行優(yōu)化。鐘宇等[1]利用計算機視覺對卷煙包裝進行圖像處理和特征向量提取,分別以相似性度量模型、機器學習模型對特征向量進行分類來判定卷煙真?zhèn)巍@罹碵15]利用卷積神經網絡進行煙草病蟲害的自動識別。高震宇等[16]使用卷積神經網絡,建立了基于卷積神經網絡的煙絲組成識別模型。
本文以不同設備采集的煙盒圖像為研究的對象,采用基于深度殘差網絡的深度學習算法,同時引入了自適應選擇卷積網絡(SKNet)對現(xiàn)有的殘差網絡結構進行了改進,改善了傳統(tǒng)深度學習方法中容易過擬合以及分類效果差的問題,取得了99.2%的分類準確率。
卷積神經網絡由于其強大的特征表達能力在許多計算機視覺任務中被廣泛地使用[17]。研究人員發(fā)現(xiàn)在一定的深度范圍內,隨著網絡層數的增加,模型可以擬合更加復雜的函數,模型的性能也可以得到提升。但是在網絡層數增加到一定的數目之后,繼續(xù)增加網絡的層數,訓練精度和測試精度迅速下降。為了解決由于深度增加帶來的網絡退化問題,深度殘差網絡引入了跨層連接的設計,在一定程度上緩解了由于深度增加帶來的梯度爆炸或梯度消失[18]。
深度殘差網絡是由很多個殘差學習單元堆疊而成的。給定輸入的圖像數據,深度殘差網絡將輸入的數據依次送入卷積層Conv、非線性激活函數層ReLU和批處理歸一化層Batch Normalization;然后將處理的結果進一步送入到多個殘差單元,再經過全局平均池化層和全連接層;最后得到輸出結果。
在構建超深的網絡比如100層以上的網絡時,將多個原始殘差學習模塊直接堆疊起來會造成參數量的爆炸。為了在不損失精度的同時降低整個網絡的參數量,He等[6]提出了一種稱為“瓶頸(Bottleneck)”的殘差模塊結構,這種瓶頸結構的設計主要目的是為了減少參數量和計算量,使得深度殘差網絡的訓練速度加快。ResNet的殘差學習單元的具體設計如圖1所示。

圖1 殘差單元
如圖1所示,假設殘差單元的原始輸入為x,期望輸出的映射是H(x),那么殘差可以被定義為:F(x)=H(x)-x。由于梯度爆炸和梯度消失,讓網絡直接學習期望輸出的潛在映射H(x)是比較困難的。ResNet不再讓網絡學習一個完整的輸出,而是學習殘差F(x)。圖1所示的輸入特征x的恒等映射也可以表示為跨層的連接,這是一條從輸入直接到輸出的通路,在輸出之前將x與經過學習的殘差值F(x)相加,可以得到期望的映射結果H(x)。這種跨層連接的方式使得梯度在向前傳播時,后一層的梯度可以無損地傳遞到前一層。實驗證明學習殘差而非直接學習映射不僅可以使得網絡收斂更快,還可以緩解由于簡單增加網絡深度造成的“網絡退化”問題。
本文采用ResNet-50和ResNet-101兩種非常具有代表性的網絡模型作為基礎的骨干網絡。假設輸入圖像尺寸是256×256,ResNet-50和ResNet-101的具體配置如表1所示。

表1 ResNet結構表
遷移學習的目的是為了將源領域的信息應用到目標域的學習過程當中。考慮到煙盒規(guī)格數據集的規(guī)模較小,我們采用微調(Fine Tune)的方式來進行遷移學習。如圖2所示,本文利用已經在大型公開數據集ImageNet上進行預訓練得到的基礎網絡來進行特征的提取。在基礎網絡進行特征提取之后,構建煙盒規(guī)格識別的分類網絡,最終得到基于煙盒圖像的規(guī)格識別模型。

(a)
注意力機制可以看作是一種資源分配的機制[19-20]。從廣義上講,可以將注意力機制當成一種工具,將可用處理資源的分配傾向于輸入信號的信息最豐富的組成部分。注意力機制的發(fā)展和理解一直是深度學習領域的一個長期的研究方向。
注意力機制已經在不同領域被廣泛應用來提升相關任務的性能,從圖像的定位和理解到基于序列的模型。注意力機制不僅要告訴我們重點關注哪些區(qū)域,還要提高關注區(qū)域的表示權重。我們的目標是通過使用注意機制來增加模型的表現(xiàn)力,關注重要特征并抑制不必要的特征。
煙盒的規(guī)格識別屬于細粒度的圖像分類問題。在細粒度的圖像分類問題當中,讓網絡學習到更有判別能力的特征顯得非常重要。為了讓網絡學習到更具判別力的特征,最近的一些工作提出了不同的注意力模塊。李蘭等[20]采用結合通道注意力機制和空間注意力機制的卷積注意力模塊對不同商家的招牌進行細粒度分類。Hu等[21]提出了SENet(Squeeze-and-Excitation module)來提升分類的結果,SENet使用全局平均池化來進行通道注意力的計算。
為了使得神經元能夠自適應地調節(jié)感受野的大小,自適應注意單元引入了SK(Selective Kernel)卷積,這種多分支的結構設計可以使得網絡在不同感受野大小的卷積核中進行自動的選擇,從而可以提升網絡表達能力。如圖2所示,自適應選擇卷積單元由分裂、融合和選擇三個模塊組成。

在通過分裂操作將網絡分成兩個分支之后,需要設計一個門控單元來控制承載不同信息的多個分支如何進入下一個神經元。首先如式(1)和圖3所示,通過逐元素的加法將兩個分支的信息進行融合,得到特征圖U∈RH×W×C。

圖3 自適應注意力單元
(1)
接著通過將特征圖進行全局平均池化可以得到S∈RC,其中Sc由U中第c個通道的特征圖Uc通過全局平均池化得到的。
受到SENet的模塊壓縮思想的啟發(fā),為了提升執(zhí)行的效率以及網絡的學習能力,緊湊特征z∈Rd×1通過以下方式計算得到:
z=Ffc(s)=δ(B(Ws))
(2)
式中:W∈Rd×c;d代表輸出的維度;B代表批量歸一化;δ代表激活函數;Ffc表示多層全連接操作。
選擇模塊把融合模塊得到的緊湊的結果z通過兩個全連接層以及Softmax函數回歸出不同感受野的特征圖通道之間的權重信息。權重ac和bc的計算方式如下:
(3)

(4)
式中:V=[V1,V2,…,Vc];c∈[0,1,…,C-1];特征圖V∈RH×W×C為最終輸出的結果;Vc為其第c幅特征圖。
為了將自適應選擇卷積網絡集成到深度殘差網絡當中,需要在每個殘差單元當中插入自適應選擇卷積網絡。具體的做法如圖4所示,在原始的特征圖之后插入自適應選擇卷積網絡,一個比較直觀的理解是在通過不同感受野的自適應卷積生成了對于原始特征圖的注意力權重。通過這個注意力權重可以有效地過濾原始特征圖中不重要的信息,給予需要關注的區(qū)域更高的權重。在加入自適應選擇卷積網絡之后,原有殘差單元特征圖提取特征的能力有了明顯的增強。

圖4 將自適應選擇卷積網絡嵌入原始殘差單元
為了保證實驗樣本的多樣性和實驗結果的可靠性,本文使用單反、手機、掃描儀等不同設備采集了包括白沙、芙蓉王、中華等常見13個規(guī)格的煙盒圖像,在采集的過程中采集了不同規(guī)格的煙盒的正反面。考慮到煙盒包裝紙的變化,采集了同一規(guī)格不同的批次的樣本。同時,為了保證圖像采集的質量,盡量選擇光線較好的地方,煙盒的圖像處于整個畫面的中央位置以此降低周圍背景的影響。我們總計采集了13個規(guī)格共計2 500幅圖像,具體的數據集分布如圖5所示,具體的樣本示例如圖6所示。

圖5 數據集的整體分布

圖6 數據集示意圖
為了能更好地驗證不同模型的性能,本文設置原始訓練集2 000幅(80%),測試集500幅(20%)。在隨機劃分訓練集和驗證集后,需對圖像進行預處理操作,預處理操作主要包括多角度旋轉、隨機裁剪、去均值和尺度歸一化等操作。圖像預處理的目的一方面是為了更方便讓CNN學習圖像間細微區(qū)別,另一方面則是為了擴充數據集便于網絡學習到更具有判別性的特征。
本文采用深度學習框架MXNet,圖片輸入大小為256×256,batch size設置為64,epochs設置為50,采用交叉熵損失函數作為優(yōu)化的目標。實驗采用的骨干網絡的初始權重均來自ImageNet上預訓練的權重,采用SGD作為優(yōu)化算法,初始的學習率設置為0.001。在后續(xù)過程中對學習率采用等間隔調節(jié)的策略,每20輪迭代后學習率調整為當前學習率為0.1倍。
為了測試出不同骨干網絡之間的性能差異,本文首先在五個具有代表性的骨干網絡VGG-16、VGG-19、Inception-v3、ResNet-50和ResNet-101上進行實驗。實驗的結果如表2所示,可以看出相比于VGG,ResNet在參數量大幅減少的情況下取得了更高的準確率。

表2 不同骨干網絡實驗結果和參數量對比
為了進一步提升深度殘差網絡的特征表示能力,本文在ResNet-50以及ResNet-101網絡中嵌入了自適應選擇卷積網絡。
同時,為了通過對比實驗來驗證自適應選擇卷積網絡的良好的性能,本文選取了比較有代表性的兩個注意力單元:SENet(Squeeze-and-Excitation Networks)和CBAM(Convolutional Block Attention Module)來進行對比實驗,從而分析不同設計的注意力單元的性能。
從表3的結果可以看出,相比于另外兩個注意力單元SENet和CBAM,自適應選擇卷積網絡在參數量更少的情況下取得更高的準確率,這在一定程度上反映將自適應選擇卷積網絡和殘差網絡結合的方法在煙盒規(guī)格識別任務上的有效性。與此同時,ResNet-50+SK在參數量遠遠少于ResNet-101的情況下,取得了比ResNet-101更高的準確率。本文的實驗結果表明,通過添加自適應選擇卷積網絡不僅可以有效地提高網絡的提取特征的能力,同時也可以有效提升分類的準確率。

表3 不同注意力單元實驗結果和參數量對比
為了更好地分析實驗的結果,本文首先可視化了ReNet-101+SK方法在煙盒規(guī)格識別測試集上的混淆矩陣。如圖7所示,可以看出本文模型在13個規(guī)格的煙盒規(guī)格識別中取得了很高的正確率,在測試集上11個規(guī)格的煙盒沒有出現(xiàn)分類錯誤的樣本,測試集中錯分的少數樣本主要存在于軟硬中華兩個規(guī)格當中,我們推測可能是由于軟硬中華從感官上來說確實相似度比較高。

圖7 混淆矩陣
為了進一步分析注意力機制的有效性,本文采用類別激活映射Grad-CAM[22]技術來對于網絡的重點“關注點”可視化。如圖8所示,左邊一列是原始的輸入圖像,中間兩列分別是ResNet-50和ResNet-101的可視化圖,最右邊一列是ResNet-101和自適應單元結合的可視化圖。在利用Grad-CAM對不同的網絡進行可視化后,通過對比,可以清晰地觀察到,在引入自適應選擇卷積網絡后,網絡在不同的背景下可以更好地提取出煙盒主體的位置,并且最終判別物體的概率也更高,這進一步表明了通過引入注意力機制的確讓模型學會了關注重點的信息過濾無關的信息,從而在一定程度上改善了分類的效果。

圖8 不同模型感興趣區(qū)域可視化
本文在煙盒規(guī)格識別的問題上引入了深度學習的方法,通過將深度殘差網絡和自適應選擇卷積網絡相結合,在原有殘差單元中嵌入了自適應選擇卷積網絡,不僅提升了網絡的特征表示和特征辨別能力,也取得了99.2%的準確率。實驗結果證明了將深度學習方法用于煙盒的規(guī)格分類是可行且有效的。與傳統(tǒng)的人工識別方法相對比,本文方法不僅有效地提升了準確率而且具有大規(guī)模部署的潛力,具有更好的泛化性和魯棒性。目前我們采集的數據集共有2 500幅圖像,未來我們將嘗試在更大規(guī)模的數據集上進行更加深入的研究以及進一步提高網絡的推理效率,將算法進一步部署和應用到煙草行業(yè)的工業(yè)系統(tǒng)當中。