劉琳茜,楊亞寧
(大連民族大學(xué) 信息與通信工程學(xué)院,遼寧 大連 116605)
玉米多種植于中國(guó)東北部地區(qū),是中國(guó)重要的糧食作物和飼料作物。近年來(lái),中國(guó)玉米播種面積及其產(chǎn)量呈現(xiàn)穩(wěn)步上升態(tài)勢(shì), 2020年中國(guó)玉米產(chǎn)量占比達(dá)到23.02%,位居世界第二。由于玉米種子顆粒小,除了存在發(fā)霉、破損等問題還極易與微小雜質(zhì)混合,所以玉米行業(yè)發(fā)展更離不開玉米種子品質(zhì)的篩選。
國(guó)內(nèi)許多學(xué)者對(duì)玉米種子品質(zhì)篩選展開了相關(guān)研究。閆彬等[1]提出采用的基于小波變換模極大值的邊緣檢測(cè)算法凸顯玉米種子的裂紋區(qū)域平均準(zhǔn)確率達(dá)到90.6%,該方法局限于檢測(cè)種子是否存在裂紋,無(wú)法判斷是否存在發(fā)霉和其他病變;范曉飛等[2]提出基于改進(jìn)YOLOv4的目標(biāo)檢測(cè)模型,同時(shí)結(jié)合四通道多光譜圖像,綜合評(píng)價(jià)指標(biāo)達(dá)到93.09%,但該方法僅實(shí)現(xiàn)了同時(shí)對(duì)多粒玉米種子品質(zhì)好、壞的分類;王林柏等[3]提出一種基于分水嶺算法結(jié)合卷積神經(jīng)網(wǎng)絡(luò)對(duì)玉米種子進(jìn)行品質(zhì)檢測(cè)的方法,綜合評(píng)價(jià)指標(biāo)達(dá)到94.39%,該方法采用分水嶺算法將多粒種子進(jìn)行分割,耗時(shí)較長(zhǎng),僅實(shí)現(xiàn)對(duì)玉米種子質(zhì)量好、壞的分類。并未對(duì)質(zhì)量存在問題的玉米種子進(jìn)行是否存在雜質(zhì)的分類。
為提高玉米種子質(zhì)量檢測(cè)的精準(zhǔn)率,以單顆玉米種子為研究對(duì)象,利用數(shù)據(jù)增強(qiáng)[3]的方法對(duì)原始數(shù)據(jù)集擴(kuò)充,結(jié)合Resnet50模型對(duì)玉米實(shí)現(xiàn)分類,與傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)(CNN)[4]模型不同的是加入了殘差模塊,可以有效減少計(jì)算量,提高準(zhǔn)確率,實(shí)現(xiàn)對(duì)玉米種子品質(zhì)的檢測(cè)。通過實(shí)驗(yàn)數(shù)據(jù)對(duì)比,選擇綜合評(píng)價(jià)指標(biāo)最優(yōu)的模型,為玉米播種技術(shù)發(fā)展提供新的思路。
研究的數(shù)據(jù)來(lái)源于公開數(shù)據(jù)庫(kù),原始數(shù)據(jù)集共842張,包括“Good_seed”180張、“Bad_seed”202張、“Side_by_side”460張。使用數(shù)據(jù)增強(qiáng)的方式,擴(kuò)大數(shù)據(jù)集如圖1。其中包括對(duì)圖像進(jìn)行隨機(jī)角度的旋轉(zhuǎn);對(duì)圖像亮度進(jìn)行調(diào)整;對(duì)圖像進(jìn)行隨機(jī)裁剪,缺失部分選用黑色像素塊填補(bǔ);對(duì)圖像加入椒鹽噪聲、高斯噪聲;對(duì)圖像隨機(jī)刪除一個(gè)矩形區(qū)域,通過黑色像素塊填補(bǔ)(Cutout)等方法進(jìn)行數(shù)據(jù)增強(qiáng)。

