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

如何训练——变电站设备分割数据集15类地面分割数据集,共1660幅图像注释了15类,包括绝缘子、隔离开关、变压器和变电站环境中常见的其他设备人工、固定和AGV安装的相机组合拍摄的,数据集1.6GB


变电站设备分割数据集,变电站设备15类地面分割数据集,共1660幅图像注释了15类,包括绝缘子、隔离开关、变压器和变电站环境中常见的其他设备(包括瓷器绝缘体、闭合叶片断开开关、重合闸、玻璃绝缘子串、电流变压器、避雷器、电源变压器、断路器、电势变压器、闭合串联断开开关、打开串联断开连接、三极断开连开关、消音器、保险丝断开开关和打开叶片断开开关)。这些图像是在一天中的不同时间使用人工、固定和AGV安装的相机组合拍摄的,数据集1.6GB

变电站设备分割数据集,并提供使用YOLOv8进行训练的详细步骤和代码。

数据集介绍

  1. 数据集概述
    数据集名称:变电站设备分割数据集
    图像数量:1660幅图像
    目标类别:15类,包括:
    绝缘子
    隔离开关
    变压器
    瓷器绝缘体
    闭合叶片断开开关
    重合闸
    玻璃绝缘子串
    电流变压器
    避雷器
    电源变压器
    断路器
    电势变压器
    闭合串联断开开关
    打开串联断开连接
    三极断开连开关
    消音器
    保险丝断开开关
    打开叶片断开开关
    数据格式:图像和标签文件
    数据集大小:1.6GB
    数据集划分:已划分好训练集、验证集和测试集
  2. 数据集结构
    假设你的数据集已经按照以下结构组织:

深色版本
substation_dataset/
├── images/
│ ├── train/
│ ├── val/
│ └── test/
└── labels/
├── train/
├── val/
└── test/
每个文件夹中包含对应的图像文件和标签文件。确保所有图像文件都是.jpg格式,而标签文件是.png格式(分割掩码),并且它们的名字与对应的图像文件相同。

数据集配置文件
创建一个数据集配置文件(如substation_dataset.yaml),该文件定义了数据集的基本信息,包括路径、类别等。示例配置如下:

yaml
深色版本

训练和验证的数据集路径

train: substation_dataset/images/train
val: substation_dataset/images/val
test: substation_dataset/images/test

标签路径

labels_train: substation_dataset/labels/train
labels_val: substation_dataset/labels/val
labels_test: substation_dataset/labels/test

类别名称

names:
0: Insulator
1: Isolator
2: Transformer
3: Porcelain_Insulator
4: Closed_Blade_Switch
5: Recloser
6: Glass_Insulator_String
7: Current_Transformer
8: Surge_Arrester
9: Power_Transformer
10: Circuit_Breaker
11: Potential_Transformer
12: Closed_Series_Switch
13: Open_Series_Switch
14: Three_Pole_Switch
15: Silencer
16: Fuse_Switch
17: Open_Blade_Switch

类别数量

nc: 18
训练模型

  1. 安装依赖
    确保你的开发环境中安装了必要的软件和库。YOLOv8是基于PyTorch框架的,因此你需要安装Python以及PyTorch。

安装Python(推荐3.7或更高版本)
安装PyTorch:你可以从PyTorch官方网站获取安装命令,根据你的系统配置选择合适的安装方式。
克隆YOLOv8的官方仓库到本地,并安装项目所需的其他依赖:
bash
深色版本
git clone https://github.com/ultralytics/ultralytics.git
cd ultralytics
pip install -r requirements.txt
2. 训练模型
在完成上述准备工作后,你可以开始训练模型了。打开终端,进入YOLOv8项目的根目录,运行训练命令:

bash
深色版本
python ultralytics/yolo/v8/segment/train.py --data substation_dataset.yaml --cfg yolov8.yaml --weights yolov8x-seg.pt --batch-size 16 --epochs 100
这里:

–data 参数指定了数据集配置文件的路径。
–cfg 参数指定了模型配置文件。
–weights 参数用于指定预训练权重的路径,这有助于加速训练过程并提高最终模型的性能。对于分割任务,建议使用预训练的分割模型权重,如yolov8x-seg.pt。
–batch-size 和 --epochs 分别设置了批量大小和训练轮数。
模型评估
训练完成后,可以通过验证集来评估模型的性能。YOLOv8提供了方便的命令来进行模型评估:

bash
深色版本
python ultralytics/yolo/v8/segment/val.py --data substation_dataset.yaml --weights runs/segment/train/exp/weights/best.pt
这里,best.pt 是训练过程中保存的最佳模型权重文件。

模型推理
你可以使用训练好的模型进行推理,检测新的图像中的目标。示例命令如下:

bash
深色版本
python ultralytics/yolo/v8/segment/predict.py --source path/to/your/image.jpg --weights runs/segment/train/exp/weights/best.pt --conf 0.25
这里:

