CNN: Beyond Image Classification

Richard Dharmadi
Nodeflux
Published in
4 min readMay 9, 2018

Di era dimana Deep Learning sudah menjadi salah satu teknik populer di bidang Computer Vision, Convolutional Neural Network(CNN) tentunya tidak asing lagi di telinga para praktisi maupun deep learning enthusiasts.

Seperti yang telah dibahas pada post saya sebelumnya, CNN banyak diterapkan khususnya pada problem klasifikasi gambar. Tapi tahukah anda bahwa CNN juga umum digunakan sebagai solusi problem lain di bidang computer vision? Berikut ini adalah beberapa contoh permasalahan dimana CNN dapat dijadikan sebagai pendekatan solusinya.

  • Object Detection

Image Classification adalah pengkategorian suatu gambar ke dalam suatu kategori tertentu. Image Localisation adalah pengembangan dari tugas tersebut, dimana output yang dihasilkan tidak lagi berupa kategori/kelas dari gambar tersebut, tetapi letak dari objek kelas tersebut dalam gambar tersebut, umumnya dalam bentuk bounding box.

Image Classification and Localisation. Image by Leonardo Santos via his website

Object Detection adalah klasifikasi dan lokalisasi untuk beberapa objek dalam satu gambar.

Object Detection. Image by Leonardo Santos via his website

Implementasi CNN untuk deteksi objek akan dibahas secara lebih dalam di post berikutnya.

  • Object Tracking

Pengembangan selanjutnya dari deteksi objek adalah tracking. Setelah terdeteksi dalam sebuah tayangan, objek-objek yang menjadi perhatian kita kemudian ditelusuri pergerakan nya dalam frame tersebut.

Object tracking umum digunakan untuk analisis video dan observasi real-world interactions. Di era dimana AI sudah tidak asing lagi, object tracking juga mulai diaplikasikan untuk teknologi seperti autonomous driving systems.

Metode object tracking sendiri dapat dibagi kedalam dua kategori berdasarkan model observasi yang digunakan, generative method & discriminative method [1]. Model deep learning, seperti CNN, masuk dalam kategori discriminative method (atau yang umum juga dikenal dengan istilah Tracking-by-Detection). Penjelasan tentang kedua metode tersebut beserta perbedaan keduanya adalah topik tersendiri untuk di lain kesempatan.

  • Semantic Segmentation

Segmentasi gambar merupakan salah satu aplikasi mendasar di bidang computer vision. Secara umum, segmentasi gambar adalah proses “memisahkan” sebuah gambar utuh menjadi beberapa grup-grup pixel yang kemudian dapat di kategorikan. Atau dengan kata lain, proses untuk memahami peran dari tiap-tiap pixel dalam sebuah gambar.

Semantic Segmentation. Image by Heartbeat Fritz via Medium[1]

Sebagai contoh, perhatikan gambar di atas. Pada gambar tersebut terlihat segmentasi antara objek manusia (ditandai dengan warna merah), jalanan (warna pink), mobil (warna biru), pohon (warna hijau), dan objek lainnya, dengan batas antar objek yang cukup jelas. Hal ini menandakan model yang akan digunakan perlu menghasilkan dense pixel-wise predictions, tidak seperti klasifikasi yang hanya membutuhkan prediksi kelas dari suatu gambar.

Pixelwise prediction dengan CNN. Image by Heartbeat Fritz via Medium[1]

Salah satu penggunaan CNN untuk semantic segmentation dapat ditemukan pada Fully Convolutional Networks (FCN) dari UC Berkeley. FCN mempopulerkan arsitektur CNN untuk dense pixelwise predictions yang tidak menggunakan fully connected layers. Metode ini memberikan hasil yang lebih efisien dan relatif lebih cepat bila dibandingkan dengan metode sebelumnya (e.g. patch classification with sliding window). [1]

Hingga saat ini, riset untuk metode semantic segmentation masih menitikberatkan pada penggunaan arsitektur CNN tanpa fully connected layers, diantaranya Dilated Convolutions, DeepLab, and RefineNet.[1]

  • Instance Segmentation
    Instance Segmentation adalah pengembangan dari Semantic Segmentation, dimana hasil yang diharapkan adalah pemisahan objek-objek dalam suatu gambar secara menyeluruh, bukan lagi berdasarkan kategori dari objek tersebut. Sebagai contoh, Instance Segmentation menghasilkan 5 warna berbeda untuk 5 buah mobil dalam suatu gambar.
Instance Segmentation. Image by Heartbeat Fritz via Medium[1]

Salah satu implementasi Instance Segmentation adalah Mask R-CNN dari Facebook AI. Mask R-CNN mencoba memperluas kemampuan objek deteksi yang selama ini menggunakan bounding boxes, dengan dense pixelwise predictions, untuk memberi pemahaman yang lebih kompleks tentang suatu gambar.

Instance Segmentation with Bounding Boxes. Image by Heartbeat Fritz via Medium[1]

Seperti yang kita ketahui, CNN banyak digunakan untuk ekstraksi fitur dari suatu gambar, yang dihasilkan dalam bentuk feature maps. Mask R-CNN kemudian menggunakan feature maps tersebut sebagai input untuk FCN, yang akan menghasilkan sebuah matriks. Matriks yang dihasilkan bernilai 1 untuk semua lokasi piksel yang merupakan bagian dari objek, dan 0 untuk lokasi lain nya. Matriks ini dikenal dengan istilah binary mask.

Dengan binary mask-binary mask yang didapatkan, ditambah dengan hasil klasifikasi dan bounding boxes dari Faster R-CNN, Mask R-CNN dapat menghasilkan instance segmentations yang presisi seperti gambar dibawah ini:

Instance Segmentation with Bounding Boxes. Image by Heartbeat Fritz via Medium[1]

Reference

[1] https://heartbeat.fritz.ai/the-5-computer-vision-techniques-that-will-change-how-you-see-the-world-1ee19334354b

[2] https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/object_localization_and_detection.html

--

--

Richard Dharmadi
Nodeflux

Operational-type product leader @ Pinhome, part-time PM instructor @ RevoU, ex-AI Research Scientist & Test Engineer.