周萍芳 張思明 張中武 簡著名
(湖北中煙工業有限責任公司武漢卷煙廠,湖北 武漢 430032)
煙草作為一種經濟農作物對于國家財政有著舉足輕重的作用,而自身的煙葉品質也直接決定了成品香煙的品質。煙葉在經過復烤之后還需要在倉庫中存放很長時間,這是為了后續的自然醇化[1,2]。不經過醇化過程的煙葉就是“新煙”,往往存在很多缺陷,而經過醇化的煙葉無論是品質還是口感,都得到大幅提升。所以,從新鮮煙葉的采摘到成品香煙的出廠往往需要經歷很長時間[3]。霉變煙葉的生物結構會被大幅破壞,并迅速分解自身營養物質,不僅香味消失,還會出現發黑和腐爛的情況,其價值完全喪失[4]。
目前我國較為常見的霉變檢測方法存在很大局限性,往往需要經過復雜的流程,還會產生較大誤差,因此儲存煙葉時往往會造成很大損失[5]。同時,煙葉在倉庫中大量存放,發生霉變的位置復雜隱蔽,經常無法檢測并流入生產線,造成了嚴重損失。
為了能夠提高煙葉霉變檢測的精度,本文采用了BP 神經網絡和數據預處理的方法,在煙葉儲存空間設置多處傳感器數據采集點,以此實現煙葉霉變的在線檢測、識別和預警。本文構建了BP 神經網絡監測煙葉儲存空間,并通過大量環境數據和監測數據對煙葉狀態進行監控,一旦出現霉變迅速處理。該研究對于提高煙葉醇化效率降低因霉變造成的經濟損失有著極大的意義。
本文構建BP 神經網絡識別算法模型的流程是首先確定神經網絡的層數,包括不同層內的神經元節點,然后選定激活函數和訓練函數,最后搭建整個BP 神經網絡。整個網絡構成可以分為三部分:構建算法、算法訓練和算法測試,如圖1 所示。

圖1 在線煙葉霉變狀態識別流程
算法中的輸入層主要包含四種參數:環境溫度、環境濕度、CO2濃度和乙醇濃度,因此將輸入層節點數設置為4。將狀態分別定義為0(正常)、1(輕微霉變)、2(中度霉變),如表1,所以輸出層節點數設置為1。

表1 煙葉狀態對照表
從上文可知,基于視覺的BP 神經網絡的在線煙葉霉變檢測模型結構為4-X-1,X 代表隱含層節點數尚未確定,在線煙葉霉變檢測模型結構如圖2 所示。

圖2 基于BP 神經網絡的煙葉狀態識別模型
如果隱含層中的神經元節點設置過少,結果可能造成神經網絡的訓練過程收斂變慢或者不收斂。如果隱層中節點過多,模型的預測精度會提高,但同時網絡拓撲結構過大,收斂速度慢,普遍性會減弱。如果BP 神經網絡中輸入層節點數為m個,輸出層節點是為n 個,則由下式式可推出隱藏層節點數為s 個。

其中b 一般為1-9 的整數。在線煙葉霉變檢測模型中m=4,n=1,因此確定隱含倉節點數s 的范圍為3~10 之間的整數。根據以往的經驗,將隱藏層節點數范圍設置為5-8 的范圍,根據仿真結果擇優確定。
本系統中選取trainlm 函數為訓練函數。激活函數通常為非線性函數,并需要連續可微,一般為非線性的logsig()函數、tansig()函數等。在多數情況下,神經網絡需要表示非線映射關系時,最常使用的是非線性激活函數logsig()函數,logsig()是對數S形函數,其表達式如下式所示,其曲線圖如圖3 所示。

圖3 對數S 形函數曲線圖

該函數具有如下的特性:當x 趨近于負無窮時,f(x)趨近于0;當x趨近于正無窮時,f(x)趨近于1;當x=0 時,f(x)=0.5。
如果儲存的煙葉出現霉變,第一時間要對其進行霉情評定,確定了危害等級之后要采取相應措施。根據《GB_T23220-2008- 煙葉存儲保管方法》,將煙葉霉變狀態分為3 級,如表2 所示。Ⅰ級霉變是指煙葉有輕微霉味,霉變煙葉質量小于0.5%,危害程度輕微。Ⅱ級霉變是指煙葉有較大霉味,霉變煙葉質量大于等于0.5%而小于5%,危害程度中等。Ⅲ級霉變是指煙葉有強烈的嗆人的霉味,霉變煙葉量大于等于5%危害程度嚴重。由于需要在煙葉霉變尚可控制的階段時發現并提示管理人員處理,所以Ⅲ級霉變沒有實際意義。本文去掉Ⅲ級霉變的定義,將倉儲煙葉狀態分為三級:正常、輕微霉變、中等霉變。

