Azure Blob Storage連携#
Azure Blob Storage 連携機能により、ストレージアカウントのコンテナーと Ultralytics Platform が接続されます。画像はコンテナー内に保持され、Platform がインプレースでインデックス化するため、コピーをアップロードすることなく、YOLO モデルのブラウズ、アノテーション、トレーニングを行えます。
Azure Blob Storage データセットには Pro or Enterprise plan が必要です。無料のワークスペースでは連携機能が表示され、接続時にアップグレードを促されます。サブスクリプションが終了しても、既存の Azure Blob Storage データセットへのアクセスは完全に維持されますが、新規接続とインポートには Pro プランが必要です。
接続文字列の取得#
Platformはストレージから読み取りのみを行い、Blobの書き込み、変更、削除は一切行いません。現在の連携機能では、アカウントアクセスキーの接続文字列が必要です。これによりアカウント全体の権限が付与されますが、Platformが使用するのはリスト表示と読み取り操作のみです:
- Azureポータルで、ストレージアカウントを開きます。
- セキュリティとネットワーク > アクセスキー に移動します。
- 接続文字列 をコピーします。
文字列には AccountName、AccountKey を含め、プロトコルとして HTTPS を使用する必要があります。これは Azure が Access
keys で提供する形式です。AccountKey の代わりに SharedAccessSignature を含む SAS トークン接続文字列は拒否されます。
接続には標準の blob.core.windows.net エンドポイントが使用されます。ソブリンクラウド (Azure China、Azure Government) およびカスタムの BLOB エンドポイントはサポートされていません。
Platform への接続#
- Settings > Integrations に移動し、統合リストから Azure Blob Storage を選択します。
- 接続文字列を貼り付けます。
- Find available containers をクリックし、接続するコンテナを選択します。コンテナ名を手動で入力することもできます。
- 接続 をクリックします。Platformは、保存前に各選択コンテナのリスト表示と読み取りが可能であることを検証します。

クラウドストレージを接続するには、ワークスペースの管理者または所有者のロールが必要です。1つの接続で最大50個のコンテナを処理でき、検出機能ではストレージアカウント内の最大300個のコンテナがリストされます。
後で同じストレージアカウントを再接続すると、既存の連携に新しいコンテナが追加されます。保存された認証情報は、置換後の認証情報でも既に接続済みのすべてのコンテナを読み取れることが確認できた場合にのみ更新されます。
アカウントキーは、Platform の外部に露出した場合、書き込みおよび削除操作の承認や SAS トークンの作成を行うことができます。資格情報は保存時に AES-256-GCM で暗号化され、ブラウザに返されることも、トレーニングワークロードに露出することもありません。可能な限り専用のストレージアカウントを使用してください。アクセスを取り消すには、Azure でストレージアカウントのアクセスキーをローテーションします。
Blobコンテナからデータセットを作成#
- New Dataset をクリックし、Cloud タブを開きます。
- 接続済みのコンテナを選択し、データが含まれるフォルダーを参照します。
- フォルダーを確認し、データセット名を調整して、データセットを作成します。
Platform がフォルダーを一度リスト表示し、見つかった内容をインデックス化します:
- Images —
.jpg、.jpeg、.png、.webp、および.avifの各 BLOB は、制限付きリクエストを通じて読み込まれた寸法でインデックス化されます。Platform は、ソース画像の2つ目のコピーを永続化しません。 - ラベル (Labels) — YOLO の
.txtサイドカーは Platform のアノテーションに解析され、標準のimages/→labels/レイアウト、または同一フォルダ内の兄弟ファイルとして一致させられます。 - Metadata — アーカイブのアップロードと全く同様に、YAML ファイルによってクラス名とポーズキーポイントの形状が提供されます。フォルダ内に複数のファイルがある場合は、
data.yamlおよびdata.ymlが推奨されます。 - Task — ラベルファイルのサンプルに基づいてタスクが決定されるため、セグメンテーション、ポーズ、OBB の各フォルダは、ダイアログで選択したタスクではなく、そのラベルの形状から認識されます。
- Splits — BLOB パス内の
train、val、およびtestのフォルダー名によって、分割が自動的に割り当てられます。
その後、このデータセットは他のデータセットと同様に動作します。閲覧やアノテーションの実行、パブリックまたはプライベートの設定、チームとの共有、マネージドトレーニングを通じたトレーニングが可能です。オリジナル画像はオンデマンドでストリーミングされ、インデックス化された画像は Platform のストレージクォータを消費しません。
1回のインポートで最大50,000個のBlob、ラベルまたはYAMLファイルはそれぞれ最大1MBまでインデックス化可能です。これを超える大規模なコンテナは、複数のデータセットに分割してください。
インデックス化されたすべての画像は、そのBlobのETagに固定されます。Blobが背後で変更された場合、Platformはエラーを発生させて処理を停止します。既存のBlobを上書きするのではなく、新しいBlobを追加してください。
インポートの失敗#
空のフォルダー、パスのタイプミス、権限の取り消しなどでインポートが失敗した場合、データセットページにエラーが表示されます。編集者は インポートを再試行 をクリックして保存されたコンテナとフォルダーでやり直すか、正しいパスを指す新しいデータセットを作成できます。
再試行時は、再開ではなくフォルダの再リストが行われます。最初の試行以降に追加されたBlobが取得され、存在しなくなったBlobはデータセットから除外されます。
トレーニング#
管理されたトレーニングは、通常のトレーニングフローを通じて機能します。トレーニングでは、実行期間中、Platform 独自のピン留めされた画像のコピーが使用され、Azure の資格情報がトレーニングワークロードに露出することは一切ありません。
接続の切断#
切断すると、Azure内のいかなるデータにも触れることなく、保存されている接続文字列が削除されます。それらのコンテナから作成されたデータセットは、クラス、ラベル、アノテーションとともにワークスペースに残りますが、同じストレージアカウントが再度接続されるまで、画像の読み込み、プレビュー、トレーニングは行えません。
GET /api/integrations/buckets によって返されたインテグレーション ID を使用して、REST API を使用します。
curl -X DELETE \
-H "Authorization: Bearer YOUR_API_KEY" \
https://platform.ultralytics.com/api/integrations/buckets/INTEGRATION_IDfrom ultralytics_platform import Platform
client = Platform() # reads ULTRALYTICS_API_KEY
integrations = client.storage_integrations.list()
client.storage_integrations.delete("INTEGRATION_ID")代わりに元でアクセスを取り消すには、Azureでストレージアカウントのアクセスキーをローテーションします。
現在の制限事項#
Azure バックアップのデータセットでは現在、Platform が所有する画像のコピーを必要とする機能(自動アノテーション、clustering analysis、データセットのクローン、変更不可能な version snapshots)は除外されています。
Azureベースのデータセットや個別の画像を削除しても、Platform側の参照が削除されるだけであり、実際のBlobデータに影響を与えることはありません。
Google Cloud Storage および Amazon S3 の連携機能も参照してください。