–source 参数指定了要检测的图像路径。
–conf 参数设置了置信度阈值,低于该阈值的检测结果将被忽略。
注意事项
数据增强:为了提高模型的泛化能力,可以考虑使用数据增强技术,如随机裁剪、翻转、颜色抖动等。YOLOv8默认支持多种数据增强方法。
超参数调整:根据训练过程中观察到的损失值和验证集上的性能,适当调整学习率、批量大小等超参数。
硬件资源:如果显存不足,可以减少批量大小或使用更小的模型变体。
多尺度训练:可以尝试多尺度训练,以提高模型对不同尺度目标的检测能力。
进一步优化
数据预处理:确保图像质量和尺寸一致,可以使用图像增强技术提高模型的鲁棒性。
模型选择:根据实际需求选择合适的YOLOv8模型变体,如yolov8s-seg、yolov8m-seg、yolov8l-seg等。
多GPU训练:如果有多块GPU,可以使用多GPU训练来加速训练过程。
示例代码

  1. 训练脚本
    确保你已经将数据集和配置文件准备好,然后运行以下训练脚本:

bash
深色版本

进入YOLOv8项目目录

cd ultralytics

训练模型

python ultralytics/yolo/v8/segment/train.py --data substation_dataset.yaml --cfg yolov8.yaml --weights yolov8x-seg.pt --batch-size 16 --epochs 100
2. 评估脚本
训练完成后,评估模型性能:

bash
深色版本
python ultralytics/yolo/v8/segment/val.py --data substation_dataset.yaml --weights runs/segment/train/exp/weights/best.pt
3. 推理脚本
使用训练好的模型进行推理:

bash
深色版本
python ultralytics/yolo/v8/segment/predict.py --source path/to/your/image.jpg --weights runs/segment/train/exp/weights/best.pt --conf 0.25
详细代码示例(Python脚本)
如果你希望在一个Python脚本中完成这些步骤,可以参考以下示例:

python
深色版本
import subprocess

定义路径

dataset_path = “substation_dataset”
config_path = “substation_dataset.yaml”
model_config = “yolov8.yaml”
pretrained_weights = “yolov8x-seg.pt”
output_dir = “runs/segment/train/exp”

训练模型

train_command = [
“python”, “ultralytics/yolo/v8/segment/train.py”,
“–data”, config_path,
“–cfg”, model_config,
“–weights”, pretrained_weights,
“–batch-size”, “16”,
“–epochs”, “100”
]

subprocess.run(train_command)

评估模型

val_command = [
“python”, “ultralytics/yolo/v8/segment/val.py”,
“–data”, config_path,
“–weights”, f"{output_dir}/weights/best.pt"
]

subprocess.run(val_command)

推理

predict_command = [
“python”, “ultralytics/yolo/v8/segment/predict.py”,
“–source”, “path/to/your/image.jpg”,
“–weights”, f"{output_dir}/weights/best.pt",
“–conf”, “0.25”
]

subprocess.run(predict_command)
希望以上信息对你有所帮助

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

相关文章:

  • 一文讲透黑客、骇客、白客、红客:别再傻傻分不清!
  • 计算机深度学习毕设实战-基于人工智能的手势识别数字
  • Arbess速成手册(12) - 集成GitLab实现C++项目自动化构建并主机部署
  • 艾体宝案例 | 某大型科技企业基于Lepide构建可持续数据安全审计体系的实战案例
  • java: 警告: 源发行版 17 需要目标发行版 17
  • Arbess速成手册(13) - 集成Gitee、SonarQube实现Node.js项目自动化构建并主机部署
  • 基于SpringBoot的房屋租赁平台 Java源代码 免费分享
  • 7D-AI系列:AI大模型通用技术架构图
  • Springboot健身管理系统85ws5(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • Python全栈项目--基于Django的项目管理系统
  • 如何利用工业智能体提升汽车制造效率与良品率?
  • springboot分页不分页情况
  • 深度学习毕设选题推荐:基于python深度学习的手势识别数字机器学习
  • 如何通过模具智能管理降低汽车生产线的停机时间?
  • 深度学习计算机毕设之深度学习基于python-CNN的常见鱼类分类识别
  • 【毕业设计】基于python深度学习的手势识别数字
  • 自由职业者如何在AI浪潮中破局?这份「考证+实战」进阶指南请收好!
  • 【课程设计/毕业设计】机器学习 基于python深度学习的手势识别数字
  • 深度学习计算机毕设之人工智能基于python深度学习的手势识别数字
  • 英矽智能与赛诺菲签署8.88亿美元AI新药研发合作协议
  • 【剑斩OFFER】算法的暴力美学——最长公共前缀
  • 基于Dify+数据库+Echarts搭建的数据可视化助手(含自然语言转SQL)
  • 从ACPI!ParseArg函数中的ACPI!Buffer和ACPI!ParseOpcode到ACPI!Name中的ACPI!MoveObjData
  • vllm笔记(1):最基础的离线推理
  • 拒绝繁琐配置,推荐一款简洁易用的项目管理工具Kanass
  • 2核2G3M的云服务器有哪些用途?适合部署小型网站或博客吗?
  • 1核2GB服务器运行Nginx + MySQL + PHP(LNMP)会有性能瓶颈吗?
  • Lua 函数教程
  • 拒绝繁琐配置,推荐一款简洁易用的知识管理工具sward
  • 计算机深度学习毕设实战-基于python的海洋生物识别