表2 霉變分級表
煙葉分級圖如圖4、圖5、圖6 所示。

圖4 正常煙葉

圖5 輕微霉變煙葉

圖6 中等霉變煙葉
本文利用數據采集設備收集模擬煙葉儲存環境的數據。實驗過程中,在實驗箱中放入相同批次的煙葉,并連同數據采集設備封箱3 小時,在收集到的數據穩定之后將數據上傳至云端數據庫,并進行分析。模擬煙葉儲存環境如圖7 所示。

圖7 模擬煙葉倉儲環境
數據采集頻率為30s/次,持續時間約為2~3 個月,共收集到3 萬余條數據,并隨機選取4000 條數據進行算法模型的訓練和測試,其中3000 條數據作為訓練數據集,1000 條數據作為測試數據集。為了便于實驗,本文只對環境參數相差較大的數據進行分析,如表3。

表3 模擬煙葉倉儲環境監測數據
數據預處理的流程在圖8 中展示。首先通過數據終端進行數據收集,判斷數據是否出現空缺,如果空缺存在,則對數據進行補缺;在數據空缺判斷之后進行異常數據檢驗,如果檢測到異常數據,則對數據進行異常處理;對所得數據集進行數據歸一化處理,最終獲得完整的數據樣本。

圖8 數據預處理流程
如果算法模型的設計過程中存在輸入參數與閾值數據偏差過大的情況,那么模型輸出值就會出現跨度較大。因此,為了能夠避免出現數據過擬合的情況,提高模型監測速度和提高網絡收斂速度,本文對煙葉存儲的環境數據進行歸一化處理,將網絡模型的訓練輸出數據限制在[0-1]之間,數據歸一化公式如下:

其中,xi為樣本數據中的第i 個值,xmin表示樣本數據中的最小值,xmax代表樣本數據中的最大值。歸一化后的部分數據如表4 所示。

表4 部分歸一化數據
利用MATLAB 軟件中BP 神經網絡工具箱的相關函數進行仿真實現,最后可視化輸出結果等,仿真主要包括以下步驟:(1)依托newff函數搭建一個BP 神經網絡框架;(2)依托trainlm函數訓練訓練BP 神經網絡;(3)依托sim函使將BP 神經網絡訓練過程圖形化。
本文對所設計的算法模型進行測試。測試開始前將網絡收斂誤差調整為0.001,最大訓練次數為6000 次,隱含層節點數為5~8,如圖9 所示。為了找到最合適的隱藏層節點數,對不同節點數的隱藏層進行仿真結果分析,訓練誤差如圖10 所示。

圖9 BP 神經網絡訓練參數

圖10 不同隱含層節點數的模型所對應的訓練誤差
通過對圖10 的訓練誤差分析得知,算法模型訓練效果最理想、誤差最小的隱含層節點數為6,并且無論訓練次數是1000、1500 還是2000,訓練誤差均為最低。隱含層節點數為6時其訓練結果如圖11 所示。從圖中可以看出,當BP 神經網絡的網絡模型結構設置為“4-6-1”時,訓練2000 次網絡后的精度達到了0.001,因此本文的網絡模型結構已經確定。

圖11 倉儲煙葉狀態識別模型訓練誤差曲線
完成了算法模型的訓練之后,需要使用測試集數據驗證該算法的可行性。通過分析算法模型的測試結果,從3 種狀態的煙葉數據中隨機分成1000 組,并預處理數據之后驗證本文所設計的算法模型。當輸出值為0 時,認為煙葉為正常狀態;當輸出值為1 時,煙葉發生輕微霉變;當輸出值為2 時,認為煙葉發生中度霉變。隨機選取其中3 組驗證結果如表5 所示,模型的識別率達到98.736%,由此判斷本文所設計的基于視覺和BP神經網絡的在線煙葉霉變檢測算法模型性能良好。

表5 部分測試結果
傳統的在線煙葉檢測模型往往需要人工參與,具有較大主觀性,并且過程繁瑣,時間成本較高,很難準確檢測出霉變煙葉。因此,本文采用了BP 神經網絡和數據預處理的方法,實現了煙葉霉變的在線檢測、識別和預警。本文構建了BP 神經網絡監測煙葉儲存空間,并通過大量環境數據和監測數據對煙葉狀態進行監控,一旦出現霉變迅速處理。對整個識別模型在Matlab 中進行了仿真和測試,并最終擇優確定BP 神經網絡隱含層節點數,確立了網絡模型。最終仿真結果表明,本文所設計的基于視覺和BP 神經網絡的在線煙葉霉變檢測算法模型性能良好,模型的識別率達到98.736%。