Labelme是一款经典的标注工具,支持目标检测、语义分割、实例分割等任务。今天针对分割任务的数据标注进行简单的介绍。开源项目地址:
https://github.com/wkentaro/labelme


文章目录

  • 1 环境配置与安装
    • 1.1 创建conda虚拟环境(建议)
    • 1.2 安装Labelme
  • 2 简单使用
    • 2.1 创建label标签文件
    • 2.2 启动labelme
    • 2.3 打开文件/文件夹
    • 2.4 设置保存结果路径
    • 2.5 标注目标
    • 2.6 保存json文件格式
  • 3 格式转换
    • 3.1 转换语义分割标签
    • 3.2 转换实例分割标签

1 环境配置与安装

1.1 创建conda虚拟环境(建议)

为了不影响其他python环境,建议新建一个环境。(不想新建可以跳过)
这里以创建一个名为labelme_env,python版本为3.8的环境为例:

conda create -n labelme_env python=3.8

创建完成后,进入新环境:

conda activate labelme_env

1.2 安装Labelme

安装非常简单,直接使用pip安装即可:

pip install labelme

安装完成后在终端输入labelme即可启动:

labelme


2 简单使用

这里建议大家按照我提供的目录格式事先准备好数据,然后在该根目录下启动labelme(注意启动目录位子,因为标注json文件中存储的图片路径都是以该目录作为相对路径的)

├── img_data: 存放你要标注的所有图片
├── data_annotated: 存放后续标注好的所有json文件
└── label.txt: 所有类别信息

2.1 创建label标签文件

虽然在labelme中能够在标注时添加标签,但我个人强烈建议事先创建一个label.txt标签(放在上述位置中),然后启动labelme时直接读取。标签格式如下:

__ignore__
_background_
dog
cat

每一行代表一个类型的名称,前两行是固定格式__ignore___background_都加上,否则后续使用作者提供的转换脚本(转换成PASCAL VOC格式和MS COCO格式)时会报错。也就是从第三行开始就是我们需要分割的目标类别。这里以分割猫狗为例。

2.2 启动labelme

在创建好标签后,启动labelme并读取标签文件(注意启动根目录),其中--labels指定了标签文件的路径。

labelme --labels label.txt

读取标签后,我们在界面右侧能够看到Label List中已经载入了刚刚我们自己创建的标签文件,并且不同类别用不同的颜色表示。

2.3 打开文件/文件夹

点击界面左侧的OpenOpenDir打开文件或文件夹,这里就选择我们刚刚说好的img_data(该文件夹中存储了所有后续需要标注的图片):


2.4 设置保存结果路径

养成良好习惯,先将保存路径设置好。

  • 先点击左上角FileChange Output Dir设置标注结果的保存目录,这里就设置成前面说好的data_annotated
  • 建议将Save With Image Data取消掉,默认是选中的。如果选中,会在保存的标注结果中将图像数据也保存在.json文件中(个人觉得没必要,还占空间)。


2.5 标注目标

  • 首先点击左侧的CreatePolygons按钮开始绘制多边形,然后用鼠标标记一个一个点把目标边界给标注出来(鼠标放置在第一个点上,点击一下会自动闭合边界)。标注后会弹出一个选择类别的选择框,选择对应类别即可。
  • 如果标注完一个目标后想修改目标边界,可以点击工具左侧的EditPolygons按钮,然后选中要修改的目标,拖拉边界点即可进行微调。如果要在边界上新增点,把鼠标放在边界上点击鼠标右键选择Add Point to Edge即可新增边界点。如果要删除点,把鼠标放在边界点上点击鼠标右键选择Remove Selected Point即可删除边界点。

  • 也可以直接在图片上反键选择其他的标注图形,除多边形Polygons外还有矩形RetangleCircle圆形、Point点等。

  • 标注完一张图片后,点击界面左侧的Save按钮即可保存标注结果,默认每张图片的标注信息都用一个json文件存储。

2.6 保存json文件格式

标注得到的json文件格式如下,将一张图片中的所有目标的坐标都保存在shapes列表中,列表中每个元素对应一个目标,其中label记录了该目标的类别名称。points记录了一个目标的左右坐标信息。其他信息不在赘述。根据以下信息,其实自己就可以写个脚本取读取目标信息了。

