YOLOv8 模型训练轨道交通障碍物检测数据集 通过训练出的轨道交通安全道路障碍物数据集的权重 建立深度学习铁路轨道障碍物检测系统

YOLOv8 模型训练轨道交通障碍物检测数据集 通过训练出的轨道交通安全道路障碍物数据集的权重 建立深度学习铁路轨道障碍物检测系统


以下文字及代码仅供参考。
铁路障碍物检测数据集 轨道交通数据集
在这里插入图片描述


📊 一、数据集概览

属性内容
数据集名称铁路障碍物检测数据集(Railway Obstacle Detection Dataset)
图像数量3911 张
标注方式YOLO txt + VOC XML
类别数8 类
类别及标注数量
  • person: 5615
  • car: 9211
  • bus-truck: 897
  • other-vehicles: 186
  • turnout: 248
  • train: 1596
  • bicycle: 707
  • animal: 19

🧱 二、数据准备与组织结构

✅ 1. 数据目录结构

确保你的数据集按如下结构组织:

railway_dataset/
├── images/
│   ├── train/
│   ├── val/
│   └── test/
├── labels/
│   ├── train/
│   ├── val/
│   └── test/

每个图像文件对应一个 .txt 文件(YOLO 格式),内容为:

class_id x_center y_center width height

其中 class_id 范围是 0~7,对应以下类别:

names:
  - person
  - car
  - bus-truck
  - other-vehicles
  - turnout
  - train
  - bicycle
  - animal

✅ 2. 创建 data.yaml 文件

创建一个名为 data.yaml 的配置文件,用于 YOLOv8 训练:

train: railway_dataset/images/train/
val: railway_dataset/images/val/
test: railway_dataset/images/test/

nc: 8
names: ['person', 'car', 'bus-truck', 'other-vehicles', 'turnout', 'train', 'bicycle', 'animal']

🛠️ 三、环境搭建

安装 Ultralytics YOLOv8 环境:

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

# 安装依赖
pip install -r requirements.txt

🚀 四、模型训练

使用命令行进行训练:

yolo train data=data.yaml model=yolov8s.pt epochs=100 batch=16 imgsz=640
参数说明:
参数含义
data数据集配置文件路径
model使用的预训练模型权重(如 yolov8n/s/m/l/x)
epochs总训练轮次
batch批大小(根据显存调整)
imgsz输入图像尺寸(默认640x640)

🔍 五、推理与结果展示

✅ 单张图像推理:

from ultralytics import YOLO

# 加载最佳模型
model = YOLO('runs/train/exp/weights/best.pt')

# 推理单张图像
results = model('test_images/railway_001.jpg')

# 显示结果
for r in results:
    print(r.boxes)  # 输出预测框信息
    annotated_img = r.plot()
    cv2.imshow("Detection", annotated_img)
    cv2.waitKey(0)

✅ 视频流实时检测:

def detect_video(source=0):
    cap = cv2.VideoCapture(source)
    while cap.isOpened():
        ret, frame = cap.read()
        if not ret:
            break

        results = model(frame)
        annotated_frame = results[0].plot()

        cv2.imshow("Real-time Railway Detection", annotated_frame)
        if cv2.waitKey(1) == 27:  # ESC键退出
            break

    cap.release()
    cv2.destroyAllWindows()

📈 六、性能评估

使用验证命令评估 mAP、Recall、Precision 等指标:

yolo val data=data.yaml model=runs/train/exp/weights/best.pt imgsz=640

输出包括:

  • mAP@0.5
  • mAP@0.5:0.95
  • Precision / Recall 曲线
  • F1-score

📦 七、模型导出

将模型导出为 ONNX、TensorRT 或 OpenVINO 等格式以便部署:

yolo export model=runs/train/exp/weights/best.pt format=onnx

支持格式:onnx, engine, coreml, tflite, pb, pt


🧪 八、推荐训练技巧

技巧说明
数据增强使用 Mosaic、HSV、Flip 提高泛化能力
多尺度训练--multi-scale 可提升小目标检测效果(如动物)
类别不平衡处理动物类别仅19个样本,建议使用 focal loss 或重采样策略
自定义锚框如果轨道场景中目标分布特殊,可重新聚类生成 anchor

📌 九、总结

步骤工具/方法
数据整理统一格式、划分训练集
数据配置data.yaml
环境搭建Ultralytics YOLOv8
模型训练yolo train ...
推理测试model.predict()
性能评估yolo val ...
模型导出yolo export ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值