news 2026/9/7 13:54:31

智慧交通道路无人机道路损伤检测数据集 无人机道路病害检测数据集的训练及应用 构建基于深度学习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/9/7 9:33:56

YOLOv8低成本部署方案:中小企业AI视觉落地实战案例

YOLOv8低成本部署方案:中小企业AI视觉落地实战案例 1. 引言:AI视觉在中小企业的现实挑战 随着人工智能技术的普及,越来越多的中小企业开始探索计算机视觉在安防监控、生产质检、客流统计等场景中的应用。然而,高昂的硬件成本、复…

作者头像 李华
网站建设 2026/9/6 23:21:11

低功耗蜂鸣器驱动电路在工业待机设备中的运用

工业待机设备中,如何让蜂鸣器“安静地省电”?在偏远的变电站里,一台智能传感器正默默守候。它已经连续工作了11个月——靠一块纽扣电池供电,没有主电源,也没有人定期维护。某天清晨,温度骤升触发报警&#…

作者头像 李华
网站建设 2026/9/5 21:42:58

OpenCore Legacy Patcher实战宝典:老Mac重获新生的终极秘籍

OpenCore Legacy Patcher实战宝典:老Mac重获新生的终极秘籍 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为2006-2015年的老款Mac无法安装最新macOS系统…

作者头像 李华
网站建设 2026/9/5 21:44:35

终极P2P下载加速指南:免费Tracker列表使用全攻略

终极P2P下载加速指南:免费Tracker列表使用全攻略 【免费下载链接】trackerslist Updated list of public BitTorrent trackers 项目地址: https://gitcode.com/GitHub_Trending/tr/trackerslist 还在为种子下载速度慢而烦恼吗?今天我要为你揭秘一…

作者头像 李华
网站建设 2026/9/5 22:33:28

AssetRipper终极指南:5步快速提取Unity游戏资源

AssetRipper终极指南:5步快速提取Unity游戏资源 【免费下载链接】AssetRipper GUI Application to work with engine assets, asset bundles, and serialized files 项目地址: https://gitcode.com/GitHub_Trending/as/AssetRipper AssetRipper作为专业的Uni…

作者头像 李华
网站建设 2026/9/5 22:33:24

Qwen2.5-7B部署:边缘计算环境适配方案

Qwen2.5-7B部署:边缘计算环境适配方案 1. 引言 随着大语言模型在实际业务场景中的广泛应用,如何将高性能的大型语言模型高效部署到资源受限的边缘设备上,成为当前AI工程化落地的关键挑战之一。通义千问Qwen2.5系列作为最新一代开源大模型&a…

作者头像 李华