圖1 數(shù)據(jù)增強(qiáng)后的數(shù)據(jù)集
數(shù)據(jù)集如圖2。通過數(shù)據(jù)增強(qiáng)方法最終得到“Good_seed”1 399張、“Bad_seed”981張、“Side_by_side”2 956張,總計(jì)5 336張。其中“Bad_seed”包括不同程度發(fā)霉的玉米種子、顆粒不完整的玉米種子和變異的玉米種子;“Side_by_side”包括玉米須、玉米葉、其他小顆粒雜質(zhì)等。

圖2 數(shù)據(jù)集
對(duì)建立的玉米種子質(zhì)量檢測(cè)的模型進(jìn)行評(píng)估見表1。評(píng)估標(biāo)準(zhǔn)包括召回率(Recall)、精確率(Precision)以及綜合評(píng)價(jià)指標(biāo)(F1)三個(gè)指標(biāo)。

表1 實(shí)驗(yàn)評(píng)價(jià)指標(biāo)公式對(duì)照表
(1)TP(真正例):樣本是正例,預(yù)測(cè)結(jié)果為正例;
(2)FP(假正例):樣本是反例,預(yù)測(cè)結(jié)果為正例;
(3)TN(真反例):樣本是反例,預(yù)測(cè)結(jié)果為反例;
(4)FN(假反例):樣本是正例,預(yù)測(cè)結(jié)果為反例;
研究過程如圖3。灰度處理階段,將原始圖像先分解成由紅色(Red)、綠色(Green)和藍(lán)色(Blue)構(gòu)成的色彩空間,后轉(zhuǎn)換成由色調(diào)(Hue)、飽和度(Saturation)和明度(Value)構(gòu)成的三通道圖像。使用腐蝕、膨脹對(duì)圖像進(jìn)行預(yù)處理,為增強(qiáng)原圖像中發(fā)霉部分和沒有發(fā)霉部分的對(duì)比度,采用圖像增強(qiáng)技術(shù)。使用均值濾波器mean_image對(duì)圖像進(jìn)行濾波,通過計(jì)算窗口區(qū)域像素的平均值來(lái)代替原值,對(duì)灰度圖像的灰度值進(jìn)行平滑處理。使用算子進(jìn)行濾波,得到濾波后的圖像灰度值,對(duì)比原圖像,計(jì)算得到新的灰度值。新的灰度值等于原灰度值減去濾波后的灰度值乘上對(duì)比系數(shù)加原圖像灰度值。最后采用Blob分析的方法完成區(qū)域的篩選以及背景的分割。缺陷分類檢測(cè)采用深度學(xué)習(xí)的方法進(jìn)行模型訓(xùn)練。

圖3 研究過程概況
卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種帶有卷積結(jié)構(gòu)的深度網(wǎng)絡(luò)模型,通過卷積結(jié)構(gòu)的堆疊達(dá)到降低網(wǎng)絡(luò)占用量。標(biāo)準(zhǔn)的CNN包括輸入層(Input)、卷積層(Conv)、池化層(Pool)、全連接層(Fc)和分類層如圖4。

圖4 CNN過程示意圖
卷積層可以提取出圖像的特征如公式(1)所示,輸入224×224×3的圖像,經(jīng)過64個(gè)7×7的卷積核進(jìn)行卷積計(jì)算,其中參數(shù):補(bǔ)零圈(padding)為3,步長(zhǎng)(stride)為2,則輸出為112×112×64的特征圖。卷積核越大,感受野越大,不同的感受野可以重疊,因此得到的圖像信息越多,得到的特征越明顯,卷積示意圖如圖5。

圖5 卷積示意圖
卷積參考公式:
(1)
式中,函數(shù)g作為功率器,f為圖像信號(hào)。
最大池化(max-pooling,MP)方法如公式(2)所示,保留主要的特征,經(jīng)過池化后的圖像尺寸變?yōu)?6×56×64,如圖6。最大池化參考公式:

