張淑娟 高庭耀 任 銳 孫海霞
(山西農業大學農業工程學院, 太谷 030800)
近年來,核桃作為特色優勢農產品,在農民增收、產業扶貧、生態建設等方面發揮了重要作用[1]。然而,由于我國大部分地區以家庭為單位的種植方式,對核桃生產管理缺乏標準化的技術支撐,以及不同的生長環境等因素使得采收后的核桃成熟度存在差異。不同成熟度的核桃干制后,核仁皺縮出現空果和干癟果。所以,未經過分揀處理的核桃中經常夾雜著空殼核桃和干癟核桃,直接影響核桃品質及商品價值。
目前,針對核桃的內部品質檢測,文獻[2]設計了空癟核桃分選機,根據空癟核桃與飽滿核桃的比重差異,控制風量實現分選。文獻[3]設計了5X-150型核桃分選機,通過氣吸方式實現空癟核桃的分選。文獻[4]采用計算機視覺技術和重量相結合的方式,實現空殼核桃的檢測。文獻[5]對采集的核桃圖像進行處理、擬合來估算核桃體積,稱取核桃的重量,根據核桃的比重或者比重等效參數檢測和分選核桃。這些方法在檢測過程中存在一定的局限性,因此,提升和改進核桃檢測分選技術是提高核桃商品價值的一個重要環節[6]。
隨著X射線成像檢測技術的發展,目前應用該技術進行農產品檢測的研究報道已有很多[7-11]。這些研究表明,當產品內部存在差異,射線能量穿過時衰減程度不同,導致成像效果差異,這些差異體現了被透射樣本的內部信息,而X射線成像系統將這些信息檢測并記錄下來[12],通過獲取到的內部信息實現無損檢測。
目前,深度學習已廣泛應用于各研究領域,尤其在圖像領域。文獻[13]基于深度學習使用兩級卷積網絡實現了核桃圖像的分割和雜質檢測,該方法能夠正確分割測試圖像中99.4%的目標區域,對驗證圖像中96.5%的異物進行正確分類,正確檢測出100%的測試圖像。文獻[14]通過對AlexNet網絡進行優化得到適合油茶籽完整性識別的卷積神經網絡模型,模型識別準確率達到了98.05%,實現油茶籽完整性的識別。文獻[15]提出利用GoogLeNet深度遷移模型對蘋果缺陷進行檢測,并與傳統機器學習方法進行了對比,結果表明,GoogLeNet深度遷移模型具有更好的泛化能力與魯棒性。
因此,針對核桃內部品質(空殼、干癟和正常)檢測分選過程中存在的問題,本文利用X射線機采集核桃的X射線圖像,結合卷積神經網絡對圖像進行處理和分類,通過對比訓練結果確定最佳模型和最優參數,在此基礎上,開發檢測分選系統,并進行模型驗證。
以山西省汾陽市廣泛種植的“禮品2號”核桃作為試驗材料,剔除破損和異常樣本后,對樣本進行編號并采集X射線圖像,然后稱取核桃質量和核仁質量。根據核仁飽滿度,參照《核桃堅果質量等級》國家標準[16]和感官評判標準,將樣本劃分為正常核桃、干癟核桃和空殼核桃,結果如圖1所示。

圖1 試驗樣本Fig.1 Experimental samples
由圖1可看出,內部品質缺陷的核桃與正常核桃在外觀上并無差異,但核仁品質卻參差不齊。正常核桃(圖1a)的核仁飽滿,表皮色澤光鮮,核仁充滿核桃內部,在X射線圖像中,核仁所占面積比大,殼仁間隙小且不連續;干癟核桃(圖1b)的核仁皺縮,表皮色澤加深,口感差,殼仁間隙較大,在X射線圖像上,核仁所占面積比較小,殼仁間隙大且十分明顯;而空殼核桃(圖1c)的核仁皺縮,質量已忽略不計,甚至部分核仁不存在,在X射線圖像中也看不出核仁形狀,與其余兩組圖像差異十分顯著。
采用山西萬科醫用設備有限公司WFC型數字化攝影X射線機采集核桃圖像,其主要由組合式X射線發生器、限束器、控制箱、平板探測器、X射線成像系統、機架等部件組成。試驗前對儀器參數進行調試,通過對比試驗確定:管電壓50 kV、管電流100 mA、輻照時間(電流時間乘積)1.6 mA·s為最佳試驗參數,可獲得最大化圖像對比度和最小化圖像噪聲。
試驗采集正常核桃X射線圖像382幅,干癟核桃X射線圖像255幅,空殼核桃X射線圖像401幅。獲取的原始圖像分辨率為3 072像素×3 072像素,將原始圖像裁剪成完全包含核桃的樣本圖像(360像素×360像素)。為消除背景對圖像特征提取的影響,對圖像進行預處理[17],圖2為原始圖像和去除背景的核桃圖像。再根據模型輸入要求,將去除背景的X射線圖像統一調整為224像素×224像素。

