Ultralytics YOLO27:

Azure Blob Storageとの連携#

Azure Blob Storageとの連携により、ストレージアカウントのコンテナーをUltralytics Platformに接続できます。画像はコンテナー内に保存されたままです。Platformはその場で画像をインデックス化するため、コピーをアップロードせずにYOLOモデルの閲覧、アノテーション、トレーニングを行えます。

Pro機能

Azure Blob Storageのデータセットを利用するには、ProまたはEnterpriseプランが必要です。Freeワークスペースでは連携機能が表示され、接続時にアップグレードが求められます。サブスクリプションが終了しても、既存のAzure Blob Storageデータセットには引き続き完全にアクセスできます。Proが必要なのは、新しい接続とインポートのみです。

接続文字列を取得する#

Platformはストレージから読み取るだけで、blobへの書き込み、変更、削除は一切行いません。現在の連携では、アカウント全体の権限を付与するアカウントアクセスキーの接続文字列が必要ですが、Platformが実行するのは一覧表示と読み取り操作のみです。

  1. Azureポータルで、ストレージアカウントを開きます。
  2. Security + networking > Access keysに移動します。
  3. connection stringをコピーします。

文字列には、AccountName、AccountKey、およびプロトコルとしてHTTPSが含まれている必要があります。これは、AzureのAccess keysで提供される形式です。AccountKeyではなくSharedAccessSignatureを含むSASトークンの接続文字列は拒否されます。

パブリックAzureクラウドのみ対応

接続には標準のblob.core.windows.netエンドポイントを使用します。ソブリンクラウド(Azure China、Azure Government)とカスタムBlobエンドポイントには対応していません。

Platformに接続する#

  1. Settings > Integrationsに移動し、連携の一覧からAzure Blob Storageを選択します。
  2. 接続文字列を貼り付けます。
  3. Find available containersをクリックし、接続するコンテナーを選択します。コンテナー名を手動で入力することもできます。
  4. Connectをクリックします。Platformは、選択した各コンテナーの一覧表示と読み取りが可能であることを確認してから、設定を保存します。

Ultralytics PlatformのAzure Blob Storage連携設定

クラウドストレージに接続するには、ワークスペースの管理者または所有者のロールが必要です。1つの接続につき最大50個のコンテナーを設定でき、ストレージアカウント内のコンテナーは最大300個まで検出できます。

後から同じストレージアカウントに再接続すると、新しいコンテナーが既存の連携に追加されます。保存済みの認証情報は、置き換え後も接続済みのすべてのコンテナーを読み取れる場合にのみ更新されます。

認証情報のセキュリティ

アカウントキーがPlatform外に漏えいすると、書き込みや削除の操作が許可されたり、SASトークンが作成されたりする可能性があります。認証情報は保存時にAES-256-GCMで暗号化され、ブラウザーに返されることも、トレーニングワークロードに公開されることもありません。可能な場合は、専用のストレージアカウントを使用してください。アクセスを取り消すには、Azureでストレージアカウントのアクセスキーをローテーションしてください。

Blobコンテナーからデータセットを作成する#

  1. New Datasetをクリックし、Cloudタブを開きます。
  2. 接続済みのコンテナーを選択し、データを含むフォルダーを開きます。
  3. フォルダーを確認し、データセット名を調整して、データセットを作成します。

Platformはフォルダーの一覧を一度取得し、見つかった内容をインデックス化します。

  • 画像 — .jpg、.jpeg、.png、.webp、および.avifのblobがインデックス化されます。寸法は、上限を設けたリクエストを通じて読み取られます。Platformはソース画像のコピーを別途保存しません。
  • ラベル — YOLOの.txtサイドカーファイルはPlatformのアノテーションに変換され、標準のimages/ → labels/の配置、または同じフォルダー内のファイルとして照合されます。
  • メタデータ — YAMLファイルからクラス名とポーズキーポイントの形状が読み込まれます。これはアーカイブのアップロードと同じです。フォルダーに複数のファイルがある場合は、data.yamlとdata.ymlが優先されます。
  • タスク — ラベルファイルのサンプルをもとにタスクが判定されます。そのため、セグメント、ポーズ、OBBの各フォルダーは、ダイアログで選択したタスクではなく、ラベルの形式から認識されます。
  • 分割 — blobパス内のフォルダー名がtrain、val、testの場合、分割が自動的に割り当てられます。

