王艷兵
(徽商職業(yè)學(xué)院 電子信息系,安徽 合肥 230000)
借助機器視覺技術(shù),能夠?qū)r(nóng)業(yè)產(chǎn)品中外表破損、顏色改變的產(chǎn)品進(jìn)行檢測,進(jìn)而區(qū)分出合格與不合格的產(chǎn)品[1-2].在傳統(tǒng)的色選系統(tǒng)中可以篩選的物料有限,可以使用的范圍比較窄,有一定的局限性.此次研究的對象為顆粒狀農(nóng)產(chǎn)品中的花生.對花生進(jìn)行色選,往往面臨著花生容易發(fā)生霉變,導(dǎo)致表面易破損、斷裂等問題[3].隨著計算機和嵌入式技術(shù)的不斷發(fā)展完善,本文基于深度學(xué)習(xí)中的色選圖像分類算法,以花生為對象組成了圖片數(shù)據(jù)集,構(gòu)建了卷積神經(jīng)網(wǎng)絡(luò),并進(jìn)行了優(yōu)化設(shè)計,實現(xiàn)了對顆粒狀農(nóng)產(chǎn)品的圖像分類,減少了準(zhǔn)確率波動,有效提高了優(yōu)化算法在顆粒狀農(nóng)產(chǎn)品品質(zhì)分選中的準(zhǔn)確率.
選擇花生作為顆粒狀農(nóng)產(chǎn)品中的研究對象,在彩色色選系統(tǒng)中構(gòu)建兩個數(shù)據(jù)集,并應(yīng)用圖像分類算法進(jìn)行產(chǎn)品篩選[4-5].第1個數(shù)據(jù)集總共包含407張花生圖像,分為完好花生、半個花生和表皮破損花生3類標(biāo)記標(biāo)簽.將做好分類標(biāo)記標(biāo)簽的數(shù)據(jù)按照8∶2的比例分為訓(xùn)練集和測試集,其中訓(xùn)練集為325張花生圖片,測試集為82張花生圖片,圖1展示了部分訓(xùn)練集的花生圖片.上面一排是完好花生,中間一排是表皮破損花生,下面一排是半個花生.
第2個數(shù)據(jù)集總共包含350張花生圖片,分為表皮破損區(qū)域小于閾值、臨近閾值和大于閾值3類標(biāo)記標(biāo)簽.和第1個數(shù)據(jù)集一樣,將做好分類標(biāo)記標(biāo)簽的數(shù)據(jù)按照8∶2的比例分為訓(xùn)練集和測試集,其中訓(xùn)練集為280張花生圖片,測試集為70張花生圖片,圖2展示的是部分訓(xùn)練集的花生圖片.上面一排是遠(yuǎn)小于閾值的表皮破損區(qū)域花生,中間一排是遠(yuǎn)大于閾值的表皮破損區(qū)域花生,下面一排是臨近閾值的表皮破損區(qū)域花生.
圖1 第1個數(shù)據(jù)集集中訓(xùn)練集部分花生圖片
圖2 第2個數(shù)據(jù)集中訓(xùn)練集部分花生圖片
構(gòu)建本文卷積神經(jīng)網(wǎng)絡(luò)(CNN)的結(jié)構(gòu),網(wǎng)絡(luò)各層由1個輸入層、4個卷積層、4個池化層和3個全連接層組成.CNN的輸入層輸入3個尺寸為100×100的花生圖片,卷積層經(jīng)過SAME邊界補0的方式進(jìn)行處理,在4次卷積之后深度加深,但花生圖片的長和寬保持不變[6].CNN的池化層經(jīng)過VALID邊界不補0的方式進(jìn)行處理,同時將步長設(shè)置為2,在4次池化之后深度不變,但減少了花生圖片的長和寬.由上述可知,4次卷積和池化的花生圖片變化尺寸為:
100×100×3→100×100×32→ 50×50×32→50×50×64→ 25×25×64→25×25×128→ 12×12×128→12×12×128→ 6×6×128
.
通過轉(zhuǎn)化為一維6×6×128三個全連接層后輸出,這時數(shù)據(jù)轉(zhuǎn)變?yōu)?×6×128→1024→512→3.通過softmax分類器能夠?qū)⒁痪S中的數(shù)值轉(zhuǎn)化為[0,1]及和為1的對應(yīng)概率,將3類數(shù)據(jù)中輸出的一維向量借助softmax分類器進(jìn)行傳遞.研究假設(shè)有K(K=3)個類別,經(jīng)softmax分類器計算,具體如公式(1)所示.
(1)
式(1)中,Zj代表的是一維向量在連接層輸出后的第j+1個數(shù)值.
比較標(biāo)準(zhǔn)標(biāo)簽和輸出標(biāo)簽中損失函數(shù)的大小,借助softmax計算得出.然后對各層參數(shù)的數(shù)值進(jìn)行調(diào)整,從而不斷減小損失函數(shù),神經(jīng)網(wǎng)絡(luò)得以進(jìn)一步改進(jìn)優(yōu)化.研究中使用的是交叉熵分類損失函數(shù),具體公式如式(2)所示.
(2)
從式(2)可以得知,這組數(shù)據(jù)通過softmax為log函數(shù)內(nèi)部的值輸出正確的分類值,從中得出的值與損失函數(shù)值呈反比關(guān)系,滿足損失函數(shù)的要求.以花生圖片1的數(shù)據(jù)集為參照,訓(xùn)練在CPU+GPU上構(gòu)建的CNN,采用55張圖片對CNN進(jìn)行訓(xùn)練,也就是說batch設(shè)置為55,學(xué)習(xí)率設(shè)為0.0001,經(jīng)過40次的迭代后,花生的分類準(zhǔn)確率能夠達(dá)到 90.91%,較為穩(wěn)定.此次研究采用8-5-3結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)來驗證CNN的效果,在數(shù)據(jù)集上學(xué)習(xí)100次進(jìn)行訓(xùn)練測試,其花生的分類準(zhǔn)確率為85.45%,因此,基于顆粒狀農(nóng)產(chǎn)品的分類算法能夠高效完成花生的分類,提高正確率.
對顆粒狀農(nóng)產(chǎn)品進(jìn)行品質(zhì)分選方面,研究該卷積神經(jīng)網(wǎng)絡(luò)算法中過擬合、指數(shù)衰減法設(shè)置學(xué)習(xí)率、滑動平均模型以及最終綜合方案的優(yōu)化和改進(jìn).對于一個異常復(fù)雜的模型,過擬合通過對每一個訓(xùn)練數(shù)據(jù)中的部分隨機噪音進(jìn)行記憶,使其忘記去“學(xué)習(xí)”訓(xùn)練數(shù)據(jù),雖然在訓(xùn)練中的模型表現(xiàn)優(yōu)良,但是在預(yù)測效果方面則相對較差.為了避免過擬合現(xiàn)象,此次算法的優(yōu)化采用正則化方法,其思想是在損失函數(shù)上增加復(fù)雜模型的指標(biāo).假設(shè)在訓(xùn)練數(shù)據(jù)上增加復(fù)雜模型的損失函數(shù)用J(θ)來表示,那么它會優(yōu)化J(θ)+λR(ω),而非直接對J(θ)優(yōu)化.這里的權(quán)值向量用ω來表示,增加模型的兩種復(fù)雜程度用R(w)來表示,其中R(w)存在兩種形式,經(jīng)過L1和L2正則化,具體計算見公式(3)和公式(4).
(3)
(4)
根據(jù)公式(3)和(4)可知,在總損失中模型復(fù)雜損失的比例用λ來表示,令λ=0.1,從而使L1和L2正則化的效果達(dá)到對權(quán)值向量ω的限制,兩者皆是通過限制ω的大小來使模型不能對訓(xùn)練數(shù)據(jù)任意擬合.由上述計算結(jié)果可知,與L1正則化相比,L2正則化在優(yōu)化時公式可導(dǎo),且損失函數(shù)的優(yōu)化比較簡潔,L2正則化在建立的數(shù)據(jù)集上更加有效地提高了顆粒狀農(nóng)產(chǎn)品的分類準(zhǔn)確率,因此在改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)算法中選用L2正則化.
在訓(xùn)練過程中,CNN采用梯度下降算法來對網(wǎng)絡(luò)參數(shù)進(jìn)行優(yōu)化[7-8].其中學(xué)習(xí)率作為該算法的重要參數(shù),網(wǎng)絡(luò)參數(shù)移動到最佳值的快慢由學(xué)習(xí)率的數(shù)值大小決定,且優(yōu)化率和學(xué)習(xí)率呈正比.研究對學(xué)習(xí)率的設(shè)置是通過指數(shù)衰減方法來進(jìn)行的,為了得到最佳解,需要用一個比較大的學(xué)習(xí)率,當(dāng)?shù)螖?shù)不斷增加時,進(jìn)一步減少學(xué)習(xí)率,從而使處于后期的訓(xùn)練次數(shù)在模型中更加趨于穩(wěn)定.當(dāng)?shù)螖?shù)變化,學(xué)習(xí)率的計算具體見公式(5).
(5)
其中,n表示迭代次數(shù),θ表示衰減速度,λ表示在優(yōu)化時使用的學(xué)習(xí)率,λ0表示數(shù)值為0.001的初始學(xué)習(xí)率,ε表示數(shù)值為0.99的衰減系數(shù),且0<ε<1.
為了降低數(shù)據(jù)訓(xùn)練中噪音對模型造成的影響,本優(yōu)化算法采用滑動平均模型來加快收斂速度,具體計算見公式(6).
θn+1=(1-β)θ+βθn,
(6)
其中,β為衰減率,且0<β<1,θ表示迭代輸入值,θn代表上次迭代后輸出結(jié)果,θn+1代表本次迭代后輸出結(jié)果.這里β對模型的更新速度有決定作用,并在此基礎(chǔ)上引入num_updates參數(shù),實現(xiàn)對衰減率β的動態(tài)設(shè)置.
該優(yōu)化算法應(yīng)用在色選系統(tǒng)中,還需要實時判斷和處理傳送的物料[9-10].由于此次把花生作為研究對象,篩選出的物料圖像比較簡單,因此還可以對深度學(xué)習(xí)算法下的CNN進(jìn)行簡化操作,經(jīng)過簡化之后的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示.
圖3 簡化后的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
從圖3可以看出,與之前構(gòu)建的神經(jīng)網(wǎng)絡(luò)相比,優(yōu)化后的神經(jīng)網(wǎng)絡(luò)由1個輸入層、2個卷積層、2個池化層和2個全連接層組成.對2個池化層和卷積層進(jìn)行計算,這時的尺寸變化為:
100×100×3→100×100×32→ 50×50×32→50×50×64→ 25×25×64
.
通過轉(zhuǎn)化為一維25×25×64兩個全連接層后輸出,這時數(shù)據(jù)轉(zhuǎn)變?yōu)?5×25×64→1024→3.經(jīng)計算,在訓(xùn)練過程中,簡化后的神經(jīng)網(wǎng)絡(luò)需要將池化層和卷積層的參數(shù)加以優(yōu)化,總共有:
(5×5×3+1)×32+32×2+ (5×5×32+1)×64+ 64×2=53888個,
與優(yōu)化前相比,整體上降低了80%,極大地節(jié)約了訓(xùn)練和測試所需的時間.
在顆粒狀農(nóng)產(chǎn)品品質(zhì)分選方面,以花生為例,對卷積神經(jīng)網(wǎng)絡(luò)中的優(yōu)化結(jié)果加以分析.首先對算法中的數(shù)據(jù)集優(yōu)化結(jié)果進(jìn)行分析,將預(yù)測數(shù)據(jù)收集到的407張圖片分別進(jìn)行編號測試.在測試的花生圖片里,分類錯誤的花生圖片詳見圖4(a),從下至上按照1—5進(jìn)行排序,1號花生破損命名為半個花生,2號花生破損命名為完好花生,3號花生完好命名為半個花生,4號完好花生命名為破損花生,5號半個花生命名為破損花生.將標(biāo)記錯誤的圖片放入到數(shù)據(jù)集中訓(xùn)練,從圖4(b)可以看出,對比數(shù)據(jù)集1在優(yōu)化改進(jìn)前后10次的變化,可以看出整體的趨勢一直處于穩(wěn)步上升狀態(tài),除了第4次和第7次準(zhǔn)確率高于改進(jìn)后,剩余的8次改進(jìn)優(yōu)化后的準(zhǔn)確率都要遠(yuǎn)遠(yuǎn)高于改進(jìn)前的準(zhǔn)確率.
根據(jù)過擬合、指數(shù)衰減法和滑動平均模型3個方面優(yōu)化的結(jié)果可以看出,圖5(a)在數(shù)據(jù)集1中,對改進(jìn)前、L1正則化、L2正則化準(zhǔn)確率的情況進(jìn)行測試.L1范數(shù)經(jīng)過正則化,與原始準(zhǔn)確率相比,初期數(shù)值雖呈下降趨勢,但當(dāng)增加訓(xùn)練次數(shù)時,準(zhǔn)確率開始較為穩(wěn)定且呈現(xiàn)不斷上升的態(tài)勢,減少了過擬合現(xiàn)象.數(shù)據(jù)經(jīng)過L2正則化,與原始準(zhǔn)確率相比有顯著提高,并且當(dāng)訓(xùn)練次數(shù)不斷增加時準(zhǔn)確率呈現(xiàn)單調(diào)上升.數(shù)據(jù)經(jīng)過正則化之后,較好地緩解了過擬合,有效提高了顆粒狀農(nóng)產(chǎn)品品質(zhì)分類的準(zhǔn)確率.
采用tf.train.exponential_decay和TensorFlow函數(shù)進(jìn)行編程,以達(dá)到指數(shù)衰減的目的.在數(shù)據(jù)集1上將優(yōu)化前后的測試集分類進(jìn)行對比,從圖5(b)中可以看出,由于先設(shè)置了一個比較大的學(xué)習(xí)率應(yīng)用于指數(shù)衰減法,在1—9的訓(xùn)練次數(shù)里優(yōu)化算法的準(zhǔn)確率增幅較大,隨后訓(xùn)練次數(shù)增幅較小,這是因為學(xué)習(xí)率隨著迭代次數(shù)的增加而減少.在進(jìn)行1—20次訓(xùn)練后,分類準(zhǔn)確率能夠達(dá)到98.18%,優(yōu)化效果良好.比較滑動平均模型優(yōu)化前后分類準(zhǔn)確率情況,從圖5(c)中可以看出,選擇1—20個訓(xùn)練次數(shù),在前期1—10的訓(xùn)練次數(shù)中,分類改進(jìn)優(yōu)化后的準(zhǔn)確率明顯低于改進(jìn)優(yōu)化前,由于滑動平均模型使網(wǎng)絡(luò)結(jié)構(gòu)的穩(wěn)定性增加,在剩余的10次訓(xùn)練過程中,改進(jìn)優(yōu)化后的正確率高于改進(jìn)前,減少了改進(jìn)優(yōu)化后的準(zhǔn)確率波動.
圖4 分類錯誤的花生圖與優(yōu)化前后的數(shù)據(jù)集對比
圖5 花生品質(zhì)分類算法優(yōu)化對比
研究所采用的方案最終是正則化L2、數(shù)據(jù)集、滑動平均模型和簡化網(wǎng)絡(luò)結(jié)構(gòu)指數(shù)衰減學(xué)習(xí)率綜合作用下的優(yōu)化.最終的優(yōu)化卷積神經(jīng)網(wǎng)絡(luò)算法與之前構(gòu)建的卷積神經(jīng)網(wǎng)絡(luò)算法比較結(jié)果如圖6所示,從圖6(a)中可以看出,選取1—43次進(jìn)行訓(xùn)練,在測試集上對數(shù)據(jù)集1分類的準(zhǔn)確率加以對照,當(dāng)訓(xùn)練在37次之后,準(zhǔn)確率高達(dá)98.18%,改進(jìn)后的優(yōu)化分類的準(zhǔn)確率顯著提高,同時呈現(xiàn)穩(wěn)步上升的態(tài)勢.在數(shù)據(jù)集2上對改進(jìn)前與改進(jìn)后的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練和測試,這時將batch設(shè)置為55,從圖6(b)中可以看出,在測試集上對數(shù)據(jù)集2的分類的準(zhǔn)確率加以對照,同樣選取1—43次加以訓(xùn)練,其數(shù)據(jù)在訓(xùn)練5次后準(zhǔn)確率為95.64%,且較為穩(wěn)定,提高了改進(jìn)優(yōu)化后分類準(zhǔn)確率,滿足對顆粒狀農(nóng)產(chǎn)品品質(zhì)色選系統(tǒng)的性能需求.
圖6 數(shù)據(jù)集1與數(shù)據(jù)集2綜合優(yōu)化前后分類準(zhǔn)確率優(yōu)化
此外,在數(shù)據(jù)集1中,將407張花生圖片應(yīng)用于改進(jìn)前的卷積神經(jīng)網(wǎng)絡(luò)算法,并對其進(jìn)行測試,需要的時間為12.51 s.當(dāng)407張花生圖片應(yīng)用于改進(jìn)后的算法測試所需要的時間為7.44 s,也就是說,每一張花生圖片的處理的平均用時僅需要18 ms.在數(shù)據(jù)集2中,將305張花生圖片應(yīng)用于改進(jìn)前的卷積神經(jīng)網(wǎng)絡(luò)算法,并對其進(jìn)行測試,需要的時間為14.33 s.當(dāng)350張花生圖片應(yīng)用于改進(jìn)后的算法測試所需要的時間為8.18 s,也就是說,每一張花生圖片的處理的平均用時僅需要23 ms.由此可知,無論是數(shù)據(jù)集1還是數(shù)據(jù)集2,都能滿足顆粒狀農(nóng)產(chǎn)品品質(zhì)色選設(shè)備實時性的要求.
傳統(tǒng)的顆粒狀農(nóng)產(chǎn)品品質(zhì)分類存在篩選效果差、分類效率低等問題,無法滿足農(nóng)業(yè)加工領(lǐng)域的需求.鑒于此,為了對顆粒狀農(nóng)產(chǎn)品的品質(zhì)進(jìn)行精確分類,以顆粒狀農(nóng)產(chǎn)品中的花生為例,將深度學(xué)習(xí)算法應(yīng)用于對農(nóng)產(chǎn)品的品質(zhì)分選,構(gòu)建了花生圖像庫1和圖像庫2,從正則化L2范數(shù)、滑動平均模型、設(shè)置指數(shù)衰減法的學(xué)習(xí)率和過擬合等方面考慮,搭建了優(yōu)化卷積神經(jīng)網(wǎng)絡(luò).研究結(jié)果表明,指數(shù)衰減后的學(xué)習(xí)率能夠達(dá)到98.18%,卷積神經(jīng)網(wǎng)絡(luò)在進(jìn)行優(yōu)化后的準(zhǔn)確率達(dá)到95.64%,同時卷積神經(jīng)網(wǎng)絡(luò)通過正則化減少了過擬合,在訓(xùn)練中的收斂速度也有所提升,提高了顆粒狀農(nóng)產(chǎn)品的分類準(zhǔn)確率,滿足了對顆粒狀農(nóng)產(chǎn)品品質(zhì)分選需求,該優(yōu)化算法方案很好地完成了預(yù)期目標(biāo).此次研究雖然取得了一定的成果,但仍存在一些不足,今后將研究不再局限于顆粒狀農(nóng)產(chǎn)品的品質(zhì)分選,拓寬對其他農(nóng)業(yè)產(chǎn)品的研究與應(yīng)用.