Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Algoritma Segmentasi Semantik
Algoritma segmentasi SageMaker semantik menyediakan pendekatan tingkat piksel berbutir halus untuk mengembangkan aplikasi visi komputer. Ini menandai setiap piksel dalam gambar dengan label kelas dari satu set kelas yang telah ditentukan. Penandaan sangat penting untuk memahami adegan, yang sangat penting untuk peningkatan jumlah aplikasi visi komputer, seperti kendaraan self-driving, diagnostik pencitraan medis, dan penginderaan robot.
Sebagai perbandingan, SageMaker Klasifikasi Gambar - MXNet ini adalah algoritma pembelajaran yang diawasi yang hanya menganalisis seluruh gambar, mengklasifikasikannya ke dalam salah satu dari beberapa kategori keluaran. Deteksi Objek - MXNetIni adalah algoritma pembelajaran yang diawasi yang mendeteksi dan mengklasifikasikan semua contoh objek dalam gambar. Ini menunjukkan lokasi dan skala setiap objek dalam gambar dengan kotak pembatas persegi panjang.
Karena algoritma segmentasi semantik mengklasifikasikan setiap piksel dalam sebuah gambar, ia juga memberikan informasi tentang bentuk objek yang terkandung dalam gambar. Output segmentasi direpresentasikan sebagai gambar skala abu-abu, yang disebut topeng segmentasi. Masker segmentasi adalah gambar skala abu-abu dengan bentuk yang sama dengan gambar input.
Algoritma segmentasi SageMaker semantik dibangun menggunakan kerangka MXNet Gluon dan toolkit Gluon CV
Masing-masing dari tiga algoritma memiliki dua komponen yang berbeda:
-
Tulang punggung (atau encoder) —Jaringan yang menghasilkan peta aktivasi fitur yang andal.
-
Dekoder —Jaringan yang membangun topeng segmentasi dari peta aktivasi yang dikodekan.
Anda juga memiliki pilihan tulang punggung untuk algoritma FCN, PSP, dan DeepLab V3:50 atau 101. ResNet ResNet
Untuk menerapkan model terlatih untuk inferensi, gunakan SageMaker layanan hosting. Selama inferensi, Anda dapat meminta topeng segmentasi baik sebagai gambar PNG atau sebagai satu set probabilitas untuk setiap kelas untuk setiap piksel. Anda dapat menggunakan masker ini sebagai bagian dari pipeline yang lebih besar yang mencakup pemrosesan gambar hilir tambahan atau aplikasi lain.
Topik
Notebook Sampel Segmentasi Semantik
Untuk contoh notebook Jupyter yang menggunakan algoritma segmentasi SageMaker semantik untuk melatih model dan menyebarkannya untuk melakukan inferensi, lihat Contoh Segmentasi Semantik.
Untuk melihat daftar semua SageMaker sampel, buat dan buka instance buku catatan, dan pilih tab SageMaker Contoh. Contoh notebook segmentasi semantik terletak di bawah Algoritma Pengantar Amazon. Untuk membuka buku catatan, pilih tab Use, dan pilih Create copy.
Antarmuka Input/Output untuk Algoritma Segmentasi Semantik
SageMaker segmentasi semantik mengharapkan dataset pelatihan pelanggan berada di Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3)train
untuk dan satu untuk menggunakan empat direktori, dua validation
untuk gambar dan dua untuk anotasi. Anotasi diharapkan berupa gambar PNG yang tidak terkompresi. Dataset mungkin juga memiliki peta label yang menjelaskan bagaimana pemetaan anotasi dibuat. Jika tidak, algoritma menggunakan default. Ini juga mendukung format gambar manifes tambahan (application/x-image
) untuk pelatihan dalam mode input Pipe langsung dari Amazon S3. Untuk inferensi, titik akhir menerima gambar dengan tipe konten. image/jpeg
Bagaimana Pelatihan Bekerja
Data pelatihan dibagi menjadi empat direktori:train
,, train_annotation
validation
, danvalidation_annotation
. Ada saluran untuk masing-masing direktori ini. Dataset juga diharapkan memiliki satu label_map.json
file per saluran untuk train_annotation
dan validation_annotation
masing-masing. Jika Anda tidak menyediakan file JSON ini, SageMaker berikan peta label set default.
Dataset yang menentukan file-file ini akan terlihat mirip dengan contoh berikut:
s3://bucket_name | |- train | | - 0000.jpg | - coffee.jpg |- validation | | - 00a0.jpg | - bananna.jpg |- train_annotation | | - 0000.png | - coffee.png |- validation_annotation | | - 00a0.png | - bananna.png |- label_map | - train_label_map.json | - validation_label_map.json
Setiap gambar JPG di direktori kereta dan validasi memiliki gambar label PNG yang sesuai dengan nama yang sama di direktori dantrain_annotation
. validation_annotation
Konvensi penamaan ini membantu algoritme untuk mengaitkan label dengan gambar yang sesuai selama pelatihan. Salurantrain
, train_annotation
validation
, dan validation_annotation
saluran adalah wajib. Anotasi adalah gambar PNG saluran tunggal. Format berfungsi selama metadata (mode) dalam gambar membantu algoritme membaca gambar anotasi ke dalam integer unsigned 8-bit saluran tunggal. Untuk informasi lebih lanjut tentang dukungan kami untuk mode, lihat dokumentasi Python Image LibraryP
mode warna sejati.
Gambar yang dikodekan adalah bilangan bulat 8-bit sederhana saat menggunakan mode. Untuk beralih dari pemetaan ini ke peta label, algoritme menggunakan satu file pemetaan per saluran, yang disebut peta label. Peta label digunakan untuk memetakan nilai dalam gambar dengan indeks label aktual. Di peta label default, yang disediakan secara default jika Anda tidak memberikannya, nilai piksel dalam matriks anotasi (gambar) langsung mengindeks label. Gambar-gambar ini dapat berupa file PNG skala abu-abu atau file PNG yang diindeks 8-bit. File peta label untuk kasus default yang tidak diskalakan adalah sebagai berikut:
{ "scale": "1" }
Untuk memberikan kontras untuk dilihat, beberapa perangkat lunak anotasi menskalakan gambar label dengan jumlah yang konstan. Untuk mendukung hal ini, algoritma segmentasi SageMaker semantik menyediakan opsi penskalaan ulang untuk menurunkan nilai ke nilai label aktual. Ketika penskalaan ke bawah tidak mengubah nilai menjadi bilangan bulat yang sesuai, algoritme default ke bilangan bulat terbesar kurang dari atau sama dengan nilai skala. Kode berikut menunjukkan cara mengatur nilai skala untuk mengubah skala nilai label:
{ "scale": "3" }
Contoh berikut menunjukkan bagaimana "scale"
nilai ini digunakan untuk mengubah skala nilai gambar anotasi masukan ketika mereka dipetakan ke mapped_label
nilai yang akan digunakan dalam pelatihan. encoded_label
Nilai label dalam gambar anotasi input adalah 0, 3, 6, dengan skala 3, sehingga dipetakan ke 0, 1, 2 untuk pelatihan:
encoded_label = [0, 3, 6] mapped_label = [0, 1, 2]
Dalam beberapa kasus, Anda mungkin perlu menentukan pemetaan warna tertentu untuk setiap kelas. Gunakan opsi peta dalam pemetaan label seperti yang ditunjukkan pada contoh label_map
file berikut:
{ "map": { "0": 5, "1": 0, "2": 2 } }
Pemetaan label untuk contoh ini adalah:
encoded_label = [0, 5, 2] mapped_label = [1, 0, 2]
Dengan pemetaan label, Anda dapat menggunakan sistem anotasi dan perangkat lunak anotasi yang berbeda untuk mendapatkan data tanpa banyak preprocessing. Anda dapat memberikan satu peta label per saluran. File untuk peta label di label_map
saluran harus mengikuti konvensi penamaan untuk struktur empat direktori. Jika Anda tidak memberikan peta label, algoritme mengasumsikan skala 1 (default).
Pelatihan dengan Augmented Manifest Format
Format manifes yang diperbesar memungkinkan Anda melakukan pelatihan dalam mode Pipe menggunakan file gambar tanpa perlu membuat file RecorDio. File manifes yang diperbesar berisi objek data dan harus dalam format JSON LinesCreateTrainingJob
Setiap baris dalam manifes adalah entri yang berisi URI Amazon S3 untuk gambar dan URI untuk gambar anotasi.
Setiap objek JSON dalam file manifes harus berisi source-ref
kunci. source-ref
Kuncinya harus berisi nilai URI Amazon S3 ke gambar. Label disediakan di bawah nilai AttributeNames
parameter sebagaimana ditentukan dalam CreateTrainingJob
permintaan. Ini juga dapat berisi metadata tambahan di bawah tag metadata, tetapi ini diabaikan oleh algoritma. Pada contoh di bawah ini, AttributeNames
yang terkandung dalam daftar referensi ["source-ref", "city-streets-ref"]
gambar dan anotasi. Nama-nama ini harus -ref
ditambahkan padanya. Saat menggunakan algoritma Segmentasi Semantik dengan Augmented Manifest, nilai RecordWrapperType
parameter harus "RecordIO"
dan nilai parameter harus. ContentType
application/x-recordio
{"source-ref": "S3 bucket location", "city-streets-ref": "S3 bucket location", "city-streets-metadata": {"job-name": "label-city-streets", }}
Untuk informasi selengkapnya tentang file manifes tambahan, lihatAugmented Manifest Files untuk Pekerjaan Pelatihan.
Pelatihan Inkremental
Anda juga dapat menyemai pelatihan model baru dengan model yang Anda latih sebelumnya SageMaker. Pelatihan tambahan ini menghemat waktu pelatihan ketika Anda ingin melatih model baru dengan data yang sama atau serupa. Saat ini, pelatihan tambahan hanya didukung untuk model yang dilatih dengan Segmentasi SageMaker Semantik bawaan.
Untuk menggunakan model pra-terlatih Anda sendiri, tentukan ChannelName
sebagai “model” dalam InputDataConfig
CreateTrainingJob
permintaan. Atur saluran ContentType
untuk model keapplication/x-sagemaker-model
. Parameter backbone
algorithm
,crop_size
,, dan num_classes
input yang menentukan arsitektur jaringan harus secara konsisten ditentukan dalam hiperparameter input model baru dan model pra-terlatih yang Anda unggah ke saluran model. Untuk file model yang telah dilatih sebelumnya, Anda dapat menggunakan artefak terkompresi (.tar.gz) dari output. SageMaker Anda hanya dapat menggunakan format Gambar untuk memasukkan data. Untuk informasi lebih lanjut tentang pelatihan tambahan dan untuk instruksi tentang cara menggunakannya, lihatGunakan Pelatihan Inkremental di Amazon SageMaker.
Menghasilkan Kesimpulan
Untuk menanyakan model terlatih yang diterapkan ke titik akhir, Anda perlu memberikan gambar dan AcceptType
yang menunjukkan jenis output yang diperlukan. Titik akhir mengambil gambar JPEG dengan tipe image/jpeg
konten. Jika Anda meminta AcceptType
dariimage/png
, algoritme mengeluarkan file PNG dengan topeng segmentasi dalam format yang sama dengan label itu sendiri. Jika Anda meminta jenis penerimaanapplication/x-recordio-protobuf
, algoritma mengembalikan probabilitas kelas yang dikodekan dalam format recordio-protobuf. Format yang terakhir menghasilkan tensor 3D di mana dimensi ketiga berukuran sama dengan jumlah kelas. Komponen ini menunjukkan probabilitas setiap label kelas untuk setiap piksel.
Rekomendasi Instans EC2 untuk Algoritma Segmentasi Semantik
Algoritma segmentasi SageMaker semantik hanya mendukung instans GPU untuk pelatihan, dan sebaiknya gunakan instans GPU dengan lebih banyak memori untuk pelatihan dengan ukuran batch yang besar. Algoritma dapat dilatih menggunakan instance P2, P3, G4dn, atau G5 dalam konfigurasi mesin tunggal.
Untuk inferensi, Anda dapat menggunakan instance CPU (seperti C5 dan M5) dan instance GPU (seperti P3 dan G4dn) atau keduanya. Untuk informasi tentang jenis instans yang menyediakan berbagai kombinasi CPU, GPU, memori, dan kapasitas jaringan untuk inferensi, lihat Jenis Instance Amazon SageMaker Amazon