APP下载

基于卷积神经网络的果蔬识别与定位软件的设计与实现

2024-11-05何伟

现代信息科技 2024年16期

摘 要:在智慧农业领域,精确识别果蔬种类及定位对提高农业生产效率至关重要。基于卷积神经网络探索CNN图像识别原理及关键技术,构建一个从数据采集、预处理到智能识别的果蔬图像的高质量识别模型,设计并实现了基于卷积神经网络的果蔬识别与定位软件,该软件能高效地从复杂的果蔬外观特征中提取有效信息,智能精准识别果蔬类型及位置信息,能显著提升农业自动化和智能化水平,为提升农作物管理效率和优化生产流程提供高效的工具,对推动智慧农业的发展提供有力技术支撑。

关键词:卷积神经网络;软件开发;果蔬图像识别;智慧农业

中图分类号:TP391.41 文献标识码:A 文章编号:2096-4706(2024)16-0098-05

Design and Implementation of Fruit and Vegetable Recognition and Localization Software Based on Convolutional Neural Networks

Abstract: In the field of smart agriculture, accurately iNGAuBV49rX3pU5/qUZXljgG4bZe4fGFIU79427y18BI=dentifying the types and locations of fruits and vegetables is crucial for improving agricultural production efficiency. This paper explores the principles and key technologies of image recognition based on Convolutional Neural Networks (CNN), and constructs a high-quality recognition model for fruit and vegetable images that encompasses data collection, preprocessing, and intelligent recognition. A software based on Convolutional Neural Networks for the recognition and location of fruits and vegetables is designed and implemented. This software can efficiently extract useful information from complex appearances of fruits and vegetables, intelligently and accurately identify their types and location information, significantly enhancing the level of agricultural automation and intelligence. It provides a powerful tool for improving crop management efficiency and optimizing production processes, offering strong technical support for the advancement of smart agriculture.

Keywords: Convolutional Neural Networks; software development; fruit and vegetable image recognition; smart agriculture

0 引 言

随着全球人口的持续增长,农业生产面临着前所未有的挑战。为了满足日益增长的食物需求,提高农业生产效率和产品质量变得至关重要。在此背景下,智慧农业作为一种利用现代信息技术来优化农业生产的新兴模式,逐渐得到了广泛的关注和应用[1]。其中,果蔬类农产品的精准识别是智慧农业中一个重要且基础的环节,它对于农产品的分类、质量检测和产量估算等方面具有显著的影响。

传统的机器学习方法已在果蔬图像识别领域取得了一定的进展,但在处理大规模、高维度和复杂的图像数据时,往往会遇到一些困难和挑战。特别是在图像特征提取和分类准确度方面,传统方法往往无法满足日益严格的应用需求。相较而言,卷积神经网络(Convolutional Neural Networks, CNN)作为一种深度学习的核心技术,凭借其卓越的自动特征提取能力和高准确率,在图像识别领域中表现出了强大的应用潜力[2]。

近年来,卷积神经网络已成功应用于多个领域,包括计算机视觉、自然语言处理和医学图像分析等。特别是在图像识别方面,卷积神经网络已经成为当前的主流技术[3]。基于卷积神经网络的图像识别技术,不仅能够大幅的提高识别准确度,还能处理大规模的图像数据,为实时和在线的应用提供了可能。

因此,本文探讨卷积神经网络在果蔬图像识别领域的应用,以及其对智慧农业的推动作用。通过设计和实现一个基于卷积神经网络的果蔬识别与定位软件,以期为果蔬的精准识别和智慧农业的发展提供有力的技术支持。

1 系统总体架构

系统采用Django+Vue前后端分离技术,分为数据层,服务层及用户层三层[4],系统架构图如图1所示。用户层分为手机端APP和PC端的Web页面两个组成部分,APP端基于Vue+MinitUI,Web端采用Vue+ElementUI开发框架实现。服务层采用Django框架实现,具体包括智能识别服务、用户服务、数据分析服务等,Django开发框架是高水准的Python编程语言驱动的一个开源模型,起源于开源社区。使用该架构,可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。数据层基于MySQL数据库,实现对于采集数据、分析数据、用户数据等内容的存储。