その後、データセットは他のデータセットと同様に利用できます。閲覧やアノテーションを行い、公開または非公開に設定し、チームと共有し、マネージドトレーニングでトレーニングできます。オリジナル画像は必要に応じてストリーミングされ、インデックス化された画像はPlatformのストレージ割り当てを消費しません。

制限事項

1回のインポートでインデックス化できるblobは最大500,000個で、ラベルファイルまたはYAMLファイルはそれぞれ最大1 MBです。これを超えるコンテナーは、複数のデータセットに分割してください。

インデックス化したblobは変更しないでください

インデックス化された各画像はblobのETagに固定されており、blobが変更されるとPlatformは処理を安全側に停止します。既存のblobを上書きせず、新しいblobを追加してください。

インポートに失敗した場合#

インポートに失敗した場合(フォルダーが空、パスに誤りがある、権限が取り消されたなど)、データセットのページにエラーが表示されます。編集者はRetry importをクリックして、保存済みのコンテナーとフォルダーを使って再試行するか、正しいパスを指定して新しいデータセットを作成できます。

再試行では処理を再開せず、フォルダーを再度一覧表示します。最初の試行後に追加されたblobは取り込まれ、フォルダーからなくなったblobはデータセットから削除されます。

学習#

マネージドトレーニングは通常のトレーニングフローで実行できます。トレーニング中は、固定された画像のPlatform独自のコピーが使用され、Azureの認証情報がトレーニングワークロードに公開されることはありません。

接続を解除する#

接続を解除すると、Azure上のデータには一切触れずに、保存済みの接続文字列が削除されます。それらのコンテナーから作成したデータセットは、クラス、ラベル、アノテーションとともにワークスペースに残りますが、同じストレージアカウントに再接続するまでは、画像の読み込み、プレビュー、トレーニングを行えません。

連携IDとしてGET /api/integrations/bucketsから返される値を使い、REST APIを使用します。

curl -X DELETE \
  -H "Authorization: Bearer YOUR_API_KEY" \
  https://platform.ultralytics.com/api/integrations/buckets/INTEGRATION_ID
from ultralytics_platform import Platform

client = Platform()  # reads ULTRALYTICS_API_KEY
integrations = client.storage_integrations.list()
client.storage_integrations.delete("INTEGRATION_ID")

接続元でアクセスを取り消すには、Azureでストレージアカウントのアクセスキーをローテーションしてください。

現在の制限事項#

Azure連携データセットでは、画像のPlatform所有コピーを必要とする機能(自動アノテーション、クラスタリング分析、データセットの複製、変更不可のバージョンスナップショット)は現在利用できません。

Azure連携データセット、またはその個別画像を削除しても、Platform上の参照のみが削除され、blobには一切触れません。

Google Cloud StorageおよびAmazon S3との連携もご覧ください。

よくある質問#

  • いいえ。Platformはコンテナーを一度一覧表示し、見つかった画像の寸法とラベルをインデックス化します。閲覧とアノテーションでは、必要に応じてオリジナル画像をストリーミングします。マネージドトレーニングでは、実行中に限り、固定された画像のPlatform独自のコピーを使用します。インデックス化された画像はストレージクォータに含まれません。

  • データセットは作成時に一度だけインデックス化されます。新しいオブジェクトは、新しいデータセットを作成するか、失敗したインポートを再試行するまで取り込まれません。インデックス化された各画像はそのバージョンに固定されているため、オブジェクトを上書きすると、Platformはその画像の処理を安全のために停止します。既存のオブジェクトを置き換えるのではなく、新しいオブジェクトを追加してください。

  • 画像のPlatform所有コピーを必要とする機能は、接続済みのデータセットでは利用できません。自動アノテーション、クラスタリング分析、データセットの複製、変更不可のバージョンスナップショットが対象です。手動アノテーション、共有、トレーニングは通常どおり利用できます。

  • 保存済みの認証情報を削除するには、Settings > Integrationsで連携を解除するか、Azureでストレージアカウントのアクセスキーをローテーションしてください。どちらの操作も、コンテナー内のデータには影響しません。

コントリビューター

コメント