Deteksi Objek - MXNet - Amazon SageMaker AI

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

Deteksi Objek - MXNet

Deteksi Objek Amazon SageMaker AI - MXNet algoritma 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 Objek SageMaker AI 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 objek Amazon SageMaker AI 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 AI 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 untuk menghasilkan file Recordio untuk kumpulan data populer seperti PASCAL Visual Object Classes dan Common Objects in Context (COCO). MXNet

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:///train_annotation, tentukan jalur untuk saluran train dan train_annotation Anda sebagai s3:your_bucket///train dan s3:///train_annotation, masing-masing. your_bucket your_bucket

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 objek SageMaker AI saat ini hanya mendukung gambar 3 saluran. "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 seperti yang 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, lihatAugmented Manifest Files untuk Pekerjaan Pelatihan.

Pelatihan Inkremental

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

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 keluaran artefak model terkompresi (dalam format.tar.gz) oleh AI. 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 AI SageMaker .

EC2 Rekomendasi Instance 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 notebook yang menunjukkan cara menggunakan algoritme Deteksi Objek SageMaker AI untuk melatih dan meng-host model di

Dataset Caltech Birds (CUB 200 2011) menggunakan algoritma Detektor multibox Single Shot, lihat Amazon SageMaker AI Object Detection for Bird Species. Untuk petunjuk cara membuat dan mengakses instance notebook Jupyter yang dapat Anda gunakan untuk menjalankan contoh di SageMaker AI, lihat. Instans SageMaker Notebook Amazon Setelah Anda membuat instance notebook dan membukanya, pilih tab Contoh SageMaker AI untuk melihat daftar semua sampel SageMaker AI. 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 Objek Amazon SageMaker AI, lihat posting blog berikut: