

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 pengujian
<a name="creating-datasets"></a>



Dataset adalah sekumpulan gambar dan label yang menggambarkan gambar-gambar tersebut. Proyek Anda membutuhkan dataset pelatihan dan dataset pengujian. Amazon Rekognition Custom Labels menggunakan dataset pelatihan untuk melatih model Anda. Setelah pelatihan, Amazon Rekognition Custom Labels menggunakan dataset pengujian untuk memverifikasi seberapa baik model terlatih memprediksi label yang benar.

Anda dapat membuat kumpulan data dengan konsol Amazon Rekognition Custom Labels atau dengan SDK. AWS Sebelum membuat kumpulan data, sebaiknya baca[Memahami Label Kustom Rekognition Amazon](understanding-custom-labels.md). Untuk tugas kumpulan data lainnya, lihat[Mengelola kumpulan data](managing-dataset.md).

Langkah-langkah membuat kumpulan data pelatihan dan pengujian untuk sebuah proyek adalah:

**Untuk membuat kumpulan data pelatihan dan pengujian untuk proyek Anda**

1. Tentukan bagaimana Anda perlu memberi label kumpulan data pelatihan dan pengujian Anda. Untuk informasi selengkapnya, lihat [Mengarahkan kumpulan data](md-dataset-purpose.md).

1. Kumpulkan gambar untuk kumpulan data pelatihan dan uji Anda. Untuk informasi selengkapnya, lihat [Mempersiapkan gambar](md-prepare-images.md).

