前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >语义分割如何做标注_语义分割转实例分割

语义分割如何做标注_语义分割转实例分割

作者头像
全栈程序员站长
发布2022-09-23 10:53:30
1.5K0
发布2022-09-23 10:53:30
举报

大家好,又见面了,我是你们的朋友全栈君。

在进行Segmentation 训练之前需要准备训练集和验证集,本文将要来介绍如何使用LabelMe进行标记。LabelMe 是个可以绘制多边形、矩形、圆形、直线、点的一套标记工具,可用于分类、目标检测、语义分割、实例分割任务上的数据标注。

1.labelMe安装与数据标注

首先安装LabelMe,我使用Anaconda 进行安装。打开Anaconda Prompt 执行以下指令:

代码语言:javascript
复制
pip install labelme

接着输入labelme 会出现以下UI 介面,点选Open Dir 选择要标记的图片资料夹

代码语言:javascript
复制
labelme
在这里插入图片描述
在这里插入图片描述

在图片上按右键选择Create Polygans 后,就可以开始画标记点了~

画好后填入要标记的label

在这里插入图片描述
在这里插入图片描述

若有多个相同类别的目标物也选择一样的label

在这里插入图片描述
在这里插入图片描述

再按左边的Save,最后选择左边的Next Image

2.数据格式转换

标注好数据以后,若需要转换label格式,可使用labelme 进行转换。接下来会分为用于Semantic SegmentationInstance Segmentation

代码语言:javascript
复制
git clone https://github.com/wkentaro/labelme

并且在刚刚标记好的图片资料夹外,建立一个label.txt,内容必须要有__ignore__, _background_

在这里插入图片描述
在这里插入图片描述

档案放置如下图:

在这里插入图片描述
在这里插入图片描述

2.1 Semantic Segmentation

进入labelme\examples\semantic_segmentation 文件夹,有支持转换VOC 格式的代码

代码语言:javascript
复制
cd/d D:\chingi\labelme\examples\semantic_segmentation
在这里插入图片描述
在这里插入图片描述

然后在Anaconda Prompt 执行以下指令进行转换,<data> 是标记图片的文件夹路径、<data_output> 是转换标记格式的文件夹路径、<label.txt path> 是刚刚建立在图片文件夹外的label.txt 的路径

代码语言:javascript
复制
python labelme2voc.py <data> <data_output> --labels <label.txt path>

# It generates:
# - data_dataset_voc/JPEGImages
# - data_dataset_voc/SegmentationClass
# - data_dataset_voc/SegmentationClassVisualization
python labelme2voc.py data_annotated data_dataset_voc --labels labels.txt

转换格式后,会在<data_output> 文件夹中会看到以下文件:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

请注意,标签文件仅包含非常低的标签值(例如 0、4、14),而 255 表示 __ignore__ 标签值(npy 文件中的 -1)。 您可以通过以下方式查看标签 PNG 文件。

代码语言:javascript
复制
labelme_draw_label_png data_dataset_voc/SegmentationClassPNG/2011_000003.png
在这里插入图片描述
在这里插入图片描述

2.2 Instance Segmentation

进入labelme\examples\instance_segmentation 文件夹,有支持转换COCO 及VOC 格式的代码:

代码语言:javascript
复制
cd/d D:\chingi\labelme\examples\instance_segmentation
在这里插入图片描述
在这里插入图片描述

然后在Anaconda Prompt 执行以下指令进行转换,<data> 是标记图片的资料夹路径、<data_output> 是转换标记格式的资料夹路径、<label.txt path> 是刚刚建立在图片资料夹外的label.txt 的路径

代码语言:javascript
复制
# 转换为coco 格式
$ python labelme2coco.py <data> <data_output> --labels <label.txt path>

# It generates:
# - data_dataset_coco/JPEGImages
# - data_dataset_coco/annotations.json
$ python ./labelme2coco.py data_annotated data_dataset_coco --labels labels.txt


# 转换为VOC 格式
$ python labelme2voc.py <data> <data_output> --labels <label.txt path>

# It generates:
# - data_dataset_voc/JPEGImages
# - data_dataset_voc/SegmentationClass
# - data_dataset_voc/SegmentationClassVisualization
# - data_dataset_voc/SegmentationObject
# - data_dataset_voc/SegmentationObjectVisualization
$ python ./labelme2voc.py data_annotated data_dataset_voc --labels labels.txt

若转换为COCO 格式,会在<data_output> 文件夹中会看到以下文件

在这里插入图片描述
在这里插入图片描述

JPEGImages 是原本的图片,Visualization 是框起来的图片,annotations.json 是标记好的label

在这里插入图片描述
在这里插入图片描述

若转换为VOC 格式,会在data_output 文件夹中会看到以下文件:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考目录

https://medium.com/ching-i/segmentation-label-%E6%A8%99%E8%A8%BB%E6%95%99%E5%AD%B8-26b8179d661

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/172450.html原文链接:https://javaforall.cn

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.labelMe安装与数据标注
  • 2.数据格式转换
    • 2.1 Semantic Segmentation
      • 2.2 Instance Segmentation
      • 参考目录
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
      http://www.vxiaotou.com