【YOLO】语义分割和实例分割(四)

0 YOLO系列笔记

1 前言

  在之前的实践过程中,总结了如何使用YOLOv5进行目标识别,从环境搭建到训练自己的数据集,再到将训练好的模型使用OpenCV部署,这篇文章主要是拓展一下应用领域——语义分割,还是以应用入门为主。

2 基本概念

  在开始之前,不妨先理解一下什么是语义分割和实例分割,参考这篇文章,简单来说,语义分割就是会为图像的每个像素分配一个类别,但是同一类别之间的对象是不做区分的。而实例分割,只对特定的物体进行分类,和目标识别非常类似,其实我认为可以理解为 “精细化的目标识别” ,即边界不再限制为一个方框,而是无规则的边界。可以用下图来展示【图片也来自上述文章】

在这里插入图片描述

3 数据集

  和目标识别一样,分割问题的训练的数据集结构也是如下所示。

├───images
│   ├───train
│   └───val
└───labels
│    ├───train
│    └───val
└───data.yaml

其中,yaml文件的格式和目标识别也是一样的,这里不再赘述。

  另外就是数据集中标签的样式,和目标识别一样,在训练数据之前要先把标签格式转换为YOLO格式,如下所示。

在这里插入图片描述

其中,最左侧为目标类别,然后右侧是2*N个0-1之间的浮点数,代表了该目标轮廓的N个点坐标,都是归一化之后的数值。

4 训练

  和之前训练目标识别一样,如果是不需要更改参数啥的,可以直接运行yolo项目下的python文件。在项目下有一个segment文件夹,里面的代码才是训练语义分割的程序。
在这里插入图片描述

同样,使用方式也在文件前的注释写得很清楚了:

在这里插入图片描述

5 数据标注

  假如还需要自己搞数据集、标注怎么办?好像也有类似labelImg的标注软件,叫做labelme,安装方式和labelImg一样,可以直接通过pip安装:

pip install labelme

使用也比较简单,上手很快,这里附一个使用链接

猜你喜欢

转载自blog.csdn.net/ZHOU_YONG915/article/details/132004567