李丽鑫,李 朔,李银银,高 宁,张弘扬
(辽宁科技大学电子与信息工程学院,辽宁 鞍山 114051)
随着科技不断进步,我国农业也逐渐进入了智能化发展阶段,而作为人口大国,我国对于农作物的产量需求一直较大。番茄是我国重要的蔬菜作物,产量高、种植面积广。因此,番茄成熟率检测正成为智慧农业领域研究的新方向。目前,农民观察番茄成熟情况,基本采用经验法进行观测,检测效率低且不精确,对于番茄生长的把控存在偏差,因此番茄产量会受到一定影响。
本文从成熟率检测方面入手,根据目前已有的多项有关成熟度检测的技术,最终采用机器视觉作为检测的主要技术方案。一方面,该装置能很好地提高番茄检测效率,实现智能化检测;另一方面,该装置可以汇总检测数据,获取每一批测试样本的成熟情况,农民能够根据样本数据,合理分配收获时间,保证收获质量。
该装置主要由STM32 单片机、OpenMV 摄像头、舵机、ESP32-CAM 模块组成,用传送带将番茄移动到检测区并进行分拣。
该装置以STM32 单片机作为主控核心。通过STM32 操控电机,控制传送带运输至检测区,进行下一步初步成熟度检测。OpenMV 置于传送带正上方用于图像采集和处理,并控制舵机在传送带末尾处进行产品成熟与未成熟的分拣,以此类推,第二段传送带对成熟的番茄进行高精度的成熟度检测,判断出成熟番茄是部分成熟、完全成熟还是过度成熟,具体系统流程图见图1。
图1 系统流程图
电机选用GB520 电机,驱动使用L298N,STM-32 可调控不同转速来控制传送带的运行速度。舵机选用MG995 舵机,舵机上安装一根分拣杆用于分拣,STM32 可输入不同脉冲宽度调制(PWM)占空比进行角度调控,控制番茄进入成熟区或非成熟区。
在此过程中,传输数据量仍然较大,所以图像传输选用ESP32CAM 模块,烧录进代码后可以通过电脑浏览器获取视频图像,实现对番茄成熟度情况的远程监控。
2.3.1 PID 算法
在该系统中,需要控制传送带的传输速度,采用PID 控制算法,根据应用功能不同,选用不同的PID 控制算法。
PID 控制公式为
式中:u(t)为控制器输出的控制量;Kp为比例系数;e(t)为偏差信号,等于给定量与输出量之差;Ti为积分时间常数;Td为微积分时间常量。
在计算机系统中,采集和处理的数据是离散的,因此需要对算法进行离散化处理,由此得到位置式PID 公式为
我国是一个农业大国,农业灌溉的用水量非常大,不仅造成了水资源的浪费,还不利于农业的发展。为了改变这一现状,部分地区采用农业节水灌溉技术,在很大程度上节约了水资源。
式中:K 为比例系数;ei为给定值与反馈值构成的控制偏差[1];T 为采样周期;Ti为积分时间;Td为微分时间;u0为偏差为零时的控制作用。
在式(2) 中,对PID 算法进行增量就可以得到增量式PID 公式为
最终,电机采用增量式PID 控制,通过速度闭环控制传送带传输速度恒定,保证检测时不会因为速度过快导致OpenMV 检测数据缺失。
2.3.2 图像处理
采用OpenMV 用作图像处理工作,采用的编译环境是OpenMVIDE。可在OpenMV 社区开源库中进行二次开发,使用门槛低[2]。
整个图像处理工作分为4 块。OpenMV 通过调节RGB 区数值设置图像感兴趣区,减少外界环境干扰;利用图像滤波进行除杂,使图像数据更趋于平滑;部署训练好的神经网络模型对番茄进行目标检测;获取番茄的大小形状颜色,作为数据统计。
1) 颜色数值选取。统计番茄果实形状短轴和长轴比值,当其大于0.7 时番茄形状圆形度较好,果实圆润[3]。当番茄果实近红色像素百分比30%番茄进入红熟前期,适于采摘且准备上市;近红色像素百分比50%,且纯红色像素百分比40%番茄进入红熟中期;近红色像素百分比80%且纯红色像素百分比70%时,番茄果实已经完全成熟,进入红熟后期且色泽饱满。
2) 加权均值滤波算法。加权均值滤波算法大体与灰度图像相同,将单个的灰度参数变为3 个参数(R,G,B)。加权均值滤波算法式均值滤波算法的改进,以3×3 矩阵为例[4]。
滤波模块见表1。
表1 滤波模块
鉴于该系统是对番茄成熟度的检测,应尽量保证保留图像的细节,W5取值应大一些,若需要去除噪音,W1-W9取值应平均一些。
3) 卷积神经网络(CNN)。根据现有的OpenMV 开源社区提供的CNN 框架,筛选谷歌提供的数据集中有关番茄的数据集,进行数据标注,在数据集中标注未成熟、部分成熟、完全成熟、过度成熟的4 级分类,制作成训练集。在官方平台上进行云端训练,最后将云端训练的模型部署在OpenMV 中进行测试。
4) 获取番茄数据。神经网络对番茄进行目标检测后,在图像中进行框选。通过番茄图像所在RGB 阈值分布得到颜色数据,根据颜色分布对整个番茄形状进行进一步框选,将框选数据导入形状识别函数进行形状判别。记录框选的番茄面积,作为后期估算番茄体积的数据考量。
络模型训练标注见图2,可进行标签数据集制作工作,模型训练完成后,将模型部署到OpenMV中进行测试。
图2 模型训练标注
番茄成熟度检测第一阶段的单个番茄监测图,见图3,对番茄的成熟度进行初步分类检测。
图3 单个番茄检测图
装置的操作选择界面,见图4,用户可以选择登录设备、进行调试工作,或者设置工作模式。
图4 选择界面
该用户操作设计的设备登录界面,见图5。
图5 设备登录界面
番茄成熟度第一阶段检测成果的一组成熟度数据展示,见图6,显示在屏幕上便于使用者观察。
图6 数据展示
本文介绍了一种基于机器视觉的番茄成熟度检测装置,该装置能应用在工厂流水线上进行产业化番茄成熟度检测,由单片机控制电机和舵机,进行番茄的传输和分拣工作。装置通过OpenMV 对番茄进行目标检测,并计算出成熟度。在数据通信方面选取了ESP32CAM 模块对番茄的成熟度情况进行记录,实现在云端数据观测和远程监控。该装置相较于目前的人工检测,极大地提升了生产效率,降低了检测成本,具有广阔的市场应用前景。