news 2026/4/24 23:48:23

智慧交通道路无人机道路损伤检测数据集 无人机道路病害检测数据集的训练及应用 构建基于深度学习YOLOV8无人机道路损伤检测系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
智慧交通道路无人机道路损伤检测数据集 无人机道路病害检测数据集的训练及应用 构建基于深度学习YOLOV8无人机道路损伤检测系统

无人机公路损伤目标检测数据集

Yolo格式
无人机公路损伤目标检测数据集
数量:11024张数据集
"训练集:8306""验证集:2012"“测试集:706”
类别数量:8类

类别类型:[1-Alligator Cracking 龟裂(网裂、鳄鱼皮裂缝,路表面呈网状或块状的密集裂纹,形似龟壳或鳄鱼皮。)
2-Longitudinal Crack 纵向裂缝
3-othole 坑洞(坑槽)
4-Rutting车辙(在车行道轮迹带产生的纵向带状凹陷变形。)
5-Transverse Crack 横向裂缝
6-Bleeding 泛油(沥青析出,沥青过多渗至表面形成光滑、发亮的油膜。)
7-Raveling 松散(集料脱落表面集料从沥青结合料中脱落,呈现粗糙麻面。)
8-Stripping 剥离(沥青与集料粘附失效)沥青膜与集料之间失去粘结力,导致分层破坏。]
文件格式:JPG
标签格式:txt
图片大小:640 x 640


1

1


📊 无人机公路损伤检测数据集概览表

项目内容
数据集名称无人机公路损伤目标检测数据集
总图像数量11,024 张
图像格式JPG
图像尺寸统一为640 × 640 像素
标注格式YOLO 格式(.txt文件,每行:class x_center y_center width height,归一化)
类别数量8 类
数据划分已科学划分,无需再处理:• 训练集:8,306 张• 验证集:2,012 张• 测试集:706 张
采集方式无人机航拍(俯视视角,贴近真实巡检场景)
适用模型YOLOv5 / YOLOv6 /YOLOv8/ YOLO11 等全系列通用

🗂️ 类别定义与说明表

类别ID中文名称英文名称描述
0龟裂(网裂)Alligator Cracking路表面呈网状或块状的密集裂纹,形似龟壳或鳄鱼皮
1纵向裂缝Longitudinal Crack沿行车方向延伸的线性裂缝
2坑洞Pothole路面局部塌陷形成的坑槽,通常边缘破碎
3车辙Rutting在车行道轮迹带产生的纵向带状凹陷变形
4横向裂缝Transverse Crack垂直于行车方向的裂缝,常贯穿整个车道
5泛油(沥青析出)Bleeding沥青过多渗至表面形成光滑、发亮的油膜
6松散Raveling表面集料从沥青结合料中脱落,呈现粗糙麻面
7剥离Stripping沥青膜与集料之间失去粘结力,导致分层破坏

✅ 类别 ID 从0开始,符合 YOLO 标准索引规范
✅ 所有.txt标签文件与图像文件同名,一一对应


📁 推荐目录结构(标准 YOLO 格式)

drone_road_damage_dataset/ ├── images/ │ ├── train/ # 8,306 张 │ ├── val/ # 2,012 张 │ └── test/ # 706 张 ├── labels/ │ ├── train/ │ ├── val/ │ └── test/ └── data.yaml # YOLO 配置文件

📄 示例data.yaml配置文件

# drone_road_damage_dataset/data.yamltrain:./images/trainval:./images/valtest:./images/testnc:8names:['Alligator_Cracking','Longitudinal_Crack','Pothole','Rutting','Transverse_Crack','Bleeding','Raveling','Stripping']

⚠️ 使用前请确保路径与实际项目结构一致。


无人机公路损伤检测数据集(8 类,11,024 张图像,YOLO 格式)


✅ 一、YOLOv8 完整训练代码

1. 环境依赖安装

pipinstallultralytics opencv-python numpy matplotlib tqdm

推荐使用 Python 3.8+ 和 PyTorch ≥ 1.10


