目录
[一、LabelImg 简介](#一、LabelImg 简介)
[Windows 系统](#Windows 系统)
[macOS 系统](#macOS 系统)
[Linux 系统](#Linux 系统)
[1. PASCAL VOC 格式(XML)](#1. PASCAL VOC 格式(XML))
[2. YOLO 格式(TXT)](#2. YOLO 格式(TXT))
一、LabelImg 简介
LabelImg 是一款开源的图像标注工具,主要用于为机器学习项目创建标注数据集。它支持多种标注格式,包括:
-
PASCAL VOC(.xml 文件)
-
YOLO(.txt 文件)
-
CreateML(JSON 文件)
我们使用的标注工具是labelimg,接下来详细讲解如果安装使用labelimg。
labelimg 只支持矩形标注,如果需要更精准的多边形标准,可以使用labelme。
二、安装方法
Windows 系统
bash
# 方法1:使用 pip 安装(需先安装 Python)
pip install labelImg
# 方法2:下载预编译的 exe 文件
# 访问 GitHub 仓库下载最新版本
macOS 系统
bash
brew install python3
pip3 install labelImg
labelImg # 启动
Linux 系统
bash
sudo apt-get install pyqt5-dev-tools
pip3 install labelImg
labelImg
三、基本界面介绍
启动 LabelImg 后,界面主要分为以下区域:
-
菜单栏:文件操作、设置等
-
工具栏:常用功能快捷按钮
-
图像显示区:显示待标注图像
-
文件列表区:显示文件夹中的图像文件
-
标注列表区:显示当前图像的所有标注框




四、完整标注流程
步骤1:准备工作
- 创建项目文件夹结构:
text
project/
├── images/ # 存放原始图片
├── annotations/ # 存放标注文件
└── classes.txt # 类别列表文件
- 创建
classes.txt,每行一个类别名称:
text
person
car
dog
cat
步骤2:打开标注工具
bash
# 启动 LabelImg
labelImg
# 或者指定图片文件夹
labelImg [图片文件夹路径]
步骤3:设置参数
-
选择标注格式:
-
View→Use default label或Use label.txt file -
选择
labels.txt文件路径
-
-
设置保存路径:
File→Change Save Dir选择保存标注文件的目录
步骤4:开始标注
-
打开图像文件夹:
File→Open Dir选择图片文件夹
-
创建标注框:
-
按
W键或点击Create RectBox按钮 -
在目标物体周围拖动鼠标绘制边界框
-
选择类别标签(或手动输入)
-
点击
OK完成
-
-
调整标注框:
-
拖动边界框调整位置和大小
-
右键标注框可删除或修改类别
-
步骤5:保存和导航
-
保存标注:
-
按
Ctrl+S或点击Save保存当前标注 -
按
Ctrl+Shift+S自动保存并跳转到下一张
-
-
图像导航:
-
上一张:
A或← -
下一张:
D或→ -
跳转到指定图像:滚动文件列表
-
五、常用快捷键
| 快捷键 | 功能 |
|---|---|
W |
创建边界框 |
Ctrl + S |
保存当前标注 |
Ctrl + Shift + S |
保存并下一张 |
A / ← |
上一张图像 |
D / → |
下一张图像 |
Ctrl + D |
复制当前标注框 |
Del |
删除选中标注框 |
Ctrl + + |
放大图像 |
Ctrl + - |
缩小图像 |
Space |
标记为已验证 |
Ctrl + R |
修改默认标注文件夹 |
六、标注规范与技巧
标注原则
-
边界框贴合:尽量紧密包围目标物体
-
完整性:确保目标完全在框内
-
一致性:同类物体使用相同标注标准
-
遮挡处理:部分遮挡的物体仍应标注完整形状
提高效率的技巧
-
批量操作:
-
先快速标记所有同类别物体
-
再统一调整边界框
-
-
复制粘贴:
- 相似物体可复制标注框后微调
-
使用预设标签:
- 提前设置好常用类别,减少手动输入
七、输出格式说明
1. PASCAL VOC 格式(XML)
xml
<annotation>
<folder>images</folder>
<filename>image1.jpg</filename>
<size>
<width>1920</width>
<height>1080</height>
<depth>3</depth>
</size>
<object>
<name>person</name>
<bndbox>
<xmin>100</xmin>
<ymin>200</ymin>
<xmax>300</xmax>
<ymax>400</ymax>
</bndbox>
</object>
</annotation>
2. YOLO 格式(TXT)
text
# class_id center_x center_y width height
0 0.5 0.6 0.2 0.3
-
坐标已归一化(0-1)
-
每个物体一行
八、常见问题解决
问题1:无法保存标注
解决方法:
-
确保选择了保存目录
-
检查文件写入权限
-
关闭文件占用程序
问题2:标签不显示
解决方法:
-
检查
classes.txt格式是否正确 -
重新加载标签文件
-
确认文件编码为 UTF-8
问题3:快捷键无效
解决方法:
-
确保焦点在图像区域
-
检查快捷键冲突
-
重启 LabelImg
九、高级功能
自动标注
bash
# 使用预训练模型辅助标注
# 需要集成外部工具或自行开发
批量转换格式
python
# 使用脚本转换 VOC 到 YOLO
import xml.etree.ElementTree as ET
# 转换代码...
质量检查
-
使用
Space标记已验证图像 -
开发脚本检查标注一致性
-
使用可视化工具验证标注
十、最佳实践建议
-
团队协作:
-
建立统一的标注规范文档
-
定期进行标注一致性检查
-
使用版本控制管理标注文件
-
-
质量控制:
-
设置验收标准
-
进行交叉验证
-
统计标注质量指标
-
-
效率优化:
-
对相似图像分组标注
-
使用快捷键熟练操作
-
定期备份标注数据
-
十一、后续步骤
完成标注后:
-
数据划分:分为训练集、验证集、测试集
-
格式转换:根据需要转换为目标框架格式
-
数据增强:扩展数据集规模
-
模型训练:使用标注数据训练目标检测模型
学习资源
这个教程涵盖了 LabelImg 的基本使用到高级技巧,建议先从简单的项目开始练习,熟练掌握后再进行大规模标注任务。