Ultralytics YOLO27:

LabelMeのアノテーションをYOLOおよびUltralytics Platformにエクスポートする#

LabelMeは、オフラインで使用できる画像アノテーションツールで、オープンソースのPythonアプリケーションとして提供されています。Ultralytics Platformで設定するライブ接続や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のToolkitインストールガイドに従って、LabelMe Toolkitをインストールします。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

list-labelsから返されたラベルに合わせて、crack,normalを置き換えます。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.txt、images/、labels/がルートにあることを確認します。余分なyour_dataset.export/のラッパーディレクトリがあると、Platformはルートのクラスリストを見つけられません。

5. Ultralytics Platformにアップロードする#

  1. Settings > Integrations > LabelMeを開きます。
  2. Upload exportをクリックします。
  3. your_dataset.zipをアップロードし、データセットの作成を完了します。
  4. 処理が完了するまで待ち、画像、クラス、アノテーションを確認します。
  5. 同じワークスペースから、アノテーションを編集し、モデルをトレーニングして、デプロイできます。

Ultralytics PlatformのLabelMeデータセットインポート

LabelMeでの作業とYOLOへのエクスポートは、すべてオフラインで行われます。アップロードダイアログで選択したZIPファイルのみがPlatformに送信されます。

トラブルシューティング#

  • クラス名がclass0、class1などになっている場合: ZIPのルートにclasses.txtがあることを確認してください。
  • 一部のアノテーションが欠落している場合: --class-namesに必要なラベルをすべて含めて、labelmetk list-labels your_dataset/を再実行してください。
  • ポリゴンがボックスになった場合: これはLabelMeのexport-to-yoloで仕様として定められた動作です。矩形以外の図形はバウンディングボックスに変換されます。
  • データセットに画像がない場合: エクスポートしたimages/ディレクトリがZIPに含まれていることを確認してください。
  • Platformがクラスを見つけられない場合: アーカイブから外側のディレクトリを削除し、classes.txt、images/、labels/が最上位のエントリになるようにしてください。

ローカルで行うワークフローの全体については、LabelMeのYOLOトレーニングガイドとexport-to-yoloのリファレンスをご覧ください。

よくある質問#

  • いいえ。LabelMeとエクスポート処理はローカルで実行され、Platformに送信されるのはアップロードしたZIPのみです。export-to-yoloコマンドはLabelMe Pro Toolkitの一部であり、LabelMe側の要件ですが、生成されたZIPはどのPlatformプランでもアップロードできます。

  • このワークフローではできません。LabelMe Toolkitはポリゴンやマスクを軸に平行なバウンディングボックスに変換するため、結果は常に検出データセットになります。このエクスポート用のデータを準備する際は、矩形を描いてください。

  • Platformは、ZIPのルートにあるclasses.txtからクラス名を読み込みます。フォルダー自体ではなくエクスポートフォルダーの中身を圧縮し、classes.txt、images/、labels/が最上位のエントリになるようにしてください。

  • --class-namesに渡したラベルのみが、指定した順序で含まれます。先にlabelmetk list-labelsを実行し、保持するラベルをすべて含めてください。

コントリビューター

コメント