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

语义分割如何做标注_语义分割转实例分割在进行Segmentation训练之前需要准备训练集和验证集,本文将要来介绍如何使用LabelMe进行标记。LabelMe是个可以绘制多边形、矩形、圆形、直线、点的一套标记工具,可用于分类、目标检测、语义分割、实例分割任务上的数据标注。1.label安装与数据标注首先安装LabelMe,我使用Anaconda进行安装。打开AnacondaPrompt执行以下指令:pipinstalllabelme接着输入labelme会出现以下UI介面,点选OpenDir选择要标记的图片资料

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

1.labelMe安装与数据标注

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

pip install labelme

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

labelme

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

画好后填入要标记的label
在这里插入图片描述
若有多个相同类别的目标物也选择一样的label
在这里插入图片描述
再按左边的Save,最后选择左边的Next Image

2.数据格式转换

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

git clone https://github.com/wkentaro/labelme

并且在刚刚标记好的图片资料夹外,建立一个label.txt,内容必须要有__ignore__, _background_
在这里插入图片描述
档案放置如下图:
在这里插入图片描述

2.1 Semantic Segmentation

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

cd/d D:\chingi\labelme\examples\semantic_segmentation

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

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 文件。

labelme_draw_label_png data_dataset_voc/SegmentationClassPNG/2011_000003.png

在这里插入图片描述

2.2 Instance Segmentation

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

cd/d D:\chingi\labelme\examples\instance_segmentation

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

# 转换为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.net/172450.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 选择排序——C语言代码

    选择排序——C语言代码介绍选择排序下面是我在网上找的示例图,便于更好地理解选择排序通过这个图我们明白K只是一个标记,它标记的是比较中小的数。我们第一轮我们可以找到所有数中最小的数,然后让它和处于第一位的数进行位置交换,第二轮比较时,第一轮找出的最小数不在参加比较,然后我们可以找出剩下数中最小的数,之后的每轮同理。下面大家看一下我的代码首先要明白for(j=i+1;j&lt;=9;j++) { if(a[k]&…

    2022年6月25日
    37
  • busybox最新版(busybox apk)

    把”busybox-armv6l”重命名为”busybox”;将busybox传入手机的SD卡,打开terminal(Linux,Mac)或cmd(Windows)adbpush~/Desktop/busybox/mnt/sdcard其中的~/Desktop请根据自己的情况替换成正确的路径输入以下命令,为了在/system目录写入文件adbshellsumount-oremount,r…

    2022年4月12日
    90
  • NAT网关之SNAT进阶使用(一)SNAT POOL

    NAT网关之SNAT进阶使用(一)SNAT POOL

    2021年5月25日
    152
  • 关于cBridge2.0,你不能错过的关键信息(三)!

    关于cBridge2.0,你不能错过的关键信息(三)!上篇ELI5短文中我们讨论了cBridge2.0如何解决「自管」流动性模型中与状态守卫者网络(SGN)的协调问题。今天我们来继续讨论自管模型的最后一个话题:cBridge2.0的设计如何利用SGN为非托管桥接系统中的「作恶问题」提供有史以来第一个解决方案。那么什么是「作恶」呢?首先我们要知道,在cBridge2.0自管桥接模型中,对于桥接节点和用户来说,跨链交易的发生总是需要两个步骤,其顺序如下: 用户的第1步:向源链上的桥接节点进行「时间锁定」的转账,发起转账的用户…

    2022年5月4日
    56
  • sed与awk的使用

    sed与awk的使用

    2021年5月31日
    93
  • 简述SpringAOP的实现原理_spring AOP

    简述SpringAOP的实现原理_spring AOPAOP用Spring需要导入包<dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.9.4</version> </dependency>方式一:使用Spring接口编写javapackage com.kuang.log;

    2022年8月8日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号