基于Keras和CNN的苹果自动分级

2021-12-16 09:44罗炤茜陈月芬占煜辉厉科迪
系统仿真技术 2021年1期
关键词:正确率卷积水果

罗炤茜,陈月芬,占煜辉,厉科迪

(台州学院电子与信息工程学院, 台州 318000)

作为一个世界农业大国,我国的水果产量呈逐年上升的趋势。作为提供人体营养的必需品,水果在人们日常生活中的需求量不断增加,水果行业市场规模持续增长,并且随着生活水平的不断提高,人们对于优质和新鲜的水果需求不断增长,高品质的水果是当今水果市场竞争成功的首要条件。因此,水果分级是各大水果市场、果汁加工厂以及水果种植户的重要环节,而我国的水果产量基数庞大,传统的依靠人工方式进行分类、分级,不仅效率低下、劳动量大,而且容易受到人为因素的影响,存在较大的人工误差等缺点。物联网技术和人工智能的兴起引领着人们的生活走向智能化,无人超市越来越流行,因此亟需研究水果智能分类分级模型,提高水果识别率和分级准确率,对经济、农业的发展具有重要的意义。

近年来,机器视觉技术在农产品检测中得到广泛的应用,提高了检测精度和效率,成为农产品自动化检测与分选技术的重要手段。因此国内外学者围绕着基于机器视觉的水果自动识别和分级进行了大量的研究[1],如Blanc[2]设计了一种可以对葡萄的重量和颜色均匀度进行分级的系统;Baigvand[3]等设计了一套完整的机器视觉分级系统,实现了对无花果品质的实时检测,将无花果干成功地分为5 个等级;王干[4]等通过采用三个摄像机对传输中的脐橙多面拍照,并基于图像处理技术实现了脐橙的品质分级。基于机器视觉技术并借助于摄像机代替人眼采集物体图像,再利用图像处理技术实现对物体特征的提取,经各种分类器实现识别,其中图像处理技术在水果图像特征提取中扮演重要的角色。孙斐[5]通过研究几何特征实现苹果的特征提取,最终实现苹果大小的分级。蒋林权[6]采用灰度共生矩阵提取砀山梨缺陷区域和果梗区域的纹理特征,融合Gabor 提取纹理特征的方法,提高了对砀山梨表面缺陷的识别准确率;肖壮[7]通过Matlab 软件处理红提串的彩色图像,获得了果肉和果粉区域的像素点坐标值和RGB 值,最终实现了颜色特征的提取。

综上所述,由于图像处理技术的发展,当前计算机视觉技术在水果识别和分拣领域得到了广泛的应用,并取得了一定的研究成果。但已有成果主要存在以下不足:一是当前对水果图像的特征提取、缺陷检测等大部分为传统的图像处理,该方法主要基于人工经验对图像进行特征提取,主要提取水果的几何、纹理和颜色等特征,这些特征的提取均为人工设计,具有很大的局限性,为了准确对水果进行分类,甚至需要人工进一步的判断,自动化程度降低;二是应用传统图像处理技术进行特征提取对水果图像质量要求较高,但图像采集时容易受到噪声或者光照变化的影响,可靠性较差。

根据以上分析可以看出:传统的图像处理技术应用到水果自动分级的局限性很大,而当前在人工智能领域,深度学习在目标识别及分类方面取得了令人瞩目的成绩,性能上与传统的识别和分类算法相比,产生了质的飞跃,物体辨别分析能力已经可以媲美人类的辨别能力,甚至在某些领域已经超过了人类的辨别能力。基于此,本文提出了一种基于卷积神经网络的水果自动分级算法,并以苹果为例,将深度学习理论应用到苹果的自动分级,提高苹果自动分级的准确率,促进自动化。

1 系统设计

1.1 整体设计

本文系统的整体设计包括水果图像的采集和数据增强、卷积神经网络的设计和训练以及对测试图像的精确识别。在设计卷积神经网络时,考虑到Keras作为Tensorflow 的高端接口,支持GPU 和CPU,具有高度的模块化,包括了网络层、损失函数、优化器、激活函数等方法的独立模块,结合Tensorflow 作为后端,非常有利于根据需求快速搭建并训练新的网络模型[8],因此,本文采用Keras建立卷积神经网络,系统的设计框图如图1所示。

图1 系统框图Fig.1 Chart of system

1.2 图像采集和数据增强

目前,国内外尚未形成统一的用于水果分级的图像集,本文实验使用的苹果图像集来自超市、菜场等果蔬销售场合采购的实物拍摄,实验中收集了一级红富士图像600 张、二级红富士600 张、普通苹果600 张和烂苹果300 张,共计2100 张,包含四种级别的苹果图像,图2所示为本文所用的部分样本示意图。

图2 部分图像样本示意图Fig.2 Part of image sample diagram

由于数据库规模比较小,容易在训练过程中出现“过拟合”现象,即容易将样本本身的一些特点视为所有潜在样本都具有的特点,以至于模型的泛化能力较弱,影响测试的正确率。因此,本文采用了图像的一些几何变换,包括:(1)将图像在40°范围内随机旋转;(2)将图像在水平方向随机平移,平移程度不超过原宽度的0.2倍;(3)将图像在垂直方向随机平移,平移程度不超过原高度的0.2 倍;(4)将图像进行随机裁剪。通过上述变换将数据样本扩充为原来的4 倍,以此来缓解过拟合现象。将所有图像的尺寸大小调整为256×256×3,并将像素值除以255 进行归一化处理。对所有样本进行标注,在存储时将每类苹果的标签值设为0~3,在读入图像后转换为独热编码形式进行模型的训练和测试,即每类苹果的标签值为长度为4 的向量y={a0,a1,a2,a3},其中第i个级别的苹果标签值中只有ai= 1,其他值均为0。将标注后的所有样本按照8∶1∶1的比例划分为训练集、验证集和测试集。

