[图像算法]-数据标注软件labelme详解

文章目录


1. Labelme 是什么?

Labelme 是一个图形界面的图像标注软件。其的设计灵感来自于 http://labelme.csail.mit.edu/ 。它是用 Python 语言编写的,图形界面使用的是 Qt(PyQt)。

2. Labelme 能干啥?

  • 对图像进行多边形,矩形,圆形,多段线,线段,点形式的标注(可用于目标检测,图像分割,等任务)。
  • 对图像进行进行 flag 形式的标注(可用于图像分类 和 清理 任务)。
  • 视频标注
  • 生成 VOC 格式的数据集(for semantic / instance segmentation)
  • 生成 COCO 格式的数据集(for instance segmentation)

3. Labelme 安装要求

  • Ubuntu / macOS / Windows
  • Python2 / Python3
  • PyQt4 / PyQt5 / PySide2

4. Labelme 安装方法

Labelme 安装方法大体可分为两大类:

4.1 Anaconda
首先安装 Anaconda,然后运行下列命令:

##################
## for Python 2 ##
##################
conda create --name=labelme python=2.7
source activate labelme
# conda install -c conda-forge pyside2
conda install pyqt
pip install labelme
# 如果想安装最新版本,请使用下列命令安装:
# pip install git+https://github.com/wkentaro/labelme.git

##################
## for Python 3 ##
##################
conda create --name=labelme python=3.6
source activate labelme
# conda install -c conda-forge pyside2
# conda install pyqt
pip install pyqt5  # pyqt5 can be installed via pip on python3
pip install labelme

4.2 Docker
首先安装 Docker,然后运行下列命令:

wget https://raw.githubusercontent.com/wkentaro/labelme/master/labelme/cli/on_docker.py -O labelme_on_docker
chmod u+x labelme_on_docker

# Maybe you need http://sourabhbajaj.com/blog/2017/02/07/gui-applications-docker-mac/ on macOS
./labelme_on_docker examples/tutorial/apc2016_obj3.jpg -O examples/tutorial/apc2016_obj3.json
./labelme_on_docker examples/semantic_segmentation/data_annotated

4.3 Ubuntu

# Ubuntu 14.04 / Ubuntu 16.04
# Python2
# sudo apt-get install python-qt4  # PyQt4
sudo apt-get install python-pyqt5  # PyQt5
sudo pip install labelme
# Python3
sudo apt-get install python3-pyqt5  # PyQt5
sudo pip3 install labelme

4.4 macOS

# macOS Sierra
brew install pyqt  # maybe pyqt5
pip install labelme  # both python2/3 should work

# or install standalone executable / app
brew install wkentaro/labelme/labelme
brew cask install wkentaro/labelme/labelme

4.5 Windows
首先按照4.1的操作安装,然后进行如下操作:

# Windows 上的 Pillow5 会导致 dll 加载错误,所以请安装 Pillow4。
# 详情见:https://github.com/wkentaro/labelme/pull/174
conda install pillow=4.0.0

5. Labelme 使用教程

Labelme 能够进行多种形式的图像数据标注。Labelme 以 JSON 文件存储标注信息。下面介绍一些 labelme 软件的基本操作。

labelme  # 打开labelme软件
labelme apc2016_obj3.jpg  # 指定图像文件
labelme apc2016_obj3.jpg -O apc2016_obj3.json  # 保存后关闭labelme
labelme apc2016_obj3.jpg --nodata  # JSON文件不包含图像数据,而包含图像的相对路径
labelme apc2016_obj3.jpg \
  --labels highland_6539_self_stick_notes,mead_index_cards,kong_air_dog_squeakair_tennis_ball  # 指定 label list

labelme data_annotated/  # 指定图像文件夹
labelme data_annotated/ --labels labels.txt  # 使用文件指定 label list

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:指定输出文件夹
    关于命令行参数的更多信息,可以使用 labelme --help 命令查看。

5.1 分类标注

使用 labelme 进行图像分类标注的教程详见:labelme_classification

在这里插入图片描述

5.2 目标检测标注

使用 labelme 进行目标检测标注的教程详见:labelme_bbox_detection

在这里插入图片描述

5.3 场景分割标注

使用 labelme 进行场景分割标注的教程详见:labelme_semantic_segmentation

在这里插入图片描述

5.4 实例分割标注

使用 labelme 进行实例分割标注的教程详见:labelme_instance_segmentation

在这里插入图片描述

5.5 视频标注

使用 labelme 进行视频标注的教程详见:labelme_video_annotation

在这里插入图片描述

5.6 其它形式的标注

Labelme 除了能进行上面形式的标注,还能进行下面形式的标注:

  • 多边形
  • 矩形
  • 圆形
  • 多段线
  • 线段

使用 labelme 进行其它形式的标注的教程详见:labelme_primitives

在这里插入图片描述

5.7 命令行工具

1. labelme_draw_json
使用该命令可以快速查看JSON格式的标注。
2. labelme_json_to_dataset
使用该命令可以将JSON文件转为一组图像和标签文本文件。
3. labelme_draw_label_png
将label文本文件以图例的形式绘制到PNG格式的标签上,并显示出来。

关于上面三个命令的详细使用的方法见:命令行工具

6. Labelme 常见问题


7. Testing

pip install hacking pytest pytest-qt
flake8 .
pytest -v tests


8. Developing

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

# Install anaconda3 and labelme
curl -L https://github.com/wkentaro/dotfiles/raw/master/local/bin/install_anaconda3.sh | bash -s .
source .anaconda3/bin/activate
pip install -e .

9. 将 labelme 打包成可执行文件


下面的代码说明了如何构建独立可执行文件(Linux,Windows,macOS)。当然,我们也发布了预编译版本

# Setup conda
conda create --name labelme python==3.6.0
conda activate labelme

# Build the standalone executable
pip install .
pip install pyinstaller
pyinstaller labelme.spec
dist/labelme --version
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,820评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,648评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,324评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,714评论 1 297
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,724评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,328评论 1 310
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,897评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,804评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,345评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,431评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,561评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,238评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,928评论 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,417评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,528评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,983评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,573评论 2 359

推荐阅读更多精彩内容