劉現(xiàn),鄭華偉,張海佳
(1.福建省農(nóng)業(yè)科學(xué)院數(shù)字農(nóng)業(yè)研究所,福建 福州 350003;2.福建農(nóng)林大學(xué)計(jì)算機(jī)與信息學(xué)院,福建 福州 350003)
荔枝(Litchi chinensis Sonn. ) 為無(wú)患子科(Sapindaceae)荔枝屬(Litchi Sonn.)常綠果樹(shù),中國(guó)是荔枝主產(chǎn)國(guó),荔枝是華南地區(qū)最具特色的水果之一,目前荔枝栽培面積約為53 萬(wàn)hm2,產(chǎn)量為230 萬(wàn)t,均居世界首位[1-2]。荔枝分級(jí)是它保鮮、銷(xiāo)售及深加工之前一個(gè)十分重要的工序,能夠有效地提升其產(chǎn)業(yè)附加值[3],建立完整的分級(jí)制度可促進(jìn)果品優(yōu)質(zhì)優(yōu)價(jià),進(jìn)一步促進(jìn)荔枝果業(yè)的發(fā)展[4]。
深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)次領(lǐng)域,是現(xiàn)今研究的一個(gè)嶄新方向[5]。其中卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)雖然在圖像分類(lèi)中取得了很好的效果,但是當(dāng)CNN 達(dá)到一定的網(wǎng)絡(luò)層深度時(shí),會(huì)產(chǎn)生梯度彌耗和爆炸問(wèn)題,導(dǎo)致深層的網(wǎng)絡(luò)訓(xùn)練準(zhǔn)確率反而低于淺層的網(wǎng)絡(luò)訓(xùn)練準(zhǔn)確率。ResNet50 的提出能夠解決這類(lèi)問(wèn)題,使得網(wǎng)絡(luò)在深度增加的同時(shí)網(wǎng)絡(luò)的性能也能夠得到極大的提升[6]。近年來(lái),不少研究者利用ResNet50 網(wǎng)絡(luò)開(kāi)展農(nóng)業(yè)研究。郭章龍等[7]使用ResNet50_Vd 實(shí)現(xiàn)對(duì)農(nóng)作物病害的識(shí)別,分類(lèi)準(zhǔn)確率達(dá)到99.1%;馬鑫鑫等[8]用4 種不同的神經(jīng)網(wǎng)絡(luò)來(lái)識(shí)別農(nóng)田害蟲(chóng),取得了較好的識(shí)別率。
文獻(xiàn)表明,ResNet50 神經(jīng)網(wǎng)絡(luò)可應(yīng)用于農(nóng)業(yè)圖像分類(lèi)任務(wù)中。荔枝在產(chǎn)后表皮易產(chǎn)生多種缺陷,研究它的分級(jí)進(jìn)而實(shí)現(xiàn)它的分類(lèi)計(jì)價(jià),可促進(jìn)果業(yè)標(biāo)準(zhǔn)化。本文立足于當(dāng)前研究現(xiàn)狀,構(gòu)建荔枝表皮缺陷圖像數(shù)據(jù)集,利用ResNet50 神經(jīng)網(wǎng)絡(luò)構(gòu)建荔枝表皮缺陷檢測(cè)模型,并與KNN 算法、RF 算法所構(gòu)建的分類(lèi)模型進(jìn)行對(duì)比,評(píng)估模型的分類(lèi)效果與性能。
1.1.1 供試材料
本試驗(yàn)所使用的“荔枝”采購(gòu)自福建省福州市永輝超市,品種為“桂味”。
1.1.2 試驗(yàn)平臺(tái)
福建省農(nóng)業(yè)科學(xué)院數(shù)字農(nóng)業(yè)研究所自主構(gòu)建了一套圖像獲取試驗(yàn)平臺(tái),如圖1 所示。平臺(tái)包括1 臺(tái)吉農(nóng)牌計(jì)算機(jī)分選機(jī)(型號(hào)為T(mén)N-68A)、3 個(gè)CCD 工業(yè)相機(jī)(型號(hào)為MV-SUA1600,分辨率為4 608×3 456,鏡頭焦距為8 mm)、筆記本計(jì)算機(jī)1 臺(tái)(AcerAspire V15 T5000)、LED 光源(功率為128 W)、3 盞機(jī)器視覺(jué)檢測(cè)光源(功率為17 W)等部件,圖像采集組件安裝于黑色暗箱內(nèi)。使用福建省農(nóng)業(yè)科學(xué)院數(shù)字農(nóng)業(yè)研究所自主研發(fā)的圖像獲取試驗(yàn)平臺(tái)獲取荔枝圖像,獲取的圖像分辨率為4 608×3 456,分別從正上方、側(cè)前方、右側(cè)方3 個(gè)方向獲取圖像,本文使用的圖像為從側(cè)前方方向上獲取的。參照荔枝標(biāo)準(zhǔn)[9]將獲取的荔枝圖像劃分為正常、裂口、霉變3 類(lèi),于2022 年7 月在30 ℃下采集了2 931 張圖片,其中包含1 461 張正常類(lèi)圖片、765張裂口類(lèi)圖片和705 張霉變類(lèi)圖片,如圖2 所示。
圖1 試驗(yàn)平臺(tái)結(jié)構(gòu)圖
圖2 獲取的荔枝圖像
1.1.3 硬件設(shè)備
本文模型訓(xùn)練使用的深度學(xué)習(xí)服務(wù)器為AMD EPYC 7763 64-Core Processor×2 CPU,64 GB×16 內(nèi)存,GeForce RTX 3 090 BULK×8 GPU,Ubuntu 20.04系統(tǒng),Pytorch 1.12.1 深度學(xué)習(xí)框架。
本文基于荔枝表皮缺陷圖像數(shù)據(jù)集,采用殘差神經(jīng)網(wǎng)絡(luò)ResNet50 算法構(gòu)建荔枝表皮缺陷檢測(cè)模型,并分別使用KNN 算法、RF 算法構(gòu)建模型,將它們作為對(duì)比參照,以便于評(píng)估模型的分類(lèi)效果與性能。
1.2.1 構(gòu)建荔枝表皮缺陷圖像數(shù)據(jù)集
將獲取的2 931 張共3 類(lèi)荔枝表皮缺陷圖像作為數(shù)據(jù)集并按留出法以8∶2 的比例劃分為訓(xùn)練集和測(cè)試集。
1.2.2 基于ResNet50 構(gòu)建荔枝表皮缺陷檢測(cè)模型
當(dāng)前人工智能已滲透到各個(gè)領(lǐng)域中,機(jī)器視覺(jué)是人工智能領(lǐng)域的一個(gè)重要分支,它是主要用于模仿人類(lèi)視覺(jué)功能的機(jī)器,通過(guò)對(duì)目標(biāo)圖像進(jìn)行特征提取并加以分析理解,最終實(shí)現(xiàn)對(duì)目標(biāo)的分類(lèi)識(shí)別,其中神經(jīng)網(wǎng)絡(luò)是當(dāng)前十分重要的一類(lèi)識(shí)別方法[10]。
隨著卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展,發(fā)現(xiàn)卷積層越深模型的效果越好,但是試驗(yàn)證明網(wǎng)絡(luò)深度增加會(huì)造成梯度爆炸、消失,導(dǎo)致系統(tǒng)不能收斂[11]。ResNet50 是一種深度卷積神經(jīng)網(wǎng)絡(luò),它是ResNet 系列模型中的一種,由微軟研究院的HE 等于2015 年提出。ResNet50 包含50 層,主要特點(diǎn)是引入了殘差塊(Residual Block)的概念,通過(guò)跳躍連接(shortcut connection)解決了深度網(wǎng)絡(luò)訓(xùn)練中的梯度消失和梯度爆炸問(wèn)題,殘差塊結(jié)構(gòu)如圖3 所示。
每個(gè)殘差塊由多個(gè)卷積層組成,其中的跳躍連接允許數(shù)據(jù)在網(wǎng)絡(luò)中繞過(guò)部分層,保留更多信息。ResNet50 允許網(wǎng)絡(luò)盡可能的加深,但它將輸入中的一部分?jǐn)?shù)據(jù)不經(jīng)過(guò)卷積網(wǎng)絡(luò),直接送入到輸出,保留一部分原始信息,正是這種結(jié)構(gòu)才使得在反向傳播時(shí)的梯度彌散問(wèn)題得到有效防止,從而使得網(wǎng)絡(luò)深度可以達(dá)到上百層甚至更深[12]。正是因?yàn)镽esNet50 能夠構(gòu)建非常深的網(wǎng)絡(luò)結(jié)構(gòu),所以網(wǎng)絡(luò)的學(xué)習(xí)能力和表達(dá)能力得到了提升。ResNet50 在圖像分類(lèi)、目標(biāo)檢測(cè)和圖像分割等復(fù)雜任務(wù)上有出色的性能,成為深度學(xué)習(xí)研究和應(yīng)用的重要基礎(chǔ)模型,因此選擇它作為本文的荔枝表皮缺陷檢測(cè)的分類(lèi)模型。
采用Python 語(yǔ)言編程,利用深度學(xué)習(xí)服務(wù)器進(jìn)行模型訓(xùn)練。先將圖像進(jìn)行裁切預(yù)處理后輸入,使用ResNet50 算法訓(xùn)練樣本,構(gòu)建荔枝表皮缺陷檢測(cè)模型。
1.2.3 與其他算法進(jìn)行比較
為了評(píng)估模型的分類(lèi)效果與性能,分別使用KNN算法、RF 算法來(lái)構(gòu)建荔枝表皮缺陷檢測(cè)模型,將它們作為對(duì)比并重復(fù)每一種算法建模過(guò)程10 次,對(duì)比各個(gè)模型之間的分類(lèi)準(zhǔn)確率與模型運(yùn)行耗時(shí)。
在數(shù)據(jù)集上重復(fù)3 種算法的建模過(guò)程10 次后,得到的結(jié)果如圖4—圖7 所示。
圖4 各個(gè)模型運(yùn)行10 次的分類(lèi)準(zhǔn)確率
從圖4 中可以看出,ResNet50 算法構(gòu)建的模型運(yùn)行10 次過(guò)程中有9 次的模型分類(lèi)準(zhǔn)確率均高于其他2種算法,在第4 次運(yùn)行過(guò)程中,ResNet50 算法模型分類(lèi)準(zhǔn)確率為93.02%,而RF 算法與KNN 算法分別為94.89%與75.47%,略低于RF 算法且較高于KNN 算法;從圖6 中可以看出,在10 次運(yùn)行過(guò)程中ResNet50算法的模型分類(lèi)準(zhǔn)確率的最小值、最大值及平均值分別為93.02%、100.00%、98.03%,最大值及平均值均略高于RF 算法且較高于KNN 算法,但是最小值略低于RF 算法且較高于KNN 算法;從圖5、圖7 中可明顯看出,ResNet50 算法在運(yùn)行10 次過(guò)程中,運(yùn)行耗時(shí)相較于其他2 種算法較多,其運(yùn)行耗時(shí)最小值、最大值,及平均值分別為31.85 s、33.01 s、32.08 s;而RF算法運(yùn)行耗時(shí)的最小值、最大值及平均值僅僅分別為8.57 s、9.10 s、8.81 s;KNN 算法運(yùn)行耗時(shí)的最小值、最大值及平均值更少,分別為0.66 s、0.69 s、0.67 s。
圖5 各個(gè)模型運(yùn)行10 次的耗時(shí)
圖6 各個(gè)模型分類(lèi)準(zhǔn)確率的最小值、最大值及平均值
圖7 各個(gè)模型運(yùn)行耗時(shí)的最小值、最大值及平均值
綜合試驗(yàn)結(jié)果可以得出,使用ResNet50 算法構(gòu)建的荔枝表皮缺陷檢測(cè)模型是最佳的選擇。盡管ResNet50 算法的程序運(yùn)行耗時(shí)比其他2 種算法多出20~30 s,但其模型分類(lèi)準(zhǔn)確率10 次中有9 次均為最高,最高的準(zhǔn)確率達(dá)到100%。這說(shuō)明ResNet50 算法在表皮缺陷檢測(cè)任務(wù)中具有非常優(yōu)異的性能,能夠高效地捕捉表皮缺陷的特征,從而實(shí)現(xiàn)高精度的分類(lèi)。
在實(shí)際應(yīng)用中,高分類(lèi)準(zhǔn)確率是非常關(guān)鍵的。荔枝表皮缺陷的檢測(cè)對(duì)于保證產(chǎn)品質(zhì)量和減少浪費(fèi)非常重要。使用ResNet50 算法構(gòu)建的模型可以幫助生產(chǎn)線實(shí)現(xiàn)自動(dòng)化缺陷檢測(cè),從而提高生產(chǎn)效率和質(zhì)量控制水平。盡管ResNet50 算法的運(yùn)行耗時(shí)稍長(zhǎng),但其高準(zhǔn)確率和優(yōu)異的分類(lèi)性能為它提供了很好的應(yīng)用價(jià)值。對(duì)于表皮缺陷檢測(cè)這類(lèi)關(guān)鍵任務(wù),更高的分類(lèi)準(zhǔn)確率往往比運(yùn)行速度更重要。
因此,結(jié)合試驗(yàn)結(jié)果和實(shí)際應(yīng)用考量,使用ResNet50 算法構(gòu)建的荔枝表皮缺陷檢測(cè)模型是最佳的選擇,它將有助于提高荔枝的生產(chǎn)質(zhì)量和效率,帶來(lái)更好的生產(chǎn)效益。