基于卷积神经网络的槟榔分级方法研究*

2023-11-11 04:02李志臣凌秀军李鸿秋
中国农机化学报 2023年10期
关键词:槟榔卷积准确率

李志臣,凌秀军,李鸿秋

(金陵科技学院机电工程学院,南京市,211169)

0 引言

槟榔在我国是一种常见食品,产值已达到了700多亿元。槟榔加工品的人工分级存在一些问题,如工作强度大、劳动效率低,人工的主观意识、经验和身心状况等因素会影响分级的准确性,因此探索机械化分级对于槟榔加工企业来说是一个重要的课题。槟榔加工品在上市前需要进行分级,以保证产品的质量和市场竞争力。采用机器分级可大幅提高分级的准确度和效率,增加槟榔加工企业的生产效益和竞争力,提高企业的自动化水平和技术先进性,促进槟榔产业的发展。机器视觉通过光学设备获取图像,对图像进行处理并提取特征信息,实现对槟榔的自动检测分级,是槟榔机械化分级的前提。

近年来,机器视觉广泛应用于农产品分级和病虫害检测领域,并取得较好的研究进展。王珊等[1]将叶片按照病斑面积的占比,通过对病斑纵向扩展长度的测量,将其与健康叶片的纵向长度进行比较,得到有效的健康叶片和病害叶片的分类结果。孙俊等[2]设计一种新的CNN模型检测植物叶片病害,该模型特点是批归一化和全局池化。Przybyo等[3]应用卷积神经网络提取橡子的局部特征与全局特征,用来检测橡子,达到将健康与变质橡子分类的目标。张思雨等[4]在卷积神经网络损失中加入二次函数与正态分布模型,结合自适应学习率,混合使用梯度下降与梯度上升更新网络,花生检测的正确识别率达99%以上。王璨等[5]将卷积神经网络引入了多尺度分层特征提取的机制,该方法可以准确地识别田间图像中的玉米苗和杂草,能够有效地提高农业生产的效率。石洪康等[6]采用卷积神经网络进行家蚕病害图像的识别研究,准确率达到94%以上。何欣等[7]通过引入多尺度卷积核组合的方式改进CNN的底层响应,提出的多尺度的残差神经网络模型算法应用于葡萄叶片病害的识别,正确识别率超过90%。赵腾飞等[8]优化设计CNN的参数增强了模型的泛化性和鲁棒性,针对核桃仁的分类正确率接近100%。许月明等[9]利用主成分分析法对获取的槟榔图像的颜色、形状和纹理特征进行分析,利用支持向量机(SVM)进行槟榔分类,达到了较好的效果。李振亚[10]将槟榔图像送入CNN网络进行训练学习槟榔图像的内外轮廓特征并对图像进行分割,对分割后的图像进行槟榔片的长、宽等参数测量并判断是否去核,以此来判断槟榔的品质等级,有效地提高了槟榔分级准确率。这些对槟榔的分类研究需要计算颜色、形状、轮廓等物理参数,增加了分类时图像处理在时间和内存上的消耗。

卷积神经网络可对农产品准确分类和实现农作物病虫害的有效识别。通过把图像全像素作为输入数据,设计合适的卷积神经网络和调整网络的参数,最终达到可靠的槟榔分级结果,为以机器视觉技术检测槟榔的机器分拣打下良好的基础。在研究中利用自然光源获取槟榔图像,经过图像预处理后分为训练、验证和测试三组数据集,设计一个基于Adam优化的浅层卷积神经网络模型(SCNN)进行槟榔的分级,通过调整学习率参数获得最佳的卷积神经网络模型并开展对槟榔分级的试验。

1 图像获取与处理

1.1 图像获取与预处理

不同地区对槟榔的分级标准可能略有不同,但大体上都会根据槟榔的大小、形状以及表面纹路等特征进行分类,槟榔分级的从业人员一般按照以下传统为槟榔分级:表面有明显的究头,纵向和横向纹路很深,长度一般大于55 mm的是槟榔特级果(极品);表面纹路深且比例相对均匀,长度一般大于50 mm的是槟榔一级果(金条);槟榔表面纹路相对较浅、较光滑且肚子的直径比较大,长度一般大于25 mm的是槟榔二级果(泡果);长度小于25 mm的是槟榔三级果(小果)[9]。

