一、原文概述
摘要:图像识别技术在降低水产养殖劳动力成本,提升养殖精细化程度等方面发挥巨大作用,其在水产养殖中具有广阔的应用前景。目前水产养殖中的计数及种类识别工作多依赖人工,而养殖物运动轨迹提取人工更难以完成。本文针对上述应用场景,基于深度学习设计了两种图像识别算法。其中基于 Yolov5 及 DeepSORT 算法的水下鱼类轨迹提取及计数算法,针对鱼类形态特征,调整了 DeepSORT 中特征提取网络结构,提高了轨迹提取及计数准确率。该算法对鱼类轨迹提取及计数表现良好,目标检测模型 mAP 为 98.761%。另外基于 SSD 的鱼类种类识别算法,通过对一条鱼多帧图像的识别与置信度求和机制,综合多帧检测结果,提高水下鱼类识别的鲁棒性。
关键词:深度学习;轨迹提取;鱼类计数;物种识别
涉及三个模型:
- YOLOv5:逐帧检测
- DeepSORT:追踪
- SSD:分类
二、数据集与预处理
数据集 1:Labeled Fishes in the Wild(用于 YOLOv5 和 DeepSORT)
数据集获取
本章使用 National Marine Fisheries Service 制作的 Labeled Fishes in the Wild 数据集[13],该数据集由 Southwest Fisheries Science Center 在南加州近海的岩石海床环境调查期间,使用部署在遥控车辆 (ROV)上的前斜视数码相机收集。其中包含 929 张训练集图像,以及两段水下录像。由于原数据集标注时遗漏部分不明显的鱼类,且与 Yolov5 使用的数据接口不同,因此对原数据集进行了重新标注。
[13] Cutter, G.; Stierhoff, K.; Zeng, J. (2015) “Automated detection of rockfish in unconstrained underwater videos using Haar cascades and a new image dataset: labeled fishes in the wild,” IEEE Winter Conference on Applications of Computer Vision Workshops, pp. 57-62.
首先根据文章提到的公开数据集名称**“Labeled Fishes in the Wild”**,在Kagglel网址中搜索:

发现了官方的数据集网站:http://swfscdata.nmfs.noaa.gov/labeled-fishes-in-the-wild/

但网站已经没了:

所以找其他的鱼类检测的数据集,并且是基于视频的连续帧标记的。在数据集网站roboflow中搜索关键词:fish video,再选择类型为Object Detection,有很多结果。

这里先选一个我本地yolo格式的数据集跑通代码,随后根据任务需要再替换。
了解数据集的目录结构
YOLO训练的数据集有两种文件存储的目录结构:

我的样例数据集就是第一种分离式结构。

yaml文件
ultralytics是封装好的,数据集需要把信息写入yaml配置文件,在训练时用于指定数据集目录和类别信息。
path: C:\Users\Virgil\Desktop\YOLOv5-DeepSORT-SSD\dataset\ppq_sample_dataset\images
train: train
val: val
nc: 1
names:
- ball
数据集 2:作者手标的(用于DeepSORT)

这里先用其他的能获取到的开源数据集,跑通DeepSORT训练代码。
数据集获取:行人重识别数据集Market-1501
Re-ID 模型用于提取目标特征,需使用行人重识别数据集(如 Market-1501、CUHK03 等)。
Market-1501 数据集由清华大学在2015年提出,论文标题为 “Person Re-Identification Meets Image Search”。
简介:Market1501 数据集是行人重识别领域的重要资源,由6个摄像头捕获的1501个行人的图片组成。数据集分为训练集、测试集和query集,用于模型训练和评估。每个行人图片命名包含行人ID、摄像头编号、视频片段和帧信息。数据集结构包括训练图片、测试图片、手工标注图片和查询信息,用于模型训练和行人检索。

下载解压,发现就一个README和一个下载地址的txt。

最低0.47元/天 解锁文章
3360

被折叠的 条评论
为什么被折叠?



