将 LabelMe 标注导入 Ultralytics Platform#
LabelMe 是一款离线图像标注工具,提供开源 Python 应用。你无需在 Ultralytics Platform 中配置实时 LabelMe 连接或 API 密钥,也无需进行格式转换:Platform 会直接读取 LabelMe JSON 文件。在 LabelMe 中完成标注后,将文件夹压缩成 ZIP,并作为 Platform 数据集上传。
1. 在 LabelMe 中标注图像#
通过桌面应用或开源 Python 包安装 LabelMe,然后打开包含图像的目录。LabelMe 入门指南介绍了如何打开图像、绘制形状和保存标注。
为目标检测数据集绘制矩形,为分割数据集绘制多边形。LabelMe 会将每张图像的标注保存在同目录下的 JSON 文件中:
your_dataset/
├── image_001.jpg
├── image_001.json
├── image_002.jpg
└── image_002.json2. 创建 ZIP 压缩包#
将包含图像和 JSON 文件的文件夹压缩。在 macOS 或 Linux 上:
zip -r your_dataset.zip your_dataset在 Windows PowerShell 中:
Compress-Archive -Path .\your_dataset -DestinationPath .\your_dataset.zip外层文件夹、嵌套子文件夹以及分开的图像和标注文件夹都可以使用,只要每个 JSON 文件中的 imagePath 指向 ZIP 内的一张图像。Platform 读取的是该图像文件,而不是 LabelMe 可能嵌入 JSON 的副本 imageData,因此请将图像文件保留在压缩包中。位于名称以 train、val 或 test 开头的文件夹中的图像会保留相应的数据集划分。只有当压缩包中没有 data.yaml 或 COCO JSON 文件时,才会读取 LabelMe JSON,因此请勿将这些文件放入 LabelMe ZIP 压缩包中。
3. 上传到 Ultralytics Platform#
- 打开设置 > 集成 > LabelMe。
- 点击 上传导出文件。
- 上传
your_dataset.zip,然后完成数据集创建。 - 等待处理完成,然后检查图像、类别和标注。
- 在同一个工作区中编辑标注、训练模型并部署模型。

LabelMe 完全离线运行。你在上传对话框中选择的 ZIP 文件是唯一会发送到 Platform 的内容。
LabelMe 形状的导入方式#
| LabelMe 形状 | 导入为 |
|---|---|
rectangle | 边界框;在分割数据集中则导入为 4 点多边形 |
polygon | 多边形 |
oriented_rectangle | 4 点多边形 |
circle | 32 点多边形 |
mask | 沿掩码外轮廓描绘的多边形,会填充孔洞 |
line, linestrip, point, points | 已跳过,因为这些形状没有可用于训练的面积 |
- 任务类型:仅使用矩形标注的数据集会作为目标检测数据集导入。任何多边形、旋转矩形、圆形或掩码都会使其成为分割数据集,其中的矩形会转换为 4 点多边形,因此不会丢失任何标注。
- 类别:LabelMe 标签名称会按字母顺序成为类别名称。导入到现有数据集时,系统会按名称将标签与数据集中的类别匹配,并添加其余类别。
- 分组形状:共享标签和组 ID 的形状会作为一个对象处理。它们的部分会合并为一个多边形,或在目标检测数据集中合并为一个边界框。
- 已跳过:没有标签的形状、标记为
__ignore__的形状以及图像级标志都不会导入。超出图像边缘的形状会被裁剪到图像边缘。
故障排除#
- 导入的图像没有标注:请确认 ZIP 中包含 JSON 文件,并且每个文件的
imagePath都指向压缩包中的图像。Platform 也会按文件名匹配,因此即使绝对路径已过期,只要图像文件名未变,仍然可以正常导入。 - 多边形变成了 4 点边界框:在分割数据集中,矩形会转换为 4 点多边形。对于需要精确轮廓的对象,请绘制多边形。
- 线条或点缺失:这些形状没有面积,无法用于目标检测或分割,因此会被跳过。
- 数据集没有图像:LabelMe 可以将图像嵌入 JSON 文件,但 Platform 会读取图像文件。请将图像添加到 ZIP 中。
常见问题#
不需要。LabelMe 在本地运行,Platform 会直接读取其 JSON 文件,只有你上传的 ZIP 会发送到 Platform。你无需加入 LabelMe Pro,也无需通过 Toolkit 导出。
可以。多边形、旋转矩形、圆形和掩码会作为分割多边形导入,数据集也会成为分割数据集。
类别名称取自 LabelMe 标签,并按字母顺序排序,因此相同标签始终会映射到相同的类别 ID。向现有数据集添加内容时,标签会按名称与数据集中的类别匹配。
可以。
labelmetk export-to-yolo导出文件会作为普通 YOLO 数据集上传。请将导出文件中的classes.txt保留在 ZIP 中(Platform 会读取层级最浅的文件),这样类名就能一并导入。