劉現,鄭華偉,張海佳
(1.福建省農業科學院數字農業研究所,福建 福州 350003;2.福建農林大學計算機與信息學院,福建 福州 350003)
荔枝(Litchi chinensis Sonn. ) 為無患子科(Sapindaceae)荔枝屬(Litchi Sonn.)常綠果樹,中國是荔枝主產國,荔枝是華南地區最具特色的水果之一,目前荔枝栽培面積約為53 萬hm2,產量為230 萬t,均居世界首位[1-2]。荔枝分級是它保鮮、銷售及深加工之前一個十分重要的工序,能夠有效地提升其產業附加值[3],建立完整的分級制度可促進果品優質優價,進一步促進荔枝果業的發展[4]。
深度學習是機器學習的一個次領域,是現今研究的一個嶄新方向[5]。其中卷積神經網絡(Convolutional Neural Network,CNN)雖然在圖像分類中取得了很好的效果,但是當CNN 達到一定的網絡層深度時,會產生梯度彌耗和爆炸問題,導致深層的網絡訓練準確率反而低于淺層的網絡訓練準確率。ResNet50 的提出能夠解決這類問題,使得網絡在深度增加的同時網絡的性能也能夠得到極大的提升[6]。近年來,不少研究者利用ResNet50 網絡開展農業研究。郭章龍等[7]使用ResNet50_Vd 實現對農作物病害的識別,分類準確率達到99.1%;馬鑫鑫等[8]用4 種不同的神經網絡來識別農田害蟲,取得了較好的識別率。
文獻表明,ResNet50 神經網絡可應用于農業圖像分類任務中。荔枝在產后表皮易產生多種缺陷,研究它的分級進而實現它的分類計價,可促進果業標準化。本文立足于當前研究現狀,構建荔枝表皮缺陷圖像數據集,利用ResNet50 神經網絡構建荔枝表皮缺陷檢測模型,并與KNN 算法、RF 算法所構建的分類模型進行對比,評估模型的分類效果與性能。
1.1.1 供試材料
本試驗所使用的“荔枝”采購自福建省福州市永輝超市,品種為“桂味”。
1.1.2 試驗平臺
福建省農業科學院數字農業研究所自主構建了一套圖像獲取試驗平臺,如圖1 所示。平臺包括1 臺吉農牌計算機分選機(型號為TN-68A)、3 個CCD 工業相機(型號為MV-SUA1600,分辨率為4 608×3 456,鏡頭焦距為8 mm)、筆記本計算機1 臺(AcerAspire V15 T5000)、LED 光源(功率為128 W)、3 盞機器視覺檢測光源(功率為17 W)等部件,圖像采集組件安裝于黑色暗箱內。使用福建省農業科學院數字農業研究所自主研發的圖像獲取試驗平臺獲取荔枝圖像,獲取的圖像分辨率為4 608×3 456,分別從正上方、側前方、右側方3 個方向獲取圖像,本文使用的圖像為從側前方方向上獲取的。參照荔枝標準[9]將獲取的荔枝圖像劃分為正常、裂口、霉變3 類,于2022 年7 月在30 ℃下采集了2 931 張圖片,其中包含1 461 張正常類圖片、765張裂口類圖片和705 張霉變類圖片,如圖2 所示。

圖1 試驗平臺結構圖

圖2 獲取的荔枝圖像
1.1.3 硬件設備
本文模型訓練使用的深度學習服務器為AMD EPYC 7763 64-Core Processor×2 CPU,64 GB×16 內存,GeForce RTX 3 090 BULK×8 GPU,Ubuntu 20.04系統,Pytorch 1.12.1 深度學習框架。
本文基于荔枝表皮缺陷圖像數據集,采用殘差神經網絡ResNet50 算法構建荔枝表皮缺陷檢測模型,并分別使用KNN 算法、RF 算法構建模型,將它們作為對比參照,以便于評估模型的分類效果與性能。
1.2.1 構建荔枝表皮缺陷圖像數據集
將獲取的2 931 張共3 類荔枝表皮缺陷圖像作為數據集并按留出法以8∶2 的比例劃分為訓練集和測試集。
1.2.2 基于ResNet50 構建荔枝表皮缺陷檢測模型
當前人工智能已滲透到各個領域中,機器視覺是人工智能領域的一個重要分支,它是主要用于模仿人類視覺功能的機器,通過對目標圖像進行特征提取并加以分析理解,最終實現對目標的分類識別,其中神經網絡是當前十分重要的一類識別方法[10]。
隨著卷積神經網絡的發展,發現卷積層越深模型的效果越好,但是試驗證明網絡深度增加會造成梯度爆炸、消失,導致系統不能收斂[11]。ResNet50 是一種深度卷積神經網絡,它是ResNet 系列模型中的一種,由微軟研究院的HE 等于2015 年提出。ResNet50 包含50 層,主要特點是引入了殘差塊(Residual Block)的概念,通過跳躍連接(shortcut connection)解決了深度網絡訓練中的梯度消失和梯度爆炸問題,殘差塊結構如圖3 所示。

