yolov5-v7.0实例分割快速体验

news/2024/7/10 2:03:31 标签: 计算机视觉, 深度学习, 目标检测, yolov5, 分割

简介

🚀yolov5-v7.0版本正式发布,本次更新的v7.0则是全面的大版本升级,最主要的功能就是全面集成支持了实例分割yolov5已经集成检测、分类、分割任务。

在这里插入图片描述

前面几篇文章已经介绍过关于Yolov5的一些方面

yolov5目标检测:https://blog.csdn.net/qq_45066628/article/details/129470290?spm=1001.2014.3001.5501

yolov5分类:https://blog.csdn.net/qq_45066628/article/details/129594154?spm=1001.2014.3001.5501

yolov5网络结构及训练策略简介:https://blog.csdn.net/qq_45066628/article/details/129715417?spm=1001.2014.3001.5501

检测 分类 分割区别

  1. 图像分类(image classification)

识别图像中存在的内容,如下图,有人(person)、树(tree)、草地(grass)、天空(sky)

  1. 目标检测(object detection)

识别图像中存在的内容和检测其位置

  1. 语义分割(semantic segmentation)

对图像中的每个像素打上类别标签,如下图,把图像分为人(红色)、树木(深绿)、草地(浅绿)、天空(蓝色)标签,简而言之就是对一张图片上的所有像素点进行分类。

  1. 实例分割(instance segmentation)

其实就是目标检测和语义分割的结合。相对目标检测的边界框,实例分割可精确到物体的边缘;相对语义分割,实例分割需要标注出图上同一物体的不同个体。对比上图、下图,如以人(person)为目标,语义分割不区分属于相同类别的不同实例(所有人都标为红色),实例分割区分同类的不同实例(使用不同颜色区分不同的人)

  1. 全景分割(panoptic segmentation)

全景分割是语义分割和实例分割的结合。
跟实例分割不同的是:实例分割只对图像中的object进行检测,并对检测到的object进行分割,而全景分割是对图中的所有物体包括背景都要进行检测和分割

快速体验

项目下载

git clone https://github.com/ultralytics/yolov5  # clone
cd yolov5
pip install -r requirements.txt  # install

数据集准备

  1. 准备训练数据,如果自己没有数据可以去Roboflow官网 kaggle官网 下载数据
  • Roboflow官网 https://universe.roboflow.com/paul-guerrie-tang1/asl-poly-instance-seg/dataset/25
  • Kaggle官网 https://www.kaggle.com/datasets
  1. 数据标注,可以使用Labelimg数据标注工具,之前文章已经讲过了,这里就不赘述了
  2. 数据划分,划分格式如下
    在这里插入图片描述

下载权重文件

官网地址;https://github.com/ultralytics/yolov5/releases/v7.0
在这里插入图片描述
在这里插入图片描述

配置文件参数修改

  1. 将Models下的segment下的自己下载的对应权重文件-seg.yaml(例如yolov5l-seg.yaml)里面的nc改为自己的类别数
    在这里插入图片描述
    在这里插入图片描述
  2. 在data下的coco128-seg.yaml里修改训练,验证及测试的路径已经,类别种类
    在这里插入图片描述

运行方式一:在segment下的train里面改模型,配置文件,数据路径,其余参数可根据需要配置

在这里插入图片描述
在这里插入图片描述
改完后执行python train.py后开始训练

运行方式二:直接执行命令

python segment/train.py --data coco128-seg.yaml --weights yolov5m-seg.pt --img 640 --cfg models/segment/yolov5m-seg.yaml

推理和验证

也可通过修改segment下的predict.py和val.py 或者直接执行命令,weights为自己训练后的模型best模型路径

验证:

python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640

推理:

python segment/predict.py --weights yolov5m-seg.pt --data data/images/bus.jpg

在这里插入图片描述

onnx导出

python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0


http://www.niftyadmin.cn/n/211255.html

相关文章

中间表示- 数据流分析

数据流分析往往与优化绑定在一起,如下图所示。 优化的一般模式 程序分析 (1)控制流分析、数据流分析、依赖分析等。 (2)得到被优化程序的静态保守信息,是对动态运行行为的近似。 程序重写 以上一步得到…

RK3568平台开发系列讲解(驱动基础篇)自动创建设备节点

🚀返回专栏总目录 文章目录 一、自动创建设备节点1.1、创建和删除类函数1.2、创建设备函数二、创建类函数三、创建设备函数沉淀、分享、成长,让自己和他人都能有所收获!😄 📢自动创建设备节点分为两个步骤: 步骤一:使用 class_create 函数创建一个类。步骤二:使用 d…

REST风格和使用RESTful形式开发

系列文章目录 主要学习SpringMVC中REST风格的开发形式 文章目录系列文章目录前言一、REST简介二、RESTful入门案例三、REST快速开发四、案例:基于RESTful页面数据交互总结前言 本节中用到的资料 链接:https://pan.baidu.com/s/1tSUMxH7G3-BX9MNnoVSw6Q…

阿里巴巴春招的后端面经来啦~

操作系统 一个操作系统,我们在衡量它的内存占用的时候,它一般会有哪些内存的部分? 读者答:堆和栈 补充: 这个其实是问你对free命令的理解。 主机的内存做一些清理的动作。你知道这里面会涉及到对哪些内存区域进行操…

微信picker弹出之后 , 背景变成灰色是怎么做的

微信小程序在弹出picker组件时&#xff0c;会将页面背景变为半透明的灰色&#xff0c;这是通过设置一个全屏的蒙层来实现的。 具体实现方法如下&#xff1a; 在WXML文件中&#xff0c;添加一个view元素作为蒙层&#xff0c;并设置其样式和属性&#xff1a; <view class&qu…

Python基础之for循环

一&#xff1a;for循环语句 for 变量名 in 可迭代对象: 代码一代码二... 可迭代对象可以是字符串、元组、列表、字典等。 for循环可以为可迭代对象中的每一个元素执行一个语句块。 例&#xff1a; for i in [1,2,3]:print(i) # 运行结果 1 2 3 二、for循环的使用 1&…

QT背后故事之Qt创始人Eirik Chambe-Eng

Eirik Chambe-Eng是一名挪威程序员。1990 年&#xff0c;他与 Haavard Nord 一起在特隆赫姆的一家超声设备软件开发部门工作。他们不满足于跨平台软件开发工具&#xff0c;创建了 Qt。1994 年&#xff0c;他们创立了 Trolltech 公司。 2004年aKademy采访了Eirik Chambe-Eng&…

CVE漏洞复现-CVE-2022-22965-Spring-RCE漏洞

CVE-2022-22965-Spring-RCE漏洞 漏洞概况与影响 Spring framework 是Spring 里面的一个基础开源框架&#xff0c;其目的是用于简化 Java 企业级应用的开发难度和开发周期,2022年3月31日&#xff0c;VMware Tanzu发布漏洞报告&#xff0c;Spring Framework存在远程代码执行漏洞…