王士鑫,云利軍,2,葉志霞,王一博
(1.云南師范大學 信息學院,云南 昆明 650500) (2.云南師范大學 云南省光電信息技術重點實驗室,云南 昆明 650500)
目前國內的煙葉分級一般還是采用人工分級的方式,這種方式往往存在煙葉分級的差異性、分級結果不穩定、合格率低等問題[1],同時會造成煙葉資源的浪費,煙農與收集站的矛盾等一系列問題;所以利用先進的信息技術對煙葉進行科學合理的分級,能夠提高煙葉資源利用率,解決煙農與收集站的糾紛,對緩解民生問題和煙葉資源的可持續發展有著重大意義.隨著圖像處理方法技術的日趨成熟,越來越多的運用到煙葉分級中.2017年,賓俊等[2]提出了一種基于NIR和ELM的技術方法來對煙葉進行自動分級,避免高低價位煙葉之間的誤判,但存在使用近紅外光譜手動掃描煙葉時,每片煙葉僅有一條代表光譜,對殘缺煙和雜色煙適用性不好的問題.同年,李航[3]提出了基于聚類和加權K近鄰的煙葉分級研究,得到的識別正確率為94.59%.2018年,姚學練等[4]提出了基于PCA-GA-SVM的煙葉分級方法,利用PCA對煙葉特征進行降維去除交叉冗余信息,然后再利用GA對SVM的模型懲罰參數和核函數參數進行優化,對煙葉進行分級.同年,趙世民等[5]提出一種基于圖像特征的煙葉分級方法,通過提取顏色、形狀、紋理等特征對煙葉進行檢測.2019年,趙樹彌[6]根據機器視覺的技術檢測分類手段,對送烤前的煙葉進行成熟度劃分檢測,并設計了全自動化的鮮煙葉檢測分級裝置.從以上分析可以看出,雖然國內外均對煙葉分級進行了研究,但都存在著樣本數據量少、特征采集不完善等問題.同時,在圖像識別技術發展過程中,相較于淺層網絡依舊依靠人工手段對數據模型進行特征的提取,深度學習可以對數據模型進行逐層的特征提取,同時,深層網絡結構對數據進行特征處理時,得到的特征值更易于圖像分類和識別的分析.
卷積神經網絡(CNN)是一種具有深度結構的前饋神經網絡(feedforward neural networks),具有表征學習(representation learning)能力,可以從輸入數據中提取需要的數據特征[7-10].同時,卷積神經網絡仿造生物的視知覺機制進行構建,其卷積層和池化層可以識別位于空間不同位置的相近特征,可以實現監督學習和非監督學習.卷積神經網絡中的隱含層卷積核參數共享和層間連接稀疏性的特點,可以減少參數數量,使運算變得簡潔、高效[11-12],因此被廣泛應用在計算機視覺和語音識別等各個領域.
Inception V3模型是卷積神經網絡中一種具有優良局部拓撲結構的網絡,它最重要的改進是分解(factorization),也就是把對稱的空間卷積分解成為不對稱卷積(spatial factorization into asymmetric convolutions);相當于把一個大的二維卷積分解成為2個小的一維卷積,這樣一方面節約了大量參數,提高了運算速度并減輕過擬合,讓多余的計算能力用來加深網絡;另一方面,網絡深度獲得了進一步提升,增加了網絡非線性擴展模型的表達能力;不對稱卷積結構模型如圖1所示[13].
同時,將網絡輸入從224×224變為了299×299,使得35×35/17×17/8×8 三個inception模塊組更加精細,并通過平衡每階段的過濾器數量和網絡深度實現網絡的優化,達到擴展寬度和深度以及提高網絡質量的作用.inception V3網絡結構模型如圖2所示.

本文實驗樣本數據來源于實地采集的云南省曲靖市某煙葉收集站.本文煙葉圖片數據采集選用的設備為FUJIFILM X-A3,其圖像傳感器規格為23.5 mm×15.7 mm,采集的圖片分辨率為6 000×4 000,輸出的文件格式為JPEG.圖3給出了本次采集的部分原煙中部葉組圖片數據.
對所采集的12個等級的煙葉圖片數據進行整合匯總,其分別為:上部葉組:B1F、B2F、B3F、B4F;中部葉組:C2F、C3F、C4F;下部葉組:X2F、X3F、X4F;以及雜色組B1K、CX2K.12個等級中每個等級的煙葉圖片為 1 000 張,其中700張用于訓練,300張用于測試,總計為 12 000 張煙葉圖片.具體分類情況如表1所示.


