如何使用YOLOv5来训练——建筑工地安全图像数据集,并附上详细的训练代码和 ...

打印 上一主题 下一主题

主题 978|帖子 978|积分 2934

如何使用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格式
数据集构造

假设你的数据集目录结构如下:
  1. construction_site_safety_dataset/
  2. ├── train/
  3. │   ├── images/
  4. │   └── labels/
  5. ├── valid/
  6. │   ├── images/
  7. │   └── labels/
  8. ├── test/
  9. │   ├── images/
  10. │   └── labels/
  11. └── data.yaml  # 数据配置文件
复制代码
此中:


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

创建或确认data.yaml文件是否精确设置了数据集路径和类别信息:
  1. train: ./train/images/  # 训练集图像路径
  2. val: ./valid/images/  # 验证集图像路径
  3. test: ./test/images/  # 测试集图像路径
  4. # Classes
  5. nc: 10  # 类别数量
  6. names:
  7.   - safety_helmet
  8.   - face_mask
  9.   - no_safety_helmet
  10.   - no_face_mask
  11.   - no_safety_vest
  12.   - person
  13.   - safety_cone
  14.   - safety_vest
  15.   - machine
  16.   - vehicle  # 类别名称列表
复制代码
安装YOLOv5

如果你还没有安装YOLOv5,可以使用以下命令安装:
  1. pip install yolov5
复制代码
训练模型

使用YOLOv5训练模型的命令非常简单,你可以直接使用以下命令开始训练:
  1. [/code] [code]cd path/to/construction_site_safety_dataset/
  2. # 克隆YOLOv5仓库
  3. git clone https://github.com/ultralytics/yolov5.git
  4. cd yolov5
  5. # 下载预训练权重
  6. wget https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5s.pt
  7. # 开始训练
  8. 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:使用缓存以加快训练速度。
模型评估

训练完成后,可以使用以下命令评估模型在验证集上的体现:
  1. python val.py --data ../data.yaml --weights runs/train/exp/weights/best.pt --img 640
复制代码
这里的runs/train/exp/weights/best.pt是训练过程中产生的最佳模型权重文件。
模型猜测

你可以使用训练好的模型对新图像进行猜测:
  1. 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/目录下,你可以查看训练过程中的损失、精度等信息。
数据增强

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

  • 安装albumentations库:
    1. pip install -U albumentations
    复制代码
  • 在train.py中添加数据增强:
    1. import albumentations as A
    2. from albumentations.pytorch import ToTensorV2
    3. import cv2
    4. # 定义数据增强
    5. transform = A.Compose([
    6.     A.RandomSizedBBoxSafeCrop(width=640, height=640, erosion_rate=0.2),
    7.     A.HorizontalFlip(p=0.5),
    8.     A.VerticalFlip(p=0.5),
    9.     A.Rotate(limit=10, p=0.5, border_mode=cv2.BORDER_CONSTANT),
    10.     A.ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2, hue=0.2, p=0.5),
    11.     A.GaussNoise(var_limit=(10.0, 50.0), p=0.5),
    12.     A.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
    13.     ToTensorV2()
    14. ], bbox_params=A.BboxParams(format='yolo', label_fields=['class_labels']))
    15. # 在数据加载器中应用数据增强
    16. def collate_fn(batch):
    17.     images, targets = zip(*batch)
    18.     transformed_images = []
    19.     transformed_targets = []
    20.     for img, target in zip(images, targets):
    21.         bboxes = target['bboxes']
    22.         class_labels = target['labels']
    23.         augmented = transform(image=img, bboxes=bboxes, class_labels=class_labels)
    24.         transformed_images.append(augmented['image'])
    25.         transformed_targets.append({
    26.             'bboxes': augmented['bboxes'],
    27.             'labels': augmented['class_labels']
    28.         })
    29.     return torch.stack(transformed_images), transformed_targets
    复制代码
留意事项



  • 数据集质量:确保数据集的质量,包罗清晰度、标注正确性等。
  • 模型选择:可以选择更强盛的模型版本(如YOLOv5m、YOLOv5l等)以提高性能。
  • 超参数调整:根据实际情况调整超参数,如批量巨细(batch-size)、图像巨细(imgsz)等。
  • 监控性能:训练过程中监控损失函数和mAP指标,确保模型收敛。
通过上述步调,你可以使用YOLOv5来训练一个建筑工地安全图像数据集,并使用训练好的模型进行猜测

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

石小疯

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表