果蔬识别与定位软件功能结构图如图2所示。用户可以分别从Web端和手机端进行识别定位应用。手机APP具有拍照上传或从手机相册中选择图片的功能,图片上传到Web服务器,Web服务器对上传数据进行分析,调用智能识别模型识别图像,返回图像识别结果(类型、数量及定位坐标),APP获取返回数据后将识别结果绘制在图片上,所有查询数据保存到数据库中供统计分析使用[5]。Web端实现功能包括:果蔬图片批量上传识别定位,用户数据表的统计查询及按日期进行搜索。管理员账号登录后台管理界面可以实现对普通用户信息及识别数据进行增、删、改、查等管理工作。

2 基于卷积神经网络的智能识别模块

卷积神经网络(CNN)是一种深度学习的核心架构,适用于图像识别和处理任务。基本结构包括卷积层、激活层、池化层和全连接层,这些层次通过特定的方式组合,形成了能够自动提取图像特征并进行分类的神经网络[6]。

卷积层是CNN的核心组成部分,通过卷积运算处理输入数据,提取图像中的局部特征。每个卷积核在图像上滑动时,会提取图像的不同特征,如边缘、角点等。多个卷积核可以提取多维度的特征,为后续的图像识别提供丰富的特征信息。激活层通常紧随卷积层,目的是引入非线性因素,使得网络能够学习到更复杂的特征。ReLU(Rectified Linear Unit)是最常用的激活函数,它可以增加模型的非线性表达能力,同时保持计算的高效。池化层用于减小数据的空间维度,同时保持图像的主要特征。常用的池化操作有最大池化和平均池化。池化层能够减少网络参数,降低过拟合的风险,同时保持对图像特征的良好表达。全连接层通常位于网络的最后几层,它将前面的所有特征连接在一起,并输出到分类器,如Softmax分类器,以得到最终的分类结果。

卷积神经网络因其出色的自动特征提取能力和高分类准确率,已成为图像识别领域的主流技术。通过端到端的训练,CNN可以自动学习到图像的多层次和多尺度特征,大大降低了传统机器学习方法中手工设计特征的复杂度。同时,卷积神经网络还能处理大量的图像数据,适应不同的图像识别任务,为图像识别提供了一种强大而通用的解决方案[7]。

为了实现果蔬图像的智能识别,本文设计了一个基于卷积神经网络(CNN)的智能识别模块,如图3所示。该模块主要包含四个部分:数据预处理、卷积神经网络模型、训练与优化和识别与评估。

数据预处理模块负责对采集到的原始图像数据进行预处理,包括图像增强、数据增强、归一化处理、尺寸调整等,以得到适合于模型训练的高质量图像数据。卷积神经网络模型模块包括了卷积神经网络的设计与构建,通过设计一个多层卷积神经网络,包括卷积层、激活层、池化层、全连接层和SoftmaxO4kQrx9iNKdSL7Ra7cf2eg==输出层,以实现果蔬图像的特征提取和分类[8]。训练与优化模块负责对卷积神经网络模型进行训练和优化。使用交叉熵损失函数,并选择Adam优化算法来最小化损失函数。同时,利用验证集对模型的性能进行评估,通过调整模型的参数和结构来优化模型的性能[9]。识别与评估模块负责对训练好的模型进行果蔬图像识别,并通过测试集对模型的识别性能进行评估,计算模型的准确率、召回率和F1值等指标,全面评估模型的性能。

2.1 数据采集与预处理

在果蔬图像识别研究中,图像的采集和预处理是至关重要的步骤,为后续的模型训练和验证提供必要的数据支持。

构建一个具有代表性和多样性的果蔬图像数据集是实现准确识别的前提。一个好的数据集应包括多种类型和类别的果蔬,同时应包含不同光照、角度和背景条件下的图像,以增加模型的泛化能力。数据集构建的主要步骤包括:

1)图像采集。采集图像是构建数据集的第一步,应尽可能地收集不同种类、成熟度和颜色的果蔬图像。图像的来源可以多样化,包括公开的果蔬图像数据集、网络爬虫抓取的图像以及实地拍摄的图像等。