1.3 卷积神经网络结构

本文建立的卷积神经网络模型如图3所示,包括3个卷积层、3 个池化层、2 个全连接层和Softmax 输出层。输入图像为256×256×3 的彩色图像,三个卷积层的核大小均为3×3,步长为1,通道数分别为16、32、32,填充方式均为“Same”,以便保持卷积前后图像大小不变,激活函数采用Relu 函数。池化层的目的是通过下采样减少经过卷积运算之后的数据量,本文网络结构中的三个池化层均为2×2 的最大池化,输入图像经过上述三个卷积层和三次池化之后的输出大小为32×32×32,经过第一个全连接层(Flatten)转换为32768 的一维数据,再输入神经元数目为64 的全连接层,输出层采用Softmax作为激活函数,计算得到分属4个级别的概率。网络中各层输出大小及所需的权重数目如表1所示。

图3 卷积神经网络模型Fig.3 Model of convolutional neural network

表1 卷积神经网络模型各层参数Tab.1 Parameters of convolutional neural network

1.4 模型训练

卷积神经网络训练的目的是根据训练数据集不断学习并调整权重参数,从而得到最优的权重值,训练过程如图4 所示,首先从训练集中读取一批样本,作为上述网络结构的输入信号,经过网络的前向运算计算预测结果,前向运算时所用的激活函数为Relu函数:f(x)=max(0,x),最后将模型计算的预测值转换为分属每一种类别的概率值,由于本文输出类别共有4 类,因此采用Softmax 函数进行计算,Softmax 函数又称为归一化指数函数,它是二分类函数Sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式呈现,其计算方法如公式(1)所示,其中yk(k= 1,2,…,N) 为模型前向计算的预测值,pi为当前输入,属于第i种类别的输出概率,N为类别数量。

图4 网络模型的训练Fig.4 Training of network models

卷积神经网络的输出值与标签值(真实值)之间存在误差,神经网络中不同的权重值将会产生不同的误差,因此需要引入损失函数来衡量输出值与标签值之间的误差,本文采用交叉熵损失函数,计算方法如公式(2)所示,其中p′i为第i类水果的理想概率值,pi为第i类水果的模型预测输出概率值,每一轮的损失值为所有样本损失值的平均值。

将误差反向传播用于调整网络的权重值,寻找模型的最优解,即网络的优化。常见的优化方法有梯度下降法、动量优化法、自适应学习率优化法,本文采用自适应学习率优化方法中的Adam优化,算法如下[8]:

(1)初始化时间步t=0,一阶和二阶矩变量s=0,r=0,初始参数为θ;

(2)从训练集中读取小批量样本,设包含m个样本{x(1),…,x(m)},对应目标为y(i);

(3)计算梯度g←

(4)t←t+ 1

(5)更新有偏一阶和二阶矩估计:

(7)计算更新:

其中,ϵ 为学习步长,默认为0.001,ρ1和ρ2为矩估计的指数衰减速率,在区间[0,1)内,默认ρ1= 0.9,ρ2=0.999,δ是一个用于数值稳定的小常数,默认δ= 10-8。

2 实验结果与分析

本文实验仿真基于Keras 接口,结合Tensorflow 为后端,以Python 为编程语言,每批数据为32 张随机读取的图像,学习率为0.001,训练轮数设为30 轮。表2所示为每经过5 轮训练后训练集的损失值和正确率以及验证集的损失值和正确率变化过程。

表2 损失值与正确率Tab.2 Loss and accuracy

将测试数据集的样本输入到上述经过30 轮训练后的模型,得到了整体93.78% 的正确率和91.91% 的召回率,为了进一步分析每一种苹果级别的预测结果,表3 给出了预测结果的精确率、召回率和分类综合指标F值。表3 中正确率反映了被预测为第i类样本的数量中真实样本(即本来就是第i类样本)所占的比例,召回率反映了第i类样本总量中被预测为第i类样本所占的比例,而F值则是正确率和召回率的加权调和平均,即

表3 测试结果Tab.3 Result of test

从表3 可以看出,卷积神经网络能够有效地实现水果的自动分级,图5 所示为从网络上下载的一张苹果图像,经模型预测后显示该图像属于一级苹果的概率为0.9710,与人眼直观判断结果一致,说明了模型的有效性。

图5 预测结果示意图Fig.5 Schematic illustration of predited results

3 结论

本文设计了一个基于卷积神经网络的苹果分级系统,采用Keras+Tensoflow 搭建卷积神经网络模型,自建了一个小规模的苹果分级数据集,经过一定的数据扩充后用于训练神经网络,经训练后的模型在测试集上取得很好的测试效果,表明了卷积神经网络利用多次的卷积运算和池化操作,能够很好地学习到不同级别苹果图像的高层次特征,无需人工特征提取就能很好地完成苹果的分级,有助于节约人工成本,促进水果销售的自动化,也有利于无人水果超市的发展。本文将进一步拓展在多种类水果分级领域的研究,包括多种类水果分级数据集构建,面向数据集规模扩充的数据增强技术研究,多任务型深度卷积神经网络模型参数自适应算法研究等。

猜你喜欢
正确率卷积水果
基于3D-Winograd的快速卷积算法设计及FPGA实现
门诊分诊服务态度与正确率对护患关系的影响
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
四月里该吃什么水果
生意
品管圈活动在提高介入手术安全核查正确率中的应用
生意
水果篇之Cherry
水果畅想曲