Amazon S3 インテグレーション#
Amazon S3 インテグレーションは、S3 バケットを Ultralytics Platform に接続します。画像はバケット内に保持され、Platform はその場でインデックスを作成するため、コピーをアップロードせずに YOLO モデルを参照、アノテーション、トレーニングできます。
Amazon S3 データセットには Pro または Enterprise プラン が必要です。無料ワークスペースではインテグレーションを確認できますが、接続時にアップグレードが求められます。サブスクリプションが終了しても、既存の Amazon S3 データセットには引き続き完全にアクセスできます。Pro が必要になるのは、新しい接続とインポートのみです。
読み取り専用 IAM ユーザーを作成する#
Platform はストレージから読み取ることしかなく、オブジェクトへの書き込み、変更、削除は一切行いません。リストおよび読み取りアクセスのみを持つ専用の IAM ユーザー を使用してください。root 認証情報は使用しないでください。
-
AWS コンソールで IAM > Users に移動し、コンソールアクセスなしでユーザーを作成します。
-
接続するバケットに対して、リストおよび読み取りアクセスのみを許可するポリシーをアタッチします。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": ["s3:ListBucket", "s3:GetObject"], "Resource": ["arn:aws:s3:::my-bucket", "arn:aws:s3:::my-bucket/*"] } ] }s3:ListAllMyBucketsはオプションです。これを使用すると、バケット名を入力しなくても Platform がバケットを検出できます。 -
ユーザーの Security credentials タブを開き、access key を作成して、アクセスキー ID とシークレットアクセスキーをコピーします。
Platform は一時的な AWS 認証情報を拒否します。AWS STS が発行するキー(ASIA で始まるもの、ロール
セッション認証情報、IAM Identity Center のキーを含む)は、データセットの接続中に有効期限が切れるため、専用 IAM
ユーザーの長期間有効なアクセスキーが必要です。
Platformに接続する#
- Settings > Integrations に移動し、インテグレーションの一覧から Amazon S3 を選択します。
- アクセスキー ID、シークレットアクセスキー、バケットリージョン(例:
us-east-1)を入力します。 - Find available buckets をクリックし、接続するバケットを選択します。ポリシーで検出が許可されていない場合は、既知のバケット名を手動で入力します。
- Connectをクリックします。Platformは保存する前に、選択した各バケットの一覧表示と読み取りが可能であることを確認します。

クラウドストレージを接続するには、ワークスペースの管理者または所有者の role が必要です。1 つの接続で最大 50 個のバケットを扱うことができ、検出ではキーから参照可能なバケットのうち最大 300 個が一覧表示されます。
後で同じ IAM ユーザーを再接続すると、既存のインテグレーションに新しいバケットが追加されます。保存済みの認証情報は、置き換え後の認証情報でも、すでに接続したすべてのバケットを読み取れる場合にのみ置き換えられます。
1 つの接続で、入力したリージョン内のバケットを読み取ります。バケットが複数のリージョンにある場合は、リージョンごとに 1 回ずつ接続してください。
認証情報は保存時に AES-256-GCM で暗号化され、ブラウザーに返されることも、トレーニングワークロードに公開されることもありません。アクセスを取り消すには、AWS IAM でアクセスキーを無効化します。
S3 バケットからデータセットを作成する#
- 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です。より大きなバケットは複数のデータセットに分割してください。
インデックスが作成されたすべての画像は S3 オブジェクトの ETag に固定され、オブジェクトがその内容を変更された場合、Platform は処理を安全側に停止します。既存のオブジェクトを上書きするのではなく、新しいオブジェクトを追加してください。
インポートの失敗#
空のフォルダー、パスの入力ミス、権限の取り消しなどによってインポートに失敗した場合、データセットのページにエラーが表示されます。編集者はRetry importをクリックして、保存済みのバケットとフォルダーを使用して再開するか、修正したパスを指定して新しいデータセットを作成できます。
再試行では処理を再開するのではなく、フォルダーの一覧を再取得します。最初の試行以降に追加されたオブジェクトは取り込まれ、存在しなくなったオブジェクトはデータセットから削除されます。
トレーニング#
マネージドトレーニングは通常のトレーニングフローで実行されます。トレーニング中は、固定された画像の Platform 独自のコピーが実行期間中使用され、AWS 認証情報がトレーニングワークロードに公開されることはありません。
接続を切断する#
接続を解除すると、AWS 内のいかなるものにも触れることなく、保存された認証情報が削除されます。これらのバケットから作成したデータセットは、クラス、ラベル、アノテーションとともにワークスペースに残りますが、同じ IAM ユーザーを再接続するまで、画像の読み込み、プレビュー、トレーニングでの使用はできません。
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")代わりにソース側でアクセスを取り消すには、AWS IAM でアクセスキーを無効化または削除します。
現在の制限事項#
現在、S3 ベースのデータセットでは、Platform が画像のコピーを所有する必要がある機能が利用できません。これには、自動アノテーション、クラスタリング分析、データセットの複製、イミュータブルな バージョンスナップショット が含まれます。
S3 ベースのデータセットまたはその個々の画像を削除しても、Platform の参照のみが削除されます。オブジェクトに触れることはありません。
Google Cloud Storage および Azure Blob Storage のインテグレーションもご覧ください。
FAQ#
いいえ。Platformはバケットを一度リスト化し、検出された画像の寸法とラベルをインデックス化します。オリジナル画像はブラウジングやアノテーションのためにオンデマンドでストリーミングされ、管理されたトレーニングは、実行期間中のみ、ピン留めされた画像のPlatform独自のコピーを使用して動作します。インデックス化された画像は、ストレージクォータにはカウントされません。
データセットは作成時に一度インデックス化されます。新しいオブジェクトは、新しいデータセットを作成するか、失敗したインポートを再試行するまでピックアップされません。また、インデックス化されたすべての画像はそのバージョンにピン留めされているため、オブジェクトを上書きすると、Platformはその画像に対してフェイルクローズします。既存のオブジェクトを置き換えるのではなく、新しいオブジェクトを追加してください。
Platformが所有する画像のコピーを必要とする機能は、接続されたデータセットでは除外されます:自動アノテーション、クラスタリング分析、データセットの複製、不変のバージョン スナップショット。手動アノテーション、共有、トレーニングはすべて通常どおり機能します。
Settings > Integrationsで連携を解除して保存された資格情報を削除するか、AWS IAMでアクセスキーを無効化または削除してください。どちらの操作も、バケット内のデータには影響しません。