焦方圓
申金媛1
郝同盟2
(1. 鄭州大學(xué),河南 鄭州 450001;2. 華北水利水電大學(xué),河南 鄭州 450045)
煙葉是卷煙工業(yè)的重要原料,煙葉分級(jí)[1-3]是煙草公司產(chǎn)業(yè)運(yùn)作中的一個(gè)至關(guān)重要的環(huán)節(jié),關(guān)乎種煙農(nóng)戶和行業(yè)工商企業(yè)利益,影響卷煙原料的高效利用?,F(xiàn)行烤煙評(píng)級(jí)標(biāo)準(zhǔn)[4]主要是基于人工經(jīng)驗(yàn),具有一定的主觀性。隨著煙草產(chǎn)品質(zhì)量[5]的不斷提高和圖像處理、人工智能等技術(shù)的快速發(fā)展,越來越多的學(xué)者研究將煙葉的智能識(shí)別技術(shù)代替人工的方法[6]。
目前常用的煙葉分級(jí)方法主要分為傳統(tǒng)方法和深度學(xué)習(xí)方法。傳統(tǒng)的特征提取方法是進(jìn)行圖片處理的常用方式,在煙葉分級(jí)中,通過提取煙葉圖片的顏色、脈絡(luò)等相關(guān)的顯式特征,再根據(jù)人工經(jīng)驗(yàn)來判斷煙葉的等級(jí)。常用的傳統(tǒng)分級(jí)方法有支持向量機(jī)、粒子群算法、遺傳算法等。但是傳統(tǒng)方法無法對(duì)圖片的深度特征進(jìn)行提取,存在分級(jí)準(zhǔn)確率和分級(jí)效率不高的問題。針對(duì)傳統(tǒng)方法存在的不足,文獻(xiàn)[7]在主成分分析、遺傳算法和支持向量機(jī)的基礎(chǔ)上提出了一種PCA-GA-SVM煙葉分級(jí)方法,在煙葉分級(jí)效率方面有一定的提高;文獻(xiàn)[8]通過近紅外光譜技術(shù),并結(jié)合粒子群—支持向量機(jī)(PSO-SVM)算法實(shí)現(xiàn)了煙葉更深層特征的提取;文獻(xiàn)[9]從煙葉圖像中提取用于分類定級(jí)的關(guān)鍵信息,實(shí)現(xiàn)了煙葉的智能識(shí)別和分級(jí),這種特征提取的技術(shù)對(duì)煙葉分級(jí)效率和準(zhǔn)確性都有一定提高;文獻(xiàn)[10]通過手持式近紅外光譜儀和粒子群優(yōu)化—極限學(xué)習(xí)機(jī)算法的組合,直接從煙草葉中無損地收集訓(xùn)練樣品的光譜數(shù)據(jù),利用粒子群優(yōu)化—極限學(xué)習(xí)機(jī)算法建立了不同類別的訓(xùn)練模型,并使用開發(fā)的模型來預(yù)測(cè)測(cè)試樣本的類別,為煙葉分級(jí)提供了一種新穎的分類方法。
由于卷積神經(jīng)網(wǎng)絡(luò)能夠快速提取圖片更深層次的特征,且具有良好的非線性特性,因此采用深度學(xué)習(xí)的方式對(duì)煙葉進(jìn)行分級(jí)的研究較多。常用的深度學(xué)習(xí)煙葉分級(jí)模型有VGG16網(wǎng)絡(luò)、殘差網(wǎng)絡(luò)、AlexNet網(wǎng)絡(luò)等。文獻(xiàn)[11]在經(jīng)典AlexNet網(wǎng)絡(luò)的基礎(chǔ)上提出了一種全卷積AlexNet網(wǎng)絡(luò)模型, 增加了模型的學(xué)習(xí)能力,提高了煙葉分級(jí)的準(zhǔn)確性;文獻(xiàn)[12]提出了用訓(xùn)練好的煙葉分組模型遷移學(xué)習(xí)煙葉分級(jí)的低維深層特征表達(dá),解決了煙葉分級(jí)過程中訓(xùn)練樣本少,準(zhǔn)確率不高的問題;文獻(xiàn)[13]在inception V3網(wǎng)絡(luò)模型的基礎(chǔ)上提出了一種基于深度學(xué)習(xí)的煙葉分級(jí)算法,改善了人工煙葉分級(jí)的差異性大、合格率低等現(xiàn)象。但以上研究仍存在煙葉分級(jí)準(zhǔn)確率不夠高、分級(jí)種類不夠多的問題。
經(jīng)典VGG16網(wǎng)絡(luò)模型包括卷積層和全連接層,卷積層由5個(gè)block塊組成,結(jié)構(gòu)規(guī)整簡(jiǎn)潔,沒有繁多復(fù)雜的超參數(shù),一方面有效控制了網(wǎng)絡(luò)模型的計(jì)算量,另一方面有利于對(duì)模型進(jìn)行分解。與AlexNet和ZF-Net網(wǎng)絡(luò)相比,VGG16網(wǎng)絡(luò)的卷積核更小,通過多層非線性層增加網(wǎng)絡(luò)深度,因此對(duì)于給定的感受野,可以提取更多的特征信息,采用堆積的小卷積核可以學(xué)習(xí)更復(fù)雜的模式,增加了模型的表達(dá)能力,有利于圖片的特征提取與分類。鑒于以上特點(diǎn),文章擬以VGG16網(wǎng)絡(luò)模型為原型來改進(jìn)深度學(xué)習(xí)算法。針對(duì)煙葉分級(jí)準(zhǔn)確率不高的問題,主要從卷積模塊和激活函數(shù)兩部分對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn);以41種等級(jí)的煙葉樣本進(jìn)行分類,通過增強(qiáng)數(shù)據(jù)的方式來增強(qiáng)網(wǎng)絡(luò)的識(shí)別能力;并將試驗(yàn)改進(jìn)的算法分別與原始模型和傳統(tǒng)特征提取的方式進(jìn)行結(jié)果對(duì)比,以此來驗(yàn)證試驗(yàn)算法在煙葉分級(jí)準(zhǔn)確率方面表現(xiàn)出的優(yōu)越性。
為了增強(qiáng)模型的健壯性,需對(duì)現(xiàn)有的數(shù)據(jù)集進(jìn)行平移、翻轉(zhuǎn)、旋轉(zhuǎn)、縮放、亮度增強(qiáng)等操作[14],以生成新的多樣化圖片來參與訓(xùn)練或測(cè)試。為了保持樣本的原始性和真實(shí)性,使用Python的PIL模塊,通過將圖片旋轉(zhuǎn)實(shí)現(xiàn)圖像增強(qiáng)技術(shù)。一般情況下,圖像的原點(diǎn)位置在左上角,令圖像的高度為H,寬度為W,原始點(diǎn)為(x0,y0),變換后的點(diǎn)為(x1,y1),則變換公式為:
(1)
試驗(yàn)使用的煙葉由平頂山煙草公司提供,采集的煙草透射圖像經(jīng)增強(qiáng)后的部分圖片示例如圖1所示。
圖1 部分圖像增強(qiáng)后的圖片F(xiàn)igure 1 Picture of part of the image after enhancement
由于采集到的煙葉圖片背景含有大量噪聲和雜質(zhì)[15],需對(duì)樣本集進(jìn)行背景分割和去噪。使用閾值迭代法進(jìn)行背景分割,具體步驟如下:
(1) 計(jì)算圖像的灰度值,并遍歷出圖像灰度的最大值和最小值,分別記為Zmax和Zmin,令初始閾值T0=(Zmax+Zmin)/2。
(2) 根據(jù)提出的閾值TK確定圖像的前景和背景,分別求出兩者灰度的平均值Z0和ZB。
(3) 求出新閾值TK+1=(Z0+ZB)/2。
(4) 若滿足關(guān)系式TK=TK+1,則所得結(jié)果即閾值;否則返回第(2)步。
背景分割后再進(jìn)行去除噪聲處理,使用卷積濾波的方式進(jìn)行去噪,其具體步驟如下:
(1) 用一個(gè)3×3的矩陣在圖像中由上到下,由左到右進(jìn)行卷積,邊緣部分進(jìn)行補(bǔ)零。
(2) 求出對(duì)應(yīng)像素的灰度值,并將灰度值按從小到大的順序排序。
(3) 將第5個(gè)像素的結(jié)果賦給對(duì)應(yīng)模板中心位置。
卷積濾波后的圖像如圖2所示。
圖2 預(yù)處理后的圖片F(xiàn)igure 2 Picture after preprocessing
CNN網(wǎng)絡(luò)結(jié)構(gòu)主要由輸入層、卷積層、ReLU層、池化層和全連接層等構(gòu)成,根據(jù)不同的應(yīng)用場(chǎng)景可以將這些層疊加不同的深度,從而構(gòu)建一個(gè)完整的卷積神經(jīng)網(wǎng)絡(luò)。通常將卷積層與ReLU層并稱為卷積層,因此在卷積層經(jīng)卷積操作后,需通過激活函數(shù)來增強(qiáng)網(wǎng)絡(luò)的非線性建模能力。一般來說,卷積層和全連接層(CONV/FC)對(duì)輸入執(zhí)行變換操作時(shí),不僅會(huì)用到激活函數(shù),還會(huì)用到較多參數(shù),即神經(jīng)元的權(quán)值w和偏差b;而ReLU層和池化層則是進(jìn)行一個(gè)固定不變的函數(shù)操作。隨著梯度的下降,對(duì)卷積層和全連接層中的參數(shù)進(jìn)行訓(xùn)練,使卷積神經(jīng)網(wǎng)絡(luò)計(jì)算出的分類分?jǐn)?shù)對(duì)應(yīng)訓(xùn)練集中每幅圖像的標(biāo)簽[16]。
如圖3所示,原始VGG16的輸入被設(shè)置為224×244大小的RGB圖像,網(wǎng)絡(luò)對(duì)輸入圖像計(jì)算RGB均值,然后將圖像作為輸入傳入VGG16卷積網(wǎng)絡(luò)。經(jīng)典VGG16網(wǎng)絡(luò)模型包括卷積層和全連接層,卷積層包括5個(gè)block塊,卷積核大小為3×3,卷積層步長(zhǎng)設(shè)置為1。池化操作采用最大池化的方式,池化單元尺寸為2×2。激活函數(shù)為ReLU函數(shù)。最后通過3層全連接層完成維度向量的轉(zhuǎn)換。
圖3 VGG16網(wǎng)絡(luò)原理圖Figure 3 VGG16 network principle diagram
傳統(tǒng)的卷積過程是卷積核在二維輸入數(shù)據(jù)上掃描,每次掃描的面積與卷積核的尺寸大小相同,并將對(duì)應(yīng)元素加權(quán)求和(見圖4)。
圖4 傳統(tǒng)CNN卷積Figure 4 Traditional CNN convolution
在深度學(xué)習(xí)網(wǎng)絡(luò)中,為了進(jìn)一步抽取更高階的特征,需在卷積操作后以池化的方式進(jìn)行下采樣[17],而下采樣的同時(shí)也忽略了一些特征信息,大量使用池化操作會(huì)損失部分圖像特征,不利于煙葉等級(jí)的識(shí)別。
為避免上述信息缺失的問題,提出將空洞卷積代替block中傳統(tǒng)卷積的方法。假設(shè)空洞卷積的卷積核大小為k,空洞數(shù)為d,其等效卷積核大小k′,則:
k′=k+(k-1)×d-1。
(2)
當(dāng)前層的感受野:
(3)
RFi+1=RFi+(k-1)×Si,
(4)
式中:
Si——除當(dāng)前層外前面所有層的步長(zhǎng)的乘積;
RFi+1——當(dāng)前層的感受野;
RFi——上一層的感受野;
k′——卷積層中卷積核的大小。
空洞卷積的具體工作過程如圖5所示。
圖5 空洞卷積Figure 5 Convolution with holes
假設(shè)空洞數(shù)量為d,則在一定的像素區(qū)域中,每隔d個(gè)像素對(duì)像素點(diǎn)進(jìn)行采樣,然后再將采樣點(diǎn)與卷積核進(jìn)行卷積,故在不增大卷積核尺寸的同時(shí)擴(kuò)大了感受野,避免了因池化帶來的特征信息損失,且保持像素的相對(duì)空間位置不變。
傳統(tǒng)的VGG16網(wǎng)絡(luò)的激活函數(shù)采用ReLU函數(shù),其函數(shù)曲線如圖6所示。
由圖6可知,當(dāng)x<0時(shí),ReLU硬飽和,其函數(shù)值為0,當(dāng)x>0時(shí),則不存在飽和問題。因此,ReLU函數(shù)能夠在x>0時(shí)保持梯度不衰減,有效緩解了梯度消失的問題。這使得能夠直接以監(jiān)督的方式訓(xùn)練網(wǎng)絡(luò)模型,而無需依賴無監(jiān)督的逐層預(yù)訓(xùn)練。樣本集訓(xùn)練過程中,可能存在部分輸入落入硬飽和區(qū)的情況,這將導(dǎo)致無法更新對(duì)應(yīng)權(quán)重。這種現(xiàn)象被稱為“神經(jīng)元死亡”。與sigmoid類似,ReLU的輸出均值也>0,對(duì)于網(wǎng)絡(luò)的收斂性而言,偏移現(xiàn)象和神經(jīng)元死亡都有著重要影響。
圖6 ReLU激活函數(shù)曲線Figure 6 ReLU activation function curve
針對(duì)x<0的硬飽和問題,文章對(duì)ReLU函數(shù)作出相應(yīng)的改變,將ReLU激活函數(shù)改為L(zhǎng)eaky_relu,其數(shù)學(xué)表達(dá)式為:
(5)
式中:
a——梯度值,也可以作為一個(gè)參數(shù)來學(xué)習(xí),一般初始化α為0.25,不采用正則。其函數(shù)曲線如圖7所示。
由圖7可知,Leaky_relu函數(shù)保留了x<0時(shí)的梯度,這樣既修正了數(shù)據(jù)分布,又能保證網(wǎng)絡(luò)中相應(yīng)權(quán)重的更新,避免了負(fù)軸信息丟失。Leaky_relu函數(shù)的分布特點(diǎn)決定了其以下特點(diǎn):
圖7 Leaky_relu激活函數(shù)曲線Figure 7 Leaky_relu activation function curve
(1) 神經(jīng)元不會(huì)出現(xiàn)死亡的情況。
(2) 對(duì)于所有的輸入,不管是大于等于0還是小于0,神經(jīng)元不會(huì)出現(xiàn)飽和現(xiàn)象。
(3) 由于Leaky_relu線性、非飽和的形式,在梯度下降時(shí)能夠快速收斂。
(4) 由于Leaky_relu函數(shù)只有線性關(guān)系,不需要指數(shù)的計(jì)算,因此計(jì)算速度會(huì)有所增加,不管在前向傳播還是反向傳播,計(jì)算速度均比sigmoid和tanh快。
試驗(yàn)使用的原始煙葉數(shù)據(jù)集有1 498張,共41種等級(jí),通過對(duì)原始數(shù)據(jù)進(jìn)行±5°的旋轉(zhuǎn)增強(qiáng),數(shù)據(jù)集擴(kuò)充為4 494張,其中3 371張煙葉圖片作為訓(xùn)練集,1 123張煙葉圖片作為測(cè)試集。
使用Pycharm工具,運(yùn)用keras、tensorflow等框架,對(duì)數(shù)據(jù)集進(jìn)行結(jié)果驗(yàn)證,其詳細(xì)參數(shù)信息見表1,試驗(yàn)結(jié)果見圖8。
表1 試驗(yàn)的詳細(xì)參數(shù)Table 1 Detailed parameters of theexperiment
由圖8可知,改進(jìn)后算法的準(zhǔn)確率收斂速度較快,分級(jí)準(zhǔn)確率更高;原始VGG16網(wǎng)絡(luò)模型的準(zhǔn)確率為88.02%,改進(jìn)后算法的分級(jí)準(zhǔn)確率達(dá)到95.89%,提高了7.87%。
圖8 原始VGG16網(wǎng)絡(luò)與改進(jìn)算法的分級(jí)準(zhǔn)確率
由圖9可知,算法改進(jìn)后的損失率收斂速度較快,且損失率更??;原始VGG16網(wǎng)絡(luò)模型的損失率為0.39,算法改進(jìn)后的損失率為0.13,算法改進(jìn)后損失率有所降低。
圖9 原始VGG16網(wǎng)絡(luò)與改進(jìn)算法的分級(jí)損失率
由表2可知,改進(jìn)模型的分級(jí)準(zhǔn)確率更高,最終的損失率更小,且試驗(yàn)改進(jìn)的模型訓(xùn)練過程中更加穩(wěn)定,收斂速度較快。
表2 不同算法的試驗(yàn)結(jié)果Table 2 Experimental results of different algorithms
值得說明的是,使用不同性能的計(jì)算機(jī),計(jì)算速度和計(jì)算時(shí)間有很大的差別。試驗(yàn)所用計(jì)算機(jī)的算力為7.5,通過GPU-GTX1650來計(jì)算。從運(yùn)算時(shí)間上來看,與VGG16算法相比,改進(jìn)算法沒有明顯的優(yōu)勢(shì),但比傳統(tǒng)SVM算法的速度稍快;從準(zhǔn)確率上來看,改進(jìn)算法的準(zhǔn)確率均優(yōu)于SVM和原始VGG16算法,且損失率有所減小,與文獻(xiàn)[12]中的CNN算法相比,試驗(yàn)算法的分級(jí)準(zhǔn)確率仍略高一些,且識(shí)別了更多的煙葉等級(jí)。因此試驗(yàn)改進(jìn)算法具有較好的煙葉預(yù)測(cè)與分類性能。
為了考察試驗(yàn)改進(jìn)模型的預(yù)測(cè)能力,將改進(jìn)算法的訓(xùn)練結(jié)果與測(cè)試結(jié)果進(jìn)行對(duì)比,結(jié)果如圖10所示。
圖10 試驗(yàn)改進(jìn)算法的訓(xùn)練與測(cè)試結(jié)果對(duì)比
由圖10可知,當(dāng)?shù)螖?shù)≤21次時(shí),測(cè)試曲線波動(dòng)較大,而訓(xùn)練曲線穩(wěn)步上升,但從第21次之后,測(cè)試曲線開始快速收斂,從整體上來看預(yù)測(cè)曲線與訓(xùn)練曲線趨勢(shì)相同,且能夠與訓(xùn)練曲線收斂一致,表明模型有較好的預(yù)測(cè)能力。
文章從經(jīng)典VGG16網(wǎng)絡(luò)出發(fā),自定義搭建卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),將空洞卷積技術(shù)運(yùn)用到網(wǎng)絡(luò)中,在不增大卷積核尺寸的同時(shí)擴(kuò)大感受野,避免了因池化帶來的特征信息損失,并通過改變激活函數(shù)來提高算法的泛化性和魯棒性,使用煙葉數(shù)據(jù)集分類的層次結(jié)構(gòu)來增強(qiáng)從各種深度CNN架構(gòu)獲得的預(yù)測(cè)的一致性。結(jié)果表明,與傳統(tǒng)SVM算法、原始VGG16網(wǎng)絡(luò)以及文獻(xiàn)[12]中的CNN算法相比,試驗(yàn)算法在分級(jí)準(zhǔn)確率和損失率上有更好的優(yōu)越性。但試驗(yàn)算法并不能考慮到煙葉內(nèi)部的化學(xué)特征對(duì)煙葉分級(jí)的影響,后續(xù)將通過多模態(tài)數(shù)據(jù)融合或者進(jìn)一步地優(yōu)化網(wǎng)絡(luò)模型,來實(shí)現(xiàn)煙葉分級(jí)準(zhǔn)確率和分級(jí)速度的進(jìn)一步提升。