Deteksi Objek - MxNet - Amazon SageMaker

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

Deteksi Objek - MxNet

Algoritma Amazon SageMaker Object Detection - MXNet mendeteksi dan mengklasifikasikan objek dalam gambar menggunakan jaringan saraf dalam tunggal. Ini adalah algoritma pembelajaran yang diawasi yang mengambil gambar sebagai input dan mengidentifikasi semua contoh objek dalam adegan gambar. Objek dikategorikan ke dalam salah satu kelas dalam koleksi tertentu dengan skor kepercayaan bahwa itu milik kelas. Lokasi dan skalanya pada gambar ditunjukkan oleh kotak pembatas persegi panjang. Ini menggunakan kerangka kerja Single Shot multibox Detector (SSD) dan mendukung dua jaringan dasar: VGG dan. ResNet Jaringan dapat dilatih dari awal, atau dilatih dengan model yang telah dilatih sebelumnya pada ImageNetdataset.

Antarmuka Input/Output untuk Algoritma Deteksi Objek

Algoritma Deteksi SageMaker Objek mendukung jenis konten RecorDio (application/x-recordio) dan image (image/pngimage/jpeg,, danapplication/x-image) untuk pelatihan dalam mode file dan mendukung RecorDio (application/x-recordio) untuk pelatihan dalam mode pipa. Namun Anda juga dapat berlatih dalam mode pipa menggunakan file gambar (image/png,, danapplication/x-image)image/jpeg, tanpa membuat file RecorDo, dengan menggunakan format manifes yang diperbesar. Format input yang direkomendasikan untuk algoritma deteksi SageMaker objek Amazon adalah Apache MxNet Recordio. Namun, Anda juga dapat menggunakan gambar mentah dalam format.jpg atau .png. Algoritma hanya mendukung application/x-image inferensi.

catatan

Untuk mempertahankan interoperabilitas yang lebih baik dengan kerangka kerja pembelajaran mendalam yang ada, ini berbeda dari format data protobuf yang biasa digunakan oleh algoritme Amazon lainnya. SageMaker

Lihat Notebook Contoh Deteksi Objek untuk detail selengkapnya tentang format data.

Berlatih dengan Format RecorDio

Jika Anda menggunakan format RecorDo untuk pelatihan, tentukan saluran kereta dan validasi sebagai nilai untuk InputDataConfig parameter permintaan. CreateTrainingJob Tentukan satu file RecorDo (.rec) di saluran kereta dan satu file Recordio di saluran validasi. Atur jenis konten untuk kedua saluranapplication/x-recordio. Contoh cara menghasilkan file RecorDo dapat ditemukan di notebook sampel deteksi objek. Anda juga dapat menggunakan alat dari GluonCV MxNet untuk menghasilkan file Recordio untuk kumpulan data populer seperti PASCAL Visual Object Classes dan Common Objects in Context (COCO).

Berlatih dengan Format Gambar

Jika Anda menggunakan format gambar untuk pelatihan, tentukan trainvalidation,train_annotation,, dan validation_annotation saluran sebagai nilai untuk InputDataConfig parameter CreateTrainingJobpermintaan. Tentukan file data gambar individu (.jpg atau.png) untuk saluran kereta dan validasi. Untuk data anotasi, Anda dapat menggunakan format JSON. Tentukan file.json yang sesuai di saluran train_annotation danvalidation_annotation. Atur jenis konten untuk keempat saluran ke image/png atau image/jpeg berdasarkan jenis gambar. Anda juga dapat menggunakan jenis konten application/x-image ketika dataset Anda berisi gambar.jpg dan .png. Berikut ini adalah contoh dari file.json.

{ "file": "your_image_directory/sample_image1.jpg", "image_size": [ { "width": 500, "height": 400, "depth": 3 } ], "annotations": [ { "class_id": 0, "left": 111, "top": 134, "width": 61, "height": 128 }, { "class_id": 0, "left": 161, "top": 250, "width": 79, "height": 143 }, { "class_id": 1, "left": 101, "top": 185, "width": 42, "height": 130 } ], "categories": [ { "class_id": 0, "name": "dog" }, { "class_id": 1, "name": "cat" } ] }

Setiap gambar membutuhkan file.json untuk anotasi, dan file.json harus memiliki nama yang sama dengan gambar yang sesuai. Nama file.json di atas harus “sample_image1.json”. Ada empat properti dalam file anotasi.json. Properti “file” menentukan path relatif dari file gambar. Misalnya, jika gambar pelatihan Anda dan file.json yang sesuai disimpan di s3://your_bucket /train/sample_image dan s3://your_bucket /train_annotation, tentukan jalur untuk saluran kereta dan train_annotation Anda sebagai s3://your_bucket /train dan s3://your_bucket /train_annotation, masing-masing.

Dalam file.json, jalur relatif untuk gambar bernama sample_image1.jpg harus sample_image/sample_image1.jpg. "image_size"Properti menentukan dimensi gambar keseluruhan. Algoritma deteksi SageMaker objek saat ini hanya mendukung gambar 3-channel. "annotations"Properti menentukan kategori dan kotak pembatas untuk objek dalam gambar. Setiap objek dianotasi oleh "class_id" indeks dan oleh empat koordinat kotak pembatas ("left",,,"top"). "width" "height" Nilai "left" (koordinat x) dan "top" (koordinat y) mewakili sudut kiri atas kotak pembatas. Nilai "width" (koordinat x) dan "height" (koordinat y) mewakili dimensi kotak pembatas. Asal (0, 0) adalah sudut kiri atas dari seluruh gambar. Jika Anda memiliki beberapa objek dalam satu gambar, semua anotasi harus disertakan dalam satu file.json. "categories"Properti menyimpan pemetaan antara indeks kelas dan nama kelas. Indeks kelas harus diberi nomor berturut-turut dan penomoran harus dimulai dengan 0. "categories"Properti ini opsional untuk file anotasi.json

