当前位置: 首页 > article >正文

无人机和鸟数据集,无人机数据集+鸟数据集 yolo格式,可以直接用于模型的训练。7000张,图片自己打的标签 yolov5-yolov10通用

 无人机和鸟数据集,无人机数据集+鸟数据集 yolo格式,可以直接用于模型的训练。7000张,图片自己打的标签  yolov5-yolov10通用

  • 无人机及鸟类目标检测数据集
  • 规模
    • 总图像数量:约7,000张
  • 类别:2类检测目标
    • Drone:无人机
    • Bird:鸟类
  • 标注格式:YOLO txt格式
  • 用途:目标检测
  • 适用框架:YOLO系列目标检测算法(如YOLOv5到YOLOv10)
数据集特点
  • 高质量影像:所有图像均为高分辨率的图像,适合用于精确的目标检测。
  • 详细标注:每张图像都有详细的边界框标注,采用YOLO txt格式。
  • 多样性:包含多种环境和场景下的无人机和鸟类图像,适用于不同的应用场景。
  • 广泛适用性:支持多种深度学习框架,特别是YOLO系列模型。
数据集结构

UAV_BirdDataset/
├── images/  # 图像文件
│   ├── train/  # 训练集图像
│   │   ├── image_00001.jpg
│   │   ├── image_00002.jpg
│   │   └── ...
│   ├── val/  # 验证集图像
│   │   ├── image_00001.jpg
│   │   ├── image_00002.jpg
│   │   └── ...
│   └── test/  # 测试集图像
│       ├── image_00001.jpg
│       ├── image_00002.jpg
│       └── ...
├── labels/  # YOLO格式标签
│   ├── train/  # 训练集标签
│   │   ├── image_00001.txt
│   │   ├── image_00002.txt
│   │   └── ...
│   ├── val/  # 验证集标签
│   │   ├── image_00001.txt
│   │   ├── image_00002.txt
│   │   └── ...
│   └── test/  # 测试集标签
│       ├── image_00001.txt
│       ├── image_00002.txt
│       └── ...
└── data.yaml  # 数据配置文件
  • images/train/images/val/ 和 images/test/ 文件夹分别包含训练集、验证集和测试集的图像文件。
  • labels/train/labels/val/ 和 labels/test/ 文件夹分别包含每个图像对应的YOLO txt格式标签文件。
  • data.yaml 文件列出了数据集的基本信息和类别列表。
标注格式示例

每行表示一个物体的边界框和类别:

class_id cx cy w h
  • class_id:类别ID(0为无人机,1为鸟类)。
  • cx:目标框中心点x坐标 / 图像宽度。
  • cy:目标框中心点y坐标 / 图像高度。
  • w:目标框宽度 / 图像宽度。
  • h:目标框高度 / 图像高度。

例如:

0 0.453646 0.623148 0.234375 0.461111
1 0.250000 0.300000 0.150000 0.200000
使用该数据集进行模型训练
1. 数据预处理与加载

首先,我们需要加载数据并将其转换为适合YOLOv5等模型使用的格式。假设你已经安装了PyTorch和YOLOv5。

import os
from PIL import Image
import torch
from torch.utils.data import Dataset, DataLoader
from torchvision import transforms

class UAVBirdDataset(Dataset):
    def __init__(self, image_dir, label_dir, transform=None):
        self.image_dir = image_dir
        self.label_dir = label_dir
        self.transform = transform
        self.image_files = [f for f in os.listdir(image_dir) if f.endswith('.jpg')]

    def __len__(self):
        return len(self.image_files)

    def __getitem__(self, idx):
        img_name = self.image_files[idx]
        img_path = os.path.join(self.image_dir, img_name)
        label_path = os.path.join(self.label_dir, img_name.replace('.jpg', '.txt'))

        # 加载图像
        image = Image.open(img_path).convert('RGB')
        if self.transform:
            image = self.transform(image)

        # 加载标注
        with open(label_path, 'r') as f:
            lines = f.readlines()
        
        boxes = []
        labels = []
        for line in lines:
            class_id, cx, cy, w, h = map(float, line.strip().split())
            boxes.append([cx, cy, w, h])
            labels.append(int(class_id))

        boxes = torch.tensor(boxes, dtype=torch.float32)
        labels = torch.tensor(labels, dtype=torch.int64)

        return image, boxes, labels

# 数据增强
transform = transforms.Compose([
    transforms.Resize((640, 640)),
    transforms.ToTensor(),
])

