基于Paddle Lite 的太湖莼菜检测测试平台设计

2024-02-21 04:06陶杰陈啟源朱恒通
电子制作 2024年3期
关键词:莼菜丝杆手动

陶杰,陈啟源,朱恒通

(苏州农业职业技术学院,江苏苏州,215008)

太湖莼菜是多年生水生植物,为苏州地方“水八仙”之一。口感鲜美,营养丰富,为珍贵蔬菜。莼菜在高温期间生长快,进入盛采期。因其长在水中,覆盖胶质,柔嫩易滑,需要采摘者技术熟练,眼明手快,苏州东山当地有“捉莼菜”的说法[1]。采摘工人要经受高温日晒、双手终日泡在水中的辛苦。熟练采摘工缺乏,来不及采摘的莼菜只能老去不能食用。目前莼菜种植面积日益萎缩,迫切需要智能化采摘设备跟进。

本文以苏州东湖莼菜厂的莼菜种植试验槽作为载体,以试验槽内5 月~9 月生长的莼菜作为识别对象,采用深度学习技术确定图像检测模型,实现莼菜智能化识别,设计适用的检测定位装置,为后期的莼菜采摘设备研制提供基础实验。

1 试验系统组成

测试系统主要包括载有水下摄像头的横向行走机构、竖向调整机构,可以沿种植槽移动,并上下调整摄像头位置。如图1 所示,水下摄像头通过10m 数据线连接到Andriod平板,实时识别检测到莼菜的位置后,将图片中最大目标的识别框坐标及宽、高参数,通过WiFi 发送到运动控制终端,运动控制终端驱动纵向、横向步进电机,带动纵向丝杆末端的摄像头在一定行程内移动,使得检测出的识别框位于图片正中位置。

图1 检测系统组成示意图

运动控制终端采用Arduino,连接串口转WiFi 模ESP8266,步进驱动FYQM302,其中纵向电机采用型号FY42EC220 丝杆电机,步距角为1.8°,丝杆直径8mm,导程4mm,保持力矩达到0.65Nm,丝杆行程400mm,并配置上限位开关KW12,作为丝杆零点位置。控制器接线如图2 所示,图中只标注了纵向电机驱动器的连线,横向电机驱动器接线类似。串口TXD、RXD 分别连接ESP8266 的R、T 引脚[2],实现串口连接。D5 作为输入引脚,连接行程开关一端,其另一端接地,由软件初始化设置其内部为上拉电阻;D8、D9、D10 作为输出引脚,分别接步进驱动器使能、方向、脉冲控制端。

图2 运动控制终端控制器接线示意

2 运动控制终端程序设计

运动控制终端,主要根据接收的WiFi 指令,完成两类运动控制。一是根据识别框坐标,自动调整,使得最大识别对象移动至图片中央位置;二是根据平板界面上的手动调整指令,横向移动、纵向移动。为保证通信正确,制定较完整的上层协议。上层数据帧格式规定如图3 所示。

图3

其中,起始符、结束符分别为02H、03H,各占1 字节;控制码对应各任务类型(如01H 表示自动运行情况、02H 表示手动横向运行启动、12H 表示手动横向运行停止;03H 表示手动纵向运行启动,13H 表示手动横向运行停止);数据域D 占用两个字节,在自动运行时,分别表示横向、纵向移动距离,在手动运行时,数据域首字节以0x00 填充,末字节表示运动方向,0x00 为正向,0x01 为反向。和校验CS 占1 字节,取其前3 字节之和的低字节值。

控制程序包括一个主控轮询程序,和一个定时中断子程序。控制器的主流程图如图4 所示,初始化时,两个电机均反转至限位开关触发,判定零点,依此计算出最大行程,在后续电机运动子程序中判断行程是否超限。设置串口的串口数据格式为8 位数据位、1 位停止位、1 位偶校验位,波特率设为115200。通过串口类库函数available(),判断串口2 缓冲是否有新的接收数据。如有对接收数据,校验合格后分析上层数据帧。根据指令码分析电机是自动运行或手动运行,由自动运行子程序根据执行步数计算电机的当前起停状况,手动运行子程序控制当前电机的起停状况。

图4 运动控制终端主流程图

定时中断子程序控制两个电机的脉冲输出状况,采用第三方库TimeAlarms 实现定时,由Alarm.timerRepeat()指令设定定时时间和中断回调函数[3]。中断子程序根据主程序中设定的情况,即时控制PWM和方向引脚上的电平状态。

3 莼菜检测模型训练

在苏州东山莼菜基地,采用桑巴达 Y102 水下摄像头收集种植槽内莼菜图片1000 余张,种植槽水深0.75m,图片采集位置位于水下0.1m 至0.6m,采集时间为夏季上午9:00 至下午16:00 光线较强时间段。图片经过筛选,标注识别对象,选择形态较好的、商品标准级别较高的、横向或纵向尺寸大于图片一半的莼菜进行标注识别对象,同一图片中若有多个符合要求的识别对象,选择尺寸最大的三个对象标注,多个标注可以部分重叠。并经过旋转、对称翻转等方法进行数据加强,最后选取1500 张图片,形成PaddlPaddle标准数据集。图片及识别对象标注框如图5所示。

图5 莼菜水下图像标注

