《图像标注工具调研》
- qtxu
- 2020年07月30日
对于监督学习算法而言,数据质量决定了任务结果的上限,而算法只是在不断逼近这个上限,对于图像深度学习任务来说,图片本身和图片标注的label的质量和数量,就极为重要。
在计算机视觉中,训练算法的数据主要有三种类型:
注意下图 语义分割(左边蓝色)与目标检测(右边紫色)的差异:
图片的label数据非常珍贵,除了下载别人标注好的公开数据集之外,面对自己特有的任务或特有数据 ,就只能自己亲手标注。但是,标注是个非常耗时耗力的工作,一个便捷的标注工具就显得极为重要。
如果你想标注大量数据从而展开业务,一个完美的标注工具需要满足以下5个要求:
但是非常遗憾,经过调研目前比较活跃的图像标注项目,都不能同时达到以上设计目标。所以,在选择工具的时候,要有所取舍,要清楚,自己的最大的需求是什么。
本文更关注第2点(多人协作),所以按照能否多人协作同时标注,将标注工具分为两类:(1)单机版(2)联机版。
Labelme适用于图像检测任务的数据集制作:
它来自下面的项目:https://github.com/tzutalin/labelImg
其中标签存储功能和“Next Image”、“Prev Image”的设计使用起来比较方便。
该软件最后保存的xml文件格式和ImageNet数据集是一样的。
优点:
缺点:
Labelme适用于图像分割任务的数据集制作:
它来自下面的项目:https://github.com/wkentaro/labelme
该软件实现了最基本的分割数据标注工作,在save后将保持Object的一些信息到一个json文件中
RectLabel适用于图像检测任务的数据集制作:
它来自下面的项目:
https://rectlabel.com/
这是一个适用于Mac OS X的软件,而且可以在apple app store中直接下载。
VGG Image Annotator (VIA)是一款开源的图像标注工具,可标注矩形、圆、椭圆、多边形、点和线。标注完成后,可以导出为csv和json文件格式。一个非常容易使用的标注器,其由牛津机器人实验室开发。它被编码在单个的 html/js 文件里,所以它很容易进行开发!
http://www.robots.ox.ac.uk/~vgg/software/via/
缺点:
Label Studio是一个开源的,可配置的数据注释工具。 其目的是使您能够使用标准化输出格式的最方便的界面标记不同类型的数据。
优点:
缺点:
VoTT 是由微软开发的,它提供了非常棒的用户体验,这可能会在你标注时为你节省大量的时间和精力。而且,创建项目也很直接,所以你可以不用深入阅读其文档就能使用它。
优点:
缺点:
使用快速标记工具,人工,数据管理,强大的API和自动化功能来控制培训数据的完整解决方案。
外观最好看,还可以分类,结果是企业级,需要注册收费。
采用python-flask框架开发,基于B/S方式交互,支持多人同时标注。官网:https://github.com/hzylmf/od-annotation
优点:
缺点:
图像目标检测标注任务:
选中Windows x86-64 executalbe installer,将其下载下来,由于是可执行文件,直接安装即可。
python3安装好之后,打开命令行,依次运行一下命令:
pip install pyqt5
pip install lxml
pip3 install labelImg
如果由于网速慢导致下载失败, 则用国内源下载,(在每个命令后面加
-i https://pypi.doubanio.com/simple
) 如:
pip install pyqt5 -i https://pypi.doubanio.com/simple
双击安装”python-3.6.8-amd64.exe
“
安装时,一定要选择pip,将其安装上
python3安装好之后,打开命令行,进入software文件夹依次运行一下命令:
pip install PyQt5_sip-12.7.2-cp36-cp36m-win_amd64.whl
pip install PyQt5-5.14.2-5.14.2-cp35.cp36.cp37.cp38-none-win_amd64.whl
pip install lxml-4.5.1-cp36-cp36m-win_amd64.whl
pip3 install labelImg-1.8.3-py2.py3-none-any.whl
略
主要步骤:
直接在命令行输入:labelImg
标注页面如下图:
点击“改变存放目录”, 更改标注的输出文件存放地址。
按键盘“W
”键, 用鼠标标记一个标签。 本次有两个标签:Unionpay
(代表银联Logo)、UnionpayApp
(代表云闪付Logo)。
注意:标签名字极为重要,千万不能写错,注意大小写。
注意:框框要包含Logo,但是不要扩的太大, 以“正好”扩住四个角为最优。
标好一张图片之后,按下Ctrl + s
保存,就会在目标目录生成 一个同图片片名字的xml文件。
按键盘“D
”键,继续标注标注下一张,知道标注完成。
注意每次标注完成后,不要忘记保存。
可以参考的labelImg快捷键:
热键 | 功能 | |
---|---|---|
Ctrl + u | 从目录加载所有图像 | |
Ctrl + r | 更改默认注释目标目录 | |
w | 创建一个矩形框 | 共有两个标签:Unionpay & UnionpayApp |
d | 下一张图片 | |
a | 上一张图片 | |
↑→↓← | 键盘箭头移动选定的矩形框 | |
Ctrl + s | 保存 | 每标记一张图片 都要保存一次 |
博客:http://www.kejik.com/article/7ci22c1c.html
官网:https://labelstud.io/guide/tasks.html
docker:https://hub.docker.com/r/heartexlabs/label-studio
github: https://github.com/heartexlabs/label-studio
pip install label-studio
在文件路径中,新建一个目录 labelStudio
准备文件:
<View>
<Header value="银联Logo检测项目标注">Header>
<Image name="image" value="$image"/>
<RectangleLabels name="label" toName="image">
<Label value="Unionpay" background="green"/>
<Label value="UnionpayApp" background="blue"/>
RectangleLabels>
View>
将路径切换至 LabelStudio文件夹 ,在该路径 labelStudio/ 初始化项目,创建一个名叫 my_project 的项目,命令行执行:
label-studio init --input-path=/home/qtxu/project/labelStudio/imagedata/ --input-format=image-dir --label-config=/home/qtxu/project/labelStudio/config.xml --allow-serving-local-files labeling_project
label-studio init --input-path=/Users/xuqingtang/programming/PycharmProjects/labelStudio/imagedata/ --input-format=image-dir --label-config=/Users/xuqingtang/programming/PycharmProjects/labelStudio/config.xml --allow-serving-local-files labeling_project
由于labelStudio只能通过json上传数据路径,所以,命令中的--input-format=image-dir
的意思就是自动从该文件夹中生成所需的文件路径json。
此时,在labelStudio/路径下生成以下文件:
├── my_project
│ ├── config.json // 项目设置
│ ├── tasks.json // 所有导入的任务都以{task_id:task}之类的字典表示
│ ├── config.xml // 当前项目标签 配置
│ ├── completions // 目录,每个task_id一个完成数存储在一个文件中
│ │ ├── <task_id>.json
│ ├── export // 存储存档,所有结果均通过Web UI导出
│ │ ├── 2020-03-06-15-23-47.zip
进入 /labelStudio/
文件夹 输入以下命令:
label-studio start ./labeling_project
# 或者
nohup label-studio start ./labeling_project &
tail -100f nohup.out
导出为VOC XML
网关 -> nat-da56 -> DNAT规则 -> 把8140暴露出来 -> 访问:http://117.144.188.244:8140/
- 《计算机视觉领域最好用的 5 个开源图像标注工具》 :https://www.infoq.cn/article/OOFtcgKNej1TJvW6u7FR
- 《深度学习图像标注工具汇总》:https://blog.csdn.net/chaipp0607/article/details/79036312