LabelImg 是一个用于图像标注的开源工具,它提供了一个用户友好的图形界面,用于手动标记图像中的物体或区域,并生成相应的标注文件。这个工具通常用于计算机视觉和机器学习项目中,尤其是目标检测任务。
LableImg具备以下特性:
如下图:
LabelImg的热键:
热键 | 含义 |
---|---|
Ctrl+S | 保存 |
Ctrl+d | 复制当前标签和矩形框 |
Ctrl+r | 更改默认注释目录(标签文件存放的位置) |
Ctrl+u | 加载目录中的所有图像(鼠标点击Open dir) |
w | 创建标注框(矩阵/三角) |
d | 下一张 |
a | 上一张 |
delete | 删除选定的矩阵框 |
space | 将当前图像标记为已标记 |
说明:如果是有虚拟环境的,建议先创建一个虚拟环境,然后在安装LabelImg;如果不选择虚拟环境,默认为基础环境。
pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple #安装
安装如下图:
使用:打开cmd输入LabelImg/labelimg(大小写不做区分)
LabelImg
打开后,如下图所示:
快捷使用(自动保存):
如图:
保存后的标签文件xml格式:
图片大小、通道数、标签名称、选框位置的参数
<annotation>
<folder>VOC2007folder>
<filename>000030.jpgfilename>
<source>
<database>The VOC2007 Databasedatabase>
<annotation>PASCAL VOC2007annotation>
<image>flickrimage>
<flickrid>340039936flickrid>
source>
<owner>
<flickrid>uma_tyanflickrid>
<name>?name>
owner>
<size>
<width>500width>
<height>375height>
<depth>3depth>
size>
<segmented>0segmented>
<object>
<name>bicyclename>
<pose>Rightpose>
<truncated>0truncated>
<difficult>0difficult>
<bndbox>
<xmin>36xmin>
<ymin>205ymin>
<xmax>180xmax>
<ymax>289ymax>
bndbox>
object>
<object>
<name>personname>
<pose>Unspecifiedpose>
<truncated>0truncated>
<difficult>0difficult>
<bndbox>
<xmin>51xmin>
<ymin>160ymin>
<xmax>150xmax>
<ymax>292ymax>
bndbox>
object>
<object>
<name>personname>
<pose>Frontalpose>
<truncated>0truncated>
<difficult>0difficult>
<bndbox>
<xmin>295xmin>
<ymin>138ymin>
<xmax>450xmax>
<ymax>290ymax>
bndbox>
object>
annotation>
在图形化界面中选择yolo的保存格式。如下图红框:
保存的文件:类别文件和坐标文件
在图形化工具选择对应的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可能更适合;而如果只需要进行目标检测任务,LabelImg提供了更简单的界面和功能来快速创建边界框标注。