由飞桨BML 全功能AI 开发平台训练,采用Python3.7,开发框架为paddlepaddle-v2.3.0,采用PPYOLO 算法,图片尺寸Inputsize 为320×320[4]。在建议阈值0.7 时,训练模型的评估指标F1-score 值识别准确率最大,F1-score=2*(P*R)/(P+R)。如图6 所示,训练模型的F1-score 值与阈值关系训练后的mMAP 98.8%,精确率P=99.0%,召回率R=98.5%,满足种植槽水下环境的一般检测需要。

图6 不同阈值下的F1-score 值

就莼菜采摘任务而言,莼菜不需要完全采干净,适当保留嫩叶有助于莼菜生长,采摘过程中尽量不要采错,以减少后期挑拣任务。所以提高阈值,模型中阈值可设置为0.9。

4 Andriod 端程序编写

通过Paddle Lite 离线转换工具,将Paddle 检测模型优化为适合的Paddle Lite模型,Paddle Lite 是一种轻量级、灵活性强、易于扩展的高性能的深度学习预测框架,支持诸如 ARM 等多种终端,具有图优化及预测加速能力[5]。本项目在paddle 提供的检测案例程序更新检测模型,实现检测功能。为后续的案例模型替换方便,使用平台提供的opt 工具,优化后的模型文件名设置为model.nb,与案例中原模型同名。

在Andriod Studio 中配置最新版本的NDK 和CMake,下 载Paddle Lite 预测库 和模型案例,在Andriod Studio 中打开,编译并安装案例APP,测试案例的图片识别和标注。成功后,进行检测案例内容替换更改,主要是识别模型和参数更改;编写需要新增的操控程序。

从github.com/PaddlePaddle/Paddle-Lite 平台上下载检测案例。在Andriod Studio 中打开,参照平 台教程,根 据Android demo 示例的代码结构提示,将优化后的检测模型在原案例路径下以相同名字替换,以及对应的识别模型标签文件。本项目中训练模型中检测对象只有莼菜这一类,还需要更改输出案例中的 tensor 个数、更新输出 shape。

在识别函数Detector::Postprocess(std::vector*results)方法中更新模型的输出。识别函数的输出results 属性包括检测框的左上点的坐标值x、y,以及识别框的宽高值w、h,调试成功后,根据检测输出结果,编写其他控制程序。

根据操控要求,更改主界面设计,增加手动、自动切换开关,以及手动控制的点动按钮,包括上、下、左、右方向,编写对应的切换状态及点动状态设置程序;另外需要根据增加检测控制程序,实现根据操作状态和检测结果、发送对应的运动指令的功能,程序流程图如图7 所示。

图7 平板主界面程序主流程图

初始化加载界面,设置WiFi连接参数,连接水下摄像头。自动状态下通过摄像头视频进行图像检测后,如果图片有超过1 个检测结果,实时读取目标框坐标的x、y、w、h 参数,通过w*h 计算,可以判断选取出最大目标框作为运动控制目标,根据识别框参数,换算出识别框的中心位置坐标后,计算出目标框中心点坐标与图片中心坐标的差值,即可计算距离中心点的横向、纵向距离;通过WiFi 发送自动指令,输出两个方向的运动行程,运动控制终端调整。设计实时误差值在10 个点像素内,即为到达目标点。如果控制终端上电机丝杠到行程极限,停止运行并发送报警。在手动状态下,根据主界面上的四个点动按钮的交互状态,选择步进电机的纵向、横向点动方向,通过WiFi 发送点动控制指令,由运动控制终端默认点动行程距离运行。如电机丝杆达到行程极限,同样会停止运行并发送报警。终端界面在接收到报警显示自动、手动的报警信息。

5 试验效果及总结

经过Andriod 编程调试,先在平板上测试图片检测,并校验电机运转,调整限位开关位置,确保电机运行可靠,超过最大行程停止并报警。之后在种植槽上进行试验,每次自动检测后,手动复位电机丝杆。转移装置到新检测位置后,再次自动测试。自动运行中,可以进行多次检测目标,当检测完成检测框显示居中后,可以手动巡视,出现新目标后,再次切换到自动状态,由装置自动进行新的居中运动。现场测试效果如图8 所示。左图是自动检测定位前识别图,右图是摄像头自动居中移位效果。

图8 检测定位对比效果图

实际试验过程中,丝杆运动带来水流扰动,导致图片采集有干扰,降低电机运转速度,可以减少水流干扰,相对较好地完成预期目标,实现行程范围内的摄像头居中定位,为后续的采摘方案提供试验参考基础。由于系统尚未设计调速功能,只可以借助驱动器的细分开关,设置细分状态手动调整运动速度。后续需要在控制界面增加速度调整交互功能,运动控制终端调速程序,并进一步深化研究,根据图像拍摄及检测状况,实现自动调整速度的功能。

猜你喜欢
莼菜丝杆手动
机车电缆用特种橡胶混炼设备
一种利用铁做还原剂的有色金属冶炼压料装置
石柱县莼菜种植现状及引种试验
一种便于拆卸的塑料瓶注塑用模具
“绿色”的莼菜
莼菜多糖的分离、纯化及结构初步研究
利川莼菜发展概况及建议
小巧手动起来
风行S5001.6L手动尊享型
宝骏5601.8L手动豪华型