APP下载

基于YOLOv5的复杂场景鱼苗数量检测技术研究与应用

2024-07-24孔得溦陈义明

电脑知识与技术 2024年17期

摘要:针对复杂场景下传统鱼苗统计费时费力的问题,本文提出了一种基于 YOLOv5的数量检测方法,实现了智能、准确、高效的鱼苗数量统计。该方法基于自主采集的鱼苗数据构建训练数据集,通过应用 YOLOv5 算法实现鱼苗数量智能统计模型。结果显示,无论光照条件变化还是鱼群密度变化,该方法均具有较高的准确性和鲁棒性。同时,本文结合J2EE 相关技术,探讨其在实际水产养殖中的应用价值,为智能水产养殖提供了新的技术支撑和解决方案。

关键词:YOLOv5;目标检测;智能水产养殖;鱼苗计数

中图分类号:TP392 文献标识码:A

文章编号:1009-3044(2024)17-0022-03 开放科学(资源服务)标识码(OSID) :

0 引言

作为历史悠久的水产养殖大国,淡水养鱼是我国水产养殖的重要组成部分之一[1]。相关数据显示,2022年我国淡水产品产量达3 303.1万吨,占水产品总产量的49.37%,其中鱼类的总产量高达2 732.3万吨,占我国淡水产品的82.72%[2]。显然,淡水养鱼在水产养殖乃至国民经济中仍具有举足轻重的地位。然而,随着淡水养殖业的迅猛发展,传统的养殖方式已无法满足渔民日常养殖需求,尤其在面对规模化、精细化养殖场景时,显得捉襟见肘。以淡水鱼养殖为例,为有效掌握鱼苗养殖密度并合理投放饲料,渔民多采用人工计数和计算,这种粗放型养殖方式不仅耗时费力,而且准确率不高[3]。

在此背景下,如何利用信息技术实现高效、准确的鱼苗计数,进而助力渔场的科学管控与精准投放,有效提升渔场管理能力和效率,已成为当前智慧养殖行业的重点研究课题。近年来,随着养殖行业的不断发展,传统渔业养殖与新兴技术结合的模式不断被探索并广泛应用,其中基于深度学习技术与养殖业的结合就是一个典型代表。2024 年,涂雪滢等人利用ResNet34 模型实现了大菱鲆鱼苗识别方法,并取得了较好的效果[4];周典卓等人则使用边缘曲率对图像进行分割,从而实现高密度条件下的鱼苗计数[5];黎袁富等人使用 YOLOX 实现了水箱中的鱼苗识别和计数[6];杨昱皞等人采用视频分析方式对鱼苗进行计数,实现了鱼苗数量的统计[7]。

本文基于 YOLOv5 算法,在自主采集和标注的鱼苗计数数据集上,构建鱼苗数量智能检测模型,实现复杂场景下的鱼苗数量统计。具体工作如下:1) 构建复杂场景下的鱼苗数量检测数据集。2) 训练复杂场景下的鱼苗数量智能检测模型。3) 设计复杂场景下的鱼苗智能检测系统。

1 数据集与检测模型

1.1 数据集

本次实验研究的目标是识别并检测不同场景下鱼池中的鱼苗数量,属于目标检测类型任务。然而,与传统目标检测任务不同的是,拍摄照片的光照强度、方向、鱼池中鱼苗密度分布情况和水质等因素,均会影响该任务的准确率。因此,为保障模型的识别效果、增强模型的鲁棒性和准确率,项目组通过自主采集的方式构建了复杂场景下鱼苗数量检测数据集。

具体操作步骤如下:首先,项目组成员在不同场景下对不同鱼池进行了实景拍摄。在拍摄过程中,采用了不同型号的相机,在不同角度、不同光照、不同水质和不同时间的条件下进行拍照,以保证采集数据的复杂性。通过上述方式,共采集到1 901张大小为2 560×1 440的鱼苗数据图片。其数据样例图如图1所示。

其次,为了扩大鱼苗数量检测数据集的规模,避免出现过拟合现象,项目组采用随机翻转、随机亮度和对比度调整以及拉伸等多种方式组合实现图片的扩充,从而达到数据增强的目的。通过上述变换,鱼苗数量检测数据集的规模从初始的1 901张扩展到目前的3 685张。