1. Buat kumpulan data pelatihan dan uji. Untuk informasi selengkapnya, lihat [Membuat kumpulan data pelatihan dan uji dengan gambar](md-create-dataset.md). Jika Anda menggunakan AWS SDK, lihat[Buat kumpulan data pelatihan dan pengujian (SDK)](md-create-dataset.md#cd-create-dataset-sdk).

1. Jika perlu, tambahkan label tingkat gambar atau kotak pembatas ke gambar kumpulan data Anda. Untuk informasi selengkapnya, lihat [Pelabelan gambar](md-labeling-images.md).

Setelah Anda membuat kumpulan data, Anda dapat [melatih model](training-model.md).

**Topics**
+ [Mengarahkan kumpulan data](md-dataset-purpose.md)
+ [Mempersiapkan gambar](md-prepare-images.md)
+ [Membuat kumpulan data pelatihan dan uji dengan gambar](md-create-dataset.md)
+ [Pelabelan gambar](md-labeling-images.md)
+ [Debugging kumpulan data](debugging-datasets.md)

# Mengarahkan kumpulan data
<a name="md-dataset-purpose"></a>

Cara Anda memberi label pada kumpulan data pelatihan dan pengujian dalam proyek Anda menentukan jenis model yang Anda buat. Dengan Amazon Rekognition Custom Labels Anda dapat membuat model yang melakukan hal berikut.
+ [Temukan objek, adegan, dan konsep](#md-dataset-purpose-classification)
+ [Temukan lokasi objek](#md-dataset-purpose-localization)
+ [Temukan lokasi merek](#md-dataset-purpose-brands)

## Temukan objek, adegan, dan konsep
<a name="md-dataset-purpose-classification"></a>

Model mengklasifikasikan objek, adegan, dan konsep yang terkait dengan keseluruhan gambar.

Anda dapat membuat dua jenis model klasifikasi, klasifikasi *gambar dan klasifikasi* *multi-label*. Untuk kedua jenis model klasifikasi, model menemukan satu atau lebih label yang cocok dari set lengkap label yang digunakan untuk pelatihan. Kumpulan data pelatihan dan pengujian keduanya membutuhkan setidaknya dua label. 

### Klasifikasi gambar
<a name="md-dataset-image-classification"></a>

 

Model mengklasifikasikan gambar sebagai milik satu set label yang telah ditentukan. Misalnya, Anda mungkin menginginkan model yang menentukan apakah gambar berisi ruang hidup. Gambar berikut mungkin memiliki label tingkat gambar *living\$1space*. 

![\[Ruang tamu yang nyaman dengan perapian, jendela besar yang menghadap ke teras halaman belakang. Nada netral, aksen kayu.\]](http://docs.aws.amazon.com/id_id/rekognition/latest/customlabels-dg/images/living_space1.jpeg)


Untuk jenis model ini, tambahkan satu label tingkat gambar ke setiap gambar kumpulan data pelatihan dan uji. Untuk contoh proyek, lihat[Klasifikasi gambar](getting-started.md#gs-image-classification-example).

### Klasifikasi multi-label
<a name="md-dataset-image-classification-multi-label"></a>

Model ini mengklasifikasikan gambar ke dalam beberapa kategori, seperti jenis bunga dan apakah memiliki daun, atau tidak. *Misalnya, gambar berikut mungkin memiliki label level gambar *mediterranean\$1spurge dan no\$1leaves*.*

![\[Tampilan jarak dekat dari tandan bunga viburnum hijau dengan kuntum kecil yang padat.\]](http://docs.aws.amazon.com/id_id/rekognition/latest/customlabels-dg/images/mediterranean_spurge3.jpg)


Untuk jenis model ini, tetapkan label tingkat gambar untuk setiap kategori ke gambar kumpulan data pelatihan dan uji. Untuk contoh proyek, lihat[Klasifikasi gambar multi-label](getting-started.md#gs-multi-label-image-classification-example).

### Menetapkan label tingkat gambar
<a name="w2aac20c17c21b7c11"></a>

Jika gambar Anda disimpan dalam bucket Amazon S3, Anda dapat menggunakan [nama folder](md-create-dataset-s3.md) untuk menambahkan label tingkat gambar secara otomatis. Untuk informasi selengkapnya, lihat [Mengimpor gambar dari bucket Amazon S3](md-create-dataset-s3.md). Anda juga dapat menambahkan label tingkat gambar ke gambar setelah membuat kumpulan data, Untuk informasi selengkapnya, lihat. [Menetapkan label tingkat gambar ke gambar](md-assign-image-level-labels.md) Anda dapat menambahkan label baru saat Anda membutuhkannya. Untuk informasi selengkapnya, lihat [Mengelola label](md-labels.md).

## Temukan lokasi objek
<a name="md-dataset-purpose-localization"></a>

Untuk membuat model yang memprediksi lokasi objek dalam gambar Anda, Anda menentukan kotak pembatas lokasi objek dan label untuk gambar dalam kumpulan data pelatihan dan pengujian Anda. Kotak pembatas adalah kotak yang mengelilingi objek dengan erat. Misalnya, gambar berikut menunjukkan kotak pembatas di sekitar Amazon Echo dan Amazon Echo Dot. *Setiap kotak pembatas memiliki label yang ditetapkan (*Amazon Echo atau 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)


Untuk menemukan lokasi objek, kumpulan data Anda membutuhkan setidaknya satu label. Selama pelatihan model, label lebih lanjut secara otomatis dibuat yang mewakili area di luar kotak pembatas pada gambar. 

### Menetapkan kotak pembatas
<a name="w2aac20c17c21b9b9"></a>

 Saat membuat kumpulan data, Anda dapat menyertakan informasi kotak pembatas untuk gambar Anda. Misalnya, Anda dapat mengimpor [file manifes](md-create-manifest-file.md) format SageMaker AI Ground Truth yang berisi kotak pembatas. Anda juga dapat menambahkan kotak pembatas setelah membuat kumpulan data. Untuk informasi selengkapnya, lihat [Pelabelan objek dengan kotak pembatas](md-localize-objects.md). Anda dapat menambahkan label baru saat Anda membutuhkannya. Untuk informasi selengkapnya, lihat [Mengelola label](md-labels.md).

## Temukan lokasi merek
<a name="md-dataset-purpose-brands"></a>

Jika Anda ingin menemukan lokasi merek, seperti logo dan karakter animasi, Anda dapat menggunakan dua jenis gambar yang berbeda untuk gambar kumpulan data pelatihan Anda. 
+  Gambar yang hanya dari logo. Setiap gambar membutuhkan label tingkat gambar tunggal yang mewakili nama logo. *Misalnya, label tingkat gambar untuk gambar berikut dapat berupa Lambda.*  
![\[Logo Lambda berwarna putih pada latar belakang oranye.\]](http://docs.aws.amazon.com/id_id/rekognition/latest/customlabels-dg/images/lambda-logo.jpg)
+ Gambar yang berisi logo di lokasi alami, seperti pertandingan sepak bola atau diagram arsitektual. Setiap gambar pelatihan membutuhkan kotak pembatas yang mengelilingi setiap instance logo. Misalnya, gambar berikut menunjukkan diagram arsitektur dengan kotak pembatas berlabel yang mengelilingi logo AWS Lambda dan Amazon Pinpoint.   
![\[Alur kerja Diagrom yang menunjukkan layanan AWS Lambda memasukkan aktivitas pengguna ke Amazon Pinpoint untuk rekomendasi.\]](http://docs.aws.amazon.com/id_id/rekognition/latest/customlabels-dg/images/brand-detection-lambda.png)

Kami menyarankan Anda untuk tidak mencampur label tingkat gambar dan kotak pembatas dalam gambar pelatihan Anda. 

Gambar uji harus memiliki kotak pembatas di sekitar contoh merek yang ingin Anda temukan. Anda dapat membagi kumpulan data pelatihan untuk membuat kumpulan data pengujian, hanya jika gambar pelatihan menyertakan kotak pembatas berlabel. Jika gambar pelatihan hanya memiliki label tingkat gambar, Anda harus membuat kumpulan kumpulan data pengujian yang menyertakan gambar dengan kotak pembatas berlabel. Jika Anda melatih model untuk menemukan lokasi merek, lakukan [Pelabelan objek dengan kotak pembatas](md-localize-objects.md) dan [Menetapkan label tingkat gambar ke gambar](md-assign-image-level-labels.md) sesuai dengan cara Anda memberi label pada gambar Anda. 

Proyek [Deteksi merek](getting-started.md#gs-brand-detection-example) contoh menunjukkan bagaimana Amazon Rekognition Custom Labels menggunakan kotak pembatas berlabel untuk melatih model yang menemukan lokasi objek.

## Persyaratan label untuk jenis model
<a name="md-model-types-table"></a>

Gunakan tabel berikut untuk menentukan cara memberi label pada gambar Anda. 

Anda dapat menggabungkan label tingkat gambar dan gambar berlabel kotak pembatas dalam satu kumpulan data. Dalam hal ini, Amazon Rekognition Custom Labels memilih apakah akan membuat model tingkat gambar atau model lokasi objek. 


| Contoh | Gambar pelatihan | Gambar uji | 
| --- | --- | --- | 
|  [Klasifikasi gambar](#md-dataset-image-classification)  |  1 Label tingkat gambar per gambar  |  1 Label tingkat gambar per gambar   | 
|  [Klasifikasi multi-label](#md-dataset-image-classification-multi-label)  |  Beberapa label tingkat gambar per gambar  |  Beberapa label tingkat gambar per gambar  | 
|  [Temukan lokasi merek](#md-dataset-purpose-brands)  |  label tingkat gambar (Anda juga dapat menggunakan kotak pembatas berlabel)  |  Kotak pembatas berlabel  | 
|  [Temukan lokasi objek](#md-dataset-purpose-localization)  |  Kotak pembatas berlabel  |  Kotak pembatas berlabel  | 

# Mempersiapkan gambar
<a name="md-prepare-images"></a>

 Gambar dalam kumpulan data pelatihan dan pengujian Anda berisi objek, adegan, atau konsep yang Anda ingin model Anda temukan. 

Isi gambar harus dalam berbagai latar belakang dan pencahayaan yang mewakili gambar yang Anda inginkan untuk diidentifikasi oleh model terlatih.

Bagian ini memberikan informasi tentang gambar dalam kumpulan data pelatihan dan pengujian Anda.

## Format gambar
<a name="pi-image-format"></a>

Anda dapat melatih model Amazon Rekognition Custom Labels dengan gambar yang dalam format PNG dan JPEG. Demikian pula, untuk mendeteksi label khusus menggunakan`DetectCustomLabels`, Anda memerlukan gambar yang dalam format PNG dan JPEG.

## Rekomendasi gambar masukan
<a name="md-image-recommendations"></a>

Amazon Rekognition Custom Labels memerlukan gambar untuk melatih dan menguji model Anda. Untuk menyiapkan gambar Anda, pertimbangkan sebagai berikut:
+ Pilih domain tertentu untuk model yang ingin Anda buat. Misalnya, Anda dapat memilih model untuk pemandangan indah dan model lain untuk objek seperti suku cadang mesin. Label Kustom Rekognition Amazon berfungsi paling baik jika gambar Anda berada di domain yang dipilih.
+ Gunakan setidaknya 10 gambar untuk melatih model Anda.
+ Gambar harus dalam format PNG atau JPEG.
+ Gunakan gambar yang menunjukkan objek dalam berbagai pencahayaan, latar belakang, dan resolusi.
+ Pelatihan dan pengujian gambar harus serupa dengan gambar yang ingin Anda gunakan modelnya. 
+ Tentukan label apa yang akan ditetapkan ke gambar.
+ Pastikan resolusi citra cukup besar. Untuk informasi selengkapnya, lihat [Pedoman dan kuota di Label Kustom Rekognition Amazon](limits.md).
+ Pastikan oklusi tidak mengaburkan objek yang ingin Anda deteksi.
+ Gunakan citra yang memiliki kontras yang cukup dengan latar belakang. 
+ Gunakan citra yang terang dan tajam. Hindari penggunaan gambar yang mungkin buram karena subjek dan gerakan kamera sebanyak mungkin.
+ Gunakan gambar di mana objek menempati sebagian besar gambar.
+ Gambar dalam kumpulan data pengujian Anda tidak boleh berupa gambar yang ada dalam kumpulan data pelatihan. Mereka harus mencakup objek, adegan, dan konsep yang dilatih untuk dianalisis oleh model.

## Ukuran set gambar
<a name="md-set"></a>

Amazon Rekognition Custom Labels menggunakan satu set gambar untuk melatih model. Minimal, Anda harus menggunakan setidaknya 10 gambar untuk pelatihan. Amazon Rekognition Custom Labels menyimpan gambar pelatihan dan pengujian dalam kumpulan data. Untuk informasi selengkapnya, lihat [Membuat kumpulan data pelatihan dan uji dengan gambar](md-create-dataset.md).

# 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.

# Pelabelan gambar
<a name="md-labeling-images"></a>

Label mengidentifikasi objek, adegan, konsep, atau kotak pembatas di sekitar objek dalam gambar. Misalnya, jika kumpulan data Anda berisi gambar anjing-kucing, Anda dapat menambahkan label untuk trah anjing-anjingnya. 

Setelah mengimpor gambar ke dalam kumpulan data, Anda mungkin perlu menambahkan label ke gambar atau memperbaiki gambar yang salah label. Misalnya, gambar tidak diberi label jika diimpor dari komputer lokal. Anda menggunakan galeri kumpulan data untuk menambahkan label baru ke kumpulan data dan menetapkan label dan kotak pembatas ke gambar dalam kumpulan data. 

Cara Anda memberi label pada gambar dalam kumpulan data menentukan jenis model yang dilatih Label Kustom Rekognition Amazon. Untuk informasi selengkapnya, lihat [Mengarahkan kumpulan data](md-dataset-purpose.md). 

**Topics**
+ [Mengelola label](md-labels.md)
+ [Menetapkan label tingkat gambar ke gambar](md-assign-image-level-labels.md)
+ [Pelabelan objek dengan kotak pembatas](md-localize-objects.md)

# Mengelola label
<a name="md-labels"></a>

Anda dapat mengelola label dengan menggunakan konsol Amazon Rekognition Custom Labels. Tidak ada API khusus untuk mengelola label — label ditambahkan ke kumpulan data saat Anda membuat kumpulan data dengan `CreateDataset` atau saat Anda menambahkan lebih banyak gambar ke kumpulan data dengan. `UpdateDatasetEntries`

**Topics**
+ [Mengelola label (Konsol)](#md-labels-console)
+ [Mengelola Label (SDK)](#md-labels-sdk)

## Mengelola label (Konsol)
<a name="md-labels-console"></a>

Anda dapat menggunakan konsol Amazon Rekognition Custom Labels untuk menambah, mengubah, atau menghapus label dari kumpulan data. Untuk menambahkan label ke kumpulan data, Anda dapat menambahkan label baru yang Anda buat atau impor label dari kumpulan data yang ada di Rekognition.

**Topics**
+ [Tambahkan label baru (Konsol)](#md-add-new-labels)
+ [Ubah dan hapus label (Konsol)](#md-edit-labels-after-adding)

### Tambahkan label baru (Konsol)
<a name="md-add-new-labels"></a>

Anda dapat menentukan label baru yang ingin Anda tambahkan ke kumpulan data Anda. 

#### Tambahkan label menggunakan jendela pengeditan
<a name="add-with-modal"></a>

**Untuk menambahkan label baru (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 gunakan. Halaman detail untuk proyek Anda ditampilkan.

1. Jika Anda ingin menambahkan label ke kumpulan data pelatihan, pilih tab **Pelatihan**. Jika tidak, pilih tab **Uji** untuk menambahkan label ke kumpulan data pengujian. 

1. Pilih **Mulai pelabelan** untuk masuk ke mode pelabelan.

1. Di bagian **Label** galeri kumpulan data, pilih **Kelola label** untuk membuka kotak dialog **Kelola label**.

1. Di kotak edit, masukkan nama label baru.

1. Pilih **Tambahkan label**.

1. Ulangi langkah 9 dan 10 sampai Anda telah membuat semua label yang Anda butuhkan.

1. Pilih **Simpan** untuk menyimpan label yang Anda tambahkan.

### Ubah dan hapus label (Konsol)
<a name="md-edit-labels-after-adding"></a>

Anda dapat mengganti nama atau menghapus label setelah menambahkannya ke kumpulan data. Anda hanya dapat menghapus label yang tidak ditetapkan ke gambar apa pun.

**Untuk mengganti nama atau menghapus label yang ada (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 gunakan. Halaman detail untuk proyek Anda ditampilkan.

1. Jika Anda ingin mengubah atau menghapus label dalam kumpulan data pelatihan, pilih tab **Pelatihan**. Jika tidak, pilih tab **Uji** untuk mengubah atau menghapus label ke kumpulan data pengujian. 

1. Pilih **Mulai pelabelan** untuk masuk ke mode pelabelan.

1. Di bagian **Label** galeri kumpulan data, pilih **Kelola label** untuk membuka kotak dialog **Kelola label**.

1. Pilih label yang ingin Anda edit atau hapus.   
![\[Kelola kotak dialog label yang menampilkan bidang teks untuk menambahkan label baru dan label yang ada bernama “test”, dengan opsi untuk menyimpan atau membatalkan perubahan.\]](http://docs.aws.amazon.com/id_id/rekognition/latest/customlabels-dg/images/change-delete-label.jpg)

   1. Jika Anda memilih ikon hapus (X), label akan dihapus dari daftar.

   1. Jika Anda ingin mengubah label, pilih ikon edit (pensil dan paper pad) dan masukkan nama label baru di kotak edit. 

1. Pilih **Simpan** untuk menyimpan perubahan Anda.

## Mengelola Label (SDK)
<a name="md-labels-sdk"></a>

Tidak ada API unik yang mengelola label dataset. Jika Anda membuat kumpulan data dengan`CreateDataset`, label yang ditemukan di file manifes atau kumpulan data yang disalin, buat kumpulan label awal. Jika Anda menambahkan lebih banyak gambar dengan `UpdateDatasetEntries` API, label baru yang ditemukan di entri akan ditambahkan ke kumpulan data. Untuk informasi selengkapnya, lihat [Menambahkan lebih banyak gambar (SDK)](md-add-images.md#md-add-images-sdk). Untuk menghapus label dari kumpulan data, Anda harus menghapus semua anotasi label dalam kumpulan data.

**Untuk menghapus label dari kumpulan data**

1. Hubungi `ListDatasetEntries` untuk mendapatkan entri dataset. Untuk kode sampel, lihat [Daftar entri kumpulan data (SDK)](md-listing-dataset-entries-sdk.md).

1. Dalam file, hapus anotasi label apa pun. 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). 

1. Gunakan file untuk memperbarui kumpulan data dengan `UpdateDatasetEntries` API. Untuk informasi selengkapnya, lihat [Menambahkan lebih banyak gambar (SDK)](md-add-images.md#md-add-images-sdk).

# Menetapkan label tingkat gambar ke gambar
<a name="md-assign-image-level-labels"></a>

Anda menggunakan label tingkat gambar untuk melatih model yang mengklasifikasikan gambar ke dalam kategori. Label tingkat gambar menunjukkan bahwa gambar berisi objek, adegan, atau konsep. Misalnya, gambar berikut menunjukkan sungai. Jika model Anda mengklasifikasikan gambar sebagai berisi sungai, Anda akan menambahkan label tingkat gambar *sungai*. Untuk informasi selengkapnya, lihat [Mengarahkan kumpulan data](md-dataset-purpose.md). 

![\[Danau memantulkan gunung dan awan di air yang tenang saat matahari terbenam atau matahari terbit.\]](http://docs.aws.amazon.com/id_id/rekognition/latest/customlabels-dg/images/pateros.jpg)


Dataset yang berisi label tingkat gambar, membutuhkan setidaknya dua label yang ditentukan. Setiap gambar membutuhkan setidaknya satu label yang ditetapkan yang mengidentifikasi objek, adegan, atau konsep dalam gambar.

**Untuk menetapkan label tingkat gambar ke gambar (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 gunakan. Halaman detail untuk proyek Anda ditampilkan.

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

1. Jika Anda ingin menambahkan label ke kumpulan data pelatihan, pilih tab **Pelatihan**. Jika tidak, pilih tab **Uji** untuk menambahkan label ke kumpulan data pengujian. 

1. Pilih **Mulai pelabelan** untuk masuk ke mode pelabelan.

1. Di galeri gambar, pilih satu atau beberapa gambar yang ingin Anda tambahkan labelnya. Anda hanya dapat memilih gambar pada satu halaman pada satu waktu. Untuk memilih rentang gambar yang berdekatan pada halaman:

   1. Pilih gambar pertama dalam kisaran.

   1. Tekan dan tahan tombol shift.

   1. Pilih rentang gambar terakhir. Gambar antara gambar pertama dan kedua juga dipilih. 

   1. Lepaskan tombol shift.

1. Pilih **Tetapkan label tingkat gambar**. 

1. Dalam kotak dialog **Tetapkan label tingkat gambar ke gambar yang dipilih**, pilih label yang ingin Anda tetapkan ke gambar atau gambar.

1. Pilih **Tetapkan** untuk menetapkan label pada gambar.

1. Ulangi pelabelan hingga setiap gambar dianotasi dengan label yang diperlukan.

1. Pilih **Simpan perubahan** untuk menyimpan perubahan Anda.

## Tetapkan label tingkat gambar (SDK)
<a name="md-assign-image-level-labels-sdk"></a>

Anda dapat menggunakan `UpdateDatasetEntries` API untuk menambahkan atau memperbarui label tingkat gambar yang ditetapkan ke gambar. `UpdateDatasetEntries`mengambil satu atau lebih baris JSON. Setiap JSON Line mewakili satu gambar. Untuk gambar dengan label tingkat gambar, Garis JSON 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"}}
```

`source-ref`Bidang menunjukkan lokasi gambar. Garis JSON juga menyertakan label tingkat gambar yang ditetapkan ke gambar. Untuk informasi selengkapnya, lihat [Mengimpor label tingkat gambar dalam file manifes](md-create-manifest-file-classification.md).

**Untuk menetapkan label tingkat gambar ke gambar**

1. Dapatkan JSON Line get untuk gambar yang ada dengan menggunakan. `ListDatasetEntries` Untuk `source-ref` bidang, tentukan lokasi gambar yang ingin Anda tetapkan labelnya. Untuk informasi selengkapnya, lihat [Daftar entri kumpulan data (SDK)](md-listing-dataset-entries-sdk.md). 

1. Perbarui JSON Line yang dikembalikan pada langkah sebelumnya menggunakan informasi di[Mengimpor label tingkat gambar dalam file manifes](md-create-manifest-file-classification.md).

1. Panggil `UpdateDatasetEntries` untuk memperbarui gambar. Untuk informasi selengkapnya, lihat [Menambahkan lebih banyak gambar ke kumpulan data](md-add-images.md).

# Pelabelan objek dengan kotak pembatas
<a name="md-localize-objects"></a>

Jika Anda ingin model Anda mendeteksi lokasi objek dalam gambar, Anda harus mengidentifikasi apa objek itu dan di mana objek itu berada dalam gambar. Kotak pembatas adalah kotak yang mengisolasi objek dalam gambar. Anda menggunakan kotak pembatas untuk melatih model untuk mendeteksi objek yang berbeda dalam gambar yang sama. Anda mengidentifikasi objek dengan menetapkan label ke kotak pembatas. 

**catatan**  
Jika Anda melatih model untuk menemukan objek, adegan, dan konsep dengan label tingkat gambar, Anda tidak perlu melakukan langkah ini.

Misalnya, jika Anda ingin melatih model yang mendeteksi perangkat Amazon Echo Dot, Anda menggambar kotak pembatas di sekitar setiap Echo Dot dalam gambar dan menetapkan label bernama *Echo* Dot ke kotak pembatas. Gambar berikut menunjukkan kotak pembatas di sekitar perangkat Echo Dot. Gambar juga berisi Amazon Echo tanpa kotak pembatas.

![\[Amazon Echo Dot dan perangkat Echo, dengan kotak pembatas di sekitar Echo Dot.\]](http://docs.aws.amazon.com/id_id/rekognition/latest/customlabels-dg/images/dot.jpg)


## Temukan objek dengan kotak pembatas (Konsol)
<a name="md-localize-objects-console"></a>

 Dalam prosedur ini, Anda menggunakan konsol untuk menggambar kotak pembatas di sekitar objek dalam gambar Anda. Anda juga dapat mengidentifikasi objek dalam gambar dengan menetapkan label ke kotak pembatas. 

**catatan**  
Anda tidak dapat menggunakan browser Safari untuk menambahkan kotak pembatas ke gambar. Untuk browser yang didukung, lihat[Menyiapkan Label Kustom Rekognition Amazon](setting-up.md).

Sebelum Anda dapat menambahkan kotak pembatas, Anda harus menambahkan setidaknya satu label ke kumpulan data. Untuk informasi selengkapnya, lihat [Tambahkan label baru (Konsol)](md-labels.md#md-add-new-labels).

****

**Untuk menambahkan kotak pembatas ke gambar (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 gunakan. Halaman detail untuk proyek Anda ditampilkan.

1. Pada halaman detail proyek, pilih **gambar Label**

1. Jika Anda ingin menambahkan kotak pembatas ke gambar kumpulan data pelatihan Anda, pilih tab **Pelatihan**. Jika tidak, pilih tab **Uji** untuk menambahkan kotak pembatas ke gambar kumpulan data pengujian. 

1. Pilih **Mulai pelabelan** untuk masuk ke mode pelabelan.

1. Di galeri gambar, pilih gambar yang ingin Anda tambahkan kotak pembatas.

1. Pilih **Draw bounding box**. Serangkaian tips ditampilkan sebelum editor kotak pembatas ditampilkan.

1. Di panel **Label** di sebelah kanan, pilih label yang ingin Anda tetapkan ke kotak pembatas.

1. Dalam alat gambar, letakkan pointer Anda di area kiri atas objek yang diinginkan.

1. Tekan tombol kiri mouse dan gambar kotak di sekitar objek. Cobalah untuk menggambar kotak pembatas sedekat mungkin dengan objek. 

1. Lepaskan tombol mouse. Kotak pembatas disorot.

1. Pilih **Berikutnya** jika Anda memiliki lebih banyak gambar untuk diberi label. Jika tidak, pilih **Selesai** untuk menyelesaikan pelabelan.  
![\[UI untuk menggambar kotak pembatas di sekitar gambar, gambarnya adalah Amazon Echo dan speaker pintar Echo Dot pada permukaan kayu.\]](http://docs.aws.amazon.com/id_id/rekognition/latest/customlabels-dg/images/draw-bounding-box.png)

1. Ulangi langkah 1-7 sampai Anda telah membuat kotak pembatas di setiap gambar yang berisi objek. 

1. Pilih **Simpan perubahan** untuk menyimpan perubahan Anda. 

1. Pilih **Keluar** untuk keluar dari mode pelabelan.

## Temukan objek dengan kotak pembatas (SDK)
<a name="md-localize-objects-sdk"></a>

Anda dapat menggunakan `UpdateDatasetEntries` API untuk menambahkan atau memperbarui informasi lokasi objek untuk gambar. `UpdateDatasetEntries`mengambil satu atau lebih baris JSON. Setiap JSON Line mewakili satu gambar. Untuk lokalisasi objek, JSON Line terlihat mirip dengan 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"}}
```

`source-ref`Bidang menunjukkan lokasi gambar. Garis JSON juga menyertakan kotak pembatas berlabel untuk setiap objek pada gambar. Untuk informasi selengkapnya, lihat [Lokalisasi objek dalam file manifes](md-create-manifest-file-object-detection.md).

**Untuk menetapkan kotak pembatas ke gambar**

1. Dapatkan JSON Line get untuk gambar yang ada dengan menggunakan. `ListDatasetEntries` Untuk `source-ref` bidang, tentukan lokasi gambar yang ingin Anda tetapkan label tingkat gambar. Untuk informasi selengkapnya, lihat [Daftar entri kumpulan data (SDK)](md-listing-dataset-entries-sdk.md).

1. Perbarui JSON Line yang dikembalikan pada langkah sebelumnya menggunakan informasi di[Lokalisasi objek dalam file manifes](md-create-manifest-file-object-detection.md).

1. Panggil `UpdateDatasetEntries` untuk memperbarui gambar. Untuk informasi selengkapnya, lihat [Menambahkan lebih banyak gambar ke kumpulan data](md-add-images.md).

# Debugging kumpulan data
<a name="debugging-datasets"></a>

Selama pembuatan dataset ada dua jenis kesalahan yang dapat terjadi - *kesalahan terminal dan kesalahan* *non-terminal*. Kesalahan terminal dapat menghentikan pembuatan atau pembaruan kumpulan data. Kesalahan non-terminal tidak menghentikan pembuatan atau pembaruan kumpulan data.

**Topics**
+ [Kesalahan kumpulan data terminal debugging](debugging-datasets-terminal-errors.md)
+ [Mendebug kesalahan kumpulan data non-terminal](debugging-datasets-non-terminal-errors.md)

# Kesalahan kumpulan data terminal debugging
<a name="debugging-datasets-terminal-errors"></a>

 Ada dua jenis kesalahan terminal — kesalahan file yang menyebabkan pembuatan kumpulan data gagal, dan kesalahan konten yang dihapus oleh Label Kustom Rekognition Amazon dari kumpulan data. Pembuatan dataset gagal jika ada terlalu banyak kesalahan konten.

**Topics**
+ [Kesalahan file terminal](#debugging-datasets-terminal-file-errors)
+ [Kesalahan konten terminal](#debugging-datasets-terminal-content-errors)

## Kesalahan file terminal
<a name="debugging-datasets-terminal-file-errors"></a>

Berikut ini adalah kesalahan file. Anda bisa mendapatkan informasi tentang kesalahan file dengan menelepon `DescribeDataset` dan memeriksa `Status` dan `StatusMessage` bidang. Untuk kode sampel, lihat [Menjelaskan kumpulan data (SDK)](md-describing-dataset-sdk.md).
+ [ERROR\$1MANIFEST\$1INACCESSIBLE\$1OR\$1UNSUPPORTED\$1FORMAT](#md-error-status-ERROR_MANIFEST_INACCESSIBLE_OR_UNSUPPORTED_FORMAT)
+ [ERROR\$1MANIFEST\$1SIZE\$1TOO\$1LARGE](#md-error-status-ERROR_MANIFEST_SIZE_TOO_LARGE).
+ [ERROR\$1MANIFEST\$1ROWS\$1EXCEEDS\$1MAXIMUM](#md-error-status-ERROR_MANIFEST_ROWS_EXCEEDS_MAXIMUM)
+ [ERROR\$1INVALID\$1PERMISSIONS\$1MANIFEST\$1S3\$1BUCKET](#md-error-status-ERROR_INVALID_PERMISSIONS_MANIFEST_S3_BUCKET)
+ [ERROR\$1TOO\$1MANY\$1RECORDS\$1IN\$1ERROR](#md-error-status-ERROR_TOO_MANY_RECORDS_IN_ERROR)
+ [ERROR\$1MANIFEST\$1TOO\$1MANY\$1LABELS](#md-error-status-ERROR_MANIFEST_TOO_MANY_LABELS)
+ [ERROR\$1INSUFFICIENT\$1IMAGES\$1PER\$1LABEL\$1FOR\$1DISTRIBUSIKAN](#md-error-status-ERROR_INSUFFICIENT_IMAGES_PER_LABEL_FOR_DISTRIBUTE)

### ERROR\$1MANIFEST\$1INACCESSIBLE\$1OR\$1UNSUPPORTED\$1FORMAT
<a name="md-error-status-ERROR_MANIFEST_INACCESSIBLE_OR_UNSUPPORTED_FORMAT"></a>

#### Pesan kesalahan
<a name="md-error-message-ERROR_MANIFEST_INACCESSIBLE_OR_UNSUPPORTED_FORMAT"></a>

Ekstensi atau konten file manifes tidak valid.

File manifes pelatihan atau pengujian tidak memiliki ekstensi file atau isinya tidak valid. 

**Untuk memperbaiki kesalahan *ERROR\$1MANIFEST\$1INACCESSIBLE\$1OR\$1UNSUPPORTED\$1FORMAT***
+ Periksa kemungkinan penyebab berikut dalam pelatihan dan pengujian file manifes.
  + File manifes tidak memiliki ekstensi file. Dengan konvensi ekstensi file adalah`.manifest`.
  +  Bucket atau kunci Amazon S3 untuk file manifes tidak dapat ditemukan.

### ERROR\$1MANIFEST\$1SIZE\$1TOO\$1LARGE
<a name="md-error-status-ERROR_MANIFEST_SIZE_TOO_LARGE"></a>

#### Pesan kesalahan
<a name="md-error-message-ERROR_MANIFEST_SIZE_TOO_LARGE"></a>

Ukuran file manifes melebihi ukuran maksimum yang didukung.

Ukuran file manifes pelatihan atau pengujian (dalam byte) terlalu besar. Untuk informasi selengkapnya, lihat [Pedoman dan kuota di Label Kustom Rekognition Amazon](limits.md). File manifes dapat memiliki kurang dari jumlah maksimum JSON Lines dan masih melebihi ukuran file maksimum.

Anda tidak dapat menggunakan konsol Label Kustom Rekognition Amazon untuk memperbaiki *kesalahan Ukuran file manifes melebihi ukuran maksimum yang didukung*.

**Untuk memperbaiki kesalahan *ERROR\$1MANIFEST\$1SIZE\$1TOO\$1LARGE***

1. Periksa manifes pelatihan dan pengujian mana yang melebihi ukuran file maksimum.

1. Kurangi jumlah JSON Lines dalam file manifes yang terlalu besar. Untuk informasi selengkapnya, lihat [Membuat file manifes](md-create-manifest-file.md).

### ERROR\$1MANIFEST\$1ROWS\$1EXCEEDS\$1MAXIMUM
<a name="md-error-status-ERROR_MANIFEST_ROWS_EXCEEDS_MAXIMUM"></a>

#### Pesan kesalahan
<a name="md-error-message-ERROR_MANIFEST_ROWS_EXCEEDS_MAXIMUM"></a>

File manifes memiliki terlalu banyak baris.

#### Informasi selengkapnya
<a name="md-error-description-ERROR_MANIFEST_ROWS_EXCEEDS_MAXIMUM"></a>

Jumlah Garis JSON (jumlah gambar) dalam file manifes lebih besar dari batas yang diizinkan. Batasnya berbeda untuk model tingkat gambar dan model lokasi objek. Untuk informasi selengkapnya, lihat [Pedoman dan kuota di Label Kustom Rekognition Amazon](limits.md). 

Kesalahan JSON Line divalidasi hingga jumlah JSON Lines mencapai batas. `ERROR_MANIFEST_ROWS_EXCEEDS_MAXIMUM` 

Anda tidak dapat menggunakan konsol Label Kustom Rekognition Amazon untuk memperbaiki kesalahan. `ERROR_MANIFEST_ROWS_EXCEEDS_MAXIMUM`

**Untuk memperbaiki `ERROR_MANIFEST_ROWS_EXCEEDS_MAXIMUM`**
+ Kurangi jumlah Garis JSON dalam manifes. Untuk informasi selengkapnya, lihat [Membuat file manifes](md-create-manifest-file.md).



### ERROR\$1INVALID\$1PERMISSIONS\$1MANIFEST\$1S3\$1BUCKET
<a name="md-error-status-ERROR_INVALID_PERMISSIONS_MANIFEST_S3_BUCKET"></a>

#### Pesan kesalahan
<a name="md-error-message-ERROR_INVALID_PERMISSIONS_MANIFEST_S3_BUCKET"></a>

Izin bucket S3 salah.

Label Kustom Rekognition Amazon tidak memiliki izin ke satu atau beberapa bucket yang berisi file manifes pelatihan dan pengujian. 

Anda tidak dapat menggunakan konsol Label Kustom Rekognition Amazon untuk memperbaiki kesalahan ini.

**Untuk memperbaiki kesalahan *ERROR\$1INVALID\$1PERMISSIONS\$1MANIFEST\$1S3\$1BUCKET***
+ Periksa izin untuk bucket yang berisi manifes pelatihan dan pengujian. Untuk informasi selengkapnya, lihat [Langkah 2: Siapkan izin konsol Amazon Rekognition Custom Labels](su-console-policy.md).

### ERROR\$1TOO\$1MANY\$1RECORDS\$1IN\$1ERROR
<a name="md-error-status-ERROR_TOO_MANY_RECORDS_IN_ERROR"></a>

#### Pesan kesalahan
<a name="md-error-message-ERROR_TOO_MANY_RECORDS_IN_ERROR"></a>

 File manifes memiliki terlalu banyak kesalahan terminal.

**Untuk memperbaiki `ERROR_TOO_MANY_RECORDS_IN_ERROR`**
+ Kurangi jumlah Garis JSON (gambar) dengan kesalahan konten terminal. Untuk informasi selengkapnya, lihat [Kesalahan konten manifes terminal](tm-debugging-aggregate-errors.md). 

Anda tidak dapat menggunakan konsol Label Kustom Rekognition Amazon untuk memperbaiki kesalahan ini.

### ERROR\$1MANIFEST\$1TOO\$1MANY\$1LABELS
<a name="md-error-status-ERROR_MANIFEST_TOO_MANY_LABELS"></a>

#### Pesan kesalahan
<a name="md-error-message-ERROR_MANIFEST_TOO_MANY_LABELS"></a>

File manifes memiliki terlalu banyak label.

##### Informasi selengkapnya
<a name="md-error-description-ERROR_MANIFEST_TOO_MANY_LABELS"></a>

Jumlah label unik dalam manifes (dataset) lebih dari batas yang diizinkan. Jika kumpulan data pelatihan dibagi untuk membuat kumpulan data pengujian, jumlah label ditentukan setelah pemisahan. 

**Untuk memperbaiki ERROR\$1MANIFEST\$1TOO\$1MANY\$1LABELS (Konsol)**
+ Hapus label dari kumpulan data. Untuk informasi selengkapnya, lihat [Mengelola label](md-labels.md). Label secara otomatis dihapus dari gambar dan kotak pembatas di kumpulan data Anda.



**Untuk memperbaiki ERROR\$1MANIFEST\$1TOO\$1MANY\$1LABELS (JSON Line)**
+ Manifestasi dengan garis JSON tingkat gambar - Jika gambar memiliki label tunggal, hapus Garis JSON untuk gambar yang menggunakan label yang diinginkan. Jika JSON Line berisi beberapa label, hapus hanya objek JSON untuk label yang diinginkan. Untuk informasi selengkapnya, lihat [Menambahkan beberapa label tingkat gambar ke gambar](md-create-manifest-file-classification.md#md-dataset-purpose-classification-multiple-labels). 

  Manifestasi dengan lokasi objek JSON Lines - Hapus kotak pembatas dan informasi label terkait untuk label yang ingin Anda hapus. Lakukan ini untuk setiap JSON Line yang berisi label yang diinginkan. Anda perlu menghapus label dari `class-map` array dan objek yang sesuai dalam `objects` dan `annotations` array. Untuk informasi selengkapnya, lihat [Lokalisasi objek dalam file manifes](md-create-manifest-file-object-detection.md).

### ERROR\$1INSUFFICIENT\$1IMAGES\$1PER\$1LABEL\$1FOR\$1DISTRIBUSIKAN
<a name="md-error-status-ERROR_INSUFFICIENT_IMAGES_PER_LABEL_FOR_DISTRIBUTE"></a>

#### Pesan kesalahan
<a name="md-error-message-ERROR_MANIFEST_TOO_MANY_LABELS"></a>

File manifes tidak memiliki cukup gambar berlabel untuk mendistribusikan kumpulan data.



Distribusi kumpulan data terjadi saat Amazon Rekognition Custom Labels membagi kumpulan data pelatihan untuk membuat kumpulan data pengujian. Anda juga dapat membagi kumpulan data dengan memanggil `DistributeDatasetEntries` API.

**Untuk memperbaiki kesalahan *ERROR\$1MANIFEST\$1TOO\$1MANY\$1LABELS***
+ Tambahkan lebih banyak gambar berlabel ke kumpulan data pelatihan

## Kesalahan konten terminal
<a name="debugging-datasets-terminal-content-errors"></a>

Berikut ini adalah kesalahan konten terminal. Selama pembuatan kumpulan data, gambar yang memiliki kesalahan konten terminal dihapus dari kumpulan data. Dataset masih dapat digunakan untuk pelatihan. Jika ada terlalu banyak kesalahan konten, dataset/update gagal. Kesalahan konten terminal yang terkait dengan operasi kumpulan data tidak ditampilkan di konsol atau dikembalikan dari `DescribeDataset` atau API lainnya. Jika Anda melihat bahwa gambar atau anotasi hilang dari kumpulan data Anda, periksa file manifes kumpulan data Anda untuk masalah berikut: 
+ Panjang garis JSON terlalu panjang. Panjang maksimum adalah 100.000 karakter.
+ `source-ref`Nilai hilang dari JSON Line.
+ Format `source-ref` nilai dalam JSON Line tidak valid.
+ Isi dari JSON Line tidak valid.
+ Nilai `source-ref` bidang muncul lebih dari sekali. Gambar hanya dapat direferensikan sekali dalam kumpulan data.

Untuk informasi tentang `source-ref` lapangan, lihat[Membuat file manifes](md-create-manifest-file.md). 

# Mendebug kesalahan kumpulan data non-terminal
<a name="debugging-datasets-non-terminal-errors"></a>

Berikut ini adalah kesalahan non-terminal yang dapat terjadi selama pembuatan atau pembaruan dataset. Kesalahan ini dapat membatalkan seluruh JSON Line atau membatalkan anotasi dalam JSON Line. Jika JSON Line memiliki kesalahan, itu tidak digunakan untuk pelatihan. Jika anotasi dalam JSON Line memiliki kesalahan, JSON Line masih digunakan untuk pelatihan, tetapi tanpa anotasi yang rusak. Untuk informasi lebih lanjut tentang JSON Lines, lihat[Membuat file manifes](md-create-manifest-file.md).

Anda dapat mengakses kesalahan non-terminal dari konsol dan dengan memanggil `ListDatasetEntries` API. Untuk informasi selengkapnya, lihat [Daftar entri kumpulan data (SDK)](md-listing-dataset-entries-sdk.md).

Kesalahan berikut juga dikembalikan selama pelatihan. Kami menyarankan Anda memperbaiki kesalahan ini sebelum melatih model Anda.Untuk informasi lebih lanjut, lihat. [Kesalahan Validasi Jalur JSON Non-Terminal](tm-debugging-json-line-errors.md)
+ [ERROR\$1NO\$1LABEL\$1ATTRIBUTES](tm-debugging-json-line-errors.md#tm-error-ERROR_NO_LABEL_ATTRIBUTES)
+ [ERROR\$1INVALID\$1LABEL\$1ATTRIBUTE\$1FORMAT](tm-debugging-json-line-errors.md#tm-error-ERROR_INVALID_LABEL_ATTRIBUTE_FORMAT)
+ [ERROR\$1INVALID\$1LABEL\$1ATTRIBUTE\$1METADATA\$1FORMAT](tm-debugging-json-line-errors.md#tm-error-ERROR_INVALID_LABEL_ATTRIBUTE_METADATA_FORMAT)
+ [ERROR\$1NO\$1VALID\$1LABEL\$1ATTRIBUTES](tm-debugging-json-line-errors.md#tm-error-ERROR_NO_VALID_LABEL_ATTRIBUTES)
+ [ERROR\$1INVALID\$1BOUNDING\$1BOX](tm-debugging-json-line-errors.md#tm-error-ERROR_INVALID_BOUNDING_BOX)
+ [ERROR\$1INVALID\$1IMAGE\$1DIMENSION](tm-debugging-json-line-errors.md#tm-error-ERROR_INVALID_IMAGE_DIMENSION)
+ [ERROR\$1BOUNDING\$1BOX\$1TOO\$1SMALL](tm-debugging-json-line-errors.md#tm-error-ERROR_BOUNDING_BOX_TOO_SMALL)
+ [ERROR\$1NO\$1VALID\$1ANNOTATIONS](tm-debugging-json-line-errors.md#tm-error-ERROR_NO_VALID_ANNOTATIONS)
+ [ERROR\$1MISSING\$1BOUNDING\$1BOX\$1CONFIDENCE](tm-debugging-json-line-errors.md#tm-error-ERROR_MISSING_BOUNDING_BOX_CONFIDENCE)
+ [ERROR\$1MISSING\$1CLASS\$1MAP\$1ID](tm-debugging-json-line-errors.md#tm-error-ERROR_MISSING_CLASS_MAP_ID)
+ [ERROR\$1TOO\$1MANY\$1BOUNDING\$1BOXES](tm-debugging-json-line-errors.md#tm-error-ERROR_TOO_MANY_BOUNDING_BOXES)
+ [ERROR\$1UNSUPPORTED\$1USE\$1CASE\$1TYPE](tm-debugging-json-line-errors.md#tm-error-ERROR_UNSUPPORTED_USE_CASE_TYPE)
+ [ERROR\$1INVALID\$1LABEL\$1NAME\$1LENGTH](tm-debugging-json-line-errors.md#tm-error-ERROR_INVALID_LABEL_NAME_LENGTH)

## Mengakses kesalahan non-terminal
<a name="debugging-dataset-access-non-terminal-errors"></a>

Anda dapat menggunakan konsol untuk mengetahui gambar mana dalam kumpulan data yang memiliki kesalahan non-terminal. Anda juga dapat memanggil, memanggil `ListDatasetEntries` API untuk mendapatkan pesan kesalahan. Untuk informasi selengkapnya, lihat [Daftar entri kumpulan data (SDK)](md-listing-dataset-entries-sdk.md). 

**Untuk mengakses kesalahan non-terminal (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 gunakan. Halaman detail untuk proyek Anda ditampilkan.

1. Jika Anda ingin melihat kesalahan non-terminal dalam kumpulan data pelatihan, pilih tab **Pelatihan**. Jika tidak, pilih tab **Uji** untuk melihat kesalahan non-terminal dalam kumpulan data pengujian Anda. 

1. Di bagian **Label** galeri kumpulan data, pilih **Kesalahan**. Galeri dataset difilter untuk hanya menampilkan gambar dengan kesalahan.

1. Pilih **Kesalahan** di bawah gambar untuk melihat kode kesalahan. Gunakan informasi di [Kesalahan Validasi Jalur JSON Non-Terminal](tm-debugging-json-line-errors.md) untuk memperbaiki kesalahan.  
![\[Dialog kesalahan yang menampilkan “ERROR_UNSUPPORTED_USE_CASE_TYPE” dan “ERROR_NO_VALID_LABEL_ATTRIBUTES” di bawah “Kesalahan catatan set data”.\]](http://docs.aws.amazon.com/id_id/rekognition/latest/customlabels-dg/images/dataset-non-terminal-error.jpg)