每個殘差塊由多個卷積層組成,其中的跳躍連接允許數據在網絡中繞過部分層,保留更多信息。ResNet50 允許網絡盡可能的加深,但它將輸入中的一部分數據不經過卷積網絡,直接送入到輸出,保留一部分原始信息,正是這種結構才使得在反向傳播時的梯度彌散問題得到有效防止,從而使得網絡深度可以達到上百層甚至更深[12]。正是因為ResNet50 能夠構建非常深的網絡結構,所以網絡的學習能力和表達能力得到了提升。ResNet50 在圖像分類、目標檢測和圖像分割等復雜任務上有出色的性能,成為深度學習研究和應用的重要基礎模型,因此選擇它作為本文的荔枝表皮缺陷檢測的分類模型。
采用Python 語言編程,利用深度學習服務器進行模型訓練。先將圖像進行裁切預處理后輸入,使用ResNet50 算法訓練樣本,構建荔枝表皮缺陷檢測模型。
1.2.3 與其他算法進行比較
為了評估模型的分類效果與性能,分別使用KNN算法、RF 算法來構建荔枝表皮缺陷檢測模型,將它們作為對比并重復每一種算法建模過程10 次,對比各個模型之間的分類準確率與模型運行耗時。
在數據集上重復3 種算法的建模過程10 次后,得到的結果如圖4—圖7 所示。

圖4 各個模型運行10 次的分類準確率
從圖4 中可以看出,ResNet50 算法構建的模型運行10 次過程中有9 次的模型分類準確率均高于其他2種算法,在第4 次運行過程中,ResNet50 算法模型分類準確率為93.02%,而RF 算法與KNN 算法分別為94.89%與75.47%,略低于RF 算法且較高于KNN 算法;從圖6 中可以看出,在10 次運行過程中ResNet50算法的模型分類準確率的最小值、最大值及平均值分別為93.02%、100.00%、98.03%,最大值及平均值均略高于RF 算法且較高于KNN 算法,但是最小值略低于RF 算法且較高于KNN 算法;從圖5、圖7 中可明顯看出,ResNet50 算法在運行10 次過程中,運行耗時相較于其他2 種算法較多,其運行耗時最小值、最大值,及平均值分別為31.85 s、33.01 s、32.08 s;而RF算法運行耗時的最小值、最大值及平均值僅僅分別為8.57 s、9.10 s、8.81 s;KNN 算法運行耗時的最小值、最大值及平均值更少,分別為0.66 s、0.69 s、0.67 s。

圖5 各個模型運行10 次的耗時

圖6 各個模型分類準確率的最小值、最大值及平均值

圖7 各個模型運行耗時的最小值、最大值及平均值
綜合試驗結果可以得出,使用ResNet50 算法構建的荔枝表皮缺陷檢測模型是最佳的選擇。盡管ResNet50 算法的程序運行耗時比其他2 種算法多出20~30 s,但其模型分類準確率10 次中有9 次均為最高,最高的準確率達到100%。這說明ResNet50 算法在表皮缺陷檢測任務中具有非常優異的性能,能夠高效地捕捉表皮缺陷的特征,從而實現高精度的分類。
在實際應用中,高分類準確率是非常關鍵的。荔枝表皮缺陷的檢測對于保證產品質量和減少浪費非常重要。使用ResNet50 算法構建的模型可以幫助生產線實現自動化缺陷檢測,從而提高生產效率和質量控制水平。盡管ResNet50 算法的運行耗時稍長,但其高準確率和優異的分類性能為它提供了很好的應用價值。對于表皮缺陷檢測這類關鍵任務,更高的分類準確率往往比運行速度更重要。
因此,結合試驗結果和實際應用考量,使用ResNet50 算法構建的荔枝表皮缺陷檢測模型是最佳的選擇,它將有助于提高荔枝的生產質量和效率,帶來更好的生產效益。