当前位置: 首页 > news >正文

YOLO模型训练管道内缺陷数据集 下水管内部损害缺陷数据集 管道下水道损害检测数据集 6类 ‘树根‘, ‘沉积物‘, ‘裂缝‘, ‘垃圾‘, ‘错口‘, ‘穿入 目标检测使用


损害检测数据集 6类 ‘树根’, ‘沉积物’, ‘裂缝’, ‘垃圾’, ‘错口’, '穿入 目标检测使用


数据集介绍
数据集概述
数据集名称:Pipe Sewer Damage Detection Dataset (PSDDD)
数据类型:RGB图像
目标类别:6类管道下水道损害
图像数量:2070张
训练集:1656张
验证集:414张
标注格式:YOLO格式(.txt)
目标类别及统计
树根:图片数352张,标注框数707个
沉积物:图片数855张,标注框数1136个
裂缝:图片数407张,标注框数1087个
垃圾:图片数232张,标注框数279个
错口:图片数143张,标注框数160个
穿入:图片数302张,标注框数338个
数据集目录结构
深色版本
PSDDD/
├── images/
│ ├── train/
│ └── val/
├── labels/
│ ├── train/
│ └── val/
└── data.yaml
数据集配置文件
创建一个data.yaml文件,配置数据集的路径和类别信息:

yaml
深色版本
path: ./PSDDD # 数据集路径
train: images/train # 训练集图像路径
val: images/val # 验证集图像路径

nc: 6 # 类别数
names: [‘树根’, ‘沉积物’, ‘裂缝’, ‘垃圾’, ‘错口’, ‘穿入’] # 类别名称
YOLOv8训练代码
安装YOLOv8库和依赖项:
bash
深色版本
git clone https://github.com/ultralytics/ultralytics.git
cd ultralytics
pip install -r requirements.txt
训练模型:
python
深色版本
from ultralytics import YOLO

def train_model(data_yaml_path, model_config, epochs, batch_size, img_size):
# 加载模型
model = YOLO(model_config)

# 训练模型 results = model.train( data=data_yaml_path, epochs=epochs, batch=batch_size, imgsz=img_size ) # 保存模型 model.save("runs/train/pipeline_damage_detection/best.pt")

ifname== “main”:
data_yaml_path = ‘PSDDD/data.yaml’
model_config = ‘yolov8s.yaml’
epochs = 100
batch_size = 16
img_size = 640

train_model(data_yaml_path, model_config, epochs, batch_size, img_size)

详细解释
安装YOLOv8和依赖项:
克隆YOLOv8仓库并安装所有必要的依赖项。
训练模型:
导入YOLOv8库。
加载模型配置文件。
调用model.train方法进行训练。
保存训练后的最佳模型。
运行训练脚本
将上述脚本保存为一个Python文件(例如train_yolov8.py),然后运行它。

bash
深色版本
python train_yolov8.py
输出结果
运行脚本后,YOLOv8会在指定的输出目录中生成训练日志和最佳模型文件。你可以使用这些模型文件进行推理和评估。

转换标注格式(可选)
如果你的数据集是VOC格式的,需要将其转换为YOLO格式。以下是转换脚本:

python
深色版本
import xml.etree.ElementTree as ET
import os

def convert_voc_to_yolo(voc_file, yolo_file, class_names):
tree = ET.parse(voc_file)
root = tree.getroot()

width = int(root.find('size/width').text) height = int(root.find('size/height').text) with open(yolo_file, 'w') as f: for obj in root.findall('object'): class_name = obj.find('name').text if class_name not in class_names: continue class_id = class_names.index(class_name) bbox = obj.find('bndbox') x_min = float(bbox.find('xmin').text) y_min = float(bbox.find('ymin').text) x_max = float(bbox.find('xmax').text) y_max = float(bbox.find('ymax').text) x_center = (x_min + x_max) / 2.0 / width y_center = (y_min + y_max) / 2.0 / height w = (x_max - x_min) / width h = (y_max - y_min) / height f.write(f"{class_id} {x_center} {y_center} {w} {h}\n")

