王艷兵
(徽商職業(yè)學院 電子信息系,安徽 合肥 230000)
借助機器視覺技術,能夠對農業(yè)產品中外表破損、顏色改變的產品進行檢測,進而區(qū)分出合格與不合格的產品[1-2].在傳統(tǒng)的色選系統(tǒng)中可以篩選的物料有限,可以使用的范圍比較窄,有一定的局限性.此次研究的對象為顆粒狀農產品中的花生.對花生進行色選,往往面臨著花生容易發(fā)生霉變,導致表面易破損、斷裂等問題[3].隨著計算機和嵌入式技術的不斷發(fā)展完善,本文基于深度學習中的色選圖像分類算法,以花生為對象組成了圖片數(shù)據(jù)集,構建了卷積神經(jīng)網(wǎng)絡,并進行了優(yōu)化設計,實現(xiàn)了對顆粒狀農產品的圖像分類,減少了準確率波動,有效提高了優(yōu)化算法在顆粒狀農產品品質分選中的準確率.
選擇花生作為顆粒狀農產品中的研究對象,在彩色色選系統(tǒng)中構建兩個數(shù)據(jù)集,并應用圖像分類算法進行產品篩選[4-5].第1個數(shù)據(jù)集總共包含407張花生圖像,分為完好花生、半個花生和表皮破損花生3類標記標簽.將做好分類標記標簽的數(shù)據(jù)按照8∶2的比例分為訓練集和測試集,其中訓練集為325張花生圖片,測試集為82張花生圖片,圖1展示了部分訓練集的花生圖片.上面一排是完好花生,中間一排是表皮破損花生,下面一排是半個花生.
第2個數(shù)據(jù)集總共包含350張花生圖片,分為表皮破損區(qū)域小于閾值、臨近閾值和大于閾值3類標記標簽.和第1個數(shù)據(jù)集一樣,將做好分類標記標簽的數(shù)據(jù)按照8∶2的比例分為訓練集和測試集,其中訓練集為280張花生圖片,測試集為70張花生圖片,圖2展示的是部分訓練集的花生圖片.上面一排是遠小于閾值的表皮破損區(qū)域花生,中間一排是遠大于閾值的表皮破損區(qū)域花生,下面一排是臨近閾值的表皮破損區(qū)域花生.

圖1 第1個數(shù)據(jù)集集中訓練集部分花生圖片

