使用LabelImg标注数据集及在Yolov5中划分训练集和验证集

作者:KAKAKA2024.04.02 10:21浏览量:18

简介:本文将介绍如何使用LabelImg工具标注自己的数据集,并详细阐述如何在Yolov5项目中划分训练集和验证集,从而有效地训练和优化目标检测模型。

千帆应用开发平台“智能体Pro”全新上线 限时免费体验

面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用

立即体验

一、使用LabelImg标注数据集

  1. 安装LabelImg

    在开始之前,您需要安装LabelImg工具。LabelImg是一个图像标注工具,用于创建目标检测、图像分割等任务所需的数据集。您可以通过pip轻松安装:

    1. pip install labelimg
  2. 准备图像数据

    将需要标注的图片放在一个文件夹中。LabelImg会从这个文件夹中读取图片进行标注。

  3. 启动LabelImg

    在命令行中运行LabelImg:

    1. labelimg

    这将启动一个图形用户界面(GUI),您可以通过这个界面来标注图片。

  4. 标注图片

    在GUI中,打开需要标注的图片,然后使用鼠标绘制边界框(bounding box)来标注目标对象。您可以为每个对象指定类别,并输入相应的类别名称。

  5. 保存标注数据

    标注完成后,LabelImg会生成一个XML文件,其中包含每个图片中所有标注对象的边界框坐标和类别信息。通常,每个图片会对应一个XML文件,保存在与图片相同的目录下。

  6. 转换标注格式(可选)

    Yolov5通常使用COCO格式的数据集,因此您可能需要将LabelImg生成的XML格式转换为COCO格式。这可以通过编写脚本来实现,或者使用现成的工具如xml_to_coco.py

二、在Yolov5中划分训练集和验证集

  1. 准备数据集结构

    确保您的数据集目录结构符合Yolov5的要求。通常,数据集应该包含imageslabelsyaml三个文件夹,分别存放图片、标注文件和配置文件。

  2. 划分数据集

    您可以使用Python脚本来随机划分数据集为训练集和验证集。以下是一个简单的示例脚本,用于将数据集划分为80%的训练集和20%的验证集:

    1. import os
    2. import shutil
    3. import random
    4. def split_dataset(src_dir, train_dir, val_dir, split_ratio=0.8):
    5. if not os.path.exists(train_dir):
    6. os.makedirs(train_dir)
    7. if not os.path.exists(val_dir):
    8. os.makedirs(val_dir)
    9. files = os.listdir(src_dir)
    10. random.shuffle(files)
    11. train_count = int(len(files) * split_ratio)
    12. train_files = files[:train_count]
    13. val_files = files[train_count:]
    14. for file in train_files:
    15. shutil.copy(os.path.join(src_dir, file), train_dir)
    16. for file in val_files:
    17. shutil.copy(os.path.join(src_dir, file), val_dir)
    18. # 使用示例
    19. src_dir = 'path/to/your/dataset' # 原始数据集目录
    20. train_dir = 'path/to/your/dataset/train' # 训练集目录
    21. val_dir = 'path/to/your/dataset/val' # 验证集目录
    22. split_dataset(src_dir, train_dir, val_dir)

    执行此脚本后,您将拥有两个子目录:一个用于训练,另一个用于验证。确保您还更新data.yamlcoco.yaml配置文件,以反映新的训练集和验证集路径。

  3. 修改配置文件

    在Yolov5的data目录下,找到相应的.yaml配置文件(例如coco.yaml或您自定义的.yaml文件),并更新trainval字段的路径,以指向您刚刚划分的训练集和验证集目录。

  4. 开始训练

    使用Yolov5的训练命令来开始训练您的模型。确保您已经安装了所有必要的依赖项,并且您的环境配置正确。

    1. python train.py --img 640 --batch 16 --epochs 100 --data your_dataset.yaml --weights yolov5s.pt --name your_model
article bottom image

相关文章推荐

发表评论