張軍鋒 尚展壘
(1. 河南水利與環(huán)境職業(yè)學(xué)院,河南 鄭州 450011;2. 鄭州輕工業(yè)大學(xué),河南 鄭州 450002)
花生籽粒圖像快速準(zhǔn)確識別是花生籽粒完整性分選的關(guān)鍵[1]。近年來,隨著深度學(xué)習(xí)理論的快速發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)(CNN)作為一種具有代表性的深度學(xué)習(xí)技術(shù)逐漸被應(yīng)用于圖像識別領(lǐng)域[2-5]。與傳統(tǒng)視覺圖像檢測技術(shù)相比,CNN蘊(yùn)含著大量的圖像特征信息,極大地提高了圖像檢測效率[6]。
學(xué)者們圍繞CNN食品完整性檢測開展了一系列研究并取得了一定成果。趙志衡等[1]提出了一種基于改進(jìn)CNN的花生籽粒完整性識別算法,該算法對花生分類的準(zhǔn)確率可以達(dá)到98.18%,但是并沒有考慮真實(shí)應(yīng)用環(huán)境對檢測精確度的影響。張忠志等[7]采用雙分支卷積神經(jīng)網(wǎng)絡(luò)對紅棗缺陷進(jìn)行檢測,具有較好的分類識別效果,但是該方法依賴大規(guī)模訓(xùn)練數(shù)據(jù)集,而且模型參數(shù)配置過程耗時較長且得到的參數(shù)未必最優(yōu)。張瑞青等[8]采用遷移學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)對花生莢果等級進(jìn)行識別,分類識別準(zhǔn)確率達(dá)到95.43%,但該模型采用隨機(jī)梯度下降技術(shù)進(jìn)行模型參數(shù)優(yōu)化,效率較低。謝為俊等[9]在AlexNet網(wǎng)絡(luò)基礎(chǔ)上搭建適用于油茶籽完整性檢測的CNN模型,并驗(yàn)證了該模型的有效性。因此,運(yùn)用CNN技術(shù)進(jìn)行食品目標(biāo)識別檢測具有廣闊的應(yīng)用前景。
研究擬結(jié)合花生籽粒完整性圖像檢測特點(diǎn),提出深度卷積神經(jīng)網(wǎng)絡(luò)花生籽粒完整性檢測方法,設(shè)計改進(jìn)的密度峰值聚類算法和麻雀搜索算法,并對神經(jīng)網(wǎng)絡(luò)模型模型進(jìn)行優(yōu)化,最后通過對比試驗(yàn)來驗(yàn)證該方法的有效性,旨在為花生籽粒完整性檢測研究提供理論依據(jù)。
基于彩色色選設(shè)備研究花生籽粒完整性圖像檢測方法,以準(zhǔn)確區(qū)分完整花生、果仁破損花生和表皮破損花生為目的,搭建如圖1(a)所示的花生籽粒篩選系統(tǒng),利用工業(yè)線陣彩色CCD相機(jī)實(shí)時獲取花生籽粒圖像信息,圖像信息經(jīng)邊緣檢測、圖像分割以及濾波去噪處理后,采用提出的檢測算法進(jìn)行篩選分類,最后利用空氣噴槍將判定為果仁破損花生、表皮破損花生進(jìn)行剔除得到完整花生籽粒。
建立花生籽粒圖像數(shù)據(jù)庫,數(shù)據(jù)庫中包括完整花生、果仁破損花生和表皮破損花生3類,如圖1(b)所示。對采集得到的花生籽粒圖像進(jìn)行人工標(biāo)記,為增加訓(xùn)練樣本數(shù)量和多樣性,采用鏡像[10]、平移[11-12]、旋轉(zhuǎn)[13-14]方法對圖像進(jìn)行有效數(shù)據(jù)增廣,最終得到3 600幅花生籽粒圖片(每個分類各1 200幅),統(tǒng)一設(shè)置圖片格式為224像素×224像素正方形圖像。模型訓(xùn)練時,從圖像數(shù)據(jù)庫中隨機(jī)選取80%(每類840幅,共2 520幅)樣本為訓(xùn)練集,剩余20%為測試集。
圖1 花生籽粒檢測系統(tǒng)和圖像數(shù)據(jù)庫示意圖Figure 1 Schematic diagram of peanut grain detection system and image database
卷積層、池化層、全連接層是CNN的主要組成部分,其中,卷積層和池化層交替出現(xiàn),實(shí)現(xiàn)對數(shù)據(jù)的特征學(xué)習(xí);全連接層采用全連接的方式與最后一個池化層進(jìn)行連接,實(shí)現(xiàn)對提取特征的分類。
1.2.1 卷積層 對于大小為M×N的輸入圖像,用矩陣x描述,設(shè)卷積核為m×n的矩陣w,偏置為b,卷積層通過多個卷積核w和激活函數(shù)f(·),實(shí)現(xiàn)對輸入數(shù)據(jù)的卷積運(yùn)算和構(gòu)建特征映射關(guān)系,得到一系列特征圖h(如圖2所示)。卷積計算表達(dá)式為:
圖2 卷積核提取特征過程示意圖Figure 2 Schematic diagram of convolution kernel feature extraction process
h=f(x?w+b),
(1)
式中:
h——輸入圖像經(jīng)卷積計算后的特征圖;
f(·)——激活函數(shù);
x——卷積核M×N的矩陣;
w——卷積核m×n的矩陣;
b——偏置項(xiàng)。
1.2.2 池化層 池化層主要用來壓縮卷積層輸出特征,保留主要特征,池化層不改變卷積層輸出的特征圖數(shù)量。通過式(2)和式(3)分別定義最大值池化ymax和平均值池化yave的數(shù)學(xué)表達(dá)式:
ymax=max(x1,…,xl),
(2)
(3)
式中:
x1——池化區(qū)域第1個元素像素值;
xl——池化區(qū)域第l個元素像素值;
l——步長。
1.2.3 全連接層 全連接層將特征映射到標(biāo)記空間,包含隱含層和輸出層,對于全連接隱含第k層,設(shè)定輸入值為xk-1,權(quán)值向量為ωk,偏置為ck,利用激活函數(shù)f(·)得到k層輸出zk:
zk=f(ωkxk-1+ck)。
(4)
當(dāng)k=1時,xk-1為最后一層池化層鋪展后值。全連接輸出層通常采用Softmax函數(shù)[15]進(jìn)行概率分布處理以便于計算損失函數(shù)。
1.2.4 卷積神經(jīng)網(wǎng)絡(luò)存在的主要問題 主要問題有:① 多個卷積核得到的圖像特征冗余度缺乏定量分析,影響了網(wǎng)絡(luò)運(yùn)算效率;② 網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)設(shè)置對分類結(jié)果影響較大,傳統(tǒng)網(wǎng)絡(luò)參數(shù)設(shè)定方式很容易導(dǎo)致網(wǎng)絡(luò)陷入局部最優(yōu);③ 擴(kuò)展網(wǎng)絡(luò)深度能夠提升網(wǎng)絡(luò)性能,但是也增加了網(wǎng)絡(luò)參數(shù)規(guī)模和計算復(fù)雜度。
為提升卷積神經(jīng)網(wǎng)絡(luò)性能,結(jié)合花生籽粒圖像相對簡單的特點(diǎn)對傳統(tǒng)AlexNet模型進(jìn)行改造:設(shè)計2層卷積層、2層池化層,采用2層全連接層替代原有3層全連接層;將批歸一化(BN)[16]置于卷積層激活函數(shù)后,加快網(wǎng)絡(luò)訓(xùn)練速度;利用改進(jìn)的密度峰值聚類(IDPC)算法對卷積核特征進(jìn)行自適應(yīng)壓縮,采用改進(jìn)的麻雀搜索算法對網(wǎng)絡(luò)超參數(shù)結(jié)構(gòu)進(jìn)行優(yōu)化配置。圖3為改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)示意圖。
圖3 改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖Figure 3 Structure diagram of improved convolutional neural network
(5)
(6)
γi=ρiδi,
(7)
式中:
ρi——特征圖的hi的局部密度;
ρj——特征圖的hj的局部密度;
dij——數(shù)據(jù)點(diǎn)hi與hj的距離;
δi——數(shù)據(jù)點(diǎn)hi的最近點(diǎn)距離;
dc——截斷距離;
γi——聚類中心判定參數(shù)。
確定每個數(shù)據(jù)點(diǎn)的ρi、δi后,DPC按照γi大小,選取前C個點(diǎn)為聚類中心,其余點(diǎn)劃分到距離最近聚類中心所在分類。
研究[19]表明,DPC對大規(guī)模數(shù)據(jù)集的聚類結(jié)果是穩(wěn)健的,但對小規(guī)模數(shù)據(jù)集較為敏感,即當(dāng)出現(xiàn)某個點(diǎn)分配錯誤時,可能會使得更多的點(diǎn)分配錯誤。為此,對數(shù)據(jù)點(diǎn)分配過程進(jìn)行改進(jìn),引入核距離度量Dij替代dij,其數(shù)學(xué)表達(dá)式見式(8),并定義hi和hj的相似性ζij,其數(shù)學(xué)表達(dá)式見式(9)。
Dij=‖Φr(Xj)-Φr(Xi)‖2,
(8)
ζij=1/(1+Dij),
(9)
式中:
Φ——核函數(shù)。
從式(9)可以看出,hi與hj距離越近,它們的相似性越高,因此屬于同一聚類的可能性越大。定義數(shù)據(jù)點(diǎn)hi屬于第c(c=1,…,C)個聚類的概率pi,c,其數(shù)學(xué)表達(dá)式為:
(10)
式中:
yi——hi的分類標(biāo)號,yi=c表示hi屬于第c個聚類;
KNNj——hi的k近鄰集合[20]。
確定hi的所有概率{pi,1,…,pi,C}后,將其劃分到概率最大的聚類中。
采用改進(jìn)的DPC(IDPC)算法對卷積核進(jìn)行提取,使得網(wǎng)絡(luò)參數(shù)規(guī)模由n降到C,最大限度地降低了卷積核冗余度,簡化了網(wǎng)絡(luò)參數(shù)。圖4為改進(jìn)密度峰值聚類壓縮卷積核提取特征示意圖。
圖4 改進(jìn)密度峰值聚類壓縮卷積核提取特征示意圖Figure 4 Feature extraction diagram of IDPC compressed convolution kernel
2.2.1 改進(jìn)SSA更新進(jìn)化策略 以訓(xùn)練誤差作為SSA目標(biāo)函數(shù)F(SSA),麻雀個體X編碼定義為:
(11)
式中:
M1、M2——2層卷積層卷積核數(shù)大小類型,且M1(M2)=1,2,3分別表示大小為3×3、5×5、7×7;
f1、f2——激活函數(shù)類型,且f1(f2)=1,2,3,4分別表示激活函數(shù)為f1、f2、f3、f4;
A1、A2——2層池化層操作類型,且A1(A2)=1,2分別表示P1最大值池化、P2平均值池化。
(12)
(13)
式中:
麻雀種群內(nèi)一部分個體采用加速進(jìn)化機(jī)制進(jìn)行更新,直接向最優(yōu)個體進(jìn)行學(xué)習(xí),提升了算法收斂效率;一部分個體采用深度搜索機(jī)制,向更多個體進(jìn)行學(xué)習(xí),擴(kuò)展了樣本搜索空間,提高了算法收斂精度。
(14)
其中,[·]表示向下取整數(shù)。
(15)
(16)
(17)
(18)
2.2.2 改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn) 利用IDPC算法提取每層最佳卷積核,采用ISSA優(yōu)化網(wǎng)絡(luò)超參數(shù)和網(wǎng)絡(luò)結(jié)構(gòu),最終得到適用于花生籽粒完整性檢測的CNN模型。其實(shí)現(xiàn)過程如圖5所示。
圖5 改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)流程圖Figure 5 Implementation flow chart of improved convolutional neural network
使用圖像識別領(lǐng)域基準(zhǔn)MNIST數(shù)據(jù)集、CIFAR-10數(shù)據(jù)集和花生籽粒圖像庫訓(xùn)練集進(jìn)行模型訓(xùn)練,其中MNIST數(shù)據(jù)集包括60 000張單通道灰度圖像訓(xùn)練集、10 000張測試集,CIFAR-10數(shù)據(jù)集包括60 000張3通道彩色圖像訓(xùn)練集、10 000張測試集。采用深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)(DL-CNN)、只利用ISSA優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)(ISSA-CNN)對3種數(shù)據(jù)集的訓(xùn)練集進(jìn)行模型訓(xùn)練。
由表1和圖6可知,DL-CNN、ISSA-CNN能夠給出優(yōu)化后的網(wǎng)絡(luò)參數(shù)。對于MNIST、CIFAR-10以及花生圖像測試數(shù)據(jù)集,DL-CNN給出的激活函數(shù)優(yōu)化結(jié)果為f2、f1、f3(第一層)、f3、f1、f2(第二層);對于每層卷積核數(shù)目,DL-CNN優(yōu)化后的參數(shù)明顯小于ISSA-CNN,這表明,IDPC算法的引入能夠降低卷積核數(shù)目規(guī)模,簡化網(wǎng)絡(luò)結(jié)構(gòu)。
圖6 卷積核數(shù)目優(yōu)化對比結(jié)果Figure 6 Comparison results of convolution kernel number optimization
表1 參數(shù)優(yōu)化范圍及DL-CNN算法優(yōu)化結(jié)果Table 1 parameter optimization range and optimization results of DL-CNN algorithm
利用花生籽粒圖像庫訓(xùn)練集驗(yàn)證歸一化方法和全連接層層數(shù)分別對模型性能的影響,其中歸一化方法選取BN、LRN[15],全連接層層數(shù)分別設(shè)置為1層、2層,其他網(wǎng)絡(luò)參數(shù)選取DL-CNN優(yōu)化后的參數(shù),結(jié)果見表2。由表2可知,歸一化方法LRN的引入對模型準(zhǔn)確率影響較小,但是大幅增加了網(wǎng)絡(luò)參數(shù)訓(xùn)練時間;而BN的引入能夠大幅度提升模型準(zhǔn)確率,而且模型訓(xùn)練時間小于LRN;2層全連接層準(zhǔn)確率高于1層全連接層,但是兩者的模型訓(xùn)練時間相近。綜上,采用BN歸一化方法和2層全連接層使模型具有更高的準(zhǔn)確率和訓(xùn)練時間。
表2 歸一化方法、全連接層對模型性能影響結(jié)果Table 2 Effects of normalization method and full connection layer on model performance
為進(jìn)一步驗(yàn)證DL-CNN性能,選取標(biāo)準(zhǔn)CNN、ISSA-CNN和文獻(xiàn)[9]提出的CO-Net,對MNIST數(shù)據(jù)集、CIFAR-10數(shù)據(jù)集和花生籽粒圖像庫中的訓(xùn)練集進(jìn)行對比試驗(yàn)。
由圖7可知,對于MNIST數(shù)據(jù)集,DL-CNN能夠在迭代250次時找到全局最優(yōu)解,要快于其他3種算法,而且收斂精度(分類準(zhǔn)確率)達(dá)到了97.63%,高于其他3種算法。對于CIFAR-10數(shù)據(jù)集,DL-CNN收斂精度與CO-Net相當(dāng),均超過97%,明顯高于其他2種算法,而且DL-CNN僅需迭代200次左右就能夠找到全局最優(yōu)解,收斂速度更快。對于花生籽粒圖像庫訓(xùn)練集,DL-CNN無論是在收斂速度上還是收斂精度上都優(yōu)于其他3種算法,且其他3種算法的收斂精度低于94%,表明這4種算法中DL-CNN陷入局部最優(yōu)的可能性最小。由表3可知,DL-CNN無論是對于訓(xùn)練集還是測試集,分類準(zhǔn)確率均高于其他3種算法,分類準(zhǔn)確率幾乎保持在97%以上,對于花生籽粒圖像識別準(zhǔn)確率提高了約5.41%~13.92%。而CNN準(zhǔn)確率最低,僅為86.03%,未達(dá)到實(shí)際應(yīng)用要求。綜上,DL-CNN對單幅圖像的運(yùn)算速度與其他3種算法相當(dāng),能夠以14.1 ms左右的速度實(shí)現(xiàn)對單幅圖像的檢測識別。
表3 4種模型測試集試驗(yàn)結(jié)果Table 3 Experimental results of four model test sets
圖7 4種模型準(zhǔn)確率收斂曲線Figure 7 Convergence curves of accuracy of four models
對構(gòu)建的花生籽粒篩選系統(tǒng)進(jìn)行真實(shí)環(huán)境試驗(yàn)仿真。CCD相機(jī)得到線陣圖像經(jīng)過處理后得到單粒花生圖像,耗時約2~3 s,然后采用DL-CNN進(jìn)行圖像篩選,最后利用空氣噴槍將判定為破損花生進(jìn)行剔除,最終實(shí)現(xiàn)花生籽粒完整性檢測。對一批花生籽粒進(jìn)行篩選,得到圖像檢測準(zhǔn)確率為97.63%,實(shí)際篩選出完整籽粒正確率為91.14%,表明在真實(shí)環(huán)境下DL-CNN模型仍然能夠以97.63%的準(zhǔn)確率實(shí)現(xiàn)對花生圖像的高精度識別??紤]空氣噴槍精度、傳輸帶穩(wěn)定性等因素,整個花生籽粒完整性篩選準(zhǔn)確率仍然能夠達(dá)到了91.14%。因此,該系統(tǒng)能夠很好地實(shí)現(xiàn)對花生籽粒的篩選,具有一定推廣應(yīng)用價值。
對花生籽粒篩選問題進(jìn)行研究,提出了基于DL-CNN的花生籽粒完整性檢測方案。通過引入IDPC算法對卷積核進(jìn)行自適應(yīng)壓縮處理和ISSA對網(wǎng)絡(luò)參數(shù)配置和網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行優(yōu)化,有效提升了識別準(zhǔn)確率,而且基于DL-CNN的花生籽粒完整性篩選系統(tǒng)能夠以91.14%的準(zhǔn)確率實(shí)現(xiàn)真實(shí)環(huán)境下的花生完整性檢測,證明了該方案的有效性和可行性。下一步將重點(diǎn)研究提升篩選系統(tǒng)的穩(wěn)定性。