Deep Learning : Object Detection Menggunakan Tensorflow (Perbandingan Arsitektur SSD Mobilenet dan…

Original article was published by akademi-ai on Deep Learning on Medium


Deep Learning : Object Detection Menggunakan Tensorflow (Perbandingan Arsitektur SSD Mobilenet dan Faster RCNN)

Hallo teman teman pecinta DEEP LEARNING, kembali lagi bersama kami tim akademi-ai, pada tulisan kali ini kita akan belajar object detection dengan menggunakan model Pre-Trained SSD Mobilenet dan Faster RCNN. Buat temen temen yang belum tau, jadi pre-trained itu adalah suatu teknik atau metode yang memanfaatkan model yang sudah dilatih terhadap suatu dataset untuk menyelesaikan permasalahan lain yang serupa dengan cara menggunakannya sebagai starting point, memodifikasi dan mengupdate parameternya sehingga sesuai dengan dataset yang baru.

Mobile Net

MobileNets, merupakan salah satu arsitektur convolutional neural network (CNN) yang dapat digunakan untuk mengatasi kebutuhan akan computing resource berlebih. Seperti namanya, Mobile, para peneliti dari Google membuat arsitektur CNN yang dapat digunakan untuk ponsel.

Perbedaan mendasar antara arsitektur MobileNet dan arsitektur CNN pada umumnya adalah penggunaan lapisan atau layer konvolusi dengan ketebalan filter yang sesuai dengan ketebalan dari input image. Arsitektur MobileNet sendiri dapat dilihat pada gambar berikut.

Arsitektur Mobilenet

Faster R-CNN

Penggunaan region proposal method seperti Selective Search masih menjadi “bottleneck” dalam proses deteksi objek menggunakan R-CNN [1], karena metode seperti ini membutuhkan waktu yang relatif lama untuk menghasilkan regions [2].

Tidak lama setelah Fast R-CNN, Faster R-CNN hadir untuk mencoba menyelesaikan masalah region proposal method diatas. Dikembangkan oleh Shaoqing Ren dan dibantu oleh Girshick (pelopor R-CNN dan Fast R-CNN), Faster R-CNN memperkenalkan Region Proposal Network (RPN).

RPN adalah sebuah neural network yang menggantikan peran Selective Search untuk mengajukan region (bagian-bagian mana dari sebuah gambar yang perlu “dilihat” lebih jauh). RPN menghasilkan beberapa bounding box, setiap box memiliki 2 skor probabilitas apakah pada lokasi tersebut terdapat objek atau tidak.

Region-region yang dihasilkan tersebut akan menjadi input untuk arsitektur yang mirip seperti Fast R-CNN. Arsitektur Fast R-CNN dapat dilihat pada gambar dibawah ini.

Penggunaan RPN untuk mengganti Selective Search ini mengurangi kebutuhan komputasi yang cukup signifikan, dan membuat keseluruhan model dapat di-train secara end-to-end (karena tidak lagi ada metode yang digunakan terpisah seperti dengan region proposal method sebelumnya).

Selain itu, Faster R-CNN juga menghasilkan performa yang lebih cepat dan lebih akurat bila dibandingkan dengan Fast R-CNN [2], dan saat ini telah menjadi pilihan model yang umum digunakan untuk deteksi objek dengan solusi berbasis deep learning [1].

Daaan Setelah kita baca teori sedikit tentang Mobile Net dan Faster R-CNN, sekanrg step selanjutnya adalah mencoba kedua arsitektur model tersebut untuk melakukan pendeteksian objek, dan hasil output yang akan kita dapatkan nantinya berupa perbandingan parameter-parameter dari kedua arsitektur tersebut. Oke Let’s Goo !!!

Perbandingan Object Detection SDD Mobilent dan Faster R-CNN

Oke teman teman, kita mulai yaa perbandingannya, disini kita akan coba memberikan perbandingan data dengan data plat nomor kendaraan yang akan kita coba proses di google colab. Untuk perbandingan ini saya melakukan setting 1000 STEP untuk masing masing arsitektur (Harusnya kalo mau bagus yaa minimal 50.000 sampai diatas 100.000, disini saya pake 1000 karna goalsnya untuk perbandingan parameter, bukan ke outputnya heheheh)

Tulisan saya tentang cara membuat object detection bisa temen temen baca DISINI dan DISINI.

SSD Mobilenet

Untuk proses training 1000 Step arsitektur SSD MobileNet kalian bisa lihat pada cell google colab berikut ini.

Step 0–600
step 600–1000

Dari proses training tersebut dapat dilihat nilai loss dari step 0 sampai 1000 mengalami penurunan secara perlahan dari 13.xxx sampai 3.xxx, artinya penurunan nilai loss turun sesuai dengan yang di harapkan, karena semakin kecil nilai loss maka aka semakin baik akurasi model yang akan di dapatkan nantinya, nila loss terbaik untuk ssd mobilenet berkisar antara nilai 0.xxx sampai dengan 1. Nilai loss yang kecil ini mungkin kita bisa dapatkan tetapi karna berhubung kita hanya menggunakan 1000 step jadi yaa sampai segitu aja nilai lossnya (saya males banyak banyak stepnya, males nunggunya wkwk) atau dengan kata lan lain model yang kita dapatkan maybe masih jelek hehehe.

Dari segi waktu training di google colab, saya start mulai training jam 11.12 WIB dan berakhir sampai jam 11.18 WIB, kira kira waktu yang kita perlukan untuk training 1000 step dengan arsitektur ssd mobilenet yaitu sekitar 5 sampai 6 menit. Dan dari segi waktu yang bisa kita lihat bahwa rata rata waktu untuk 100 step sekitar 33/34 detik.

Parameter Precision dan Recall

Evaluasi parameter dari 1000 step arsitektur SSD MobileNet, kita bisa lihat average precision dan recall dari data yang kita gunakan. Apa itu precision ? apa itu recall ? ini jadi PR kalian yaah hehe

Tensorboard

Selain itu juga kita bisa mendapatkan bagaimana proses penurunan nilai loss dari grafik tensorboard. Dapat dilihat penurunan nilai loss dari step 0 sampai step 1000 mengalami penurnan secara signifikan untuk 1000 step pertama.

Hasil Deteksi 1000 Step

Tetoooottt !!! hasilnya setelah di coba ternyata arsiterktur model SSD Mobilenet dengan 1000 step belum bisa mendeteksi apa apa hikss!!!. Pengennya sih kaya gini !

Tapiiii.. itu model yang saya pake udah saya training di atas 50.000 step haha.. tapi gpp, goals kita disini bukan hasil, tapi hanya membandingkan 🙂

Faster R-CNN

Untuk proses training 1000 Step arsitektur SSD MobileNet kalian bisa lihat pada cell google colab berikut ini.

Step 0–500
Step 600–1000

Dari proses training tersebut dapat dilihat nilai loss dari step 0 sampai 1000 mengalami penurunan secara perlahan dari 6.912 sampai 0.431, Beda sekali dengan model ssd mobilnet yang masih mempunyai nilai loss di angka 3 atau 4 untuk 1000 step. Dari segi waktu training, saya start mulai training bersamaan dengan ssd mobilenet dari jam 11.12 WIB sd 11.34 WIB, kira kira waktu yang kita perlukan untuk training 1000 step dengan arsitektur Faster R-CNN kurang lebih sekitar 22 menit, waktu yang cukup lama jika di bandingkan dengan ssd mobilenet. Sedangkan dari segi waktu training per 100 step membutuhkan waktu rata rata sekitar 111/112 detik, dimana sangat jauh berbeda juga dengan waktu ssd mobilenet untuk 100 step.

average precision dan recall
Tensorboard

Hasil diatas merupakan hasil average precision/recall dan tensorboard pergerakan nilai loss untuk Faster R-CNN. Berbeda dengan ssd mobilenet grafik pergerakan nilai los langsung turun diangka 0.xxx untuk 1000 step pertama.

Deteski Objek

Taraaaaa !!! Yap hasilnya begitulah manteman untuk 1000 Step menggunakan Faster-RCNN. Yaa dia bisa deteksi sih,tapi deteksinya banyak gitu haha.. masih medninglah kalo di bandingin sama ssd yang gak keluar deteksinya sedikitpun wkwkwk

KESIMPULAN

  1. Waktu training 1000 step ssd mobilenet dan faster r-cnn dimulai bersama jam 11.12 WIB dimana ssd mobilenet berhenti training jam 11.18 WIB,sedangkan faster r-cnn berhenti pada jam 11.34 WIB