从槟榔加工企业选择分级后的槟榔成品1 698粒,在槟榔分级的数据采集方面,采用了小米Note9手机拍照,为保证图像清晰度和背景一致性,固定手机的位置,槟榔背景为白纸,共拍得1 698幅分辨率为像素1 200(宽)×1 600(高)的板栗图像,采集的图像信息以RGB形式储存。特级、一级、二级和三级槟榔的原始图像如图1所示。为能够使网络模型具备更好的适应性,图像拍摄时对拍摄环境无严格要求,有的图像有阴影并且背景并不完全一致,原始图像的分辨率比较高。如果把全部像素的数据作为神经网络的输入,可能导致计算机内存崩溃,所以先将图像裁剪,裁剪后的槟榔图像如图2所示。为防止网络模型在训练时过拟合现象,通过增强的方式扩大训练与验证图像数据集,增强的参数设置主要有3个,随机旋转的角度范围:rotation_range=10;图片水平偏移的幅度:width_shift_range=0.1;图片竖直偏移的幅度:height_shift_range=0.05。原始槟榔和增强图像共有3 396幅。

(a) 特级

(a) 特级

1.2 图像分组

将3 396幅图像分成三组,一组为训练数据图像,共2 380幅;第二组为验证数据组,共760幅图像;第三组为测试数据组,共256幅图像。每一组的图像分布如表1所示,将三组图像分别保存在train、val和test文件夹,为了自动获取标签值,将特级、一级、二级和三级槟榔图像分别保存在名称为0、1、2和3的文件夹。

表1 图像数量分布

2 卷积神经网络设计

卷积神经网络深度学习的能力能够自动提取海量数据的特征[11],为槟榔的分类提供方便。相对于BP神经网络需要海量图像数据训练才能获得高准确率的网络模型,基于深度学习的CNN可以在小样本图像数据的前提下获得较高的准确率[12]。

设计的卷积神经网络由卷积层、池化层和多层感知器(MLP)链接而成,网络中的卷积层和池化层有多个。图像的卷积运算就是对图像矩阵与滤波器(卷积核)矩阵进行对应相乘再求和运算得到的新矩阵,卷积的作用可以快速提取图像的边缘,图像的边缘有横线、竖线、斜线、曲线以及形状特征。

槟榔图像卷积运算如式(1)所示。

B=A×F

(1)

式中:B——图像卷积运算后的特征图小块区域像素值;

A——槟榔图像某个小块区域的像素值;

F——卷积滤波器。

卷积计算过程如图3所示,首先将滤波器中心点对准A的像素点A11,将卷积滤波器每个格的值与对应像素值相乘,最后求和并取整得到B的像素点B00的值133,计算过程如式(2)所示。依次向右、向下平移卷积滤波器,就能计算出A卷积后的值B。将滤波器应用计算于整幅槟榔图像,最后输出的是槟榔特征图。

图3 卷积运算过程

B00=int[(129×(-1)+115×0+145×1+117×(-2)+115×0+151×2+113×(-1)+122×0+162×1)/9]=133

(2)

卷积核可以有多个,n个卷积核卷积后的通道数为n,也就是有n个特征图。在槟榔图像的训练过程中,卷积核的数值通过在槟榔图像数据中学习得到。

槟榔卷积运算后要加入激活函数。为更好地提高模型的非线性功能,在SCNN中选择ReLu函数为激活函数,如式(3)所示。槟榔特征图的激活运算如图4所示,左侧矩阵的-31对应右侧矩阵的值0。

图4 激活运算过程

f(x)=max(x,0)

(3)

直接用n个特征图给槟榔分类容易造成过拟合,需要对不同位置的特征进行聚合统计,这种聚合的操作就叫做池化,但前提是图像的核心信息不能丢失。可应用的法则主要有两个,一个是最大池化法,即取滑动窗口像素值的最大值;一个是平均池化法,即取滑动窗口像素值的平均值,(2,2)平均池化就是将相邻的四个像素的像素值取平均值。如图5所示,矩阵D是由矩阵C经池化计算得到的,计算过程如下。

图5 池化运算过程

D00=int[(133+225+177+200)/4]=183

D01=int[(225+76+200+20)/4]=130

D10=int[(177+200+168+148)/4]=173

D11=int[(200+20+148+0)/4]=92

槟榔图像相对简单,在特征的理解上也不复杂,综合考虑槟榔分类准确率、分类速度以及网络模型所占物理存储的大小,设计了一个浅层卷积神经网络(SCNN),网络由两个卷积模块和一个多层感知器(MLP)构成,每个卷积模块有两个卷积层和一个池化层,卷积核的大小为3×3,第一个卷积模块中卷积核的个数是32,第二个卷积模块中有64个卷积核,池化层大小为2×2,池化方法为平均池化法。为了防止网络出现过拟合现象的发生,每次迭代每个神经元都有20%的概率被杀死,所以增加一个Dropout层,Dropout层也有利于删除低相关的特征数据。

MLP包括一个全连接层(又叫扁平层)、一个隐藏层和一个输出层,隐藏层神经元个数计算如式(4)所示。

(4)

式中:l——隐含层的神经元个数;

n——输入层神经元个数;

m——输出层神经元个数;

a——常数,本文中a=2。

槟榔共有特级、一级、二级和三级四类,所以输出层有4个神经元。因此隐藏层神经元个数为256。总体的浅层卷积神经网络结构如图6所示,图6中输入的是槟榔图像,终端out输出的是槟榔的分类等级,SCNN的各层输入输出以及参数等数据如表2所示,卷积层Conv1和Conv2各有32个卷积核,池化层Pool1和Pool2都是(2×2)的池化层,池化后数据维度降低,卷积层Conv3和Conv4各有64个卷积核。

表2 网络各层的数据

图6 卷积神经网络结构

3 卷积神经网络的训练与验证

3.1 数据导入与处理

程序设计采用python语言,用到的主要模块是Keras。运用image_dataset_from_directory函数导入训练、验证和测试数据并在数据加载的同时打乱数据。导入时要精确设置函数的参数,将label_mode参数设置为categorical,从而使得图像数据导入自动生成标签向量,每批处理的数据为64幅图像。为了简化网络结构,数据导入时减小图像的size为128像素×128像素,同时为了保证数据打乱的随机性,将seed参数设置为123。对导入的图像数据作归一化处理。

3.2 网络训练

3.2.1 迭代次数选择

取训练与验证组槟榔图像作为输入数据来训练神经网络模型,在槟榔分级的神经网络训练中,需要对每一幅图像添加一个类标签。由于槟榔总共有4类,因此不同等级的槟榔分别对应为一个4维的向量。具体来说,特级槟榔的类标签是[1,0,0,0];一级槟榔的类标签是[0,1,0,0];二级槟榔的类标签是[0,0,1,0];三级槟榔的类标签是[0,0,0,1]。加了类标签后,神经网络就可以学习到不同等级槟榔的特征,并输出对应的分类结果。

训练迭代次数的确定通常需要通过验证集上准确率的变化来进行确定,先取一定次数的迭代次数,例如40次,然后观察训练和验证集上的准确率变化。如果准确率随着迭代次数的增加而不断提升,需要增加迭代次数,反之,如果准确率已经趋于稳定或降低,说明网络已经趋于收敛,可以停止训练。针对设计的卷积神经网络训练发现,当迭代次数超过20以后,无论是训练还是验证的准确率都不再上升,因此选择网络训练和验证的迭代次数是20。

3.2.2 优化函数的选择

在卷积神经网络训练的过程,共选择6中优化函数进行对比,分别是:

1) 随机梯度下降的SGD优化器。

2)自适应矩估计(Adaptive moment estimation,Adam)优化器[12-13]。

3)自适应地确定参数的学习速度、对更新频率低的参数做较大的更新、对更新频率高的参数做较小的更新的Adagrad优化器。

4) 针对Adagrad优化器的改进,采用指数衰减平均的计算方法的Adadelt优化器。

5) 梯度下降优化算法的扩展,是Adam和NAG(Nesterov Accelerated Gradient)两种算法相结合的Nadam优化器。

6) Adam的变体、对梯度平方的处理由指数衰减平均改为指数衰减求最大值的Adamax优化器。

