Google Cloud Storage連携#
Google Cloud Storage連携により、GCSバケットをUltralytics Platformに接続できます。画像はバケット内に保持され、Platformはその場所でインデックスを作成するため、コピーをアップロードせずにYOLOモデルの参照、アノテーション、トレーニングを行えます。
Google Cloud Storageデータセットには、プロまたはエンタープライズプランが必要です。無料ワークスペースでは連携機能を確認できますが、接続時にアップグレードが求められます。サブスクリプションが終了しても、既存の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はフォルダーの一覧を一度取得し、見つかった内容をインデックス化します。
- Images —
.jpg、.jpeg、.png、.webp、.avifオブジェクトは、制限付きリクエストを通じて読み取ったサイズ情報とともにインデックス化されます。Platformは元画像のコピーを別途保存しません。 - Labels — YOLOの
.txtサイドカーはPlatformのアノテーションに解析され、標準のimages/→labels/レイアウト、または同じフォルダー内の兄弟ファイルとして対応付けられます。 - Metadata — YAMLファイルによって、アーカイブアップロードと同様に、クラス名とポーズキーポイントの形状が提供されます。フォルダーに複数存在する場合は、
data.yamlとdata.ymlが優先されます。 - Task — ラベルファイルのサンプルによってタスクが決まるため、ダイアログで選択したタスクではなく、ラベルの形状に基づいてセグメンテーション、ポーズ、OBBのフォルダーが認識されます。
- Splits — オブジェクトパス内の
train、val、testフォルダー名によって、データセットの分割が自動的に割り当てられます。
その後、データセットは他のデータセットと同様に扱えます。参照してアノテーションを付けたり、公開または非公開に設定したり、チームと共有したり、管理されたトレーニングを通じてトレーニングしたりできます。元の画像は必要に応じてストリーミングされ、インデックス化された画像はPlatformのストレージクォータを消費しません。
1回のインポートでインデックス化できるオブジェクトは最大50,000個、ラベルまたはYAMLファイルは1つあたり最大1 MBです。より大きなバケットは複数のデータセットに分割してください。
インデックス化された各画像はGCSオブジェクトの世代に固定され、オブジェクトが変更されている場合、Platformは処理を拒否します。既存のオブジェクトを上書きするのではなく、新しいオブジェクトを追加してください。
インポートの失敗#
空のフォルダー、パスの入力ミス、権限の取り消しなどによってインポートに失敗した場合、データセットのページにエラーが表示されます。編集者はRetry importをクリックして、保存済みのバケットとフォルダーを使用して再開するか、修正したパスを指定して新しいデータセットを作成できます。
再試行では処理を再開するのではなく、フォルダーの一覧を再取得します。最初の試行以降に追加されたオブジェクトは取り込まれ、存在しなくなったオブジェクトはデータセットから削除されます。
トレーニング#
管理されたトレーニングは通常のトレーニングフローを通じて実行されます。トレーニング中は、固定された画像の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_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の連携もご覧ください。
FAQ#
いいえ。Platformはバケットを一度リスト化し、検出された画像の寸法とラベルをインデックス化します。オリジナル画像はブラウジングやアノテーションのためにオンデマンドでストリーミングされ、管理されたトレーニングは、実行期間中のみ、ピン留めされた画像のPlatform独自のコピーを使用して動作します。インデックス化された画像は、ストレージクォータにはカウントされません。
データセットは作成時に一度インデックス化されます。新しいオブジェクトは、新しいデータセットを作成するか、失敗したインポートを再試行するまでピックアップされません。また、インデックス化されたすべての画像はそのバージョンにピン留めされているため、オブジェクトを上書きすると、Platformはその画像に対してフェイルクローズします。既存のオブジェクトを置き換えるのではなく、新しいオブジェクトを追加してください。
Platformが所有する画像のコピーを必要とする機能は、接続されたデータセットでは除外されます:自動アノテーション、クラスタリング分析、データセットの複製、不変のバージョン スナップショット。手動アノテーション、共有、トレーニングはすべて通常どおり機能します。
**[設定] > [統合]**で統合を解除して保存された認証情報を削除するか、Google Cloudでサービスアカウントキーを削除してください。どちらの操作もバケット内のデータには影響しません。