圖2 圖像預處理Fig.2 Image preprocessing
由于干癟核桃樣本數量較少且3類核桃樣本數量不均,可能會影響模型的訓練效果,導致結果不理想[18]。為避免這種情況的發生,往往采用數據增強的方式增加數據集。本文主要采用隨機翻轉、亮度變換、加噪、對比度變換4種方式增加數據集,得到3類核桃的X射線圖像各2 000幅。
卷積神經網絡(CNN)通過網絡節點之間的深度和權值共享來自動進行特征提取和選擇,CNN有各種占主導地位的預訓練結構,這些結構在數據集ImageNet上用1 000個不同的類成功訓練完成分類任務。不同模型對不同數據處理效果不同,因此選擇合適的網絡進行空殼核桃分類。
1.2.1VGG 19
VGGNet的思想是不斷加深網絡結構來提升性能,通過減小卷積核尺寸,使用3×3的卷積核和2×2的池化核,來減少參數和計算量[19]。VGG 19共19層,包含16個卷積層、3個全連接層和5個池化層,共組成5個卷積塊,每個卷積塊由一組卷積層、一個激活函數和一個最大池化函數組成。網絡的輸入圖像尺寸為224×224×3,輸出為7×7×512;分類部分對輸出結果進行扁平化(flatten)處理,得到長度為25 088的一維向量[20]。VGG 19通過卷積層提取圖像特征,池化層降低提取特征維度,全連接層對數據進行分類,最后一層為softmax層,計算出輸入圖像屬于每個類別的概率,最后輸出的就是每個類的預測值。
1.2.2GoogLeNet
GoogLeNet是Google公司推出的基于Inception模塊深度神經網絡模型,創新點在于一層網絡中存在多個不同尺度的卷積核,一方面增加了網絡寬度,另一方面增強了模型對尺度的適應性。Inception V1網絡是一個有22層深度的卷積神經網絡結構,由1×1卷積、3×3卷積、5×5卷積和3×3池化4個主要部分組成,多次使用1×1卷積核,實現了跨通道信息融合,提高了網絡的表達能力,同時又可以對輸出特征進行升維或降維處理。通過多種不同尺寸的卷積核提取圖像多尺度的信息,然后進行融合,從而具有更好的圖像表征能力[21]。
1.2.3ResNet 101
ResNet的思想是在網絡中增加了直連通道,將靠前若干層的某一層數據輸出直接跳過多層,引入到后面數據層的輸入部分,將原始輸入信息直接傳輸到后面的網絡層中,將層與層之間的傳遞學習表示為輸入與輸出殘差函數的學習,良好地中和了梯度爆炸問題與退化問題。ResNet 101共101層,包括1個輸入7×7×64的卷積層,經過99個殘差單元層,最后至全連接層得到最后的分類結果[22]。
1.2.4MobileNet v2
MobileNet模型是一種輕量級的深層神經網絡,其使用的核心思想是深度可分離卷積塊。深度可分離卷積塊由兩部分組成,分別是3×3深度可分離卷積和1×1普通卷積。MobileNet v2共28層,為防止非線性層損失信息,引入線性瓶頸層,將可分離卷積應用于殘差結構,形成倒卷殘差塊,堆疊形成線性瓶頸塊。對數據先升維再降維,增強梯度的傳播,減少訓練時所需的內存[23]。
本文使用Windows 10系統,處理器是Intel Core i7-10875H,主頻2.30 GHz。系統還包括16 GB內存、1 TB硬盤和6 GB顯存NVIDIA RTX 2060 GPU,采用Matlab 2020a中深度學習工具箱進行編程計算。
為了評價不同模型和參數對核桃內部品質分類結果,本文選擇預測集準確率、預測集損失值、測試集準確率以及訓練時間4個參數作為評價指標。
隨機選取數據集的72%用于模型訓練,18%用于模型預測,10%用于模型測試。分別用4種遷移學習模型對核桃品質進行判別,為提升模型的訓練性能,還設置不同模型參數(學習率和迭代次數)的對比試驗[24],并開發檢測分選系統。
本文采用GoogLeNet、ResNet 101、MobileNet v2和VGG 19共4種遷移學習模型對核桃數據集進行測試,4種模型的驗證結果如表1所示,訓練過程準確率和損失值的變化如圖3所示。4種模型的參數分別為:Batch Size(批尺寸)為16,最大迭代次數為25,學習率為0.001,4種模型均可實現核桃內部品質的分級分選,但從模型預測準確率和損失值曲線可以看出,MobileNet v2和ResNet 101模型曲線一直存在起伏,模型不穩定。GoogLeNet模型在迭代初始階段起伏較為明顯,在訓練次數1 000后模型的穩定性與VGG 19模型基本一致,且兩個模型的預測準確率相差不大,分別為96.67%和96.53%。但對比訓練所需時間,VGG 19模型耗時過長,約114 min。綜合考慮識別準確率和運算性能,最終選用GoogLeNet模型。

