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.gitcd ultralyticspip install -r requirements.txt训练模型python深色版本from ultralytics import YOLOdef train_model(data_yaml_path, model_config, epochs, batch_size, img_size):# 加载模型model YOLO(model_config)# 训练模型 results model.train( datadata_yaml_path, epochsepochs, batchbatch_size, imgszimg_size ) # 保存模型 model.save(runs/train/pipeline_damage_detection/best.pt)ifname “main”:data_yaml_path ‘PSDDD/data.yaml’model_config ‘yolov8s.yaml’epochs 100batch_size 16img_size 640train_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 ETimport osdef 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_okTrue)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.coloradmin.cn/o/2413506.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!