2)标签分配。为每个图像分配正确的标签是至关重要的,这需要专业知识以确保标签的准确性。标签应明确表示果蔬图像中的种类和状态,如“桔子”“绿番茄”“红番茄”等。

3)数据分割。将收集到的数据集分割为训练集、验证集和测试集是常见的做法,比例设置为80%、10%和10%。这样可以确保模型在不同的数据子集上都能得到有效地训练和验证。

图像预处理旨在改善图像质量,减少噪声和不相关的信息,使图像数据更适合于卷积神经网络的训练和识别。主要的图像预处理方法包括[10]:

1)图像增强。图像增强技术可以提高图像的清晰度,强化图像的边缘和纹理信息,从而提高图像的识别准确率。

对比拉伸处理公式如式(1)所示:

其中,r、s分别为原图像和增强图像的灰度值,rmin和rmax为图像的最小和最大灰度值,a为放大系数。

2)数据增强。通过对原始图像进行一系列的几何和光度变换(如旋转、翻转、缩放、裁剪、亮度和对比度调整等),可以增加训练数据的多样性,提高模型的泛化能力和鲁棒性。

3)归一化处理。归一化处理是将图像的像素值范围缩放到0,1或-1,1,有助于保持数据的数值稳定性,加速网络的收敛。归一化处理的处理公式如式(2)所示:

4)尺寸调整。所有的图像都需要调整到统一的尺寸以适应卷积神经网络的输入要求,调整尺寸如224×224或299×299像素。

2.2 CNN模型设计与训练

本文设计并训练了一个CNN模型来实现果蔬图像的智能识别模块,CNN模型由卷积层、激活层、池化层和全连接层组成,模型结构如图4所示。

卷积层:卷积层用于提取图像的局部特征,通过应用卷积核(或过滤器)来实现。卷积操作的数学表达式如式(3)所示:

其中,(x,y)为输出特征图的位置,(m,n)遍历卷积核g的所有元素,f(m,n)和g(x-m,y-n)分别为输入图像和卷积核在相应位置的元素值。

激活层:激活层用于增加模型的非线性。在模型中选择使用ReLU(Rectified Linear Unit)激活函数。

池化层:池化层用于降低特征图的空间维度,同时保持图像的重要特征。最常用的池化操作是最大池化,数学表达式如式(4)所示:

全连接层:全连接层用于将卷积和池化得到的特征图转换为一维特征向量,并通过Softmax函数进行果蔬类别的概率分布输出。Softmax函数的数学表达式如式(5)所示:

其中,K为果蔬类别的数量,z为全连接层的输出。

损失函数:本文选择交叉熵损失函数作为优化目标,可以衡量模型预测概率分布与真实概率分布之间的差异。交叉熵损失函数的数学表达式如式(6)所示:

其中,k为果蔬类别的总和,yi为真实分布,如果样本属于第i类,则yi=1,否则为0。pi为模型预测样本属于第i类的概率。

模型评估:在每个训练周期结束时,本文使用验证集评估模型的性能,监控准确率、损失值等指标,以确保模型正在正确地学习。

3 系统实现

3.1 智能识别实验设置

对果蔬图像智能识别实验的具体设置,包括数据集的构建、图像预处理、模型参数选择、训练设置以及评估指标和硬件、软件环境配置。

1)数据集。为了保证实验的真实性和有效性,本文收集了一个包含6种不同果蔬的大规模图像数据集。每种果蔬类别包含1 000张图像,总共6 000张图像。首先需要手动清洗数据集,以确保每张图像的质量和标签的准确性,然后将数据集随机划分为训练集(80%)、验证集(10%)和测试集(10%),以确保模型的泛化能力。

2)图像预处理。所有图像都经过了一系列的预处理步骤,以提高模型的识别准确率。这些步骤包括图像裁剪、缩放到统一尺寸(224×224像素)、归一化(像素值范围0到1),以及数据增强(包括随机旋转、翻转和亮度调整等)。

