淡水鱼目标检测数据集 31类 2900张 鱼数据集带标注 voc yolo
淡水鱼目标检测数据集2900张 鱼数据集带标注 voc yolo
淡水鱼目标检测数据集介绍
数据集名称
淡水鱼目标检测数据集 (Freshwater Fish Object Detection Dataset)
数据集概述
该数据集是一个专为淡水鱼种类识别和目标检测任务设计的数据集,包含2,975张图像,涵盖了多种常见的淡水鱼类。每张图像都带有详细的边界框标注,适用于训练和评估基于YOLO系列的目标检测模型(如YOLOv5、YOLOv6、YOLOv7等)。通过使用这个数据集,研究人员和开发者可以创建能够高效识别和定位不同种类淡水鱼的系统,从而应用于渔业管理、生态监测等领域。
数据集规格
- 总图像数量:2,975张
- 标注格式:
- VOC格式:每个图像对应一个XML文件,包含边界框坐标及类别信息。
- YOLO格式:每个图像对应一个TXT文件,包含边界框坐标及类别ID。
- 分辨率:图像分辨率可能有所不同,但为了保证一致性,建议将所有图像调整至统一尺寸,如640x640或1280x1280像素。
数据集组成
- 类别:涵盖26种不同的淡水鱼类。
- 图像和标注:
- 每个图像都完全标注了对象的边界框,这对于训练深度学习模型以进行像素级的目标检测至关重要。
类别统计
-
鲶鱼 (Catfish): 82张图像,共84个实例
-
鲈鱼 (Perch): 77张图像,共81个实例
-
泥鳅 (Goby): 115张图像,共118个实例
-
草鱼 (Grass Carp): 170张图像,共170个实例
-
白鲢 (Silver Carp): 74张图像,共74个实例
-
银鲤 (Silver Barb): 85张图像,共98个实例
-
巴沙鱼 (Pangasius): 77张图像,共87个实例
-
罗非鱼 (Tilapia): 574张图像,共1,765个实例
-
鲻鱼 (Mullet): 78张图像,共86个实例
-
攀鲈 (Climbing Perch): 87张图像,共91个实例
-
太平洋大眼鲳 (Indo-Pacific Tarpon): 78张图像,共86个实例
-
清道夫鱼 (Janitor Fish): 80张图像,共88个实例
-
黑斑条鳅 (Black Spotted Barb): 75张图像,共76个实例
-
刀鱼 (Knifefish): 82张图像,共83个实例
-
白鲢 (Bangus): 72张图像,共81个实例
-
鳙鱼 (Big Head Carp): 70张图像,共77个实例
-
豹纹脂鲤 (Jaguar Gapote): 72张图像,共75个实例
-
泥鳅 (Mudfish): 55张图像,共55个实例
-
印度鲤 (Indian Carp): 73张图像,共75个实例
-
金鱼 (Gold Fish): 74张图像,共81个实例
-
四指马鲅 (Fourfinger Threadfish): 53张图像,共55个实例
-
鳗鲡 (Freshwater Eel): 73张图像,共77个实例
-
玻璃鲈 (Glass Perchlet): 84张图像,共89个实例
-
斗鱼 (Gourami): 83张图像,共87个实例
-
绿点河鲀 (Green Spotted Puffer): 59张图像,共60个实例
-
长吻管鱼 (Long-Snouted Pipefish): 81张图像,共84个实例
-
蚊鱼 (Mosquito Fish): 75张图像,共91个实例
-
鳢鱼 (Snakehead): 76张图像,共81个实例
-
刺尾鱼 (Scat Fish): 67张图像,共67个实例
-
银鲈 (Silver Perch): 79张图像,共80个实例
-
十磅鱼 (Tenpounder): 94张图像,共104个实例
-
总计 (total):2,975张图像,共4,306个实例
数据集结构
freshwater_fish_dataset/
├── images/ # 存放原始图像文件
│ ├── train/ # 训练集图像
│ ├── val/ # 验证集图像
│ └── test/ # 测试集图像
├── labels/ # 存放标注文件
│ ├── train/ # 训练集标注
│ ├── val/ # 验证集标注
│ └── test/ # 测试集标注
└── data.yaml # 数据集配置文件
images/
目录下存放的是原始图像文件。labels/
目录下存放的是对应的标注文件,包括VOC格式的XML文件和YOLO格式的TXT文件。
数据集配置文件 (data.yaml
)
# 训练集图像路径
train: path_to_your_train_images
# 验证集图像路径
val: path_to_your_val_images
# 测试集图像路径(如果有的话)
test: path_to_your_test_images# 类别数量
nc: 26
# 类别名称
names: ['Catfish','Perch','Goby','Grass Carp','Silver Carp','Silver Barb','Pangasius','Tilapia','Mullet','Climbing Perch','Indo-Pacific Tarpon','Janitor Fish','Black Spotted Barb','Knifefish','Bangus','Big Head Carp','Jaguar Gapote','Mudfish','Indian Carp','Gold Fish','Fourfinger Threadfish','Freshwater Eel','Glass Perchlet','Gourami','Green Spotted Puffer','Long-Snouted Pipefish','Mosquito Fish','Snakehead','Scat Fish','Silver Perch','Tenpounder'
]
使用说明
-
准备环境:
- 确保安装了必要的软件库以支持所选版本的目标检测模型。例如,对于YOLOv5,可以使用以下命令安装依赖库
pip install -r requirements.txt
- 确保安装了必要的软件库以支持所选版本的目标检测模型。例如,对于YOLOv5,可以使用以下命令安装依赖库
-
数据预处理:
- 将图像和标注文件分别放在相应的目录下。
- 修改配置文件中的路径以匹配你的数据集位置。
- 如果需要,可以使用脚本将VOC格式的标注文件转换为YOLO格式,或者反之。
-
修改配置文件:
- 更新
data.yaml
文件中的路径以反映正确的数据路径。 - 如果使用特定版本的YOLO或其他模型,还需要更新相应的模型配置文件(如
models/yolov5s.yaml
)。
- 更新
-
开始训练:
- 使用提供的训练脚本启动模型训练过程。例如,对于YOLOv5,可以使用以下命令进行训练:
python train.py --img 640 --batch 16 --epochs 100 --data data.yaml --weights yolov5s.pt
- 使用提供的训练脚本启动模型训练过程。例如,对于YOLOv5,可以使用以下命令进行训练:
-
性能评估:
- 训练完成后,使用验证集或测试集对模型进行评估,检查mAP等指标是否达到预期水平。例如,对于YOLOv5,可以使用以下命令进行评估:
python val.py --data data.yaml --weights runs/train/exp/weights/best.pt --img 640
- 训练完成后,使用验证集或测试集对模型进行评估,检查mAP等指标是否达到预期水平。例如,对于YOLOv5,可以使用以下命令进行评估:
-
部署应用:
- 将训练好的模型应用于实际场景中,实现淡水鱼种类的自动检测功能。例如,可以使用以下命令进行推理:
python detect.py --source path_to_your_test_images --weights runs/train/exp/weights/best.pt --conf 0.4
- 将训练好的模型应用于实际场景中,实现淡水鱼种类的自动检测功能。例如,可以使用以下命令进行推理:
注意事项
- 数据增强:可以通过调整数据增强策略来进一步提高模型性能,例如随机裁剪、旋转、亮度对比度调整等。
- 超参数调整:根据实际情况调整学习率、批大小等超参数,以获得最佳训练效果。
- 硬件要求:建议使用GPU进行训练,以加快训练速度。如果没有足够的计算资源,可以考虑使用云服务提供商的GPU实例。
- 平衡数据:注意数据集中各类别之间的不平衡问题,可以通过过采样、欠采样或使用类别权重等方式来解决。
- 复杂背景:图像中的背景可能非常复杂,因此在训练时需要注意模型对这些特性的适应性。
- 多目标检测:在同一张图像中可能同时出现多个目标(如多条鱼),确保模型能够正确区分并定位这些目标。
通过上述步骤,你可以成功地使用淡水鱼目标检测数据集进行多种计算机视觉任务的研究和开发。该数据集是目标检测领域的重要基准之一,广泛应用于监督学习中的标签数据提供,支持图像分类、目标检测识别等多类任务。