{"version": "4.5.9","flags": {},"shapes": [{"label": "dog","points": [[108.09090909090907,687.1818181818181],....[538.090909090909,668.090909090909],[534.4545454545454,689.0]],"group_id": null,"shape_type": "polygon","flags": {}}],"imagePath": "../img_data/1.jpg","imageData": null,"imageHeight": 690,"imageWidth": 690
}

3 格式转换

其实如果刚刚弄清楚了生成的json文件格式,就可以自己写脚本把标签转换成任意自己想要的形式。

3.1 转换语义分割标签

原作者为了方便,也提供了一个脚本,帮我们方便的将json文件转换成PASCAL VOC的语义分割标签格式。示例项目链接:https://github.com/wkentaro/labelme/tree/master/examples/semantic_segmentation.
在该链接中有个labelme2voc.py脚本,将该脚本下载下来后,放在上述项目根目录下,执行以下指令即可(注意,执行脚本的根目录必须和刚刚启动labelme的根目录相同,否则会出现找不到图片的错误)。其中data_annotated是刚刚标注保存的json标签文件夹,data_dataset_voc是生成PASCAL VOC数据的目录。

python labelme2voc.py data_annotated data_dataset_voc --labels label.txt

执行后会生成如下目录:

- data_dataset_voc/JPEGImages
- data_dataset_voc/SegmentationClass
- data_dataset_voc/SegmentationClassPNG
- data_dataset_voc/SegmentationClassVisualization
- data_dataset_voc/class_names.txt

其中JPEGImages就和之前PASCAL VOC数据讲解中说的一样,就是存储原图像文件。而SegmentationClassPNG就是语义分割需要使用的PNG标签图片。

class_names.txt存储的是所有的类别信息,包括背景。

_background_
dog
cat

3.2 转换实例分割标签

原作者为了方便,这里提供了两个脚本,帮我们方便的将json文件转换成PASCAL VOC的实例分割标签格式以及MS COCO的实例分割标签格式。示例项目链接:https://github.com/wkentaro/labelme/tree/master/examples/instance_segmentation.
在该链接中有个labelme2voc.py脚本,将该脚本下载下来后,执行以下指令即可(注意,执行脚本的根目录必须和刚刚启动labelme的根目录相同,否则会出现找不到图片的错误)。其中data_annotated是刚刚标注保存的json标签文件夹,data_dataset_voc是生成PASCAL VOC数据的目录。

python labelme2voc.py data_annotated data_dataset_voc --labels label.txt

执行后会生成如下目录:

- data_dataset_voc/JPEGImages
- data_dataset_voc/SegmentationClass
- data_dataset_voc/SegmentationClassPNG
- data_dataset_voc/SegmentationClassVisualization
- data_dataset_voc/SegmentationObject
- data_dataset_voc/SegmentationObjectPNG
- data_dataset_voc/SegmentationObjectVisualization
- data_dataset_voc/class_names.txt

除了刚刚讲的语义分割文件夹外,还生成了针对实例分割的标签文件,主要就是SegmentationObjectPNG目录:

在该链接中有个labelme2coco.py脚本,将该脚本下载下来后,执行以下指令即可(注意,执行脚本的根目录必须和刚刚启动labelme的根目录相同,否则会出现找不到图片的错误)。其中data_annotated是刚刚标注保存的json标签文件夹,data_dataset_coco是生成MS COCO数据类型的目录。

python labelme2coco.py data_annotated data_dataset_coco --labels label.txt

如果执行中提示安装pycocotools包那么就pip安装下就行了。
Linux系统直接:

pip install pycocotools

Windows系统使用:

pip install pycocotools-windows

执行后会生成如下目录:

- data_dataset_coco/JPEGImages
- data_dataset_coco/annotations.json

其中annotations.json就是MS COCO的标签数据文件,如果不了解可以看下我之前写的MS COCO介绍。

