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