潘 斌 韓 強 姚婭川
(1.四川輕化工大學(xué)自動化與信息工程學(xué)院,四川 自貢 643000;2.人工智能四川省重點實驗室,四川 自貢 643000;3.四川輕化工大學(xué)物理與電子工程學(xué)院,四川 自貢 643000)
中國白酒生產(chǎn)工藝中摘酒是非常重要的環(huán)節(jié),目前絕大數(shù)酒廠摘酒多由工人憑借經(jīng)驗按酒花進行分類,效率低下且分類不夠客觀、準(zhǔn)確。為實現(xiàn)酒花自動分類,進一步實現(xiàn)自動化摘酒,國內(nèi)外許多學(xué)者對代替人眼進行酒花分類開展了大量研究,趙平[1]設(shè)計了一種白酒量質(zhì)摘酒過程中的圖像采集和傳輸裝置,避免了摘酒工需要進入生產(chǎn)車間,但仍然沒有消除摘酒過程中的人工干預(yù)。何盛國等[2]在白酒蒸餾的甑罐出口設(shè)置了酒精度、風(fēng)味物質(zhì)在線檢測儀器,完成分段摘酒。但該方法使用的在線檢測儀器價格昂貴,難以實現(xiàn)大規(guī)模的自動化摘酒。范明明[3]利用近紅外技術(shù),開發(fā)了基于近紅外技術(shù)的白酒摘酒在線檢測裝置,取得了較好的試驗效果,但需要在白酒生產(chǎn)線上進行實用化試驗。余鍇鑫[4]提出了基于圖像分類算法的自動化摘酒方法研究,將深度學(xué)習(xí)引入到白酒摘酒環(huán)節(jié),但受到了計算量的限制,分類速度緩慢。陳林等[5]提出酒精度重建模型配合分段摘酒裝置,通過音叉密度計建立基酒與酒精度模型的關(guān)系,來預(yù)測基酒酒精度。楊靜嫻等[6]提出基于圖像處理的白酒酒花輪廓檢測,采用模式識別的方式實現(xiàn)智能摘酒。
雖然目前已有酒企采用接觸式設(shè)備進行智能摘酒,脫離了人工摘酒,但設(shè)備價格昂貴、維護成本高、不易實現(xiàn)大規(guī)模生產(chǎn)。而非接觸式的機器視覺技術(shù),因為成本低,方便快捷,易于大規(guī)模實現(xiàn)。研究擬提出基于卷積神經(jīng)網(wǎng)絡(luò)的酒花分類方法,以期實現(xiàn)智能摘酒。
相同的溫度和壓強下,不同成分的酒會具有不同的黏度和表面張力,因此酒花會有所不同[7-8]。不同酒精度的基酒產(chǎn)生的酒花會不同即酒花與基酒酒精度有對應(yīng)關(guān)系。酒花特征與酒精度的關(guān)系如表1所示。
表1 酒花特征與酒精度
目前中國沒有完整的酒花數(shù)據(jù),需要人工采集,因此需要自行構(gòu)建白酒酒花數(shù)據(jù)集。
1.2.1 工業(yè)相機選型 工業(yè)相機具有高的成像質(zhì)量、更快的傳輸速度、更好的圖像穩(wěn)定性和更強的抗干擾能力,考慮到圖像傳感器類型、分辨率、幀率、接口類型等,選擇中國??低暪旧a(chǎn)的MV-CA050-20GM/GC型工業(yè)面陣相機。其性能參數(shù)如表2所示。
表2 MV-CA050-20型工業(yè)相機性能參數(shù)
1.2.2 數(shù)據(jù)采集 為實現(xiàn)精確的酒花分類,采用控制變量法采集數(shù)據(jù),利用蒸汽閥門控制流酒速度,盛酒器與流酒管高度固定。酒花數(shù)據(jù)來自中國某酒廠,采用MV-CA050-20GM/GC型工業(yè)面陣相機,由2名生產(chǎn)組組長協(xié)同采集(四段)酒花視頻數(shù)據(jù)以保證樣本的正確性。四段酒花數(shù)據(jù)包含不同角度、不同光照條件、不同摘酒現(xiàn)場的樣本,基本考慮到了摘酒現(xiàn)場各種可能出現(xiàn)的因素。從四段酒花視頻中分別逐幀提取頭段酒花、中段酒花、末段酒花、酒尾酒花原始樣本,分別獲取1 375,1 386,1 369,1 386個樣本,樣本圖像大小544×960×3,圖像類型為JPG格式。
為了提高系統(tǒng)后續(xù)輸入圖像的可信度與分類準(zhǔn)確率,減少分類時間,對圖像進行預(yù)處理,包括:輸入圖像、圖像灰度化、Gamam校正、圖像濾波4步。
圖像灰度化是指將彩色圖像中多個通道各種對應(yīng)的分量通過一種方法轉(zhuǎn)化為一個通道的灰度圖[9]。文中選用加權(quán)平均法作為圖像灰度化的方法,其數(shù)學(xué)表達式:
Gray=R×ωR+G×ωG+B×ωB,
(1)
式中:
R、G、B——對應(yīng)通道的像素值;
ωR——R通道的權(quán)重,取0.299;
ωG——G通道的權(quán)重,取0.114;
ωR——B通道的權(quán)重,取0.587。
Gamma校正的壓縮計算公式:
I(x,y)=I(x,y)g,
(2)
式中:
I(x,y)——灰度圖;
g——校正值。
均值濾波是將濾波核內(nèi)像素的平均值代替濾波核中心位置像素值[10]。假設(shè)現(xiàn)在使用3×3的模板對m×n的圖像進形濾波,圖解如圖1所示。
圖1 均值濾波
由圖2可知,均值濾波算法可表示為:
(3)
式中:
2≤x≤m-1;
2≤y≤n-1;
fa(x,y)——輸出圖像;
f(x,y)——原始圖像;
m、n——圖片大小。
中值濾波屬于非線性濾波方法,基本思想是將濾波核的中心像素,由鄰域像素灰度值的中值代替[11],中值濾波示意如圖2所示。
在圖2中,采用3×3濾波核,濾波核的大小可以自己確定,常用濾波核大小有5×5,9×9形式,濾波核的大小通常為奇數(shù)。以3×3為例中值抑噪可由式(4)表示。
圖2 中值濾波示意圖
fm(x,y)=med[f(x+k,y+l)],(k,l∈[-1,1]),
(4)
式中:
f(x,y)——原始圖像;
fm(x,y)——中值濾波后的結(jié)果圖。
高斯濾波是一種線性平滑濾波,能為鄰域內(nèi)每個像素賦予權(quán)值,濾波核的中心像素由不同權(quán)值的鄰域像素加權(quán)平均值確定[12],高斯濾波圖解如圖3所示。
圖3 高斯濾波
圖3中高斯卷積核由二維高斯函數(shù)進行離散化得到,二維高斯函數(shù)如式(5)所示。
(5)
由式(5)離散化得到式(6):
(6)
式中:
k——核矩陣的維數(shù);
σ——方差;
i、j——核矩陣中各點到中心點的距離。
以頭段酒花為例各濾波示意圖如圖4所示。
圖4 濾波示意圖
通過研究表明,白酒酒花圖像中存在的噪聲多為高斯噪聲,因此選用高斯濾波。
卷積神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),具備良好的自學(xué)習(xí)特征能力,強大的并行處理能力,以及優(yōu)秀的魯棒性,卷積網(wǎng)絡(luò)的基本結(jié)構(gòu)如圖5所示。主要由輸入層、卷積層、激活層和池化層、全連接層構(gòu)成。
圖5 卷積神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)
(1)數(shù)據(jù)輸入層:對待輸入的樣本圖片進行一些預(yù)處理,例如將所有樣本統(tǒng)一成相同的大小,方便后續(xù)的其他操作。
(2)卷積層:卷積層也叫特征提取層,是卷積神經(jīng)網(wǎng)絡(luò)的核心部分。卷積過程如圖6所示。
圖6 卷積過程
(3)池化層:也被稱為下采樣層。池化就是對圖像某個區(qū)域的特征進行統(tǒng)計分析,并將統(tǒng)計的結(jié)果用來表示整個區(qū)域的總體特征。運算過程如圖7所示。
圖7 池化過程
(4)激活層:解決線性模型所不能解決的問題,常見的激活函數(shù)有Sigmoid、Tanh、ReLU、PreLU、Maxout等。
(5)全連接層:將最后得到的圖像特征,映射成一個固定長度的特征向量,傳入分類器完成最終分類。
(6)輸出層:輸出層一般為分類器層,最后輸出的是一個將制定分類的種類數(shù)目作為維度的概率向量。
3.2.1 Vgg16模型 傳統(tǒng)Vgg16模型結(jié)構(gòu)如表3所示,Vgg16總網(wǎng)絡(luò)深度為16,其中包含13個卷積層和3個全連接層。輸入圖片大小為224×224×3的彩色圖片,其卷積核采用隨機初始化,池化層采用最大池化,激活函數(shù)采用ReLU激活函數(shù),分類器采用Soft_max。
表3 Vgg16模型結(jié)構(gòu)
3.2.2 遷移學(xué)習(xí) 傳統(tǒng)的數(shù)據(jù)挖掘和機器學(xué)習(xí)算法使用帶標(biāo)簽或不帶標(biāo)簽的數(shù)據(jù)集,統(tǒng)計模型對未來數(shù)據(jù)進行預(yù)測。半監(jiān)督分類使用大量未標(biāo)注的數(shù)據(jù)集和少量標(biāo)注數(shù)據(jù)集,解決標(biāo)簽數(shù)據(jù)集太少而無法訓(xùn)練良好的分類器的問題,大多數(shù)是基于假設(shè)標(biāo)記樣本和未標(biāo)記樣本具有相同的分布。然而在實際應(yīng)用中,搜集樣本費時費力,帶標(biāo)簽的訓(xùn)練樣本數(shù)量更是有限,所以服從統(tǒng)一分布的數(shù)據(jù)的假設(shè)很難滿足。統(tǒng)計模型必須根據(jù)不同數(shù)據(jù)分布重構(gòu)模型,重構(gòu)模型和重采集訓(xùn)練樣本的代價太大。針對以上問題,遷移學(xué)習(xí)可以解決數(shù)據(jù)重采集和模型重構(gòu)的問題,而且遷移學(xué)習(xí)還可以實現(xiàn)異類數(shù)據(jù)集之間的知識轉(zhuǎn)移[13]。遷移學(xué)習(xí)的動機是人們可以智能地應(yīng)用以前學(xué)習(xí)到的知識來更快地解決新的問題,或者有更好的解決方案。
3.2.3 池化層設(shè)計 為在保留圖像輪廓的完整性的同時,盡可能多地保留圖像特征信息,文中結(jié)合最大池化與平均池化的優(yōu)點提出最大—均值池化方式。通過式(7)和式(8)分別定義最大池化和平均池化的數(shù)學(xué)表達式:
(7)
(8)
式中:
xm——得到圖像的滑動窗口n個像素點中的第m個像素點;
m——在滑動窗口中的位置。
池化方式是將xm映射到對應(yīng)的統(tǒng)計值。
通過聯(lián)合兩者的優(yōu)點,將最大池化方式和平均池化方式分別以權(quán)重相加得到新的池化方式——最大—均值池化。其數(shù)學(xué)表達式可表示為:
(9)
式中:
α+β=1。
3.2.4 激活函數(shù)設(shè)計 為了解決ReLU激活函數(shù)存在的“神經(jīng)元死亡”和輸出偏移問題,提高網(wǎng)絡(luò)模型的分類性能,提出一種基于ReLU激活函數(shù)與Tanh激活函數(shù)改進的激活函數(shù)TReLU。其數(shù)學(xué)表達式:
(10)
式中:
α——可調(diào)參數(shù)。
3.2.5 參數(shù)優(yōu)化方法 反向傳播技術(shù)的使用使得深層神經(jīng)網(wǎng)絡(luò)的訓(xùn)練成為可能,基本原理是通過實際輸出與期望輸出計算出誤差,并采用梯度下降法計算出誤差函數(shù)相對于權(quán)值參數(shù)的梯度;然后在損失函數(shù)梯度的反方向上更新權(quán)值,假設(shè)有m個數(shù)據(jù)樣本{(x1,y1),…,(xm,ym)},對于單個樣本(x,y)的損失函數(shù)定義為:
(11)
式中:
ω——連接權(quán)值;
b——偏置;
hω,b(x)——網(wǎng)絡(luò)實際輸出;
y——網(wǎng)絡(luò)的期望輸出。
對于整個樣本數(shù)據(jù)集m的整體損失函數(shù)可以表示為:
(12)
式中:
ω——權(quán)值矩陣;
nl——網(wǎng)絡(luò)層數(shù);
sl——對應(yīng)網(wǎng)絡(luò)層神經(jīng)元數(shù)目;
λ——權(quán)值衰減參數(shù)。
梯度下降法在計算梯度時只進行了一次權(quán)值更新,所以處理大量數(shù)據(jù)時其收斂速度很慢。針對上述問題提出了幾種優(yōu)化梯度下降法的方法。
(1)隨機梯度下降法:隨機梯度下降法(SGD)的基本原理是參數(shù)更新都是隨機從訓(xùn)練集中選取[14],更新迭代公式:
θ=θ-η·?θJ(θ;xi;yi),
(13)
式中:
η——學(xué)習(xí)率;
xi、yi——訓(xùn)練樣本;
θ——訓(xùn)練參數(shù)。
隨機梯度下降法的優(yōu)點在于頻繁的參數(shù)更新使得參數(shù)間具有高方差,這有助于網(wǎng)絡(luò)收斂到最優(yōu)解。但缺點是參數(shù)的更新都是隨機從訓(xùn)練集中選取,每次的參數(shù)更新方向具有隨機性,增加了網(wǎng)絡(luò)的迭代次數(shù),使網(wǎng)絡(luò)收斂速度變得緩慢。
(2)小批次隨機梯度下降法:小批次隨機梯度下降法的提出是為了緩解隨機梯度下降法中網(wǎng)絡(luò)迭代次數(shù)增加和網(wǎng)絡(luò)收斂速度緩慢的問題,在參數(shù)更新速度和更新次數(shù)間取得一個平衡[15],在參數(shù)每次的更新過程中會從訓(xùn)練集中隨機選取m(m θ=θ-η·?θJ(θ;xi:i+m;yi:i+m), (14) 式中: η——學(xué)習(xí)率; xi:i+m、yi:i+m——訓(xùn)練樣本; θ——訓(xùn)練參數(shù)動量因子方法。 由于梯度下降法在應(yīng)用過程中伴隨著高方差振蕩,這使得網(wǎng)絡(luò)很難穩(wěn)定收斂,因此研究者[16]提出了動量技術(shù)來緩解網(wǎng)絡(luò)收斂不穩(wěn)定的問題,數(shù)學(xué)表達: vt=μvt-1+η?θJ(θ), (15) θ=θ-vt, (16) 式中: μ——0~1的動量因子; vt-1——上一次的更新值。 選用小批次隨機梯度下降法,加入動量因子對小批次隨機梯度下降法,減少計算量,加快網(wǎng)絡(luò)收斂。 文中改進模型是基于Vgg16大框架下進行改進,該模型結(jié)構(gòu)框圖如圖8所示。 在圖8中,卷積核初始化方式采用基于權(quán)重的遷移學(xué)習(xí),池化方式采用改進后的最大—均值池化方式,激活函數(shù)采用改進后的TReLU激活函數(shù)。 圖8 改進模型結(jié)構(gòu) 試驗基于操作系統(tǒng)windows 1064,處理器Intel(R)core(TM)i5-8300H CPU @ 2.30GHZ,內(nèi)存8.00 GB,顯卡NVIDIA GeForce GTX 1050的開發(fā)平臺,采用python + tensorflow + pycharm作為開發(fā)環(huán)境。 整個試驗部分使用的數(shù)據(jù)集,如無特別說明都采用以下數(shù)據(jù)集,從構(gòu)建的酒花數(shù)據(jù)集中選取頭段酒花、中段酒花、末段酒花、酒尾酒花圖片各1 000張。其中70%作為訓(xùn)練集,30%作為測試集,圖片大小為544×960×3。 模型采用改進Vgg16+遷移學(xué)習(xí),圖像輸入要經(jīng)過5次池化,由模型結(jié)構(gòu)可以推出第1,2,3,4,5次池化的特征圖個數(shù)分別為64,128,256,512,512。由于篇幅有限文中展示第1次和第5次池化后的部分特征圖,如圖9所示。1∶1特征融合圖,如圖10所示。 圖9 池化后的特征圖 由圖10可知,最初卷積提取到的特征比較全面,圖像紋理邊緣信息比較清楚,隨著卷積的深入,特征圖越來越抽象。第1次池化后特征提取的信息比較全面,特征融合過后能夠看見較清楚的酒花。第5次池化后圖像變得模糊,高級特征肉眼不可見,特征融合后圖像也比較抽象,肉眼基本無法看見酒花。 圖10 1∶1特征融合圖 4.2.1 經(jīng)典模型分類結(jié)果 為了驗證現(xiàn)有經(jīng)典模型對白酒酒花的分類效果,直接將預(yù)處理后的酒花圖像輸入到模型中,對其準(zhǔn)確率和迭代步數(shù)進行比較。試驗仿真結(jié)果如圖11所示。 由圖11(a)可以看出,LeNet_5、AlexNet網(wǎng)絡(luò)深度淺,分別是5層和8層,在迭代次數(shù)較少的情況下就達到飽和,對于一些簡單的分類任務(wù)能夠達到很高的準(zhǔn)確率。但酒花分類準(zhǔn)確率遠(yuǎn)低于人工分類,達不到分類精度要求。由圖11(b)可以看出,隨著卷積網(wǎng)絡(luò)深度的加深,分類準(zhǔn)確率逐漸提高,但仍然達不到酒花分類的精度要求,且相應(yīng)的訓(xùn)練時間也變長。 圖11 經(jīng)典模型分類結(jié)果 4.2.2 基于改進池化方式的準(zhǔn)確率對比 為驗證改進池化方式的有效性,在傳統(tǒng)Vgg16框架的基礎(chǔ)上,改變不同的池化方式,驗證其在白酒酒花分類的準(zhǔn)確率。試驗結(jié)果如圖12所示。 單一的池化方式不能完全考慮圖像特征信息,平均池化更多地保留了圖像的背景信息,忽略了圖像中的紋理信息,相反最大池化則更多地保留了紋理信息,因為酒花特征對紋理要求高,從圖12可以看出最大池化的準(zhǔn)確率略大于平均池化的。但兩種方法對酒花分類準(zhǔn)確率明顯低于改進的池化方法,因為改進的方法綜合考慮了背景與紋理信息。 圖12 不同池化方式準(zhǔn)確率對比 4.2.3 基于改進激活函數(shù)的準(zhǔn)確率對比 為驗證改進激活的有效性,在傳統(tǒng)Vgg16框架的基礎(chǔ)上,使用不同的激活函數(shù),驗證其在白酒酒花分類的準(zhǔn)確率。試驗結(jié)果如圖13所示。 圖13 不同激活函數(shù)準(zhǔn)確率對比 Sigmoid函數(shù)與Tanh函數(shù)容易產(chǎn)生梯度消失的情況,ReLU函數(shù)在反向傳播過程中會出現(xiàn)神經(jīng)元死亡。從圖14可以看出,改進的激活函數(shù)分類準(zhǔn)確率高于其他幾種激活函數(shù)。 4.2.4 最終模型與傳統(tǒng)Vgg16模型準(zhǔn)確率對比 最終模型結(jié)構(gòu)包括Vgg16框架+遷移學(xué)習(xí)+改進池化方式+改進激活函數(shù),為驗證改進模型的有效性,將其與原始Vgg16模型進行對比。試驗結(jié)果如圖14所示。 從圖14可以看出,基于Vgg16改進的卷積神經(jīng)網(wǎng)絡(luò)模型,對白酒酒花數(shù)據(jù)集分類準(zhǔn)確率有明顯的提升,未改進前分類準(zhǔn)確率為80.30%,改進后分類準(zhǔn)確率為96.69%,改進后的分類準(zhǔn)確率能夠達到白酒生產(chǎn)的實時性要求。改進模型與傳統(tǒng)模型試驗結(jié)果對比如表4所示。 圖14 改進模型準(zhǔn)確率 從表4可以看出,LeNet_5、AlexNet網(wǎng)絡(luò)深度淺,訓(xùn)練時間短,分類準(zhǔn)確率低,Vgg11和Vgg16隨著層數(shù)增加分類準(zhǔn)確率明顯提高,但訓(xùn)練時間較長,改進模型在分類準(zhǔn)確率與訓(xùn)練時間取得了一個平衡,且分類準(zhǔn)確率高于其他幾種分類模型。 表4 改進模型與傳統(tǒng)模型試驗結(jié)果對比 4.2.5 人工分類對比試驗 從頭段酒花、中段酒花、末段酒花、酒尾酒花分別選取100張組成人工分類和試驗系統(tǒng)分類對比的數(shù)據(jù)集。將400張酒花圖片的標(biāo)簽隱藏并且將圖片隨機排序,從生產(chǎn)線上請2位經(jīng)驗豐富的摘酒師傅A(chǔ)和B,再請2位年輕的摘酒師傅C和D對此次試驗數(shù)據(jù)集進行2次分類,第1次分類試驗結(jié)果如表5所示。 第2次試驗使用同樣的數(shù)據(jù)集,告知4位摘酒師傅數(shù)據(jù)集已經(jīng)改變,試驗分類結(jié)果如表6所示。 從表5和表6可以看出,無論是人工分類還是試驗系統(tǒng)分類在沒有時間的要求下分類準(zhǔn)確率基本都能達到90%以上;經(jīng)驗不同的員工分類準(zhǔn)確率高低不同,同一工人在不同時間準(zhǔn)確率也會有波動,人工分類具有不穩(wěn)定性,而機器視覺的分類精度高且穩(wěn)定,因此試驗系統(tǒng)分類算法相比人工分類具有一定的優(yōu)越性。 表5 人工分類與系統(tǒng)分類準(zhǔn)確率對比(第1次) 表6 人工分類與系統(tǒng)分類準(zhǔn)確率對比(第2次) 使用上述數(shù)據(jù)集完成分類時間對比試驗,結(jié)果如表7所示。 表7 人工分類與系統(tǒng)分類(每張)耗時對比 從表7可以看出,人工分類時間雖然有所不同但總體需要時間較多,分類一張圖片大約需要0.69 s,然而試驗系統(tǒng)分類時間需要0.22 s,因此試驗分類系統(tǒng)能夠達到白酒生產(chǎn)的實時性要求。 試驗提出的基于改進Vgg16+遷移學(xué)習(xí)的分類模型,能夠高效、精確地對不同類別的酒花進行分類。試驗結(jié)果表明,該分類模型的準(zhǔn)確率達96.69%,比人工穩(wěn)定性好且準(zhǔn)確率高,具有較好的實用性。后續(xù)研究將繼續(xù)提升白酒酒花分類的速度,進一步改進模型提高分類準(zhǔn)確率,實現(xiàn)白酒生產(chǎn)摘酒智能。3.3 最終模型結(jié)構(gòu)
4 試驗結(jié)果分析
4.1 試驗平臺
4.2 試驗結(jié)果及其分析
5 結(jié)論