乐于分享
好东西不私藏

【免费下载】YOLOv11城市道路路面病害目标检测数据集-176张-road-1

【免费下载】YOLOv11城市道路路面病害目标检测数据集-176张-road-1

YOLOv11城市道路路面病害目标检测数据集

📊 数据集基本信息

  • 目标类别
    : [‘Alligator Cracks’, ‘Lateral Cracks’, ‘Longitudinal Cracks’, ‘pothole’]
  • 中文类别
    :[‘龟裂’, ‘横向裂缝’, ‘纵向裂缝’, ‘坑洼’]
  • 训练集
    :124 张
  • 验证集
    :34 张
  • 测试集
    :18 张
  • 总计
    :176 张

📄 data.yaml 配置信息

该数据集提供了data.yaml文件,内容如下:

train: ../train/imagesval: ../valid/imagestest: ../test/imagesnc: 4names: ['Alligator Cracks''Lateral Cracks''Longitudinal Cracks''pothole']

🖼️ 标注可视化

📝 数据集分析

YOLOv11城市道路路面病害目标检测数据集

该数据集专注于城市道路路面病害的检测与识别,涵盖了龟裂、横向裂缝、纵向裂缝和坑洼等常见病害类型。通过高精度标注和多样化的场景覆盖,为道路维护和智能巡检提供了可靠的数据支持,具有重要的实际应用价值。

训练集包含124张图像,验证集34张,测试集18张,总计176张。数据分布合理,涵盖了不同光照条件、道路类型和病害严重程度,能够有效支撑模型的训练与评估。各集之间无明显重叠,确保了数据的独立性和评估的客观性。

该数据集的标注工作细致规范,所有病害区域均使用精确的边界框进行标记,且标注者严格遵循统一的标准。标注内容清晰明确,未发现误标或漏标现象,为后续的模型开发和应用奠定了坚实的基础。

该数据集可广泛应用于城市道路养护管理、智能巡检系统以及交通基础设施监测等领域。其精准的病害识别能力有助于及时发现路面问题,提升道路维护效率,保障交通安全,具有显著的行业应用前景。

YOLOv11训练步骤

一、环境安装

pip install ultralytics# 依赖要求:Python≥3.8,PyTorch≥1.8。安装完成后可通过 `yolo checks` 验证环境。

二、数据集准备(YOLO格式)

1. 目录结构

数据集必须严格按以下结构组织:

dataset/├── train/│   ├── images/          # 训练图片(jpg/png)│   └── labels/          # YOLO格式标注(txt)├── val/│   ├── images/│   └── labels/└── data.yaml            # 数据集配置文件

2. YOLO标注格式

每个 *.txt 文件对应一张图片,每行格式为:

class_id center_x center_y width height

所有数值均为相对于图片宽高的归一化值(0~1)。

3. data.yaml 配置文件

# data.yamlpath: ../dataset          # 数据集根目录(相对或绝对路径)train: train/images       # 训练集图片路径val: val/images           # 验证集图片路径testtest/images         # 测试集图片路径(可选)# 类别信息nc: 2                     # 类别数量names: ['class1''class2']  # 类别名称列表

三、模型选择

YOLO11 提供 5 种尺度,官方命名规则为 yolo11{n/s/m/l/x}.pt

模型
参数量
适用场景
yolo11n
2.6M
边缘设备、速度优先
yolo11s
9.4M
平衡精度与速度
yolo11m
20.1M
常规GPU训练
yolo11l
25.3M
高精度需求
yolo11x
56.9M
极致精度、算力充足

四、模型训练

方式1:Python API(推荐)

创建 train.py

from ultralytics import YOLOdef main():    # 加载预训练模型(推荐:基于COCO预训练权重微调)    model = YOLO("yolo11m.pt")    # 训练参数    train_params = {        'data''data.yaml',           # 数据集配置文件        'epochs'100,                 # 训练轮次        'imgsz'640,                  # 输入图像尺寸        'batch'16,                   # 批次大小(根据显存调整)        'device''0',                 # GPU设备号,'cpu'表示CPU训练        'workers'8,                  # 数据加载线程数        'optimizer''SGD',            # 优化器:SGD/Adam/AdamW        'lr0'0.01,                   # 初始学习率        'patience'50,                # 早停耐心值        'save'True,                  # 保存模型        'project''runs/train',       # 项目保存路径        'name''exp',                 # 实验名称        'single_cls'False,           # 单类别检测设为True        'close_mosaic'10,            # 最后N轮关闭马赛克增强    }    # 开始训练    results = model.train(**train_params)    # 输出最佳模型路径    print(f"Best model saved at: {results.best}")if __name__ == '__main__':    main()

