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

发布于:2025-08-13 ⋅ 阅读:(42) ⋅ 点赞:(0)

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

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

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

​优势对比​​:

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

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

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

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

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


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

​1. 环境准备​
​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%使用场景!