

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Membuat kumpulan data pelatihan dan uji dengan gambar
<a name="md-create-dataset"></a>

Anda dapat memulai dengan proyek yang memiliki satu kumpulan data, atau proyek yang memiliki kumpulan data pelatihan dan pengujian terpisah. Jika Anda memulai dengan satu kumpulan data, Amazon Rekognition Custom Labels membagi kumpulan data Anda selama pelatihan untuk membuat kumpulan data pelatihan (80%) dan kumpulan data pengujian (% 20) untuk proyek Anda. Mulailah dengan satu kumpulan data jika Anda ingin Label Kustom Rekognition Amazon memutuskan di mana gambar digunakan untuk pelatihan dan pengujian. Untuk kontrol penuh atas pelatihan, pengujian, dan penyetelan kinerja, kami menyarankan Anda memulai proyek Anda dengan kumpulan data pelatihan dan pengujian terpisah. 

Anda dapat membuat kumpulan data pelatihan dan pengujian untuk proyek dengan mengimpor gambar dari salah satu lokasi berikut:
+ [Mengimpor gambar dari bucket Amazon S3](md-create-dataset-s3.md)
+ [Mengimpor gambar dari komputer lokal](md-create-dataset-computer.md)
+ [Menggunakan file manifes untuk mengimpor gambar](md-create-dataset-ground-truth.md)
+ [Menyalin konten dari kumpulan data yang ada](md-create-dataset-existing-dataset.md)

Jika Anda memulai proyek dengan kumpulan data pelatihan dan pengujian terpisah, Anda dapat menggunakan lokasi sumber yang berbeda untuk setiap kumpulan data.

Tergantung dari mana Anda mengimpor gambar, gambar Anda mungkin tidak berlabel. Misalnya, gambar yang diimpor dari komputer lokal tidak diberi label. Gambar yang diimpor dari file manifes Amazon SageMaker AI Ground Truth diberi label. Anda dapat menggunakan konsol Amazon Rekognition Custom Labels untuk menambahkan, mengubah, dan menetapkan label. Untuk informasi selengkapnya, lihat [Pelabelan gambar](md-labeling-images.md).

Jika gambar diunggah dengan kesalahan, gambar hilang, atau label hilang dari gambar, baca[Mendebug pelatihan model yang gagal](tm-debugging.md).

Untuk informasi selengkapnya tentang kumpulan data, lihat. [Mengelola kumpulan data](managing-dataset.md)

## Buat kumpulan data pelatihan dan pengujian (SDK)
<a name="cd-create-dataset-sdk"></a>

Anda dapat menggunakan AWS SDK untuk membuat kumpulan data pelatihan dan pengujian.

`CreateDataset`Operasi ini memungkinkan Anda menentukan tag secara opsional saat membuat kumpulan data baru, untuk tujuan mengkategorikan dan mengelola sumber daya Anda. 

### Dataset pelatihan
<a name="cd-create-training-dataset"></a>