表1 煙葉種類表
1) 訓練機器學習分級算法時,首先對數據進行預處理,接著對輸入的煙葉圖像并行地執行多個卷積運算(conv)和池化操作(pooling),將所有輸出結果拼接為深度特征圖[14],然后進行1×1、3×3 和 5×5 等不同的conv與pooling(設定卷積步長stride=1,分別設定padding =0、1、2)運算,將得到的煙葉圖像特征進行拼接后獲得煙葉圖像的特征信息,最后對煙葉圖像的信息進行并行處理得到煙葉的圖像表征.
2) 在Inception V3網絡中,將1×1、3×3、5×5的conv和3×3的pooling堆疊在一起,既可以增加網絡的寬度,又可以提高網絡的適應性;將一個二維的卷積分解成2個一維的卷積,一方面增加了網絡非線性的擴展模型表達能力,另一方面可以使網絡的深度獲得進一步提升.圖4為Inception V3模塊組的結構圖[14].

3) 在空間聚合之前降低煙葉的輸入表征,使相鄰單元結果的強相關性在降低維度時損失較小;同時,信號得到有效地壓縮,使學習變得更快,減少訓練所需的時間.
4) 為了避免訓練過程中出現過擬合,采用遷移學習的方式來訓練樣本集;將卷積層的輸出結合網絡層完成遷移學習后,對煙葉圖像進行特征向量提取,將提取得到的特征向量作為輸入,來訓練全連接層神經網絡進行煙葉分級.定義網絡架構為:
F(X)=Y′.
(1)
其中X為輸入圖像,Y′為真實類別,F為神經網絡;選取交叉熵函數作為損失函數categorical cross-entropy loss,表示為:
C=-[YlnF(x)+(1-Y)ln(1-F(x))].
(2)
其中C為交叉熵損失函數值,Y為是實際輸出,F(x)為期望輸出;當Y=1時,交叉熵損失函數表示:
C=-ln[F(x) ].
(3)
當期望值輸出越接近1時,損失函數越小,相反期望值越接近于0時,損失函數越大.當Y=0時,交叉熵損失函數表示為:
C=-ln[1-F(x)].
(4)
當期望值輸出越接近0時,損失函數越小,相反期望值越接近于1時,損失函數越大.
5) 在訓練過程中經過N個極值點,分別為M1,M2,…,Mn.表示為:
Mn=Max(M1,M2,…,Mk).
(5)
極值點進行跳躍時,以Mn作為起跳點,從n點開始起跳,如果跳出極點值時發現第k個極值點的性能Mk要優于Mn,則后面從Mk的位置開始起跳,當從Mk跳躍X次都沒有發現比Mk性能更好的極值時,則取Mk為最優解值.
在網絡層中偏置項w,b為變量,凍結inception參數,對全連接層中的參數進行訓練;使用自適應矩陣(Adam)優化器對其進行預熱,設置學習率(lr)=0.001,迭代訓練20次,作為預熱全連接層神經元;激活inception網絡層,對損失函數中每個w,b求偏導.偏導公式為公式(6)、公式(7):

(6)

.
(7)
設置學習率,進行迭代訓練時使損失函數C跳出所在的局部極小值;迭代20次,得到model_1,重復該算法依次得到model_1,model_2,model_3.由于每個model都處于不同的局部極小值點,當預測樣本時,通過對模型進行融合作為預測值;訓練一次可以得到3個模型進行融合.具體表示為式(8):
F(X)=(F(X1)+F(X2)+F(X3))/3.
(8)
首先對輸入的煙葉圖像數據并行執行多個卷積和池化運算操作,通過不同的卷積運算與池化操作獲得煙葉圖像的特征信息,將輸出結果綜合為煙葉圖像的深度特征圖;然后將卷積層的輸出結合網絡層完成整個遷移學習過程;最后通過交叉熵損失函數來表示煙葉樣本和預測概率之間的差值.交叉熵損失函數曲線如圖5所示.
對所采集的12個等級的煙葉樣本數據進行仿真實驗測試,對輸入圖像執行卷積運算,隨著訓練迭代次數的增加,交叉熵損失函數曲線逐漸趨于平滑,識別的準確率也隨著訓練次數的增加逐步穩定.同時與粒子群算法和遺傳算法進行比較,得到優于這2種算法的識別正確率,其具體測試比較結果如表2和圖6所示.

表2 不同算法的煙葉識別正確率
注:測試樣本數均為3600.
通過以上對3種算法進行仿真實驗對比分析可知:粒子群算法和遺傳算法的識別正確率曲線呈平緩增漲,增長速度慢,正確率出現驟降現象,會影響煙葉分級的精準度.而從本文算法的實驗結果可以看出:隨著迭代次數的增加,煙葉分級的正確率有很大的提升,并且分析結果穩定,具體變化趨勢如圖7所示.


針對煙葉分級仍然依靠人工分級為主的現狀,本文提出了一種基于卷積神經網絡(CNN)的煙葉分級方法.在對數據進行預處理后,將輸入的煙葉圖像并行地執行多個卷積運算和池化操作,通過不同的卷積運算與池化操作獲得煙葉圖像的特征信息,然后將卷積層的輸出結合網絡層完成整個遷移學習過程,最后通過交叉熵作為損失函數來表示煙葉樣本和預測概率之間的差值.仿真實驗結果表明,本文方法識別正確率優于傳統的分級算法,識別正確率達到95.23%,為煙葉分級的理論與實踐研究提供了一種新的思路.