圖6 最大池化原理示意圖
(2)
全連接層中各節(jié)點(diǎn)與上一層神經(jīng)元節(jié)點(diǎn)連接,起到分類作用。分類層選用Softmax分類器其原理如公式(3)所示,對(duì)概率分布進(jìn)行歸一化處理,從而達(dá)到分類的目的。
Softmax定義:
(3)
SqueezeNet是Han[6]等人提出的輕量級(jí)CNN模型,該模型通過使用多個(gè)1×1卷積核代替3×3卷積核,從而達(dá)到參數(shù)計(jì)算量的優(yōu)化。其模型結(jié)構(gòu)如圖7。其中每一層卷積采用了1×1和3×3的混合卷積核,步長(zhǎng)(stride)均為1,3×3卷積補(bǔ)零圈(padding)參數(shù)為1?;旌暇矸e核中間采用Concat函數(shù)[6]連接,計(jì)算通道數(shù)量,增加原圖像的特征數(shù),實(shí)現(xiàn)多尺度特征融合。卷積層與激活函數(shù)相結(jié)合,輸出后進(jìn)行最大池化,細(xì)化特征。

圖7 SqueezeNet模型
經(jīng)過對(duì)CNN的不斷研究,從Le Net 的5層卷積發(fā)展到Google Net 22層卷積,研究發(fā)現(xiàn)一味地?cái)U(kuò)大網(wǎng)絡(luò)層數(shù)會(huì)出現(xiàn)隨機(jī)梯度消失的問題。為解決這一問題,深度殘差網(wǎng)絡(luò)Resnet50誕生。Resnet50模型與VGG等其他傳統(tǒng)CNN模型相比增加了殘差模塊如圖8。設(shè)W1、W2分別代表兩層Weight layer的權(quán)重,通過引入恒等映射將底層特征x與上層網(wǎng)絡(luò)相聯(lián)系,假設(shè)網(wǎng)絡(luò)輸入為x1,H(x)表示恒等映射,f表示relu激活函數(shù),則輸出x1+1可以表示為公式(5):

圖8 殘差網(wǎng)絡(luò)結(jié)構(gòu)
y1=H(x1)+F(x1,W1),
(4)
x1+1=f(y1)。
(5)
殘差模塊分為恒等殘差塊(Identity Block)和卷積殘差塊(Conv Block)。Resnet50的詳細(xì)模型框架如圖9。其中輸入圖像尺寸為224×224×3,經(jīng)過一個(gè)7×7的卷積層,補(bǔ)零圈(padding)為3,步長(zhǎng)(stride)為2,輸出為112×112×64;經(jīng)過一個(gè)2×2的最大池化層(maxpool)步長(zhǎng)為2,輸出為56×56×64;經(jīng)過四個(gè)Block(依次為:Conv2_x、Conv3_x、Conv4_x、Conv5_x),其中虛線代表經(jīng)歷一個(gè)1×1的卷積殘差塊;最后經(jīng)過平均池化層以及全連接層達(dá)到提取特征分類的作用。

圖9 Resnet50模型
每一層卷積、池化層后加入激活函數(shù)和BatchNorm。其中激活層采用ReLu函數(shù),相較于sigmoid和tanh函數(shù),ReLu函數(shù)具有收斂速度快的優(yōu)點(diǎn)。ReLu函數(shù)的導(dǎo)數(shù)在負(fù)半?yún)^(qū)顯示為0,可以達(dá)到單側(cè)抑制的效果,大大提高計(jì)算效率。BatchNorm對(duì)上一節(jié)點(diǎn)輸出數(shù)據(jù)進(jìn)行歸一化。
對(duì)神經(jīng)網(wǎng)絡(luò)各層結(jié)點(diǎn)的激活值求解后,計(jì)算樣本與神經(jīng)網(wǎng)絡(luò)輸出層之間的殘差[7]以及隱藏層各層的殘差如公式(6)和(7)所示,最后計(jì)算每層網(wǎng)絡(luò)的權(quán)重和偏置的偏導(dǎo)數(shù)如公式(8)和(9)所示。使用優(yōu)化算法即梯度下降法不斷迭代,對(duì)權(quán)重和偏置值不斷更新優(yōu)化,使損失函數(shù)達(dá)到最小值,完成神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。
δ(nl)=-(y-h(nl))·f′(w(nl-1)h(nl-1)+b(nl-1)),
(6)
δ(i)=-((wi)Tδ(i+1))·f′(w(i-1)h(i-1)+b(i-1)),
(7)
(8)
(9)
式中:δ(i)表示第i層的每個(gè)神經(jīng)元節(jié)點(diǎn)的殘差值;h(i)表示第i層神經(jīng)元輸出值;w表示權(quán)重;b表示誤差;J(x)函數(shù)表示損失函數(shù);(x,y)代表單一樣本。
根據(jù)采集的圖像總數(shù),設(shè)置參數(shù)見表2。受硬件設(shè)施限制,訓(xùn)練的數(shù)據(jù)樣本個(gè)數(shù)(BatchSize)均設(shè)為24;學(xué)習(xí)率(LearningRate)決定如何對(duì)梯度進(jìn)行加權(quán);在更新?lián)p失函數(shù)參數(shù)時(shí),動(dòng)量[8](Momentum)規(guī)定了先前梯度如何對(duì)權(quán)重更新。如果超參數(shù)“weight prior”非零,則將正則化項(xiàng)添加到損失函數(shù)中。

