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

LabelMe LabelImg 详细使用教程(新手零基础入门,附避坑指南)

在计算机视觉领域数据集标注是模型训练的基础——没有高质量的标注数据再强大的算法也无从谈起。而 LabelMe 和 LabelImg 作为两款最主流的开源图像标注工具几乎是所有CV初学者的入门必备。很多新手会混淆这两款工具有人用 LabelImg 去做语义分割标注有人用 LabelMe 画简单矩形框反而降低了效率。其实核心区别很简单LabelImg 专注矩形框标注适合目标检测任务LabelMe 支持多形态标注适合语义分割、实例分割等精细标注场景。这篇博客将从「工具定位→环境安装→完整操作→格式解析→技巧避坑」手把手教你掌握两款工具的使用无论你是CV新手还是需要快速上手标注任务的开发者看完这篇就能直接落地实操。一、工具前置认知LabelMe vs LabelImg 核心区别在开始操作前先明确两款工具的适用场景避免用错工具走弯路具体区别如下新手必看对比维度LabelImgLabelMe核心功能专注2D矩形框Bounding Box标注支持多边形、矩形、圆形、点、线段等多种标注形态适用场景目标检测如YOLO、Faster R-CNN等模型语义分割、实例分割、姿态估计、关键点检测等输出格式默认Pascal VOCXML可一键切换YOLOTXT默认JSON格式需转换为掩码图PNG用于模型训练特点轻量、启动快、操作简单适合大规模快速标注功能丰富、标注精细支持复杂场景可自定义扩展总结做目标检测用 LabelImg 效率最高做分割类任务用 LabelMe 最适配。两款工具可单独使用也可根据项目需求搭配使用。二、环境准备通用前置条件两款工具通用两款工具均基于 Python 开发因此无论使用哪款都需要先搭建 Python 环境新手推荐用 Anaconda 搭建虚拟环境避免与其他项目依赖冲突。2.1 安装 Anaconda推荐前往 Anaconda 官网下载对应操作系统Windows/macOS/Linux的版本默认安装即可安装时勾选“Add Anaconda to PATH”方便后续调用。安装完成后Windows 打开「Anaconda Prompt」macOS/Linux 打开「终端」输入conda --version出现版本号即安装成功。2.2 创建并激活虚拟环境建议创建一个专门的标注环境避免依赖冲突命令如下所有系统通用# 创建名为 label_env 的虚拟环境Python 3.6-3.10 兼容性最好 conda create --namelabel_env python3.8 # 确认安装输入 y 回车 # 激活环境 conda activate label_env # 激活成功后命令行前会显示 (label_env)后续安装和启动两款工具都需在这个激活的虚拟环境中操作。三、LabelImg 详细使用教程目标检测标注首选LabelImg 是目标检测标注的“神器”操作简单、轻量化支持主流标注格式无需后期手动转换新手可快速上手。3.1 安装 LabelImg在激活的虚拟环境中有两种安装方式新手推荐第一种快捷高效。方式一Pip 一键安装推荐# 直接安装 labelimg pip install labelimg # 可选用国内清华源加速下载更快避免超时 pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple方式二源码安装进阶适合二次开发# 克隆 GitHub 仓库 git clone https://github.com/HumanSignal/labelImg.git # 进入仓库目录 cd labelImg # 安装依赖 pip install pyqt5 lxml # 编译资源文件仅需一次 pyrcc5 -o libs/resources.py resources.qrc # 启动程序 python labelImg.py安装验证在虚拟环境中输入labelimg并回车若弹出 LabelImg 图形界面说明安装成功。3.2 LabelImg 完整操作流程新手实操核心流程启动工具→设置参数→加载图片→标注矩形框→保存标注→切换下一张全程可视化操作步骤如下步骤1启动工具并设置基础参数启动虚拟环境中输入labelimg打开界面默认英文可在 View 菜单中勾选“Chinese”切换中文。加载图片文件夹点击菜单栏「Open Dir」选择存放原始图片的文件夹建议将所有待标注图片放在同一个文件夹方便管理。设置保存目录点击「Change Save Dir」选择一个专门存放标注文件的文件夹建议与原始图片分开存放避免文件混乱。切换标注格式界面底部有「PascalVOC」和「YOLO」两个按钮根据模型需求切换默认 PascalVOC生成 XML 文件YOLO 模型选 YOLO生成 TXT 文件。步骤2开始标注核心操作创建矩形框点击左侧工具栏「Create RectBox」或按快捷键W进入标注模式。绘制矩形框在图片中目标物体上按下鼠标左键拖拽绘制一个刚好包裹目标的矩形框不宜过大或过小尽量贴合目标边缘松开鼠标。输入标签松开鼠标后会弹出标签输入框输入目标类别如“car”“person”“cat”点击「OK」同类目标标签必须完全一致如统一用“car”不要混用“Car”“cars”。编辑标注若矩形框位置偏差可点击左侧「Edit RectBox」拖动矩形框或边角调整大小若标注错误按Del键删除当前标注。步骤3保存与批量标注保存标注单张图片标注完成后点击「Save」或按快捷键CtrlS会自动生成对应格式的标注文件XML/TXT文件名与原始图片一致。切换下一张点击「Next Image」或按快捷键D可加载下一张图片若勾选 View 菜单中的「Auto Save mode」切换图片时会自动保存当前标注无需手动点击。批量标注重复步骤2-3直至所有图片标注完成标注文件会自动保存到之前设置的保存目录中。3.3 标注格式解析关键适配模型训练LabelImg 最便捷的优势的是“一键切换格式”无需手动转换两种主流格式解析如下1. PascalVOC 格式XML 文件默认可读性强存储了图片尺寸、目标坐标、标签等完整信息可直接用于 Faster R-CNN 等模型核心内容如下annotation lt;filenamegt;car_01.jpglt;/filenamegt; !-- 原始图片文件名 -- lt;sizegt; !-- 图片尺寸 -- widthgt;1920lt;/widthgt; !-- 宽度 -- height1080lt;/heightgt; !-- 高度 -- depth3/depthgt; !-- 通道数RGB为3 -- /size lt;objectgt; !-- 标注的目标 -- namegt;carlt;/namegt; !-- 目标标签 -- lt;bndboxgt; !-- 矩形框坐标像素值 -- lt;xmingt;100lt;/xmingt; !-- 左上角x坐标 -- lt;ymingt;200lt;/ymingt; !-- 左上角y坐标 -- lt;xmaxgt;400lt;/xmaxgt; !-- 右下角x坐标 -- lt;ymaxgt;500lt;/ymaxgt; !-- 右下角y坐标 -- /bndbox /object /annotation2. YOLO 格式TXT 文件专为 YOLO 模型设计存储归一化后的相对坐标范围 0~1无需手动转换核心格式如下每行代表一个目标格式class_id x_center y_center width heightclass_id类别索引从0开始需提前定义类别列表如0car、1personx_center、y_center矩形框中心点的归一化坐标width、height矩形框宽度和高度的归一化值示例TXT 文件内容0 0.25 0.35 0.15 0.20LabelImg 会自动计算归一化坐标无需手动计算。3.4 LabelImg 实用技巧与避坑指南快捷键高效操作必记W创建矩形框、D下一张、A上一张、Del删除标注、CtrlS保存、CtrlZ撤销标签统一标注前先定义好所有类别如“cat”“dog”避免大小写、单复数混乱如“Cat”和“cat”会被识别为两个类别闪退问题Python 3.10若打开后绘制矩形框闪退需修改两个文件路径虚拟环境目录\Lib\site-packages\libscanvas.py第526、530、531行将坐标值改为int类型如 int(left_top.x())shape.py第131行将 painter.drawText 后的坐标改为int类型如 int(min_x), int(min_y)。四、LabelMe 详细使用教程分割类标注首选LabelMe 功能比 LabelImg 更丰富支持多边形、点、线段等多种标注形态核心用于语义分割、实例分割等需要精细勾勒目标轮廓的场景标注结果需转换为掩码图后用于模型训练。4.1 安装 LabelMe同样在激活的虚拟环境中操作推荐 Pip 一键安装步骤如下# 先安装界面依赖 PyQt5避免后续报错 pip install pyqt5 # 安装 LabelMe pip install labelme # 可选清华源加速 pip install labelme pyqt5 -i https://pypi.tuna.tsinghua.edu.cn/simple安装验证虚拟环境中输入labelme并回车弹出 LabelMe 图形界面即安装成功。注意LabelMe 版本过高可能导致后续格式转换报错若出现 ValueError: Too many dimensions 错误可参考下文“避坑指南”解决无需降级版本。4.2 LabelMe 完整操作流程新手实操核心流程启动工具→加载图片→选择标注工具→勾勒目标轮廓→保存JSON→格式转换重点在于“精细勾勒”和“格式转换”步骤如下步骤1启动工具并加载图片启动虚拟环境中输入labelme打开界面默认英文可在 Edit→Preferences 中切换中文。加载图片有两种方式一是点击「Open」加载单张图片二是点击「Open Dir」加载整个图片文件夹批量标注推荐。步骤2选择标注工具并勾勒轮廓核心操作LabelMe 提供多种标注工具常用的有3种根据场景选择Create Polygons多边形工具最常用用于语义/实例分割勾勒目标完整轮廓快捷键PCreate Rectangles矩形工具用于简单目标框选类似 LabelImg快捷键RCreate Points点工具用于关键点检测如人脸关键点、姿态关键点快捷键O。以最常用的「多边形标注」为例操作如下点击左侧「Create Polygons」或按快捷键P进入标注模式在目标物体边缘依次点击鼠标左键绘制多边形顶点点越密集轮廓越精细撤销错误顶点按CtrlZ撤销上一个顶点闭合轮廓当最后一个顶点与第一个顶点重合时会自动闭合多边形此时弹出标签输入框输入目标标签如“leaf”“tumor”点击「OK」编辑轮廓点击左侧「Edit Polygons」可拖动顶点调整轮廓位置或添加/删除顶点右键顶点可删除。步骤3保存标注文件单张图片标注完成后点击「Save」或按CtrlS会生成一个与原始图片同名的.json文件该文件包含了标注的所有信息顶点坐标、标签、图片尺寸等。注意JSON 文件不能直接用于模型训练需转换为像素级的掩码图PNG格式。4.3 标注结果格式转换关键步骤LabelMe 标注后生成的 JSON 文件需转换为掩码图Label Mask才能用于分割模型训练分为「单文件转换」和「批量转换」两种方式。方式1单文件转换适合少量标注在虚拟环境中执行以下命令将单个 JSON 文件转换为掩码图# 格式labelme_json_to_dataset 你的JSON文件路径 labelme_json_to_dataset ./annotations/car_01.json执行后会生成一个同名文件夹里面包含5个文件核心是label.png掩码图每个像素值对应一个类别用于模型训练。方式2批量转换适合大量标注推荐当有大量 JSON 文件时手动转换效率低可使用 LabelMe 源码中的labelme2voc.py脚本批量转换步骤如下克隆 LabelMe 源码git clone https://github.com/wkentaro/labelme进入源码目录cd labelme创建 labels.txt 文件在源码目录中新建labels.txt写入所有标注类别每行一个第一行写__ignore__第二行写_background_后续写自定义类别示例__ignore___background_carpersoncat执行批量转换命令# 格式python labelme2voc.py 输入JSON目录 输出目录 --labels labels.txtpython labelme2voc.py ./json_dir ./output_dir --labels labels.txt转换完成后输出目录中会生成JPEGImages原始图片和SegmentationClass掩码图可直接用于模型训练。4.4 LabelMe 实用技巧与避坑指南带洞目标标注若目标内部有空洞如甜甜圈、带孔零件先标注外部轮廓标签为目标类别再标注内部空洞轮廓标签设为_background_转换后空洞会被识别为背景格式转换报错解决若出现「ValueError: Too many dimensions: 3 2」无需降级 LabelMe只需修改转换脚本将lbl utils.shapes_to_label(...)改为lbl, ins utils.shapes_to_label(...)lbl 为类别掩码ins 为实例掩码中文乱码Windows查看转换后的可视化图片时若标签中文乱码找到 LabelMe 安装目录下的label_file.py在第36行左右修改文件读取编码为 UTF-8快捷键高效操作P多边形标注、R矩形标注、O点标注、CtrlZ撤销、CtrlS保存、D下一张、A上一张。五、总结与拓展建议LabelImg 和 LabelMe 都是开源免费、功能强大的标注工具核心区别在于适用场景目标检测画矩形框优先用 LabelImg轻量、高效无需手动转换格式分割类任务画轮廓优先用 LabelMe标注精细支持多种形态转换后可直接用于模型训练。对于新手来说建议先掌握 LabelImg 的基础操作完成简单的目标检测标注任务再学习 LabelMe 的多边形标注和格式转换逐步提升标注效率和精度。拓展建议标注规范标注前制定统一的标签规范避免标签混乱提升数据集质量批量处理当数据集规模较大时可结合脚本如 Python 批量重命名图片搭配两款工具的批量功能提升标注效率问题排查若遇到安装或操作报错可查看工具的 GitHub Issues 或官方文档大部分常见问题都有解决方案。最后标注是一个“细致活”高质量的标注才能训练出高精度的模型。希望这篇教程能帮你快速上手 LabelImg 和 LabelMe少走弯路高效完成标注任务
http://www.gsyq.cn/news/1374085.html

