陜西中煙工業有限責任公司寶雞卷煙廠 陜西 寶雞 721013
卷積神經網絡實現圖像分類的原理可用“盲人摸象”這一成語進行概況,即使用多個過濾器(卷積核)從多個維度對原始圖像的特征進行采集,并將采集到的特征進行集成最終實現圖像分類。卷積神經網絡由卷積層、池化層、全連接層、正則化方法組件組成。卷積層實現對原始圖像特征的提取,構成多個特征圖;池化層對原始圖像的特征圖進行下采樣降維處理,提高效率;全連接層將特征圖轉換為一維向量,便于目標函數的運算實現分類;正則化方法提高分類模型的泛化能力,減小過擬合,實現較高的分類準確率。在模型訓練過程中,將預測值與真實類別標簽值的誤差反向傳播至網絡各層,各層級根據實際誤差調整參數,反復進行訓練,最終得到較高的圖像分類準確率模型[1]。
基于卷積神經網絡的煙梗異物剔除系統的工作原理為:使用全局快門工業相機對運動中的煙梗物料圖像進行采集,AI工控機利用卷積神經網絡分類模型對采集到的圖像進行推理分類,以辨別圖像中是否含有異物。如果含有異物,AI工控機中的程序控制繼電器、電磁閥、氣缸,打開振動輸送機下方的翻板門,將異物排出,實現異物的剔除。其中全局快門相機實現整個系統的圖像采集,需調整曝光時間等參數,以減少圖像中存在的拖影。AI工控機中存放訓練好的分類模型,及運行調用分類模型的程序,以實現圖像的采集分類。可使用Modbus網絡連接AI工控機及繼電器,使用相應編程語言實現AI工控機控制繼電器。根據振動輸送機運行特點,可采用活塞式雙作用氣缸,實現對翻板門的開閉控制[2]。
煙梗異物剔除系統的軟件實現主要是利用卷積神經網絡構建分類模型,在本案例中,使用Python編程語言的Keras包進行分類模型的構建。在構建分類模型前,需進行不含雜物物料和含雜物物料的圖像采集。在正常生產過程中,使用全局快門工業相機采集不含雜物物料和含雜物物料的圖像各10000張。采集完成后,在計算機上建立目錄,存放圖像。在計算機上建立名為base的目錄,在base目錄下建立train和test兩個子目錄,分別用于存放訓練集圖像和測試集圖像。在實際生產環境中,可收集到的圖像有限,可考慮使用圖像增強技術擴充訓練集和測試集。以Keras為例,可利用ImageDataGenerator類實現數據集的擴充,并實現將數據集圖片從base目錄導入模型進行訓練。
數據集構造完成后,便可進行模型的搭建。可考慮從兩個方面建立模型,一是自定義卷基層、池化層等構建分類模型;二是利用預訓練網絡構建分類模型,例如使用VGG16、Xception、MobileNet等。筆者傾向于選擇利用預訓練網絡構建分類模型,該方式對于較小數據集可構建高準確率分類模型。使用預訓練網絡構建分類模型時需注意,只需使用預訓練網絡的卷積基即可,根據案例的實際情況,開發人員需自行添加全連接層。
模型構建完成后,需設置編譯參數,包括優化器的選擇、損失函數的確定、指定評估方法。
由于使用預訓練網絡構建分類模型,在第一次訓練過程中,可使用imagenet數據集中的參數,即凍結所使用的預訓練網絡卷積基所有層中的參數,只對全連接層參數進行訓練。第一次訓練結束后,在此基礎上,凍結預訓練網絡卷積基部分層的參數,對剩余層參數進行訓練,目的是使得得到的分類模型更好的應用于實際案例中。
由于使用的預訓練網絡為深層卷積神經網絡,所以在訓練過程中一般不會出現欠擬合的情況。為了防止過擬合情況的出現,可在各全連接層后添加隨機失活層。隨機失活在一定程度上緩解了神經元之間復雜的協同適應效應,降低了神經元之間的依賴程度,避免了網絡過擬合的發生。
通過以上思路,可得到分類模型文件。可利用Python語言編寫程序加載分類模型文件,并對工業相機采集到的圖像進行分類,結合分類結果和簡單的條件判斷語句實現異物的剔除。