news 2026/5/10 19:21:23

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
无人机巡检系统 - 智慧交通基础设施监测 - 小目标/密集目标检测(如裂缝、垃圾) - 多类别路面病害联合检测 智慧交通高清无人机视角高速路面损害检测数据集

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

yolo,voc,coco标注方式
图像尺寸:1152*2048
类别数量:6类
训练集图像数量:3153; 验证集图像数量:157; 测试集图像数量:39
类别名称: 每一类图像数 ,每一类标注数
Cracks - 裂缝:446, 815
Waterlogging - 积水:1208, 2091
Ravelling - 松散:459, 869
Muddy_road - 泥泞道路:952, 2084
Road_side_garbage - 道路旁垃圾:329, 429
Potholes - 坑洼:663, 1352
image num: 3349

以下是航拍无人机视角高速路面损害检测数据集的完整信息表格:

属性详情
数据集名称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

该数据集适用于:

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


1、

航拍无人机视角高速路面损害检测数据集(6类,3349张图像,分辨率1152×2048)的完整YOLOv8 训练代码与配置方案,支持 YOLO 格式标注(推荐),并兼容你已有的 VOC/COCO 标注。


✅ 一、环境准备

pipinstallultralytics 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

# highway_damage.yamltrain:./HighwayDamageDataset/images/trainval:./HighwayDamageDataset/images/valtest:./HighwayDamageDataset/images/testnc:6# 类别数names:-Cracks# 裂缝-Waterlogging# 积水-Ravelling# 松散-Muddy_road# 泥泞道路-Road_side_garbage# 道路旁垃圾-Potholes# 坑洼

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


✅ 四、训练脚本:train_highway.py

# train_highway.pyfromultralyticsimportYOLOimportosdefmain():# 创建输出目录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,# 推荐 100~200(根据收敛调整)imgsz=1024,# 输入尺寸(略小于原图 1152x2048,节省显存)batch=8,# 根据 GPU 显存调整(24GB 可用 12~16)name='yolov8s_highway_1024',project='runs/highway_damage',device=0,# GPU ID(多卡可用 [0,1])workers=8,cache=False,# 内存充足可设 True 加速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,# 生成训练曲线、PR 曲线等hsv_h=0.015,# 增强:色调hsv_s=0.7,# 饱和度hsv_v=0.4,# 亮度degrees=10.0,# 旋转增强(±10°)translate=0.1,# 平移scale=0.5,# 缩放(0.5~1.5)shear=2.0,# 剪切perspective=0.001,# 透视变换flipud=0.0,# 上下翻转(航拍不建议)fliplr=0.5,# 左右翻转(合理)mosaic=1.0,# Mosaic 增强(对小目标有效)mixup=0.1,# MixUp)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.015hsv_s=0.7hsv_v=0.4\degrees=10fliplr=0.5mosaic=1.0

✅ 六、关键训练建议

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

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

▶ 如果你有VOC 格式(XML)

# voc2yolo.pyimportosimportxml.etree.ElementTreeasETfrompathlibimportPath class_names=["Cracks","Waterlogging","Ravelling","Muddy_road","Road_side_garbage","Potholes"]defconvert_voc_to_yolo(voc_dir,yolo_dir,image_dir):os.makedirs(yolo_dir,exist_ok=True)forxml_fileinPath(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=[]forobjinroot.findall('object'):cls_name=obj.find('name').textifcls_namenotinclass_names:continuecls_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}")withopen(os.path.join(yolo_dir,xml_file.stem+'.txt'),'w')asf: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.jsonval:path/to/coco/val.json

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


✅ 八、推理与部署示例

fromultralyticsimportYOLO 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":"坑洼"}forrinresults:boxes=r.boxesforboxinboxes:cls_name=model.names[int(box.cls)]print(f"检测到:{chinese_names.get(cls_name,cls_name)}")

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


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 12:57:46

Yolov5在HeyGem中用于人脸检测的技术可能性探讨

Yolov5在HeyGem中用于人脸检测的技术可能性探讨 在数字人视频生成系统日益普及的今天&#xff0c;如何让虚拟人物的口型与语音完美同步&#xff0c;成为决定用户体验的关键。而这一切的前提&#xff0c;是系统能否稳定、准确地“看到”原始视频中的人脸——这正是人脸检测技术的…

作者头像 李华
网站建设 2026/5/10 12:56:07

【C#不安全类型转换实战指南】:揭秘高效内存操作的5大核心技巧

第一章&#xff1a;C#不安全类型转换概述在C#编程中&#xff0c;类型系统是保障内存安全和代码稳定的核心机制。然而&#xff0c;在某些特定场景下&#xff0c;开发者可能需要绕过CLR的类型检查&#xff0c;执行不安全的类型转换。这类操作通常涉及指针、未托管内存或跨类型的直…

作者头像 李华
网站建设 2026/5/2 5:21:09

以下从技术架构剖析的真实案例切入,再给出分阶段的学习路线规划,兼顾理论与落地,帮助你高效掌握架构设计能力

以下从技术架构剖析的真实案例切入&#xff0c;再给出分阶段的学习路线规划&#xff0c;兼顾理论与落地&#xff0c;帮助你高效掌握架构设计能力。一、技术架构剖析&#xff1a;2个真实案例 案例1&#xff1a;某电商平台大促订单系统&#xff08;高并发场景&#xff09; 背景&a…

作者头像 李华
网站建设 2026/5/2 22:43:32

【C#集合表达式终极指南】:5分钟掌握数组高效操作核心技术

第一章&#xff1a;C#集合表达式与数组概述 C# 作为一门强类型、面向对象的编程语言&#xff0c;提供了丰富的数据结构支持&#xff0c;其中数组和集合表达式是处理数据序列的核心工具。从 C# 1.0 开始&#xff0c;数组一直是存储固定大小同类型元素的基础方式&#xff1b;而随…

作者头像 李华
网站建设 2026/5/9 10:06:12

Span与unsafe代码共存时的内存防护策略,资深架构师绝不外传的4条铁律

第一章&#xff1a;Span与unsafe代码共存时的内存防护策略&#xff0c;资深架构师绝不外传的4条铁律 在高性能 .NET 应用开发中&#xff0c;Span 与 unsafe 代码常被结合使用以实现零拷贝、高吞吐的数据处理。然而&#xff0c;这种组合也带来了显著的内存安全风险。以下是资深架…

作者头像 李华