训练结束后建立的模型对槟榔分类的正确识别率如表3所示。

表3 不同优化器的识别准确率

其中Adamax、Adadelta和Adam三种优化器的正确识别率都是96.1%,但从识别率上不能判断哪种优化器是最优的,以三种优化器建立的卷积神经网络模型的训练和验证的准确率和损失曲线如图7和图8所示。以Adadelta优化器建立的卷积神经网络模型的训练和验证的准确率和损失曲线波动较大;Adam、Adamax两种优化器在迭代10次以后曲线平滑。

(a) Adadelta

通过受试者工作特征曲线(Receiver Operating Characteristic,ROC)选择最佳的优化器,ROC曲线上各点反映着相同的感受性,是对同一信号刺激的反应,是在几种不同的判定标准(阈值)下所得的结果[14-15],ROC曲线以混淆矩阵为基础计算得出,横坐标、纵坐标分别是假阳率(False Positive Rate,FPR)和真阳率(True Positive Rate,TPR),计算公式如式(5)、式(6)所示。

(5)

式中:TP——正确预测为正样本的数量;

FN——错误地预测为负样本的数量。

(6)

式中:TN——正确预测为负样本的数量;

FP——错误地预测为正样本的数量。

基于Adamax、Adadelta和Adam三种优化器建立的卷积神经网络模型的ROC曲线如图9所示,ROC曲线下的面积(Area Under Curve,AUC)越接近于1,该曲线对应的分类器的效果越好。Adam优化器的ROC曲线下的面积最大,并且AUC值等于1,对槟榔的分级是最优的。

图9 ROC曲线

3.2.3 Adam优化SCNN

假设SCNN对槟榔分级的预测函数为Y=WX+B,Y是槟榔分类的输出值,X是图像数据,W是输入到神经元的权值,B是常数。在训练迭代中Adam算法引入了二次梯度调整,可高效地计算,具有所需内存少的优点。SCNN对槟榔分级的Adam算法步骤如下。

2)t=t+1,利用式(7)计算mt和vt。

(7)

其中β1=0.9,β2=0.999。

式中:mt——第t步的一阶矩向量;

vt——第t步的二阶矩向量;

gt-1——第t步的梯度。

3) 为防止波动,利用式(8)对mt和vt纠偏。

(8)

4) 更新权重W和偏置B。

(9)

式中:θt-1——第t步的θ;

lr——学习率,可人为调整;

ε——常数,ε=10-10,保证了除数不为0。

5) if损失函数值满足要求,停止循环,返回θ,else重复步骤(3)~步骤(5)。

3.2.4 学习率的选择

学习率是神经网络模型最重要的超参数之一,它决定了网络在每轮迭代中权重更新的速度,合适的学习率可以使得网络能够快速收敛到全局最优解,同时避免了过快收敛导致陷入局部最优解的问题。通常来说,较大的学习率可以加快网络的学习速度,但容易导致权重震荡和发散;较小的学习率可以使得网络权重更新相对稳定,避免权重跳跃或发散,但会使得训练过程变得缓慢。在槟榔分级的神经网络训练中,采用了手动人工调整学习率的方法,通过实验观察训练和验证的损失函数和准确率的变化,确定使得网络性能最好的学习率。不同学习率下的训练和验证损失与准确率如表4所示,虽然表4中学习率为0.000 1时的各项指标是最佳的,但训练速度也是最低的,综合考虑训练和测试准确率,SCNN网络选择的学习率为0.001。

表4 不同学习率下的训练和验证损失与准确率

3.2.5 评价指标

准确率是分类器分类准确的样本比例,其计算公式如式(10)所示,该指标只考虑正确分类的样本数量,而不考虑分类错误的情况。当样本不均衡时,即某个类别的样本数量明显大于其他类别的样本数量时,准确率并不能有效地评估模型的预测性能。

ACC=(TP+TN)/(TP+FP+FN+TN)

(10)

精确率是指将真正属于第i类别的样本数量占所有被分类为第i类别的样本数量的比例,其计算公式如式(11)所示。

P=TP/(TP+FP)

(11)

召回率表示的是将槟榔分级为正确第i类的槟榔数量占真正是第i类槟榔数量的比例,其计算公式如式(12)所示。

R=TP/(TP+FN)

