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

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 & Admin > Service Accountsに移動し、サービスアカウントを作成します。
  2. 接続するバケットに対して、Storage Object Viewer(roles/storage.objectViewer)ロールを付与します。
  3. サービスアカウントを開き、Keys > Add key > Create new keyを選択して、JSONを選び、キーファイルをダウンロードします。
バケットの検出には追加の権限が必要です

roles/storage.objectViewerはPlatformがデータに対して行うすべての操作をカバーしますが、プロジェクト内のバケット一覧を取得する権限はありません。Platformにバケットを検出させるには、storage.buckets.listを含むロールを追加してください。追加しない場合は、接続時に各バケット名を手動で入力してください。

Platformに接続する#

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

Ultralytics PlatformのGoogle Cloud Storage連携設定

クラウドストレージを接続するには、ワークスペースの管理者または所有者のロールが必要です。一度に最大50個のバケットを追加できます。検出機能では、サービスアカウントから参照できるバケットのうち最大300個が一覧表示されます。

ブラウザーは貼り付けられたキーファイルを読み取り、Platformが必要とする3つのフィールド、client_email、private_key、project_idのみを送信します。JSONの残りの内容がページ外に送信されることはありません。

後で同じサービスアカウントを再接続すると、既存の連携に新しいバケットが追加されます。保存済みの認証情報が置き換えられるのは、新しい認証情報でも接続済みのすべてのバケットを読み取れる場合のみです。いずれかのバケットを読み取れない場合、同じサービスアカウントで以前に接続したバケットも含め、エラーにそのバケット名が表示されます。

認証情報のセキュリティ

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

GCSバケットからデータセットを作成する#

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

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

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

作成したデータセットは、他のデータセットと同様に利用できます。閲覧やアノテーション、公開・非公開の設定、チームとの共有、マネージドトレーニングによるトレーニングが可能です。元画像は必要に応じてストリーミングされ、インデックス化された画像はPlatformのストレージクォータを消費しません。

制限事項

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

インデックス化したオブジェクトを変更しないでください

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

インポートの失敗#

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

再試行では処理を再開せず、フォルダーを再度一覧表示します。最初の試行以降に追加されたオブジェクトは取り込まれ、すでに存在しないオブジェクトはデータセットから除外されます。

トレーニング#

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

接続を解除する#

接続を解除すると、保存済みの認証情報が削除されますが、Google Cloud上のデータには影響しません。それらのバケットから作成したデータセットは、クラス、ラベル、アノテーションとともにワークスペースに残りますが、同じサービスアカウントを再接続するまで画像の読み込み、プレビュー、トレーニングはできません。接続解除中も、データセット名の変更、ラベルの編集、データセットの削除は可能です。

接続を解除するには、Settings > Integrations に移動し、Google Cloud Storage を選択して、認証情報の横にある Disconnect をクリックし、確認します。そのデータセットを開くと、これらの設定へのリンクとともに Google Cloud Storage Disconnected と表示されます。再接続すると、データセットは自動的に再び利用可能になります。

REST APIを使って接続を解除することもできます。その際は、GET /api/integrations/buckets が返すインテグレーションIDを使用します。

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のインテグレーションもご覧ください。

よくある質問#

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

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

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

  • 保存済みの認証情報を削除するには、Settings > Integrations でインテグレーションの接続を解除するか、Google Cloudでサービスアカウントキーを削除してください。どちらの操作でも、バケット内のデータには影響しません。

コメント