当前位置:首页 > 专题范文 > 公文范文 >

基于YOLOv5的水下机器人鱼类病害检测系统

时间:2023-06-14 08:35:03 来源:网友投稿

舒 航,林志文,周际琳,唐 静

成都工业学院自动化与电气工程学院,成都 611730

我国水产养殖业发展迅速,规模逐年递增,然而在快速发展的背后,水产养殖业也面临着严峻的挑战,目前,传统的水产养殖行业中鱼类病害防治不科学,导致养殖场死鱼率升高,养殖成本增加。因此,传统水产养殖业的养殖技术迫切地需要向稳产保供、创新增效的方向进行转型与升级[1]。

针对水产养殖行业提升生产效率、降低养殖成本,陈子文等[2]提出的基于YOLOv5 算法的目标检测方法,能够对所养殖的虾类进行无接触的目标图像检测与计数,准确率高,但其更多地适用于工厂化养殖,且不能较好地解决水产品病害检测识别的问题;
对于鱼类等水产品病害检测,尹银平等[3]设计构建的Fuzzy 推理诊断系统能够取得较好的水产品病害检测效果,但其编程操作较为复杂,所需输入的目标识别物特征参数较多,在输入参数的过程中容易因人为因素导致输入数据不准确而产生误差,不能较好地达到快速检测识别水产品病害的目的。因此,对传统水产养殖行业而言,为其养殖过程中提供精准可靠的水产品病害视觉识别系统尤为重要。

随着计算机视觉检测技术与智能识别技术的发展,各类检测算法大量涌现,其中YOLOv5 目标检测算法应用广泛,该算法对于工业生产、产品分类以及特征识别方面效果良好[4-6],可适用于更多实际生产领域。针对水产行业,视觉检测和图像分析技术在水产品特征识别中应用广泛,通过图像分析技术能够对水产品进行合理分类,也能对水产品的品质进行检测;
同时也能对水中鱼类动向、特定行为进行目标检测,能够准确识别鱼类水产品的水下动作行为,有效提高水产品的生产自动化水平[2-3]。

本文设计了一种基于YOLOv5 目标识别算法的鱼类病害检测系统,结合避障模块、信息采集模块、WI-FI 模块、动力驱动模块,控制水下机器人实现对养殖水域的鱼群进行病害监测,达到在养殖过程中有效检测鱼类病害的目的。

YOLOv5 是目前与实际场景和工程应用最契合的算法,作为目前单阶段检测算法的典型代表,YOLOv5 拥有编程简单,对图像特征分析精准且快速的优点[7]。其模型布局与YOLOv3、YOLOv4 一致,整体结构可分为Input、Backbone、Neck、Output 四个部分,具体结构如图1 所示。

图1 YOLOv5 的结构

养殖过程中对鱼类病害检测的流程为:①图像预处理(Input);
②主干特征提取(Backbone);
③多尺度特征融合(Neck);
④图像输出(Output)。

1.1 图像输入处理

采用自制数据集,有草鱼、鲤以及水箱观赏鱼等鱼类图片样本共104 张,其中正常样本68 张,病害样本36 张。将所有样本随机划分为训练集与测试集,其中训练集占比80%,测试集占比20%。从不同角度、游动姿态、鱼群干扰以及不同光照条件的情况下,对鱼类水霉病、烂身、掉鳞片三类病害进行检测。

在Input 部分,首先对所输入的图像样本,随机选用4 张图片,进行随机裁剪,然后再拼接到一张图片上。具体操作如图2 所示,设定图片裁剪尺寸为S,取尺寸大小为4S 的框图,在尺寸为S 的蓝色限定矩形区域内随机选一点作为图像拼接点,放入4 张图片进行图像拼接,得到新的图片,以此可以丰富试验的数据集,提升模型对于多样性学习的能力。结合自适应瞄框计算、自适应图片缩放,计算预测框与真实框两者之差,再反向更新网络。通过不断更新预测框和真实框的差值,反向更新网络的参数,独立计算最优锚框值,利用自适应缩放图片去除图像信息干扰,降低误差。总体上减少系统计算量,提升检测速度,更有利于检测鱼类的病害。

图2 图像拼接原理

1.2 主干特征提取

在Backbone 部分,主要由Focus 和CSP 两大结构组成,利用Focus 结构对原始输入的608×608×3图像进行切片、卷积操作,将其转换为304×304×32的特征图,可以降低图像模型计算量,加快网络训练速度,得到特征图,利用CSPDarkNet53 将基础层的特征映射划分,然后进行跨层融合,丰富特征图,保证准确率。

1.3 多尺度特征融合

在Neck 部分,由特征金字塔网络和像素聚合网络组成,Neck 网络作为图像特征聚合层,经过特征金字塔网络采样即自上而下的特征采样,能够提高低层特征的传输,增强对各类不同比例大小的检测识别,能够精确识别不同种类鱼类的病害特征。

1.4 图像输出

在Output 部分,采用边框损失函数GIOULOSS[8],GIOU 框型示意图如图3 所示,其中A 表示算法预测目标框,B 表示真实目标框,C 表示包含A 和B的最小矩形框,IOU 表示预测框重叠区域,具体公式如式(1)、式(2)所示。

图3 GIOU 边框示意

系统整体设计如图4 所示,水下机器人总体设计方案分为动力驱动模块、避障模块、信息采集模块、WI-FI 模块4 个模块,控制核心采用树莓派4B和STM32F401,通过水下机器人对鱼类进行目标病害检测,即动力驱动模块使水下机器人在水下移动,由信息采集模块通过树莓派上连接的摄像头对鱼类图像实时采集,通过树莓派对图像信息预处理后,再由WI-FI 模块将所检测到的信息传回到控制终端,由控制终端通过训练好的算法模型进行处理,进而回传到可视化操作界面上达到检测鱼类病害的目的。

