Ultralytics YOLO27:

Amazon S3連携#

Amazon S3連携により、S3バケットをUltralytics Platformに接続できます。画像はバケット内に保持され、Platformはその場でインデックスを作成するため、コピーをアップロードせずにYOLOモデルの閲覧、アノテーション、トレーニングを行えます。

Pro機能

Amazon S3データセットを利用するには、ProまたはEnterpriseプランが必要です。無料ワークスペースでは連携が表示され、接続時にアップグレードを求められます。サブスクリプションが終了しても、既存のAmazon S3データセットには引き続き完全にアクセスできます。新しい接続とインポートにのみProが必要です。

読み取り専用IAMユーザーを作成する#

Platformはストレージから読み取るだけで、オブジェクトへの書き込み、変更、削除は一切行いません。バケットの一覧表示と読み取りのみを許可する専用のIAMユーザーを使用し、ルート認証情報は使用しないでください:

  1. AWSコンソールでIAM > Usersに移動し、コンソールアクセスを許可せずにユーザーを作成します。

  2. 接続するバケットに対して、一覧表示と読み取りのみを許可するポリシーを適用します:

    {
        "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がバケットを検出できるため、バケット名を入力する必要がありません。

  3. ユーザーのSecurity credentialsタブを開き、access keyを作成して、アクセスキーIDとシークレットアクセスキーをコピーします。

長期間有効なIAMユーザーキーのみ

Platformは一時的なAWS認証情報を拒否します。AWS STSが発行するキー(ASIAで始まるものを含む)、ロール セッション認証情報、IAM Identity Centerキーは、データセットの接続中に有効期限が切れるため、専用IAMユーザーの長期間有効なアクセスキーが必要です。

Platformに接続する#

  1. Settings > Integrationsに移動し、連携リストからAmazon S3を選択します。
  2. アクセスキーID、シークレットアクセスキー、バケットのリージョン(例: us-east-1)を入力します。
  3. Find available bucketsをクリックし、接続するバケットを選択します。ポリシーで検出が許可されていない場合は、 既知のバケット名を手動で入力してください。
  4. Connectをクリックします。Platformは保存を行う前に、選択した各バケットの一覧取得と読み取りが可能であることを確認します。

Ultralytics PlatformのAmazon S3連携設定

クラウドストレージを接続するには、ワークスペースの管理者またはオーナーのロールが必要です。1つの 接続で最大50個のバケットを登録でき、キーから検出できるバケットのうち最大300個が一覧に表示されます。

同じIAMユーザーで後から再接続すると、既存の連携に新しいバケットが追加されます。保存済みの認証情報が置き換えられるのは、置き換え後も接続済みのすべてのバケットを読み取れる場合のみです。

1つの接続につき1つのリージョン

接続では、入力したリージョンにあるバケットが読み取られます。バケットが複数のリージョンにある場合は、リージョンごとに接続してください。

認証情報のセキュリティ

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

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

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

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です。これを超える大きさのバケットは、複数のデータセットに分割してください。

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

インデックスが作成された各画像は、S3オブジェクトのETagに紐付けられます。オブジェクトが変更された場合、Platformは安全側に倒して処理を停止します。既存のオブジェクトを上書きするのではなく、新しいオブジェクトを追加してください。

インポートに失敗した場合#

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

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

学習#

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

接続を解除する#

接続を解除すると、AWS上のものには一切触れずに、保存された認証情報が削除されます。これらのバケットから作成されたデータセットは、クラス、ラベル、アノテーションとともにワークスペースに残りますが、同じIAMユーザーを再接続するまでは、画像を読み込んだり、プレビューしたり、トレーニングに使用したりできません。

連携IDとしてGET /api/integrations/bucketsから返される値を使い、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")

接続元でアクセスを取り消すには、AWS IAMでアクセスキーを無効化または削除してください。

現在の制限事項#

S3連携データセットでは、画像のPlatform所有コピーが必要な機能(自動アノテーション、クラスタリング分析、データセットのクローン作成、変更不可能なバージョンスナップショット)は現在利用できません。

S3連携データセットまたは個々の画像を削除しても、Platformの参照情報のみが削除され、オブジェクトには一切触れません。

Google Cloud StorageおよびAzure Blob Storageとの連携もご覧ください。

よくある質問#

  • いいえ。Platformはバケットの一覧を一度取得し、見つかった画像の寸法とラベルをインデックス化します。閲覧やアノテーション時にはオリジナル画像が必要に応じてストリーミングされ、マネージドトレーニングでは実行中に限り、固定された画像のPlatform独自のコピーが使用されます。インデックス化された画像はストレージ割り当てに含まれません。

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

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

  • 保存された認証情報を削除するには、Settings > Integrationsで連携を解除するか、AWS IAMでアクセスキーを無効化または削除してください。どちらの操作でも、バケット内のデータには影響しません。

コントリビューター

コメント