APP下载

基于深度学习的青椒质量分类

2020-05-13孙福振

关键词:集上青椒准确率

郑 凯,方 春,孙福振

(山东理工大学 计算机科学与技术学院, 山东 淄博 255049)

青椒具有刺激性辣味,可刺激味蕾[1],增进食欲,其维生素C的含量在众多蔬菜中更是居首, 具有良好的食用价值,市场需求也随之上升。目前青椒的质量分类是在采摘过程中依靠人工完成的,整个过程人力消耗大、效率低、用工成本高,因此,迫切需要一种操作简单、分类速度快、准确率高、能大规模自动化分拣的青椒质量分类机器。青椒在生长过程中,由于受到外界干扰(搭在了枝叶或吊绳上)而发育得歪歪扭扭,这种情况在大棚种植中是不可避免的[2-4],长相不好的青椒严重影响其销售价格和消费者的购买行为,故在装箱销售之前要将质量差的选出,如何在大量的青椒中将品相不好的青椒快速且准确地选出是青椒质量分拣机的关键。

深度学习方法在农业领域特别是蔬菜质量检测方面的应用越来越普遍与广泛。王树文等[5]在计算机视觉技术上运用神经网络等深度学习方法完成了对番茄外部损伤的质量分类研究;展慧等[6]在板栗图像上利用基于BP神经网络与特征图像的方法对其完成了分级任务;韩东伟等[7]在烟叶质量的分类任务中采用改进的卷积神经网络,达到了99.92%的识别准确度。将深度学习方法应用于计算机视觉,为蔬菜和水果的质量分类提供了新的解决办法。

水果和蔬菜的自动外部质量检查仍然是一项具有挑战性的工作。张烈平等[8]使用计算机视觉和BP神经网络对芒果图像进行图像分割、图像增强和特征提取等复杂操作完成分级任务,虽取得了比较不错的成果,但过程复杂,易受外部环境的影响。Satpute等[9]在利用计算机视觉检测水果缺陷时先将RGB图像转换为灰色图像,然后再进行边缘检测和斑点检测,在尺寸检测中将灰色图像进行二进制阈值化,然后进行一系列的形态学操作,通过计算长轴和短轴长度判断果实大小,最后两者结合完成了对西红柿的分级任务。这种方法易受光线等外界环境的影响且操作复杂,对小规模的分拣任务有较好的结果,对青椒这类数量多,体积小的分类任务效果不太理想。吴华友[10]发明的青椒分级机通过物理机械的方法完成对青椒的分拣。这种方法虽然效率高,但分类准确度并不理想,且在经过机械滚筒与筛选孔过程中易对青椒表皮造成二次伤害。

随着人工智能的兴起,基于深度学习方法的计算机视觉技术也广泛应用于农业生产,比如果实采摘机器人、检测农作物长势、农产品品质检测与预防病虫害等[11-14]。近几年,深度学习中的卷积神经网络(convolutional neural networks, CNN)引起了学者的高度关注[15-16],局部权值共享的方法使其在图像处理和语音识别等方面表现出了强大的优势。它可以将原始的图像数据作为直接输入,自行从图像中抽取特征,无需人工干预特征提取(包括轮廓、色泽、结构等)过程,网络布局模仿了实际的生物神经网络,使其对图像的处理能力达到了几近人力的水平。在图像识别领域每一个重大突破的背后都可以看到卷积神经网络的影子。本文以青椒整体图像作为研究对象,采用CNN深度学习方法的同时结合Python语言和Keras学习框架,帮助果实分拣机实现对青椒的自动分拣过程。

1 数据准备

1.1 图像的收集

本文共采集到来自寿光蔬菜大棚种植条件下的4 160 张青椒图像作为数据样本,其中正样本为符合商家收购标准,品相较好的青椒图像共2 060张;负样本为未达到商家收购标准,品相不好需要降价收购或需要剔除处理的青椒图像共2 100 张。采样过程中选取了与青椒有明显对比度且反光度弱的白色粗糙纸张作为背景。取样时将白色面板固定在水平面上,将普通智能手机置于青椒上方合适位置,在正常条件下进行拍摄,禁用美颜功能,以保留图片的真实性。因智能手机拍摄的照片像素非常高,为便于本文实验的进行以及方便后续的计算和处理,在不改变原本图像格式(JPG)和比例的情况下,使用图片批处理工具进行了统一像素(150*150)转换,处理后的青椒图像如图1、图2所示。

图1 符合收购标准的青椒图像Fig.1 Images of green peppers that meet acquisition criteria

