Apa itu image segmentation?
Image segmentation adalah tugas computer vision yang memberi label pada setiap pixel dalam gambar. Semantic segmentation memberi tiap pixel sebuah kelas, misalnya jalan atau langit. Instance segmentation juga memisahkan tiap objek dari kelas yang sama, jadi dua mobil mendapat dua mask berbeda.
Segmentation dipakai saat bentuk yang tepat itu penting: menandai tumor dan organ pada hasil pindaian medis, menemukan jalan yang bisa dilalui dan marka lajur untuk mobil otonom, memetakan tutupan lahan dari citra satelit, serta memotong gambar orang untuk portrait mode dan latar video. Sebagian besar model mengikuti desain encoder-decoder seperti U-Net, dan model berbasis prompt seperti Segment Anything kini bisa menghasilkan mask untuk objek yang tidak pernah dipakai saat training.
Ide utama
- Segmentation memprediksi kelas untuk setiap pixel, jadi tinggi dan lebar output sama dengan gambar.
- Semantic segmentation memberi label kelas, dan instance segmentation juga memisahkan tiap objek.
- Encoder melakukan downsampling untuk mengumpulkan konteks, dan decoder melakukan upsampling kembali ke resolusi penuh.
- Skip connection meneruskan detail spasial halus dari encoder langsung ke decoder.
- Mean IoU antarkelas adalah metrik evaluasi standar.
- Upsampling bisa bersifat tetap, seperti nearest atau bilinear, atau dipelajari, seperti transposed convolution.
Pertanyaan umum
Apa bedanya Dice dan IoU?
Keduanya mengukur tumpang tindih antara mask prediksi A dan mask sebenarnya B. IoU adalah |A ∩ B| / |A ∪ B|, dan Dice adalah 2|A ∩ B| / (|A| + |B|), sehingga Dice = 2·IoU / (1 + IoU) dan nilainya selalu minimal sebesar IoU. Dice loss, yaitu 1 − Dice, populer di pencitraan medis karena struktur kecil tetap dihitung penuh walaupun latar mendominasi gambar.
Berapa banyak data berlabel yang dibutuhkan model segmentation?
Label per pixel lama dibuat, jadi sebagian besar proyek mulai dari encoder yang pretrained pada ImageNet atau COCO, lalu melakukan fine-tuning pada beberapa ratus sampai beberapa ribu mask. Augmentation berat membuat dataset kecil lebih bermanfaat, seperti pada U-Net versi asli. Model berbasis prompt seperti Segment Anything juga mempercepat pelabelan dengan membuat draf mask untuk dikoreksi manusia.
Bisakah transformer melakukan image segmentation?
Bisa. SegFormer memasangkan encoder transformer hierarkis dengan decoder ringan untuk semantic segmentation. Mask2Former memperlakukan semantic, instance, dan panoptic segmentation sebagai prediksi sekumpulan mask dengan decoder transformer, dan satu arsitektur menangani ketiganya.
Apa bedanya segmentation dan image matting?
Segmentation memberi tiap pixel label tegas: sebuah pixel termasuk bagian orang atau bukan. Matting memperkirakan nilai opasitas halus antara 0 dan 1 untuk setiap pixel, yang bisa menangkap rambut, bulu, dan motion blur di bagian tepi. Alat portrait mode dan penghapus latar sering menjalankan segmentation lebih dulu, lalu memperhalus batasnya dengan matting.
Penjelasan terkait
- Object Detection · Menemukan dan mengklasifikasikan banyak objek dalam gambar dengan bounding box dan skor confidence
- Convolutional Neural Network · Cara CNN melihat dan memahami gambar
- Skip Connection & ResNet · Residual learning dan alasan network yang lebih dalam bisa bekerja
- Pooling dan Downsampling · Perkecil dimensi spasial sambil mempertahankan feature terpenting di feature map
- Diffusion Model · Hasilkan gambar dengan belajar membalik proses penambahan noise yang bertahap
- Data Augmentation · Perbanyak data training secara buatan dengan salinan hasil transformasi untuk mengurangi overfitting
Referensi
- Ronneberger, Fischer & Brox (2015), "U-Net: Convolutional Networks for Biomedical Image Segmentation"
- Long, Shelhamer & Darrell (2015), "Fully Convolutional Networks for Semantic Segmentation", CVPR
- He, Gkioxari, Dollár & Girshick (2017), "Mask R-CNN", ICCV
- Kirillov et al. (2023), "Segment Anything"
- Odena, Dumoulin & Olah (2016), "Deconvolution and Checkerboard Artifacts", Distill
Terakhir diperbarui