3)模型参数。在模型训练过程中,本文设置了初始学习率为0.01,并采用了学习率衰减策略,每经过10个周期,学习率减小10%。为了在保证模型性能的同时,加速模型的训练,选择每批大小为32,以确保模型的稳定收敛。在优化算法上,选择Adam优化算法,由于其自适应学习率调整的特性,能够加速模型的收敛。

4)训练设置。模型在训练集上训练了50个周期,每个周期结束后,使用验证集评估模型的性能。为了避免过拟合,本文应用了早停技术,并在验证集上的准确率不再提升时停止训练,同时保存了在验证集上表现最好的模型,以便后续的测试和分析。

5)评估指标和硬件软件环境。本文选择了准确率、召回率和F1值作为模型性能的评估指标。这些指标能全面反映模型的识别性能,并为后续的模型优化提供参考。

3.2 Web页面

果蔬识别与定位软件中用户登录后可以在Web页面中选择本地数据文件,将文件上传到远端服务器。点击信息提交,服务器端对图像信息进行智能识别,返回识别结果,并将结果记录到数据库中。

前端收到识别结果后将识别类型和位置定位到图片上显示给用户,效果图如图5所示。

点击“我的工作台”—“数据查询”菜单,可以查看用户个人的所有查询记录,列出每张图片的识别类别和数量。数据查询功能还可以按照开始时间和结束时间进行选择性检索。

系统用户分为普通用户和管理员,普通用户可使用识别功能并查询个人数据,管理员账号可以对所有的用户信息及系统数据进行管理。

3.3 APP功能

用户注册好后,跳转到登录界面,输入用户名和密码进入果蔬定位界面。

该界面可实现拍照和从相册中选择图片两个功能,用户获得图片后,点击上传,将文件上传到远端服务器。服务器端对图像信息进行智能识别,然后返回识别结果,再将结果记录到数据库中。前端收到识别结果后,将识别类型和位置定位到图片上显示给用户,所有查询数据统计信息可点击数据查询菜单查看,部分APP效果图如图6所示。

4 结 论

随着科技的进步,智慧农业成为中国农业产业升级的关键方向,特别是在提升农产品品质和减少资源浪费方面展现出巨大潜力。本文通过采用机器学习技术,展现了如何利用智能化手段优化果实的生长监控和管理。通过分析果蔬采集照片中农产品的外观特征,如颜色、大小和形状。项目还深入探讨了数据处理与分析、平台设计与开发等方面,通过设计用户友好的界面,将果蔬识别技术和数据分析结果整合到一个平台中,项目不仅服务于农业管理者,也便于消费者获取信息。这种技术的应用代表了农业技术创新的方向,有助于推动农业产业向更高效、可持续的未来发展。

参考文献:

[1] 徐岩,刘林,李中远,等.基于卷积神经网络的玉米品种识别 [J].江苏农业学报,2020,36(1):18-23.

[2] 张文韬,张婷.基于迁移学习的卷积神经网络图像识别方法研究 [J].现代信息科技,2023,7(14):57-60.

[3] 苗宇杰,祝诗平,普京,等.基于卷积神经网络的家具木材图像种类识别 [J].林业科学,2023,59(8):133-140.

[4] 高志辉,秦琦,段暕,等.基于实时Web技术的车间监测系统设计与实现 [J].计算机应用,2023,43(S1):201-206.

[5] 段中兴,李伟哲,张亚俐,等.基于图像识别的果蔬自助结算系统 [J].计算机测量与控制,2021,29(12):195-203.

[6] 段毛毛,翟睿.基于融合卷积神经网络的花卉识别方法 [J].计算机与数字工程,2024,52(2):567-571.

[7] 刘忠意,魏登峰,李萌,等.基于改进YOLO v5的橙子果实识别方法 [J].江苏农业科学,2023,51(19):173-181.

[8] 朱骏宇.基于卷积神经网络的图像识别的技术分析 [J].长江信息通信,2023,36(8):66-68.

[9] 王卓,王健,王枭雄,等.基于改进YOLO v4的自然环境苹果轻量级检测方法 [J].农业机械学报,2022,53(8):294-302.

[10] 苏俊楷,段先华,叶赵兵.改进YOLOv5算法的玉米病害检测研究 [J].计算机科学与探索,2023,17(4):933-941.