YOLO_V8分割

news2024/10/12 9:09:00

YOLO_V8分割

YOLO安装

pip install ultralytics

YOLO的数据集转化看csdn

数据标注EIseg

  1. EIseg这块,正常安装就好,但是numpy和各类包都容易有冲突,python版本装第一点

  2. 数据标注过程中,记得把JSON和COCO都点上,把自动保存点上,如果标注后需要修改,记得手动点右下角保存,否则“空格”没有存上。

  3. 预训练模型在/home/gsh/Projects/Yanbao/dataset/static_hrnet18_ocr64_cocolvis.zip

格式转化

labelme转COCO

  1. paddle标注得到的是labelme格式文件,首先由于是多人标注,其中label和imagePath是不一样的,所以需要统一,该格式采用read_json_save_all.py脚本修改。在/home/gsh/Projects/Yanbao/dataset/data_for_train_2/read_json_save_all.py该脚本生成的是每个图片对应的labelme.json文件。需要输入所有标注的labelme文件夹路径,输出保存路径,和图片路径。

  2. labelme转COCO采用的是官方脚本:labelme-json2labelme-coco.py~/Projects/PaddleSeg/EISeg/tool

python labelme-json2labelme-coco.py [path to json dir] [path to 输出/output] --labels [path to labels.txt]
# 注意,上述的json dir要用统一后的json文件
# 例如:
python /home/gsh/Projects/PaddleSeg/EISeg/tool/labelme-json2labelme-coco.py /home/gsh/Projects/Yanbao/dataset/data_for_train_2/all_data1/tongyi_data /home/gsh/Projects/Yanbao/dataset/output --labels /home/gsh/Projects/Yanbao/dataset/data_for_train_2/all_data1/together/label/labelme/labels.txt

结果如下:

├── annotations.json
├── JPEGImages
└── Visualization

COCO转YOLOV8

  1. 将上面生成的annotations.json进行处理,将JPEGImages替换为.,建议方法是VSCode打开后进行全局查找替换。
    在这里插入图片描述
  2. JSON2YOLO库中
    general_json2yolo.py~/Projects/JSON2YOLO
    修改一下这里的路径,注意,这里要将上面的annotations.json放到一个文件夹中,然后将文件夹路径输入
    cls91to80也改成false
    在这里插入图片描述
    把这里的-1去掉,这样类编号就从0开始了
    在这里插入图片描述

默认生成的路径是执行代码的路径下,生成new_dir文件夹

也可以改路径,在代码的第258行

生成的是这样的
├── images
└── labels
└── annotations

调整为这样
├── images
│ ├── train
│ └── val
└── labels
├── train
└── val

至此数据处理全部结束

YOLO-seg的训练

  1. 代码在/home/gsh/Projects/YOLOV8/segtrain.py,其中model = YOLO("/home/gsh/Downloads/yolov8l-seg.pt")这里面的名字写的谁,要么读取本地的,要么直接从网上下,写什么下什么

  2. 记得修改yaml中的文件夹路径和类别,代码在/home/gsh/Projects/ultralytics/ultralytics/cfg/datasets/coco8-seg.yaml

  3. train的选择参数很多,参考这里

    results = model.train(data="/home/gsh/Projects/ultralytics/ultralytics/cfg/datasets/coco8-seg.yaml", epochs=1000,
                          imgsz=640, batch=-1)
    

    整体例子:

    # Load a model
    # model = YOLO("yolov8l-seg.yaml")  # build a new model from YAML
    model = YOLO("/home/gsh/Downloads/yolov8s-seg.pt")  # load a pretrained model (recommended for training)
    # model = YOLO("/home/gsh/Downloads/yolov8l-seg.pt")  # load a pretrained model (recommended for training)
    # model = YOLO("yolov8l-seg.yaml").load("/home/gsh/Downloads/yolov8l-seg.pt")  # build from YAML and transfer weights
    # model = YOLO("yolov8l-seg.yaml").load("/home/gsh/Downloads/yolov8l-seg.pt")  # build from YAML and transfer weights
    # Train the model
    results = model.train(data="/home/gsh/Projects/ultralytics/ultralytics/cfg/datasets/coco8-seg.yaml", epochs=900,
                          imgsz=640 ,batch=32)
    

YOLO-seg的预测

predict

from ultralytics import YOLO

# Load a pretrained YOLOv8n model
model = YOLO("yolov8n.pt")

# Run inference on an image
results = model("bus.jpg")  # results list

# View results
for r in results:
    print(r.boxes)  # print the Boxes object containing the detection bounding boxes

YOLO-Seg部署模型转化

onnx的部署

X64平台

模型转化代码

from ultralytics import YOLO

