

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# COCO データセットからマニフェストファイル形式への変換
<a name="md-transform-coco"></a>

[COCO](http://cocodataset.org/#home) は、大規模なオブジェクト検知、セグメンテーション、キャプションデータセットを指定するための形式です。この Python の[例](md-coco-transform-example.md)では、COCO オブジェクト検知形式のデータセットを Amazon Rekognition Custom Labels [境界ボックス形式のマニフェストファイル](md-create-manifest-file-object-detection.md)に変換する方法を示しています。このセクションには、独自のコードを記述するために使用できる情報も含まれています。

COCO 形式の JSON ファイルは、*データセット全体*の情報を提供する 5 つのセクションで構成されています。詳細については、「[COCO データセット形式](md-coco-overview.md)」を参照してください。
+ `info` - データセットに関する一般情報。
+ `licenses ` - データセット内のイメージのライセンス情報。
+ [`images`](md-coco-overview.md#md-coco-images) - データセット内のイメージのリスト。
+ [`annotations`](md-coco-overview.md#md-coco-annotations) - データセット内のすべてのイメージに含まれる注釈 (境界ボックスを含む) のリスト。
+ [`categories`](md-coco-overview.md#md-coco-categories) - ラベルカテゴリのリスト。

Amazon Rekognition Custom Labels マニフェストファイルを作成するには `images`、`annotations`、および `categories` のリストの情報が必要です。

Amazon Rekognition Custom Labels マニフェストファイルは JSON 行形式で、各行には*イメージ*の 1 つ以上のオブジェクトの境界ボックスとラベル情報が含まれます。詳細については、「[マニフェストファイル内のオブジェクトのローカリゼーション](md-create-manifest-file-object-detection.md)」を参照してください。

## COCO オブジェクトをカスタムラベルの JSON 行にマッピングする
<a name="md-mapping-coco"></a>

COCO 形式のデータセットを変換するには、COCO データセットを Amazon Rekognition Custom Labels マニフェストファイルにマッピングして、オブジェクトのローカリゼーションを行います。詳細については、「[マニフェストファイル内のオブジェクトのローカリゼーション](md-create-manifest-file-object-detection.md)」を参照してください。イメージごとに JSON 行を作成するには、マニフェストファイルに COCO データセット `image`、`annotation`、および `category` オブジェクトフィールド ID をマッピングする必要があります。

次は、COCO マニフェストファイルの例です。詳細については、「[COCO データセット形式](md-coco-overview.md)」を参照してください。

```
{
    "info": {
        "description": "COCO 2017 Dataset","url": "http://cocodataset.org","version": "1.0","year": 2017,"contributor": "COCO Consortium","date_created": "2017/09/01"
    },
    "licenses": [
        {"url": "http://creativecommons.org/licenses/by/2.0/","id": 4,"name": "Attribution License"}
    ],
    "images": [
        {"id": 242287, "license": 4, "coco_url": "http://images.cocodataset.org/val2017/xxxxxxxxxxxx.jpg", "flickr_url": "http://farm3.staticflickr.com/2626/xxxxxxxxxxxx.jpg", "width": 426, "height": 640, "file_name": "xxxxxxxxx.jpg", "date_captured": "2013-11-15 02:41:42"},
        {"id": 245915, "license": 4, "coco_url": "http://images.cocodataset.org/val2017/nnnnnnnnnnnn.jpg", "flickr_url": "http://farm1.staticflickr.com/88/xxxxxxxxxxxx.jpg", "width": 640, "height": 480, "file_name": "nnnnnnnnnn.jpg", "date_captured": "2013-11-18 02:53:27"}
    ],
    "annotations": [
        {"id": 125686, "category_id": 0, "iscrowd": 0, "segmentation": [[164.81, 417.51,......167.55, 410.64]], "image_id": 242287, "area": 42061.80340000001, "bbox": [19.23, 383.18, 314.5, 244.46]},
        {"id": 1409619, "category_id": 0, "iscrowd": 0, "segmentation": [[376.81, 238.8,........382.74, 241.17]], "image_id": 245915, "area": 3556.2197000000015, "bbox": [399, 251, 155, 101]},
        {"id": 1410165, "category_id": 1, "iscrowd": 0, "segmentation": [[486.34, 239.01,..........495.95, 244.39]], "image_id": 245915, "area": 1775.8932499999994, "bbox": [86, 65, 220, 334]}
    ],
    "categories": [
        {"supercategory": "speaker","id": 0,"name": "echo"},
        {"supercategory": "speaker","id": 1,"name": "echo dot"}
    ]
}
```

次の図では、データセットの COCO *データセット*のリストが、*イメージ*の Amazon Rekognition Custom Labels JSON 行にどのようにマッピングされるかを示しています。画像の各 JSON 行には、source-ref、job、および job metadata フィールドがあります。一致する色は、1 つのイメージの情報を示しています。マニフェストでは、1 つの画像に複数の注釈とメタデータ/カテゴリが含まれる場合があります。

![\[画像、注釈、カテゴリを含む Coco マニフェストの構造を示す図。\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/customlabels-dg/images/coco-transform.png)


**単一の JSON 行の COCO オブジェクトを取得するには**

1. イメージリスト内の各イメージについて、注釈リストから、注釈フィールド `image_id` の値がイメージ `id` フィールドと一致する注釈を取得します。

1. ステップ 1 で一致した注釈ごとに、`categories` リストを読み込み、`category` フィールド `id` の値が `annotation` オブジェクトの `category_id` フィールドと一致する各 `category` を取得します。

1. 一致した `image`、`annotation`、および `category` オブジェクトを使用して、イメージの JSON 行を作成します。フィールドをマッピングするには、「[COCO オブジェクトフィールドをカスタムラベル JSON 行オブジェクトフィールドにマッピングする](#md-mapping-fields-coco)」を参照してください。

1. `images` リスト内の各 `image` オブジェクトに JSON 行が作成されるまで、ステップ 1～3 を繰り返します。

サンプルコードについては、「[COCO データセットの変換](md-coco-transform-example.md)」を参照してください。

## COCO オブジェクトフィールドをカスタムラベル JSON 行オブジェクトフィールドにマッピングする
<a name="md-mapping-fields-coco"></a>

Amazon Rekognition Custom Labels JSON 行の COCO オブジェクトを特定したら、COCO オブジェクトフィールドをそれぞれの Amazon Rekognition Custom Labels JSON 行オブジェクトフィールドにマッピングする必要があります。次の Amazon Rekognition Custom Labels JSON 行の例では、1 つのイメージ (`id`=`000000245915`) を前述の COCO JSON の例にマッピングしています。以下の情報に注意してください。
+ `source-ref` は Amazon S3 バケット内のイメージの場所です。COCO のイメージが Amazon S3 バケットに保存されていない場合は、それらを Amazon S3 バケットに移動する必要があります。
+ `annotations` リストには、イメージのオブジェクトごとに 1 つの `annotation` オブジェクトが含まれています。`annotation` オブジェクトには、境界ボックス情報 (`top`、`left`、`width`、`height`) とラベル識別子 (`class_id`) が含まれます。
+ ラベル識別子 (`class_id`) はメタデータ内の `class-map` リストにマッピングされます。イメージに使用されているラベルが一覧表示されます。

```
{
	"source-ref": "s3://custom-labels-bucket/images/000000245915.jpg",
	"bounding-box": {
		"image_size": {
			"width": 640,
			"height": 480,
			"depth": 3
		},
		"annotations": [{
			"class_id": 0,
			"top": 251,
			"left": 399,
			"width": 155,
			"height": 101
		}, {
			"class_id": 1,
			"top": 65,
			"left": 86,
			"width": 220,
			"height": 334
		}]
	},
	"bounding-box-metadata": {
		"objects": [{
			"confidence": 1
		}, {
			"confidence": 1
		}],
		"class-map": {
			"0": "Echo",
			"1": "Echo Dot"
		},
		"type": "groundtruth/object-detection",
		"human-annotated": "yes",
		"creation-date": "2018-10-18T22:18:13.527256",
		"job-name": "my job"
	}
}
```

以下の情報を使用して、Amazon Rekognition Custom Labels マニフェストファイルフィールドを COCO データセット JSON フィールドにマッピングします。

### source-ref
<a name="md-source-ref-coco"></a>

イメージの場所の S3 形式の URL。イメージは S3 バケットに保存されている必要があります。詳細については、「[source-ref](md-create-manifest-file-object-detection.md#cd-manifest-source-ref)」を参照してください。`coco_url` COCO フィールドが S3 バケットの場所を指している場合、`coco_url` の値には `source-ref` の値を使用できます。または、`source-ref` を `file_name` (COCO) フィールドにマッピングし、イメージが保存されている場所に必要な S3 パスを変換コードに追加することもできます。

### *bounding-box*
<a name="md-label-attribute-id-coco"></a>

選択したラベルの属性名。詳細については、「[*bounding-box*](md-create-manifest-file-object-detection.md#md-manifest-source-bounding-box)」を参照してください。

#### image\$1size
<a name="md-image-size-coco"></a>

イメージサイズ (ピクセル単位) [イメージ](md-coco-overview.md#md-coco-images)リストの `image` オブジェクトにマッピングします。
+ `height`-> `image.height`
+ `width`-> `image.width`
+ `depth`-> Amazon Rekognition Custom Labels では使用されませんが、値を指定する必要があります。

#### annotations
<a name="md-annotations-coco"></a>

`annotation` オブジェクトのリスト。イメージのオブジェクトごとに 1 つの `annotation` があります。

#### 注釈
<a name="md-annotation-coco"></a>

イメージのオブジェクトの 1 つのインスタンスの境界ボックス情報が含まれます。
+ `class_id`-> カスタムラベルの `class-map` リストへの数値 ID マッピング。
+ `top` -> `bbox[1]`
+ `left` -> `bbox[0]`
+ `width` -> `bbox[2]`
+ `height` -> `bbox[3]`

### *bounding-box*-metadata
<a name="md-metadata-coco"></a>

ラベル属性のメタデータ。ラベルとラベル ID が含まれています。詳細については、「[*bounding-box*-metadata](md-create-manifest-file-object-detection.md#md-manifest-source-bounding-box-metadata)」を参照してください。

#### オブジェクト
<a name="cd-metadata-objects-coco"></a>

イメージ内のオブジェクトの配列。インデックスによって `annotations` リストにマッピングされます。

##### オブジェクト
<a name="cd-metadata-object-coco"></a>
+ `confidence`->Amazon Rekognition Custom Labels では使用されませんが、値 (1) が必要です。

#### class-map
<a name="md-metadata-class-map-coco"></a>

イメージ内で検知されたオブジェクトに適用されるラベル (クラス) のマップ。[カテゴリ](md-coco-overview.md#md-coco-categories)リスト内のカテゴリオブジェクトにマッピングします。
+ `id` -> `category.id`
+ `id value` -> `category.name`

#### 型
<a name="md-type-coco"></a>

`groundtruth/object-detection` を指定してください

#### human-annotated
<a name="md-human-annotated-coco"></a>

`yes` または `no` を指定します。詳細については、「[*bounding-box*-metadata](md-create-manifest-file-object-detection.md#md-manifest-source-bounding-box-metadata)」を参照してください。

#### creation-date -> [image](md-coco-overview.md#md-coco-images).date\$1captured
<a name="md-creation-date-coco"></a>

イメージの作成日時。COCO イメージリストの [image](md-coco-overview.md#md-coco-images).date\$1captured フィールドにマッピングされます。Amazon Rekognition Custom Labels では、`creation-date` の形式が *Y-M-DTH:M:S* であることを想定しています。

#### job-name
<a name="md-job-name-coco"></a>

ユーザーが選択したジョブ名。

# COCO データセット形式
<a name="md-coco-overview"></a>

COCO データセットは、データセット全体の情報を提供する 5 つの情報セクションで構成されています。COCO オブジェクト検知データセットの形式は「[COCO Data Format](http://cocodataset.org/#format-data)」に記載されています。
+ info - データセットに関する一般情報。
+ licenses - データセット内のイメージのライセンス情報。
+ [images](#md-coco-images) - データセット内のイメージのリスト。
+ [annotations](#md-coco-annotations) - データセット内のすべてのイメージに含まれる注釈 (境界ボックスを含む) のリスト。
+ [categories](#md-coco-categories) - ラベルカテゴリのリスト。

カスタムラベルマニフェストを作成するには、COCO マニフェストファイルの `images`、`annotations`、および `categories` リストを使用します。他のセクション (`info`、`licences`) は必須ではありません。次は、COCO マニフェストファイルの例です。

```
{
    "info": {
        "description": "COCO 2017 Dataset","url": "http://cocodataset.org","version": "1.0","year": 2017,"contributor": "COCO Consortium","date_created": "2017/09/01"
    },
    "licenses": [
        {"url": "http://creativecommons.org/licenses/by/2.0/","id": 4,"name": "Attribution License"}
    ],
    "images": [
        {"id": 242287, "license": 4, "coco_url": "http://images.cocodataset.org/val2017/xxxxxxxxxxxx.jpg", "flickr_url": "http://farm3.staticflickr.com/2626/xxxxxxxxxxxx.jpg", "width": 426, "height": 640, "file_name": "xxxxxxxxx.jpg", "date_captured": "2013-11-15 02:41:42"},
        {"id": 245915, "license": 4, "coco_url": "http://images.cocodataset.org/val2017/nnnnnnnnnnnn.jpg", "flickr_url": "http://farm1.staticflickr.com/88/xxxxxxxxxxxx.jpg", "width": 640, "height": 480, "file_name": "nnnnnnnnnn.jpg", "date_captured": "2013-11-18 02:53:27"}
    ],
    "annotations": [
        {"id": 125686, "category_id": 0, "iscrowd": 0, "segmentation": [[164.81, 417.51,......167.55, 410.64]], "image_id": 242287, "area": 42061.80340000001, "bbox": [19.23, 383.18, 314.5, 244.46]},
        {"id": 1409619, "category_id": 0, "iscrowd": 0, "segmentation": [[376.81, 238.8,........382.74, 241.17]], "image_id": 245915, "area": 3556.2197000000015, "bbox": [399, 251, 155, 101]},
        {"id": 1410165, "category_id": 1, "iscrowd": 0, "segmentation": [[486.34, 239.01,..........495.95, 244.39]], "image_id": 245915, "area": 1775.8932499999994, "bbox": [86, 65, 220, 334]}
    ],
    "categories": [
        {"supercategory": "speaker","id": 0,"name": "echo"},
        {"supercategory": "speaker","id": 1,"name": "echo dot"}
    ]
}
```

## イメージリスト
<a name="md-coco-images"></a>

COCO データセットが参照するイメージは、イメージ配列に一覧表示されます。各イメージオブジェクトには、イメージファイル名などのイメージに関する情報が含まれています。次のイメージオブジェクトの例では、次の情報と、Amazon Rekognition Custom Labels マニフェストファイルを作成するために必要なフィールドを記録しておきます。
+ `id` - (必須) イメージの一意の識別子。`id` フィールドは、annotations 配列 (境界ボックス情報が格納されている) の `id` フィールドにマッピングされます。
+ `license` - (不要) ライセンス配列にマッピングします。
+ `coco_url` - (オプション) スキーマの場所。
+ `flickr_url` - (不要) Flickr のイメージの場所。
+ `width` - (必須) イメージの幅。
+ `height` - (必須) イメージの高さ。
+ `file_name` - (必須) イメージのファイル名。この例では `file_name` と `id` が一致していますが、これは COCO データセットの要件ではありません。
+ `date_captured` - (必須) イメージがキャプチャされた日時。

```
{
    "id": 245915,
    "license": 4,
    "coco_url": "http://images.cocodataset.org/val2017/nnnnnnnnnnnn.jpg",
    "flickr_url": "http://farm1.staticflickr.com/88/nnnnnnnnnnnnnnnnnnn.jpg",
    "width": 640,
    "height": 480,
    "file_name": "000000245915.jpg",
    "date_captured": "2013-11-18 02:53:27"
}
```

## 注釈 (境界ボックス) リスト
<a name="md-coco-annotations"></a>

全イメージのすべてのオブジェクトの境界ボックス情報は、注釈リストに保存されます。1 つの注釈オブジェクトには、1 つのオブジェクトの境界ボックス情報と、イメージのオブジェクトのラベルが含まれています。イメージのオブジェクトのインスタンスごとに 1 つの注釈オブジェクトがあります。

次の例では、次の情報と、Amazon Rekognition Custom Labels マニフェストファイルを作成するために必要なフィールドを記録しておきます。
+ `id` - (不要) 注釈の識別子。
+ `image_id` - (必須) イメージ配列内のイメージ `id` に対応します。
+ `category_id` - (必須) 境界ボックス内のオブジェクトを識別するラベルの識別子。カテゴリ配列の `id` フィールドにマッピングされます。
+ `iscrowd` - (不要) イメージに多数のオブジェクトが含まれているかどうかを指定します。
+ `segmentation` - (不要) イメージのオブジェクトのセグメンテーション情報。Amazon Rekognition Custom Labels はセグメンテーションをサポートしていません。
+ `area` - (不要) 注釈の領域。
+ `bbox` - (必須) イメージのオブジェクトを囲む境界ボックスの座標 (ピクセル単位) が含まれます。

```
{
    "id": 1409619,
    "category_id": 1,
    "iscrowd": 0,
    "segmentation": [
        [86.0, 238.8,..........382.74, 241.17]
    ],
    "image_id": 245915,
    "area": 3556.2197000000015,
    "bbox": [86, 65, 220, 334]
}
```

## カテゴリリスト
<a name="md-coco-categories"></a>

ラベル情報は、カテゴリ配列に保存されます。次のカテゴリオブジェクトの例では、次の情報と、Amazon Rekognition Custom Labels マニフェストファイルを作成するために必要なフィールドを記録しておきます。
+ `supercategory` - (不要) ラベルの親カテゴリ。
+ `id` - (必須) ラベル識別子。`id` フィールドは `annotation` オブジェクト内の `category_id` フィールドにマッピングされます。次の例では、Echo Dot の識別子は 2 です。
+ `name` - (必須) ラベル名。

```
        {"supercategory": "speaker","id": 2,"name": "echo dot"}
```

# COCO データセットの変換
<a name="md-coco-transform-example"></a>

次の Python の例を使用して、境界ボックス情報を、COCO 形式のデータセットから Amazon Rekognition Custom Labels マニフェストファイルに変換します。このコードは、作成したマニフェストファイルを Amazon S3 バケットにアップロードします。このコードには、イメージのアップロードに使用できる AWS CLI コマンドも用意されています。

**COCO データセットを変換するには (SDK)**

1. まだ実行していない場合:

   1. `AmazonS3FullAccess` の権限があることを確認します。詳細については、「[SDK アクセス許可の設定](su-sdk-permissions.md)」を参照してください。

   1. と AWS SDKs をインストール AWS CLI して設定します。詳細については、「[ステップ 4: AWS CLI と AWS SDKsを設定する](su-awscli-sdk.md)」を参照してください。

1. 次の Python コードを使用して COCO データセットを変換します。次の値を設定します。
   + `s3_bucket` - イメージと Amazon Rekognition Custom Labels マニフェストファイルを保存する S3 バケットの名前。
   + `s3_key_path_images` - S3 バケット (`s3_bucket`) 内のイメージを保存する場所へのパス。
   + `s3_key_path_manifest_file` - S3 バケット (`s3_bucket`) 内の Custom Labels マニフェストファイルを保存する場所へのパス。
   + `local_path` - サンプルが入力 COCO データセットを開き、新しいカスタムラベルマニフェストファイルを保存するローカルパス。
   + `local_images_path` - トレーニングに使用するイメージへのローカルパス。
   + `coco_manifest` - 入力 COCO データセットのファイル名。
   + `cl_manifest_file` - このサンプルで作成されたマニフェストファイルの名前。ファイルは `local_path` で指定された場所に保存されます。慣例により、ファイルには拡張子 `.manifest` が付いていますが、必須ではありません。
   + `job_name` - カスタムラベルジョブの名前。

   ```
   import json
   import os
   import random
   import shutil
   import datetime
   import botocore
   import boto3
   import PIL.Image as Image
   import io
   
   #S3 location for images
   s3_bucket = 'bucket'
   s3_key_path_manifest_file = 'path to custom labels manifest file/'
   s3_key_path_images = 'path to images/'
   s3_path='s3://' + s3_bucket  + '/' + s3_key_path_images
   s3 = boto3.resource('s3')
   
   #Local file information
   local_path='path to input COCO dataset and output Custom Labels manifest/'
   local_images_path='path to COCO images/'
   coco_manifest = 'COCO dataset JSON file name'
   coco_json_file = local_path + coco_manifest
   job_name='Custom Labels job name'
   cl_manifest_file = 'custom_labels.manifest'
   
   label_attribute ='bounding-box'
   
   open(local_path + cl_manifest_file, 'w').close()
   
   # class representing a Custom Label JSON line for an image
   class cl_json_line:  
       def __init__(self,job, img):  
   
           #Get image info. Annotations are dealt with seperately
           sizes=[]
           image_size={}
           image_size["width"] = img["width"]
           image_size["depth"] = 3
           image_size["height"] = img["height"]
           sizes.append(image_size)
   
           bounding_box={}
           bounding_box["annotations"] = []
           bounding_box["image_size"] = sizes
   
           self.__dict__["source-ref"] = s3_path + img['file_name']
           self.__dict__[job] = bounding_box
   
           #get metadata
           metadata = {}
           metadata['job-name'] = job_name
           metadata['class-map'] = {}
           metadata['human-annotated']='yes'
           metadata['objects'] = [] 
           date_time_obj = datetime.datetime.strptime(img['date_captured'], '%Y-%m-%d %H:%M:%S')
           metadata['creation-date']= date_time_obj.strftime('%Y-%m-%dT%H:%M:%S') 
           metadata['type']='groundtruth/object-detection'
           
           self.__dict__[job + '-metadata'] = metadata
   
   
   print("Getting image, annotations, and categories from COCO file...")
   
   with open(coco_json_file) as f:
   
       #Get custom label compatible info    
       js = json.load(f)
       images = js['images']
       categories = js['categories']
       annotations = js['annotations']
   
       print('Images: ' + str(len(images)))
       print('annotations: ' + str(len(annotations)))
       print('categories: ' + str(len (categories)))
   
   
   print("Creating CL JSON lines...")
       
   images_dict = {image['id']: cl_json_line(label_attribute, image) for image in images}
   
   print('Parsing annotations...')
   for annotation in annotations:
   
       image=images_dict[annotation['image_id']]
   
       cl_annotation = {}
       cl_class_map={}
   
       # get bounding box information
       cl_bounding_box={}
       cl_bounding_box['left'] = annotation['bbox'][0]
       cl_bounding_box['top'] = annotation['bbox'][1]
    
       cl_bounding_box['width'] = annotation['bbox'][2]
       cl_bounding_box['height'] = annotation['bbox'][3]
       cl_bounding_box['class_id'] = annotation['category_id']
   
       getattr(image, label_attribute)['annotations'].append(cl_bounding_box)
   
   
       for category in categories:
            if annotation['category_id'] == category['id']:
               getattr(image, label_attribute + '-metadata')['class-map'][category['id']]=category['name']
           
       
       cl_object={}
       cl_object['confidence'] = int(1)  #not currently used by Custom Labels
       getattr(image, label_attribute + '-metadata')['objects'].append(cl_object)
   
   print('Done parsing annotations')
   
   # Create manifest file.
   print('Writing Custom Labels manifest...')
   
   for im in images_dict.values():
   
       with open(local_path+cl_manifest_file, 'a+') as outfile:
               json.dump(im.__dict__,outfile)
               outfile.write('\n')
               outfile.close()
   
   # Upload manifest file to S3 bucket.
   print ('Uploading Custom Labels manifest file to S3 bucket')
   print('Uploading'  + local_path + cl_manifest_file + ' to ' + s3_key_path_manifest_file)
   print(s3_bucket)
   s3 = boto3.resource('s3')
   s3.Bucket(s3_bucket).upload_file(local_path + cl_manifest_file, s3_key_path_manifest_file + cl_manifest_file)
   
   # Print S3 URL to manifest file,
   print ('S3 URL Path to manifest file. ')
   print('\033[1m s3://' + s3_bucket + '/' + s3_key_path_manifest_file + cl_manifest_file + '\033[0m') 
   
   # Display aws s3 sync command.
   print ('\nAWS CLI s3 sync command to upload your images to S3 bucket. ')
   print ('\033[1m aws s3 sync ' + local_images_path + ' ' + s3_path + '\033[0m')
   ```

1. コードを実行します。

1. プログラムの出力で、`s3 sync` コマンドを記録しておきます。それは次の手順で必要となります。

1. コマンドラインプロンプトで、`s3 sync` コマンドを実行します。イメージが S3 バケットにアップロードされます。アップロード中にコマンドが失敗した場合は、ローカルイメージ S3 バケットと同期されるまでコマンドを再度実行してください。

1. プログラムの出力で、マニフェストファイルへの S3 URL パスを記録しておきます。それは次の手順で必要となります。

1. 「[SageMaker AI Ground Truth マニフェストファイルを使用したデータセットの作成 (コンソール)](md-create-dataset-ground-truth.md#md-create-dataset-ground-truth-console)」の手順に従って、アップロードしたマニフェストファイルを使用してデータセットを作成します。ステップ 8 では、**[マニフェストファイルの場所]** に、前のステップで記録しておいた Amazon S3 URL を入力します。 AWS SDK を使用している場合、[SageMaker AI Ground Truth マニフェストファイル (SDK) を使用したデータセットの作成](md-create-dataset-ground-truth.md#md-create-dataset-ground-truth-sdk) を実行してください。