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 # 验证集图片路径test: test/images # 测试集图片路径(可选)# 类别信息nc: 2 # 类别数量names: ['class1', 'class2'] # 类别名称列表
三、模型选择
YOLO11 提供 5 种尺度,官方命名规则为 yolo11{n/s/m/l/x}.pt:
yolo11n | ||
yolo11s | ||
yolo11m | ||
yolo11l | ||
yolo11x |
四、模型训练
方式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 | ||
imgsz | ||
batch | ||
device | 00,1(多GPU)、cpu、mps(Apple芯片) | |
workers | ||
optimizer | SGDAdam、AdamW | |
lr0lrf | ||
momentum | ||
weight_decay | ||
single_cls | TrueFalse | |
resume | True | |
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.95print(f"mAP50: {metrics.box.map50}") # mAP@0.5print(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.ziphttps://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.ziphttps://pan.baidu.com/s/1R6NmTDiRL29HT-wIVwOaWw提取码:ftee
夜雨聆风