YOLOv8 模型训练轨道交通障碍物检测数据集 通过训练出的轨道交通安全道路障碍物数据集的权重 建立深度学习铁路轨道障碍物检测系统
YOLOv8 模型训练轨道交通障碍物检测数据集 通过训练出的轨道交通安全道路障碍物数据集的权重 建立深度学习铁路轨道障碍物检测系统
文章目录
- 📊 一、数据集概览
- 🧱 二、数据准备与组织结构
- ✅ 1. 数据目录结构
- ✅ 2. 创建 data.yaml 文件
- 🛠️ 三、环境搭建
- 🚀 四、模型训练
- 使用命令行进行训练:
- 参数说明:
- 🔍 五、推理与结果展示
- ✅ 单张图像推理:
- ✅ 视频流实时检测:
- 📈 六、性能评估
- 📦 七、模型导出
- 🧪 八、推荐训练技巧
- 📌 九、总结
以下文字及代码仅供参考。
铁路障碍物检测数据集 轨道交通数据集
📊 一、数据集概览
| 属性 | 内容 |
|---|---|
| 数据集名称 | 铁路障碍物检测数据集(Railway Obstacle Detection Dataset) |
| 图像数量 | 3911 张 |
| 标注方式 | YOLO txt + VOC XML |
| 类别数 | 8 类 |
| 类别及标注数量 |
|
🧱 二、数据准备与组织结构
✅ 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:8names:['person','car','bus-truck','other-vehicles','turnout','train','bicycle','animal']🛠️ 三、环境搭建
安装 Ultralytics YOLOv8 环境:
# 克隆仓库gitclone https://github.com/ultralytics/ultralytics.gitcdultralytics# 安装依赖pipinstall-rrequirements.txt🚀 四、模型训练
使用命令行进行训练:
yolo traindata=data.yamlmodel=yolov8s.ptepochs=100batch=16imgsz=640参数说明:
| 参数 | 含义 |
|---|---|
data | 数据集配置文件路径 |
model | 使用的预训练模型权重(如 yolov8n/s/m/l/x) |
epochs | 总训练轮次 |
batch | 批大小(根据显存调整) |
imgsz | 输入图像尺寸(默认640x640) |
🔍 五、推理与结果展示
✅ 单张图像推理:
fromultralyticsimportYOLO# 加载最佳模型model=YOLO('runs/train/exp/weights/best.pt')# 推理单张图像results=model('test_images/railway_001.jpg')# 显示结果forrinresults:print(r.boxes)# 输出预测框信息annotated_img=r.plot()cv2.imshow("Detection",annotated_img)cv2.waitKey(0)✅ 视频流实时检测:
defdetect_video(source=0):cap=cv2.VideoCapture(source)whilecap.isOpened():ret,frame=cap.read()ifnotret:breakresults=model(frame)annotated_frame=results[0].plot()cv2.imshow("Real-time Railway Detection",annotated_frame)ifcv2.waitKey(1)==27:# ESC键退出breakcap.release()cv2.destroyAllWindows()📈 六、性能评估
使用验证命令评估 mAP、Recall、Precision 等指标:
yolo valdata=data.yamlmodel=runs/train/exp/weights/best.ptimgsz=640输出包括:
mAP@0.5mAP@0.5:0.95- Precision / Recall 曲线
- F1-score
📦 七、模型导出
将模型导出为 ONNX、TensorRT 或 OpenVINO 等格式以便部署:
yoloexportmodel=runs/train/exp/weights/best.ptformat=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 ... |
