基于国产芯片和RTOS的农业病虫害检测系统
2023-03-06刘佳辉李彤召
刘佳辉,刘 强,李彤召
(北京科技大学天津学院,天津 301830)
0 引 言
近年来,物联网技术的大力发展极大便利了我们的生活[1]。对于农业而言,智慧农业也是当下物联网发展的热门方向,很多地方已经建立了智慧农业的规模化产业园。随着人们对农副产品质量要求的不断提高,以及产品质量检测技术的不断完善,规模化设施农业病虫害的防治已经成为一大问题,对防止病虫害提前采样预警相关技术的应用和发展也提出了更高、更新的要求。目前,国内绝大多数地区对于农业病虫害的防治大多在病虫害发生之后进行农药杀虫[2]。此法已经不适应当今形势的发展[3]。本文介绍了一款芯片国产化,可以实时检测农业病虫害是否发生,并将识别结果上传到服务器的物联网设备,以供用户通过采样分析等方式提前做出病虫害防治的相应决策[4]。
1 基于国产芯片和RTOS的农业病虫害检测系统及总体设计方案
1.1 系统总体设计
系统主要分为模型训练和物联网平台搭建两部分,模型训练使用基于YOLOv3的视觉识别算法,物联网平台主要包括堪智K210主控板,ESP8285 WiFi模块,OV2650摄像头模块,LCD显示屏等硬件模块,以及视觉识别实现和基于MQTT通信协议的数据传输[5]。系统框图如图1所示。
图1 系统框图
1.2 基于国产芯片和RTOS的农业病虫害检测系统的软硬件组成
基于国产芯片和RTOS的农业病虫害检测系统的硬件选用国产堪智K210开发板,其采用了RISC-V处理器架构,可编程能力强,搭配国产的RT-Thread实时操作系统。RTThread实时操作系统秉承着小而美的设计理念,进行了设备端和云端的一体化设计,便于接入各类主流的物联网设备云平台[6]。
2 物联网层级设计
2.1 感知识别层设计
感知识别层选择使用OV5040传感器,其支持输出最大为500万像素的图像,并且支持直接输出jpeg格式的图像,在进行图像传输时可以大大减小数据量,方便进行网络传输,还可以对图像进行补偿以传输更加清晰的图像[7]。
2.2 网络构建层
网络构建层在物联网架构上承担着承上启下的作用,在本项目中将搭建基于MQTT协议的网络传输链路,硬件部分使用ESP8285 WiFi模块,此通信协议具有带宽占用小、传输速度快、丢包率低等特点[8]。
2.3 平台管理层设计
平台管理层依托国产的RT-Thread实时操作系统,通过部署到开发板上的农业病虫害识别模型实时识别结果,然后通过MQTT通信协议将识别结果上传到远程服务器,以实现客户端与设备端的无线连接。
2.4 综合应用层
综合应用层作为物联网工程的最顶层,在本项目中,其将摄像头捕捉的信息分析结果在云端平台进行处理,得出相应的农业病虫害是否发生的结论,以及发生病虫害的概率,用户就可以根据病虫害发生的概率进行决策。
2.5 垃圾桶的监测控制硬件设计
垃圾桶的软硬件设计整体依托国产芯片以及国产实时操作系统,为提高图像的检测效率,提高检测精准度,本项目采用堪智K210系列芯片,且其板载通用神经网络加速器(KPU),可以实现卷积神经网络的计算,时时获取被检测目标的大小、坐标和种类[9]。
嵌入式软件部分采用RT-Thread实时操作系统,其占用资源极少,使物联网开发变得简单、高效。
3 应用实现
3.1 基于百度飞浆的模型训练
视觉识别的基础在于模型的搭建,本项目将模型训练任务搭建在了百度飞桨深度学习平台,因为YOLOv3具有模型小、速度快等特点,非常适合在单片机上运行,故选择YOLOv3算法。
将事先准备好的模型导入百度飞浆平台,数据包含训练集所需图片(对图片标注文件)。标注可以借助labelImg工具等,这里不再赘述。标注文件是对图片的说明,包含图片尺寸,昆虫名称以及在图上出现的位置等信息[10]。
从数据集中读取xml文件,将每张图片的标注信息读取出来。在读取具体的标注文件之前,需要将昆虫的类别名字(字符串)转化成数字表示的类别。因为神经网络计算时需要的输入类型是数值型,所以需要将字符串表示的类别转化成具体的数字。例如昆虫类别名称的列表是:[‘ant’, ‘bee’,‘fly’, ‘aphid’, ‘armandi’, ‘cabbage caterpillar’],这里我们约定此列表中:‘ant’对应类别0,‘bee’对应类别1,…,‘cabbage caterpillar’对应类别5。
数据准备好后要进行数据的读取和预处理,这对于训练神经网络而言非常重要。数据预处理是将图片进行一些随机变化,比如变亮、变暗或者建材填充等,以产生更多相似样本,达到扩大数据集、抑制过拟合、提升模型泛化能力的目的。
等所有数据集准备完成后就可以进行模型搭建了,本项目使用YOLOv3进行模型设计,该算法包含两部分,第一部分是按照一定规则产生候选区域,根据产生的候选区域与图片上物体真实框之间的位置关系对候选区域进行标注。第二部分是根据候选区域使用卷积神经网络提取图片特征,并对候选区域位置和类别进行预测。YOLOv3的算法流程如图2所示,预测流程如图3所示。
图2 YOLOv3算法训练流程
图3 预测流程
3.2 模型部署实现
由于得到的基于YOLOv3训练的模型在K210单片机上并不能识别,所以在部署之前需要使用NNCase工具将tflite模型转换成kmodel模型,然后使用K210官方提供的kflash_gui工具将kmodel模型下载到K210的FLASH中。图4、图5为模型部署完之后的测试结果。
图4 发生病虫害的叶片
图5 未发生病虫害的叶片
3.3 远程监控的实现
使用MQTT协议实现远程监控功能。MQTT是基于发布/订阅模式的轻量级通信协议,其具有低开销/低宽带等特点,适合部署在大片农田进行多点数据传输。使用K210开发板自带的ESP8285透传模式将识别结果实时上传至服务器供客户端订阅,测试结果如图6、图7所示。
图6 无病虫害
图7 有病虫害
4 结 语
本文设计的基于国产芯片和操作系统的农业病虫害实时检测系统,将视觉识别技术与单片机技术相结合,实现了自动化农业病虫害检测功能,为开发者提供了新的问题解决方案。