简体中文|English
本文档简要介绍使用LabelMe软件进行分割数据标注,并将标注数据转换为PaddleSeg和PaddleX支持的格式。
LabelMe支持在Windows/macOS/Linux三个系统上安装。
在Python3环境下,执行如下命令,可以快速安装LabelMe。
pip install labelme
LabelMe详细的安装和使用流程,可以参照官方指南。
在电脑终端输入labelme
,稍等会出现LableMe的交互界面。
点击左上角File
:
- 勾选
Save Automatically
,设置软件自动保存标注json文件,避免需要手动保存 - 取消勾选
Save With Image Data
,设置标注json文件中不保存data数据
执行如下命令,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
的路径),打开后可以显示的是语义分割的真值标注。
将所有待标注图片保存在一个目录下,点击OpenDir
打开待标注图片所在目录。
点击Create Polygons
,沿着前景目标的边缘画闭合的多边形,然后输入或者选择目标的类别。
通常情况下,大家只需要标注前景目标并设置标注类别,其他像素默认作为背景。如果大家需要手动标注背景区域,类别必须设置为_background_
,否则格式转换会有问题。
比如针对有空洞的目标,在标注完目标外轮廓后,再沿空洞边缘画多边形,并将空洞指定为特定类别,如果空洞是背景则指定为_background_
,示例如下。
如果在标注过程中某个点画错了,可以鼠标右键选择撤销该点;点击Edit Polygons
可以移动多边形的位置,也可以移动某个点的位置;右击点击类别label,可以选择Edit Label
修改类别名称。
图片中所有目标的标注都完成后,直接选择下一张图片进行标注。(由于勾选Save Automatically
,不再需要手动点击Save
保存json文件)
检查标注json文件和图片存放在同一个文件夹,而且是一一对应关系,如下图所示。
使用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依次递增