Skip to content

Latest commit

 

History

History
69 lines (36 loc) · 4.88 KB

File metadata and controls

69 lines (36 loc) · 4.88 KB

Segmentasi

Kita sebelumnya telah mempelajari tentang Deteksi Objek, yang memungkinkan kita untuk menemukan objek dalam gambar dengan memprediksi bounding boxes-nya. Namun, untuk beberapa tugas, kita tidak hanya membutuhkan bounding boxes, tetapi juga pelokalan objek yang lebih presisi. Tugas ini disebut segmentasi.

Segmentasi dapat dilihat sebagai klasifikasi piksel, di mana untuk setiap piksel dalam gambar kita harus memprediksi kelasnya (background menjadi salah satu kelas). Ada dua algoritma segmentasi utama:

  • Segmentasi semantik hanya menentukan kelas piksel, tanpa membedakan antara objek yang berbeda dalam kelas yang sama.
  • Segmentasi instance membagi kelas menjadi berbagai instance.

Dalam segmentasi instance, domba-domba ini adalah objek yang berbeda, tetapi dalam segmentasi semantik semua domba direpresentasikan sebagai satu kelas.

Gambar dari blog ini

Ada berbagai arsitektur neural untuk segmentasi, tetapi semuanya memiliki struktur yang sama. Dalam beberapa hal, ini mirip dengan autoencoder yang telah Anda pelajari sebelumnya, tetapi alih-alih mendekonstruksi gambar asli, tujuan kita adalah mendekonstruksi mask. Jadi, jaringan segmentasi memiliki bagian-bagian berikut:

  • Encoder mengekstrak fitur dari gambar input.
  • Decoder mengubah fitur tersebut menjadi gambar mask, dengan ukuran dan jumlah saluran yang sesuai dengan jumlah kelas.

Gambar dari publikasi ini

Kita harus secara khusus menyebutkan fungsi loss yang digunakan untuk segmentasi. Saat menggunakan autoencoder klasik, kita perlu mengukur kesamaan antara dua gambar, dan kita dapat menggunakan mean square error (MSE) untuk melakukannya. Dalam segmentasi, setiap piksel dalam gambar mask target mewakili nomor kelas (one-hot-encoded di sepanjang dimensi ketiga), sehingga kita perlu menggunakan fungsi loss khusus untuk klasifikasi - cross-entropy loss, yang dirata-rata di semua piksel. Jika mask bersifat biner - binary cross-entropy loss (BCE) digunakan.

✅ One-hot encoding adalah cara untuk mengkodekan label kelas ke dalam vektor dengan panjang yang sama dengan jumlah kelas. Lihat artikel ini untuk mempelajari teknik ini.

Segmentasi untuk Pencitraan Medis

Dalam pelajaran ini, kita akan melihat segmentasi dalam aksi dengan melatih jaringan untuk mengenali nevi manusia (juga dikenal sebagai tahi lalat) pada gambar medis. Kita akan menggunakan Database PH2 dari gambar dermoskopi sebagai sumber gambar. Dataset ini berisi 200 gambar dari tiga kelas: nevus tipikal, nevus atipikal, dan melanoma. Semua gambar juga memiliki mask yang sesuai yang menguraikan nevus.

✅ Teknik ini sangat cocok untuk jenis pencitraan medis ini, tetapi aplikasi dunia nyata apa lagi yang dapat Anda bayangkan?

navi

Gambar dari Database PH2

Kita akan melatih model untuk melakukan segmentasi nevus dari latar belakangnya.

✍️ Latihan: Segmentasi Semantik

Buka notebook di bawah ini untuk mempelajari lebih lanjut tentang berbagai arsitektur segmentasi semantik, berlatih menggunakannya, dan melihatnya dalam aksi.

Kesimpulan

Segmentasi adalah teknik yang sangat kuat untuk klasifikasi gambar, melampaui bounding boxes hingga klasifikasi tingkat piksel. Ini adalah teknik yang digunakan dalam pencitraan medis, di antara aplikasi lainnya.

🚀 Tantangan

Segmentasi tubuh hanyalah salah satu tugas umum yang dapat kita lakukan dengan gambar manusia. Tugas penting lainnya termasuk deteksi kerangka dan deteksi pose. Coba gunakan pustaka OpenPose untuk melihat bagaimana deteksi pose dapat digunakan.

Tinjauan & Studi Mandiri

Artikel Wikipedia ini menawarkan gambaran yang baik tentang berbagai aplikasi teknik ini. Pelajari lebih lanjut secara mandiri tentang subdomain Segmentasi Instance dan Segmentasi Panoptik dalam bidang ini.

Dalam lab ini, coba segmentasi tubuh manusia menggunakan Segmentation Full Body MADS Dataset dari Kaggle.