首页 > 其他分享 >如何使用YOLOv5来训练——建筑工地安全图像数据集,并附上详细的训练代码和步骤。这个数据集包含10个类别,标注为YOLO格式。安全帽面罩安全锥等数据集进行检测yolov5-v10通用

如何使用YOLOv5来训练——建筑工地安全图像数据集,并附上详细的训练代码和步骤。这个数据集包含10个类别,标注为YOLO格式。安全帽面罩安全锥等数据集进行检测yolov5-v10通用

时间:2024-11-06 18:45:02浏览次数:5  
标签:训练 安全帽 -- train 图像 images 数据

如何使用YOLOv5来训练——建筑工地安全图像数据集,并附上详细的训练代码和步骤。这个数据集包含10个类别,标注为YOLO格式。安全帽面罩安全锥等数据集进行检测

建筑工地安全行为图像数据集
yolo格式
0:“安全帽”,1:“面罩”,2:“无安全帽”、3:“无面罩”、4:“无安全背心”、5:“人”、6:“安全锥”、7:“安全背心”,8:“机械”,9:“车辆”
train(2605)val(114)test(82)

 

如何使用YOLOv5来训练一个包含建筑工地安全图像的数据集,并附上详细的训练代码和步骤。这个数据集包含10个类别,标注为YOLO格式。

数据集描述

  • 数据量
    • 训练集:2605张图像
    • 验证集:114张图像
    • 测试集:82张图像
  • 类别
    • 0: 安全帽(Safety Helmet)
    • 1: 面罩(Face Mask)
    • 2: 无安全帽(No Safety Helmet)
    • 3: 无面罩(No Face Mask)
    • 4: 无安全背心(No Safety Vest)
    • 5: 人(Person)
    • 6: 安全锥(Safety Cone)
    • 7: 安全背心(Safety Vest)
    • 8: 机械(Machine)
    • 9: 车辆(Vehicle)
  • 标注格式:YOLO格式

数据集组织

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

construction_site_safety_dataset/
├── train/
│   ├── images/
│   └── labels/
├── valid/
│   ├── images/
│   └── labels/
├── test/
│   ├── images/
│   └── labels/
└── data.yaml  # 数据配置文件

其中:

  • train/ 包含训练集的图像和TXT标签文件。
  • valid/ 包含验证集的图像和TXT标签文件。
  • test/ 包含测试集的图像和TXT标签文件。
  • data.yaml 包含数据配置信息。

数据配置文件

创建或确认data.yaml文件是否正确配置了数据集路径和类别信息:

train: ./train/images/  # 训练集图像路径
val: ./valid/images/  # 验证集图像路径
test: ./test/images/  # 测试集图像路径

# Classes
nc: 10  # 类别数量
names: 
  - safety_helmet
  - face_mask
  - no_safety_helmet
  - no_face_mask
  - no_safety_vest
  - person
  - safety_cone
  - safety_vest
  - machine
  - vehicle  # 类别名称列表

安装YOLOv5

如果你还没有安装YOLOv5,可以使用以下命令安装:

pip install yolov5

训练模型

使用YOLOv5训练模型的命令非常简单,你可以直接使用以下命令开始训练:


cd path/to/construction_site_safety_dataset/

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

# 下载预训练权重
wget https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5s.pt

# 开始训练
python train.py --img 640 --batch 16 --epochs 100 --data ../data.yaml --weights yolov5s.pt --cache

在这个命令中:

  • --img 640:输入图像的大小。
  • --batch 16:批量大小。
  • --epochs 100:训练轮数。
  • --data ../data.yaml:指定数据配置文件。
  • --weights yolov5s.pt:指定预训练权重。
  • --cache:使用缓存以加快训练速度。

模型评估

训练完成后,可以使用以下命令评估模型在验证集上的表现:

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

这里的runs/train/exp/weights/best.pt是训练过程中产生的最佳模型权重文件。

模型预测

你可以使用训练好的模型对新图像进行预测:

python detect.py --source path/to/your/image.jpg --weights runs/train/exp/weights/best.pt --img 640 --conf 0.4 --iou 0.5

查看训练结果

训练过程中的日志和结果会保存在runs/train/目录下,你可以查看训练过程中的损失、精度等信息。

数据增强

为了进一步提高模型性能,可以使用数据增强技术。以下是一个简单的数据增强示例:

  1. 安装albumentations库:

    pip install -U albumentations
  2. train.py中添加数据增强:

    import albumentations as A
    from albumentations.pytorch import ToTensorV2
    import cv2
    
    # 定义数据增强
    transform = A.Compose([
        A.RandomSizedBBoxSafeCrop(width=640, height=640, erosion_rate=0.2),
        A.HorizontalFlip(p=0.5),
        A.VerticalFlip(p=0.5),
        A.Rotate(limit=10, p=0.5, border_mode=cv2.BORDER_CONSTANT),
        A.ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2, hue=0.2, p=0.5),
        A.GaussNoise(var_limit=(10.0, 50.0), p=0.5),
        A.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
        ToTensorV2()
    ], bbox_params=A.BboxParams(format='yolo', label_fields=['class_labels']))
    
    # 在数据加载器中应用数据增强
    def collate_fn(batch):
        images, targets = zip(*batch)
        transformed_images = []
        transformed_targets = []
    
        for img, target in zip(images, targets):
            bboxes = target['bboxes']
            class_labels = target['labels']
            augmented = transform(image=img, bboxes=bboxes, class_labels=class_labels)
            transformed_images.append(augmented['image'])
            transformed_targets.append({
                'bboxes': augmented['bboxes'],
                'labels': augmented['class_labels']
            })
    
        return torch.stack(transformed_images), transformed_targets

