YOLO模型如何训练道路缺陷和裂缝分割数据集(包含两类,缺陷和裂缝)

YOLO道路缺陷和裂缝分割数据集(包含两类,缺陷和裂缝)

数据集详情

  • 检测类别:
    Crack
    pothole

  • 图片总量:4682张

  • 训练集:4101张

  • 验证集:386张

  • 测试集:195张

  • 标注状态:全部已标注,即拿即用

  • 数据格式:支持YOLO格式及其他格式
    1

YOLO道路缺陷和裂缝分割数据集

一、数据集信息表

项目详细说明
数据集名称YOLO道路缺陷和裂缝分割数据集
图片总量4682 张
数据集划分训练集:4101 张
验证集:386 张
测试集:195 张
检测/分割类别(共2类)0: Crack(裂缝)
1: pothole(坑洼/道路缺陷)
标注状态全部已标注,开箱即用
数据格式标准YOLO格式,同时兼容多种主流标注格式,可按需转换
适用场景道路巡检、桥梁隧道运维、公路养护、AI目标检测/分割模型训练、计算机视觉实训、毕业设计

二、应用场景

  1. 道路日常巡检:自动识别路面裂缝、坑洼等缺陷,辅助公路养护部门开展常态化巡检。
  2. 桥梁隧道运维:对路面病害进行快速普查,评估道路安全状况,为维修决策提供数据支撑。
  3. 自动驾驶感知:辅助识别路面缺陷,提升车辆行驶安全性。
  4. AI模型训练:用于YOLO系列目标检测/分割模型训练、算法优化、对比实验。
  5. 教学与项目开发:计算机视觉课程设计、毕业设计、行业项目实战。

三、核心标签

#道路缺陷检测#裂缝分割#YOLO数据集#公路养护#目标检测#AI训练数据集#路面病害识别


四、数据集目录结构

road_defect_dataset/ ├── images/ │ ├── train/ │ ├── val/ │ └── test/ ├── labels/ │ ├── train/ │ ├── val/ │ └── test/ └── road_defect.yaml

五、数据集配置文件road_defect.yaml

path:./road_defect_datasettrain:images/trainval:images/valtest:images/testnc:2names:0:Crack1:pothole

六、环境依赖

pipinstallultralytics torch opencv-python

七、模型训练代码train_road_defect.py

fromultralyticsimportYOLOdefmain():# 加载YOLO预训练模型(支持YOLOv8/YOLOv11等版本)# 如需做分割任务,可加载分割模型如 yolov8s-seg.ptmodel=YOLO("yolov8s.pt")# 开始训练train_results=model.train(data="./road_defect_dataset/road_defect.yaml",epochs=100,imgsz=640,batch=16,device=0,# 有GPU填设备编号,无GPU改为 device="cpu"workers=4,patience=15,project="runs/train",name="road_defect_detect",exist_ok=True,pretrained=True)print("训练完成,权重保存路径:runs/train/road_defect_detect/weights")# 模型评估metrics=model.val(data="./road_defect_dataset/road_defect.yaml",split="test")print(f"mAP@50:{metrics.box.map50:.4f}")print(f"mAP@50-95:{metrics.box.map:.4f}")if__name__=="__main__":main()

八、推理测试代码predict_road_defect.py

fromultralyticsimportYOLOimportcv2# 加载训练好的最优模型model=YOLO("runs/train/road_defect_detect/weights/best.pt")if__name__=="__main__":img_path="road_test.jpg"# 执行检测/分割并保存结果results=model.predict(source=img_path,conf=0.25,iou=0.45,save=True)# 可视化结果detect_img=results[0].plot()cv2.imshow("Road Defect Detection",detect_img)cv2.waitKey(0)cv2.destroyAllWindows()