再者,使用目标检测任务中常用的开源数据标注工具——labelme实现鱼苗数据标注。由于鱼苗个体狭长细小,且头尾大小不一,项目组在实际数据标注过程中仅框选鱼苗个体的头部,而不是整个鱼苗,从而有效避免鱼苗密度过大时多个鱼苗个体交叉影响。其标注示意图如图2所示。

最后,通过数据处理方式,按照YOLO数据集的构建规范,完成了鱼苗数量检测数据集的构建。由于自构建的复杂场景下鱼苗数量检测数据集规模较小,为增加有效训练次数,本数据集未设置验证集,并将训练集和测试集以8∶2的比例随机生成。自主构建的鱼苗数量检测数据集统计信息如表1所示。

1.2 检测模型

尽管现阶段存在多种针对鱼苗数量识别检测的方法,但在复杂场景下进行鱼苗数量检测的准确率和实用性仍不尽如人意。然而,YOLO系列算法在近期目标检测任务中表现异常活跃,取得了令人瞩目的成果,并广泛应用于各个领域[8]。尤其是YOLOv5,其体积小、速度快、精度高等优势,使其备受广大研究者的青睐。本次鱼苗数量智能检测本质上是一种目标检测任务,因此,YOLOv5成为研究鱼苗数量检测模型的首选。

本次实验基于已构建的数据集和基础YOLOv5算法,在Windows 11环境下进行。实验设备的CPU为i5-13400F 2.50 GHz,RAM 为16GB,显卡为NVIDIAGeForce RTX 3060 Ti,显存为8G,使用的深度学习框架为PyTorch,版本为1.13.1,Python版本为3.7.12。结合鱼苗数据检测任务的实际情况,设置训练的超参数如下:训练的epochs为500,批次大小为16,图片尺寸为640×640,学习率为0.01,优化算法为SGD。

在本次实验中,为了准确衡量和评估鱼苗数量检测模型的性能,项目组采用mAP(mean Average Preci⁃sion) 和F1值作为评价指标。

其中,mAP是一种计算平均精确度的指标,通常应用于多类别的模型检测任务[9],其计算公式如式(1) :

其中,APi为第i 类的平均精确度,N 为类别总数。

另外,mAP 值除了描述平均精确度外,还可以描述多个阈值参数下的表现情况,即刻画不同交并比下模型的性能。一般来说,模型检测任务的交并比取值范围为[0.5,0.95],因此,该值是本次实验的重要衡量标准。

而F1值则是精确率与召回率综合考虑的评价指标[10],其计算公式如式(2) :

式(3) 、式(4) 中的TP、FP、FN 分别表示真正例、假正例、假反例。

由式2可知,F1的取值范围为[0,1],该值越大,表示效果越好。

训练的结果图如图3所示。

由图3可见,模型在训练初期就快速提升了准确率,并在50个批次左右达到稳定状态。经过数据统计得知,训练在208次时触发早停,且在epoch=69时,得到了最佳结果。其各项指标数据表现均具有较高水平,具体统计指标如下:准确率为94.25%,召回率为94.33%,F1值为94.17%,检测的mAP@0.5为93.99%,mAP@0.5:0.9为40.22%。

复杂场景中鱼苗数量智能检测模型的检测效果如图4、图5所示。从图4可以看出,尽管鱼苗密度分布不均匀,但模型仍能准确而有效地识别鱼苗头部并进行计数,其识别的准确性和置信度均处于较高水平。而对于有明显反光场景的鱼苗照片,如图5所示,模型的识别仍然表现出较好的效果。

实验表明,经过训练后的复杂场景鱼苗数量智能检测模型性能优越,能够有效解决无法科学管控、精准投放的问题,对渔场管理效率的提高有极大帮助。模型的高准确率及可靠性使其在实际应用中具有较高的实用价值。

2 系统设计

为了进一步推动智能水产养殖领域的发展,项目组在实现复杂场景下鱼苗数量智能检测模型后,还对该模型的实际应用进行了深入探索。具体而言,项目组在训练模型的基础上,结合J2EE相关技术,设计了复杂场景鱼苗数量智能检测系统。该系统业务系统框架如图5所示,主要包含鱼苗计数模型、应用系统、小程序拍照、识别结果四大模块。

