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

简介

🚀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.kler.cn/a/8192.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CIE (PCI Express) 1x, 4x, 8x, 16x总线端子说明

1、概述 PCI Express作为一种高带宽、低引脚数、串行、互连技术。它是为了取代旧的PCI和AGBus标准而设计的。PCIe比旧标准有许多改进,包括更高的最大系统总线吞吐量、更低的I/O引脚数和更小的物理占地面积、更好的总线设备性能扩展、更详细的错误检测和报告机制&am…

4.7--计算机网络之TCP篇之socket编程--(复习+深入)---好好沉淀,加油呀

1.针对 TCP 应该如何 Socket 编程? 1.服务端和客户端初始化 socket,得到文件描述符; 2.服务端调用 bind,将 socket 绑定在指定的 IP 地址和端口; 3.服务端调用 listen,进行监听; 4.服务端调用 accept&#…

版本控制工具Git的常见命令与使用方法

目录概述基础命令提交代码把代码提交到暂存区把代码提交到版本库同一笔提交想追加修改回退代码对代码进行了修改,想回退工作区的修改执行了add操作,想回退到工作区执行了commit操作,想撤销修改执行了commit操作,想回退到暂存区挑代…

二、Java 并发编程(1)

本章概要 常见的 Java 线程创建方式 继承 Thread 类实现 Runnable 接口通过 ExecutorService 和 Callable 接口实现有返回值的线程基于线程池 Java 线程池的原理 线程复用线程池的核心组件和核心类Java 线程池的工作流程线程池的拒绝策略 相对于传统的单线程,多线…

Nuxt项目动态路由带参接参

