Google Cloud Storageとの連携#
Google Cloud Storageとの連携により、GCSバケットをUltralytics Platformに接続できます。画像はバケット内に保持されたまま、Platformがその場でインデックスを作成するため、コピーをアップロードせずにYOLOモデルの閲覧、アノテーション、トレーニングを行えます。
Google Cloud Storageデータセットを利用するには、ProまたはEnterpriseプランが必要です。Freeワークスペースでは連携機能が表示され、接続時にアップグレードを求められます。サブスクリプションが終了しても、既存のGoogle Cloud Storageデータセットには引き続き完全にアクセスできます。新しい接続とインポートのみProが必要です。
読み取り専用サービスアカウントを作成する#
Platformはストレージから読み取るだけで、オブジェクトへの書き込み、変更、削除は一切行いません。読み取りアクセスのみを持つ専用のサービスアカウントを作成します。
- Google Cloudコンソールで、IAM & Admin > Service Accountsに移動し、サービスアカウントを作成します。
- 接続するバケットに対して、Storage Object Viewer(
roles/storage.objectViewer)ロールを付与します。 - サービスアカウントを開き、Keys > Add key > Create new keyを選択して、JSONを選び、キーファイルをダウンロードします。
roles/storage.objectViewerはPlatformによるデータ操作に必要な権限をすべて含みますが、プロジェクト内のバケット一覧を取得する権限はありません。Platformにバケットを検出させる場合は、storage.buckets.listを含むロールを追加してください。
追加しない場合は、接続時に各バケット名を手動で入力します。
Platformに接続する#
- Settings > Integrationsに移動し、連携の一覧からGoogle Cloud Storageを選択します。
- サービスアカウントのJSONキーの内容を貼り付けます。
- Find available bucketsをクリックし、接続するバケットを選択します。サービスアカウントがバケット一覧を取得できない場合は、既知のバケット名を手動で入力します。
- Connectをクリックします。Platformは保存を行う前に、選択した各バケットの一覧取得と読み取りが可能であることを確認します。

