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.
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.
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.
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
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.
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.
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.
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
- 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, jadi kalo dihitung ssd mobilenet membutuhkan waktu sekitar 6 menit sedangkan faster r-cnn membutuhkan waktu sekitar 22 menit. Jadi arsitektur menggunakan faster r-cnn membutukan waktu yang lebih lama daripada ssd mobilenet. Selain itu rata rata per 100 step untuk ssd mobilenet yaitu sekitar 33/34 detik sedangkan faster r-cnn rata rata sekitar 111/112 detik.
- Penurunan nilai loss untuk ssd mobilenet pada step 1000 berkisar pada nilai 3.526, sedangkan faster r-cnn berkisar pada nilai 0.505. Artinya faster r-cnn memproses nilai loss dengan sangat cepat untuk mecapai nilai nol koma sekian. Karna tujuan kita melakukan training adalah memperkecil nilai loss dengan nilai sekecil mungkin.
- Untuk hasil output, ssd mobilenet pada 1000 step belum bisa mendeteksi apapun dari objek yang diujikan sedangkan faster r-cnn sudah bisa melakukan pendeteksian tetapi masih sangat jauh dari kata akurat. Untuk hasil output faster r-cnn mempunyai hasil yang lebih baik dibandingkan dengan ssd mobilenet tetapi kita tidak bisa mengatakan bahwa arsitektur model faster r-cnn lebih baik daripada ssd mobilenet karea kedua arsitektur tersebut mempunyai kelebihan dan kekurangan masing-masing.
Okey teman teman sekian dulu untuk tutorial kali ini yaa.. Untuk tulisan saya yang lain tentang Deep Learning dan Computer Vision dengan berbagai Case, temen-temen bisa lihat di link link dibawah ini.
- Part1 : Object Detection Menggunakan Tensorflow-API
- Part 2 : Object Detection Menggunakan Tensorflow (Perbandingan Arsitektur SSD Mobilenet dan Faster R-CNN)
- Part3 : Setting dan Instalasi Object Detection Menggunakan Tensorflow
- Part 4 : Klasifikasi Gambar Menggunakan Web-Flask
- Part 5 : Face Recognition Menggunakan OpenCV
- Part 6 : Klasifikasi Gambar Dengan Convolutional Neural Network Menggunakan Keras-Python
- Part 7 : Klasifikasi Gambar Menggunakan Arsitektur VGGNet-Keras
- Part 8 : Tensorflow Object Detection API Menggunakan Google Colab (Kasus : Deteksi Covid-19 Dari Data Rontgent Dada
- Part 9 : Klasifikasi Gambar Menggunakan Convolutional Neural Network dengan Arsitektur LeNet
- Part 10 : Convolutional Neural Network Menggunakan Package Keras di R
- Part 11 : Vehicle Counter Menggunakan OpenCV Python
Source :