圖2 第2個數(shù)據(jù)集中訓練集部分花生圖片
構建本文卷積神經(jīng)網(wǎng)絡(CNN)的結構,網(wǎng)絡各層由1個輸入層、4個卷積層、4個池化層和3個全連接層組成.CNN的輸入層輸入3個尺寸為100×100的花生圖片,卷積層經(jīng)過SAME邊界補0的方式進行處理,在4次卷積之后深度加深,但花生圖片的長和寬保持不變[6].CNN的池化層經(jīng)過VALID邊界不補0的方式進行處理,同時將步長設置為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
.
通過轉化為一維6×6×128三個全連接層后輸出,這時數(shù)據(jù)轉變?yōu)?×6×128→1024→512→3.通過softmax分類器能夠將一維中的數(shù)值轉化為[0,1]及和為1的對應概率,將3類數(shù)據(jù)中輸出的一維向量借助softmax分類器進行傳遞.研究假設有K(K=3)個類別,經(jīng)softmax分類器計算,具體如公式(1)所示.
(1)
式(1)中,Zj代表的是一維向量在連接層輸出后的第j+1個數(shù)值.
比較標準標簽和輸出標簽中損失函數(shù)的大小,借助softmax計算得出.然后對各層參數(shù)的數(shù)值進行調整,從而不斷減小損失函數(shù),神經(jīng)網(wǎng)絡得以進一步改進優(yōu)化.研究中使用的是交叉熵分類損失函數(shù),具體公式如式(2)所示.
(2)
從式(2)可以得知,這組數(shù)據(jù)通過softmax為log函數(shù)內部的值輸出正確的分類值,從中得出的值與損失函數(shù)值呈反比關系,滿足損失函數(shù)的要求.以花生圖片1的數(shù)據(jù)集為參照,訓練在CPU+GPU上構建的CNN,采用55張圖片對CNN進行訓練,也就是說batch設置為55,學習率設為0.0001,經(jīng)過40次的迭代后,花生的分類準確率能夠達到 90.91%,較為穩(wěn)定.此次研究采用8-5-3結構的神經(jīng)網(wǎng)絡來驗證CNN的效果,在數(shù)據(jù)集上學習100次進行訓練測試,其花生的分類準確率為85.45%,因此,基于顆粒狀農產品的分類算法能夠高效完成花生的分類,提高正確率.
對顆粒狀農產品進行品質分選方面,研究該卷積神經(jīng)網(wǎng)絡算法中過擬合、指數(shù)衰減法設置學習率、滑動平均模型以及最終綜合方案的優(yōu)化和改進.對于一個異常復雜的模型,過擬合通過對每一個訓練數(shù)據(jù)中的部分隨機噪音進行記憶,使其忘記去“學習”訓練數(shù)據(jù),雖然在訓練中的模型表現(xiàn)優(yōu)良,但是在預測效果方面則相對較差.為了避免過擬合現(xiàn)象,此次算法的優(yōu)化采用正則化方法,其思想是在損失函數(shù)上增加復雜模型的指標.假設在訓練數(shù)據(jù)上增加復雜模型的損失函數(shù)用J(θ)來表示,那么它會優(yōu)化J(θ)+λR(ω),而非直接對J(θ)優(yōu)化.這里的權值向量用ω來表示,增加模型的兩種復雜程度用R(w)來表示,其中R(w)存在兩種形式,經(jīng)過L1和L2正則化,具體計算見公式(3)和公式(4).
(3)
(4)
根據(jù)公式(3)和(4)可知,在總損失中模型復雜損失的比例用λ來表示,令λ=0.1,從而使L1和L2正則化的效果達到對權值向量ω的限制,兩者皆是通過限制ω的大小來使模型不能對訓練數(shù)據(jù)任意擬合.由上述計算結果可知,與L1正則化相比,L2正則化在優(yōu)化時公式可導,且損失函數(shù)的優(yōu)化比較簡潔,L2正則化在建立的數(shù)據(jù)集上更加有效地提高了顆粒狀農產品的分類準確率,因此在改進卷積神經(jīng)網(wǎng)絡算法中選用L2正則化.
在訓練過程中,CNN采用梯度下降算法來對網(wǎng)絡參數(shù)進行優(yōu)化[7-8].其中學習率作為該算法的重要參數(shù),網(wǎng)絡參數(shù)移動到最佳值的快慢由學習率的數(shù)值大小決定,且優(yōu)化率和學習率呈正比.研究對學習率的設置是通過指數(shù)衰減方法來進行的,為了得到最佳解,需要用一個比較大的學習率,當?shù)螖?shù)不斷增加時,進一步減少學習率,從而使處于后期的訓練次數(shù)在模型中更加趨于穩(wěn)定.當?shù)螖?shù)變化,學習率的計算具體見公式(5).
(5)
其中,n表示迭代次數(shù),θ表示衰減速度,λ表示在優(yōu)化時使用的學習率,λ0表示數(shù)值為0.001的初始學習率,ε表示數(shù)值為0.99的衰減系數(shù),且0<ε<1.
為了降低數(shù)據(jù)訓練中噪音對模型造成的影響,本優(yōu)化算法采用滑動平均模型來加快收斂速度,具體計算見公式(6).
θn+1=(1-β)θ+βθn,
(6)
其中,β為衰減率,且0<β<1,θ表示迭代輸入值,θn代表上次迭代后輸出結果,θn+1代表本次迭代后輸出結果.這里β對模型的更新速度有決定作用,并在此基礎上引入num_updates參數(shù),實現(xiàn)對衰減率β的動態(tài)設置.
該優(yōu)化算法應用在色選系統(tǒng)中,還需要實時判斷和處理傳送的物料[9-10].由于此次把花生作為研究對象,篩選出的物料圖像比較簡單,因此還可以對深度學習算法下的CNN進行簡化操作,經(jīng)過簡化之后的網(wǎng)絡結構如圖3所示.

