跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
PythonAI算法

无人机视角高速路面损害检测数据集及 YOLOv8 训练方案

无人机视角高速路面损害检测数据集包含 3349 张高分辨率图像,涵盖裂缝、积水、松散等 6 类病害。支持 YOLO、VOC、COCO 标注格式。提供基于 YOLOv8 的训练环境配置、数据组织方式、模型训练脚本及命令行参数建议。包含 VOC/COCO 转 YOLO 转换代码及推理部署示例,适用于智慧交通基础设施监测与小目标检测任务。

活在当下发布于 2026/3/26更新于 2026/5/58 浏览
无人机视角高速路面损害检测数据集及 YOLOv8 训练方案

航拍无人机视角高速路面损害检测数据集

本数据集包含 3349 张航拍图像,分辨率 1152×2048,支持 YOLO、VOC、COCO 标注格式。涵盖裂缝、积水、松散等 6 类路面病害,适用于智慧交通基础设施监测与小目标检测任务。

图片描述

数据集统计信息

属性详情
数据集名称Aerial UAV Highway Pavement Damage Detection Dataset
采集视角无人机航拍(俯视高速道路场景)
图像总数3,349 张
图像分辨率1152 × 2048 像素
标注格式支持YOLO、VOC、COCO
任务类型目标检测(Bounding Box)
类别数量6 类

类别详细统计表

类别英文名中文名称包含该类别的图像数量该类别的标注实例总数
Cracks裂缝446815
Waterlogging积水1,2082,091
Ravelling松散459869
Muddy_road泥泞道路9522,084
Road_side_garbage道路旁垃圾329429
Potholes坑洼6631,352

总计图像数:3,349(单张图像可含多个类别) 总标注实例数:7,640

图片描述

数据集划分

子集
图像数量
训练集(train)3,153
验证集(val)157
测试集(test)39
总计3,349

图片描述

该数据集适用于:

  • 无人机巡检系统
  • 智慧交通基础设施监测
  • 小目标/密集目标检测(如裂缝、垃圾)
  • 多类别路面病害联合检测

图片描述

YOLOv8 训练代码与配置方案

以下提供完整的 YOLOv8 训练代码与配置方案,支持 YOLO 格式标注(推荐),并兼容 VOC/COCO 标注。

一、环境准备

pip install ultralytics opencv-python numpy pandas tqdm

ultralytics 是官方 YOLOv8 库,原生支持 YOLO、COCO、VOC(需转换)格式。

二、数据组织结构(YOLO 格式)

假设你的数据已按以下结构存放:

HighwayDamageDataset/
├── images/
│   ├── train/ # 3153 张
│   ├── val/ # 157 张
│   └── test/ # 39 张
└── labels/
    ├── train/
    ├── val/
    └── test/

每张图像 xxx.jpg 对应一个 xxx.txt,内容为:

<class_id> <x_center> <y_center> <width> <height>
# 归一化到 [0,1]

若你只有 VOC 或 COCO 标注,文末提供自动转换脚本。

三、YOLO 配置文件:highway_damage.yaml

train: ./HighwayDamageDataset/images/train
val: ./HighwayDamageDataset/images/val
test: ./HighwayDamageDataset/images/test
nc: 6
names:
  - Cracks
  - Waterlogging
  - Ravelling
  - Muddy_road
  - Road_side_garbage
  - Potholes

中文名可保留,但建议英文命名以避免部分工具兼容问题。推理时可通过映射显示中文。

四、训练脚本:train_highway.py

from ultralytics import YOLO
import os

def main():
    # 创建输出目录
    os.makedirs("runs/highway_damage", exist_ok=True)
    
    # 加载预训练模型(推荐 yolov8s 或 yolov8m)
    model = YOLO('yolov8s.pt')
    # 可替换为 'yolov8m.pt' / 'yolov8l.pt'
    
    # 开始训练
    results = model.train(
        data='highway_damage.yaml',
        epochs=150,
        imgsz=1024,
        batch=8,
        name='yolov8s_highway_1024',
        project='runs/highway_damage',
        device=0,
        workers=8,
        cache=False,
        optimizer='AdamW',
        lr0=0.01,
        lrf=0.01,
        momentum=0.937,
        weight_decay=0.0005,
        warmup_epochs=3,
        patience=30,
        save=True,
        save_period=10,
        verbose=True,
        plots=True,
        hsv_h=0.015,
        hsv_s=0.7,
        hsv_v=0.4,
        degrees=10.0,
        translate=0.1,
        scale=0.5,
        shear=2.0,
        perspective=0.001,
        flipud=0.0,
        fliplr=0.5,
        mosaic=1.0,
        mixup=0.1
    )
    print(f"✅ 训练完成!最佳模型路径:{results.save_dir}/weights/best.pt")

if __name__ == '__main__':
    main()

五、命令行快速训练(替代方式)

yolo detect train --data=highway_damage.yaml --model=yolov8s.pt --epochs=150 --imgsz=1024 --batch=8 --name=yolov8s_highway_1024 --project=runs/highway_damage --device=0 --optimizer=AdamW --patience=30 --hsv_h=0.015 --hsv_s=0.7 --hsv_v=0.4 --degrees=10 --fliplr=0.5 --mosaic=1.0

六、关键训练建议

项目建议
输入尺寸使用 imgsz=1024(保持长宽比,YOLO 自动填充)。若 GPU 允许,可尝试 1280 提升小目标召回
Batch Size8~16(2048 宽图显存占用高)
数据增强启用 mosaic、fliplr、hsv;禁用 flipud(航拍上下方向有意义)
类别不平衡'积水'和'泥泞道路'样本多,'垃圾'较少 → 可开启 class_weights(需自定义)
评估重点关注 [email protected] 和小目标 AP(裂缝、垃圾)

