基于深度学习的农作物病虫害图像识别APP系统设计

2022-03-18 05:01孔建磊金学波白玉廷苏婷立
计算机应用与软件 2022年3期
关键词:图像识别管理员界面

陶 治 孔建磊,2 金学波,2 白玉廷,2 苏婷立,2

1(北京工商大学计算机与信息工程学院 北京 100048)2(北京工商大学食品安全大数据技术北京市重点实验室 北京 100048)

0 引 言

据中国统计年鉴,2016年我国农业生产总值达5.93万亿元,占GDP的8%;但由农业病害等灾害造成的直接损失达0.503万亿元,占农业生产总值的8.48%,其中,病虫害是农作物最大的威胁[1]。随着物联网与图像识别技术的快速发展,将图像识别技术应用于农业相关领域尤其是病虫害的识别是相关领域的研究热点,如将图像识别技术应用在椪柑病虫害[2]、番茄叶部病害[3]、苹果病虫害[4-5]等。此外,随着智能终端的快速发展,将相关图像识别技术应用到手机等终端上,可以有效、便捷地解决农业生产中的问题[6-7];本研究利用目前计算机视觉中高效的图像识别技术,设计了基于Android的农作物病虫害图像识别App系统,以期能为相关领域研究提供参考。

1 系统分析

1.1 需求分析

农作物一旦发生病害或虫害,若初期或关键时期没有发现,或者识别错误,将导致不当的处理措施以至于造成作物产量下降,甚至形成作物的粮食安全问题。因此,对于作物的病虫害实现精确的识别是农业工程中十分实际的问题。而随着智能手机的广泛普及,农户人员或者相关病虫害研究人员使用手机软件随手拍摄图片,通过系统软件进行快速高效的识别,是指导农业病虫害研究预防的有效手段。

1.2 系统功能设计

整体系统功能分为三个部分,分别是用户功能、管理员功能以及科研人员功能,如图1所示。

图1 功能划分示意图

对于不同的用户,对其功能权限进行了划分。在用户层面,用户可以实时对上传的病虫害图像进行识别以及当地天气查询等功能;在管理员层面上,管理员还可以进行更多样本的收集标注以及训练模型、数据筛选等权限操作;此外,对于研究人员,支持其进行数据查询、数据下载分析等研究功能。

2 病虫害识别

2.1 数据集

如图2所示,系统共采集、收集了来自苹果、樱桃、玉米、葡萄、柑桔、桃、辣椒、马铃薯等多个对象的病害与虫害图片,病虫害种类共计181类,各类数量达到400幅及以上,单幅照片至少含有1个目标样本,同时,为保证各类病虫害总体样本数据相近,各类之间相差不超过50个样本,确保分布平衡。

图2 病虫害数据集样本

2.2 数据处理

数据准备与预处理的优劣程度,对模型最大准确率有直接的影响,数据分布不均、噪声过大、各类别样本不均衡等因素,均会造成模型难以收敛或产生虚假训练结果,影响模型性能。因此将合格照片进行处理,并统一批量重命名为规定格式,以采集时间、采集数量、采集种类进行编码,自动形成统一命名的批量数据后,本研究进行了一系列去除模糊、抖动、曝光过度图片的预处理操作以及数据增强的手段,如随机旋转角度(设置为60°)、水平偏移(幅度选为0.2)、垂直偏移(幅度选为0.2)、重缩放(缩放因子选为1/255)、垂直水平180°翻转等。

在上述处理以及增强操作的基础上,开展每张照片的标定工作,对每幅照片存在的多种害虫分别进行标注及定位,以下述标注原则进行标注:

(1) 当图片包含多个对象时,标记出每个目标。

(2) 当图片中有两个重叠的目标对象时,应在可见部分周围用方框画出被遮挡的部分并以规定编码形式进行存储,每幅照片对应一个标注文件,形成用于本系统识别及检测模型的病虫害基础训练数据库。

图3 图片标注示例

2.3 模型设计

识别模型的设计分为两个主要方面:训练过程和识别过程。模型训练过程通过大量的有标记样本进行监督学习,让模型能够学习到特定的语义特征,通过不断地前向传播与反向传播,进行迭代训练,逐渐提高模型识别精度与准确性。模型识别只有前向传播过程,利用训练过程中所学习到的参数,对输入图片进行卷积运算,经过特定的计算方式输出识别结果和置信度。

识别过程中,其基础的是图像分类模型,主要用于去除无效图像和图像粗略分类,在分类网络中如VGG16[8]、Resnet[9]、GoogLeNet[10]等都具有不错的分类效果。由于本研究采用的是yolo检测模型,其基本的分类网络采用的是与其他分类网络具有同等性能的Darknet网络,其网络结构如图4所示。

图4 Darknet53分类网络结构

该网络主要是由一系列的1×1和3×3的卷积层组成,其中每个卷积层后都会跟一个正则化BN层和一个LeakyReLU激活层,共同构成了最小组件。其中,结构图中resn组件代表含有n个res单元;作为yolo_v3的大组件,通过借鉴了ResNet的残差结构,res单元结构可以让网络结构更深。

在上述darknet53模型上,病虫害的整体检测网络采用yolo_v3[11]检测网络,用于识别图像中病虫害的位置以及种类,其网络结构如图5所示。

图5 检测网络结构

相比较初代的yolo_v1[12]和yolo_v2[13],yolo_v3进一步采用了3个不同尺度的特征图来进行对象检测,能够检测到多维度特征信息;yolo_v3网络在三个特征图中分别通过(4+1+c)·k个大小为1×1的卷积核进行卷积预测,其中k为预设边界框的个数(k默认取3),c为预测目标的类别数,其中4k个参数负责预测目标边界框的偏移量,k个参数负责预测目标边界框内包含目标的概率,ck个参数负责预测该k个预设边界框对应c个目标类别的概率。