クラウドストレージを接続するには、ワークスペースの管理者またはオーナーのロールが必要です。1つの接続で最大50個のバケットを登録でき、検出ではサービスアカウントから参照可能なバケットのうち最大300個が一覧表示されます。
ブラウザーは貼り付けられたキーファイルを読み取り、Platformが必要とする3つのフィールド(client_email、private_key、project_id)のみを送信します。JSONの残りの部分がページ外に送信されることはありません。
後で同じサービスアカウントを再接続すると、既存の連携に新しいバケットが追加されます。保存済みの認証情報は、置き換え後も接続済みのすべてのバケットを読み取れる場合にのみ更新されます。
認証情報は保存時にAES-256-GCMで暗号化され、ブラウザーに返されることも、トレーニングワークロードに公開されることもありません。アクセスを取り消すには、Google Cloudでサービスアカウントのキーを削除します。
GCSバケットからデータセットを作成する#
- New Datasetをクリックし、Cloudタブを開きます。
- 接続済みのバケットを選択し、データが含まれるフォルダーを参照します。
- フォルダーを確認し、データセット名を調整して、データセットを作成します。
Platformはフォルダーの一覧を一度取得し、見つかった内容をインデックス化します。
- 画像 —
.jpg、.jpeg、.png、.webp、.avifオブジェクトは、上限付きリクエストで読み取った寸法とともにインデックス化されます。Platformはソース画像のコピーを別途保存しません。 - ラベル — YOLOの
.txtサイドカーファイルはPlatformのアノテーションに変換され、標準のimages/→labels/の配置、または同じフォルダー内のファイルとして照合されます。 - メタデータ — YAMLファイルからクラス名とポーズキーポイントの形状が読み込まれます。これはアーカイブのアップロードと同じです。フォルダーに複数のファイルがある場合は、
data.yamlとdata.ymlが優先されます。 - タスク — ラベルファイルのサンプルをもとにタスクが判定されます。そのため、セグメント、ポーズ、OBBの各フォルダーは、ダイアログで選択したタスクではなく、ラベルの形式から認識されます。
- 分割 — オブジェクトパス内の
train、val、testというフォルダー名によって、分割が自動的に割り当てられます。
その後、データセットは他のデータセットと同様に利用できます。閲覧やアノテーションを行い、公開または非公開に設定し、チームと共有し、マネージドトレーニングでトレーニングできます。オリジナル画像は必要に応じてストリーミングされ、インデックス化された画像はPlatformのストレージ割り当てを消費しません。
1回のインポートでインデックス化できるオブジェクトは最大500,000個、ラベルファイルまたはYAMLファイルはそれぞれ最大1 MBです。これを超える大きさのバケットは、複数のデータセットに分割してください。
インデックス化された各画像はGCSオブジェクトの世代に固定されており、オブジェクトがその状態で変更されると、Platformは安全のために処理を停止します。既存のオブジェクトを上書きするのではなく、新しいオブジェクトを追加してください。
インポートに失敗した場合#
フォルダーが空、パスに誤りがある、権限が取り消されたなどの理由でインポートに失敗すると、データセットのページにエラーが表示されます。編集者はRetry importをクリックして、保存されたバケットとフォルダーを使って再実行するか、修正したパスを指定して新しいデータセットを作成できます。
再試行では処理を再開するのではなく、フォルダーの一覧を再取得します。最初の試行以降に追加されたオブジェクトは取り込まれ、存在しなくなったオブジェクトはデータセットから削除されます。
学習#
マネージドトレーニングは通常のトレーニングフローで実行できます。トレーニング中は、固定された画像のPlatform独自のコピーが使用されます。Google Cloudの認証情報がトレーニングワークロードに公開されることはありません。
接続を解除する#
接続を解除すると、Google Cloud上のデータには一切触れずに、保存済みの認証情報が削除されます。これらのバケットから作成したデータセットは、クラス、ラベル、アノテーションとともにワークスペースに残りますが、同じサービスアカウントを再接続するまで、画像の読み込み、プレビュー、トレーニングはできません。
連携IDとしてGET /api/integrations/bucketsから返される値を使い、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")接続元でアクセスを取り消すには、Google Cloudでサービスアカウントのキーを削除します。
現在の制限事項#
GCS連携データセットでは、画像のPlatform所有コピーを必要とする機能は現在利用できません。自動アノテーション、クラスタリング分析、データセットの複製、変更不可のバージョンスナップショットが対象です。
GCS連携データセット、またはその個別画像を削除しても、Platform上の参照情報のみが削除されます。オブジェクトには一切触れません。
Amazon S3およびAzure Blob Storageとの連携もご覧ください。
よくある質問#
いいえ。Platformはバケットの一覧を一度取得し、見つかった画像の寸法とラベルをインデックス化します。閲覧やアノテーション時にはオリジナル画像が必要に応じてストリーミングされ、マネージドトレーニングでは実行中に限り、固定された画像のPlatform独自のコピーが使用されます。インデックス化された画像はストレージ割り当てに含まれません。
データセットは作成時に一度だけインデックス化されます。新しいオブジェクトは、新しいデータセットを作成するか、失敗したインポートを再試行するまで取り込まれません。インデックス化された各画像はそのバージョンに固定されているため、オブジェクトを上書きすると、Platformはその画像の処理を安全のために停止します。既存のオブジェクトを置き換えるのではなく、新しいオブジェクトを追加してください。
画像のPlatform所有コピーを必要とする機能は、接続済みのデータセットでは利用できません。自動アノテーション、クラスタリング分析、データセットの複製、変更不可のバージョンスナップショットが対象です。手動アノテーション、共有、トレーニングは通常どおり利用できます。
Settings > Integrationsで連携を解除して保存済みの認証情報を削除するか、Google Cloudでサービスアカウントのキーを削除します。どちらの操作でも、バケット内のデータには影響しません。