七、VOC / COCO 转 YOLO 脚本(如需要)

▶ 如果你有 VOC 格式(XML):
# voc2yolo.py
import os
import xml.etree.ElementTree as ET
from pathlib import Path

class_names = ["Cracks", "Waterlogging", "Ravelling", "Muddy_road", "Road_side_garbage", "Potholes"]

def convert_voc_to_yolo(voc_dir, yolo_dir, image_dir):
    os.makedirs(yolo_dir, exist_ok=True)
    for xml_file in Path(voc_dir).glob("*.xml"):
        tree = ET.parse(xml_file)
        root = tree.getroot()
        img_w = int(root.find('size/width').text)
        img_h = int(root.find('size/height').text)
        lines = []
        for obj in root.findall('object'):
            cls_name = obj.find('name').text
            if cls_name not in class_names:
                continue
            cls_id = class_names.index(cls_name)
            bndbox = obj.find('bndbox')
            xmin = int(bndbox.find('xmin').text)
            ymin = int(bndbox.find('ymin').text)
            xmax = int(bndbox.find('xmax').text)
            ymax = int(bndbox.find('ymax').text)
            x_center = (xmin + xmax) / 2 / img_w
            y_center = (ymin + ymax) / 2 / img_h
            width = (xmax - xmin) / img_w
            height = (ymax - ymin) / img_h
            lines.append(f"{cls_id} {x_center:.6f} {y_center:.6f} {width:.6f} {height:.6f}")
        with open(os.path.join(yolo_dir, xml_file.stem + '.txt'), 'w') as f:
            f.write('\n'.join(lines))

# 使用示例
# convert_voc_to_yolo('annotations/voc/train', 'labels/train', 'images/train')
▶ 如果你有 COCO 格式(JSON):

YOLOv8 原生支持 COCO,只需在 highway_damage.yaml 中指定:

train: path/to/coco/train.json
val: path/to/coco/val.json

但需确保类别顺序与 names 一致。

八、推理与部署示例

from ultralytics import YOLO

model = YOLO('runs/highway_damage/yolov8s_highway_1024/weights/best.pt')
results = model('test_image.jpg')

# 显示结果(含中文标签)
chinese_names = {
    "Cracks": "裂缝",
    "Waterlogging": "积水",
    "Ravelling": "松散",
    "Muddy_road": "泥泞道路",
    "Road_side_garbage": "道路旁垃圾",
    "Potholes": "坑洼"
}

for r in results:
    boxes = r.boxes
    for box in boxes:
        cls_name = model.names[int(box.cls)]
        print(f"检测到:{chinese_names.get(cls_name, cls_name)}")

注意:由于图像宽高比极端(1152×2048 ≈ 9:16 竖屏),YOLO 会自动 padding 成正方形。若想保留原始比例,可考虑滑动窗口裁剪或使用 YOLOv8-OBB(但本任务无需旋转框)。

目录

  1. 航拍无人机视角高速路面损害检测数据集
  2. 数据集统计信息
  3. 类别详细统计表
  4. 数据集划分
  5. YOLOv8 训练代码与配置方案
  6. 一、环境准备
  7. 二、数据组织结构(YOLO 格式)
  8. 归一化到 [0,1]
  9. 三、YOLO 配置文件:highway_damage.yaml
  10. 四、训练脚本:train_highway.py
  11. 五、命令行快速训练(替代方式)
  12. 六、关键训练建议
  13. 七、VOC / COCO 转 YOLO 脚本(如需要)
  14. ▶ 如果你有 VOC 格式(XML):
  15. voc2yolo.py
  16. 使用示例
  17. convertvocto_yolo('annotations/voc/train', 'labels/train', 'images/train')
  18. ▶ 如果你有 COCO 格式(JSON):
  19. 八、推理与部署示例
  20. 显示结果(含中文标签)
  • 💰 8折买阿里云服务器限时8折了解详情
  • GPT-5.5 超高智商模型1元抵1刀ChatGPT中转购买
  • 代充Chatgpt Plus/pro 帐号了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • WorkBuddy 安装与使用指南:腾讯 AI 原生桌面智能体
  • AI 编程新王 Codex 全面上手指南
  • ns-3 虚拟现实突发流量框架实现与建模分析
  • WebUploader 文件上传组件核心功能与配置指南
  • Android 应用启动白屏问题解决方案
  • Web 核心技术解析:从 HTTP 到安全加固
  • Qt Creator 配置 GitHub Copilot 插件指南
  • DeepSeek-R1-Distill-Llama-8B 模型部署与推理服务指南
  • GitHub Copilot 编辑器集成与实战技巧
  • 基于 Python 和 FastAPI 实现摸鱼倒计时界面
  • 基于 Three.js 渲染三维无人机模型(WebGL / Vue / React)
  • Meta-Llama-3-8B-Instruct 本地部署与对话全流程实战
  • 低代码诞生的背景:传统开发模式在规模化后的核心瓶颈
  • openKylin 通过 SSH 与 cpolar 实现远程连接
  • 分布式锁失效原因与 Redis 锁机制深度解析
  • 8 卡 RTX 5090 服务器 llama.cpp 完整安装及性能调优
  • Windows 系统 Python 安装与配置详细教程
  • 大模型服务选型:AI Ping 性能评测与对比指南
  • 深入理解 Linux 线程控制:多线程编程实战技巧
  • Trae AI 安装与使用指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online