鱼苗计数模型是本系统的核心模块。通过YO⁃LOv5在自主构建的复杂场景下鱼苗数量检测数据集上进行训练,并通过TorchServe工具将模型发布成可供应用的API服务,为鱼苗数量智能检测系统提供基础支撑。

应用系统则采用JAVA语言,在Spring Boot和My⁃Batis框架的基础上,完成用户认证、用户管理、模型调用、历史数据管理等业务流程操作,为鱼苗数量智能检测系统提供业务服务支撑。

小程序拍照上传和识别结果模块构建于微信小程序之上,通过微信小程序进行鱼苗数量智能检测的业务操作以及数据呈现界面,直接面向用户。具体而言,用户可直接进入鱼苗数量智能检测微信小程序,通过系统拍照功能,随时随地拍摄鱼池鱼苗照片并上传。后台应用系统在线调用鱼苗数量检测模型,并即时展示鱼苗数量,帮助用户实时、高效、准确地掌握鱼池鱼苗数量情况。当然,为了丰富应用场景,降低由于光照强度、角度等环境因素的影响,系统在设计时,还支持拍照自由切换摄像头、自由开启或关闭闪光灯等操作,从而弥补自然环境带来的不足。另外,为了降低用户操作难度,帮助用户正确、准确地使用鱼苗数量智能检测小程序,并提高鱼苗数量智能检测模型的性能,系统在对应位置提供了鱼苗数量检测拍照技巧,以便减少鱼苗数量智能检测模型识别的错误率,提升实际应用效果。

为了增强系统的可用性以及丰富系统功能,系统还提供了微信用户自动注册、信息自动拉取、历史识别记录查阅等功能,便于自动形成历史数据台账,为渔民鱼池的历史数据分析提供支撑。

3 结束语

本文首先基于YOLOv5算法,在自建鱼苗数量检测数据集上构建了复杂场景下鱼苗数量智能检测模型,实现了快速且准确的鱼苗数量检测功能。其次,结合J2EE技术,设计了复杂场景鱼苗数量智能检测系统,实现了模型的应用。实验和实践表明,基于YOLOv5的复杂场景鱼苗数量智能检测技术不仅有效解决了传统渔场无法快速、准确识别鱼苗数量的问题,还为渔场的精细化管理提供了有力支撑,对后续智慧水产的发展具有重要意义。

参考文献:

[1] 陈倩,罗红,赵永锋.发展生态养殖 促进大水面渔业可持续发展[J].科学养鱼,2022(1):20-23.

[2] 中华人民共和国国家统计局.中国统计年鉴[M].北京:中国统计出版社, 2022.

[3] 刘康.基于深度学习的鱼苗自动计数方法的研究与实现[D].马鞍山:安徽工业大学,2021.

[4] 涂雪滢,钱程,刘世晶,等.基于ResNet34模型的大菱鲆鱼苗识别计数方法[J].渔业现代化,2024,51(1):90-97.

[5] 周典卓,谭鹤群,朱明,等.采用边缘曲率进行图像分割的高密度鱼苗计数方法[J].农业工程学报,2023,39(21):258-268.

[6] 黎袁富,杜家豪,莫家浩,等.基于YOLOX的鱼苗检测与计数[J].电子元器件与信息技术,2022,6(5):192-194.

[7] 杨昱皞,王书献,孙永文,等.基于视频分析技术的鱼苗计数装置设计与试验[J].农业技术与装备,2021(7):21-24.

[8] 张言利.基于YOLOv5的人脸检测及关键点定位的研究和实现[J].现代信息科技,2023,7(23):69-72.

[9] 马宏兴,董凯兵,王英菲,等.基于改进YOLO v5s的轻量化植物识别模型研究[J].农业机械学报,2023,54(8):267-276.

[10] 徐凤如,张昆明,张武,等.一种基于改进YOLOv4算法的茶树芽叶采摘点识别及定位方法[J].复旦学报(自然科学版),2022,61(4):460-471.

【通联编辑:唐一东】