Labelme分割标注软件使用相关推荐

  1. EISeg分割标注软件使用

    官方原话:EISeg(Efficient Interactive Segmentation)是基于飞桨开发的一个高效智能的交互式分割标注软件.涵盖了高精度和轻量级等不同方向的高质量交互式分割模型,方便 ...

  2. 图像语义分割标注软件EISeg

    paddle 语义分割标注软件: https://github.com/PaddleCV-SIG/EISeghttps://github.com/PaddleCV-SIG/EISeg

  3. 分享一款好用的分割标注软件

    GitHub - qupath/qupath: QuPath - Bioimage analysis & digital pathology

  4. Windows下安装EISeg交互式分割标注软件

    EISeg 下载 配置环境 启动 下载模型 GitHub地址 Gitee码云地址 我的资源里面也有 下载 进入GitHub开源地址,点击图示位置下载zip文件 码云同理 配置环境 然后把这个放入你自定 ...

  5. EISeg——应用于语义分割的自动标注软件

    1.基本介绍 EISeg(Efficient Interactive Segmentation)是以RITM及EdgeFlow算法为基础,基于飞桨开发的一个高效智能的交互式分割标注软件.涵盖了通用.人 ...

  6. (18)语义分割--paddle--EISeg自动标注软件的使用和自己数据集的测试

    1.主要参考 (1)使用过程,建议先看一下下面博主的视频 eiseg简单教学_哔哩哔哩_bilibili (2)软件使用,主要参考! 百度飞浆EISeg高效交互式标注分割软件的使用教程_Leonard ...

  7. 关于在Win10系统将标注软件labelme打包生成.exe可执行文件

    由于在学习语义分割框架,安装好相关环境后,下一步就是准备数据集进行训练了,网上也找了一些数据集,但还没有开始训练.因为语义分割的数据集和目标检测有一些区别,加之以前自己制作目标检测数据集都是在已有基础 ...

  8. 深度学习图像标签标注软件labelme超详细教程

    文章目录 前言 一.labelme是什么? 二.快速安装使用 1.windows安装 2.linux安装 3.macos安装 安装成功的哑子 三.界面说明 四.为图像创建类标签 4.1 参数介绍 4. ...

  9. 语义分割标注工具——labelme

    参考下面网址: 感谢up主:https://www.bilibili.com/video/BV1xT4y1j7A9?from=search&seid=2903997967250679674 在 ...

最新文章

  1. Intel SGX Remote Attestation实例代码安装和执行,笔记
  2. 部署harbor1.2.0开启ldap验证
  3. laravel 邮件SwiftMailer
  4. why my cloudDatabaseconfig bean Initialization failed
  5. Oracle 9i安全审计技术在电子政务中的应用
  6. python+源码如何编译安装mysql_Python源码安装cx_Oracle
  7. 小程序转发功能(类似于美团红包转发功能)的简单实现
  8. 6个UI面试技巧让你轻松入职大公司
  9. 程序员新电脑常用软件安装
  10. 工具:dlf 强制删除文件或文件夹
  11. 仍是在思过崖攀爬的人
  12. 计算机版学猫叫歌,抖音学猫叫是什么歌
  13. 浏览器的收藏夹在哪里打开
  14. 冲击红队第一天 - Web安全介绍与基础入门
  15. 企业WiFi安全管家有何好处?数据安全最重要
  16. [19]Window管理框架WMF(Window Management Framework) 5.0 VS Window管理框架WMF(Window Management Framework) 5.1
  17. Unity中特效透明度动态设置
  18. 数据恢复软件EasyRecovery帮你解决设备受限的烦恼
  19. 快手去水印解析获取源标题、作者、头像、封面图以及源视频下载地址
  20. IP(OSPF综合实验)

热门文章

  1. Typora文档快捷键失效解决方法
  2. 同步/异步,阻塞/非阻塞概念深度解析
  3. 如何开启php的gd库
  4. Vector - CAPL - CANoe硬件配置函数 - 02
  5. 百度地图自定义覆盖物,随地图缩放、拖曳偏移解决办法
  6. Sharing Birthdays
  7. 2022-2027年(新版)中国果酸产业运营状况与竞争趋势分析报告
  8. 大話带隙基准(Bandgap, BG) Bandgap voltage reference設計
  9. x86 : 无法将“x86”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
  10. Alienware外星人原装系统出厂系统原机开箱系统远程安装,带F12恢复功能SupportAssist OS Recovery