Skip to content

Latest commit

 

History

History
112 lines (75 loc) · 4.16 KB

transform_cn.md

File metadata and controls

112 lines (75 loc) · 4.16 KB

简体中文|English

LabelMe分割数据标注

本文档简要介绍使用LabelMe软件进行分割数据标注,并将标注数据转换为PaddleSeg和PaddleX支持的格式。

1. 安装LabelMe

LabelMe支持在Windows/macOS/Linux三个系统上安装。

在Python3环境下,执行如下命令,可以快速安装LabelMe。

pip install labelme

LabelMe详细的安装和使用流程,可以参照官方指南

2. 使用LabelMe

2.1 启动LabelMe

在电脑终端输入labelme,稍等会出现LableMe的交互界面。

LableMe交互界面

点击左上角File

  • 勾选Save Automatically,设置软件自动保存标注json文件,避免需要手动保存
  • 取消勾选Save With Image Data,设置标注json文件中不保存data数据

LableMe设置

2.2 预览已标注图片(可选)

执行如下命令,clone下载LabelMe的代码。

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

在LabelMe交互界面上点击OpenDir,选择<path/to/labelme>/examples/semantic_segmentation/data_annotated目录(<path/to/labelme>为clone下载的labelme的路径),打开后可以显示的是语义分割的真值标注。

已标注图片的示意图

2.3 标注图片

将所有待标注图片保存在一个目录下,点击OpenDir打开待标注图片所在目录。

点击Create Polygons,沿着前景目标的边缘画闭合的多边形,然后输入或者选择目标的类别。

标注单个目标的示意图

通常情况下,大家只需要标注前景目标并设置标注类别,其他像素默认作为背景。如果大家需要手动标注背景区域,类别必须设置为_background_,否则格式转换会有问题。

比如针对有空洞的目标,在标注完目标外轮廓后,再沿空洞边缘画多边形,并将空洞指定为特定类别,如果空洞是背景则指定为_background_,示例如下。

带空洞目标的标注示意图

如果在标注过程中某个点画错了,可以鼠标右键选择撤销该点;点击Edit Polygons可以移动多边形的位置,也可以移动某个点的位置;右击点击类别label,可以选择Edit Label修改类别名称。

修改标注的示意图

图片中所有目标的标注都完成后,直接选择下一张图片进行标注。(由于勾选Save Automatically,不再需要手动点击Save保存json文件)

检查标注json文件和图片存放在同一个文件夹,而且是一一对应关系,如下图所示。

LableMe产出的标注文件的示意图

3. 数据格式转换

使用PaddleSeg提供的数据转换脚本,将LabelMe标注工具产出的数据格式转换为PaddleSeg和PaddleX所需的数据格式。

运行以下代码进行转换,第一个input_dir参数是原始图像和json标注文件的保存目录,第二个output_dir参数是转换后数据集的保存目录。

python tools/data/labelme2seg.py input_dir output_dir

格式转换后的数据集目录结构如下:

dataset_dir                     # 根目录
|-- images                      # 原始图像的目录
|   |-- xxx.png(png or other)   # 原始图像
|   |...
|-- annotations                 # 标注图像的目录
|   |-- xxx.png                 # 标注图像
|   |...
|-- class_names.txt             # 数据集的类别名称,背景_background_的类别id是0,其他类别id依次递增