YOLO模型如何训练道路缺陷和裂缝分割数据集(包含两类,缺陷和裂缝)
📅 2026/7/26 14:45:59
👁️ 阅读次数
📝 编程学习
YOLO道路缺陷和裂缝分割数据集(包含两类,缺陷和裂缝)
数据集详情
检测类别:
Crack
pothole图片总量:4682张
训练集:4101张
验证集:386张
测试集:195张
标注状态:全部已标注,即拿即用
数据格式:支持YOLO格式及其他格式
1
YOLO道路缺陷和裂缝分割数据集
一、数据集信息表
| 项目 | 详细说明 |
|---|---|
| 数据集名称 | YOLO道路缺陷和裂缝分割数据集 |
| 图片总量 | 4682 张 |
| 数据集划分 | 训练集:4101 张 验证集:386 张 测试集:195 张 |
| 检测/分割类别(共2类) | 0: Crack(裂缝) 1: pothole(坑洼/道路缺陷) |
| 标注状态 | 全部已标注,开箱即用 |
| 数据格式 | 标准YOLO格式,同时兼容多种主流标注格式,可按需转换 |
| 适用场景 | 道路巡检、桥梁隧道运维、公路养护、AI目标检测/分割模型训练、计算机视觉实训、毕业设计 |
二、应用场景
- 道路日常巡检:自动识别路面裂缝、坑洼等缺陷,辅助公路养护部门开展常态化巡检。
- 桥梁隧道运维:对路面病害进行快速普查,评估道路安全状况,为维修决策提供数据支撑。
- 自动驾驶感知:辅助识别路面缺陷,提升车辆行驶安全性。
- AI模型训练:用于YOLO系列目标检测/分割模型训练、算法优化、对比实验。
- 教学与项目开发:计算机视觉课程设计、毕业设计、行业项目实战。
三、核心标签
#道路缺陷检测#裂缝分割#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()
编程学习
技术分享
实战经验