Wiga Audi Prasetyo
Membuat sistem klasifikasi objek wayang yaitu Bagong, Puntadewa, Werkudara menggunakan algoritma Convolutional Neural Network dengan Arsitektur MobileNet. Pada Portofolio ini membahas tentang preprocessing data dan membuat model dari data yang sudah di proses sebelumnya. Selain itu, dilakukan juga proses training menggunakan model yang sudah dibuat.
Portofolio ini merupakan tugas akhir dari Project Capstone MSIB Batch 3.
Wayang dikenal memiliki berbagai macam jenis dan memiliki banyak karakter dari masing-masing jenis wayang. Oleh karena itu, untuk memperkenalkan tokoh-tokoh yang ada dalam jenis wayang kepada generasi muda saat ini, teknologi pengenalan citra digital sangat diperlukan. Hal tersebut diperkuat dengan kenyataan bahwa semakin berkembangnya teknologi, pertunjukan wayang saat ini sudah semakin jarang dilaksanakan.
Preprocessing pada project ini menggunakan ImageDataGenerator yang merupakan sebuah fungsi untuk mempersiapkan data latih dan validasi. Preprocessing yang dilakukan berupa rescale, resize, dan membagi 20% data latih menjadi data validasi.
Tahapan untuk melakukan preprocessing data adalah sebagai berikut :
Terdapat beberapa library yang dibutuhkan untuk membantu dalam proses pembuatan klasifikasi , yaitu:
Dataset yang digunakan telah melewati proses augmentasi untuk memperkaya dataset yang ada. Hasil dari proses augmentasi disimpan pada folder “dataset_baru/train” sedangkan hasil gambar data uji dari proses Augmentasi disimpan pada folder “dataset_baru/test”
Pada gambar diatas, dilakukan proses inisialisasi variabel IMAGE_SIZE yang berisi ukuran gambar sebesar 224, BATCH_SIZE yang berisi 128 batch, dan base_dir yang berisi path folder dataset train yang sudah berisi data gambar hasil augmentasi.
Setelah itu dilakukan preprocessing menggunakan ImageDataGenerator dengan parameter rescale yang berfungsi untuk rescale data gambar dari range 0-255 ke 0-1 dan validation split yang berfungsi untuk membagi 20% data latih menjadi data validasi. Setelah itu data latih dan data validasi diubah resolusi dan ditetapkan jumlah batch sesuai dengan nilai dari variabel IMAGE_SIZE dan BATCH_SIZE yaitu 224 dan 128.
Data uji yang telah disimpan pada folder “dataset_baru/test” setelah proses Augmentasi akan dimuat pada program. Pada proses ini dilakukan juga inisialisasi variabel X_Test yang berisi data citra uji dan y_test yang berisi label dari 3 kelas yaitu Bagong, Puntadewa, dan Werkudara.
Setelah melakukan preprocessing data, perlu dilakukan pengecekan untuk melihat bentuk dari data yang telah di proses.
Setelah data sudah siap untuk dimasukkan kedalam model, tahapan berikutnya adalah membuat model. Adapun langkah pembuatan model CNN dengan arsitektur MobileNet adalah sebagai berikut :
Pada project ini, model yang dipilih sebagai dasar transfer learning adalah MobileNet yang sudah tersedia pada library keras.
Setelah membuat base model dari arsitektur MobileNet, selanjutnya adalah menambahkan model tambahan dengan menambahkan Convolutional 2D dan AveragePooling2D
Optimizer yang digunakan adalah adam, loss function adalah categorical_crossentropy dikarenakan label yang dimiliki lebih 2 yaitu Bagong, Puntadewa, dan Werkudara serta untuk metrics menggunakan acc.
Arsitektur model yang telah dibuat menggunakan CNN dengan arsitektur MobileNet adalah sebagai berikut:
Proses training menggunakan data latih yang telah diproses pada tahapan preprocessing data dan untuk validasi menggunakan data validasi dan dilakukan sebanyak 100 epochs.
Setelah melewati 100 epoch, model yang telah dilatih dengan data latih menggunakan validasi dari data validasi mendapatkan akurasi pelatihan sebesar 100% dan akurasi validasi sebesar 99% sedangkan untuk kesalahan pelatihan sebesar 0.1% dan kesalahan validasi sebesar 1.56%.
Setelah mendapat hasil yang cukup baik, model disimpan dalam format md.5