顧昌鈴,吳仔賢
(1.上海煙草機械有限責任公司,上海 201206;2.中國電子科技集團公司第四十一研究所,安徽 蚌埠 233010)
在當前競爭激烈的卷煙行業中,精美的香煙外包裝是各煙草行業商標和品牌形象的重要體現,品牌香煙的任何包裝質量問題都會影響企業品牌形象,失去企業的信譽度。如何保證包裝生產的穩定質量,減少和杜絕不合格的香煙包裝產品流入市場,是各卷煙企業在全面質量控制中的一個關鍵環節。目前,針對香煙包裝質量檢測的研究有很多,有對條煙包裝質量的檢測,香煙小包裝外觀質量的檢測甚至有專門針對香煙小包拉線的檢測。由此也出現了很多針對包裝質量檢測的算法[1]。
現有的香煙包裝主要是由高速流水線生產,由于材料、生產環境和生產設備等復雜因素的影響,小包的外觀有可能會產生破損等質量問題[2]。傳統視覺檢測利用機器學習和光電傳感器通過圖像增強、目標分割和目標定位等方式實現了小包外觀檢測,但是在圖像檢測的準確度上沒有達到理想的效果[3]。
針對小包在生產過程中產生的外觀質量問題,本文設計了一種基于深度學習的視覺幾何組網(Visual Geometry Group Net,VGGNet)小包外觀圖像分類識別算法,通過深度學習技術將智能檢測、機器視覺等知識結合為一體,提高了對小包外觀圖像的分類識別準確率,具有很高的泛化能力[4]。針對小包外觀原始數據采集不充分的情況,引入了數據增強的概念,通過對收集到的數據進行旋轉、平移、像素變換等處理得到更多的數據量,有效預防在訓練過程中產生的過擬合效應。
VGGNet 網絡有四種結構:11 層、13 層、16 層和19 層網絡,系列的VGGNet 網絡模型的結構如表1所示[5]。隨著添加更多的層(添加的層以粗體顯示),配置的深度從左(A)到右(E)逐漸增加。卷積層參數表示為接受域大小(conv)—(通道數)。

表1 VGGNet 網絡模型結構
在論文[6]中作者對表1 中的6 種VGGNet 框架使用了單尺度的方法進行了數據估計,錯誤率結果如表2 所示。

表2 在多個測試尺度下的ConvNet 性能
從表2 中我們可以得到下面三個結論:①LRN層沒有提高訓練效果的作用(A-LRN)。作者通過A-LRN 網絡得出的結果發現了在VGGNet 網絡結構中使用局部響應歸一化層(LRN) 并不能增加VGGNet 網絡的訓練能力,所以后來在其他網絡框架的訓練中就沒有再使用LRN 層。②隨著網絡深度的加深,圖像的分類能力逐漸提高。在VGGNet網絡層數從11 層變為19 層的過程中,錯誤率從top1 到top5 的下降效果非常凸出。③在卷積神經網絡結構中使用許多小尺寸的卷積核比使用大尺寸的卷積核所產生的性能要更好。作者用VGGNet 網絡中的B 類框架同其他的淺層卷積神經網絡之間做了對比實驗。作者在淺層卷積神經網絡中使用尺寸大小為5×5 的卷積核取代了VGGNet 網絡B 類框架中的尺寸大小為3×3 的兩個卷積核。實驗結果表明使用許多小尺寸的卷積核比使用大尺寸的卷積核所產生的性能要更好。
本文設計一個兩層神經網絡結構來實現場景識別。淺層網絡用于處理全局信息,而深層網絡用于處理更詳細的信息[7]。這種全局和局部組合方法可以獲取有關圖像的更多信息。
為確保在工業高速生產過程中對小包外觀圖像的檢測準確率和檢測速度,本文采用11 層和13 層雙通道VGG 網絡作為新的網絡基礎。主要原因是:網絡的層數越多,所需要處理的參數就會越多,最后的計算量就會越大,運行的時間也就會越長。通過后續的實驗,可以得出11 層網絡與13 層網絡相結合的實驗結果非常好。11 層網絡能夠保留小包外觀圖像上的輪廓信息,13 層網絡能保留住小包外觀圖像中的詳細信息。通過兩種不同卷積網絡對數據圖像進行耦合處理能夠提高對小包外觀缺陷部位的識別準確率。多幀VGG 卷積神經網絡算法結構如圖1 所示。

