Deep Learning : Klasifikasi Gambar Menggunakan Convolutional Neural Network dengan Arsitektur LeNet pada Python
Case : Klasifikasi Gambar Wayang
Hallo pecinta Deep Learning !!! kembali lagi bersama sama saya Mr. D. Pada tutorial kali ini kita akan belajar cara kerja dan implementasi dari salah satu arsitektur convolutional neural network yaitu LeNet.
Seperti biasa saya tidak menjelaskan teori LeNet itu sendiri disini, saya hanya menjelaskan cara implementasi dan cara kerja pembuatan sistemnya saja, jadiii.. temen temen bisa belajar teorinya di sumber lain yaa hehe…
Ada beberapa library yang kita butuhkan untuk di install di python kalian seperti Keras, Tensorflow, OpenCV, matplotlib dll.. Untuk full source code dan image dari tulisan ini temen temen bisa unduh DISINI
Pada kesempatan kali ini kita akan praktik untuk membuat sistem pendeteksi untuk mengklasifikasikan wayang kulit antara dua kelas yaitu Arjuna dan Bima.
PERTAMA
Langkah pertama yang kita lakukan adalah membuat susunan folder kerja utama dalam pembuatan sistem ini.
Dari susunan folder kerja kita ada beberapa file dan folder yang akan kita gunakan diantaranya ada folder examples untuk melakukan testing data gambar baru setelah terbentuk model, kemudian ada folder images untuk menyiapkan data gambar yang akan kita deteksi dimana dalam hal ini adalah Arjuna dan Bima, setelah itu ada folder LeNet yang berisi file codingan arsitektur LeNet untuk mengeksekusi images pada saat trainig nantinya, dan ada file train_network dan test_network masing-masing untuk melakukan training dan testing data gambar wayang kulit kita.
KEDUA
Pada tahap kedua ini kita akan melakukan training data images kita. Ada beberapa parameter yang perlu di perhatikan sebelum melakukan training seperti Epochs, LR (learning rate), BS (Batch Size). Yang perlu di perhatikan adalah jumlah Epochs, disini saya menggunakan Epochs =500, artinya pada saat training nanti sistem kita akan melakukan iterasi sebanyak 500 kali untuk mendapatkan model yang kita cari. Konsep utama dari Epochs ini adalah semakin banyak jumlah Epochs maka HARAPANNYA akan semakin baik model yang akan kita dapatkan atau dengan kata lain semkain banyak epoch maka akurasi juga di harapkan semakin tinggi dan sebaliknya nilai loss atau kerugian yang kita dapatkan semakin kecil. Temen temen bisa lihat 3 parameter yang kita setting pada potongan codingan di bawah ini.
Setelah melakukan setting parameter yang kita butuhkan, langkah selanjutnya adalah melakukan eksekusi TRAINING images kita dengan menuliskan perintah berikut pada command promt kalian.
python train_network.py — dataset images — model wayang.model
Arti perintah tersebut adalah mengeksekusi file train_network.py untuk melakukan training, kemdian dataset images berfungsi untuk membaca semua gambar yang ada di dalam folder images dan sekaligus menjadi label deteski nantinya, dan model wayang.model adalah hasil output model yang akan kita gunakan sebagai bahan prediksi data baru. Untuk melihat arsitektur LeNet sendiri temen temen bisa lihat di folder LeNet dimana terdapat file lenet.py, kurang lebih isi codingannya seperti berikut ini.
codingan arsitektur LeNet
Setelah menekan enter dari perintah diatas, temen temen akan di bawa pada window training data sampai epoch ke 500.
Bisa kita lihat pada iterasi ke 500 akurasi sudah mencapai lebih dari 90% dan nilai loss yang cukup kecil juga. Artinya model yang terbentuk sudah cukup baik untuk kita gunakan dalam melakukan prediksi wayang kulit arjuna dan bima
output hasil training
Untuk melihat grafik akuarsi dan loss kalian bisa lihat di file plot yang hasilnya kurang lebih seperti ini :
KETIGA
Setelah melakukan training dengan hasil yang cukup bagus, sekarang kita akan melakukan testing menggunakan model yang sudah terbentuk. Ketikkan perintah berikut pada command promt kalian untuk melakukan testing :
python test_network.py — model wayang.model — image images/examples
Arti perintah tersebut adalah melakukan eksekusi file test_network.py, kemudian wayang.model berfungsi untuk memanggil model kita, dan images examples berfungsi untuk memanggil gambar testing yang akan kita uji.
RUN perintah diatas maka akan muncul hasil testing seperti diwah ini.
Bisa kita lihat contoh sampel testing dari gambar diatas, sistem kita sudah cukup baik dalam melakukan deteksi wayang kulit Arjuna dan Bima dengan akurasi yang cukup tinggi yaitu diatas 90% untuk kedua sampel tersebut.
Okey teman teman sekian dulu untuk tutorial kali ini yaa.. Untuk tulisan saya yang lain tentang Deep Learning dengan berbagai Case, temen-temen bisa lihat di link link dibawah
- 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 :