图2 不符合收购标准的青椒图像Fig.2 Images of green peppers that do not meet the acquisition criteria

1.2 训练集与测试集

本文实验选取正负样本各1 600张组成训练集train3200,剩余的960张图像作为测试集test,划分比例接近8∶2。

2 模型设计

2.1 CNN理论基础

在传统的神经网络中每个神经元都和相邻层的神经元相连接,因此网络中包含大量的参数。而图像本身具有局部特性,其并不一定需要全连接的神经元连接方式。例如看到一只狗的图片,不一定要看到全图,可能只看到狗的嘴巴的时候就知道这是一只狗。卷积就是用特殊的方法对图像的重要特征进行提取,用于识别本图片或与其他图片的不同。

CNN包括卷积层(Convolutional Layer)和池化层(Pooling Layer)两个重要部分。在卷积层中通过卷积核或滤波器(Filter)来获取图像特征(Feature map)。采用权值共享即在特征提取过程中用同一个卷积核提取同一个特征,这样一组连接可以共享同一个权重,不同的卷积核携带不同的权重提取不同的特征。此方法减少了参数量,提高了对高维数据的处理能力。3*3卷积核处理4*4像素图片过程如图3所示。

图3 3*3卷积核处理4*4图片过程Fig.3 3*3 size convolution kernel processing 4*4 size picture process

池化层利用图像局部相关性的原理对特征图像进行子抽样,通过去掉Feature map中不重要的特征数据,增强了所提取特征的鲁棒性,进一步减少了参数数量。池化过程与池化结果如图4所示。

2.2 模型结构

在综合了模型复杂度及其他影响因素之后,设计了表1所示的三层CNN结构来处理青椒的质量分类任务。该模型采用三个卷积层加三个全连接层的方法,并在三个全连接层之间加入Dropout层来防止过拟合。

表1 三层CNN结构模型
Tab.1 Three-layered CNN structural model

Layer (type)InputOutputShapeConv2d_1_input:InputLayerinput(None,150,150,3)output(None,150,150,3)Conv2d_1:Conv2Dinput(None,150,150,3)output(None,150,150,32)Max_pooling2d_1:MaxPooling2Dinput(None,150,150,32)output(None,75,75,32)Conv2d_2:Conv2Dinput(None,75,75,32)output(None,75,75,32)Max_pooling2d_2:MaxPooling2Dinput(None,75,75,32)output(None,37,37,32)Conv2d_3:Conv2Dinput(None,37,37,32)output(None,37,37,64)Max_pooling2d_3:MaxPooling2Dinput(None,37,37,64)output(None,18,18,64)Flatten_1:Flatteninput(None,18,18,64)output(None,20736)Dense_1:Denseinput(None,20736)output(None,1024)dropout_1:Dropoutinput(None,1024)output(None,1024)Dense _2:Denseinput(None,1024)output(None,512)dropout_2:Dropoutinput(None,512)output(None,512)Dense_3:Denseinput(None,512)output(None,2)

3 结果与分析

3.1 不同卷积层数对模型准确率的影响

本文对青椒图像的质量分类本质上是图像二分类问题,即判别图像中青椒质量是否符合商家收购标准。为了探究CNN模型深度对模型识别准确度的影响,本文在train3200的数据集上对比分析了当分别采用1~4个卷积层时模型的准确率。各模型在测试集test上的准确率如图5所示,相对应的损失函数loss的分布如图6所示。

图5 不同卷积层数的模型在测试集上的准确率Fig.5 Accuracy of models with different convolutional layers on the test set

图6 不同卷积层数的模型在测试集上的损失率Fig.6 Loss of models with different convolutional layers on the test set

从图5、图6中可以看出,四个模型在青椒质量分类问题上均取得了不错的结果,其中一层卷积模型的识别准确率明显不如其他模型的,二层卷积模型准确率有所提升但并不稳定,三、四层卷积模型的相差不大,而三层卷积层时相应的损失率更低,实验说明模型深度对模型性能确实有影响,三层卷积模型更适合本文数据集。

3.2 优化函数对模型准确率的影响