圖3 簡化后的神經(jīng)網(wǎng)絡結構圖
從圖3可以看出,與之前構建的神經(jīng)網(wǎng)絡相比,優(yōu)化后的神經(jīng)網(wǎng)絡由1個輸入層、2個卷積層、2個池化層和2個全連接層組成.對2個池化層和卷積層進行計算,這時的尺寸變化為:
100×100×3→100×100×32→ 50×50×32→50×50×64→ 25×25×64
.
通過轉化為一維25×25×64兩個全連接層后輸出,這時數(shù)據(jù)轉變?yōu)?5×25×64→1024→3.經(jīng)計算,在訓練過程中,簡化后的神經(jīng)網(wǎng)絡需要將池化層和卷積層的參數(shù)加以優(yōu)化,總共有:
(5×5×3+1)×32+32×2+ (5×5×32+1)×64+ 64×2=53888個,
與優(yōu)化前相比,整體上降低了80%,極大地節(jié)約了訓練和測試所需的時間.
在顆粒狀農產品品質分選方面,以花生為例,對卷積神經(jīng)網(wǎng)絡中的優(yōu)化結果加以分析.首先對算法中的數(shù)據(jù)集優(yōu)化結果進行分析,將預測數(shù)據(jù)收集到的407張圖片分別進行編號測試.在測試的花生圖片里,分類錯誤的花生圖片詳見圖4(a),從下至上按照1—5進行排序,1號花生破損命名為半個花生,2號花生破損命名為完好花生,3號花生完好命名為半個花生,4號完好花生命名為破損花生,5號半個花生命名為破損花生.將標記錯誤的圖片放入到數(shù)據(jù)集中訓練,從圖4(b)可以看出,對比數(shù)據(jù)集1在優(yōu)化改進前后10次的變化,可以看出整體的趨勢一直處于穩(wěn)步上升狀態(tài),除了第4次和第7次準確率高于改進后,剩余的8次改進優(yōu)化后的準確率都要遠遠高于改進前的準確率.
根據(jù)過擬合、指數(shù)衰減法和滑動平均模型3個方面優(yōu)化的結果可以看出,圖5(a)在數(shù)據(jù)集1中,對改進前、L1正則化、L2正則化準確率的情況進行測試.L1范數(shù)經(jīng)過正則化,與原始準確率相比,初期數(shù)值雖呈下降趨勢,但當增加訓練次數(shù)時,準確率開始較為穩(wěn)定且呈現(xiàn)不斷上升的態(tài)勢,減少了過擬合現(xiàn)象.數(shù)據(jù)經(jīng)過L2正則化,與原始準確率相比有顯著提高,并且當訓練次數(shù)不斷增加時準確率呈現(xiàn)單調上升.數(shù)據(jù)經(jīng)過正則化之后,較好地緩解了過擬合,有效提高了顆粒狀農產品品質分類的準確率.
采用tf.train.exponential_decay和TensorFlow函數(shù)進行編程,以達到指數(shù)衰減的目的.在數(shù)據(jù)集1上將優(yōu)化前后的測試集分類進行對比,從圖5(b)中可以看出,由于先設置了一個比較大的學習率應用于指數(shù)衰減法,在1—9的訓練次數(shù)里優(yōu)化算法的準確率增幅較大,隨后訓練次數(shù)增幅較小,這是因為學習率隨著迭代次數(shù)的增加而減少.在進行1—20次訓練后,分類準確率能夠達到98.18%,優(yōu)化效果良好.比較滑動平均模型優(yōu)化前后分類準確率情況,從圖5(c)中可以看出,選擇1—20個訓練次數(shù),在前期1—10的訓練次數(shù)中,分類改進優(yōu)化后的準確率明顯低于改進優(yōu)化前,由于滑動平均模型使網(wǎng)絡結構的穩(wěn)定性增加,在剩余的10次訓練過程中,改進優(yōu)化后的正確率高于改進前,減少了改進優(yōu)化后的準確率波動.

