Ultralytics YOLO27: ウェイティングリストに登録してください。

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

2. 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で始まるフォルダー内の画像は、その分割を維持します。LabelMe JSONが読み取られるのは、アーカイブにdata.yamlまたはCOCO JSONファイルが含まれていない場合だけです。そのため、LabelMe ZIPにはそれらを含めないでください。

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

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

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

LabelMeは完全にオフラインで動作します。アップロードダイアログで選択したZIPファイルのみがPlatformに送信されます。

LabelMeの図形のインポート方法#

LabelMeの図形インポート後の形式
rectangleバウンディングボックス、またはセグメンテーションデータセット内の4点ポリゴン
polygonポリゴン
oriented_rectangle4点ポリゴン
circle32点ポリゴン
maskマスクの外周をたどって作成したポリゴン。穴は塗りつぶされます
line, linestrip, point, points学習対象となる面積がないため、スキップされます
  • タスク:矩形のみでアノテーションされたデータセットは、物体検出データセットとしてインポートされます。ポリゴン、方向付き矩形、円、またはマスクが1つでもあると、セグメンテーションデータセットになり、アノテーションが失われないよう矩形は4点ポリゴンに変換されます。
  • クラス:LabelMeのラベル名がアルファベット順にクラス名として使用されます。既存のデータセットにインポートする場合、ラベルは名前で既存のクラスと照合され、残りのラベルが追加されます。
  • グループ化された図形:同じラベルとグループIDを持つ図形は1つのオブジェクトとして扱われます。それらのパーツは、セグメンテーションデータセットでは1つのポリゴンに、物体検出データセットでは1つのボックスに統合されます。
  • スキップ対象:ラベルのない図形、__ignore__というラベルの図形、画像レベルのフラグはインポートされません。画像の端を越える図形は、画像の範囲内にクリップされます。

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

  • アノテーションなしで画像がインポートされる場合:JSONファイルがZIPに含まれていることと、各ファイルのimagePathがアーカイブ内の画像を指していることを確認してください。Platformはファイル名でも照合するため、画像のファイル名が変わっていなければ、古い絶対パスでも機能します。
  • ポリゴンが4点ボックスになった場合:セグメンテーションデータセットでは、矩形は4点ポリゴンに変換されます。正確な輪郭が必要なオブジェクトにはポリゴンを描画してください。
  • 線または点が見つからない場合:これらの図形には面積がなく、物体検出やセグメンテーションに使用できないため、スキップされます。
  • データセットに画像がない場合:LabelMeは画像をJSONファイルに埋め込めますが、Platformは画像ファイルを読み取ります。画像をZIPに追加してください。

よくある質問#

  • いいえ。LabelMeはローカルで動作し、PlatformはそのJSONファイルを直接読み取ります。Platformに送信されるのはアップロードしたZIPのみです。LabelMe ProのメンバーシップやToolkitのエクスポートは必要ありません。

  • はい。ポリゴン、方向付き矩形、円、マスクはセグメンテーション用ポリゴンとしてインポートされ、データセットはセグメンテーションデータセットになります。

  • クラス名はLabelMeのラベルから取得され、アルファベット順に並べ替えられるため、同じラベルには常に同じクラスIDが割り当てられます。既存のデータセットに追加する場合、ラベルは名前で既存のクラスと照合されます。

  • はい。labelmetk export-to-yoloエクスポートは通常のYOLOデータセットとしてアップロードされます。クラス名を引き継ぐには、エクスポートのclasses.txtをZIP内に残してください(Platformは最も浅い階層にあるものを読み取ります)。

コメント