張忠志 薛歡慶 范廣玲
(1. 吉利學院,四川 成都 641423;2. 大慶師范學院,黑龍江 大慶 163712;3. 東北石油大學,黑龍江 大慶 163311)
目前中國對紅棗缺陷的檢測方法大多通過人工進行篩選,勞動強度大且效率低,而且紅棗的品質受分揀人員的影響較大,難以滿足中國食品安全相關標準的要求[1]。研究人員對食品缺陷檢測技術進行了研究,并取得了一定的成果。楊森等[2]提出了一種基于輕量級卷積網絡的馬鈴薯外部缺陷無損檢測與分類方法,當訓練率為0.000 001時,網絡模型的整體性能最好,訓練精度為98.88%。與傳統方法相比,輕量級網絡模型平均表現出較好的識別效果,平均識別率為96.04%。張思雨等[3]提出了一種將機器視覺與自適應卷積神經網絡相結合的花生質量檢測方法,該法對花生常見缺陷的平均識別率為99.7%,比傳統的深度網絡具有更高的收斂速度和識別精度。海潮等[4]提出了一種基于機械視覺檢測紅棗表面缺陷的方法,其顏色空間模型使用Blob分析算法將紅棗與背景分離,并識別紅棗上的表面缺陷,準確率在90%以上。然而,上述食品缺陷檢測方法的研究往往局限于單一缺陷,識別準確率和效率不高,在實際應用中無法滿足要求。
針對目前紅棗人工缺陷識別技術的現狀,研究擬提出一種用于紅棗缺陷自動識別的多分類方法,通過雙分支深度融合卷積神經網絡(Double branch deep fustion convolutional neural network,DBDFCNN)進行缺陷識別。采用雙分支卷積神經網絡結構,分支1結合遷移學習策略進行預訓練,分支2基于輕量級網絡融合特征圖提取紅棗圖像的特征信息。通過對比實驗驗證該方法的優越性。旨在為食品缺陷檢測方法的研究提供一定的依據。
紅棗缺陷檢測系統結構如圖1所示,其工作原理:進料機構可將棗從混亂狀態轉變為單一進料狀態,將棗有序地引入輸送機的輥列中[5]。輸送系統可實現紅棗的自動翻轉,在正向運輸的同時,可以在攝像機采集范圍內查看棗的各個側面,進行全方位采集,獲取紅棗的全部表面信息[6]。圖片處理系統經過處理后將結果傳到分揀系統,分揀系統通過封嘴將不同缺陷棗移動到指定位置,利用擋板進行收集,正常紅棗會自動落入輸送帶末端的儲存箱中,實現紅棗缺陷的分選。

圖1 系統結構
在食品圖像檢測識別領域,種類繁多、特征相似、數據集匱乏等問題提高了對模型遷移能力的要求,限制了傳統深度學習模型的應用[7]。因此,提出一種雙分支深度融合卷積神經網絡用于自動識別紅棗中的缺陷。
輕量級網絡 SqueezeNet以1×1卷積核來代替部分3×3的卷積核,減少了卷積神經網絡模型的訓練參數,壓縮了網絡模型的大小[8]。 同時,通過延遲池化層來獲得更大的特征圖,使識別的準確率得到極大的提高。SqueezeNet 網絡結構如圖 2所示,主要由卷積層、池化層、Fire 模塊、激活層 ReLU 組成。其中Fire 模塊是 SqueezeNet 網絡的核心部分[9]。文中紅棗輸入圖像數據大小為227×227,卷積層Conv1卷積核大小為7×7,步長為2,卷積層Conv10的卷積核大小為1×1,步長為1,通過Conv10代替全連接層進行分類[10]。輸出為紅棗分類結果,分為5類,對應紅棗的各類別。 SqueezeNet網絡參數如表1所示。

圖2 SqueezeNet網絡結構

表1 SqueezeNet網絡參數
為了進一步提高模型識別的準確率,對輕量級網絡進行改進,將Fire模塊的3個卷積層Squeeze 1×1、expand 1×1、expand 3×3通過Concat層進行融合,形成融合模塊(Fusion module),并將相鄰Fusion模塊提取的特征信息進行融合,融合后的特征圖作為下一層網絡的輸入[11]。增加了特征圖在網絡中的分支數量,使網絡的特征信息更加豐富[12]。在卷積操作后,都會加入一個 BN 批量標準操作層,并使用 PReLU 函數代替 ReLU 函數作為網絡激活層。深度融合卷積神經網絡的結構如圖 3所示。

圖3 深度融合卷積神經網絡結構
使用Fusion模塊與Fire模塊進行替換,相鄰Fusion模塊進行特征融合,所以稱為深度融合卷積神經網絡[13]。該網絡的結構由2個卷積層、8個Fusion模塊、4個池化層和1個Dropout層組成[14]。在每次卷積操作之后,進行 BN 批量標準操作層和PReLU激活層,8個Fusion模塊兩兩進行融合(2 和 3、4 和 5、6 和 7、8 和 9),通過融合優化特征信息流[15]。
每一層特征數據輸入之前都要進行歸一化處理,均值0,方差1。如果BN層輸入有d維數據X={x1,x2,x3,K,xd},則批量數據特征均值如式(1)所示,方差如式(2)所示[16]。
(1)
(2)
在深度融合卷積神經網絡的基礎上,提出了一種DBDFCNN結構來解決紅棗缺陷識別問題。如圖4所示,DBDFCNN 網絡是雙分支結構,第1個分支使用訓練好的SqueezeNet網絡模型對文中模型進行預訓練。 第2個分支通過Fusion模塊提取棗圖像的特征信息[17]。

