当前位置: 首页 > news >正文

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交通标志识别实战专栏】第四篇 ❤️

http://www.dtcms.com/a/273215.html

相关文章:

  • SQL进阶:自连接的用法
  • 数字电子时钟——数字电路课设
  • 存在两个cuda环境,在conda中切换到另一个
  • vue3中ref和reactive的使用、优化
  • ABP vNext + OpenIddict:多租户授权中心
  • 二分查找篇——搜索旋转排序数组【LeetCode】两次二分查找
  • PPT 倒计时工具:把控节奏,掌握时间,超简单超实用让演示游刃有余
  • linux的DNS域名解析服务
  • Python操作redis数据库:终端下载安装命令、redis关键特性说明、redis的数据类型、redis的连接两种方式
  • 模块三:现代C++工程实践(4篇)第三篇《C++与系统编程:Linux内核模块开发入门》
  • 一个编辑功能所引发的一场知识探索学习之旅(JavaScript、HTML)
  • 笔记:CMakeLists基础语法
  • 在Zabbix 7 中配置对Nginx的监控
  • 外呼如何提高接通率
  • Rail开发日志_2
  • burpsuite记录
  • 深入理解oracle ADG和RAC
  • kotlin中集合的用法
  • kotlin中withContext,async,launch几种异步的区别
  • 【Python练习】035. 编写一个函数,实现简单的文本搜索功能
  • CPU调度调度算法
  • 低功耗小尺寸的空间入侵监测报警设备的市场需求方向
  • 【Python常见问题】【路径】路径总是有问题?深度剖析
  • 【JVM|垃圾回收】第二天
  • Transformer模型原理概述
  • 【Linux】Linux 操作系统 - 27 , 进程间通信(三) --System V 共享内存
  • 零基础入门物联网-远程门禁开关:硬件介绍
  • 多线程学习
  • 指针的const应用
  • 老式MVC架构Web应用:经典框架下的技术坚守与现代挑战