三种模型加载方式对比:

# 方式A:从YAML构建全新模型(从头训练,适合网络结构改进)model = YOLO("yolo11m.yaml")# 方式B:加载预训练权重(最常用,推荐)model = YOLO("yolo11m.pt")# 方式C:构建新模型并迁移预训练权重(改进网络后使用)model = YOLO("yolo11m.yaml").load("yolo11m.pt")

方式2:命令行 CLI

# 基础训练yolo detect train data=data.yaml model=yolo11m.pt epochs=100 imgsz=640 batch=16 device=0# 多GPU训练yolo detect train data=data.yaml model=yolo11m.pt epochs=100 device=0,1# 从YAML+预训练权重训练yolo detect train data=data.yaml model=yolo11m.yaml pretrained=yolo11m.pt epochs=100

五、关键训练参数说明

参数
说明
建议值
epochs
训练总轮次
100~300
imgsz
输入尺寸
640(标准)
batch
批次大小
8/16/32(根据显存)
device
训练设备
0
(单GPU)、0,1(多GPU)、cpumps(Apple芯片)
workers
数据加载线程
8~16(Windows建议≤8)
optimizer
优化器
SGD
(默认)、AdamAdamW
lr0
 / lrf
初始/最终学习率
0.01 / 0.01
momentum
SGD动量
0.937
weight_decay
权重衰减
0.0005
single_cls
单类别模式
True
/False
resume
恢复中断训练
True
(需指定last.pt)
amp
自动混合精度
True
(默认开启,省显存)

六、模型验证

创建 val.py

from ultralytics import YOLOdef main():    # 加载训练好的最佳权重    model = YOLO('runs/train/exp/weights/best.pt')    # 验证    metrics = model.val(        data='data.yaml',        split='val',              # 验证集:'val' 或 'test'        imgsz=640,        batch=16,        iou=0.6,                  # NMS IoU阈值        device='0',        save_json=False,          # 是否保存COCO格式JSON    )    # 输出关键指标    print(f"mAP50-95: {metrics.box.map}")   # mAP@0.5:0.95    print(f"mAP50: {metrics.box.map50}")    # mAP@0.5    print(f"mAP75: {metrics.box.map75}")    # mAP@0.75if __name__ == '__main__':    main()

CLI 方式:

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

七、模型推理/预测

创建 predict.py

from ultralytics import YOLOimport cv2def main():    model = YOLO('runs/train/exp/weights/best.pt')    # 单张图片推理    results = model.predict(        source='test_images/',    # 图片路径、文件夹、URL或摄像头索引(0)        imgsz=640,        conf=0.25,                # 置信度阈值        iou=0.45,                 # NMS IoU阈值        device='0',        save=True,                # 保存结果图        show=False,               # 是否弹窗显示    )    # 遍历结果    for result in results:        boxes = result.boxes      # 检测框        masks = result.masks      # 分割掩码(如使用分割模型)        probs = result.probs      # 分类概率        # 获取坐标、置信度、类别        for box in boxes:            x1, y1, x2, y2 = box.xyxy[0].tolist()            conf = box.conf[0].item()            cls = int(box.cls[0].item())            print(f"Class: {cls}, Conf: {conf:.2f}, Box: [{x1:.1f}{y1:.1f}{x2:.1f}{y2:.1f}]")if __name__ == '__main__':    main()

CLI 方式:

yolo detect predict model=runs/train/exp/weights/best.pt source=test_images/ save=True## 数据集下载>     小郭AI日志

数据集

YOLOv11城市道路路面病害目标检测数据集-176张-road-1.zip	https://pan.baidu.com/s/1R6NmTDiRL29HT-wIVwOaWw提取码:ftee

main()

CLI 方式:```bashyolo detect predict model=runs/train/exp/weights/best.pt source=test_images/ save=True## 数据集下载>     小郭AI日志

数据集

YOLOv11城市道路路面病害目标检测数据集-176张-road-1.zip	https://pan.baidu.com/s/1R6NmTDiRL29HT-wIVwOaWw提取码:ftee