model=YOLO("/home/gsh/Projects/YOLOV8/runs/segment/train8/weights/best.pt")
model.export(format="onnx", device=0, int8=True)

报错

Loading /home/gsh/Projects/YOLOV8/runs/segment/train8/weights/best.onnx for ONNX Runtime inference…
[1;31m2024-08-26 09:30:46.347354781 [E:onnxruntime:Default, provider_bridge_ort.cc:1992 TryGetProviderInfo_CUDA] /onnxruntime_src/onnxruntime/core/session/provider_bridge_ort.cc:1637 onnxruntime::Provider& onnxruntime::ProviderLibrary::Get() [ONNXRuntimeError] : 1 : FAIL : Failed to load library libonnxruntime_providers_cuda.so with error: libcudnn.so.9: cannot open shared object file: No such file or directory
[m
[0;93m2024-08-26 09:30:46.347381605 [W:onnxruntime:Default, onnxruntime_pybind_state.cc:965 CreateExecutionProviderInstance] Failed to create CUDAExecutionProvider. Require cuDNN 9.* and CUDA 12.*. Please install all dependencies as mentioned in the GPU requirements page (https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#requirements), make sure they’re in the PATH, and that your GPU is supported.[m

推理

直接替换掉模型路径即可

Jetson AGX

改名字

best.pt改成best-seg.pt(我也不知道为什么要加seg)据说是它模型转化要认这是个什么任务

模型转化代码

from ultralytics import YOLO

model=YOLO("/home/gsh/Projects/YOLOV8/runs/segment/train8/weights/best.pt")
model.export(format="onnx", imgsz=(480,640), device=0, int8=True, simplify=True, task = "segment")

Tensort的部署

官网介绍

模型转化代码

from ultralytics import YOLO

model = YOLO("yolov8n.pt")
model.export(
    format="engine",
    dynamic=True,  
    batch=1,  
    workspace=10,  
    int8=True,
    data="coco.yaml",  # 这个yaml文件要用自己训练的yaml文件
)

# Load the exported TensorRT INT8 model
model = YOLO("yolov8n.engine", task="detect")

# Run inference
result = model.predict("https://ultralytics.com/images/bus.jpg")

推理

直接替换掉模型路径即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2207587.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕业设计 基于Hadoop平台的岗位推荐系统的设计与实现 Python毕业设计 Python毕业设计选题【附源码+安装调试】

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

python脚本封装APK,轻松随意无须复杂配置

优点:轻松随意不设置,缺点:新用户试用,VI专属能力。 (笔记模板由python脚本于2024年10月11日 06:16:14创建,本篇笔记适合“资深”编程的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.py…

基于Springboot+Vue的网上订餐系统(含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统中…

@controller注解和@RestController注解详解

文章目录 控制器MVC控制器REST 控制器 controllerRestController总结 控制器 MVC控制器 在了解这两种注解之前我们需要先知道控制器的概念,我们项目中常见的就是MVC控制器,MVC 是一种软件架构模式,它将应用程序分为三个主要组件:…

R语言统计分析——气泡图

参考资料:R语言实战【第2版】 气泡图(bubble plot)用来展示三个定量变量间的关系:先创建一个二维散点图,然后用点的大小来代表第三个边变量的值。 我们可以使用symbols()函数来创建气泡图。该函数可以在指定的(x,y)坐标…

如何鉴定一段抗体序列的CDR区(CDR1、CDR2、CDR3)

愿武艺晴小朋友一定得每天都开心 如果有一批的抗体序列,可按下面的步骤来处理: (1)可以先处理为fasta的格式(或者不处理手动粘贴) >20B11 NIVLTQSPASLAVSLGQRATISCKASQSVDYDGDSYMNWYQQKPGQPPKLLIYAASNLESGIPARFSGSGSGTDFTLNIHPVEEEDAA…

华为启动鸿蒙原生应用开发者激励计划 12月31日前上架最高可获10万元

华为开发者官网今天发布了《鸿蒙原生应用开发者激励计划》的公告。此计划是华为给鸿蒙原生应用的开发者提供的现金及流量扶持的专属激励资源,鼓励开发者积极投入鸿蒙原生应用开发,加速应用上架,共创鸿蒙生态。 开发者需要在本计划要求的报名周…

深度学习:手写感知机

文章目录 前言感知机模型训练模型预测小结 前言 上面是一只猫,人类的大脑可以很轻松地识别出。人脑是如何识别的呢? 人类能够识别出这只猫,是因为这张图片具有猫的典型特征。例如,猫的耳朵、眼睛、猫须、嘴巴等独特的形态特征&am…

gcc学习

理论 在使用 GCC (GNU Compiler Collection) 进行 C 或 C 程序的编译时,可以将整个过程分为四个主要阶段:预处理、编译、汇编和链接。下面是每个阶段的命令示例: 1. 预处理-E 预处理阶段会处理所有的预处理指令(如 #include 和…

ArcGis JS天地图 暗色地图

方法一&#xff1a;使用css filter 在body下增加svg&#xff0c;并增加需要用到的滤镜&#xff0c;这边用到x-rays <svg id"svgfilters" aria-hidden"true" style"position: absolute; width: 0; height: 0; overflow: hidden"version"…

刷题 排序算法

912. 排序数组 注意这道题目所有 O(n^2) 复杂度的算法都会超过时间限制&#xff0c;只有 O(nlogn) 的可以通过 快速排序空间复杂度为 O(logn)是由于递归的栈的调用归并排序空间复杂度为 O(n) 是由于需要一个临时数组 (当然也需要栈的调用&#xff0c;但是 O(logn) < O(n) 的…

【华为】配置RIP协议

RIP&#xff08;Routing Information Protocol&#xff09;是一种内部网关协议&#xff08;IGP&#xff09;&#xff0c;主要用于小型网络中的动态路由。RIP有两个主要版本&#xff1a;‌RIPv1和‌RIPv2&#xff0c;它们之间存在一些关键区别&#xff1a; ‌分类支持‌&#xf…

利用FnOS搭建虚拟云桌面,并搭建前端开发环境(一)

利用FnOS搭建虚拟云桌面&#xff0c;并搭建前端开发环境 一 飞牛FnOS官方文档一、安装FnOS【Win11系统】1.下载VirtualBox2.下载FnOS镜像3.创建虚拟机4.启动完成后&#xff0c;会进入这样一个界面&#xff0c;这个基本上后续就后台了 本人在网上冲浪了很久&#xff0c;一直也没…

python pyqt5 +vtk 显示obj模型文件

python pyqt5 vtk 显示obj模型文件 准备代码参考 准备 名称版本python3.8.19pyqt55.15.9pyqt5-tools5.15.9.3.3pyqt5-sip12.15.0vtk9.3.1 代码 使用wsl2 和 XLaunch 配合pyqt5进行可视化是可行的。使用pip在conda环境中安装pyqt5相关组件。以下代码在 WSL2 的 Ubuntu 20.04 …

Java运算符逻辑控制

目录 一、运算符 1.1基本四则运算符&#xff08;加减乘除模&#xff09; 1.2增量运算符 1.3关系运算符 1.4自增、自减运算符 1.5逻辑运算符 1.6位运算符 1.7移位运算符 1.8条件运算符&#xff08;三目运算符&#xff09; 二、逻辑控制 2.1if语句 2.2switch语句 2.…

Docker 搭建mysql 连接超时问题,xxl-job启动mysql连接报错

1.本地连接Navicat报错信息&#xff0c;猜测是navicat默认连接超时导致的&#xff0c;后面换成idea一个插件虽然慢但连接上了 2013 - Lost connection to MySQL server at reading initial communication packet 2.启动xxl-job会报错&#xff0c;网上有人mysql驱动与数据库不匹…

【高频SQL基础50题】31-35

又到SQL。 目录 1.查询结果的质量和占比 2.求关注者的数量 3.指定日期的产品价格 4.好友申请 II &#xff1a;谁有最多的好友 5.按日期分组销售产品 1.查询结果的质量和占比 聚合题。 # Write your MySQL query statement below SELECT t1.query_name,ROUND((SUM(t1.r…

问题记录(个人)

备注&#xff1a; 在7月10日记录之前遇到的问题及解决方法: 一&#xff1a;常见的访问问题&#xff1a; 403 Forbidden&#xff1a;&#xff08;未有请求权限&#xff09; 表示服务器理解请求但是拒绝执行它。这通常是由于服务器上的文件或资源没有正确的读、写或执行权限&…

【从零开始的LeetCode-算法】3164.优质数对的总数 II

给你两个整数数组 nums1 和 nums2&#xff0c;长度分别为 n 和 m。同时给你一个正整数 k。 如果 nums1[i] 可以被 nums2[j] * k 整除&#xff0c;则称数对 (i, j) 为 优质数对&#xff08;0 < i < n - 1, 0 < j < m - 1&#xff09;。 返回 优质数对 的总数。 示…

python画图|多个Y轴分列右侧

【1】引言 前述python画图学习中&#xff0c;已经探索过X轴和Y轴的共享&#xff0c;可通过下述链接直达&#xff1a; 西猫雷婶-CSDN博客 但现实的画图实践中总会有新的要求&#xff0c;之前将所有轴合到一起的形式可能不再适用&#xff0c;因此&#xff0c;很有必要探索多个…