YOLO Vision 2026:

Google Cloud Storage 統合#

Google Cloud Storage 連携機能を使用すると、GCS バケットを Ultralytics Platform に接続できます。画像はバケット内に保持され、Platform がそのままの場所でインデックス化するため、コピーをアップロードすることなく、YOLO モデルの閲覧、アノテーション、トレーニングを行えます。

Pro 機能

Google Cloud Storage データセットには Pro または Enterprise プランが必要です。無料ワークスペースでは連携機能が表示されますが、接続時にアップグレードを促されます。サブスクリプションが終了した場合でも、既存の Google Cloud Storage データセットは引き続き完全にアクセス可能です。Pro プランが必要なのは、新規の接続とインポートのみです。

読み取り専用サービスアカウントの作成#

Platform はストレージからの読み取りのみを行い、オブジェクトの書き込み、変更、削除を行うことは一切ありません。読み取りアクセスのみを持つ専用のサービスアカウントを作成してください。

  1. Google Cloud コンソールで IAM と管理 > サービス アカウント に移動し、サービスアカウントを作成します。
  2. 接続するバケットに対して、Storage Object Viewer (roles/storage.objectViewer) ロールを付与します。
  3. サービスアカウントを開き、キー > キーを追加 > 新しいキーを作成 を選択し、JSON を選択してキーファイルをダウンロードします。
バケットの検出には、もう1つの権限が必要です

roles/storage.objectViewer は Platform がお客様のデータで行うすべての処理をカバーしますが、プロジェクト内のバケットの一覧表示は許可しません。Platform にバケットを自動検出させたい場合は、storage.buckets.list を持つロールを追加してください。そうでない場合は、接続時に各バケット名を自分で入力してください。

Platform への接続#

  1. 設定 (Settings) > 連携 (Integrations) に移動し、連携リストから Google Cloud Storage を選択します。
  2. サービスアカウントのJSONキーの内容を貼り付けます。
  3. Find available buckets をクリックし、接続するバケットを選択します。サービス account がバケットをリストできない場合は、既知のバケット名を手動で入力します。
  4. 接続 をクリックします。Platform は保存前に、選択された各バケットをリストおよび読み取り可能であることを検証します。

Ultralytics Platform Google Cloud Storage Integration Settings

クラウドストレージを接続するには、ワークスペースの管理者またはオーナーのロールが必要です。1つの接続で最大50個のバケットを処理でき、検出機能ではサービスアカウントが参照できるバケットのうち最大300個がリストアップされます。

ブラウザは貼り付けられたキーファイルを読み込み、Platform が必要とする3つのフィールド(client_emailprivate_keyproject_id)のみを送信します。JSON の残りの部分はページ外に送信されません。

後で同じサービスアカウントを再接続すると、既存の統合に新しいバケットが追加されます。保存済みの認証情報は、その代わりとなる認証情報ですべての既存接続済みバケットが読み取れる場合にのみ置き換えられます。

資格情報のセキュリティ

資格情報は AES-256-GCM で暗号化されて保存され、ブラウザに返されることはなく、トレーニングワークロードに公開されることもありません。アクセスを失効させるには、Google Cloud でサービスアカウントキーを削除してください。

GCS バケットからのデータセット作成#

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

Platform がフォルダーを一度リスト表示し、見つかった内容をインデックス化します:

  • 画像 (Images).jpg.jpeg.png.webp、および .avif のオブジェクトは、範囲指定リクエストを通じて読み取られたディメンションでインデックス化されます。Platform は元画像の 2 つ目のコピーを永続化しません。
  • ラベル (Labels) — YOLO の .txt サイドカーは Platform のアノテーションに解析され、標準の images/labels/ レイアウト、または同一フォルダ内の兄弟ファイルとして一致させられます。
  • Metadataアーカイブのアップロードと全く同様に、YAML ファイルによってクラス名とポーズキーポイントの形状が提供されます。フォルダ内に複数のファイルがある場合は、data.yaml および data.yml が推奨されます。
  • Task — ラベルファイルのサンプルに基づいてタスクが決定されるため、セグメンテーション、ポーズ、OBB の各フォルダは、ダイアログで選択したタスクではなく、そのラベルの形状から認識されます。
  • 分割 (Splits) — オブジェクトパス内の trainval、および test のフォルダ名により、分割が自動的に割り当てられます。

その後、このデータセットは他のデータセットと同様に動作します。閲覧やアノテーションの実行、パブリックまたはプライベートの設定、チームとの共有、マネージドトレーニングを通じたトレーニングが可能です。オリジナル画像はオンデマンドでストリーミングされ、インデックス化された画像は Platform のストレージクォータを消費しません。

制限事項

1 回のインポートで最大 50,000 個のオブジェクト、および各最大 1 MB のラベルファイルや YAML ファイルをインデックス化できます。より大きなバケットは、複数のデータセットに分割してください。

インデックス化されたオブジェクトを不変に保つ

インデックス化されたすべての画像は、その GCS オブジェクト生成に固定されます。基盤となるオブジェクトが変更された場合、Platform は安全のため処理を停止します。既存のオブジェクトを上書きするのではなく、新しいオブジェクトを追加してください。

インポートの失敗#

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

再試行時は処理の再開ではなくフォルダの再リストアップが行われます。初回試行以降に追加されたオブジェクトが取得され、存在せざるを得なくなったオブジェクトはデータセットから除外されます。

トレーニング#

マネージドトレーニングは通常のトレーニングフローを通じて機能します。トレーニングでは実行期間中 Platform 独自の固定画像コピーが使用され、Google Cloud の資格情報がトレーニングワークロードに公開されることはありません。

接続の切断#

接続を切断しても、Google Cloud 内のものは何も変更されず、保存されている資格情報のみが削除されます。それらのバケットから構築されたデータセットは、クラス、ラベル、アノテーションとともにワークスペース内に残りますが、同じサービスアカウントが再度接続されるまで、画像の読み込み、プレビュー、トレーニングを行うことはできません。

GET /api/integrations/buckets によって返されたインテグレーション ID を使用して、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")

代わりに元凶でアクセスを失効させるには、Google Cloud でサービスアカウントキーを削除してください。

現在の制限事項#

GCS をバックエンドとするデータセットでは現在、Platform が所有する画像のコピーを必要とする機能(自動アノテーション、クラスタリング分析、データセットのクローン作成、不変のバージョン スナップショット)は除外されます。

GCS を使用するデータセットやその個別の画像を削除しても、Platform 上の参照が削除されるだけであり、実際のオブジェクトには一切影響しません。

また、Amazon S3 および Azure Blob Storage の連携機能もご覧ください。

コメント