Segmentasi Semantik untuk Klasifikasi Citra
Segmentasi citra merupakan bagian dari proses pengolahan citra. Segmentasi citra (image segmentation) mempunyai arti membagi suatu citra menjadi wilayah-wilayah yang homogen berdasarkan kriteria keserupaan tertentu antara suatu piksel dengan piksel — piksel tetangganya, kemudian hasil dari proses segmentasi ini akan digunakan untuk proses tingkat tinggi lebih lanjut yang dapat dilakukan terhadap suatu citra, misalnya proses klasifikasi citra dan proses identifikasi objek.
Segmentasi semantik adalah proses klasifikasi setiap piksel dari sebuah citra sebagai sebuah label kelas untuk memahami citra dalam tingkat per piksel. Label kelas yang yang dimaksud adalah kelas objek, seperti rumah, buku, manusia, dan lain-lain.
Selain mengenali dan membedakan pengendara dan motor, segmentasi semantik juga perlu mengenali batas dari objek-objek yang dideteksi. Oleh karena itu, diperlukan dense pixelwise prediction. Sebelum deep learning, segmentasi semantik biasa dilakukan menggunakan metode klasifikasi random forest atau TextonForest. Convolutional Neural Network juga digunakan untuk segmentasi.
Salah satu pendekatan deep learning awal yang populer adalah klasifikasi patch dimana setiap piksel secara terpisah diklasifikasikan ke dalam kelas menggunakan sepetak gambar di sekitarnya. Alasan utama untuk menggunakan patch adalah bahwa jaringan klasifikasi biasanya memiliki fully connected layer yang membutuhkan citra dalam ukuran pasti. Selain fully connected layer, masalah lain adalah pooling. Pooling meningkatkan bidang pandang dan mampu menggabungkan konteks namun membuang informasi lokasi objek. Segmentasi semantik membutuhkan penyelarasan peta kelas yang tepat dan dengan demikian, informasi lokasi objek perlu dipertahankan.
Pada tahun 2014, Fully Convolutional Networks (FCN) oleh Long et al. dari Berkeley, mempopulerkan arsitektur CNN untuk prediksi padat tanpa fully connected layer. Metode ini memungkinkan peta segmentasi yang dihasilkan untuk gambar ukuran apa pun dan juga jauh lebih cepat dibandingkan dengan pendekatan klasifikasi patch.
Ada dua tipe arsitektur yang digunakan untuk segmentasi semantik. Salah satu arsitektur yang banyak digunakan untuk segmentasi semantik adalah arsitektur Encoder-Decoder. Encoder biasanya adalah pre-trained classification network seperti VGG/ResNet diikuti oleh jaringan decoder. Tugas decoder adalah secara semantis memproyeksikan fitur citra yang dipelajari oleh encoder ke ruang piksel (resolusi lebih tinggi) untuk mendapatkan klasifikasi yang lebih padat, proses ini juga disebut sebagai upsampling. Encoder menggunakan konvolusi biasa sementara decoder menggunakan transposed convolution.
Arsitektur yang kedua adalah arsitektur yang menggunakan Atrous convolution. Atrous Convolution adalah sebuah tipe konvolusi yang dirancang untuk meningkatkan receptive field output konvolusi tanpa harus memperbesar ukuran kernel. Tipe konvolusi ini sangat efektif ketika beberapa dilated convolutions yang dilebarkan ditumpuk satu demi satu. Atrous Convolution melebarkan kernel dengan menyisipkan ruang kosong di antara elemen-elemen kernel, disebut sebagai dilation rate.
Model terbaru untuk segmentasi semantik untuk objek umum menggabungkan konsep encoder-decoder dan atrous convolution, model tersebut disebut model Deeplab. Deeplab menggunakan arsitektur ResNet dan Xception, namun dengan modifikasi di akhir dimana layer fully connected diubah menjadi decoder. Deeplab menyisipkan Atrous Spatial Pyramid Pooling (ASPP) di bagian akhir arsitektur. ASPP bertujuan untuk memberi model informasi secara multiscale. Untuk melakaukan itu ASPP melakukan beberapa konvolusi Atrous dengan rate dilasi yang berbeda-beda.
Karena blok Atrous tidak melakukan downsampling, ASPP dijalankan dengan ukuran respon fitur yang sama. Hasilnya, ASPP dapat mempelajari fitur dari konteks multiscale menggunakan rate dilasi yang besar.
Referensi:
Chen, L. C., Papandreou, G., Kokkinos, I., Murphy, K., & Yuille, A. L. (2018). Deeplab: Semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected crfs. IEEE transactions on pattern analysis and machine intelligence, 40(4), (pp. 834–848).
Chen, L. C., Papandreou, G., Schroff, F., & Adam, H. (2017). Rethinking atrous convolution for semantic image segmentation. arXiv preprint arXiv:1706.05587.
Chen, L. C., Zhu, Y., Papandreou, G., Schroff, F., & Adam, H. (2018). Encoder-decoder with atrous separable convolution for semantic image segmentation. arXiv preprint arXiv:1802.02611.
Chilamkurthy, S. (2017). A 2017 Guide to Semantic Segmentation with Deep Learning. Diakses dari http://blog.qure.ai/notes/semantic-segmentation-deep-learning-review
Dumoulin, V., & Visin, F. (2016). A guide to convolution arithmetic for deep learning. arXiv preprint arXiv:1603.07285.
Long, J., Shelhamer, E., & Darrell, T. (2015). Fully convolutional networks for semantic segmentation. Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 3431–3440).