2.4 模型优化

与此同时,为了提升病虫害目标检测准确率,本研究使用的提升方法:

(1) 批量正则化(Batch Normalization)[14]:对网络的每个卷积层之后添加批量标准化,有助于对模型进行规范化,并且在优化中途退出后仍然不用担心过系统出现拟合问题,提升整个识别算法稳定性。

(2) 维度聚类(dimension cluster):K-means聚类是聚类算法中最为简单、高效的,核心思想是由用户指定k个初始质心(initial centroids)以作为聚类的类别(cluster),重复迭代直至算法收敛。通过采用K-means[15]聚类方法训练边界框,可以自动找到较好的框的宽高维度。

(3) 迁移学习(transfer learning):为了获得一个泛化能力强、精度高的模型,本研究使用迁移学习的思路,将在imagenet数据库预训练好的模型迁移过来,在此迁移基础上实现模型的高效运行。

2.5 模型实现

基于上述的算法模型,随机挑选收集数据的65%作为训练集,挑选20%作为验证集,15%为综合测试集,将数据集扩展为五个训练批次和一个测试批次,每个批次有400幅图像。测试批次包含来自每个类别的随机选择的图像。在具有四个NVIDIA Tesla p40 GPU和256 GB RAM的Intel Core i7 3.6 GHz处理器上进行了训练和测试,为了比较模型之间的性能差异,本研究对多个检测模型进行了实验比较,结果如表1所示。

表1 实验检测结果检测框架

正如结果所示,以Darknrt-53为特征提取器的yolo-v3具有更高精度的检测结果,以此为模型实现的病虫害识别系统具有较高的精度效果。

3 系统实现

3.1 系统架构

系统采用C/S(App)技术架构,搭建数据服务、移动终端服务等。其中,在物理架构上,使用ubuntu16.04的操作系统以及MySQL数据库系统,在intel E5-2600及以上的CPU、NVIDIA GTX1080Ti及以上的GPU上搭建Android4.0的移动终端。具体开发工具分为App开发工具与模型开发工具,其中App开发工具包括Ubuntu 16.4、MySQL 5.6.37、go1.8.linux-amd64、Vs code、Android studio、Navicat、jdk-8u101-linux-x64,模型开发工具包括Anacoda2、Tensorflow-GPU-1.4、Cuda 8.0、CUDNN 6.0、Pytorch 0.4、Pycharm 3、Jupyter 2.9、TensorBoard、LabelImg。

在上述开发工具与基本架构的基础上设计本系统的整体架构如图6所示。

图6 系统架构

3.2 系统实现

经过需求分析、系统设计、软件实现、测试与试运行、功能调整等过程,最终病虫害识别系统实现了如下功能:(1) 实时天气查看;(2) 注册登录,包括管理员和普通用户;(3) 病虫害实时动态识别;(4) 管理员标记目标;(5) 根据标记数据自主学习;(6) 在地图上显示病虫害查询位置;(7) 自动收集所有数据和信息,为后续大数据分析提供数据来源。

系统有普通用户和管理员两个级别的使用权限,用户输入用户名、密码及权限等级进行登录。新用户则可以点击右上角的“注册”按钮,进入账号注册界面,完成新用户注册,见图7。

图7 App注册界面

普通用户登录账号后,进入主界面,如图8所示。主界面顶部具备用户所在地址、天气实时等信息,中间区域则滚动呈现用户历史图像及相应识别结果。

图8 App主界面与数据上传界面

用户从相册或拍照获得需要检测的图片后,进入数据上传界面,该界面会根据用户网络状态、传输速率进行呈现。

在完成数据传输后,进入“识别效果反馈界面”,如图9所示。该界面会根据获取图像的识别情况进行智能化反馈:(1) 当上传图像中不存在病虫害或尺寸过小、被遮挡等情况,又或出现网络中断、传输终止等状况,以及上传图像质量差、抖动模糊、径切向畸变、拍摄环境过亮或过暗等情况,识别系统会反馈给用户的“无法识别”提示,并告知查看“帮助说明”,建议“重新拍照”。(2) 当图像中存在目标对象,且网络传输正常、上传图像质量优良,则根据模型算法给出相应的识别效果,提示用户“识别到病害虫”,并在图像中框出害虫所在位置,说明其种类、数量、辨识等信息,给出相应防控建议。

图9 数据标注界面

用户为管理员登录账号后,在主界面点击“相册”或“拍照”按钮后,进入管理员专用的“标注操作界面”,底部的“选择”按钮对应普通用户的上传识别功能,点击则进入“识别效果反馈界面”。在此基础上,管理员多出“图像标注”和“数据上传”按钮,可以实现完成标记并上传病虫害数据的功能。

4 结 语

本系统针对病虫害对象,基于Android开发建设专用作物的病虫害识别系统,采用主动采集与网络数据抓取方式,经过智能筛选及异构数据融合等技术手段,实现数据有效获取并保证其真实可靠。实现病虫害识别、病虫害情况上报、病虫害预警等功能,为科研机构、政府、企业、农用品经销商以及消费者提供决策支持和信息服务。受限于样本与技术,针对算法模型的进一步优化升级,提升识别检测准确度,将应用范围进一步扩大是未来工作的研究方向。

猜你喜欢
图像识别管理员界面
支持向量机的舰船图像识别与分类技术
基于计算机视觉的图像识别技术研究
不同截面类型钢管RPC界面粘结性能对比研究
国企党委前置研究的“四个界面”
可疑的管理员
人工智能背景下图像识别技术浅析
图像识别交互系统
让管理员管不了的名字
当小小图书管理员
界面成立自媒体联盟深挖原生内容创造力