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

Labelme从安装到标注:零基础完整指南

本文手把手教你安装开源图像标注神器Labelme,详解多边形/矩形标注技巧,并附JSON转数据集代码!适合计算机视觉/深度学习初学者,小白也能秒懂~

一、Labelme是什么?为什么选择它?​

🔍 ​​Labelme​​ 是由麻省理工学院(MIT)计算机科学实验室开发的开源图像标注工具,支持​​多边形、矩形、关键点、语义分割​​等标注类型,生成JSON文件可直接用于训练YOLO、Mask R-CNN等模型。

​优势对比​​:

  • ✅ ​​免费开源​​:无版权风险,社区支持丰富

  • ✅ ​​跨平台​​:Windows/macOS/Linux全兼容

  • ✅ ​​灵活输出​​:支持JSON → COCO/VOC格式转换

  • 🚫 替代LabelImg等工具:更擅长​​不规则物体标注​​(如医学图像、遥感影像)

💡 ​​应用场景​​:目标检测、图像分割、自动驾驶数据集制作、医疗影像分析


​二、安装教程(Win/macOS/Linux通用)​

​1. 环境准备​
  • ​Python 3.6+​

  • ​Anaconda​​(管理虚拟环境,避免依赖冲突)点击查看安装教程

​2. 环境安装
①创建虚拟环境(命名为labelme_env),输入 conda create -n learning python=3.10,其中learning为你要创建的环境名。安装过程中会提示是否继续,输入y继续安装,结束后就安装完成啦。

②检查下安装的库是否创建,输入 conda env list ,可以看到我们创建的learning已经存在。

③激活环境 ,输入conda activate learning。这个过程中我遇到了问题一直无法激活环境,后来直接使用直接使用 activate.bat,运行cmd在里面输入 D:\anaconda3\Scripts\activate.bat D:\anaconda3\envs\learning。激活后前面会显示环境名称。
④安装labelme,输入pip install labelme 回车,开始自动安装。

​3. 环境使用

终端输入labelme,弹出GUI界面即成功🎉


​三、标注实战:

​1.常用功能介绍

在labelme软件中,最主要的几个功能如下:

1️⃣打开:只打开一张图像进行标注。

2️⃣打开目录:点击后会弹出一个窗口,选择一个文件夹,文件夹中包含要进行标注的图像。

3️⃣上一幅:在打开目录的情况下,点击后可切换到上一张图片,也可以使用快捷键a。

4️⃣下一幅:在打开目录的情况下,点击后可切换到下一张图片,也可以使用快捷键d。

5️⃣保存:在标注完成后,会生成标签文件。保存选项即选择本地的一个文件夹保存标签文件。建议在选择完打开目录后,便选择一个文件夹路径保存将要生成的标签文件。

6️⃣创建多边形:这一个功能是最重要的,选择了一张图像后便可以进行标注,选择这个功能后即可这对界面中显示的图像进行分割标注,注意标注点要尽可能贴合目标,也可以使用快捷键w

2.图像批注
①打开图像文件夹​

点击 【打开】或【打开目录】→ 选择图片

② 创建标注​

  • ​多边形标注​​(不规则物体):点击工具栏【创建多边形】→ 沿物体边缘描点 → 按Enter闭合,添加标签

  • ​矩形标注​​(常规目标):点击 鼠标右键可以选择【创建矩形批注】、【原型批注】等形状→ 拖拽画框,添加标签

③ 保存结果​

点击 Save→ 生成与图片同名的.json文件(含坐标+标签信息)


在json文件中,
shapes用于内存放目标的相关信息;

imagePath表示被标注图像的相对存储路径;

imageData表示被存储的图像的编码数据;

imageHeight表示该图像的高度;

imageWidth表示该图像的宽度。

shapes内中的label是目标名称,points内保存了标注过程中点的坐标,从左上角(0,0)开始算起。

​4. 快捷键大全(效率翻倍!)​

按键

功能

Ctrl + O

打开文件夹

Ctrl + S

保存JSON

Ctrl + D

复制当前标注

Delete

删除选中标注

↑/↓

切换上一张/下一张


​四、JSON转数据集:训练模型必备​

Labelme的JSON需转为图像+掩码格式才能训练模型,两种方法:

​方法1:命令行一键转换​
labelme_json_to_dataset E:\data\cat.json

生成文件夹包含:

  • img.png→ 原图

  • label.png→ 分割掩码(像素值为类别ID)

  • label_names.txt→ 类别标签

​方法2:Python脚本批量转换​
import os  
from labelme import utils  json_dir = "D:/json/"  
for json_file in os.listdir(json_dir):  if json_file.endswith('.json'):  data = json.load(open(os.path.join(json_dir, json_file)))  img = utils.img_b64_to_arr(data['imageData'])  # 解析图像  lbl = utils.shapes_to_label(img.shape, data['shapes'])  # 生成标签图  utils.lblsave(f"D:/labels/{json_file.replace('.json','.png')}", lbl)

代码说明:

  • 需提前安装Pillownumpy

  • 输出标签图为PNG格式,背景=0,物体=1,2,3...(对应类别ID)


​五、高级技巧:提升标注效率​

  1. ​批量预标注​​:

    • 用预训练模型(如YOLOv8)生成初始框 → 在Labelme中微调

  2. ​自定义颜色​​:

    • 修改labelme/config/default.yaml中的label_colors

  3. ​COCO格式导出​​:

    • 点击菜单 File→ Export as COCO format直接生成训练集


​结语​

Labelme是CV领域必备的标注利器,从安装到实战,本文已覆盖90%使用场景!

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

相关文章:

  • MySQL基础面试
  • Springboot整合Thrift
  • 移动端网页调试实战,键盘弹出与视口错位问题的定位与优化
  • 汉高携手SAP推出AI驱动的退换货与争议管理解决方案
  • 赛灵思ZYNQ官方文档UG585自学翻译笔记:UART Controller,通用异步收发传输器控制器
  • Vue接口平台十三——测试记录
  • Ubuntu 全盘备份
  • 九尾狐未来机械晶核技术
  • k3s部署
  • 电脑硬件详解
  • ZYNQ AXI-GPIO学习——ZYNQ学习笔记8
  • 学习游制作记录(背包UI以及各种物品的存储)8.12
  • kafka 消费者组的概念是什么?它是如何实现消息的点对点和发布/订阅模式?
  • Supabase快速入门与实战指南
  • LangChain 入门学习
  • Spring AI Alibaba - 聊天机器人快速上手
  • SpringAI 使用通义千问进行聊天对话开发
  • 考研复习-计算机组成原理-第五章-CPU
  • [NoC]Outstanding和Credit的概念详解
  • Fluent Bit 日志合并正则表达式(上)
  • Nginx 高级配置
  • Python训练Day41
  • 基于PAI-ChatLearn的GSPO强化学习实践
  • LLM - 搭建 Grounded SAM 2 模型的视觉检测与分割服务 API
  • CMake笔记:PUBLIC/PRIVATE/INTERFACE的使用
  • FreeRTOS---基础知识6---事件组
  • Effective C++ 条款37:绝不重新定义继承而来的缺省参数值
  • Linux系统编程Day13 -- 程序地址空间
  • Vue3 整合高德地图完成搜索、定位、选址功能,已封装为组件开箱即用(最新)
  • 前端对接豆包AI(vue3+TS版本)