圖4 分類錯誤的花生圖與優(yōu)化前后的數(shù)據(jù)集對比



圖5 花生品質分類算法優(yōu)化對比
研究所采用的方案最終是正則化L2、數(shù)據(jù)集、滑動平均模型和簡化網(wǎng)絡結構指數(shù)衰減學習率綜合作用下的優(yōu)化.最終的優(yōu)化卷積神經(jīng)網(wǎng)絡算法與之前構建的卷積神經(jīng)網(wǎng)絡算法比較結果如圖6所示,從圖6(a)中可以看出,選取1—43次進行訓練,在測試集上對數(shù)據(jù)集1分類的準確率加以對照,當訓練在37次之后,準確率高達98.18%,改進后的優(yōu)化分類的準確率顯著提高,同時呈現(xiàn)穩(wěn)步上升的態(tài)勢.在數(shù)據(jù)集2上對改進前與改進后的卷積神經(jīng)網(wǎng)絡進行訓練和測試,這時將batch設置為55,從圖6(b)中可以看出,在測試集上對數(shù)據(jù)集2的分類的準確率加以對照,同樣選取1—43次加以訓練,其數(shù)據(jù)在訓練5次后準確率為95.64%,且較為穩(wěn)定,提高了改進優(yōu)化后分類準確率,滿足對顆粒狀農產品品質色選系統(tǒng)的性能需求.

圖6 數(shù)據(jù)集1與數(shù)據(jù)集2綜合優(yōu)化前后分類準確率優(yōu)化
此外,在數(shù)據(jù)集1中,將407張花生圖片應用于改進前的卷積神經(jīng)網(wǎng)絡算法,并對其進行測試,需要的時間為12.51 s.當407張花生圖片應用于改進后的算法測試所需要的時間為7.44 s,也就是說,每一張花生圖片的處理的平均用時僅需要18 ms.在數(shù)據(jù)集2中,將305張花生圖片應用于改進前的卷積神經(jīng)網(wǎng)絡算法,并對其進行測試,需要的時間為14.33 s.當350張花生圖片應用于改進后的算法測試所需要的時間為8.18 s,也就是說,每一張花生圖片的處理的平均用時僅需要23 ms.由此可知,無論是數(shù)據(jù)集1還是數(shù)據(jù)集2,都能滿足顆粒狀農產品品質色選設備實時性的要求.
傳統(tǒng)的顆粒狀農產品品質分類存在篩選效果差、分類效率低等問題,無法滿足農業(yè)加工領域的需求.鑒于此,為了對顆粒狀農產品的品質進行精確分類,以顆粒狀農產品中的花生為例,將深度學習算法應用于對農產品的品質分選,構建了花生圖像庫1和圖像庫2,從正則化L2范數(shù)、滑動平均模型、設置指數(shù)衰減法的學習率和過擬合等方面考慮,搭建了優(yōu)化卷積神經(jīng)網(wǎng)絡.研究結果表明,指數(shù)衰減后的學習率能夠達到98.18%,卷積神經(jīng)網(wǎng)絡在進行優(yōu)化后的準確率達到95.64%,同時卷積神經(jīng)網(wǎng)絡通過正則化減少了過擬合,在訓練中的收斂速度也有所提升,提高了顆粒狀農產品的分類準確率,滿足了對顆粒狀農產品品質分選需求,該優(yōu)化算法方案很好地完成了預期目標.此次研究雖然取得了一定的成果,但仍存在一些不足,今后將研究不再局限于顆粒狀農產品的品質分選,拓寬對其他農業(yè)產品的研究與應用.