LabelImg使用笔记
文章目录
- LabelImg使用笔记
- 一、LabelImg简介
- 1.1、特性
- 1.2、LabelImg的热键
- 二、LabelImg安装
- 三、3种格式的使用
- 3.1、VOC格式标注
- 3.2、yolo格式标注
- 3.3、json格式
- 四、LabelMe 和 LabelImg适用场景
一、LabelImg简介
LabelImg 是一个用于图像标注的开源工具,它提供了一个用户友好的图形界面,用于手动标记图像中的物体或区域,并生成相应的标注文件。这个工具通常用于计算机视觉和机器学习项目中,尤其是目标检测任务。
1.1、特性
LableImg具备以下特性:
- 支持多种表注格式(Pascal VOC 格式、YOLO 格式、COCO 格式)
- 跨平台支持: LabelImg 是一个跨平台的工具,可以在不同的操作系统上运行
- 支持快捷键: LabelImg 提供了一些快捷键,以加快标注的速度
如下图:
1.2、LabelImg的热键
LabelImg的热键:
热键 | 含义 |
---|---|
Ctrl+S | 保存 |
Ctrl+d | 复制当前标签和矩形框 |
Ctrl+r | 更改默认注释目录(标签文件存放的位置) |
Ctrl+u | 加载目录中的所有图像(鼠标点击Open dir) |
w | 创建标注框(矩阵/三角) |
d | 下一张 |
a | 上一张 |
delete | 删除选定的矩阵框 |
space | 将当前图像标记为已标记 |
二、LabelImg安装
说明:如果是有虚拟环境的,建议先创建一个虚拟环境,然后在安装LabelImg;如果不选择虚拟环境,默认为基础环境。
conda创建虚拟环境以及库的安装
pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple #安装
安装如下图:
使用:打开cmd输入LabelImg/labelimg(大小写不做区分)
LabelImg
打开后,如下图所示:
快捷使用(自动保存):
三、3种格式的使用
3.1、VOC格式标注
如图:
保存后的标签文件xml格式:
图片大小、通道数、标签名称、选框位置的参数
<annotation><folder>VOC2007</folder><filename>000030.jpg</filename><source><database>The VOC2007 Database</database><annotation>PASCAL VOC2007</annotation><image>flickr</image><flickrid>340039936</flickrid></source><owner><flickrid>uma_tyan</flickrid><name>?</name></owner><size><width>500</width><height>375</height><depth>3</depth></size><segmented>0</segmented><object><name>bicycle</name> <pose>Right</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>36</xmin><ymin>205</ymin><xmax>180</xmax><ymax>289</ymax></bndbox></object><object><name>person</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>51</xmin><ymin>160</ymin><xmax>150</xmax><ymax>292</ymax></bndbox></object><object><name>person</name><pose>Frontal</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>295</xmin><ymin>138</ymin><xmax>450</xmax><ymax>290</ymax></bndbox></object>
</annotation>
3.2、yolo格式标注
在图形化界面中选择yolo的保存格式。如下图红框:
保存的文件:类别文件和坐标文件
3.3、json格式
在图形化工具选择对应的JSON格式
保存后的json文件文件:类别+坐标
[{"image": "000030.jpg","annotations": [{"label": "person","coordinates": {"x": 99.5,"y": 226,"width": 97,"height": 132}},{"label": "person","coordinates": {"x": 372.5,"y": 214,"width": 161,"height": 156}},{"label": "bike","coordinates": {"x": 108,"y": 247,"width": 148,"height": 84}}]}
]
四、LabelMe 和 LabelImg适用场景
LabelMe 和 LabelImg 都是用于图像标注的工具,但它们有不同的特点和用途,可以根据具体需求来选择使用哪一个。
LabelMe:
- 用途: LabelMe 主要用于复杂的图像标注任务,特别适用于语义分割和实例分割任务。它允许用户创建像素级的标注,以标识图像中的对象、区域和物体。
- 功能: LabelMe 提供了丰富的交互式标注工具,包括绘制多边形、矩形或自定义形状的区域,以进行复杂的标注。它支持多种标注文件格式,具有数据管理和协作功能。
- 优点: 适用于实例分割、复杂标注任务和多人协作。能够创建详细的像素级标注。
- 缺点: 对于简单的目标检测任务,可能显得过于复杂,因为它更专注于像素级标注。
LabelImg:
- 用途: LabelImg 主要用于目标检测任务,特别适合创建边界框标注。它通常用于标记物体的位置和大小。
- 功能: LabelImg 提供了简单而直观的图形用户界面,用户可以加载图像并使用矩形工具创建目标边界框。它支持多种标注文件格式,适用于单人标注任务。
- 优点: 适用于目标检测任务,界面简单易用,适合快速标注。
- 缺点: 对于像素级标注或实例分割任务,功能较为有限。
如果你需要进行像素级标注、实例分割或复杂标注任务,LabelMe可能更适合;而如果只需要进行目标检测任务,LabelImg提供了更简单的界面和功能来快速创建边界框标注。