Berlatih dengan Augmented Manifest Image Format

Format manifes yang diperbesar memungkinkan Anda melakukan pelatihan dalam mode pipa menggunakan file gambar tanpa perlu membuat file RecorDo. Anda perlu menentukan saluran kereta dan validasi sebagai nilai untuk InputDataConfig parameter CreateTrainingJobpermintaan. Saat menggunakan format, file manifes S3 perlu dibuat yang berisi daftar gambar dan anotasi yang sesuai. Format file manifes harus dalam format JSON Lines di mana setiap baris mewakili satu sampel. Gambar ditentukan menggunakan 'source-ref' tag yang menunjuk ke lokasi S3 gambar. Anotasi disediakan di bawah nilai "AttributeNames" parameter sebagaimana ditentukan dalam CreateTrainingJobpermintaan. Ini juga dapat berisi metadata tambahan di bawah metadata tag, tetapi ini diabaikan oleh algoritma. Dalam contoh berikut, "AttributeNames yang terkandung dalam daftar["source-ref", "bounding-box"]:

{"source-ref": "s3://your_bucket/image1.jpg", "bounding-box":{"image_size":[{ "width": 500, "height": 400, "depth":3}], "annotations":[{"class_id": 0, "left": 111, "top": 134, "width": 61, "height": 128}, {"class_id": 5, "left": 161, "top": 250, "width": 80, "height": 50}]}, "bounding-box-metadata":{"class-map":{"0": "dog", "5": "horse"}, "type": "groundtruth/object-detection"}} {"source-ref": "s3://your_bucket/image2.jpg", "bounding-box":{"image_size":[{ "width": 400, "height": 300, "depth":3}], "annotations":[{"class_id": 1, "left": 100, "top": 120, "width": 43, "height": 78}]}, "bounding-box-metadata":{"class-map":{"1": "cat"}, "type": "groundtruth/object-detection"}}

Urutan "AttributeNames" dalam file input penting saat melatih algoritma Deteksi Objek. Ini menerima data pipa dalam urutan tertentu, dengan image pertama, diikuti oleh. annotations Jadi "AttributeNames" dalam contoh ini disediakan dengan yang "source-ref" pertama, diikuti oleh"bounding-box". Saat menggunakan Object Detection dengan Augmented Manifest, nilai parameter RecordWrapperType harus ditetapkan sebagai"RecordIO".

Untuk informasi selengkapnya tentang file manifes tambahan, lihatMenyediakan Metadata Set Data untuk Pekerjaan Pelatihan dengan File Manifes yang Ditambah.

Pelatihan Inkremental

Anda juga dapat menyemai pelatihan model baru dengan artefak dari model yang Anda latih sebelumnya. SageMaker Pelatihan tambahan menghemat waktu pelatihan ketika Anda ingin melatih model baru dengan data yang sama atau serupa. SageMaker model deteksi objek hanya dapat diunggulkan dengan model deteksi objek bawaan lainnya yang dilatih. SageMaker

Untuk menggunakan model yang telah dilatih sebelumnya, dalam CreateTrainingJobpermintaan, tentukan ChannelName sebagai “model” dalam InputDataConfig parameter. Atur saluran ContentType untuk model keapplication/x-sagemaker-model. Hiperparameter input dari model baru dan model terlatih yang Anda unggah ke saluran model harus memiliki pengaturan yang sama untuk parameter base_network dan num_classes input. Parameter ini menentukan arsitektur jaringan. Untuk file model yang telah dilatih sebelumnya, gunakan artefak model terkompresi (dalam format.tar.gz) keluaran oleh. SageMaker Anda dapat menggunakan format RecorDio atau gambar untuk input data.

Untuk informasi lebih lanjut tentang pelatihan tambahan dan untuk instruksi tentang cara menggunakannya, lihatGunakan Pelatihan Inkremental di Amazon SageMaker.

Rekomendasi Instans EC2 untuk Algoritma Deteksi Objek

Algoritma deteksi objek mendukung keluarga instance GPU P2, P3, G4dn, dan G5. Sebaiknya gunakan instans GPU dengan lebih banyak memori untuk pelatihan dengan ukuran batch besar. Anda dapat menjalankan algoritma deteksi objek pada pengaturan multi-GPU dan mult-machine untuk pelatihan terdistribusi.

Anda dapat menggunakan instance CPU (seperti C5 dan M5) dan GPU (seperti P3 dan G4dn) untuk inferensi.

Notebook Contoh Deteksi Objek

Untuk contoh buku catatan yang menunjukkan cara menggunakan algoritma Deteksi SageMaker Objek untuk melatih dan meng-host model di

Dataset Caltech Birds (CUB 200 2011) menggunakan algoritma Detektor multibox Single Shot, lihat Deteksi SageMaker Objek Amazon untuk Spesies Burung. Untuk petunjuk cara membuat dan mengakses instance notebook Jupyter yang dapat Anda gunakan untuk menjalankan contoh, lihat. SageMaker Instans SageMaker Notebook Amazon Setelah Anda membuat instance notebook dan membukanya, pilih tab SageMaker Contoh untuk melihat daftar semua SageMaker sampel. Notebook contoh deteksi objek menggunakan algoritma Deteksi Objek terletak di bagian Pengantar Algoritma Amazon. Untuk membuka buku catatan, klik tab Use dan pilih Create copy.

Untuk informasi selengkapnya tentang algoritma Deteksi SageMaker Objek Amazon, lihat posting blog berikut: