如何使用YOLOv5模型进行鱼类目标检测任务 鱼类目标检测数据集 yolo VOC 2848 张图像和一一对应的标注文件 10类 鳟鱼 鲟鱼 鲤鱼笋壳鱼等

常见鱼类目标检测数据集在这里插入图片描述

数据集是目标检测数据集,适用于yolo系列算法,数据集基于手动标注。在这里插入图片描述

数据集信息介绍:
共有 2848 张图像和一一对应的标注文件在这里插入图片描述

标注文件格式提供了两种,包括VOC格式的xml文件和YOLO格式的txt文件。

标注的对象共有以下几种:

[‘ide’, ‘sturgeon’, ‘sazan’, ‘lamprey’, ‘goby’, ‘catfish’, ‘acerina’, ‘escox’, ‘thymallus’, ‘perca’]

标注框的数量信息如下:(标注时一般是用英文标的,括号里提供标注对象的中文作为参考)

ide: 306 (鳟鱼)

sturgeon: 316( 鲟鱼)

sazan: 359(鲤鱼)

lamprey: 331(鳗鱼)

goby: 318(笋壳鱼)

catfish: 300(鲶鱼)

acerina: 301(河鲈)

escox: 322(狗鱼)

thymallus: 368(灰鳟)

perca: 355(鱖鱼)

图片分辨率:640*640

注:一张图里可能标注了多个对象,所以标注框总数可能会大于图片的总数。在这里插入图片描述
鱼类目标检测数据集,我们将详细介绍如何准备数据、训练模型、评估模型和可视化结果-使用YOLOv5模型进行鱼类目标检测任务,并提供完整的代码示例。

1. 环境准备

首先,确保你已经安装了必要的库和工具。你可以使用以下命令安装所需的库:

pip install torch torchvision
pip install numpy
pip install pandas
pip install matplotlib
pip install opencv-python
pip install albumentations
pip install tqdm
pip install pyyaml

2. 数据准备

假设你的数据集目录结构如下:

fish_detection_dataset/
├── images/
│   ├── train/
│   ├── val/
│   └── test/
├── labels/
│   ├── train/
│   ├── val/
│   └── test/

每个图像文件和对应的标签文件都以相同的文件名命名,例如 0001.jpg0001.txt

3. 创建数据加载器

YOLOv5已经内置了数据加载器,但我们仍然需要确保数据集的格式正确。YOLOv5的数据集配置文件通常是一个YAML文件,指定图像和标签的路径。

创建一个名为 data.yaml 的文件,内容如下:

train: ../fish_detection_dataset/images/train
val: ../fish_detection_dataset/images/val
test: ../fish_detection_dataset/images/test

nc: 10
names: ['ide', 'sturgeon', 'sazan', 'lamprey', 'goby', 'catfish', 'acerina', 'escox', 'thymallus', 'perca']

4. 安装YOLOv5

克隆YOLOv5仓库并安装依赖项:

git clone https://github.com/ultralytics/yolov5
cd yolov5
pip install -r requirements.txt

5. 训练模型

使用YOLOv5的训练脚本进行训练。确保你已经在 data.yaml 中指定了正确的路径。

python train.py --img 640 --batch 16 --epochs 100 --data data.yaml --weights yolov5s.pt

6. 评估模型

训练完成后,可以使用YOLOv5的评估脚本来评估模型在验证集上的性能。

python val.py --img 640 --data data.yaml --weights runs/train/exp/weights/best.pt

7. 可视化预测结果

使用以下Python代码来可视化模型的预测结果。

import torch
import cv2
import numpy as np
import matplotlib.pyplot as plt

# 加载模型
model = torch.hub.load('ultralytics/yolov5', 'custom', path='runs/train/exp/weights/best.pt')

# 读取图像
image_path = 'fish_detection_dataset/images/val/0001.jpg'
image = cv2.imread(image_path)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

# 进行预测
results = model(image)

# 绘制预测结果
results.print()
results.show()

8. 数据增强

YOLOv5内置了多种数据增强方法,你可以在 data.yaml 文件中指定数据增强策略,或者在训练脚本中添加数据增强参数。以下是一些常用的数据增强参数:

python train.py --img 640 --batch 16 --epochs 100 --data data.yaml --weights yolov5s.pt --hyp data/hyps/hyp.scratch-low.yaml

9. 模型优化

为了进一步优化模型,可以尝试以下方法:

  • 调整超参数:使用不同的学习率、批量大小、权重衰减等。
  • 使用预训练模型:使用预训练的YOLOv5模型作为初始化权重。
  • 增加数据量:通过数据增强或收集更多数据来增加训练集的多样性。
  • 模型融合:使用多个模型进行集成学习,提高预测的准确性。

10. 代码示例

以下是一个完整的代码示例,展示了如何从头开始训练和评估YOLOv5模型。

训练脚本
# 克隆YOLOv5仓库
git clone https://github.com/ultralytics/yolov5
cd yolov5

# 安装依赖项
pip install -r requirements.txt

# 创建数据集配置文件
cat <<EOL > data.yaml
train: ../fish_detection_dataset/images/train
val: ../fish_detection_dataset/images/val
test: ../fish_detection_dataset/images/test

nc: 10
names: ['ide', 'sturgeon', 'sazan', 'lamprey', 'goby', 'catfish', 'acerina', 'escox', 'thymallus', 'perca']
EOL

# 训练模型
python train.py --img 640 --batch 16 --epochs 100 --data data.yaml --weights yolov5s.pt
评估脚本
# 评估模型
python val.py --img 640 --data data.yaml --weights runs/train/exp/weights/best.pt
可视化脚本
import torch
import cv2
import numpy as np
import matplotlib.pyplot as plt

# 加载模型
model = torch.hub.load('ultralytics/yolov5', 'custom', path='runs/train/exp/weights/best.pt')

# 读取图像
image_path = 'fish_detection_dataset/images/val/0001.jpg'
image = cv2.imread(image_path)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

# 进行预测
results = model(image)

# 绘制预测结果
results.print()
results.show()

11. 总结

通过以上步骤,你可以成功地使用YOLOv5模型对鱼类目标检测数据集进行训练、评估和可视化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值