我们创建一个Nuxt项目 然后 在pages目录下创建 engineering.vue文件 参考代码如下 <template><div><div>工程界面</div><nuxt-child></nuxt-child></div> </template><script> export default {name: EngineeringPage …

java微服务商城高并发秒杀项目--008.订单服务继承Sentinel以及sentinel安装dashboard

在shop-order-service增加Sentinel依赖&#xff1a;<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-a libaba-sentinel</artifactId> </dependency>安装dashboard组件windows系统直接在1.8.0.jar中cm…

SMPL Model转换为bvh格式 (SMPL to BVH ) Python

BVH BVH是BioVision等设备对人体运动进行捕获后产生文件格式的文件扩展名。 BVH文件 BVH文件包含角色的骨骼和肢体关节旋转数据。BVH 是一种通用的人体特征动画文件格式&#xff0c;广泛地被当今流行的各种动画制作软件支持。通常可从记录人类行为运动的运动捕获硬件获得。 B…

说说如何借助webpack来优化前端性能?

通过webpack优化前端的手段有&#xff1a; ① JS代码压缩 ② CSS代码压缩 ③ HTML文件代码压缩 ④ 文件大小压缩 ⑤ 图片压缩 ⑥ Tree Shaking ⑦ 代码分离 ⑧ 内联 chunk 1、JS代码压缩 terser是一个JavaScript的解释、绞肉机、压…

2023年第十四届蓝桥杯将至,来看看第十三届蓝桥杯javaB组题目如何

ฅ(๑˙o˙๑)ฅ 大家好, 欢迎大家光临我的博客&#xff1a;面向阿尼亚学习 算法学习笔记系列持续更新中~ 文章目录一、前言二、2022年蓝桥杯javaB组省赛真题目录A:星期计算[5分]思路⭐代码&#x1f31f;B 山(5分)思路⭐代码&#x1f31f;C 字符统计(10分)思路⭐代码&#x1f3…

【学习笔记】启示录 - 打造用户喜爱的产品(阅读摘录)

【学习笔记】启示录 - 打造用户喜爱的产品&#xff08;阅读摘录&#xff09; 图书信息 Marty Cagan 著 七印部落 译 人员&#xff1a; 负责定义和开发产品的团队成员的角色和职责 流程&#xff1a; 探索、开发富有创意的产品时&#xff0c;反复应用的步骤和成功的实践经验 产品…

python 实现二叉搜索树的方法有哪些?

树的介绍 树不同于链表或哈希表&#xff0c;是一种非线性数据结构&#xff0c;树分为二叉树、二叉搜索树、B树、B树、红黑树等等。 树是一种数据结构&#xff0c;它是由n个有限节点组成的一个具有层次关系的集合。用图片来表示的话&#xff0c;可以看到它很像一棵倒挂着的树。…

Unity中将项目通用的公共模块封装成类库dll

前言&#xff1a; 最近公司的App项目开始用Unity来开发了&#xff0c;可能大家好奇为什么不用原生的AndroidStudio来开发&#xff0c;主要原因是因为我们做的都是医疗类的App&#xff0c;里面或多或少都用到了Unity虚拟场景&#xff0c;以前我们都是采用Android集成Unity来满足…

如何让chatGPT变成中文-ChatGPT怎么完整输出

ChatGPT厉害在哪 ChatGPT 厉害在于它是使用深度学习技术进行训练的大型神经网络模型&#xff0c;可以从大量的自然语言数据中自动学习语言模式、词汇和语法规则&#xff0c;从而生成相对流畅和准确的文本。以下是 ChatGPT 的主要优势&#xff1a; 可以根据输入自动进行语言生成…

Spark 之 解析json的复杂和嵌套数据结构

本文主要使用以下几种方法&#xff1a; 1&#xff0c;get_json_object()&#xff1a;从一个json 字符串中根据指定的json 路径抽取一个json 对象 2&#xff0c;from_json()&#xff1a;从一个json 字符串中按照指定的schema格式抽取出来作为DataFrame的列 3&#xff0c;to_j…

身临其境数字世界:探索VR全景元宇宙展厅

随着科技的不断发展&#xff0c;虚拟现实技术已经成为我们生活中的一部分。VR全景元宇宙展厅作为其中的一种形式&#xff0c;正越来越受欢迎。在这里&#xff0c;您可以探索未知的世界&#xff0c;体验全新的视觉和感官体验。 一、VR全景元宇宙展厅的概述 VR全景元宇宙展厅是一…

前端学习:HTML链接

目录 一、HTML超链接&#xff08;链接&#xff09; 二、HTML链接语法 三、target属性 target属性值展示 四、name属性 五、补充 关于创建电子邮件链接时如何发送邮件内容 在进行抄送时&#xff0c;需要使用关键字&#xff1a;cc 在进行密送时&#xff0c;需要使用关键字&a…

Linux小黑板(14):基于环形队列的生成消费者模型

"多少人都&#xff0c;生来纯洁完美&#xff0c;心底从不染漆黑。" 我们先来瞅瞅我们之前基于阻塞队列的生产消费者模型代码。 void Push(const T& in){// 生产任务pthread_mutex_lock(&_mutex);while(is_full()){pthread_cond_wait(&_pcond,&_mute…

4款【新概念APP】对比+免费下载

4款【新概念APP】对比免费下载4款【新概念APP】对比免费下载新概念英语咖&#xff08;体积小、无广告、全免费、不能倍速播放&#xff09;新概念英语全册&#xff08;免费&#xff0c;但强制广告&#xff0c;否则不能播放音频。可以倍速&#xff09;新概念英语全四册&#xff0…

【开发工程师的运维小知识】docker安装gitlab

文章目录1 搜索gitlab的镜像2 拉取gitlab镜像3 创建挂载目录4 创建gitlab容器并启动5 查看是否启动成功6 修改配置文件7 重启gitlab8 获取root初始化密码9 修改root初始密码&#xff08;可选&#xff09;进入docker-gitlab容器内部打开控制台查找第一个User&#xff08;这个就是…

【SQL Server】数据库开发指南(一)数据库设计

文章目录一、数据库设计的必要性二、什么是数据库设计三、数据库设计的重要性五、数据模型5.1 实体-关系&#xff08;E-R&#xff09;数据模型5.2 实体&#xff08;Entity&#xff09;5.3 属性&#xff08;Attribute&#xff09;5.5 关系&#xff08;Relationship&#xff09;六…
最新文章