Amazon S3統合#
Amazon S3 連携機能を使用すると、S3 バケットを Ultralytics Platform に接続できます。画像はバケット内に保存されたまま、Platform がその場でインデックス作成を行うため、コピーをアップロードすることなく、YOLO モデルの閲覧、アノテーション、およびトレーニングを行うことができます。
Amazon S3 データセットを利用するには、Pro または Enterprise プランが必要です。無料ワークスペースでも連携機能は表示されますが、接続時にアップグレードを促されます。サブスクリプションが終了した場合でも、既存の Amazon S3 データセットは引き続き完全にアクセス可能です。Pro プランが必要なのは、新規の接続とインポートのみです。
読み取り専用IAMユーザーの作成#
Platform がストレージに対して行うのは読み取りのみであり、オブジェクトの書き込み、変更、削除を行うことは一切ありません。ルート認証情報は絶対に使用せず、リストおよび読み取り権限のみを持つ専用の IAM ユーザーを使用してください。
-
AWSコンソールで、IAM > ユーザーに移動し、コンソールアクセス権を持たないユーザーを作成します。
-
接続するバケットに対して、一覧表示および読み取り権限のみを付与するポリシーをアタッチします。
{ "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 がバケットを自動検出するため、手動で名前を入力する必要がなくなります。 -
ユーザーのセキュリティ認証情報タブを開き、アクセスキーを作成して、アクセスキーIDとシークレットアクセスキーをコピーします。
Platform への接続#
- 設定 (Settings) > 連携 (Integrations) に移動し、連携リストから Amazon S3 を選択します。
- アクセスキー ID、シークレットアクセスキー、およびバケットリージョン (例:
us-east-1) を入力します。 - Find available buckets をクリックし、接続するバケットを選択します。ポリシーで検出が許可されていない場合は、既知のバケット名を手動で入力します。
- 接続 をクリックします。Platform は保存前に、選択された各バケットをリストおよび読み取り可能であることを検証します。

後から同じIAMユーザーで再接続すると、既存の統合に新しいバケットが追加されます。保存済みの認証情報は、その代わりとなる認証情報ですべての接続済みバケットが読み取り可能な場合にのみ置き換えられます。
1つの接続は、入力したリージョン内のバケットを読み取ります。バケットが複数のリージョンに存在する場合は、リージョンごとに接続を行ってください。
認証情報はAES-256-GCMで暗号化して保存され、ブラウザに返されることはなく、学習ジョブのペイロードに含まれることもありません。アクセスを取り消すには、AWS IAMでアクセスキーを無効化してください。
S3バケットからのデータセットの作成#
- 新しいデータセット をクリックし、クラウドストレージ タブを開きます。
- 接続済みのバケットを選択し、データを含むフォルダを参照します。
- フォルダーを確認し、データセット名を調整して、データセットを作成します。
Platform がフォルダーを一度リスト表示し、見つかった内容をインデックス化します:
- 画像 (Images) —
.jpg、.jpeg、.png、.webp、および.avifのオブジェクトは、範囲指定リクエストを通じて読み取られたディメンションでインデックス化されます。Platform は元画像の 2 つ目のコピーを永続化しません。 - ラベル (Labels) — YOLO の
.txtサイドカーは Platform のアノテーションに解析され、標準のimages/→labels/レイアウト、または同一フォルダ内の兄弟ファイルとして一致させられます。 - メタデータ (Metadata) — アーカイブのアップロードと同様に、
data.yaml/data.ymlがクラス名、タスクタイプ、ポーズキーポイントの形状を提供します。 - 分割 (Splits) — オブジェクトキー内の
train、val、およびtestのフォルダ名によって、データ分割が自動的に割り当てられます。
その後、このデータセットは他のデータセットと同様に動作します。閲覧やアノテーションの実行、パブリックまたはプライベートの設定、チームとの共有、マネージドトレーニングを通じたトレーニングが可能です。オリジナル画像はオンデマンドでストリーミングされ、インデックス化された画像は Platform のストレージクォータを消費しません。
1 回のインポートで最大 50,000 個のオブジェクト、および各最大 1 MB のラベルファイルや YAML ファイルをインデックス化できます。より大きなバケットは、複数のデータセットに分割してください。
インデックスされたすべての画像はS3オブジェクトのETagに固定されます。基盤となるオブジェクトが変更された場合、Platformはエラーを出力して停止します。既存のオブジェクトを上書きするのではなく、新しいオブジェクトを追加するようにしてください。
インポートの失敗#
インポートが失敗した場合(空のフォルダ、パスの誤字、権限の取り消しなど)、データセットのページにエラーが表示されます。編集者は インポートを再試行 をクリックして保存されたバケットとフォルダで再開するか、修正されたパスを指定して新しいデータセットを作成できます。
トレーニング#
マネージド学習は通常の学習フローを通じて動作します。ワーカーが固定されたオリジナルデータを一時的なジョブストレージにダウンロードして学習を実行し、ジョブ終了時に削除します。AWS認証情報が計算環境に渡されることはありません。
現在の制限事項#
現在、S3 をバックエンドとするデータセットでは、Platform が所有する画像のコピーを必要とする機能 (自動アノテーション、クラスタリング分析、データセットのクローン、および変更不可能なバージョン スナップショット) はサポートされていません。
S3ベースのデータセット、またはその中の個別の画像を削除しても、Platform側の参照が削除されるだけであり、実際のオブジェクトが変更されることはありません。
また、Google Cloud Storage および Azure Blob Storage の連携機能もご覧ください。