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提供了更简单的界面和功能来快速创建边界框标注。