表1 不同遷移學習模型對核桃內部品質檢測的準確率Tab.1 Accuracy of different migration learning models for walnut internal quality detection

圖3 4種分類模型準確率和損失值Fig.3 Accuracy rate and loss map of four classification models
2.2.1迭代次數
本文設置4組不同的迭代次數(15、20、25、30)進行對比試驗,結果如表2所示。由表2可知,迭代次數為25次時,模型預測準確率和測試準確率最高,都為96.67%;當迭代次數設置為30次時,模型的準確率都略有降低,表明迭代次數并非越多越好。同時,研究發現迭代次數與運行時間呈正比例關系[25]。因此,本研究選擇迭代次數為25時進行以下試驗。

表2 模型GoogLeNet不同迭代次數時核桃內部品質檢測的準確率Tab.2 Accuracy of different epoch of GoogLeNet model for walnut internal quality detection
2.2.2學習率
學習率決定著目標函數能否收斂到局部最小和收斂速度。當學習率設置過大時,模型不穩定且難以收斂;當學習率設置過小時,模型收斂時間加長且容易過擬合;合適的學習率能夠使模型結果快速接近最優解。結合試驗研究和經驗,選擇學習率為0.01、0.001、0.000 1進行模型訓練,試驗結果如表3所示。圖4為3種學習率條件下模型預測準確率和損失值曲線。

表3 模型GoogLeNet不同學習率時核桃內部品質檢測的準確率Tab.3 Accuracy of different learning rates of GoogLeNet model for walnut internal quality detection

圖4 不同學習率條件下模型預測準確率和損失值Fig.4 Prediction accuracy and loss of models with different learning rates
由圖4可知,在訓練次數小于1 000時,當學習率設置為0.01,預測準確率和損失值曲線有較大范圍的振蕩,收斂速度慢且預測準確率低,損失值高;當學習率設置為0.000 1,測試準確率和損失值曲線振蕩較小,但準確率低于學習率設置為0.001的模型。由表3可知,隨著學習率的降低,預測準確率呈先上升后下降的趨勢,學習率設置為0.001時模型的預測準確率最高,為96.67%,損失值最小,為0.102 2。在3組學習率條件下,模型所用時間基本一致,可能與數據集的樣本數量有關。
為驗證模型的實用性,基于LabVIEW開發空殼核桃檢測分選系統進行驗證。利用LabVIEW中的Matlab Script節點,將Matlab強大的圖像處理和計算功能運用于LabVIEW程序中。依次讀取文件中的圖像,對圖像進行預處理,同時加載已經建立好的卷積神經網絡,并輸出判別結果,實現空殼核桃的檢測分選。核桃內部品質檢測分選系統界面如圖5所示。

圖5 核桃內部品質檢測分選系統界面Fig.5 Detection system of walnut internal quality
采用檢測系統對核桃品質進行驗證的結果如表4所示。由表4可知,空殼核桃的判別準確率可達100%,正常核桃有3個誤判為干癟核桃,干癟核桃中有9個被誤判為正常核桃,模型平均判別準確率為96.39%。分析原因是由于劃分標準不明確,極少部分核桃介于干癟和正常核桃之間導致的判別失誤,不會對分類結果產生較大影響,但判別標準有待進一步改進提升。總體來說,該系統可實現空殼核桃的檢測與分選。

表4 核桃內部品質檢測系統驗證Tab.4 Verification of walnut internal quality inspection system
(1)對比4種不同遷移學習模型,GoogLeNet模型預測準確率最高,達到96.67%,同時模型耗時少且收斂穩定。
(2)設置不同學習率和迭代次數對模型進行訓練,確定學習率為0.001,迭代次數為25次時,預測準確率達到最高,為96.67%,效果最佳。
(3)開發空殼核桃檢測分選系統,空殼核桃的判別準確率達到100%,模型平均判別準確率為96.39%。該系統實現了空殼核桃的準確、高效、無損檢測分選,提升和改進了核桃檢測分選技術。