YOLO Vision 2026:

将 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.json

2. 安装 LabelMe Toolkit#

按照 LabelMe 的工具包安装指南安装 LabelMe Toolkit。该工具包及其导出的文件均在本地运行。

导出功能需要 LabelMe Pro

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.txt

classes.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.txtimages/labels/ 位于其根目录下。多余的 your_dataset.export/ 包装目录会导致 Platform 无法找到根类列表。

5. 上传到 Ultralytics Platform#

  1. 打开 Settings > Integrations > LabelMe
  2. 点击 Upload export
  3. 上传 your_dataset.zip 并完成数据集的创建。
  4. 等待处理完成,然后检查图像、类别和标注。
  5. 在同一个工作区中编辑标注训练模型部署模型

Ultralytics Platform LabelMe Dataset Import

LabelMe 和 YOLO 导出完全保持离线状态。只有你在上传对话框中选择的 ZIP 文件会被发送到 Platform。

故障排除#

  • **类名命名为 class0class1 等:**确认 ZIP 根目录下存在 classes.txt
  • **部分标注丢失:**再次运行 labelmetk list-labels your_dataset/,并在 --class-names 中包含所有必需的标签。
  • **多边形变为方框:**这是 LabelMe 的 export-to-yolo 的既定行为;它会将非矩形形状转换为边界框。
  • **数据集没有图片:**确认 ZIP 中包含导出的 images/ 目录。
  • **Platform 找不到类:**从压缩包中移除任何外层目录,确保 classes.txtimages/labels/ 是顶级条目。

有关完整的本地工作流,请参见 LabelMe 的YOLO 训练指南export-to-yolo 参考

评论