目录
一、安装Labelimg与打开
二、使用
1、基本功能介绍
2、快捷键
3、状态栏的工具
4、数据准备
5、标注
三、附录
1、YOLO模式创建标签的样式
2、create ML模式创建标签的样式
3、PascalVOC模式创建标签的样式
一、安装Labelimg与打开
源码网址:LabelImg
labelimg是一款开源的数据标注工具,可以标注三种格式:
voc标签格式,保存为xml文件
yolo标签格式,保存为txt文件
createML标签格式,保存为json格式
安装:
在python虚拟环境命令行中输入:
pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple
打开:
在python虚拟环境命令行中输入:
cd path(进入自己需要标注的图像/图像文件夹path,可选)
# 直接输入labelimg回车打开
labelimg(打开labelimage命令)
二、使用
1、基本功能介绍
2、快捷键
注意:下面快捷键需要点击主页第二个Open Dir设置文件夹后,才能用
按键W:开始标注
按键A:上一张图像
按键D:下一张图像
快捷键 | 含义 |
w | 绘制矩形框 |
d | 下一张图片 |
a | 上一张图片 |
Del | 删除标注框 |
Ctrl+鼠标滚轮 | 放大/缩小图片 |
Ctrl + + | 放大图片 |
Ctrl + - | 缩小图片 |
Ctrl + s | 保存 |
3、状态栏的工具
4、数据准备
这里我建议新建一个名为img_data的文件夹(这个是约定俗成,不这么做也行),里面创建一个名为images的文件夹存放我们需要打标签的图片文件;再创建一个名为labels存放标注的标签文件;最后创建一个名为 classes.txt 的txt文件来存放所要标注的类别名称。
img_data的目录结构如下:
|—img_data
||──images 存放需要打标签的图片文件
||── labels 存放标注的标签文件
||── classes.txt 定义自己要标注的所有类别(这个文件可有可无,但是在我们定义类别比较多的时候,最好有这个创建一个这样的txt文件来存放类别)
5、标注
首先在images这个文件夹放置待标注的图片,这里是三类图片,分别是人、狗和猫。
然后再classes.txt 这个txt文档里面输入定义的类别种类;如下图所示。
进入img_data文件夹当中,在搜索栏里面输入cmd打开终端命令
输入如下的命令打开labelimg。这个命令的意思是打开labelimg工具;打开images文件夹,初始化classes.txt里面定义的类。
labelimg images classes.txt
运行上面的命令就会打开这个labelimg工具
三、附录
1、YOLO模式创建标签的样式
存放标签信息的文件的文件名为与图片名相同,内容由N行5列数据组成。
每一行代表标注的一个目标,通常包括五个数据,从左到右依次为:类别id、x_center、y_center、width、height。
其中:
- 类别id代表标注目标的类别;
- x_center和y_center代表标注框的相对中心坐标;
- width和height代表标注框的相对宽和高。
请注意,这里的中心点坐标、宽和高都是相对数据!!!
存放标签类别的文件的文件名为classes.txt (固定不变),用于存放创建的标签类别。
2、create ML模式创建标签的样式
同样会生成两个文件:
- 存放标签信息的文件(XXX.json);
- 存放标签类别的文件(classes.txt)(若之前存在,则不会再生成)
在生成JSON文件中,每个目标都表示为一个对象,其中包含以下属性:
- image:图像文件的名称。
- annotation:一个包含所有目标的数组,每个目标都表示为一个对象。包括:
- label:目标的类别名称,例如"汽车"、"人"、"自行车"等。
- x和y:目标的左上角坐标,表示其在图像中的位置。
- width和height:目标的宽度和高度,表示其在图像中的大小。
3、PascalVOC模式创建标签的样式
同样会生成两个文件:
- 存放标签信息的文件(XXX.xml);
- 存放标签类别的文件(classes.txt)(若之前存在,则不会再生成)
每个XML文件对应一个图像文件,文件中包含了对图像的解释。具体来说,XML文件里标记了物体框的坐标和类别等信息。对于用户自定义数据,可根据实际情况对这些字段进行标注。
在XML文件中,关键信息包括:
- folder:图像所在文件夹名
- filename:图像文件的名称
- path:图像所在路径
- size:图像的尺寸,包括宽度、高度和通道数
- object:标注框的信息,包括:
- name:物体框对应的类别名称
- bndbox:物体框的信息,包括左上角和右下角的坐标。
- xmin:图像左上角x坐标
- ymin:图像左上角y坐标
- xmax:图像右下角x坐标
- ymax:图像右下角y坐标
此外,XML文件中还可能包含其他相关信息,例如物体框的遮挡情况(pose)、是否被截断(truncated)、是否是难检测(difficult)物体等。这些信息用于辅助标注和评估目标检测任务的性能。
同源的语义分割标注工具:GitHub - labelmeai/labelme: Image Polygonal Annotation with Python (polygon, rectangle, circle, line, point and image-level flag annotation).
参考:标注工具Labelimg安装与使用