小白快速上手 labelme:新手图像标注详解教程
前言
本教程主要面向初次使用 labelme 的新手,详细介绍了如何在 Windows 上通过 Anaconda 创建和配置环境,并使用 labelme 进行图像标注。
1. 准备工作

2. 创建 Conda 环境
使用 Conda 管理 Python 环境可以避免不同项目之间的依赖冲突。下面是配置步骤:
# 创建 Python 3.9 的新环境(名称为 labelme)
conda create -n labelme python=3.9 -y
# 激活环境
conda activate labelme
注意:可以根据需要选择不同的 Python 版本,但建议使用 3.8 或 3.9,以确保 labelme 的兼容性,版本过高会导致不稳定直接退出程序。
3. 安装 labelme
安装 labelme 有两种主要方法:使用 Conda 或 Pip,各有优缺点。
方法一:使用 pip 安装 labelme(简洁快速但不稳定)
激活环境后,直接运行以下命令使用 pip 安装:
pip install labelme
优点:pip 安装方法简洁、快速,适合 Conda 默认不包含 labelme 的情况。
缺点:有时依赖项可能因 Python 版本或系统环境导致兼容性问题。
方法二:使用 Conda 安装 labelme(推荐)
激活环境后,直接运行以下命令使用 conda 安装:
conda install -c conda-forge labelme
优点:Conda 会自动解决依赖冲突问题,通常更稳定,且 Conda Forge 提供的包适配性较好。
缺点:Conda Forge 中的包可能不是最新版本,适合追求环境稳定的用户。
4. 启动 labelme
使用以下命令启动 labelme:
labelme

日志内容结构
2024-11-16 13:26:07,488 [INFO ] __init__:get_config:67- Loading config file from: C:\Users\Natsu\.labelmerc
在 2024年11月16日 13:26:07,程序正常运行并尝试从路径 C:\Users\Natsu\.labelmerc 加载配置文件。此消息表明程序的配置加载过程已开始,是运行过程中的一个正常操作。
5. LabelMe 的基本操作指南
5.1 图像加载



5.2 创建标注框


5.3 常用快捷键说明
为提高标注效率,labelme 提供以下常用快捷键:
6.结果
.json文件,即表示已正确保存。
7.Labelme 生成的 JSON 格式文件详解
Labelme 的标注结果以 JSON 文件格式保存,包含了标注图像的相关元数据以及每个标注区域的详细信息。以下是 JSON 文件的主要结构及其说明:
7.1 顶层结构
{
"version": "5.0.1",
"flags": {},
"shapes": [],
"imagePath": "example.jpg",
"imageData": null,
"imageHeight": 800,
"imageWidth": 600
}
version:记录生成文件的 LabelMe 版本号,便于兼容性分析。flags:用户定义的标志信息(默认为空,若无特别设置)。shapes:一个列表,包含了所有标注的几何形状及其属性(详见下文)。imagePath:图像文件的相对路径或名称,用于追溯标注图像。imageData:图像的 Base64 编码数据,默认为 null,标识未嵌入图像。imageHeight 和 imageWidth:标注图像的分辨率(高度和宽度)。7.2 shapes 列表(标注内容)
shapes 是 JSON 文件的核心部分,每个标注对象都会以单独的条目存储在此列表中。结构如下:
"shapes": [
{
"label": "apple",
"points": [[100, 150], [200, 150], [200, 250], [100, 250]],
"group_id": null,
"shape_type": "polygon",
"flags": {}
}
]
label:该标注区域的标签名称(例如“apple”)。points:二维数组,存储标注形状的关键点坐标。每个点以 [x, y] 的形式表示。例如,以上数据定义了一个矩形的四个顶点。group_id:标注分组的 ID,便于组织管理(默认为 null,表示无分组)。shape_type:标注形状的类型,可为:
"polygon":多边形(常用)"rectangle":矩形"circle":圆形"point":单点"line":直线flags:标注区域的附加属性(默认为空对象 {})。7.3 示例完整文件
以下是标注一张图片的 JSON 文件示例:
{
"version": "5.0.1",
"flags": {},
"shapes": [
{
"label": "apple",
"points": [[100, 150], [200, 150], [200, 250], [100, 250]],
"group_id": null,
"shape_type": "polygon",
"flags": {}
},
{
"label": "banana",
"points": [[300, 100], [350, 150], [300, 200], [250, 150]],
"group_id": null,
"shape_type": "polygon",
"flags": {}
}
],
"imagePath": "example.jpg",
"imageData": null,
"imageHeight": 800,
"imageWidth": 600
}
7.4 注意事项
imagePath 字段中的图像路径应与图像文件实际位置保持一致,否则加载标注可能失败。points 坐标顺序决定了形状的轮廓,绘制时需注意顺时针或逆时针方向。8. 注意事项
Python 版本 3.9 + 通过 Pip 安装 labelme。labelme 环境中仅安装 labelme包,避免安装其他不必要的包。作者:Natsuagin