圖4 雙分支深度融合卷積神經網絡結構
DBDFCNN結構的設計是在卷積神經網絡結構中使用遷移學習策略,利用訓練好的SqueezeNet網絡模型對DBDFCNN網絡模型進行預訓練,提高了網絡訓練整體收斂速度[18]。 同時拓寬了網絡結構的寬度,提高了DBDFCNN模型的分類精度和泛化能力[19]。
相機:mer-503-20gc-p型,北京大恒圖像視覺有限公司;
鏡頭:m0814-mp2型,日本康標達公司;
計算機:聯想啟天M435型,聯想(北京)有限公司;
Halcon:德國MVtec公司;
Visual Studio 2018:微軟公司。
網絡輸入層紅棗圖像的大小統一裁剪為227×227,該數據集包含干條、黃皮、霉變、破頭和正常棗(各2 000張),分為訓練集和測試集,訓練集和測試集比例為1∶1[20]。最大迭代數為10 000,學習率為0.000 1。DBDFCNN網絡參數如表2所示。

表2 參數設置
對不同卷積神經網絡性能對比分析,以驗證DBDFCNN網絡模型的有效性。與傳統缺陷識別方法和改進的卷積神經網絡方法進行比較,驗證該方法的優越性[21]。圖5為紅棗的分類圖。

圖5 紅棗分類圖
從圖6(a)可以看出,迭代0~500時DBDFCNN網絡模型識別準確率快速上升,在500~3 000時上升較為緩慢,之后準確率趨于穩定,最終穩定在99%以上。從圖6(b) 可以看出,迭代0~500時DBDFCNN網絡模型的損失值迅速下降,在500~3 000時下降緩慢,之后趨于穩定。

圖6 DBDFCNN網絡的準確率和損失值變化
使用DBDFCNN網絡模型對紅棗圖像測試集數據進行識別和分類,測試集中共有5 000張紅棗圖片,分5種類型,每種類型各1 000張。表3為DBDFCNN網絡模型識別結果。
由表3可知,網絡模型識別準確率分別為99.8%,99.6%,99.4%,98.7%,100.0%,總體分類準確率為99.5%。

表3 識別結果
為了驗證DBDFCNN網絡模型的有效性,將網絡模型與SqueezeNet網絡模型進行對比分析。迭代次數設置為10 000,干條、黃皮、霉變、破頭和正常棗各2 000張為試驗集進行實驗驗證。由圖7可知,文中網絡模型的分類準確率和網絡學習速度都優于SqueezeNet網絡模型,而且網絡收斂速度快,損失值小,網絡學習速度快。

圖7 不同網絡的準確率和損失值變化
通過紅棗數據集對DBDFCNN網絡和SqueezeNet 網絡進行訓練和測試,準確率分別為96.2% 和 99.5%。每張紅棗圖像的平均分類和識別時間分別為3.7,8.2 ms。
由表4可以看出,SqueezeNet網絡模型的分類識別時間相對較短,且其準確率較文中網絡模型低了3.43%。雖然文中網絡模型增加了紅棗缺陷分類所需的時間,但仍能滿足紅棗分類識別的工程應用。

表4 不同網絡模型對比
為了驗證DBDFCNN算法的優越性,將其與網中網卷積神經網絡(Network in network -convolutional neural networks,NIN-CNN)算法[22]和粒子群優化的最小二乘法支持向量機(Particle swarm optimization-least squares support vector machine,PSO-LS-SVM)算法[23]進行比較。PSO-LS-SVM算法用于提取和識別紅棗單一特征,未進行多種缺陷分類。而DBDFCNN算法和NIN-CNN算法針對不同棗品質實現多分類,相比于傳統識別方法,在識別準確率和效率上都有一定的提升。從表5可以看出,傳統的紅棗缺陷識別和檢測方法僅關注缺陷的存在與否,不會對缺陷進行分類。卷積神經網絡的出現解決了紅棗缺陷的多分類問題,網絡通過原始圖片進行訓練,無需復雜的圖像預處理操作,分類識別準確率較高,DBDFCNN網絡模型的識別準確率達到99.5%。

表5 不同識別方法對比
基于雙分支深度融合的卷積神經網絡的紅棗缺陷識別方法,提高了網絡學習速度和收斂速度,具有較好的分類識別效果。相比于SqueezeNet網絡,文中提出的網絡模型將紅棗缺陷分類準確率提高了3.43%,識別準確率達到99.5%。鑒于試驗設備和數據規模,文中研究仍處于起步階段,僅進行試驗分析,后期將不斷提高該方法的性能。