将 LabelMe 标注导出为 YOLO 和 Ultralytics Platform 数据集#
LabelMe 是一款离线图像标注工具,配有 开源 Python 应用程序。你无需在 Ultralytics Platform 中配置实时 LabelMe 连接或 API 密钥。完整的集成流程完全在本地执行: 在 LabelMe 中进行标注,使用 LabelMe Toolkit 将 LabelMe JSON 标注转换为 YOLO 格式,然后将生成的 ZIP 作为 Platform 数据集上传。
1. 在 LabelMe 中标注图像#
使用桌面应用或开源 Python 软件包安装 LabelMe,然后打开包含图像的目录。LabelMe 会将每张图像的标注保存到对应的 JSON 文件中。
对于本指南中的 YOLO 检测流程,请在每个对象周围绘制矩形并分配类别名称。LabelMe 入门指南介绍了如何打开图像、绘制形状和保存标注,LabelMe 数据集指南则介绍了如何检查和准备完整的标注数据集。
源目录应包含图像和 LabelMe JSON 文件:
your_dataset/
├── image_001.jpg
├── image_001.json
├── image_002.jpg
└── image_002.json2. 安装 LabelMe Toolkit#
按照 LabelMe 的Toolkit 安装指南安装 LabelMe Toolkit。Toolkit 及其导出操作均在本地运行。
export-to-yolo 是 LabelMe Pro Toolkit 的一部分,下载其安装程序需要登录 LabelMe。这是 LabelMe 的产品要求;生成的 ZIP 可在任何 Platform 方案中上传。
验证安装,然后列出源数据集中找到的每个标签:
labelmetk --version
labelmetk list-labels your_dataset/导出前检查输出结果。--class-names 中未列出的标签会被跳过,而你提供的顺序将成为 YOLO 类别 ID 的顺序。
3. 导出为 YOLO 格式#
使用源目录和以逗号分隔的类别名称列表运行 export-to-yolo:
labelmetk export-to-yolo your_dataset/ --class-names crack,normal将 crack,normal 替换为 list-labels 返回的标签。LabelMe 会将结果写入 your_dataset.export/:
your_dataset.export/
├── classes.txt
├── images/
│ ├── image_001.jpg
│ └── image_002.jpg
└── labels/
├── image_001.txt
└── image_002.txtclasses.txt 会按照 YOLO 标签文件中使用的顺序保留类别名称。请将它保留在导出文件的根目录中。
LabelMe Toolkit 会将矩形导出为 YOLO 边界框。它还会将多边形和掩码简化为轴对齐边界框,因此 export-to-yolo 不会保留分割几何信息。使用此流程准备检测数据集时,请绘制矩形。
4. 创建 ZIP 压缩包#
压缩 your_dataset.export/ 的内容,而不是包含这些内容的目录。在 macOS 或 Linux 上:
cd your_dataset.export
zip -r ../your_dataset.zip classes.txt images labels在 Windows PowerShell 上:
Compress-Archive -Path .\your_dataset.export\* -DestinationPath .\your_dataset.zip上传前打开 ZIP,并确认 classes.txt、images/ 和 labels/ 位于其根目录。额外的 your_dataset.export/ 外层目录会阻止 Platform 找到根目录中的类别列表。
5. 上传到 Ultralytics Platform#
- 打开 Settings > Integrations > LabelMe。
- 点击 Upload export。
- 上传
your_dataset.zip,完成数据集创建。 - 等待处理完成,然后检查图像、类别和标注。
- 在同一工作区中编辑标注、训练模型并部署模型。

LabelMe 和 YOLO 导出流程始终完全离线运行。只有你在上传对话框中选择的 ZIP 文件会发送到 Platform。
故障排除#
- **类别名称为
class0、class1等:**请确认classes.txt位于 ZIP 的根目录中。 - **部分标注缺失:**再次运行
labelmetk list-labels your_dataset/,并在--class-names中包含所有必需的标签。 - **多边形变成了框:**这是 LabelMe 的
export-to-yolo所记录的行为;它会将非矩形形状转换为边界框。 - **数据集没有图像:**确认导出的
images/目录已包含在 ZIP 中。 - **Platform 找不到类别:**从压缩包中删除任何外层目录,使
classes.txt、images/和labels/成为顶层条目。
如需了解完整的本地流程,请参阅 LabelMe 的 YOLO 训练指南 和 export-to-yolo 参考文档。
常见问题#
不需要。LabelMe 和导出过程在本地运行,只有你上传的 ZIP 文件会发送到 Platform。
export-to-yolo命令是 LabelMe Pro Toolkit 的一部分(这是 LabelMe 的要求),但生成的 ZIP 文件可在任何 Platform 方案上上传。使用此工作流无法做到这一点。LabelMe Toolkit 会将多边形和掩码简化为其轴对齐边界框,因此结果始终是检测数据集。为此导出准备数据时,请绘制矩形。
Platform 会从 ZIP 根目录中的
classes.txt读取类别名称。请压缩导出文件夹的内容,而不是文件夹本身,以便classes.txt、images/和labels/成为顶级条目。只有传递给
--class-names的标签会进入,且顺序与你列出的顺序一致。请先运行labelmetk list-labels并包含你想要保留的每一个标签。