

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

# 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\_size
<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\_captured
<a name="md-creation-date-coco"></a>

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

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

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