深度学习中优化函数包括经典的SGD (Stochastic Gradient Descent , 随机梯度下降)优化,以及常用的RMSProp(Root Mean Square Prop,均方根反向传播)优化和Adam(Adaptive Moment Estimation, 自适应矩估计)优化等。SGD优化算法是一种贪心算法,其优化过程好比一个人在有大雾的山中寻找山谷最低点,由于大雾的影响并不知道当前找到的最低点是否是整座山谷的最低点;RMSProp优化算法通过对权重和偏置的梯度进行微分平方加权平均数,很好地解决了在更新损失函数过程中存在摆动幅度过大的问题,并且能帮助函数更快地收敛。前两种算法一种可以使用动量来累积梯度,另一种可以使得损失函数波动幅度减小的同时加快收敛速度。而Adam则是在两种算法结合下产生的,适用于不稳定目标函数,能自然地实现步长退火过程。合适的优化器可以帮助模型更快地收敛并快速了解网络模型在所处理问题上的性能。为了探究不同优化器对模型的收敛速度及性能的影响,本研究对三种不同优化函数进行了比较。实验结果如图7、图8所示。

图7 不同优化函数下模型准确率Fig.7 Model accuracy under different optimization functions

图8 不同优化函数下模型损失率Fig.8 Loss of models under different optimization functions

由图7、图8对比可知,Adam(橙色)优化函数不仅加快了模型收敛速度还减小了损失函数的波动幅度。三者在测试集上的模型准确率为SGD 96.44%、Adam 97.80% 、RMSProp 97.49%。因此,Adam在本文研究数据集中获得了较好的表现。

3.3 不同尺寸卷积核对模型性能的影响

卷积核又叫滤波器,能够提取输入图像的不同特征,例如边角和纹理特征等。增大卷积核可以带来更大的感受野[17],提高网络的性能,但同时网络参数成倍增加,因此选取合适的卷积核对简化网络和提升模型性能是至关重要的。为找到合适的卷积核,本文在已确定的三层卷积网络和Adam优化函数下采用网格搜索的方法,分别对1*1、3*3、5*5和7*7大小的卷积核进行比较。Epoch为50时模型识别准确率如图9所示,可以看出1*1的卷积核模型准确率虽高但波动幅度较大,其余尺寸的卷积核模型相差不大。在测试集上的识别准确率分别为98.75%、97.60%、97.08%、96.88%。在综合考虑数据集图片尺寸,模型复杂度及在测试集上的分类效果后,最终选择了3*3尺寸的卷积核。

图9 不同尺寸卷积核的模型准确率Fig.9Model accuracy under convolution nuclei of different sizes

图10 不同尺寸卷积核在测试集上的ROC曲线Fig.10 ROC curve of convolution nuclei of different sizes on the test set

不同尺寸卷积核的四种模型在测试集上的ROC(接受者操作特性曲线,receiver operating characteristic curve)曲线如图10所示。曲线下的面积越大,说明该分类器的分类效果越好,由图10可以看出,四种尺寸的卷积核模型都表现出了不错的分类效果。表2为不同尺寸的卷积核模型在测试集上的AUC(Area Under Curve)值,即ROC曲线下的面积,AUC的值越接近于1,代表分类模型的分类能力越强,可以更加直观地显示模型的分类效果。实验结果表明,运用Adam优化函数和3*3卷积核的三层CNN结构模型在测试集上的识别准确率达到了97.60%,AUC值为0.996,模型获得了良好的分类效果。

表2 不同尺寸卷积核的AUC值
Tab.2 AUC values under convolution kernels of different sizes

卷积核大小AUC值1∗10.9983∗30.9965∗50.9917∗70.993

3.4 硬件环境

本文实验使用的硬件运行环境见表3。

表3 硬件运行环境
Tab.3 Hardware operating environment

硬件详细信息系统Windows 7 旗舰版CPUIntel(R) Xeon E3-1225 v5 @ 3.30 GHz四核内存海力士8 GB DDR4 2 133MHz显卡NVIDIA Quadro K620硬盘希捷 1 TB 7 200 r/min

4 结束语

本文利用了CNN在图像处理方面的优势,提出了基于深度学习的青椒质量分类算法。通过实验分析验证了网络深度、卷积核和优化函数对基于深度学习的青椒质量分类模型的影响,设计好的模型在3 200张青椒图像数据集上进行训练,在960张独立测试集上进行测试,识别准确率达到了97.60%,AUC值达到了0.996。证明了CNN深度学习方法对青椒分类问题的适用性。本文为解决青椒质量分类问题与促进智慧农业的发展提供了新思路。

本数据集中的青椒图像大部分取样于畸形青椒,在今后工作中准备采集有虫害或有霉病的青椒图像进一步扩充数据集,继续训练优化该模型,并将该模型推广到农作物选种及病虫害识别方面。

猜你喜欢

集上青椒准确率
关于短文本匹配的泛化性和迁移性的研究分析
低脂美味的炒杏鲍菇 素菜也能吃出肉食感
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
基于互信息的多级特征选择算法
火煨青椒忆悠长
饶了我吧,青椒
青椒营养在籽里