# 创建数据集
train_dataset = UAVBirdDataset(image_dir='UAV_BirdDataset/images/train/', label_dir='UAV_BirdDataset/labels/train/', transform=transform)
val_dataset = UAVBirdDataset(image_dir='UAV_BirdDataset/images/val/', label_dir='UAV_BirdDataset/labels/val/', transform=transform)
test_dataset = UAVBirdDataset(image_dir='UAV_BirdDataset/images/test/', label_dir='UAV_BirdDataset/labels/test/', transform=transform)

train_loader = DataLoader(train_dataset, batch_size=4, shuffle=True, num_workers=4)
val_loader = DataLoader(val_dataset, batch_size=4, shuffle=False, num_workers=4)
test_loader = DataLoader(test_dataset, batch_size=4, shuffle=False, num_workers=4)
2. 构建模型

我们可以使用YOLOv5模型进行目标检测任务。假设你已经克隆了YOLOv5仓库,并按照其文档进行了环境设置。

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

创建数据配置文件 data/uav_bird.yaml

train: path/to/UAV_BirdDataset/images/train
val: path/to/UAV_BirdDataset/images/val
test: path/to/UAV_BirdDataset/images/test

nc: 2  # 类别数
names: ['Drone', 'Bird']
3. 训练模型

使用YOLOv5进行训练。

4. 评估模型

在验证集上评估模型性能

python val.py --img 640 --batch 16 --data data/uav_bird.yaml --weights runs/train/exp/weights/best.pt --task test
5. 推理

使用训练好的模型进行推理。

python detect.py --source path/to/test/image.jpg --weights runs/train/exp/weights/best.pt --conf 0.5

实验报告

实验报告应包括以下内容:

  1. 项目简介:简要描述项目的背景、目标和意义。
  2. 数据集介绍:详细介绍数据集的来源、规模、标注格式等。
  3. 模型选择与配置:说明选择的模型及其配置参数。
  4. 训练过程:记录训练过程中的损失变化、学习率调整等。
  5. 评估结果:展示模型在验证集上的性能指标(如mAP、准确率)。
  6. 可视化结果:提供一些典型样本的检测结果可视化图。
  7. 结论与讨论:总结实验结果,讨论可能的改进方向。
  8. 附录:包含代码片段、图表等补充材料。

依赖库

确保安装了以下依赖库:

pip install torch torchvision
pip install -r yolov5/requirements.txt

总结

这个无人机及鸟类目标检测数据集提供了丰富的标注数据,非常适合用于训练和评估目标检测模型。通过YOLOv5框架,可以方便地构建和训练高性能的目标检测模型。实验报告可以帮助你更好地理解和分析模型的表现,并为进一步的研究提供参考。


http://www.kler.cn/news/364159.html

相关文章:

  • 2023 ICPC 亚洲澳门赛区赛 D. Graph of Maximum Degree 3
  • 大数据生态守护:Hadoop的深度保护策略
  • 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(十二)拓展图优化库g2o(一)框架
  • ⑤sed流编辑器与awk文本处理工具——项目实训任务
  • mysql视图介绍(本质,修改数据时的表现,排序覆盖)
  • List、Set、数据结构、Collections
  • Echarts提示框(tooltip)浮层显示不全
  • mit6824-02-Lab1:MapReduce分布式实现
  • Spring--4
  • C++与现代开发实践第三节:多线程与并发编程
  • 充电器插拔引起电量跳变怎么办?
  • FPGA开发verilog语法基础1
  • springboot033小徐影城管理系统(论文+源码)_kaic
  • 【Jenkins】解决在Jenkins Agent节点容器内无法访问物理机的docker和docker compose的问题
  • 使用 Python 解析火狐浏览器的 SQLite3 数据库
  • C++,STL 047(24.10.24)
  • Mysql-count(1)、count(*)和count(列名)的区别?
  • Kafka Tool(Offset Explorer)在windows下配置访问kerberos认证Kafka
  • 【Ubuntu20.04 Visual Studio Code安装】【VSCODE】
  • 相对定位和绝对定位,使得图片在中间 ( html css )
  • Codeforces Round 981(Div. 3)
  • 【开源免费】基于SpringBoot+Vue.JS校园美食分享平台 (JAVA毕业设计)
  • [Python学习日记-53] Python 中的正则表达式模块 —— re
  • docker国内镜像仓库地址
  • Linux Shell 实现一键部署mariadb11.6
  • Hugging Face HUGS 加快了基于开放模型的AI应用的开发