基于TensorFlow的水果识别系统设计
2021-03-15刘朝辉王维高
刘朝辉 王维高
摘要:人工智能的发展给人们的日常生活以及社会发展带来了极大的便利,无人超市的出现要求对目标识别进行深入研究。该系统采用深度学习理论以及TensorFlow 学习框架来实现水果识别。利用卷积神经网络训练数据集,得出各类水果的代表性特征,从而准确进行水果识别。
关键词:水果识别;TensorFlow;卷积神经网络
中图分类号: TP18 文献标识码:A
文章编号:1009-3044(2021)03-0190-02
Abstract:The development of artificial intelligence has brought a lot of convenience to people's daily life and social development. The emergence of unmanned supermarket requires in-depth research on target recognition. This system adopts deep learning theory and TensorFlow learning framework to realize fruit recognition, and uses convolutional neural network training data set to obtain the representative characteristics of all kinds of fruits, so as to accurately carry out fruit recognition.
Key words:fruit recognition; TensorFlow; Convolutional neural network
随着人工智能的发展,智能化服务在零售、医疗、食品等行业得到了广泛应用,如支付宝的刷脸支付、无人超市、无人智能停车场等。机器视觉与深度学习研究帮助人工智能取得了大幅进步。机器视觉赋予机器模仿人类视觉自动完成信息处理能力,深度学习给予机器学习能力,两者有机结合起来能够很好地代替人类完成对目标对象的分类及辨识任务。日常生活中,水果提供人体必需的营养素,在人们饮食结构中不可或缺。若在销售过程中,实现水果种类的自动分类,会为人们生活提供不小的便利,有助于无人超市的发展。本文主要研究基于深度学习的水果识别算法,通过卷积神经网络提取训练更加抽象的特征,完成水果的分类识别,降低了特征提取的难度,识别率也有所提高。
1 传统图像识别
传统图像识别技术的步骤可分为:数据采集,数据预处理,特征提取,特征匹配四步。传统图像特征提取主要取决于人为设计的提取器,这一步要有相关的专业知识配合,而且每个方法都是应用于不同领域,泛化能力及鲁棒性不高。所以,传统图像识别技术对解决某些特定场景的、可人工定义、设计、理解的图像任务具有不错的效果。
2 卷积神经网络
最近几年里,卷积神经网络(CNN)得到巨大的发展,这项技术的进步彻底地改变了计算机视觉领域,也推动了计算机视觉领域的前进。卷积神经网络能取得巨大成功离不开其所采取的局部连接和共享权值的方法,不仅降低了权值的数目使得网络易于优化,也对减少过拟合现象有着出色的表现。在输入的图像是多维图像时,此种优势尤其显著,这样图像就能够直接成为网络的输入,舍去了传统图像识别需要庞杂的特征提取和数据重建的步骤。和传统的图象识别技术相比,卷积神经网络具有如下优点:具有不俗的容錯率、杰出的并行处理能力以及强大的自学能力,面临环境信息庞杂,背景知识不明,推理规则不清晰这些情况下的问题时,容许样品有较大的缺损、畸变,运行速度快,自适应性能好,具备优异的分辨率。凭借泛化能力优异这一特点,卷积神经网络在物品分类,目标检测,目标识别等领域都被广泛应用。
卷积神经网络通常包括如下几部分:1)卷积层:卷积层是经由卷积操作对输入图像进行降维和特征提取;2)池化层:池化层的作用是缩小模型提高计算速度,降低过拟合概率提高鲁棒性,池化层通常在卷积层后边,“池化”的是卷积层的输出;3)激活函数:激活函数在所有神经网络中都起着至关重要的作用,它将非线性因素引入网络以解决线性模型表达能力不足的缺陷;4)全连接层:全连接层可以将局部特征经由权值矩阵连接成完整的图。
3 TensorFlow基本原理
目前使用率最高的机器学习框架当属TensorFlow。它是一个开源的、基于 Python 的机器学习框架,它由谷歌开发,并在图形分类、音频处理、推荐系统和自然语言处理等场景下有着丰富的应用。TensorFlow 允许将深度神经网络的计算部署到任意数量的 CPU 或 GPU 的服务器、PC 或移动设备上,且只利用一个 TensorFlow API[1]。
TensorFlow 是一个使用数据流图 (data flow graphs) 用于数值计算的开源软件库。数据流图是是一个有向图,使用节点(一般用圆形或者方形描述,表示一个数学操作或者数据输入的起点和数据输出的终点)和线(表示数字、矩阵或者 Tensor 张量)来描述数学计算。数据流图可以方便地将各个节点分配到不同的计算设备上完成异步并行计算,非常适合大规模的机器学习应用。
4 系统设计与分析
4.1 系统设计流程
本文研究的是对各类水果的图片进行必要的图像处理后,利用卷积神经网络技术,完成对不同水果的分类以及准确的识别,整个水果识别系统将分为以下几步:
1) 数据采集
本次实验的数据集来源于Kaggle,共70多类水果,共约3万张图片,如图1所示。
2) 数据预处理
数据预处理一般在神经网络训练前都必不可少,因此在搭建卷积神经网络前需要对输入图像进行预处理。一般图像预处理包括以下三个步骤:①图像灰度化;②图像的几何变换即平移、旋转、镜像、裁剪等;③图像增强,增强图像中的有用信息。在本次实验刚开始测试阶段,识别准确率一直达不到要求,最终发现在本次水果识别实验中,对图像的灰度化处理适得其反。因为水果的颜色是不同类水果的重要特征之一,故而在图像预处理过程中舍去了图像的灰度化。
3) 设计卷积神经网络模型
本次实验选用卷积神经网络LeNet-5,激活函数选用Relu函数,选用dropout和Softmax函数做分类器。
LeNet-5共7层(不包含输入层),其中有2个卷积层,2个池化层,3个全连接层,其结构图如图2所示。
本次实验所选择Relu函数是当前相当流行的一种激活函数, 在面对梯度消失这个在深度学习领域最大的问题时,Relu函数凭借其计算速度快,收敛速度快的特点,通常被优先推荐使用[2]。其函数公式为:[fx=max (0,x)],函数图像如图3所示,Softmax函数在机器学习或者深度学习中发挥着极其重要的作用。它会将输入映射为0-1之间的实数,同时归一化保证其和为1,所以多分类的概率相加之和也就等于1。
4) 网络训练
卷积神经网络设计完成后,即可对搭建好的卷积神经网络进行训练并将训练好的模型存储,本次实验设定的训练次数为5000次。
5) 读取模型进行测试
完成网络训练之后,即可利用训练好的网络模型,从测试图片集中随机抽取水果图片进行识别测试,验证识别准确率。
4.2 实验结果与分析
在对网络进行了5000次的训练之后,其准确率已经达到了100%的水准,如图4所示。然后对其进行测试。实验随机抽取了测试数据集中的100张水果图片进行识别测试,结果显示每次均能准确的辨认出水果名称,这里只截取部分实验数据,如图5~图8所示。由此可见本系统对测试集图片的识别准确率已经达到了100%,说明本系統所采用的卷积神经网络可以很好地完成学习任务,准确的完成水果识别。
5 结束语
人工智能技术,图像处理和计算机视觉技术的发展的愈发成熟,无人售卖超市在实际生活中也越来越常见,对水果识别的研究对现实生活的进步有着很大意义。本文采用了卷积神经网络技术并对其进行训练测试,对不同水果的识别有着很高的准确率。该系统设计的完成,具有一定的实用价值,但也依赖深度学习的发展,同时也存在着不可忽略的问题,如在完成度上由于数据集不够充分,对一些残次水果的识别率上不够精准,需要后续继续优化。
参考文献:
[1] 李慧颖,李薇,邢艳芳,等.基于TensorFlow的人脸识别系统设计[J].计算机时代,2020(9):61-63.
[2] 王梓桐.基于神经网络的水果识别系统设计[J].信息通信,2020,33(7):56-58.
[3] 杨毅.基于深度学习的水果识别研究[J].信息与电脑(理论版),2019,31(21):119-120.
[4] 曾平平,李林升.基于卷积神经网络的水果图像分类识别研究[J].机械设计与研究,2019,35(1):23-26,34.
【通联编辑:李雅琪】