图4 水下机器人总体工作框架

2.1 控制核心

各硬件模块基于树莓派4B 和STM32F401 进行设计。

树莓派4B 集成arm7l、1.5 GHz 运行的64 位四核处理器,4 GB RAM、2.4/5.0 GHz 双频无线WLAN、蓝牙5.0/BLE、POE,使用Linux32 位系统,具有上限高、可操作性强等优点。在系统中主要实现图像信息处理与分析、图像回传等功能。

STM32F401 控制器采用32 位RAM 核心处理芯片,同时集成了arm32 位Cortex-m4 的软硬件以及内核。其优点在于其经济性好、能耗少,在系统中实现测距、避障等功能。

2.2 避障模块

本设计选用HC-SR04 超声波测距模块,采用6个超声波装置模块,分别安装在水下机器人上下、前后、左右6 个方位,以实现全方位立体探测机器人各方位障碍物的功能。

该模块通过与STM32F401 的信号传输实现检测障碍物并控制水下机器人精准避障的功能,机器人水下运行时,通过串口触发测距,该模块发出方波信号,而后判断是否检测到回波,当检测到回波时,根据信号传输持续时间计算障碍物距离,反馈至控制核心。并与动力驱动模块配合,当距离障碍物小于0.5 m 时,停止驱动,进行转向实现避障。

2.3 动力驱动模块

动力驱动模块主要由6 个推进器组成,推进器通过I/O 口与控制核心连接。控制核心通过控制各推进器的开启/关闭状态实现对机器的前进、转向和下潜等动作的控制。其中,机器人前后分别连接2个推进器,主要控制前进、后退、左转、右转,机身两侧共2 个推进器负责机器的上升下潜,如图5 所示。推进器配合动力系统控制机器人运动速度。

图5 水下机器人推进器的配置

2.4 信息采集模块

信息采集模块主要选用树莓派原装摄像头,通过树莓派4B 的SCI 接口与摄像头连接,摄像头以感光芯片为核心,利用差分数据信号端口传输图像,通过模数转换进行输出[9]。

系统整体控制流程如图6 所示。

图6 水下机器人整体控制流程

水下机器人检测系统采用VNC Client 进行远程控制。VNC 由客户端VNC Viewer 和服务器端的VNC Server 组成,其控制原理如图7 所示,VNC 将被控制端的操作界面,通过X 协议将其运行在VNC Server 的桌面中,然后通过RFB 协议在远程的Viewer 中实现控制[10]。

图7 VNC 控制原理

系统由机器人采集图像数据,数据通过串联端口传输到水下机器人的控制核心,再由控制核心通过WI-FI 模块利用2.4 GHz 频段将所收集到的鱼病的相关图像数据信息传输到终端服务器,由终端服务器传输到可视化操作界面,再由上位机(PC)联网通过VNC Viewer 对机器人发出指令进行控制,工作流程如图8 所示。

图8 水下机器人远程控制流程

鱼类病害检测选用树莓派4B 作为试验平台;
计算机作为训练平台进行鱼类检测测试。试验所选训练运行环境如表1 所示。

表1 试验训练运行环境

训练结果采用准确率和召回率作为评价指标。

准确率(Precision)即对于所用数据集中,模型正确预测的目标样本和总样本数之比,计算公式如式(3);
召回率(Recall)即样本中所需识别的样本被正确预测识别的比率,计算公式如式(4)。

式(3)、式(4)中,TP表示模型所需识别的目标样本正确识别的数量,FP即为将不需要识别的样本识别为所需的目标样本或未识别到的样本个数,FN表示将所需识别的正确目标样本识别为不需要识别的样本的数量。

通过对原始数据集进行训练,所得准确率和召回率随着训练轮数变化的试验结果如图9 所示。

图9 目标检测准确率和召回率试验结果数据

本次试验从鱼群图像采集角度、鱼的游动姿态、鱼群中对目标的识别以及不同光照条件下进行了检测试验,部分检测图片结果如图10 所示。

图10 水下机器人部分检测图片

从召回率与准确率2 项指标来看,YOLOv5 检测算法训练在达到200 轮后开始达到稳定,在训练400 轮左右开始逐渐趋于稳定,识别效果好,识别准确率高,系统网络模型检测准确率可达94%以上,对于养殖过程中鱼类病害能够有效识别,系统测试结果如表2 所示。

表2 水下机器人系统测试结果

本文设计的一种基于YOLOv5 的水下机器人鱼类病害检测系统,系统基于YOLOv5 算法对目标进行图像特征采集,进行多个尺度的图像特征融合,可以提升对水下鱼类病害检测的效率和精度,有效检测出所养殖鱼类的病害从而及时采取防治措施降低养殖成本,对于提升养殖效率、推进水产养殖智能化有显著作用。

猜你喜欢树莓鱼类病害基于MFCC和ResNet的鱼类行为识别海洋信息技术与应用(2022年1期)2022-06-05早春养羊需防六大病害今日农业(2022年3期)2022-06-05小麦常见三种病害咋防治今日农业(2021年8期)2021-11-28葡萄病害周年防治历烟台果树(2021年2期)2021-07-21果树休眠期咋防病害今日农业(2020年19期)2020-11-06鱼类运动会儿童时代·幸福宝宝(2020年9期)2020-09-08基于树莓派的骑行智能头盔设计电子制作(2019年11期)2019-07-04基于树莓派的远程家居控制系统的设计电子制作(2017年17期)2017-12-18鱼类是怎样保护自己的金色少年(奇趣科普)(2016年8期)2016-09-21响应面法优化红树莓酒发酵工艺中国酿造(2016年12期)2016-03-01

推荐访问:病害 鱼类 水下