相关文章:

  • 2026微型舵机优质推荐榜:小型舵机/尾翼用方扁舵机/工业舵机/德晟舵机/数字舵机/无人机舵机/无刷舵机/最小的舵机/选择指南 - 优质品牌商家
  • 2026电工杯数学建模竞赛A题论文、代码、数据(改进)
  • DeepSeek 公式 LaTeX 爆码问题实测与 AI 导出鸭解决方案
  • 嵌入式学习
  • 通过Docker部署FastAPI应用程序
  • 【RAG 系列·第 03 篇】框架实战:LangChain·LlamaIndex·Haystack·DSPy——四大 RAG 框架对比与选型
  • 多端口ROM的实现
  • 2026智能人工气候室应用白皮书:低温型人工气候室/保鲜库/催芽室/全天候智能人工气候室/养虫室/冷冻库/医药冷库/选择指南 - 优质品牌商家
  • 文章三:Elasticsearch 集群恢复和索引分布
  • 告别无效背词,家门口的科学记忆工具太实用
  • Redis为何如此快?揭秘IO多路复用技术【个人八股】
  • Python 基础数据类型详解:列表、元组与 range
  • AArch64虚拟内存系统架构与64KB大页优化实践
  • 2026年黄金回收商家深度解析:宝奢科技等头部企业如何选择 - 2026年企业推荐榜
  • 抗功耗侧信道攻击的逻辑综合框架PoSyn解析
  • P15895 [TOPC 2025] One-Way Abyss 题解
  • 昇腾CANN ge 仓的图优化 Pass:哪些 Pass 真正影响推理性能
  • 比较运算符,逻辑运算符与三目运算
  • 从0开始打造自己的压缩软件(仅文字适配)上——文本的压缩
  • qemu和gcc编译
  • # 网页设计学习感悟
  • Claude Code 在安装vscode插件时遇到的问题。
  • 解锁UE5.1增强输入高级玩法:用自定义Input Modifier实现游戏摇杆灵敏度曲线与高级死区
  • Unity地形优化实战:Terrain设置、LOD与Draw Call控制,让你的开放世界跑得更流畅
  • 网络安全学习第112天
  • 2026国际传感器展会优质平台推荐:上海传感器展会、中国传感器展会、北京传感器展会、国际传感器展会、中国传感器展选择指南 - 优质品牌商家
  • 企业官网后台的工程化设计:内容建模、所见即所得与源码自主可控
  • 一文讲清楚规则、Skill、MCP
  • 别再手动下载DLL了!用Windows自带工具SFC/SCANNOW一键修复kernel32.dll错误
  • 2026年Q2,为何专业通信工程商纷纷锁定河北乐佳U型钢走线架? - 2026年企业推荐榜