(12)

F1值是精确率和召回率的调和平均值,可综合衡量分类器的分类精度和召回率,其计算公式如式(13)所示。

F1=2×[(P×R)/(P+R)]

(13)

特异度是指将真正不属于第i类别的样本正确排除的比例,其计算公式如式(14)所示,特异度指标更适用于一些严格要求不能漏检异常样本的任务中。在实践中,需要根据具体的任务需求和数据特点选择合适的评估指标,在不同的评估指标之间进行权衡,综合考虑模型的性能。

TNR=TN/(FP+TN)

(14)

4 测试与分析

4.1 混淆矩阵

将训练好的SCNN模型用于槟榔的分级测试,测试槟榔图像为测试数据组的256幅图像,256幅槟榔图像的分级的混淆矩阵如表5所示,混淆矩阵可以很好地展示SCNN模型的槟榔分级效果。74粒特级槟榔和62粒一级槟榔全都被正确分级;二级槟榔有6幅被错误的分为特级,有2幅被错误的分为三级,这个分级错误跨度较大,少量相邻级槟榔被错误分级尚能容忍,但是跨级分级错误就需要进一步改进神经网络模型以更好地提取槟榔图像特征;三级槟榔有2幅被错误的分为二级。

表5 槟榔分级的混淆矩阵

4.2 结果分析

从表6可以看出,特级槟榔的分级准确率是100%,一级槟榔的分级准确率为100%,二级槟榔的分级准确率为96.09%,二级槟榔分级准确率较低,尤其是有6幅二级槟榔图像被错分成特级槟榔,这种低等级槟榔跨级错分为高等级槟榔在实际生产中是不被允许的。这6幅被错分的槟榔,有三幅是另外三幅的增强图像,在今后的研究中要减少这种跨级的低等级槟榔被错分为高等级槟榔的比例。三级槟榔的分级识别准确率为98.44%,SCNN模型测试的整体分类平均识别准确率为98.05%。

表6 SCNN评估指标

用准确率衡量SCNN模型不能反映细节,如错误分级的类型和实际分级的分布情况,通过混淆矩阵计算SCNN模型的相关评估指标如准确率、精确率、召回率、特异度和F1如表6所示。特级和一级槟榔分级的各项指标都是100%,虽然二级槟榔的召回率只有85.19%,F1的得分仅仅90.2%,但是SCNN模型对所有槟榔分级的整体准确率、精确率、召回率、特异度和F1的值都超过95%,所以基于Adam优化的SCNN模型对槟榔分级的效果很好。

5 结论

1) 本文结合机器视觉技术与卷积神经网络模型实现槟榔成品的分级检测。通过ROC曲线的对比分析,探索出最佳的优化方法,再通过自适应学习率的调整,缩短深层网络的训练时间,提高识别精度。建立以Adam算法优化的SCNN模型实现了自动提取槟榔特征并以此特征进行分类检测,解决了人工凭经验判断槟榔特征分类的准确率和效率都不高的难题。

2) 测试试验结果表明,SCNN模型对槟榔分级检测的准确识别率高达98.05%,准确率远高于人工分级,为实现槟榔分级检测的自动化控制提供了基础,具有一定的商业与工业价值。

3) 在今后的工作中,可进一步增强模型的适用性,进一步研究卷积神经网络中的参数的自适应调节,在进一步的研究中增加更多数量的各级原始槟榔图像训练卷积神经网络模型,拍摄图像时位置、光照等的自然环境条件要一致,减少噪声污染,提高槟榔图像的质量。针对采集到的槟榔数据集规模小的问题,结合迁移学习方法训练卷积神经网络,提高模型的泛化能力,可以尝试选择VGG-19(Visual Geometry Group 19)为迁移学习分类算法主模型,还可以尝试运用残差卷积神经网络进行槟榔的分级。

猜你喜欢
槟榔卷积准确率
基于3D-Winograd的快速卷积算法设计及FPGA实现
有利有害的槟榔
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
从滤波器理解卷积
高速公路车牌识别标识站准确率验证法
基于傅里叶域卷积表示的目标跟踪算法
槟榔之味《粤中见闻》:“以槟榔肉兼食,味厚而芳。”
梦回槟榔园