LabelImg标注工具详解与使用教程
🚀 YOLO交通标志识别实战(四):LabelImg标注工具详解与使用教程(自定义数据集合 针对于电赛需要自己标注数据集的)
在前面三篇里,我们已经完成了:
✅ Kaggle数据集下载和重组
✅ 大图裁剪成小块、生成标准目录结构
✅ YOLO基本训练
本篇是专栏的第四篇,我们来讲非常重要的一个步骤——如何自己手工标注图片。
即便我们用公开数据集起步,很多真实项目里都会需要「额外拍摄的数据」或「错误样本再标注」。
这时候,你就离不开专业标注工具了。
本次教程手把手教你使用开源免费、界面友好的LabelImg工具来生成YOLO格式的标签文件。
✅ 1️⃣ LabelImg是什么?
🔗 LabelImg 是一个开源的图像目标检测标注工具,基于 PyQt5 编写,跨平台支持 Windows、macOS 和 Linux。
特点:
⭐ 可视化标注、支持鼠标拖拽绘制
⭐ 自动生成 YOLO、VOC 等多种格式
⭐ 类别管理简单、可导入导出类别文件
⭐ 免费开源,无使用限制
很多 YOLO 教程里都会推荐它,因为它可以直接生成YOLO格式的文本文件。
✅ 2️⃣ 安装方法
方法1:pip快速安装(推荐)
如果你用的是Python环境,直接:
pip install labelImg
安装完成后,在命令行输入:
labelImg
会自动弹出标注窗口。
方法2:源码安装(可二次开发)
如果你想自己修改源码、或在某些系统下遇到问题,可以:
git clone https://github.com/heartexlabs/labelImg.git
cd labelImg
pip install pyqt5 lxml
python labelImg.py
✅ 3️⃣ 界面介绍
当你启动 labelImg 后,会看到:
🖼️ 主图窗口:显示当前图片
🧭 工具栏按钮:
- Open Dir:选择图片文件夹
- Change Save Dir:选择保存标签文件夹
- Create RectBox:绘制矩形框
- Next Image / Prev Image:浏览图片
📝 右侧:类别列表、格式选择(PascalVOC / YOLO)
✅ 4️⃣ 设置为 YOLO 格式
⚡ 非常重要:默认是 VOC 格式。
👉 必须手动切换:
View → YOLO
或者在右侧 Format 选择框里选 YOLO。
切换后,所有标注会保存成 YOLO标准格式:
<class_id> <x_center> <y_center> <width> <height>
所有值都是相对宽高归一化到0-1之间的浮点数。
✅ 5️⃣ 标注一张图片
-
点击
Open Dir
→ 加载你的图片目录,比如:traffic/images/train/
-
点击
Create RectBox
-
在图片上用鼠标拖动画出一个框
-
输入类别名(会自动记住,下次可以下拉选择)
-
标好所有框后,点击左上角的保存按钮 💾
会自动生成一个同名的 .txt 标签文件:
0001.jpg
0001.txt
✅ 6️⃣ 标签文件内容
举个例子,保存后会生成:
0 0.5123 0.4785 0.2645 0.3821
2 0.7310 0.2285 0.1200 0.1050
含义是:
- 第0类,中心点(0.51, 0.47),宽高(0.26, 0.38)
- 第2类,中心点(0.73, 0.22),宽高(0.12, 0.10)
这样就完全可以喂给 YOLOv5/YOLOv8 训练。
✅ 7️⃣ 类别文件(classes.txt)
当你在 labelImg 中录入第一个类别时,会自动生成一个类别列表文件。
比如:
prohibitory
danger
mandatory
other
- 顺序很重要,类别ID是按这个顺序的下标。
- 训练时 data.yaml 中的 names 要和这个顺序一致。
✅ 8️⃣ 文件结构示例
标注好的数据目录会是:
traffic/images/train/0001.jpg0002.jpglabels/train/0001.txt0002.txt
每张图都有同名的 txt 文件。
同理验证集也是:
traffic/images/val/labels/val/
✅ 9️⃣ 小技巧和快捷键
⚡ 提高标注效率的推荐设置:
功能 | 快捷键 |
---|---|
创建框 | W |
删除选中框 | Delete |
下一张图片 | D |
上一张图片 | A |
保存标注 | Ctrl+S |
放大缩小 | 滚轮 |
✅ 10️⃣ 典型问题答疑
💬 Q1:标注完没生成标签?
✅ 答:检查是否切换到 YOLO 格式。
💬 Q2:生成标签但类别错乱?
✅ 答:保证 classes.txt 里顺序和你的 data.yaml 一致。
💬 Q3:标注后怎么重新编辑?
✅ 答:重新加载那张图,它会自动读取并显示之前的框。
✅ 11️⃣ YOLOv8训练准备
做完标注后,你就可以写这样的 data.yaml 文件:
train: ./traffic/images/train
val: ./traffic/images/valnc: 4
names: [prohibitory, danger, mandatory, other]
然后用 YOLOv8 命令行:
yolo detect train data=data.yaml model=yolov8n.pt imgsz=640 epochs=100
就能开始训练啦!
❤️ 总结
本篇我们深入介绍了:
✅ LabelImg安装方式
✅ 界面和功能介绍
✅ YOLO格式选择和保存
✅ 类别文件管理
✅ 最佳实践和小技巧
在你的项目里,你可以用 LabelImg:
✅ 自己扩充样本
✅ 修正模型错误样本
✅ 制作小而高质量的数据集
下一篇预告:
我会继续分享:
👉 训练完成后的模型如何导出ONNX
👉 如何在香橙派(OrangePi)等小型开发板上部署推理
如果你觉得有帮助,欢迎收藏点赞 + 关注专栏~
也可以留言告诉我下一篇你最想看什么细节~
✨ 本文是【YOLO交通标志识别实战专栏】第四篇 ❤️