如何使用监控视角下的睡岗岗位数据集 睡觉数据集 工作睡觉数据集来训练YOLOv8目标检测模型 2类 map50为80.6% 525张 yolo格式
·
睡岗数据集。
数据集中有相当一部分图片是监控摄像头下的真实画面。数据集已经标注好,txt格式,yolo格式,适用于训练yolo系列目标检测模型。
数据集已经划分好训练集420张,验证集105张,包含类别标签文件,数据集分为两类:sleep、unsleep。数据集亲测可用,yolov8m实测map50为80.6%
好的,让我们详细介绍这个睡岗数据集,并展示如何使用它来训练YOLOv8目标检测模型。以下是详细的步骤和代码示例。

数据集介绍

基本信息
- 类别:
sleep和unsleep - 格式: 图片(JPEG/PNG)和标注文件(TXT)
- 标注格式: YOLO 格式(类别ID 中心X 中心Y 宽度 高度)
- 划分:
- 训练集: 420 张图片
- 验证集: 105 张图片
- 性能: 使用YOLOv8m实测 mAP@0.5 为 80.6%
数据集结构
假设数据集的目录结构如下:

sleep_detection_dataset/
├── images/
│ ├── train/
│ │ ├── img1.jpg
│ │ ├── img2.jpg
│ │ └── ...
│ └── val/
│ ├── img1.jpg
│ ├── img2.jpg
│ └── ...
├── labels/
│ ├── train/
│ │ ├── img1.txt
│ │ ├── img2.txt
│ │ └── ...
│ └── val/
│ ├── img1.txt
│ ├── img2.txt
│ └── ...
├── data.yaml
└── README.md
类别标签文件 (data.yaml)
如何训练YOLOv8模型
我们将使用Ultralytics的YOLOv8库来进行训练。以下是详细步骤:
-
安装依赖项
首先,确保你已经安装了必要的Python库:
pip install ultralytics opencv-python -
准备数据集
确保你的数据集目录结构如上述所示,并且
data.yaml文件正确配置。 -
编写训练脚本
创建一个训练脚本来启动训练过程。
[<title=“YOLOv8 训练脚本”>]
from ultralytics import YOLO # 加载预训练的YOLOv8m模型 model = YOLO('yolov8m.pt') # 训练模型 results = model.train( data='sleep_detection_dataset/data.yaml', epochs=50, batch=16, imgsz=640, save_period=-1, # 不保存中间权重 project='runs/detect/sleep_detection', name='yolov8m_sleep' ) -
运行训练脚本
在终端中运行训练脚本:
python train_yolov8.py -
评估模型
训练完成后,可以使用验证集评估模型性能。
[<title=“YOLOv8 评估脚本”>]
from ultralytics import YOLO # 加载训练好的模型 model = YOLO('runs/detect/sleep_detection/yolov8m_sleep/weights/best.pt') # 评估模型 metrics = model.val(data='sleep_detection_dataset/data.yaml') print(metrics) -
推理与测试
使用训练好的模型进行推理和测试。
[<title=“YOLOv8 推理脚本”>]
from ultralytics import YOLO import cv2 # 加载训练好的模型 model = YOLO('runs/detect/sleep_detection/yolov8m_sleep/weights/best.pt') # 读取图像 image_path = 'path/to/test/image.jpg' img = cv2.imread(image_path) # 进行预测 results = model(img) # 显示结果 for result in results: boxes = result.boxes.cpu().numpy() for box in boxes: r = box.xyxy[0].astype(int) cls = int(box.cls[0]) conf = box.conf[0] label = f'{model.names[cls]} {conf:.2f}' cv2.rectangle(img, (r[0], r[1]), (r[2], r[3]), (0, 255, 0), 2) cv2.putText(img, label, (r[0], r[1] - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2) cv2.imshow('Inference Result', img) cv2.waitKey(0) cv2.destroyAllWindows()
可视化训练结果
你可以使用Ultralytics提供的工具来可视化训练过程中的损失曲线、mAP等指标。
tensorboard --logdir runs/detect/sleep_detection/yolov8m_sleep
总结
。这个模型能够有效地识别监控摄像头下的“睡岗”和“非睡岗”状态。希望这些详细的信息和代码示例对你有所帮助
更多推荐

所有评论(0)