Anda dapat menggunakan AWS SDK untuk membuat kumpulan data pelatihan dengan cara berikut.
+ Gunakan [CreateDataset](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateDataset)dengan file manifes format Amazon Sagemaker yang Anda berikan. Untuk informasi selengkapnya, lihat [Membuat file manifes](md-create-manifest-file.md). Untuk kode sampel, lihat [Membuat kumpulan data dengan file manifes SageMaker AI Ground Truth (SDK)](md-create-dataset-ground-truth.md#md-create-dataset-ground-truth-sdk).
+ Gunakan `CreateDataset` untuk menyalin kumpulan data Label Kustom Amazon Rekognition yang ada. Untuk kode sampel, lihat [Membuat kumpulan data menggunakan dataset (SDK) yang ada](md-create-dataset-existing-dataset-sdk.md).
+ Buat dataset kosong dengan `CreateDataset` dan tambahkan entri dataset di lain waktu dengan. [UpdateDatasetEntries](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_UpdateDatasetEntries) Untuk membuat kumpulan data kosong, lihat[Menambahkan kumpulan data ke proyek](md-add-dataset.md). Untuk menambahkan gambar ke kumpulan data, lihat[Menambahkan lebih banyak gambar (SDK)](md-add-images.md#md-add-images-sdk). Anda perlu menambahkan entri dataset sebelum Anda dapat melatih model.

### Dataset uji
<a name="cd-create-test-dataset"></a>

Anda dapat menggunakan AWS SDK untuk membuat kumpulan data pengujian dengan cara berikut:
+ Gunakan [CreateDataset](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateDataset)dengan file manifes format Amazon Sagemaker yang Anda berikan. Untuk informasi selengkapnya, lihat [Membuat file manifes](md-create-manifest-file.md). Untuk kode sampel, lihat [Membuat kumpulan data dengan file manifes SageMaker AI Ground Truth (SDK)](md-create-dataset-ground-truth.md#md-create-dataset-ground-truth-sdk).
+ Gunakan `CreateDataset` untuk menyalin kumpulan data Label Kustom Amazon Rekognition yang ada. Untuk kode sampel, lihat [Membuat kumpulan data menggunakan dataset (SDK) yang ada](md-create-dataset-existing-dataset-sdk.md).
+ Buat dataset kosong dengan `CreateDataset` dan tambahkan entri dataset di lain waktu dengan. `UpdateDatasetEntries` Untuk membuat kumpulan data kosong, lihat[Menambahkan kumpulan data ke proyek](md-add-dataset.md). Untuk menambahkan gambar ke kumpulan data, lihat[Menambahkan lebih banyak gambar (SDK)](md-add-images.md#md-add-images-sdk). Anda perlu menambahkan entri dataset sebelum Anda dapat melatih model.
+ Pisahkan kumpulan data pelatihan menjadi kumpulan data pelatihan dan pengujian terpisah. Pertama buat dataset pengujian kosong dengan`CreateDataset`. Kemudian pindahkan 20% entri kumpulan data pelatihan ke dalam kumpulan data pengujian dengan menelepon. [DistributeDatasetEntries](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DistributeDatasetEntries) Untuk membuat kumpulan data kosong, lihat[Menambahkan kumpulan data ke proyek (SDK)](md-add-dataset.md#md-add-dataset-sdk). Untuk membagi kumpulan data pelatihan, lihat[Mendistribusikan dataset pelatihan (SDK)](md-distributing-datasets.md).

# Mengimpor gambar dari bucket Amazon S3
<a name="md-create-dataset-s3"></a>

Gambar diimpor dari ember Amazon S3. Anda dapat menggunakan bucket konsol, atau bucket Amazon S3 lainnya di akun Anda AWS . Jika Anda menggunakan bucket konsol, izin yang diperlukan sudah diatur. Jika Anda tidak menggunakan bucket konsol, lihat[Mengakses Bucket Amazon S3 eksternal](su-console-policy.md#su-external-buckets).

**catatan**  
Anda tidak dapat menggunakan AWS SDK untuk membuat kumpulan data langsung dari gambar di bucket Amazon S3. Sebagai gantinya, buat file manifes yang mereferensikan lokasi sumber gambar. Untuk informasi selengkapnya, lihat [Menggunakan file manifes untuk mengimpor gambar](md-create-dataset-ground-truth.md)

Selama pembuatan kumpulan data, Anda dapat memilih untuk menetapkan nama label ke gambar berdasarkan nama folder yang berisi gambar. Folder harus merupakan turunan dari jalur folder Amazon S3 yang Anda tentukan di **lokasi folder S3** selama pembuatan kumpulan data. Untuk membuat kumpulan data, lihat[Membuat kumpulan data dengan mengimpor gambar dari bucket S3](#cd-procedure).

Misalnya, asumsikan struktur folder berikut di bucket Amazon S3. **Jika Anda menentukan lokasi folder Amazon S3 sebagai *S3-bucket/Alexa-devices*, gambar di folder echo diberi label echo.** *Demikian pula, gambar di folder *echo-dot* diberi label echo-dot.* Nama-nama folder anak yang lebih dalam tidak digunakan untuk memberi label pada gambar. Sebagai gantinya, folder anak yang sesuai dari lokasi folder Amazon S3 digunakan. Misalnya, gambar dalam folder *white-echo-dots*diberi label *echo-dot*. Gambar di tingkat lokasi folder S3 (*alexa-devices*) tidak memiliki label yang ditetapkan padanya.

 Folder yang lebih dalam dalam struktur folder dapat digunakan untuk memberi label gambar dengan menentukan lokasi folder S3 yang lebih dalam. Misalnya, Jika Anda menentukan *S3- bucket/alexa-devices/echo -dot*, Gambar dalam folder *white-echo-dot*diberi label. *white-echo-dot* Gambar di luar lokasi folder s3 yang ditentukan, seperti *echo*, tidak diimpor.

```
S3-bucket
└── alexa-devices
    ├── echo
    │   ├── echo-image-1.png
    │   └── echo-image-2.png
    │   ├── .
    │   └── .
    └── echo-dot
        ├── white-echo-dot
        │   ├── white-echo-dot-image-1.png
        │   ├── white-echo-dot-image-2.png
        │
        ├── echo-dot-image-1.png
        ├── echo-dot-image-2.png
        ├── .
        └── .
```

Sebaiknya gunakan bucket Amazon S3 (bucket konsol) yang dibuat untuk Anda oleh Amazon Rekognition saat pertama kali membuka konsol di wilayah saat ini. AWS Jika bucket Amazon S3 yang Anda gunakan berbeda (eksternal) dengan bucket konsol, konsol akan meminta Anda untuk menyiapkan izin yang sesuai selama pembuatan kumpulan data. Untuk informasi selengkapnya, lihat [Langkah 2: Siapkan izin konsol Amazon Rekognition Custom Labels](su-console-policy.md). 

## Membuat kumpulan data dengan mengimpor gambar dari bucket S3
<a name="cd-procedure"></a>

Prosedur berikut menunjukkan cara membuat kumpulan data menggunakan gambar yang disimpan di bucket Console S3. Gambar secara otomatis diberi label dengan nama folder tempat mereka disimpan. 

Setelah mengimpor gambar, Anda dapat menambahkan lebih banyak gambar, menetapkan label, dan menambahkan kotak pembatas dari halaman galeri kumpulan data. Untuk informasi selengkapnya, lihat [Pelabelan gambar](md-labeling-images.md).<a name="cd-upload-s3-bucket"></a>

**Unggah gambar Anda ke bucket Amazon Simple Storage Service**

1. Buat folder di sistem file lokal Anda. Gunakan nama folder seperti *alexa-devices*.

1. Di dalam folder yang baru saja Anda buat, buat folder yang diberi nama setelah setiap label yang ingin Anda gunakan. Misalnya, *echo* dan *echo-dot*. Struktur folder harus mirip dengan yang berikut ini.

   ```
   alexa-devices
   ├── echo
   │   ├── echo-image-1.png
   │   ├── echo-image-2.png
   │   ├── .
   │   └── .
   └── echo-dot
       ├── echo-dot-image-1.png
       ├── echo-dot-image-2.png
       ├── .
       └── .
   ```

1. Tempatkan gambar yang sesuai dengan label ke dalam folder dengan nama label yang sama.

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. [Tambahkan folder yang](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) *Anda buat di langkah 1 ke bucket Amazon S3 (bucket konsol) yang dibuat untuk Anda oleh Label Kustom Rekognition Amazon selama Penyiapan Pertama Kali.* Untuk informasi selengkapnya, lihat [Mengelola proyek Label Kustom Rekognition Amazon](managing-project.md).

1. Buka konsol Amazon Rekognition di. [https://console.aws.amazon.com/rekognition/](https://console.aws.amazon.com/rekognition/)

1. Pilih **Gunakan Label Kustom**.

1. Pilih **Mulai**. 

1. Di panel navigasi kiri, pilih **Proyek**.

1. Di halaman **Proyek**, pilih proyek yang ingin Anda tambahkan dataset. Halaman detail untuk proyek Anda ditampilkan.

1. Pilih **Buat kumpulan data**. Halaman **Buat dataset** ditampilkan.

1. Dalam **konfigurasi Mulai**, pilih **Mulai dengan satu set data** atau **Mulai dengan kumpulan data pelatihan**. Untuk membuat model berkualitas lebih tinggi, kami sarankan memulai dengan kumpulan data pelatihan dan pengujian terpisah.

------
#### [ Single dataset ]

   1. Di bagian **Detail kumpulan data Pelatihan**, pilih **Impor gambar dari bucket S3**.

   1. Di bagian **Detail kumpulan data pelatihan**, Masukkan informasi untuk langkah 13 - 15 di bagian **Konfigurasi sumber gambar**. 

------
#### [ Separate training and test datasets ]

   1. Di bagian **Detail kumpulan data Pelatihan**, pilih **Impor gambar dari bucket S3**.

   1. Di bagian **Detail kumpulan data Pelatihan**, masukkan informasi untuk langkah 13 - 15 di bagian **Konfigurasi sumber gambar**. 

   1. Di bagian **Uji detail kumpulan data**, pilih **Impor gambar dari ember S3**.

   1. Di bagian **Uji detail kumpulan data**, masukkan informasi untuk langkah 13 - 15 di bagian **Konfigurasi sumber gambar**. 

------

1. Pilih **Impor gambar dari ember Amazon S3**.

1. Di **URI S3**, masukkan lokasi bucket Amazon S3 dan jalur folder. 

1. Pilih **Secara otomatis melampirkan label ke gambar berdasarkan folder**.

1. Pilih **Buat Kumpulan Data**. Halaman kumpulan data untuk proyek Anda terbuka.

1. Jika Anda perlu menambahkan atau mengubah label, lakukan[Pelabelan gambar](md-labeling-images.md).

1. Ikuti langkah-langkah [Melatih model (Konsol)](training-model.md#tm-console) untuk melatih model Anda.

# Mengimpor gambar dari komputer lokal
<a name="md-create-dataset-computer"></a>

Gambar dimuat langsung dari komputer Anda. Anda dapat mengunggah hingga 30 gambar sekaligus.

Gambar yang Anda unggah tidak akan memiliki label yang terkait dengannya. Untuk informasi selengkapnya, lihat [Pelabelan gambar](md-labeling-images.md). Jika Anda memiliki banyak gambar untuk diunggah, pertimbangkan untuk menggunakan bucket Amazon S3. Untuk informasi selengkapnya, lihat [Mengimpor gambar dari bucket Amazon S3](md-create-dataset-s3.md).

**catatan**  
Anda tidak dapat menggunakan AWS SDK untuk membuat kumpulan data dengan gambar lokal. Sebagai gantinya, buat file manifes dan unggah gambar ke bucket Amazon S3. Untuk informasi selengkapnya, lihat [Menggunakan file manifes untuk mengimpor gambar](md-create-dataset-ground-truth.md).

**Untuk membuat kumpulan data menggunakan gambar di komputer lokal (konsol)**

1. Buka konsol Amazon Rekognition di. [https://console.aws.amazon.com/rekognition/](https://console.aws.amazon.com/rekognition/)

1. Pilih **Gunakan Label Kustom**.

1. Pilih **Mulai**. 

1. Di panel navigasi kiri, pilih **Proyek**.

1. Di halaman **Proyek**, pilih proyek yang ingin Anda tambahkan dataset. Halaman detail untuk proyek Anda ditampilkan.

1. Pilih **Buat kumpulan data**. Halaman **Buat dataset** ditampilkan.

1. Dalam **konfigurasi Mulai**, pilih **Mulai dengan satu set data** atau **Mulai dengan kumpulan data pelatihan**. Untuk membuat model berkualitas lebih tinggi, kami sarankan memulai dengan kumpulan data pelatihan dan pengujian terpisah.

------
#### [ Single dataset ]

   1. Di **bagian Detail kumpulan data pelatihan**, pilih **Unggah gambar dari komputer Anda**.

   1. Pilih **Buat Dataset**. 

   1. Pada halaman kumpulan data proyek, pilih **Tambahkan gambar**. 

   1. Pilih gambar yang ingin Anda unggah ke kumpulan data dari file komputer Anda. Anda dapat menyeret gambar atau memilih gambar yang ingin Anda unggah dari komputer lokal Anda.

   1. Pilih **Unggah gambar**.

------
#### [ Separate training and test datasets ]

   1. Di bagian **Detail kumpulan data pelatihan**, pilih **Unggah gambar dari komputer Anda**.

   1. Di bagian **Uji detail kumpulan data**, pilih **Unggah gambar dari komputer Anda**.
**catatan**  
Kumpulan data pelatihan dan pengujian Anda dapat memiliki sumber gambar yang berbeda.

   1. Pilih **Buat Kumpulan Data**. Halaman kumpulan data proyek Anda muncul dengan tab **Pelatihan** dan tab **Uji** untuk kumpulan data masing-masing. 

   1. Pilih **Tindakan**, lalu pilih **Tambahkan gambar ke kumpulan data pelatihan**.

   1. Pilih gambar yang ingin Anda unggah ke kumpulan data. Anda dapat menyeret gambar atau memilih gambar yang ingin Anda unggah dari komputer lokal Anda.

   1. Pilih **Unggah gambar**.

   1. Ulangi langkah 5e - 5g. Untuk langkah 5e, pilih **Tindakan** dan kemudian pilih **Tambahkan gambar untuk menguji kumpulan data**.

------

1. Ikuti langkah-langkah [Pelabelan gambar](md-labeling-images.md) untuk memberi label pada gambar Anda.

1. Ikuti langkah-langkah [Melatih model (Konsol)](training-model.md#tm-console) untuk melatih model Anda.

# Menggunakan file manifes untuk mengimpor gambar
<a name="md-create-dataset-ground-truth"></a>

Anda dapat membuat kumpulan data menggunakan file manifes format Amazon SageMaker AI Ground Truth. Anda dapat menggunakan file manifes dari pekerjaan Amazon SageMaker AI Ground Truth. Jika gambar dan label Anda tidak dalam format file manifes SageMaker AI Ground Truth, Anda dapat membuat file manifes format SageMaker AI dan menggunakannya untuk mengimpor gambar berlabel. 

`CreateDataset`Operasi diperbarui untuk memungkinkan Anda menentukan tag secara opsional saat membuat kumpulan data baru. Tag adalah pasangan nilai kunci yang dapat Anda gunakan untuk mengkategorikan dan mengelola sumber daya Anda. 

**Topics**
+ [Membuat kumpulan data dengan file manifes SageMaker AI Ground Truth (Console)](#md-create-dataset-ground-truth-console)
+ [Membuat kumpulan data dengan file manifes SageMaker AI Ground Truth (SDK)](#md-create-dataset-ground-truth-sdk)
+ [Buat permintaan dataset](#create-dataset-ground-truth-request)
+ [Memberi label gambar dengan pekerjaan Amazon SageMaker AI Ground Truth](md-create-dataset-ground-truth-job.md)
+ [Membuat file manifes](md-create-manifest-file.md)
+ [Mengimpor label tingkat gambar dalam file manifes](md-create-manifest-file-classification.md)
+ [Lokalisasi objek dalam file manifes](md-create-manifest-file-object-detection.md)
+ [Aturan validasi untuk file manifes](md-create-manifest-file-validation-rules.md)
+ [Mengonversi format dataset lain ke file manifes](md-converting-to-sm-format.md)

## Membuat kumpulan data dengan file manifes SageMaker AI Ground Truth (Console)
<a name="md-create-dataset-ground-truth-console"></a>

Prosedur berikut menunjukkan cara membuat kumpulan data dengan menggunakan file manifes format SageMaker AI Ground Truth. 

1. Buat file manifes untuk kumpulan data pelatihan Anda dengan melakukan salah satu hal berikut:
   + Buat file manifes dengan SageMaker AI GroundTruth Job dengan mengikuti petunjuk di[Memberi label gambar dengan pekerjaan Amazon SageMaker AI Ground Truth](md-create-dataset-ground-truth-job.md). 
   + Buat file manifes Anda sendiri dengan mengikuti petunjuk di[Membuat file manifes](md-create-manifest-file.md). 

   Jika Anda ingin membuat kumpulan data pengujian, ulangi langkah 1 untuk membuat kumpulan data pengujian.

1. Buka konsol Amazon Rekognition di. [https://console.aws.amazon.com/rekognition/](https://console.aws.amazon.com/rekognition/)

1. Pilih **Gunakan Label Kustom**.

1. Pilih **Mulai**. 

1. Di panel navigasi kiri, pilih **Proyek**.

1. Di halaman **Proyek**, pilih proyek yang ingin Anda tambahkan dataset. Halaman detail untuk proyek Anda ditampilkan.

1. Pilih **Buat kumpulan data**. Halaman **Buat dataset** ditampilkan.

1. Dalam **konfigurasi Mulai**, pilih **Mulai dengan satu set data** atau **Mulai dengan kumpulan data pelatihan**. Untuk membuat model berkualitas lebih tinggi, kami sarankan memulai dengan kumpulan data pelatihan dan pengujian terpisah.

------
#### [ Single dataset ]

   1. Di bagian **Detail kumpulan data Pelatihan**, pilih **Impor gambar berlabel SageMaker Ground Truth**.

   1. Di **lokasi file.manifest masukkan lokasi file** manifes yang Anda buat di langkah 1.

   1. Pilih **Buat Dataset**. Halaman kumpulan data untuk proyek Anda terbuka.

------
#### [ Separate training and test datasets ]

   1. Di bagian **Detail kumpulan data Pelatihan**, pilih **Impor gambar berlabel SageMaker Ground Truth**.

   1. Di lokasi **file.manifest masukkan lokasi file manifes** kumpulan data pelatihan yang Anda buat di langkah 1.

   1. Di bagian **Test dataset details**, pilih **Impor gambar berlabel SageMaker Ground Truth**.
**catatan**  
Kumpulan data pelatihan dan pengujian Anda dapat memiliki sumber gambar yang berbeda.

   1. Di lokasi **file.manifest masukkan lokasi file manifes** kumpulan data pengujian yang Anda buat di langkah 1.

   1. Pilih **Buat Kumpulan Data**. Halaman kumpulan data untuk proyek Anda terbuka.

------

1. Jika Anda perlu menambahkan atau mengubah label, lakukan[Pelabelan gambar](md-labeling-images.md).

1. Ikuti langkah-langkah [Melatih model (Konsol)](training-model.md#tm-console) untuk melatih model Anda.

## Membuat kumpulan data dengan file manifes SageMaker AI Ground Truth (SDK)
<a name="md-create-dataset-ground-truth-sdk"></a>

Prosedur berikut menunjukkan cara membuat kumpulan data pelatihan atau pengujian dari file manifes menggunakan API. [CreateDataset](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateDataset)

Anda dapat menggunakan file manifes yang ada, seperti output dari [pekerjaan SageMaker AI Ground Truth](md-create-dataset-ground-truth-job.md), atau membuat [file manifes](md-create-manifest-file.md) Anda sendiri. 

1. Jika Anda belum melakukannya, instal dan konfigurasikan AWS CLI dan AWS SDKs. Untuk informasi selengkapnya, lihat [Langkah 4: Mengatur AWS CLI dan AWS SDKs](su-awscli-sdk.md).

1. Buat file manifes untuk kumpulan data pelatihan Anda dengan melakukan salah satu hal berikut:
   + Buat file manifes dengan SageMaker AI GroundTruth Job dengan mengikuti petunjuk di[Memberi label gambar dengan pekerjaan Amazon SageMaker AI Ground Truth](md-create-dataset-ground-truth-job.md). 
   + Buat file manifes Anda sendiri dengan mengikuti petunjuk di[Membuat file manifes](md-create-manifest-file.md). 

   Jika Anda ingin membuat kumpulan data pengujian, ulangi langkah 2 untuk membuat kumpulan data pengujian.

1. Gunakan kode contoh berikut untuk membuat kumpulan data pelatihan dan pengujian.

------
#### [ AWS CLI ]

   Gunakan kode berikut untuk membuat kumpulan data. Ganti yang berikut ini:
   + `project_arn`— ARN dari proyek yang ingin Anda tambahkan dataset pengujian.
   + `type`— jenis dataset yang ingin Anda buat (TRAIN atau TEST)
   + `bucket`— bucket yang berisi file manifes untuk dataset.
   + `manifest_file`— jalur dan nama file dari file manifes.

   ```
   aws rekognition create-dataset --project-arn project_arn \
     --dataset-type type \
     --dataset-source '{ "GroundTruthManifest": { "S3Object": { "Bucket": "bucket", "Name": "manifest_file" } } }' \
     --profile custom-labels-access
     --tags '{"key1": "value1", "key2": "value2"}'
   ```

------
#### [ Python ]

   Gunakan nilai berikut untuk membuat kumpulan data. Sediakan parameter baris perintah berikut:
   + `project_arn`— ARN dari proyek yang ingin Anda tambahkan dataset pengujian.
   + `dataset_type`— jenis dataset yang ingin Anda buat (`train`atau`test`).
   + `bucket`— bucket yang berisi file manifes untuk dataset.
   + `manifest_file`— jalur dan nama file dari file manifes.

   ```
   #Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
   #PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-custom-labels-developer-guide/blob/master/LICENSE-SAMPLECODE.)
   
   
   import argparse
   import logging
   import time
   import json
   import boto3
   from botocore.exceptions import ClientError
   
   logger = logging.getLogger(__name__)
   
   def create_dataset(rek_client, project_arn, dataset_type, bucket, manifest_file):
       """
       Creates an Amazon Rekognition Custom Labels dataset.
       :param rek_client: The Amazon Rekognition Custom Labels Boto3 client.
       :param project_arn: The ARN of the project in which you want to create a dataset.
       :param dataset_type: The type of the dataset that you want to create (train or test).
       :param bucket: The S3 bucket that contains the manifest file.
       :param manifest_file: The path and filename of the manifest file.
       """
   
       try:
           #Create the project
           logger.info("Creating %s dataset for project %s",dataset_type, project_arn)
   
           dataset_type = dataset_type.upper()
   
           dataset_source = json.loads(
               '{ "GroundTruthManifest": { "S3Object": { "Bucket": "'
               + bucket
               + '", "Name": "'
               + manifest_file
               + '" } } }'
           )
   
           response = rek_client.create_dataset(
               ProjectArn=project_arn, DatasetType=dataset_type, DatasetSource=dataset_source
           )
   
           dataset_arn=response['DatasetArn']
   
           logger.info("dataset ARN: %s",dataset_arn)
   
           finished=False
           while finished is False:
   
               dataset=rek_client.describe_dataset(DatasetArn=dataset_arn)
   
               status=dataset['DatasetDescription']['Status']
               
               if status == "CREATE_IN_PROGRESS":
                   logger.info("Creating dataset: %s ",dataset_arn)
                   time.sleep(5)
                   continue
   
               if status == "CREATE_COMPLETE":
                   logger.info("Dataset created: %s", dataset_arn)
                   finished=True
                   continue
   
               if status == "CREATE_FAILED":
                   error_message = f"Dataset creation failed: {status} : {dataset_arn}"
                   logger.exception(error_message)
                   raise Exception (error_message)
                   
               error_message = f"Failed. Unexpected state for dataset creation: {status} : {dataset_arn}"
               logger.exception(error_message)
               raise Exception(error_message)
               
           return dataset_arn
      
       
       except ClientError as err:
           logger.exception("Couldn't create dataset: %s",err.response['Error']['Message'])
           raise
   
   def add_arguments(parser):
       """
       Adds command line arguments to the parser.
       :param parser: The command line parser.
       """
   
       parser.add_argument(
           "project_arn", help="The ARN of the project in which you want to create the dataset."
       )
   
       parser.add_argument(
           "dataset_type", help="The type of the dataset that you want to create (train or test)."
       )
   
       parser.add_argument(
           "bucket", help="The S3 bucket that contains the manifest file."
       )
       
       parser.add_argument(
           "manifest_file", help="The path and filename of the manifest file."
       )
   
   
   def main():
   
       logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s")
   
       try:
   
           #Get command line arguments.
           parser = argparse.ArgumentParser(usage=argparse.SUPPRESS)
           add_arguments(parser)
           args = parser.parse_args()
   
           print(f"Creating {args.dataset_type} dataset for project {args.project_arn}")
   
           #Create the dataset.
           session = boto3.Session(profile_name='custom-labels-access')
           rekognition_client = session.client("rekognition")
   
           dataset_arn=create_dataset(rekognition_client, 
               args.project_arn,
               args.dataset_type,
               args.bucket,
               args.manifest_file)
   
           print(f"Finished creating dataset: {dataset_arn}")
   
   
       except ClientError as err:
           logger.exception("Problem creating dataset: %s", err)
           print(f"Problem creating dataset: {err}")
   
   
   
   if __name__ == "__main__":
       main()
   ```

------
#### [ Java V2 ]

   Gunakan nilai berikut untuk membuat kumpulan data. Sediakan parameter baris perintah berikut:
   + `project_arn`— ARN dari proyek yang ingin Anda tambahkan dataset pengujian.
   + `dataset_type`— jenis dataset yang ingin Anda buat (`train`atau`test`).
   + `bucket`— bucket yang berisi file manifes untuk dataset.
   + `manifest_file`— jalur dan nama file dari file manifes.

   ```
   /*
      Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
      SPDX-License-Identifier: Apache-2.0
   */
   
   package com.example.rekognition;
   
   import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
   import software.amazon.awssdk.regions.Region;
   import software.amazon.awssdk.services.rekognition.RekognitionClient;
   import software.amazon.awssdk.services.rekognition.model.CreateDatasetRequest;
   import software.amazon.awssdk.services.rekognition.model.CreateDatasetResponse;
   import software.amazon.awssdk.services.rekognition.model.DatasetDescription;
   import software.amazon.awssdk.services.rekognition.model.DatasetSource;
   import software.amazon.awssdk.services.rekognition.model.DatasetStatus;
   import software.amazon.awssdk.services.rekognition.model.DatasetType;
   import software.amazon.awssdk.services.rekognition.model.DescribeDatasetRequest;
   import software.amazon.awssdk.services.rekognition.model.DescribeDatasetResponse;
   import software.amazon.awssdk.services.rekognition.model.GroundTruthManifest;
   import software.amazon.awssdk.services.rekognition.model.RekognitionException;
   import software.amazon.awssdk.services.rekognition.model.S3Object;
   
   import java.util.logging.Level;
   import java.util.logging.Logger;
   
   public class CreateDatasetManifestFiles {
   
       public static final Logger logger = Logger.getLogger(CreateDatasetManifestFiles.class.getName());
   
       public static String createMyDataset(RekognitionClient rekClient, String projectArn, String datasetType,
               String bucket, String name) throws Exception, RekognitionException {
   
           try {
   
               logger.log(Level.INFO, "Creating {0} dataset for project : {1} from s3://{2}/{3} ",
                       new Object[] { datasetType, projectArn, bucket, name });
   
               DatasetType requestDatasetType = null;
   
               switch (datasetType) {
               case "train":
                   requestDatasetType = DatasetType.TRAIN;
                   break;
               case "test":
                   requestDatasetType = DatasetType.TEST;
                   break;
               default:
                   logger.log(Level.SEVERE, "Could not create dataset. Unrecognized dataset type: {0}", datasetType);
                   throw new Exception("Could not create dataset. Unrecognized dataset type: " + datasetType);
   
               }
   
               GroundTruthManifest groundTruthManifest = GroundTruthManifest.builder()
                       .s3Object(S3Object.builder().bucket(bucket).name(name).build()).build();
   
               DatasetSource datasetSource = DatasetSource.builder().groundTruthManifest(groundTruthManifest).build();
   
               CreateDatasetRequest createDatasetRequest = CreateDatasetRequest.builder().projectArn(projectArn)
                       .datasetType(requestDatasetType).datasetSource(datasetSource).build();
   
               CreateDatasetResponse response = rekClient.createDataset(createDatasetRequest);
   
               boolean created = false;
   
               do {
   
                   DescribeDatasetRequest describeDatasetRequest = DescribeDatasetRequest.builder()
                           .datasetArn(response.datasetArn()).build();
                   DescribeDatasetResponse describeDatasetResponse = rekClient.describeDataset(describeDatasetRequest);
   
                   DatasetDescription datasetDescription = describeDatasetResponse.datasetDescription();
   
                   DatasetStatus status = datasetDescription.status();
   
                   logger.log(Level.INFO, "Creating dataset ARN: {0} ", response.datasetArn());
   
                   switch (status) {
   
                   case CREATE_COMPLETE:
                       logger.log(Level.INFO, "Dataset created");
                       created = true;
                       break;
   
                   case CREATE_IN_PROGRESS:
                       Thread.sleep(5000);
                       break;
   
                   case CREATE_FAILED:
                       String error = "Dataset creation failed: " + datasetDescription.statusAsString() + " "
                               + datasetDescription.statusMessage() + " " + response.datasetArn();
                       logger.log(Level.SEVERE, error);
                       throw new Exception(error);
   
                   default:
                       String unexpectedError = "Unexpected creation state: " + datasetDescription.statusAsString() + " "
                               + datasetDescription.statusMessage() + " " + response.datasetArn();
                       logger.log(Level.SEVERE, unexpectedError);
                       throw new Exception(unexpectedError);
                   }
   
               } while (created == false);
   
               return response.datasetArn();
   
           } catch (RekognitionException e) {
               logger.log(Level.SEVERE, "Could not create dataset: {0}", e.getMessage());
               throw e;
           }
   
       }
   
       public static void main(String[] args) {
   
           String datasetType = null;
           String bucket = null;
           String name = null;
           String projectArn = null;
           String datasetArn = null;
   
           final String USAGE = "\n" + "Usage: " + "<project_arn> <dataset_type> <dataset_arn>\n\n" + "Where:\n"
                   + "   project_arn - the ARN of the project that you want to add copy the datast to.\n\n"
                   + "   dataset_type - the type of the dataset that you want to create (train or test).\n\n"
                   + "   bucket - the S3 bucket that contains the manifest file.\n\n"
                   + "   name - the location and name of the manifest file within the bucket.\n\n";
   
           if (args.length != 4) {
               System.out.println(USAGE);
               System.exit(1);
           }
   
           projectArn = args[0];
           datasetType = args[1];
           bucket = args[2];
           name = args[3];
   
           try {
   
               // Get the Rekognition client
               RekognitionClient rekClient = RekognitionClient.builder()
                   .credentialsProvider(ProfileCredentialsProvider.create("custom-labels-access"))
                   .region(Region.US_WEST_2)
                   .build();
   
   
                // Create the dataset
               datasetArn = createMyDataset(rekClient, projectArn, datasetType, bucket, name);
   
               System.out.println(String.format("Created dataset: %s", datasetArn));
   
               rekClient.close();
   
           } catch (RekognitionException rekError) {
               logger.log(Level.SEVERE, "Rekognition client error: {0}", rekError.getMessage());
               System.exit(1);
           } catch (Exception rekError) {
               logger.log(Level.SEVERE, "Error: {0}", rekError.getMessage());
               System.exit(1);
           }
   
       }
   
   }
   ```

------

1. Jika Anda perlu menambahkan atau mengubah label, lihat[Mengelola Label (SDK)](md-labels.md#md-labels-sdk).

1. Ikuti langkah-langkah [Melatih model (SDK)](training-model.md#tm-sdk) untuk melatih model Anda.

## Buat permintaan dataset
<a name="create-dataset-ground-truth-request"></a>

 Berikut ini adalah foramt permintaan CreateDataset operasi: 

```
{
"DatasetSource": {
"DatasetArn": "string",
"GroundTruthManifest": {
"S3Object": {
"Bucket": "string",
"Name": "string",
"Version": "string"
}
}
},
"DatasetType": "string",
"ProjectArn": "string",
"Tags": {
"string": "string"
}
}
```

# Memberi label gambar dengan pekerjaan Amazon SageMaker AI Ground Truth
<a name="md-create-dataset-ground-truth-job"></a>

Dengan Amazon SageMaker AI Ground Truth, Anda dapat menggunakan pekerja dari Amazon Mechanical Turk, perusahaan vendor yang Anda pilih, atau tenaga kerja pribadi internal bersama dengan pembelajaran mesin yang memungkinkan Anda membuat kumpulan gambar berlabel. Amazon Rekognition Custom Labels mengimpor file manifes SageMaker AI Ground Truth dari bucket Amazon S3 yang Anda tentukan.

Amazon Rekognition Custom Labels mendukung tugas AI SageMaker Ground Truth berikut.
+ [Klasifikasi Gambar](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-image-classification.html)
+ [Kotak Bounding](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-bounding-box.html)

File yang Anda impor adalah gambar dan file manifes. File manifes berisi informasi label dan kotak pembatas untuk gambar yang Anda impor.

Amazon Rekognition memerlukan izin untuk mengakses bucket Amazon S3 tempat gambar Anda disimpan. Jika Anda menggunakan bucket konsol yang disiapkan untuk Anda oleh Label Kustom Rekognition Amazon, izin yang diperlukan sudah disiapkan. Jika Anda tidak menggunakan bucket konsol, lihat[Mengakses Bucket Amazon S3 eksternal](su-console-policy.md#su-external-buckets).

## Membuat file manifes dengan pekerjaan SageMaker AI Ground Truth (Console)
<a name="md-create-dataset-ground-truth-job-console"></a>

Prosedur berikut menunjukkan kepada Anda cara membuat kumpulan data dengan menggunakan gambar yang diberi label oleh pekerjaan SageMaker AI Ground Truth. File keluaran pekerjaan disimpan di bucket konsol Label Kustom Rekognition Amazon Anda.<a name="create-dataset-procedure-ground-truth"></a>

**Untuk membuat kumpulan data menggunakan gambar yang diberi label oleh pekerjaan SageMaker AI Ground Truth (konsol)**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Di bucket konsol, [buat folder](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-folder.html) untuk menyimpan gambar latihan Anda. 
**catatan**  
Bucket konsol dibuat saat Anda pertama kali membuka konsol Label Kustom Rekognition Amazon di suatu Wilayah. AWS Untuk informasi selengkapnya, lihat [Mengelola proyek Label Kustom Rekognition Amazon](managing-project.md).

1. [Unggah gambar Anda](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) ke folder yang baru saja Anda buat.

1. Di bucket konsol, buat folder untuk menyimpan output dari pekerjaan Ground Truth.

1. Buka konsol SageMaker AI di [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Buat pekerjaan pelabelan Ground Truth. Anda memerlukan Amazon S3 URLs untuk folder yang Anda buat di langkah 2 dan langkah 4. Untuk informasi selengkapnya, lihat [Menggunakan Amazon SageMaker Ground Truth untuk Pelabelan Data](https://docs.aws.amazon.com/sagemaker/latest/dg/sms.html). 

1. Perhatikan lokasi `output.manifest` file di folder yang Anda buat di langkah 4. Itu harus di sub-folder`Ground-Truth-Job-Name/manifests/output`.

1. Ikuti petunjuk di [Membuat kumpulan data dengan file manifes SageMaker AI Ground Truth (Console)](md-create-dataset-ground-truth.md#md-create-dataset-ground-truth-console) untuk membuat kumpulan data dengan file manifes yang diunggah. Untuk langkah 8, di **lokasi file.manifest**, masukkan URL Amazon S3 untuk lokasi yang Anda catat di langkah sebelumnya. Jika Anda menggunakan AWS SDK, lakukan[Membuat kumpulan data dengan file manifes SageMaker AI Ground Truth (SDK)](md-create-dataset-ground-truth.md#md-create-dataset-ground-truth-sdk).

1. Ulangi langkah 1 - 6 untuk membuat pekerjaan SageMaker AI Ground Truth untuk kumpulan data pengujian Anda.

# Membuat file manifes
<a name="md-create-manifest-file"></a>

Anda dapat membuat kumpulan data pengujian atau pelatihan dengan mengimpor file manifes format SageMaker AI Ground Truth. Jika gambar Anda diberi label dalam format yang bukan file manifes SageMaker AI Ground Truth, gunakan informasi berikut untuk membuat file manifes format SageMaker AI Ground Truth. 

File manifes dalam format [baris JSON](http://jsonlines.org) di mana setiap baris adalah objek JSON lengkap yang mewakili informasi pelabelan untuk gambar. Amazon Rekognition Custom Labels mendukung manifes AI SageMaker Ground Truth dengan garis JSON dalam format berikut:
+ [Classification Job Output](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-output.html#sms-output-class) - Gunakan untuk menambahkan label tingkat gambar ke gambar. Label tingkat gambar mendefinisikan kelas adegan, konsep, atau objek (jika informasi lokasi objek tidak diperlukan) yang ada pada gambar. Sebuah gambar dapat memiliki lebih dari satu label tingkat gambar. Untuk informasi selengkapnya, lihat [Mengimpor label tingkat gambar dalam file manifes](md-create-manifest-file-classification.md).
+ [Bounding Box Job Output](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-output.html#sms-output-box) - Gunakan untuk memberi label kelas dan lokasi satu atau lebih objek pada gambar. Untuk informasi selengkapnya, lihat [Lokalisasi objek dalam file manifes](md-create-manifest-file-object-detection.md).

Baris JSON tingkat gambar dan pelokalan (kotak pembatas) dapat dirantai bersama dalam file manifes yang sama. 

**catatan**  
Contoh baris JSON di bagian ini diformat agar mudah dibaca. 

Saat Anda mengimpor file manifes, Label Kustom Rekognition Amazon menerapkan aturan validasi untuk batas, sintaks, dan semantik. Untuk informasi selengkapnya, lihat [Aturan validasi untuk file manifes](md-create-manifest-file-validation-rules.md). 

Gambar yang direferensikan oleh file manifes harus ditempatkan di bucket Amazon S3 yang sama. File manifes dapat ditemukan di bucket Amazon S3 yang berbeda dari bucket Amazon S3 yang menyimpan gambar. Anda menentukan lokasi gambar di `source-ref` bidang garis JSON. 

Amazon Rekognition memerlukan izin untuk mengakses bucket Amazon S3 tempat gambar Anda disimpan. Jika Anda menggunakan bucket konsol yang disiapkan untuk Anda oleh Label Kustom Rekognition Amazon, izin yang diperlukan sudah disiapkan. Jika Anda tidak menggunakan bucket konsol, lihat[Mengakses Bucket Amazon S3 eksternal](su-console-policy.md#su-external-buckets).

**Topics**
+ [Membuat file manifes](#md-create-manifest-file-console)

## Membuat file manifes
<a name="md-create-manifest-file-console"></a>

Prosedur berikut membuat proyek dengan dataset pelatihan dan pengujian. Kumpulan data dibuat dari file manifes pelatihan dan pengujian yang Anda buat.

<a name="create-dataset-procedure-manifest-file"></a>

**Untuk membuat kumpulan data menggunakan file manifes format SageMaker AI Ground Truth (konsol)**

1. Di bucket konsol, [buat folder untuk](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-folder.html) menyimpan file manifes Anda. 

1. Di bucket konsol, buat folder untuk menyimpan gambar Anda.

1. Unggah gambar Anda ke folder yang baru saja Anda buat.

1. Buat file manifes format SageMaker AI Ground Truth untuk kumpulan data pelatihan Anda. Untuk informasi selengkapnya, lihat [Mengimpor label tingkat gambar dalam file manifes](md-create-manifest-file-classification.md) dan [Lokalisasi objek dalam file manifes](md-create-manifest-file-object-detection.md).
**penting**  
Nilai `source-ref` bidang di setiap baris JSON harus dipetakan ke gambar yang Anda unggah.

1. Buat file manifes format SageMaker AI Ground Truth untuk kumpulan data pengujian Anda. 

1. [Unggah file manifes Anda](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) ke folder yang baru saja Anda buat.

1. Perhatikan lokasi file manifes.

1. Ikuti petunjuk di [Membuat kumpulan data dengan file manifes SageMaker AI Ground Truth (Console)](md-create-dataset-ground-truth.md#md-create-dataset-ground-truth-console) untuk membuat kumpulan data dengan file manifes yang diunggah. Untuk langkah 8, di **lokasi file.manifest**, masukkan URL Amazon S3 untuk lokasi yang Anda catat di langkah sebelumnya. Jika Anda menggunakan AWS SDK, lakukan[Membuat kumpulan data dengan file manifes SageMaker AI Ground Truth (SDK)](md-create-dataset-ground-truth.md#md-create-dataset-ground-truth-sdk).

# Mengimpor label tingkat gambar dalam file manifes
<a name="md-create-manifest-file-classification"></a>

Untuk mengimpor label tingkat gambar (gambar berlabel adegan, konsep, atau objek yang tidak memerlukan informasi pelokalan), Anda menambahkan baris JSON format [Output Pekerjaan](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-output.html#sms-output-class) Klasifikasi Ground SageMaker Truth AI ke file manifes. File manifes terbuat dari satu atau lebih baris JSON, satu untuk setiap gambar yang ingin Anda impor. 

**Tip**  
Untuk menyederhanakan pembuatan file manifes, kami menyediakan skrip Python yang membuat file manifes dari file CSV. Untuk informasi selengkapnya, lihat [Membuat file manifes dari file CSV](ex-csv-manifest.md).

**Untuk membuat file manifes untuk label tingkat gambar**

1. Buat file teks kosong.

1. Tambahkan baris JSON untuk setiap gambar yang ingin Anda impor. Setiap baris JSON akan terlihat mirip dengan yang berikut ini.

   ```
   {"source-ref":"s3://custom-labels-console-us-east-1-nnnnnnnnnn/gt-job/manifest/IMG_1133.png","TestCLConsoleBucket":0,"TestCLConsoleBucket-metadata":{"confidence":0.95,"job-name":"labeling-job/testclconsolebucket","class-name":"Echo Dot","human-annotated":"yes","creation-date":"2020-04-15T20:17:23.433061","type":"groundtruth/image-classification"}}
   ```

1. Simpan file tersebut. Anda dapat menggunakan ekstensi`.manifest`, tetapi tidak diperlukan. 

1. Buat kumpulan data menggunakan file manifes yang Anda buat. Untuk informasi selengkapnya, lihat [Untuk membuat kumpulan data menggunakan file manifes format SageMaker AI Ground Truth (konsol)](md-create-manifest-file.md#create-dataset-procedure-manifest-file). 

 

## Garis JSON Tingkat Gambar
<a name="md-manifest-classification-json"></a>

Di bagian ini, kami menunjukkan cara membuat garis JSON untuk satu gambar. Pertimbangkan citra berikut. Adegan untuk gambar berikut mungkin disebut *Sunrise*.

![\[Matahari terbenam di atas danau dengan dermaga dan perahu kecil, dikelilingi oleh pegunungan.\]](http://docs.aws.amazon.com/id_id/rekognition/latest/customlabels-dg/images/sunrise.png)


Garis JSON untuk gambar sebelumnya, dengan adegan *Sunrise*, mungkin sebagai berikut. 

```
{
    "source-ref": "s3://bucket/images/sunrise.png",
    "testdataset-classification_Sunrise": 1,
    "testdataset-classification_Sunrise-metadata": {
        "confidence": 1,
        "job-name": "labeling-job/testdataset-classification_Sunrise",
        "class-name": "Sunrise",
        "human-annotated": "yes",
        "creation-date": "2020-03-06T17:46:39.176",
        "type": "groundtruth/image-classification"
    }
}
```

Perhatikan informasi berikut.

### sumber-ref
<a name="w2aac20c17c25c27c19c11c13"></a>

(Wajib) Lokasi Amazon S3 dari gambar. Formatnya adalah `"s3://BUCKET/OBJECT_PATH"`. Gambar dalam kumpulan data yang diimpor harus disimpan dalam bucket Amazon S3 yang sama. 

### *testdataset-classification\$1Sunrise*
<a name="w2aac20c17c25c27c19c11c15"></a>

(Wajib) Atribut label. Anda memilih nama bidang. Nilai bidang (1 dalam contoh sebelumnya) adalah pengenal atribut label. Ini tidak digunakan oleh Amazon Rekognition Custom Labels dan dapat berupa nilai integer apa pun. Harus ada metadata terkait yang diidentifikasi dengan nama bidang dengan *-metadata* ditambahkan. Misalnya, `"testdataset-classification_Sunrise-metadata"`. 

### *testdataset-classification\$1Sunrise*-metadata
<a name="w2aac20c17c25c27c19c11c17"></a>

(Wajib) Metadata tentang atribut label. Nama bidang harus sama dengan atribut label dengan *-metadata* ditambahkan. 

*kepercayaan*  
(Wajib) Saat ini tidak digunakan oleh Label Kustom Amazon Rekognition tetapi nilai antara 0 dan 1 harus diberikan. 

*nama-pekerjaan*  
(Opsional) Nama yang Anda pilih untuk pekerjaan yang memproses gambar. 

*nama kelas*  
(Wajib) Nama kelas yang Anda pilih untuk adegan atau konsep yang berlaku untuk gambar. Misalnya, `"Sunrise"`. 

*beranotasi manusia*  
(Wajib) Tentukan`"yes"`, jika anotasi diselesaikan oleh manusia. Jika tidak`"no"`. 

*kreasi-tanggal*   
(Wajib) Tanggal dan waktu Universal Terkoordinasi (UTC) saat label dibuat. 

*jenis*  
(Wajib) Jenis pemrosesan yang harus diterapkan pada gambar. Untuk label tingkat gambar, nilainya adalah. `"groundtruth/image-classification"` 

### Menambahkan beberapa label tingkat gambar ke gambar
<a name="md-dataset-purpose-classification-multiple-labels"></a>

Anda dapat menambahkan beberapa label ke gambar. Misalnya, JSON berikut menambahkan dua label, *sepak bola* dan *bola* ke satu gambar. 

```
{
    "source-ref": "S3 bucket location", 
    "sport0":0, # FIRST label
    "sport0-metadata": { 
        "class-name": "football", 
        "confidence": 0.8, 
        "type":"groundtruth/image-classification", 
        "job-name": "identify-sport", 
        "human-annotated": "yes", 
        "creation-date": "2018-10-18T22:18:13.527256" 
    },
    "sport1":1, # SECOND label
    "sport1-metadata": { 
        "class-name": "ball", 
        "confidence": 0.8, 
        "type":"groundtruth/image-classification", 
        "job-name": "identify-sport", 
        "human-annotated": "yes", 
        "creation-date": "2018-10-18T22:18:13.527256" 
    }
}  # end of annotations for 1 image
```

# Lokalisasi objek dalam file manifes
<a name="md-create-manifest-file-object-detection"></a>

Anda dapat mengimpor gambar berlabel informasi pelokalan objek dengan menambahkan SageMaker AI Ground Truth [Bounding Box Job Output](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-output.html#sms-output-box) format baris JSON ke file manifes. 

Informasi lokalisasi mewakili lokasi objek pada gambar. Lokasi diwakili oleh kotak pembatas yang mengelilingi objek. Struktur kotak pembatas berisi koordinat kiri atas kotak pembatas dan lebar dan tinggi kotak pembatas. Garis JSON format kotak pembatas mencakup kotak pembatas untuk lokasi satu atau lebih objek pada gambar dan kelas setiap objek pada gambar. 

File manifes terbuat dari satu atau lebih baris JSON, setiap baris berisi informasi untuk satu gambar.

**Untuk membuat file manifes untuk lokalisasi objek**

1. Buat file teks kosong.

1. Tambahkan baris JSON untuk setiap gambar yang ingin Anda impor. Setiap baris JSON akan terlihat mirip dengan yang berikut ini.

   ```
   {"source-ref": "s3://bucket/images/IMG_1186.png", "bounding-box": {"image_size": [{"width": 640, "height": 480, "depth": 3}], "annotations": [{ "class_id": 1,	"top": 251,	"left": 399, "width": 155, "height": 101}, {"class_id": 0, "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": "2013-11-18T02:53:27", "job-name": "my job"}}
   ```

1. Simpan file tersebut. Anda dapat menggunakan ekstensi`.manifest`, tetapi tidak diperlukan. 

1. Buat kumpulan data menggunakan file yang baru saja Anda buat. Untuk informasi selengkapnya, lihat [Untuk membuat kumpulan data menggunakan file manifes format SageMaker AI Ground Truth (konsol)](md-create-manifest-file.md#create-dataset-procedure-manifest-file). 



## Objek pembatas kotak garis JSON
<a name="md-manifest-object-localization-json"></a>

Di bagian ini, kami menunjukkan cara membuat garis JSON untuk satu gambar. Gambar berikut menunjukkan kotak pembatas di sekitar perangkat Amazon Echo dan Amazon Echo Dot.

![\[Dua speaker pintar Amazon, satu dengan kotak pembatas hijau dan satu kotak pembatas biru, di permukaan kayu.\]](http://docs.aws.amazon.com/id_id/rekognition/latest/customlabels-dg/images/echos.png)


Berikut ini adalah garis JSON kotak pembatas untuk gambar sebelumnya. 

```
{
	"source-ref": "s3://custom-labels-bucket/images/IMG_1186.png",
	"bounding-box": {
		"image_size": [{
			"width": 640,
			"height": 480,
			"depth": 3
		}],
		"annotations": [{
			"class_id": 1,
			"top": 251,
			"left": 399,
			"width": 155,
			"height": 101
		}, {
			"class_id": 0,
			"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": "2013-11-18T02:53:27",
		"job-name": "my job"
	}
}
```

Perhatikan informasi berikut.

### sumber-ref
<a name="cd-manifest-source-ref"></a>

(Wajib) Lokasi Amazon S3 dari gambar. Formatnya adalah `"s3://BUCKET/OBJECT_PATH"`. Gambar dalam kumpulan data yang diimpor harus disimpan dalam bucket Amazon S3 yang sama. 

### *bounding-box*
<a name="md-manifest-source-bounding-box"></a>

(Wajib) Atribut label. Anda memilih nama bidang. Berisi ukuran gambar dan kotak pembatas untuk setiap objek yang terdeteksi dalam gambar. Harus ada metadata terkait yang diidentifikasi dengan nama bidang dengan *-metadata* ditambahkan. Misalnya, `"bounding-box-metadata"`. 

*image\$1size*  
(Wajib) Sebuah array elemen tunggal yang berisi ukuran gambar dalam piksel.   
+ *tinggi* - (Wajib) Ketinggian gambar dalam piksel. 
+ *lebar* - (Wajib) Kedalaman gambar dalam piksel. 
+ *kedalaman* — (Diperlukan) Jumlah saluran dalam gambar. Untuk gambar RGB, nilainya adalah 3. Saat ini tidak digunakan oleh Amazon Rekognition Custom Labels, tetapi nilai diperlukan. 

*anotasi*  
(Wajib) Sebuah array informasi kotak pembatas untuk setiap objek yang terdeteksi dalam gambar.  
+ *class\$1id* *— (Wajib) Memetakan ke label di peta kelas.* Pada contoh sebelumnya, objek dengan *class\$1id* dari `1` adalah Echo Dot pada gambar. 
+ *atas* — (Wajib) Jarak dari atas gambar ke bagian atas kotak pembatas, dalam piksel. 
+ *kiri* - (Wajib) Jarak dari kiri gambar ke kiri kotak pembatas, dalam piksel. 
+ *lebar* - (Wajib) Lebar kotak pembatas, dalam piksel. 
+ *tinggi* - (Wajib) Ketinggian kotak pembatas, dalam piksel. 

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

(Wajib) Metadata tentang atribut label. Nama bidang harus sama dengan atribut label dengan *-metadata* ditambahkan. Array informasi kotak pembatas untuk setiap objek yang terdeteksi dalam gambar.

*Objek*  
(Wajib) Sebuah array objek yang ada dalam gambar. Memetakan ke array *anotasi* berdasarkan indeks. Atribut confidence tidak digunakan oleh Amazon Rekognition Custom Labels. 

*peta kelas*  
(Wajib) Peta kelas yang berlaku untuk objek yang terdeteksi dalam gambar. 

*jenis*  
(Wajib) Jenis pekerjaan klasifikasi. `"groundtruth/object-detection"`mengidentifikasi pekerjaan sebagai deteksi objek. 

*kreasi-tanggal*   
(Wajib) Tanggal dan waktu Universal Terkoordinasi (UTC) saat label dibuat. 

*beranotasi manusia*  
(Wajib) Tentukan`"yes"`, jika anotasi diselesaikan oleh manusia. Jika tidak`"no"`. 

*nama-pekerjaan*  
(Opsional) Nama pekerjaan yang memproses gambar. 

# Aturan validasi untuk file manifes
<a name="md-create-manifest-file-validation-rules"></a>

 Saat Anda mengimpor file manifes, Label Kustom Rekognition Amazon menerapkan aturan validasi untuk batas, sintaks, dan semantik. Skema SageMaker AI Ground Truth memberlakukan validasi sintaks. Untuk informasi selengkapnya, lihat [Output](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-output.html). Berikut ini adalah aturan validasi untuk batas dan semantik.

**catatan**  
Aturan ketidakabsahan 20% berlaku secara kumulatif di semua aturan validasi. Jika impor melebihi batas 20% karena kombinasi apa pun, seperti 15% JSON tidak valid dan 15% gambar tidak valid, impor gagal. 
Setiap objek dataset adalah garis dalam manifes. Baris kosong/tidak valid juga dihitung sebagai objek dataset.
Tumpang tindih adalah (label umum antara tes dan kereta)/(label kereta).

**Topics**
+ [Batas](#md-validation-rules-limits)
+ [Semantik](#md-validation-rules-semantics)

## Batas
<a name="md-validation-rules-limits"></a>


| Validasi | Kuota | Kesalahan dimunculkan | 
| --- | --- | --- | 
|  Ukuran file manifes  |  Maksimal 1 GB  |  Kesalahan  | 
|  Jumlah baris maksimum untuk file manifes  |  Maksimum 250.000 objek dataset sebagai garis dalam manifes.   |  Kesalahan  | 
|  Batas bawah pada jumlah total objek dataset yang valid per label   |  >= 1  |  Kesalahan  | 
|  Batas bawah pada label  |  >=2  |  Kesalahan  | 
|  Batas atas pada label  |  <= 250  |  Kesalahan  | 
|  Kotak pembatas minimum per gambar  |  0  |  Tidak ada  | 
|  Kotak pembatas maksimum per gambar  |  50  |  Tidak ada  | 

## Semantik
<a name="md-validation-rules-semantics"></a>




| Validasi | Kuota | Kesalahan dimunculkan | 
| --- | --- | --- | 
|  Manifes kosong  |    |  Kesalahan  | 
|  Objek referensi sumber yang hilang/dapat diakses  |  Jumlah objek kurang dari 20%  |  Peringatan  | 
|  Objek referensi sumber yang hilang/dapat diakses  |  Jumlah objek > 20%  |  Kesalahan  | 
|  Label uji tidak ada dalam kumpulan data pelatihan   |  Setidaknya 50% tumpang tindih dalam label  |  Kesalahan  | 
|  Campuran contoh label vs. objek untuk label yang sama dalam kumpulan data. Klasifikasi dan deteksi untuk kelas yang sama dalam objek dataset.   |    |  Tidak ada kesalahan atau peringatan  | 
|  Aset yang tumpang tindih antara tes dan kereta   |  Seharusnya tidak ada tumpang tindih antara set data tes dan pelatihan.   |    | 
|  Gambar dalam kumpulan data harus dari ember yang sama   |  Kesalahan jika objek berada di ember yang berbeda  |  Kesalahan  | 

# Mengonversi format dataset lain ke file manifes
<a name="md-converting-to-sm-format"></a>

Anda dapat menggunakan informasi berikut untuk membuat file manifes format Amazon SageMaker AI dari berbagai format kumpulan data sumber. Setelah membuat file manifes, gunakan untuk membuat dataset. Untuk informasi selengkapnya, lihat [Menggunakan file manifes untuk mengimpor gambar](md-create-dataset-ground-truth.md).

**Topics**
+ [Mengubah dataset COCO menjadi format file manifes](md-transform-coco.md)
+ [Mengubah file manifes SageMaker AI Ground Truth multi-label](md-gt-cl-transform.md)
+ [Membuat file manifes dari file CSV](ex-csv-manifest.md)

# Mengubah dataset COCO menjadi format file manifes
<a name="md-transform-coco"></a>

[COCO](http://cocodataset.org/#home) adalah format untuk menentukan deteksi objek skala besar, segmentasi, dan kumpulan data teks. [Contoh](md-coco-transform-example.md) [Python ini menunjukkan kepada Anda cara mengubah kumpulan data format deteksi objek COCO menjadi file manifes format kotak pembatas Amazon Rekognition Custom Labels.](md-create-manifest-file-object-detection.md) Bagian ini juga mencakup informasi yang dapat Anda gunakan untuk menulis kode Anda sendiri.

File JSON format COCO terdiri dari lima bagian yang menyediakan informasi untuk *seluruh* kumpulan data. Untuk informasi selengkapnya, lihat [Format dataset COCO](md-coco-overview.md). 
+ `info`— informasi umum tentang dataset. 
+ `licenses `— informasi lisensi untuk gambar dalam dataset.
+ [`images`](md-coco-overview.md#md-coco-images)— daftar gambar dalam dataset.
+ [`annotations`](md-coco-overview.md#md-coco-annotations)— daftar anotasi (termasuk kotak pembatas) yang ada di semua gambar dalam kumpulan data.
+ [`categories`](md-coco-overview.md#md-coco-categories)— daftar kategori label.

Anda memerlukan informasi dari`images`,`annotations`, dan `categories` daftar untuk membuat file manifes Label Kustom Rekognition Amazon.

*File manifes Label Kustom Rekognition Amazon dalam format baris JSON di mana setiap baris memiliki kotak pembatas dan informasi label untuk satu atau beberapa objek pada gambar.* Untuk informasi selengkapnya, lihat [Lokalisasi objek dalam file manifes](md-create-manifest-file-object-detection.md).

## Memetakan Objek COCO ke Garis JSON Label Kustom
<a name="md-mapping-coco"></a>

Untuk mengubah kumpulan data format COCO, Anda memetakan kumpulan data COCO ke file manifes Label Kustom Rekognition Amazon untuk pelokalan objek. Untuk informasi selengkapnya, lihat [Lokalisasi objek dalam file manifes](md-create-manifest-file-object-detection.md). Untuk membuat baris JSON untuk setiap gambar, file manifes perlu memetakan kumpulan data COCO `image``annotation`, dan `category` bidang objek. IDs 

Berikut ini adalah contoh file manifes COCO. Untuk informasi selengkapnya, lihat [Format dataset 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"}
    ]
}
```

*Diagram berikut menunjukkan bagaimana kumpulan data COCO mencantumkan peta kumpulan data ke baris *JSON* Label Kustom Rekognition Amazon untuk gambar.* Setiap baris JSON untuk gambar memiliki kolom sumber referensi, pekerjaan, dan metadata pekerjaan. Warna yang cocok menunjukkan informasi untuk satu gambar. Perhatikan bahwa dalam manifes, gambar individu mungkin memiliki beberapa anotasi dan metadata/kategori.

![\[Diagram yang menunjukkan struktur Coco Manifest, dengan gambar, anotasi, dan kategori yang terkandung di dalamnya.\]](http://docs.aws.amazon.com/id_id/rekognition/latest/customlabels-dg/images/coco-transform.png)


**Untuk mendapatkan objek COCO untuk satu baris JSON**

1. Untuk setiap gambar dalam daftar gambar, dapatkan anotasi dari daftar anotasi di mana nilai bidang anotasi `image_id` cocok dengan bidang gambar. `id`

1. Untuk setiap anotasi yang cocok di langkah 1, baca `categories` daftar dan dapatkan masing-masing `category` nilai bidang yang `id` cocok dengan `category` bidang `annotation` objek`category_id`.

1. Buat garis JSON untuk gambar menggunakan objek yang cocok `image``annotation`, dan`category`. Untuk memetakan bidang, lihat[Memetakan bidang objek COCO ke bidang objek garis JSON Label Kustom](#md-mapping-fields-coco). 

1. Ulangi langkah 1-3 sampai Anda telah membuat baris JSON untuk setiap `image` objek dalam daftar. `images`

Untuk kode sampel, lihat [Mengubah dataset COCO](md-coco-transform-example.md).

## Memetakan bidang objek COCO ke bidang objek garis JSON Label Kustom
<a name="md-mapping-fields-coco"></a>

Setelah Anda mengidentifikasi objek COCO untuk baris JSON Label Kustom Rekognition Amazon, Anda perlu memetakan bidang objek COCO ke bidang objek baris JSON Label Kustom Amazon Rekognition masing-masing. Contoh berikut Amazon Rekognition Custom Labels JSON line memetakan satu gambar `id` (`000000245915`=) ke contoh COCO JSON sebelumnya. Perhatikan informasi berikut.
+ `source-ref`adalah lokasi gambar dalam ember Amazon S3. Jika gambar COCO Anda tidak disimpan dalam bucket Amazon S3, Anda harus memindahkannya ke bucket Amazon S3.
+ `annotations`Daftar berisi `annotation` objek untuk setiap objek pada gambar. `annotation`Objek mencakup informasi kotak pembatas (`top`,, `left``width`,`height`) dan pengenal label (`class_id`).
+ Pengenal label (`class_id`) memetakan ke `class-map` daftar dalam metadata. Ini mencantumkan label yang digunakan pada gambar.

```
{
	"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"
	}
}
```

Gunakan informasi berikut untuk memetakan kolom file manifes Label Kustom Rekognition Amazon ke bidang JSON kumpulan data COCO. 

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

URL format S3 untuk lokasi gambar. Gambar harus disimpan dalam ember S3. Untuk informasi selengkapnya, lihat [sumber-ref](md-create-manifest-file-object-detection.md#cd-manifest-source-ref). Jika bidang `coco_url` COCO menunjuk ke lokasi bucket S3, Anda dapat menggunakan nilai `coco_url` untuk nilai. `source-ref` Atau, Anda dapat memetakan `source-ref` ke bidang `file_name` (COCO) dan dalam kode transformasi Anda, tambahkan jalur S3 yang diperlukan ke tempat gambar disimpan. 

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

Nama atribut label yang Anda pilih. Untuk informasi selengkapnya, lihat [*bounding-box*](md-create-manifest-file-object-detection.md#md-manifest-source-bounding-box).

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

Ukuran gambar dalam piksel. Peta ke `image` objek dalam daftar [gambar](md-coco-overview.md#md-coco-images).
+ `height`-> `image.height`
+ `width`-> `image.width`
+ `depth`-> Tidak digunakan oleh Label Kustom Rekognition Amazon tetapi nilainya harus diberikan.

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

Daftar objek `annotation`. Ada satu `annotation` untuk setiap objek pada gambar.

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

Berisi informasi kotak pembatas untuk satu contoh objek pada gambar. 
+ `class_id`-> pemetaan id numerik ke daftar Custom Label. `class-map`
+ `top` -> `bbox[1]`
+ `left` -> `bbox[0]`
+ `width` -> `bbox[2]`
+ `height` -> `bbox[3]`

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

Metadata untuk atribut label. Termasuk label dan pengidentifikasi label. Untuk informasi selengkapnya, lihat [*bounding-box*-metadata](md-create-manifest-file-object-detection.md#md-manifest-source-bounding-box-metadata).

#### Objek
<a name="cd-metadata-objects-coco"></a>

Array objek dalam gambar. Peta ke `annotations` daftar berdasarkan indeks.

##### Objek
<a name="cd-metadata-object-coco"></a>
+ `confidence`-> Tidak digunakan oleh Amazon Rekognition Custom Labels, tetapi nilai (1) diperlukan.

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

Peta label (kelas) yang berlaku untuk objek yang terdeteksi dalam gambar. Peta ke objek kategori dalam daftar [kategori](md-coco-overview.md#md-coco-categories).
+ `id` -> `category.id`
+ `id value` -> `category.name`

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

Harus `groundtruth/object-detection`

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

Tentukan `yes` atau `no`. Untuk informasi selengkapnya, lihat [*bounding-box*-metadata](md-create-manifest-file-object-detection.md#md-manifest-source-bounding-box-metadata).

#### [kreasi-tanggal -> gambar .date\$1capture](md-coco-overview.md#md-coco-images)
<a name="md-creation-date-coco"></a>

Tanggal dan waktu pembuatan gambar. Memetakan ke bidang [gambar](md-coco-overview.md#md-coco-images) .date\$1capture dari gambar dalam daftar gambar COCO. *Amazon Rekognition Custom Labels mengharapkan format `creation-date` menjadi Y-M-DTH:M: S.*

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

Nama pekerjaan yang Anda pilih. 

# Format dataset COCO
<a name="md-coco-overview"></a>

Dataset COCO terdiri dari lima bagian informasi yang memberikan informasi untuk seluruh kumpulan data. Format untuk kumpulan data deteksi objek COCO didokumentasikan di Format Data [COCO](http://cocodataset.org/#format-data). 
+ info — informasi umum tentang dataset. 
+ lisensi — informasi lisensi untuk gambar dalam dataset.
+ [gambar](#md-coco-images) — daftar gambar dalam dataset.
+ [anotasi](#md-coco-annotations) — daftar anotasi (termasuk kotak pembatas) yang ada di semua gambar dalam kumpulan data.
+ [kategori](#md-coco-categories) — daftar kategori label.

Untuk membuat manifes Label Kustom, Anda menggunakan`images`,`annotations`, dan `categories` daftar dari file manifes COCO. Bagian lain (`info`,`licences`) tidak diperlukan. Berikut ini adalah contoh file manifes 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"}
    ]
}
```

## daftar gambar
<a name="md-coco-images"></a>

Gambar yang direferensikan oleh dataset COCO tercantum dalam larik gambar. Setiap objek gambar berisi informasi tentang gambar seperti nama file gambar. Dalam contoh objek gambar berikut, perhatikan informasi berikut dan bidang mana yang diperlukan untuk membuat file manifes Label Kustom Rekognition Amazon.
+ `id`— (Diperlukan) Pengidentifikasi unik untuk gambar. `id`Bidang memetakan ke `id` bidang dalam array anotasi (tempat informasi kotak pembatas disimpan).
+ `license`— (Tidak Diperlukan) Peta ke array lisensi. 
+ `coco_url`— (Opsional) Lokasi gambar.
+ `flickr_url`— (Tidak diperlukan) Lokasi gambar di Flickr.
+ `width`— (Wajib) Lebar gambar.
+ `height`— (Wajib) Ketinggian gambar.
+ `file_name`— (Wajib) Nama file gambar. Dalam contoh ini, `file_name` dan `id` cocok, tetapi ini bukan persyaratan untuk kumpulan data COCO. 
+ `date_captured`— (Wajib) tanggal dan waktu gambar diambil. 

```
{
    "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"
}
```

## daftar anotasi (kotak pembatas)
<a name="md-coco-annotations"></a>

Informasi kotak pembatas untuk semua objek pada semua gambar disimpan daftar anotasi. Objek anotasi tunggal berisi informasi kotak pembatas untuk satu objek dan label objek pada gambar. Ada objek anotasi untuk setiap instance objek pada gambar. 

Dalam contoh berikut, perhatikan informasi berikut dan bidang mana yang diperlukan untuk membuat file manifes Label Kustom Rekognition Amazon. 
+ `id`— (Tidak diperlukan) Pengidentifikasi untuk anotasi.
+ `image_id`— (Wajib) Sesuai dengan gambar `id` dalam array gambar.
+ `category_id`— (Wajib) Pengidentifikasi untuk label yang mengidentifikasi objek dalam kotak pembatas. Ini memetakan ke `id` bidang array kategori. 
+ `iscrowd`— (Tidak diperlukan) Menentukan apakah gambar berisi kerumunan objek. 
+ `segmentation`— (Tidak diperlukan) Informasi segmentasi untuk objek pada gambar. Amazon Rekognition Custom Labels tidak mendukung segmentasi. 
+ `area`— (Tidak diperlukan) Area anotasi.
+ `bbox`— (Wajib) Berisi koordinat, dalam piksel, dari kotak pembatas di sekitar objek pada gambar.

```
{
    "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]
}
```

## daftar kategori
<a name="md-coco-categories"></a>

Informasi label disimpan array kategori. Dalam objek kategori contoh berikut, perhatikan informasi berikut dan bidang mana yang diperlukan untuk membuat file manifes Label Kustom Rekognition Amazon. 
+ `supercategory`— (Tidak wajib) Kategori induk untuk label. 
+ `id`— (Wajib) Pengidentifikasi label. `id`Bidang memetakan ke `category_id` bidang dalam suatu `annotation` objek. Dalam contoh berikut, Pengidentifikasi untuk titik gema adalah 2. 
+ `name`— (Diperlukan) nama label. 

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

# Mengubah dataset COCO
<a name="md-coco-transform-example"></a>

Gunakan contoh Python berikut untuk mengubah informasi kotak pembatas dari kumpulan data format COCO menjadi file manifes Label Kustom Rekognition Amazon. Kode mengunggah file manifes yang dibuat ke bucket Amazon S3 Anda. Kode ini juga menyediakan perintah AWS CLI yang dapat Anda gunakan untuk mengunggah gambar Anda. 

**Untuk mengubah dataset COCO (SDK)**

1. Jika belum:

   1. Pastikan Anda memiliki `AmazonS3FullAccess` izin. Untuk informasi selengkapnya, lihat [Siapkan izin SDK](su-sdk-permissions.md).

   1. Instal dan konfigurasikan AWS CLI dan AWS SDKs. Untuk informasi selengkapnya, lihat [Langkah 4: Mengatur AWS CLI dan AWS SDKs](su-awscli-sdk.md).

1. Gunakan kode Python berikut untuk mengubah dataset COCO. Tetapkan nilai-nilai berikut.
   + `s3_bucket`— Nama bucket S3 tempat Anda ingin menyimpan gambar dan file manifes Label Kustom Rekognition Amazon. 
   + `s3_key_path_images`— Jalur ke tempat Anda ingin menempatkan gambar di dalam ember S3 (`s3_bucket`).
   + `s3_key_path_manifest_file`— Jalur ke tempat Anda ingin menempatkan file manifes Label Kustom dalam bucket S3 (`s3_bucket`).
   + `local_path`— Jalur lokal ke tempat contoh membuka kumpulan data COCO input dan juga menyimpan file manifes Label Kustom baru.
   + `local_images_path`— Jalur lokal ke gambar yang ingin Anda gunakan untuk pelatihan.
   + `coco_manifest`— Nama file dataset COCO masukan.
   + `cl_manifest_file`— Nama untuk file manifes yang dibuat oleh contoh. File disimpan di lokasi yang ditentukan oleh`local_path`. Dengan konvensi, file memiliki ekstensi`.manifest`, tetapi ini tidak diperlukan.
   + `job_name`— Nama untuk pekerjaan Label Kustom.

   ```
   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. Jalankan kode tersebut.

1. Dalam output program, perhatikan `s3 sync` perintahnya. Anda membutuhkannya di langkah berikutnya.

1. Pada prompt perintah, jalankan `s3 sync` perintah. Gambar Anda diunggah ke bucket S3. Jika perintah gagal selama upload, jalankan lagi hingga gambar lokal Anda disinkronkan dengan bucket S3.

1. Dalam output program, perhatikan jalur URL S3 ke file manifes. Anda membutuhkannya di langkah berikutnya.

1. Ikuti instruksi di [Membuat kumpulan data dengan file manifes SageMaker AI Ground Truth (Console)](md-create-dataset-ground-truth.md#md-create-dataset-ground-truth-console) untuk membuat kumpulan data dengan file manifes yang diunggah. Untuk langkah 8, di **lokasi file.manifest**, masukkan URL Amazon S3 yang Anda catat di langkah sebelumnya. Jika Anda menggunakan AWS SDK, lakukan[Membuat kumpulan data dengan file manifes SageMaker AI Ground Truth (SDK)](md-create-dataset-ground-truth.md#md-create-dataset-ground-truth-sdk).

# Mengubah file manifes SageMaker AI Ground Truth multi-label
<a name="md-gt-cl-transform"></a>

Topik ini menunjukkan kepada Anda cara mengubah file manifes Amazon SageMaker AI Ground Truth multi-label menjadi file manifes format Label Kustom Rekognition Amazon. 

SageMaker File manifes AI Ground Truth untuk pekerjaan multi-label diformat secara berbeda dari file manifes format Amazon Rekognition Custom Labels. Klasifikasi multi-label adalah ketika gambar diklasifikasikan ke dalam satu set kelas, tetapi mungkin milik beberapa kelas sekaligus. Dalam hal ini, gambar berpotensi memiliki beberapa label (multi-label), seperti *sepak bola* dan *bola*.

Untuk informasi tentang pekerjaan SageMaker AI Ground Truth multi-label, lihat [Klasifikasi Gambar (Multi-label](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-image-classification-multilabel.html)). Untuk informasi tentang file manifes Label Kustom Amazon Rekognition format multi-label, lihat. [Menambahkan beberapa label tingkat gambar ke gambar](md-create-manifest-file-classification.md#md-dataset-purpose-classification-multiple-labels)

## Mendapatkan file manifes untuk pekerjaan SageMaker AI Ground Truth
<a name="md-get-gt-manifest"></a>

Prosedur berikut menunjukkan cara mendapatkan file manifes keluaran (`output.manifest`) untuk pekerjaan Amazon SageMaker AI Ground Truth. Anda menggunakan `output.manifest` sebagai masukan untuk prosedur berikutnya.

**Untuk mengunduh file manifes pekerjaan SageMaker AI Ground Truth**

1. Buka [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/). 

1. Di panel navigasi, pilih **Ground Truth** lalu pilih **Labeling** Jobs. 

1. Pilih pekerjaan pelabelan yang berisi file manifes yang ingin Anda gunakan.

1. Pada halaman detail, pilih tautan di bawah **Lokasi set data keluaran**. Konsol Amazon S3 dibuka di lokasi dataset. 

1. Pilih`Manifests`, `output` dan kemudian`output.manifest`.

1. Pilih **Tindakan Objek** dan kemudian pilih **Unduh** untuk mengunduh file manifes.

## Mengubah file manifes SageMaker AI multi-label
<a name="md-transform-ml-gt"></a>

Prosedur berikut membuat file manifes Amazon Rekognition Custom Labels format multi-label dari file manifes AI format SageMaker GroundTruth multi-label yang ada.

**catatan**  
Untuk menjalankan kode, Anda memerlukan Python versi 3, atau lebih tinggi.<a name="md-procedure-multi-label-transform"></a>

**Untuk mengubah file manifes SageMaker AI multi-label**

1. Jalankan kode python berikut. Berikan nama file manifes yang Anda buat [Mendapatkan file manifes untuk pekerjaan SageMaker AI Ground Truth](#md-get-gt-manifest) sebagai argumen baris perintah.

   ```
   # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   # SPDX-License-Identifier:  Apache-2.0
   """
   Purpose
   Shows how to create and Amazon Rekognition Custom Labels format
   manifest file from an Amazon SageMaker Ground Truth Image
   Classification (Multi-label) format manifest file.
   """
   import json
   import logging
   import argparse
   import os.path
   
   logger = logging.getLogger(__name__)
   
   def create_manifest_file(ground_truth_manifest_file):
       """
       Creates an Amazon Rekognition Custom Labels format manifest file from
       an Amazon SageMaker Ground Truth Image Classification (Multi-label) format
       manifest file.
       :param: ground_truth_manifest_file: The name of the Ground Truth manifest file,
       including the relative path.
       :return: The name of the new Custom Labels manifest file.
       """
   
       logger.info('Creating manifest file from %s', ground_truth_manifest_file)
       new_manifest_file = f'custom_labels_{os.path.basename(ground_truth_manifest_file)}'
   
       # Read the SageMaker Ground Truth manifest file into memory.
       with open(ground_truth_manifest_file) as gt_file:
           lines = gt_file.readlines()
   
       #Iterate through the lines one at a time to generate the
       #new lines for the Custom Labels manifest file.
       with open(new_manifest_file, 'w') as the_new_file:
           for line in lines:
               #job_name - The of the Amazon Sagemaker Ground Truth job.
               job_name = ''
               # Load in the old json item from the Ground Truth manifest file
               old_json = json.loads(line)
   
               # Get the job name
               keys = old_json.keys()
               for key in keys:
                   if 'source-ref' not in key and '-metadata' not in key:
                       job_name = key
   
               new_json = {}
               # Set the location of the image
               new_json['source-ref'] = old_json['source-ref']
   
               # Temporarily store the list of labels
               labels = old_json[job_name]
   
               # Iterate through the labels and reformat to Custom Labels format
               for index, label in enumerate(labels):
                   new_json[f'{job_name}{index}'] = index
                   metadata = {}
                   metadata['class-name'] = old_json[f'{job_name}-metadata']['class-map'][str(label)]
                   metadata['confidence'] = old_json[f'{job_name}-metadata']['confidence-map'][str(label)]
                   metadata['type'] = 'groundtruth/image-classification'
                   metadata['job-name'] = old_json[f'{job_name}-metadata']['job-name']
                   metadata['human-annotated'] = old_json[f'{job_name}-metadata']['human-annotated']
                   metadata['creation-date'] = old_json[f'{job_name}-metadata']['creation-date']
                   # Add the metadata to new json line
                   new_json[f'{job_name}{index}-metadata'] = metadata
               # Write the current line to the json file
               the_new_file.write(json.dumps(new_json))
               the_new_file.write('\n')
   
       logger.info('Created %s', new_manifest_file)
       return  new_manifest_file
   
   def add_arguments(parser):
       """
       Adds command line arguments to the parser.
       :param parser: The command line parser.
       """
   
       parser.add_argument(
           "manifest_file", help="The Amazon SageMaker Ground Truth manifest file"
           "that you want to use."
       )
   
   
   def main():
       logging.basicConfig(level=logging.INFO,
                           format="%(levelname)s: %(message)s")
       try:
           # get command line arguments
           parser = argparse.ArgumentParser(usage=argparse.SUPPRESS)
           add_arguments(parser)
           args = parser.parse_args()
           # Create the manifest file
           manifest_file = create_manifest_file(args.manifest_file)
           print(f'Manifest file created: {manifest_file}')
       except FileNotFoundError as err:
           logger.exception('File not found: %s', err)
           print(f'File not found: {err}. Check your manifest file.')
   
   if __name__ == "__main__":
       main()
   ```

1. Perhatikan nama file manifes baru yang ditampilkan skrip. Anda menggunakannya di langkah berikutnya.

1. [Unggah file manifes Anda](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) ke bucket Amazon S3 yang ingin Anda gunakan untuk menyimpan file manifes.
**catatan**  
Pastikan Label Kustom Amazon Rekognition memiliki akses ke bucket Amazon S3 yang direferensikan di bidang baris JSON file `source-ref` manifes. Untuk informasi selengkapnya, lihat [Mengakses Bucket Amazon S3 eksternal](su-console-policy.md#su-external-buckets). Jika lowongan Ground Truth menyimpan gambar di Bucket Konsol Label Kustom Amazon Rekognition, Anda tidak perlu menambahkan izin.

1. Ikuti petunjuk di [Membuat kumpulan data dengan file manifes SageMaker AI Ground Truth (Console)](md-create-dataset-ground-truth.md#md-create-dataset-ground-truth-console) untuk membuat kumpulan data dengan file manifes yang diunggah. Untuk langkah 8, di **lokasi file.manifest**, masukkan URL Amazon S3 untuk lokasi file manifes. Jika Anda menggunakan AWS SDK, lakukan[Membuat kumpulan data dengan file manifes SageMaker AI Ground Truth (SDK)](md-create-dataset-ground-truth.md#md-create-dataset-ground-truth-sdk).

# Membuat file manifes dari file CSV
<a name="ex-csv-manifest"></a>

Contoh skrip Python ini menyederhanakan pembuatan file manifes dengan menggunakan file Comma Separated Values (CSV) untuk memberi label gambar. Anda membuat file CSV. File manifes cocok untuk [klasifikasi gambar Multi-label](getting-started.md#gs-multi-label-image-classification-example) atau[Klasifikasi gambar multi-label](getting-started.md#gs-multi-label-image-classification-example). Untuk informasi selengkapnya, lihat [Temukan objek, adegan, dan konsep](understanding-custom-labels.md#tm-classification). 

**catatan**  
Skrip ini tidak membuat file manifes yang cocok untuk menemukan [lokasi objek](understanding-custom-labels.md#tm-object-localization) atau untuk menemukan [lokasi merek](understanding-custom-labels.md#tm-brand-detection-localization).

File manifes menjelaskan gambar yang digunakan untuk melatih model. Misalnya, lokasi gambar dan label yang ditetapkan untuk gambar. File manifes terdiri dari satu atau lebih baris JSON. Setiap baris JSON menggambarkan satu gambar. Untuk informasi selengkapnya, lihat [Mengimpor label tingkat gambar dalam file manifes](md-create-manifest-file-classification.md).

File CSV mewakili data tabular di beberapa baris dalam file teks. Bidang pada baris dipisahkan dengan koma. Untuk informasi selengkapnya, lihat [nilai yang dipisahkan koma](https://en.wikipedia.org/wiki/Comma-separated_values). Untuk skrip ini, setiap baris dalam file CSV Anda mewakili satu gambar dan memetakan ke Baris JSON dalam file manifes. Untuk membuat file CSV untuk file manifes yang mendukung [klasifikasi gambar Multi-label](getting-started.md#gs-multi-label-image-classification-example), Anda menambahkan satu atau beberapa label tingkat gambar ke setiap baris. Untuk membuat file manifes yang cocok[Klasifikasi gambar](getting-started.md#gs-image-classification-example), Anda menambahkan satu label tingkat gambar ke setiap baris.

Misalnya, File CSV berikut menjelaskan gambar dalam proyek [Klasifikasi gambar multi-label](getting-started.md#gs-multi-label-image-classification-example) (Bunga) *Memulai*. 

```
camellia1.jpg,camellia,with_leaves
camellia2.jpg,camellia,with_leaves
camellia3.jpg,camellia,without_leaves
helleborus1.jpg,helleborus,without_leaves,not_fully_grown
helleborus2.jpg,helleborus,with_leaves,fully_grown
helleborus3.jpg,helleborus,with_leaves,fully_grown
jonquil1.jpg,jonquil,with_leaves
jonquil2.jpg,jonquil,with_leaves
jonquil3.jpg,jonquil,with_leaves
jonquil4.jpg,jonquil,without_leaves
mauve_honey_myrtle1.jpg,mauve_honey_myrtle,without_leaves
mauve_honey_myrtle2.jpg,mauve_honey_myrtle,with_leaves
mauve_honey_myrtle3.jpg,mauve_honey_myrtle,with_leaves
mediterranean_spurge1.jpg,mediterranean_spurge,with_leaves
mediterranean_spurge2.jpg,mediterranean_spurge,without_leaves
```

Script menghasilkan JSON Lines untuk setiap baris. Sebagai contoh, berikut ini adalah JSON Line untuk baris pertama (`camellia1.jpg,camellia,with_leaves`).

```
{"source-ref": "s3://bucket/flowers/train/camellia1.jpg","camellia": 1,"camellia-metadata":{"confidence": 1,"job-name": "labeling-job/camellia","class-name": "camellia","human-annotated": "yes","creation-date": "2022-01-21T14:21:05","type": "groundtruth/image-classification"},"with_leaves": 1,"with_leaves-metadata":{"confidence": 1,"job-name": "labeling-job/with_leaves","class-name": "with_leaves","human-annotated": "yes","creation-date": "2022-01-21T14:21:05","type": "groundtruth/image-classification"}}
```

Dalam contoh CSV, jalur Amazon S3 ke gambar tidak ada. Jika file CSV Anda tidak menyertakan jalur Amazon S3 untuk gambar, gunakan `--s3_path` argumen baris perintah untuk menentukan jalur Amazon S3 ke gambar. 

Skrip merekam entri pertama untuk setiap gambar dalam file CSV gambar yang tidak digandakan. File CSV gambar yang dideduplikasi berisi satu contoh dari setiap gambar yang ditemukan dalam file CSV input. Kemunculan lebih lanjut dari gambar dalam file CSV input direkam dalam file CSV gambar duplikat. Jika skrip menemukan gambar duplikat, tinjau file CSV gambar duplikat dan perbarui file CSV gambar yang tidak digandakan seperlunya. Jalankan kembali skrip dengan file deduplikat. Jika tidak ada duplikat yang ditemukan dalam file CSV input, skrip menghapus file CSV gambar yang tidak digandakan dan gambar duplikat, karena kosong. CSVfile 

 Dalam prosedur ini, Anda membuat file CSV dan menjalankan skrip Python untuk membuat file manifes. 

**Untuk membuat file manifes dari file CSV**

1. Buat file CSV dengan bidang berikut di setiap baris (satu baris per gambar). Jangan menambahkan baris header ke file CSV.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/rekognition/latest/customlabels-dg/ex-csv-manifest.html)

   Misalnya `camellia1.jpg,camellia,with_leaves` atau `s3://my-bucket/flowers/train/camellia1.jpg,camellia,with_leaves` 

1. Simpan file CSV.

1. Jalankan skrip Python berikut. Berikan argumen berikut:
   + `csv_file`— File CSV yang Anda buat di langkah 1. 
   + `manifest_file`— Nama file manifes yang ingin Anda buat.
   + (Opsional) `--s3_path s3://path_to_folder/` - Jalur Amazon S3 untuk ditambahkan ke nama file gambar (bidang 1). Gunakan `--s3_path` jika gambar di bidang 1 belum berisi jalur S3.

   ```
   # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   # SPDX-License-Identifier:  Apache-2.0
   
   from datetime import datetime, timezone
   import argparse
   import logging
   import csv
   import os
   import json
   
   """
   Purpose
   Amazon Rekognition Custom Labels model example used in the service documentation.
   Shows how to create an image-level (classification) manifest file from a CSV file.
   You can specify multiple image level labels per image.
   CSV file format is
   image,label,label,..
   If necessary, use the bucket argument to specify the S3 bucket folder for the images.
   https://docs.aws.amazon.com/rekognition/latest/customlabels-dg/md-gt-cl-transform.html
   """
   
   logger = logging.getLogger(__name__)
   
   
   def check_duplicates(csv_file, deduplicated_file, duplicates_file):
       """
       Checks for duplicate images in a CSV file. If duplicate images
       are found, deduplicated_file is the deduplicated CSV file - only the first
       occurence of a duplicate is recorded. Other duplicates are recorded in duplicates_file.
       :param csv_file: The source CSV file.
       :param deduplicated_file: The deduplicated CSV file to create. If no duplicates are found
       this file is removed.
       :param duplicates_file: The duplicate images CSV file to create. If no duplicates are found
       this file is removed.
       :return: True if duplicates are found, otherwise false.
       """
   
       logger.info("Deduplicating %s", csv_file)
   
       duplicates_found = False
   
       # Find duplicates.
       with open(csv_file, 'r', newline='', encoding="UTF-8") as f,\
               open(deduplicated_file, 'w', encoding="UTF-8") as dedup,\
               open(duplicates_file, 'w', encoding="UTF-8") as duplicates:
   
           reader = csv.reader(f, delimiter=',')
           dedup_writer = csv.writer(dedup)
           duplicates_writer = csv.writer(duplicates)
   
           entries = set()
           for row in reader:
               # Skip empty lines.
               if not ''.join(row).strip():
                   continue
   
               key = row[0]
               if key not in entries:
                   dedup_writer.writerow(row)
                   entries.add(key)
               else:
                   duplicates_writer.writerow(row)
                   duplicates_found = True
   
       if duplicates_found:
           logger.info("Duplicates found check %s", duplicates_file)
   
       else:
           os.remove(duplicates_file)
           os.remove(deduplicated_file)
   
       return duplicates_found
   
   
   def create_manifest_file(csv_file, manifest_file, s3_path):
       """
       Reads a CSV file and creates a Custom Labels classification manifest file.
       :param csv_file: The source CSV file.
       :param manifest_file: The name of the manifest file to create.
       :param s3_path: The S3 path to the folder that contains the images.
       """
       logger.info("Processing CSV file %s", csv_file)
   
       image_count = 0
       label_count = 0
   
       with open(csv_file, newline='', encoding="UTF-8") as csvfile,\
               open(manifest_file, "w", encoding="UTF-8") as output_file:
   
           image_classifications = csv.reader(
               csvfile, delimiter=',', quotechar='|')
   
           # Process each row (image) in CSV file.
           for row in image_classifications:
               source_ref = str(s3_path)+row[0]
   
               image_count += 1
   
               # Create JSON for image source ref.
               json_line = {}
               json_line['source-ref'] = source_ref
   
               # Process each image level label.
               for index in range(1, len(row)):
                   image_level_label = row[index]
   
                   # Skip empty columns.
                   if image_level_label == '':
                       continue
                   label_count += 1
   
                  # Create the JSON line metadata.
                   json_line[image_level_label] = 1
                   metadata = {}
                   metadata['confidence'] = 1
                   metadata['job-name'] = 'labeling-job/' + image_level_label
                   metadata['class-name'] = image_level_label
                   metadata['human-annotated'] = "yes"
                   metadata['creation-date'] = \
                       datetime.now(timezone.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')
                   metadata['type'] = "groundtruth/image-classification"
   
                   json_line[f'{image_level_label}-metadata'] = metadata
   
                   # Write the image JSON Line.
               output_file.write(json.dumps(json_line))
               output_file.write('\n')
   
       output_file.close()
       logger.info("Finished creating manifest file %s\nImages: %s\nLabels: %s",
                   manifest_file, image_count, label_count)
   
       return image_count, label_count
   
   
   def add_arguments(parser):
       """
       Adds command line arguments to the parser.
       :param parser: The command line parser.
       """
   
       parser.add_argument(
           "csv_file", help="The CSV file that you want to process."
       )
   
       parser.add_argument(
           "--s3_path", help="The S3 bucket and folder path for the images."
           " If not supplied, column 1 is assumed to include the S3 path.", required=False
       )
   
   
   def main():
   
       logging.basicConfig(level=logging.INFO,
                           format="%(levelname)s: %(message)s")
   
       try:
   
           # Get command line arguments
           parser = argparse.ArgumentParser(usage=argparse.SUPPRESS)
           add_arguments(parser)
           args = parser.parse_args()
   
           s3_path = args.s3_path
           if s3_path is None:
               s3_path = ''
   
           # Create file names.
           csv_file = args.csv_file
           file_name = os.path.splitext(csv_file)[0]
           manifest_file = f'{file_name}.manifest'
           duplicates_file = f'{file_name}-duplicates.csv'
           deduplicated_file = f'{file_name}-deduplicated.csv'
   
           # Create manifest file, if there are no duplicate images.
           if check_duplicates(csv_file, deduplicated_file, duplicates_file):
               print(f"Duplicates found. Use {duplicates_file} to view duplicates "
                     f"and then update {deduplicated_file}. ")
               print(f"{deduplicated_file} contains the first occurence of a duplicate. "
                     "Update as necessary with the correct label information.")
               print(f"Re-run the script with {deduplicated_file}")
           else:
               print("No duplicates found. Creating manifest file.")
   
               image_count, label_count = create_manifest_file(csv_file,
                                                               manifest_file,
                                                               s3_path)
   
               print(f"Finished creating manifest file: {manifest_file} \n"
                     f"Images: {image_count}\nLabels: {label_count}")
   
       except FileNotFoundError as err:
           logger.exception("File not found: %s", err)
           print(f"File not found: {err}. Check your input CSV file.")
   
   
   if __name__ == "__main__":
       main()
   ```

1. Jika Anda berencana menggunakan kumpulan data pengujian, ulangi langkah 1-3 untuk membuat file manifes untuk kumpulan data pengujian Anda.

1. Jika perlu, salin gambar ke jalur bucket Amazon S3 yang Anda tentukan di kolom 1 file CSV (atau ditentukan dalam `--s3_path` baris perintah). Anda dapat menggunakan perintah AWS S3 berikut.

   ```
   aws s3 cp --recursive your-local-folder s3://your-target-S3-location
   ```

1. [Unggah file manifes Anda](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) ke bucket Amazon S3 yang ingin Anda gunakan untuk menyimpan file manifes.
**catatan**  
Pastikan Label Kustom Amazon Rekognition memiliki akses ke bucket Amazon S3 yang direferensikan di bidang baris JSON file `source-ref` manifes. Untuk informasi selengkapnya, lihat [Mengakses Bucket Amazon S3 eksternal](su-console-policy.md#su-external-buckets). Jika lowongan Ground Truth menyimpan gambar di Bucket Konsol Label Kustom Amazon Rekognition, Anda tidak perlu menambahkan izin.

1. Ikuti petunjuk di [Membuat kumpulan data dengan file manifes SageMaker AI Ground Truth (Console)](md-create-dataset-ground-truth.md#md-create-dataset-ground-truth-console) untuk membuat kumpulan data dengan file manifes yang diunggah. Untuk langkah 8, di **lokasi file.manifest**, masukkan URL Amazon S3 untuk lokasi file manifes. Jika Anda menggunakan AWS SDK, lakukan[Membuat kumpulan data dengan file manifes SageMaker AI Ground Truth (SDK)](md-create-dataset-ground-truth.md#md-create-dataset-ground-truth-sdk).

# Menyalin konten dari kumpulan data yang ada
<a name="md-create-dataset-existing-dataset"></a>

Jika sebelumnya Anda telah membuat kumpulan data, Anda dapat menyalin kontennya ke kumpulan data baru. Untuk membuat kumpulan data dari kumpulan data yang ada dengan AWS SDK, lihat. [Membuat kumpulan data menggunakan dataset (SDK) yang ada](md-create-dataset-existing-dataset-sdk.md)

**Untuk membuat kumpulan data menggunakan dataset Amazon Rekognition Custom Labels (konsol) yang ada**

1. Buka konsol Amazon Rekognition di. [https://console.aws.amazon.com/rekognition/](https://console.aws.amazon.com/rekognition/)

1. Pilih **Gunakan Label Kustom**.

1. Pilih **Mulai**. 

1. Di panel navigasi kiri, pilih **Proyek**.

1. Di halaman **Proyek**, pilih proyek yang ingin Anda tambahkan dataset. Halaman detail untuk proyek Anda ditampilkan.

1. Pilih **Buat kumpulan data**. Halaman **Buat dataset** ditampilkan.

1. Dalam **konfigurasi Mulai**, pilih **Mulai dengan satu set data** atau **Mulai dengan kumpulan data pelatihan**. Untuk membuat model berkualitas lebih tinggi, kami sarankan memulai dengan kumpulan data pelatihan dan pengujian terpisah.

------
#### [ Single dataset ]

   1. Di bagian **Detail kumpulan data Pelatihan**, pilih **Salin kumpulan data Label Kustom Rekognition Amazon yang ada**.

   1. Di bagian **Detail kumpulan data pelatihan**, di kotak edit **Dataset**, ketik atau pilih nama kumpulan data yang ingin Anda salin. 

   1. Pilih **Buat Dataset**. Halaman kumpulan data untuk proyek Anda terbuka.

------
#### [ Separate training and test datasets ]

   1. Di bagian **Detail kumpulan data Pelatihan**, pilih **Salin kumpulan data Label Kustom Rekognition Amazon yang ada**.

   1. Di bagian **Detail kumpulan data pelatihan**, di kotak edit **Dataset**, ketik atau pilih nama kumpulan data yang ingin Anda salin. 

   1. Di bagian **Uji detail kumpulan data**, pilih **Salin kumpulan data Label Kustom Rekognition Amazon yang ada**.

   1. Di bagian **Uji detail kumpulan data**, di kotak edit **Dataset**, ketik atau pilih nama kumpulan data yang ingin Anda salin. 
**catatan**  
Kumpulan data pelatihan dan pengujian Anda dapat memiliki sumber gambar yang berbeda.

   1. Pilih **Buat Kumpulan Data**. Halaman kumpulan data untuk proyek Anda terbuka.

------

1. Jika Anda perlu menambahkan atau mengubah label, lakukan[Pelabelan gambar](md-labeling-images.md).

1. Ikuti langkah-langkah [Melatih model (Konsol)](training-model.md#tm-console) untuk melatih model Anda.