圖1 多幀VGGNet 網絡算法模型
多幀網絡結構如下:①11 層的淺層VGG 網絡有8 個卷積層,5 個池化層和3 個全連接層,該層網絡用于處理圖像的全局信息。②13 層的深層VGG網絡有10 個卷積層,5 個池化層和3 個全連接層,該層網絡用于處理圖像的詳細信息。
其中conv 卷積層對原始數據進行卷積操作得到映射圖層。max-avg 最大均值池化層能在保留局部感受野的同時獲得更準確的圖像信息。GAP 全局均值池化層能在不影響最終圖像特征的情況下大大降低過擬合效應。BN 算法層能在保留樣本分布特征的同時消除各層之間的分布差異。
由圖1 可知圖像經過預處理輸入多幀VGGNet網絡中,對每一個卷積核通過BN 算法消除各層之間分布的差異,再將經過處理后的特征使用max-avg池化核進行特征提取。最后將多幀網絡的特征利用全局平均池化層進行卷積運算。將卷積后的特征經過雙通道卷積技術[8]進行耦合計算得到最終的特征輸出。
本文使用TensorFlow 實現了圖1 中所示的多幀VGG 卷積神經網絡算法模型,利用預先訓練好的網絡模型,對隱層、輸入層和輸出層的權值進行隨機初始化[9]。在目標數據集上,通過引入退化學習率來進行較小的參數調整。在配置了i5-6500K CPU、32G 內存和Ge-Force GTX1080 圖形的Windows 系統工作站上進行本次實驗。
為了體現多幀VGG 卷積神經網絡算法對小包外觀圖像識別的有效性和優越性,給出以下三種VGGNet 卷積神經網絡算法對小包外觀圖像的識別,用作對比實驗進行驗證,三種方法如下:
①利用淺層VGG11 網絡對小包外觀數據集進行實驗;
②利用深層VGG13 網絡對小包外觀數據集進行實驗;
③多幀VGG 卷積神經網絡對小包外觀數據集進行實驗。
通過比較三種不同方法的訓練和測試精度,可明顯看出三種方法的差異和優點。
在多幀VGGNet 卷積神經網絡中使用的數據集主要通過成像源37 系列usb3.1CMOS 板載相機[10]對生產過程中的4 000 張小包外觀圖像進行保存,其中有1 000 張存在缺陷的小包外觀,剩下3 000 張外觀正常。使用Multi-Scale 的方法[11]來對數據進行增強操作得到10 000 張用于訓練的圖片,通過將原始圖像的像素縮放到不同的尺寸,再隨機裁切成224×224 pixel 尺寸大小的圖片。這樣做不僅能夠增加很多的數據量,而且對于防止多幀VGG 卷積神經網絡模型的過擬合也有很好的效果。工藝生產采集到的數據如圖2 所示。

圖2 工藝生產采集數據
本文選擇softmax 交叉熵損失函數[12]作為損失函數,損失是期望值與實際值之間的差額。期望值與實際值之間的誤差預計會較小。訓練的目的是找到合適的參數權值和偏差,使損失最小化。為了使損失最小化,使用的反向傳播訓練方法是Adam 優化算法[13]。卷積核的大小為3×3,卷積步長是1。每個卷積層之后是步長為2 的池化層和大小為2×2的池化核。實驗中實驗參數選擇如下:神經網絡一次輸入8 張圖像,這些圖像的訓練輪數為5 000 張。使用平滑指數衰減法[14]訓練數據,初始學習率LR設置為0.004。當模型訓練完成后,可以使用它來測試數據集。加載訓練后的模型,得到測試數據的識別精度,然后通過識別精度可以判斷網絡結構的性能。
比較三種VGGNet 卷積神經網絡算法對小包外觀數據集的訓練結果。表3 給出了訓練精度和測試精度的性能比較。在訓練過程中使用VGG11 和VGG13 網絡算法進行30 000 輪次訓練大約需要2 h,使用多幀VGG 卷積神經網絡算法進行訓練大約需要3 h。

表3 在小包外觀數據集中訓練精度和測試精度的性能比較
從表3 中在小包外觀數據集上訓練精度和測試精度的對比可以看出,使用VGG11 網絡和VGG13網絡在對數據的訓練和測試上都沒有明顯的改變。由此可以得出兩個VGG 網絡對圖像識別的效果差別不是很大。使用多幀VGG 算法最終訓練精度能達到97.3%,測試精度達到91.2%。
根據表3 實驗數據分析可知,改進多幀VGG 算法檢測4 000 張小包外觀圖像的訓練準確率為97.3%。與多幀VGG 算法相比,VGG13 算法訓練得到的準確率為76.4%,而VGG11 算法訓練得到的準確率只有75.8%,在訓練準確率上改進的多幀VGG算法提升了近21%。與傳統VGG 算法相比,改進多幀VGG 算法在測試準確率上也有了比較明顯的提高。改進多幀VGG 算法檢測4000 張小包外觀圖像的測試準確率為91.2%。與多幀VGG 算法相比,傳統VGG11 算法測試得到的準確率為68.4%,而傳統VGG13 算法訓練得到的準確率只有65.9%,在測試準確率上改進的多幀VGG 算法提升了近25%。因此,改進多幀VGG 算法在訓練準確率和測試準確率兩方面,相比于傳統算法更具可靠性和穩定性。
本文設計了多幀神經網絡算法結構,以提高網絡識別小包外觀圖像的準確性。淺層網絡用于處理全局信息,而深層網絡用于處理更詳細的信息。通過全局和局部組合方法獲得更多的圖像信息。然后將此網絡應用于小包外觀圖像數據集。通過更改實驗條件,比較了不同條件下的實驗結果。實驗結果表明,本文設計的算法可以大大提高圖像分類識別的效果。