基于ResNet50 神经网络的荔枝表皮缺陷检测研究*
2023-09-17刘现郑华伟张海佳
刘现,郑华伟,张海佳
(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.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 深度学习框架。
1.2 试验方法
本文基于荔枝表皮缺陷图像数据集,采用残差神经网络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 次,对比各个模型之间的分类准确率与模型运行耗时。
2 结果与分析
在数据集上重复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 各个模型运行耗时的最小值、最大值及平均值
3 结论
综合试验结果可以得出,使用ResNet50 算法构建的荔枝表皮缺陷检测模型是最佳的选择。尽管ResNet50 算法的程序运行耗时比其他2 种算法多出20~30 s,但其模型分类准确率10 次中有9 次均为最高,最高的准确率达到100%。这说明ResNet50 算法在表皮缺陷检测任务中具有非常优异的性能,能够高效地捕捉表皮缺陷的特征,从而实现高精度的分类。
在实际应用中,高分类准确率是非常关键的。荔枝表皮缺陷的检测对于保证产品质量和减少浪费非常重要。使用ResNet50 算法构建的模型可以帮助生产线实现自动化缺陷检测,从而提高生产效率和质量控制水平。尽管ResNet50 算法的运行耗时稍长,但其高准确率和优异的分类性能为它提供了很好的应用价值。对于表皮缺陷检测这类关键任务,更高的分类准确率往往比运行速度更重要。
因此,结合试验结果和实际应用考量,使用ResNet50 算法构建的荔枝表皮缺陷检测模型是最佳的选择,它将有助于提高荔枝的生产质量和效率,带来更好的生产效益。