注意事项

  • 数据集质量:确保数据集的质量,包括清晰度、标注准确性等。
  • 模型选择:可以选择更强大的模型版本(如YOLOv5m、YOLOv5l等)以提高性能。
  • 超参数调整:根据实际情况调整超参数,如批量大小(batch-size)、图像大小(imgsz)等。
  • 监控性能:训练过程中监控损失函数和mAP指标,确保模型收敛。

通过上述步骤,你可以使用YOLOv5来训练一个建筑工地安全图像数据集,并使用训练好的模型进行预测

标签:训练,安全帽,--,train,图像,images,数据
From: https://blog.csdn.net/2401_88440984/article/details/143421807

相关文章

  • 如何使用深度学习框架(PyTorch)来训练——147913张图像的超大超详细垃圾分类数据集,并附
    超大超详细垃圾分类数据集(分类,分类),共4大类,345小类,147913张图,已全部分类标注完成,共12GB。厨余垃圾76小类35058张可回收物195类86116张其他垃圾53类16156张有害垃圾18小类10583张 如何使用深度学习框架(如PyTorch)来训练一个包含147913张图像的超大超详细垃圾分类......
  • 使用YOLOv5来训练——井盖状态检测数据集,并使用训练好的模型进行预测井盖状态检测数据
    井盖状态检测数据集yolo格式五种类别:broke(井盖破损),good(完好),circle(边圈破损),lose(井盖丢失),uncovered(井盖位移/未覆盖全)训练数据已划分,配置文件稍做路径改动即可训练。训练集:1217验证集:108 使用YOLOv5来训练一个包含1217张训练图像和108张验证图像的井盖状态检......
  • 数据结构树与二叉树
    语雀链接:https://www.yuque.com/g/wushi-ls7km/ga9rkw/qw8kwzxigbx61kxy/collaborator/join?token=2vdSjDBgJyJb0VSL&source=doc_collaborator#《树与二叉树》......
  • python球探数据分析
    Python球探数据分析入门指南作为一名刚入行的小白,你可能会对如何使用Python进行球探数据分析感到困惑。不用担心,这篇文章将为你提供一份详细的入门指南,帮助你逐步掌握这项技能。流程概览首先,让我们通过一个表格来了解整个数据分析的流程:步骤描述1获取数据2数据......
  • FPGA实现复杂状态机的跳转-判断标准数据帧
    填补之前的状态机跳转挖的坑;数据源对比标准帧:第一步:ROM当做数据源:使能开启,使用地址addr控制其输出。(使用状态机写入RAM时的控制选用addr)RAM作为标准帧的缓存,使用addr_ram作为RAM的写入地址。此时ROM的地址比RAM的地址延迟了一个节拍;(addr_ram<=addr;)第二步:RAM缓存写满之......
  • CDGP|数据治理如何落地?多角度详细探讨
    数据治理是一个长期且复杂的体系化工程,它通过一系列流程规范、制度、IT能力以及持续运营等机制来保障治理工作的持续推进。落地数据治理需要从多个方面入手,本文将从组织建设、流程规范、IT平台以及持续运营等角度详细探讨。一、建立数据治理组织数据治理需要打破企业内部壁......
  • 高效数据集成:从旺店通到金蝶云
    旺店通·旗舰奇门数据集成到金蝶云星空:柏为销售出库单07.25在现代企业的运营中,数据的高效流转和准确对接是确保业务顺畅运行的关键。本文将分享一个实际案例——如何通过轻易云数据集成平台,将旺店通·旗舰奇门的数据无缝集成到金蝶云星空系统中。具体方案名称为“柏为销售出库单......
  • odoo中对多条数据按条件进行分类汇总 read_group的用法总结并抽取出公式
    今天在工作中遇到一个这样的问题。要求:做一个打印模板实现下面图中的分类汇总 py3o://for="oinobject.delivery_containers_line.read_group(domain=[('delivery_order_id','=',object.id)],fields=['customer_id','delivery_order_id','sales_order_......
  • 基于数据可视化的房屋租赁财务管家微信小程序设计和实现(源码+论文+部署)
     目录:目录:博主介绍: 完整视频演示:你应该选择我技术栈介绍:需求分析:系统各功能实现一览:1.注册2.登录部分代码参考: 项目功能分析: 项目论文:源码获取:博主介绍: ......
  • 基于数据可视化的智能房租收付管理微信小程序设计和实现(源码+论文+部署)
     目录:目录:博主介绍: 完整视频演示:你应该选择我技术栈介绍:需求分析:系统各功能实现一览:1.注册2.登录部分代码参考: 项目功能分析: 项目论文:源码获取:博主介绍: ......