Labelme教程
在进行Semantic Segmentation(语义分割)研究时,图像标注是整个任务的基础和核心内容之一,图像标注是一项庞大且繁琐的工作,且标注图像的好坏,直接影响模型训练的效果。目前主要有人工标注、半自动标注和自动标注三种方式,其中手动标注的图像精度更高,手动标注常用的工具是Labelme(GitHub源代码),本文将对Labelme的安装和使用进行介绍。
Labelme可以在Windows、MacOS和Linux系统上安装和使用,Labelme基于QT(PyQt)设计图形界面,编程语言采用的是Python。Labelme具有以下功能:
- 对图像进行多边形,矩形,圆形,多段线,线段,点形式的标注(可用于目标检测,图像分割,等任务)。
- 对图像进行进行 flag 形式的标注(可用于图像分类 和 清理 任务)。
- 视频标注
- 生成 VOC 格式的数据集(for semantic / instance segmentation)
- 生成 COCO 格式的数据集(for instance segmentation)
1. MiniConda环境安装
(1)下载MiniConda

Conda配置国内源:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda
conda config --set show_channel_urls yes
(2)在硬盘上创建一个文件夹用于存放标配住图片,进入该文件夹,在地址栏输入cmd回车


(3)创建环境,名称为labelme
conda create -n labelme
(4)激活环境,每次使用都要激活
conda activate labelme
2. Labelme安装
(1)采用Conda安装
conda install pyqt #安装Qt
pip install labelme
(2)采用pip安装
pip install pyqt5
pip install labelme
3. 打开Labelme
直接在控制台输入 labelme 回车即可,打开后Labelme主界面如下:

打开Labelme时可以添加命令行参数,主要命令行参数如下:
--flags: comma separated list of flags 或者 file containing flags
--labels:comma separated list of labels 或者 file containing labels
--nodata:stop storing image data to JSON file
--nosortlabels:stop sorting labels
--output:指定输出文件夹
3. 标注
(1)打开labelme程序,点击Open打开一幅待标注图像,然后点击Create Polygons按钮

(2)进行标注,需要注意的是,根据分类任务的不同,标注方式也不同,以上图为例,如果只是想区分背景和猫两类(语义分割),则可以将猫标注在一个多边形内,如果想要区分出猫,还要区分出是哪一只猫(全景分割),则需要将三只猫分别标注,本文以第二种方式举例。

如上图所示,如果是语义分割,则只需要将三只猫绘制在同一个多边形内,然然输入类别,GroupID可以不输入,如果是全景分割,则需要将三只猫分别标注出,并用GroupID进行区分。
4.标注图像导出
(1)将所有需要导出的标注图像和对应的json文件放置在同一目录下,并在该目录下启动命令行
(2)调用labelme_json_to_ dataset <json文件名>.json,导出成功后会自动生成如下文件
- *.png
- info.yaml
- label.png
- label_names.txt
- label_viz.png