表2 參數(shù)設(shè)置
按照數(shù)據(jù)集拆分比例不同,將實(shí)驗(yàn)分成見表3所示的三組。對(duì)三組數(shù)據(jù)分別使用SqueezeNet訓(xùn)練模型和 Resnet50訓(xùn)練模型訓(xùn)練。模型訓(xùn)練過程采用每經(jīng)歷4次迭代對(duì)損失函數(shù)(Loss)下降曲線和錯(cuò)誤率(top1_error)曲線進(jìn)行圖像繪制。圖10~15分別表示Resnet50模型和SqueezeNet模型訓(xùn)練的損失函數(shù)下降曲線(紅色曲線)和錯(cuò)誤率下降曲線(藍(lán)色曲線)

表3 實(shí)驗(yàn)分組

圖10 第一組數(shù)據(jù)與迭代次數(shù)之間的關(guān)系

圖11 第二組數(shù)據(jù)與迭代次數(shù)之間的關(guān)系

圖12 第三組數(shù)據(jù)與迭代次數(shù)之間的關(guān)系

圖13 第四組數(shù)據(jù)與迭代次數(shù)之間的關(guān)系

圖14 第五組數(shù)據(jù)與迭代次數(shù)之間的關(guān)系

圖15 第六組數(shù)據(jù)與迭代次數(shù)之間的關(guān)系
根據(jù)數(shù)據(jù)集的劃分,隨機(jī)從驗(yàn)證集中抽選出10%的玉米種子圖像對(duì)第一組和第二組分別進(jìn)行數(shù)據(jù)評(píng)估,如表4。綜合評(píng)價(jià)指標(biāo)分別為:96.45%和92.15%;隨機(jī)從驗(yàn)證集中抽選出20%的玉米種子圖像對(duì)第三組和第四組分別進(jìn)行數(shù)據(jù)評(píng)估,綜合評(píng)價(jià)指標(biāo)分別為:94.70%和92.24%;隨機(jī)從驗(yàn)證集中抽選出30%的玉米種子圖像對(duì)第五組和第六組分別進(jìn)行數(shù)據(jù)評(píng)估。綜合評(píng)價(jià)指標(biāo)分別為:94.99%和93.49%。結(jié)合損失函數(shù)下降曲線和錯(cuò)誤率下降曲線,最終采用Resnet50模型,將90%數(shù)據(jù)集用于訓(xùn)練,10%數(shù)據(jù)集用于測(cè)試,最終結(jié)果最優(yōu)。

表4 評(píng)價(jià)結(jié)果 %
經(jīng)多組實(shí)驗(yàn)對(duì)比發(fā)現(xiàn),將Resnet50模型應(yīng)用于玉米種子質(zhì)量檢測(cè)中可以有效提高和檢測(cè)準(zhǔn)確率。除了可實(shí)現(xiàn)玉米種子好、壞的分類,還可以實(shí)現(xiàn)排除與玉米種子極為相似的雜質(zhì),綜合評(píng)價(jià)指標(biāo)達(dá)到96.45%,相較于傳統(tǒng)卷積模型SqueezeNet有所提高,該方法有望為玉米播種技術(shù)的發(fā)展提供了新的便利。