2.data.yaml配置文件(保存为road_damage/data.yaml

train:./images/trainval:./images/valtest:./images/testnc:8names:['Alligator_Cracking','Longitudinal_Crack','Pothole','Rutting','Transverse_Crack','Bleeding','Raveling','Stripping']

确保你的数据目录结构如下:

road_damage/ ├── images/train/ # 8306 张 JPG ├── labels/train/ ├── images/val/ # 2012 张 ├── labels/val/ ├── images/test/ # 706 张 ├── labels/test/ └── data.yaml

3. 训练脚本:train_road_damage.py

# train_road_damage.pyfromultralyticsimportYOLOimporttorch# 检查 GPUdevice='cuda'iftorch.cuda.is_available()else'cpu'print(f"Using device:{device}")# 加载预训练模型(可选 yolov8n / yolov8s / yolov8m)model=YOLO('yolov8s.pt')# 首次运行会自动下载# 开始训练results=model.train(data='road_damage/data.yaml',# 数据配置路径epochs=150,# 建议 100~200 轮imgsz=640,# 图像尺寸(已统一为 640x640)batch=32,# 根据 GPU 显存调整(RTX 3060 可设 32)name='road_damage_yolov8s',# 实验名称device=device,hsv_h=0.015,# 色调增强hsv_s=0.7,hsv_v=0.4,degrees=10.0,# 旋转translate=0.1,scale=0.5,mosaic=1.0,# Mosaic 增强(对小裂缝有效!)flipud=0.0,fliplr=0.5,patience=30,# 早停:30 轮无提升则停止save_period=10# 每 10 轮保存一次 checkpoint)print("✅ Training completed!")

4. 启动训练(命令行方式,可选)

yolo detect train\data=road_damage/data.yaml\model=yolov8s.pt\epochs=150\imgsz=640\batch=32\name=road_damage_yolov8s\device=0

5. 评估模型性能

yolo detect val\model=runs/detect/road_damage_yolov8s/weights/best.pt\data=road_damage/data.yaml

✅ 二、道路损伤检测系统(GUI 应用)

使用PyQt5 + OpenCV + YOLOv8构建桌面应用,支持图像/视频检测。

1. 安装 GUI 依赖

pipinstallpyqt5 pyqt5-tools

2. 主程序:road_damage_detector.py

# road_damage_detector.pyimportsysimportcv2fromPyQt5.QtWidgetsimport(QApplication,QMainWindow,QLabel,QPushButton,QVBoxLayout,QWidget,QFileDialog,QMessageBox)fromPyQt5.QtGuiimportQImage,QPixmapfromPyQt5.QtCoreimportQt,QTimerfromultralyticsimportYOLOimportnumpyasnpclassRoadDamageDetector(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle("🚥 无人机道路损伤检测系统")self.setGeometry(100,100,1000,700)# 初始化模型(请替换为你的 best.pt 路径)self.model_path="runs/detect/road_damage_yolov8s/weights/best.pt"try:self.model=YOLO(self.model_path)print("✅ 模型加载成功!")exceptExceptionase:QMessageBox.critical(self,"错误",f"模型加载失败:\n{str(e)}")sys.exit(1)self.cap=Noneself.timer=QTimer()self.timer.timeout.connect(self.update_frame)self.init_ui()definit_ui(self):central_widget=QWidget()self.setCentralWidget(central_widget)layout=QVBoxLayout()self.image_label=QLabel()self.image_label.setAlignment(Qt.AlignCenter)self.image_label.setMinimumSize(960,540)self.image_label.setStyleSheet("background-color: #f0f0f0; border: 1px solid #ccc;")btn_layout=QVBoxLayout()self.btn_image=QPushButton("📁 选择图像")self.btn_video=QPushButton("🎥 选择视频")self.btn_stop=QPushButton("⏹ 停止")self.btn_image.clicked.connect(self.load_image)self.btn_video.clicked.connect(self.load_video)self.btn_stop.clicked.connect(self.stop_media)forbtnin[self.btn_image,self.btn_video,self.btn_stop]:btn.setFixedHeight(40)btn_layout.addWidget(btn)layout.addWidget(self.image_label)layout.addLayout(btn_layout)central_widget.setLayout(layout)defload_image(self):path,_=QFileDialog.getOpenFileName(self,"选择图像","","Image Files (*.jpg *.png *.jpeg)")ifpath:self.process_image(path)defload_video(self):path,_=QFileDialog.getOpenFileName(self,"选择视频","","Video Files (*.mp4 *.avi *.mov)")ifpath:self.cap=cv2.VideoCapture(path)self.timer.start(30)# ~30 FPSdefstop_media(self):ifself.cap:self.cap.release()self.timer.stop()self.image_label.clear()defprocess_image(self,image_path):frame=cv2.imread(image_path)ifframeisNone:QMessageBox.warning(self,"警告","无法读取图像!")returnresult_frame=self.detect_and_draw(frame)self.display_image(result_frame)defupdate_frame(self):ifself.capandself.cap.isOpened():ret,frame=self.cap.read()ifret:result_frame=self.detect_and_draw(frame)self.display_image(result_frame)else:self.stop_media()defdetect_and_draw(self,frame):results=self.model(frame,conf=0.4)[0]# 置信度阈值 0.4annotated_frame=results.plot()# 自动绘制边界框和标签returnannotated_framedefdisplay_image(self,img):img_rgb=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)h,w,ch=img_rgb.shape bytes_per_line=ch*w q_img=QImage(img_rgb.data,w,h,bytes_per_line,QImage.Format_RGB888)self.image_label.setPixmap(QPixmap.fromImage(q_img).scaled(self.image_label.width(),self.image_label.height(),Qt.KeepAspectRatio))defcloseEvent(self,event):self.stop_media()event.accept()if__name__=="__main__":app=QApplication(sys.argv)window=RoadDamageDetector()window.show()sys.exit(app.exec_())

3. 运行检测系统

python road_damage_detector.py

功能支持:

  • 📁 上传单张图像进行检测
  • 🎥 播放本地视频并实时标注
  • ⏹ 随时停止
  • 自动显示类别名称与置信度

✅ 三、部署建议

场景建议
边缘设备(如 Jetson Nano)导出 ONNX:model.export(format='onnx')
Web 服务使用 Flask/FastAPI 封装推理 API
批量处理编写脚本遍历test/目录并保存结果

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

QMK Toolbox解锁键盘定制新境界:零基础也能玩转固件刷写

QMK Toolbox解锁键盘定制新境界:零基础也能玩转固件刷写 【免费下载链接】qmk_toolbox A Toolbox companion for QMK Firmware 项目地址: https://gitcode.com/gh_mirrors/qm/qmk_toolbox QMK Toolbox作为QMK固件的完美伴侣工具,为键盘爱好者提供…

作者头像 李华
网站建设 2026/4/18 1:22:28

FRCRN语音降噪镜像深度应用|轻松构建专业级语音增强系统

FRCRN语音降噪镜像深度应用|轻松构建专业级语音增强系统 1. 引言:从零构建高效语音降噪系统的实践路径 在语音交互、远程会议、录音转写等实际应用场景中,环境噪声严重影响语音质量与识别准确率。如何快速部署一个稳定高效的语音增强系统&a…

作者头像 李华
网站建设 2026/4/18 23:52:29

通义千问2.5多轮对话实战:云端GPU聊天机器人快速搭建

通义千问2.5多轮对话实战:云端GPU聊天机器人快速搭建 你是不是也遇到过这样的情况?作为创业者,想测试一个智能客服的原型功能,但市面上的商业API按调用次数收费,成本太高;自己从头部署又没服务器、没GPU、…

作者头像 李华
网站建设 2026/4/24 14:53:39

Figma中文界面终极配置指南:让设计工作更轻松

Figma中文界面终极配置指南:让设计工作更轻松 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma的英文界面而头疼吗?面对"Auto Layout"、&qu…

作者头像 李华
网站建设 2026/4/20 19:46:18

Windows 11任务栏拖放功能终极修复指南

Windows 11任务栏拖放功能终极修复指南 【免费下载链接】Windows11DragAndDropToTaskbarFix "Windows 11 Drag & Drop to the Taskbar (Fix)" fixes the missing "Drag & Drop to the Taskbar" support in Windows 11. It works with the new Wind…

作者头像 李华
网站建设 2026/4/21 13:57:01

Zotero PDF Translate插件3分钟快速上手指南

Zotero PDF Translate插件3分钟快速上手指南 【免费下载链接】zotero-pdf-translate 支持将PDF、EPub、网页内容、元数据、注释和笔记翻译为目标语言,并且兼容20多种翻译服务。 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-pdf-translate 还在为阅读…

作者头像 李华