def convert_all_voc_to_yolo(voc_dir, yolo_dir, class_names):
os.makedirs(yolo_dir, exist_ok=True)
for filename in os.listdir(voc_dir):
if filename.endswith(‘.xml’):
voc_file = os.path.join(voc_dir, filename)
yolo_file = os.path.join(yolo_dir, filename.replace(‘.xml’, ‘.txt’))
convert_voc_to_yolo(voc_file, yolo_file, class_names)

ifname== “main”:
class_names = [‘树根’, ‘沉积物’, ‘裂缝’, ‘垃圾’, ‘错口’, ‘穿入’]
voc_train_dir = ‘PSDDD/labels_voc/train’
yolo_train_dir = ‘PSDDD/labels/train’
convert_all_voc_to_yolo(voc_train_dir, yolo_train_dir, class_names)

voc_val_dir = 'PSDDD/labels_voc/val' yolo_val_dir = 'PSDDD/labels/val' convert_all_voc_to_yolo(voc_val_dir, yolo_val_dir, class_names)

详细解释
转换标注格式:
编写一个脚本来将VOC格式的XML文件转换为YOLO格式的TXT文件。
遍历所有VOC格式的标注文件,提取边界框和类别信息,并将其转换为YOLO格式。
运行转换脚本:
将上述脚本保存为一个Python文件(例如convert_voc_to_yolo.py),然后运行它。
bash
深色版本
python convert_voc_to_yolo.py
总结
通过以上步骤,你可以准备好管道下水道损害检测数据集,并使用YOLOv8进行训练。

http://www.jsqmd.com/news/480451/

相关文章:

  • Navicat Premium 17 软件安装记录
  • 智慧交通-**行人车辆多目标检测系统**YOLO+DeepSeek+Pytorch+SpringBoot+Flask+Vue YOLO+deep seek+AI人工
  • PostgreSQL 基础知识:WAL 文件和序列号
  • KingFusion 关系库查询核心:SQLQuery 与 AsynSQLQuery 函数全解析
  • 2001-2024年 我国农作物分布栅格数据(小麦、玉米、水稻、甘蔗等)
  • 352. Java IO API - Java 文件操作:java.io.File 与 java.nio.file 功能对比 - 4
  • M2LOrder模型内网穿透部署方案:安全访问本地情感分析服务
  • 学术写作新姿势:用万象熔炉·丹青幻境快速生成专业图表
  • 人工智能应用- 机器做梦:05.动态梦境:一步步走进幻想
  • 纯本地多模态AI怎么搭?mPLUG-Owl3-2B镜像免配置部署一文详解
  • 人工智能应用- 机器做梦:06.动态梦境:小结
  • 哪里可以回收山东一卡通?高效、安全又省心! - 团团收购物卡回收
  • YOLOv8.3 动态锚框进阶:无需预聚类,物流包裹多尺度检测 AP+3.2%(代码复用性强)
  • Phi-3-Mini-128K实操手册:Streamlit文件上传+PDF解析+128K喂入全流程
  • 零基础也能搞定!YOLOv5 模型训练全攻略:参数设置详解 + 训练过程监控(2026 避坑版)
  • 山东一卡通回收靠谱吗?小白必看的交易技巧 - 团团收购物卡回收
  • 硬核入门!Python爬虫实战:爬取豆瓣读书TOP250,书名+评分+简介,一键生成精美Excel书单(2026避坑版)
  • 基于AI浏览器架构缺陷的钓鱼攻击机理与防御重构
  • Harmonyos应用实例97:找次品动画演示
  • 山东一卡通回收指南:2026最佳平台与流程解读 - 团团收购物卡回收
  • Harmonyos应用实例98:约分和通分工具
  • 山东一卡通回收的秘密:如何快速变现闲置卡? - 团团收购物卡回收
  • Harmonyos应用实例99:表面积探索器
  • UG NX 曲率梳分析精要
  • UG NX 曲面连续性分析
  • 题111111
  • 19705成绩统计
  • Windows平台升级Node.js
  • Cursor中skills用法
  • 你们在OpenClaw上的token消耗如何?