Deep Learning Pengembangan Aplikasi Deep Learning untuk Identifikasi Kain Endek Bali
on
Jurnal Ilmu Komputer VOL. 15. Nomor 1
p-ISSN: 1979-5661
e-ISSN: 2622-321X
Pengembangan Aplikasi Deep Learning untuk Identifikasi Kain Endek Bali
I Gusti Agung Gede Arya Kadyanan
Informatics Department, Faculty of Mathematics and Natural Science University of Udayana
Bukit Jimbaran, Indonesia [email protected]
Abstract
Endek fabric is one of the woven fabric crafts from Province of Bali, Indonesia. In its development, nowadays endek fabric is widely used as a traditional clothing or it can be used as a school or office uniforms. Most of people still don’t know if endek fabric has a variety of motifs or designs, so in this research will be explained the classification of Endek Bali fabric types based on its motifs using one of the deep learning methods.
In this research, the classification of Endek Bali fabric types consist of preprocessing, training and testing which using the Convolutional Neural Network (CNN) algorithm. For the CNN architecture that will be used is the LeNet-5 architecture. In the CNN algorithm, the feature extraction process is carried out at the convolution layer, then the classification process is carried out in fully connected layer.
Based on the research which conducted, it using 4 pieces of Endek Bali fabric class, where 75% (75 data) of each endek fabric class will be used as training data, whereas 25% (25 data) of each endek fabric class will be used as testing data, with the overall data for each class amounting to 100 data. In the best training scenario that using 0.00001 as the learning rate and 0.0001 as the minimum error change value, the highest accuracy value is obtained with an average accuracy by 80%.
Keywords: Convolutional Neural Network, Kain Endek, Learning Rate, LeNet-5
Bagi masyarakat Bali, kain endek bukanlah suatu hal yang asing lagi. Endek adalah kain tenun ikat khas Bali yang biasanya memiliki berbagai macam motif yang unik, motif-motif itu pula dapat membedakan antara jenis kain endek yang satu dengan yang lainnya[16]. Namun, pada umumnya masih banyak masyarakat Indonesia sendiri yang belum tahu mengenai kain Endek, beberapa mungkin tahu hanya sekedar tampilan wujud dari kain endek tersebut.
Terdapat penelitian sebelumnya yang membahas tentang klasifikasi citra motif kain, salah satunya penelitan Adi Nugraha (2014). Adi Nugraha (2014) melakukan penelitian untuk klasifikasi pada citra motif batik dengan menggunakan metode K-Nearest Neighbour. Pada penelitian Adi Nugraha (2014) dilakukan ekstraksi fitur dengan perhitungan matriks pasangan intensitas GLCM (Gray Level Co-Occurence Matrix), dengan ekstraksi fitur demikian dapat dicari fitur berupa tekstur motif yang meliputi Entropy, Correlation, Homogeneity, Energy. Adapula penelitian dengan menggunakan citra motif kain endek masih dengan menggunakan metode GLCM dan K-Nearest Neighbour, penelitian ini dilakukan oleh Surya Rahayuda (2015). Surya Rahayuda (2015) melakukan klasifikasi pada 4 kelas kain endek, hasil akurasi yang paling baik didapatkan ketika menggunakan nilai K=15, yakni sebesar 43.33%. Permasalahan umum yang terjadi dari kedua contoh penelitian yang sudah dilakukan tersebut adalah kurang baiknya proses ekstraksi fitur yang dilakukan[11].
Berdasarkan permasalahan diatas dan meninjau dari penelitian-penelitian yang telah dilakukan sebelumnya dengan beberapa metode yang ada, maka peneliti mencoba untuk merancang dan melakukan implementasi dengan menggunakan metode Convolutional Neural Network (CNN) untuk klasifikasi kain endek. Dengan penggunaan metode CNN dimaksudkan memberikan solusi untuk menghindari proses ekstraksi fitur dengan metode lain[1][2][3]. Metode CNN merupakan pengembangan dari metode Jaringan Syaraf Tiruan, dimana pada metode ini terdiri dari dua tahapan yakni proses training dengan backpropagation lalu selanjutnya adalah proses klasifikasi object dengan feedforward[17][18]. Sehingga, diharapkan sistem yang hendak diimplementasikan tersebut dapat mengenali citra yang dimaksud dan menghasilkan akurasi yang cukup tinggi dibandingkan penelitian lain yang telah dilakukan sebelumnya.
Penelitian ini menggunakan metode Convolutional Neural Network (CNN). CNN terdiri dari beberapa jenis layer diantaranya convolution layer, pooling layer, dan fully connected layer[4]. Pada convolution layer dan pooling layer terjadi proses ekstraksi fitur dari citra, selanjutnya pada fully connected layer terjadi proses klasifikasi untuk penentuan kelas[7][8]. Dalam menyelesaikan kasusnya, biasanya metode CNN menggunakan arsitektur tertentu untuk pengolahan data, pada penelitian ini arsitektur CNN yang digunakan adalah LeNet-5, yang terdiri dari 2 buah convolution layer, 2 buah pooling layer dan sebuah fully connected layer[10]. Model CNN juga memiliki bobot-bobot yang terdapat pada convolution layer dan fully connected layer. Bobot-bobot ini dioptimalkan nilainya pada proses pelatihan model CNN, dan kemudian juga akan digunakan pada proses pengenalan. Input pada metode ini adalah citra kain endek dan output yang dihasilkan dari proses ekstraksi fitur adalah berupa vektor. Kemudian pada proses pengenalan / klasifikasi citra akan melibatkan operasi perkalian matriks dan konvolusi. Secara umum Arsitektur LeNet-5 terdiri atas 2 layer konvolusi, 2 layer pooling untuk proses ekstraksi fitur dan 1 layer fully connected untuk proses klasifikasi sehingga didapatkan output kelas yang sesuai. Berikut ilustrasi arsitektur CNN LeNet-5 yang digunakan pada penelitian ini.
Gambar 3.1 Arsitektur CNN LeNet-5
e-ISSN: 2622-321X
Untuk keterangan dari setiap layer yang digunakan pada arsitektur CNN seperti pada gambar 3.1 di atas dapat dilihat pada tabel 3.1 berikut ini.
Tabel 3.1 Keterangan arsitektur CNN yang digunakan
Urutan Layer |
Nama Layer |
Jenis Layer |
Hyperparameter |
1 |
Convolution Layer 1 |
Convolution Layer |
Jumlah filter: 12, Ukuran filter: 5 x 5, Stride: 1 |
2 |
ReLU 1 |
Fungsi aktivasi | |
3 |
Pooling Layer 1 |
Pooling Layer |
Ukuran window: 2 x 2 |
4 |
Convolution Layer 2 |
Convolution Layer |
Jumlah filter: 24, Ukuran filter: 3 x 3, Stride: 1 |
5 |
ReLU 2 |
Fungsi aktivasi | |
6 |
Pooling Layer 2 |
Pooling Layer |
Ukuran window: 2 x 2 |
7 |
Fully Connected Layer |
Fully Connected Layer |
Jumlah neuron : 2400 Output kelas : 4 |
8 |
Softmax |
Fungsi aktivasi |
Output label kelas |
Gambar 3.2 merupakan ilustrasi terjadinya pemrosesan data pada saat tahap pelatihan, dimulai dari data yang masuk dengan ukuran citra 48 x 48 kemudian akan memasuki ke layer ekstraksi fitur (layer konvolusi dan layer pooling), lalu setelah nya akan diklasifikasikan pada layer fully connected. Kemudian, untuk proses penguraian ukuran citra dari input hingga output akan dijelaskan pada tabel berikut ini.
Tabel 3.2 Keterangan pemrosesan data pada metode CNN yang digunakan |
Stride | ||||
Urutan Layer |
Feature Maps |
Ukuran (Size) |
Ukuran Kernel | ||
Input |
Citra gambar |
1 |
48 x 48 |
- |
- |
1 |
Layer Konvolusi |
12 |
44 x 44 |
5 x 5 |
1 |
2 |
Layer Max Pooling |
12 |
22 x 22 |
2 x 2 |
2 |
3 |
Layer Konvolusi |
24 |
20 x 20 |
3 x 3 |
1 |
4 |
Layer Max Pooling |
24 |
10 x 10 |
2 x 2 |
2 |
5 |
Layer Fully-Connected |
- |
2400 neuron |
- |
- |
Citra yang diinput dengan ukuran 48 x 48 piksel akan melalui proses ekstraksi fitur pada layer konvolusi dan juga layer pooling (sesuai dengan keterangan tabel 3.1) dengan bantuan fungsi aktivasi ReLU. Kemudian, proses klasifikasi akan dilakukan pada layer fully connected dengan jumlah probabilitas output sebanyak 4 kelas. Pada setiap skenario pelatihan akan didapatkan nilai value loss / error dari model CNN yang dihasilkan. Berdasarkan nilai value loss / error tersebut maka proses pelatihan akan berhenti apabila nilai value loss sudah mencapai nilai threshold yang digunakan. Selanjutnya, model arsitektur seperti diatas tersebut juga akan digunakan pada proses pengenalan / pengujian.
Proses pertama yang dilakukan pada tahap preprocessing adalah cropping. Proses cropping dilakukan dengan menyingkirkan area pada gambar yang tidak berisikan motif kain endek
e-ISSN: 2622-321X
(mencari region of interest objek). Proses cropping dilakukan secara manual sebelum data digunakan di dalam sistem. Berikut ini adalah ilustrasi dari proses cropping yang telah dilakukan.
Gambar 4.2 Proses preprocessing data citra
Pemotongan / croping pada dataset dilakukan berdasarkan area gambar yang tidak memuat / berisikan motif kain endek, dimana dapat dilihat pada Gambar 4.2 area pinggir gambar asli masih memiliki daerah yang tidak sesuai dengan motif kain endek yang dibutuhkan. Pemotongan ini dilakukan dengan memanfaatkan nilai piksel, area akan dipotong dengan ketentuan 1:1 (1 banding 1) dengan tujuan untuk menyisakan area citra segi empat dengan motif kain endek di dalamnya.
Setelah proses cropping selesai, selanjutnya citra diresize menjadi ukuran 48 x 48 piksel. Pada tahap preprocessing ini menghasilkan 100 buah citra untuk masing-masing kelas. Data citra tersebut kemudian dibagi untuk data latih dan juga data uji. Sebanyak 75 buah data pada setiap kelasnya digunakan sebagai data latih, selanjutnya sebanyak 25 buah data pada setiap kelasnya digunakan sebagai data uji.
Pemotongan pada dataset dilakukan berdasarkan area gambar yang tidak memuat / berisikan motif kain endek, dimana dapat dilihat pada Gambar 4.2 area pinggir gambar asli masih memiliki daerah yang tidak sesuai dengan motif kain endek yang dibutuhkan. Pemotongan ini dilakukan dengan memanfaatkan nilai piksel, area akan dipotong dengan ketentuan 1:1 (1 banding 1) dengan tujuan untuk menyisakan area citra segi empat dengan motif kain endek di dalamnya.
Setelah proses cropping selesai, selanjutnya citra diresize menjadi ukuran 48 x 48 piksel. Pada tahap preprocessing ini menghasilkan 100 buah citra untuk masing-masing kelas. Data citra tersebut kemudian dibagi untuk data latih dan juga data uji. Sebanyak 75 buah data pada setiap kelasnya digunakan sebagai data latih, selanjutnya sebanyak 25 buah data pada setiap kelasnya digunakan sebagai data uji.
Proses pelatihan diawali dengan terlebih dahulu menentukan model CNN yang terdiri dari beberapa layer, yaitu; convolution layer, pooling layer, dan fully connected layer, dimana setiap layer memiliki fungsi forward dan backward.
Proses pelatihan pada setiap data training akan terus dilakukan hingga mencapai pada kondisi pemberhentian. Pada penelitian ini, kriteria pemberhentian yang digunakan adalah pada variabel jumlah maximum epoch dan batas minimum perubahan error (threshold). Pelatihan akan dihentikan ketika epoch telah mencapai pada maximum epoch atau ketikan perubahan error yang didapat kurang dari atau sama dengan batas minimum perubahan error. Untuk mengetahui apakah sudah mencapai konvergen atau tidak, maka perubahan rata-rata error akan dihitung, pada implementasi penelitian ini maximum epoch yang digunakan pada penelitian ini adalah 1000 epoch dan batas minimum perubahan error yang digunakan adalah 0,001 dan juga 0,0001. Model CNN yang dihasilkan dalam proses pelatihan disimpan ke dalam beberapa file .npy pada satu direktori temp, selanjutnya file .npy ini nantinya akan diload dan dapat digunakan pada proses pengenalan. Pada tahap pelatihan dengan 4 kelas kain endek akan dilakukan sebanyak 18 skenario, dimana pada setiap skenario dihitung nilai perubahan penurunan errornya (Cross Entropy Error). Dalam skenario yang akan dilakukan ini, yang akan dijadikan paramater adalah nilai learning rate dan juga nilai batas minimum perubahan error (threshold).
e-ISSN: 2622-321X
Sistem berikut diimplementasikan pada aplikasi berbasis desktop, dengan bahasa pemrograman python. Pada sistem, user dapat melakukan input gambar baru untuk kemudian dilakukan pengenalan terhadap inputan tersebut. Pada bagian tengah sistem akan ditampilkan grafik penurunan nilai perubahan error yang dianggap merupakan skenario terbaik dalam proses pelatihan. Kemudian, user juga dapat melakukan pengujian terhadap keseluruhan data testing. Ketika pengujian seluruh data testing dijalankan, maka output yang dihasilkan adalah nilai akurasi dari metode Convolutional Neural Network (CNN) yang digunakan.
Pada implementasi sistem, user dapat melakukan pencarian pada gambar kain endek yang ingin diklasifikasikan dengan cara melakukan klik pada bagian masukkan gambar lalu klik hasil klasifikasi. Kemudian hasil klasifikasi akan muncul pada bagian bawah tombol tersebut (untuk lebih jelasnya akan digambarkan pada Gambar 4.5). Pada implementasi proses pengenalan, sistem akan menggunakan skenario terbaik yang dilakukan pada saat proses pelatihan. Input pada proses pengenalan ini adalah citra kain endek, yang mana sebelum diproses citra akan terlebih dahulu diresize menjadi ukuran 48 x 48 piksel. Output dari proses pengenalan ini adalah kelas kain endek hasil pengenalan.
Pada bagian ini dijelaskan implementasi dari proses pengujian dan hasil pengujian setiap kelompok data yang digunakan. Pada tahap pengujian dilakukan pengenalan pada seluruh data uji. Akurasi dihitung berdasarkan rasio jumlah pengenalan benar dengan jumlah data yang diuji.
Tabel 4.1 Hasil pelatihan pada setiap skenario | |||
No |
Batas minimum perubahan error |
Learning Rate |
Cross Enthropy Error |
1 |
0.001 |
0.0001 |
1.38629753 |
2 |
0.001 |
0.0002 |
1.38581739 |
3 |
0.001 |
0.0005 |
1.38620953 |
4 |
0.001 |
0.00001 |
0,05276481 |
5 |
0.001 |
0.00002 |
1.36336145 |
6 |
0.001 |
0.00005 |
1.38642675 |
7 |
0.001 |
0.000001 |
0.05410252 |
8 |
0.001 |
0.000002 |
0.00595746 |
9 |
0.001 |
0.000005 |
0.00434579 |
10 |
0.0001 |
0.0001 |
1.38617934 |
11 |
0.0001 |
0.0002 |
1.38615247 |
12 |
0.0001 |
0.0005 |
1.38621484 |
13 |
0.0001 |
0.00001 |
0.00021125 |
14 |
0.0001 |
0.00002 |
0.91623555 |
15 |
0.0001 |
0.00005 |
1.38606935 |
16 |
0.0001 |
0.000001 |
0.01056149 |
17 |
0.0001 |
0.000002 |
0.00062951 |
18 |
0.0001 |
0.000005 |
0.00465627 |
Berdasarkan hasil pelatihan pada tabel 4.1 di atas, didapatkan bahwa nilai cross entropy error terkecil didapatkan pada skenario ke-13 yaitu pelatihan dengan menggunakan nilai learning rate 0,00001 dan menggunakan nilai batas minimum perubahan error (threshold) 0.0001, didapatkan nilai cross entropy error sebesar 0.00021125. Skenario pelatihan CNN yang dihasilkan pada skenario ke-13 dianggap sebagai model CNN terbaik yang kemudian akan digunakan untuk tahap pengenalan atau pengujian data. Berikut ini merupakan tampilan grafik penurunan perubahan nilai error pada skenario terbaik selama proses training.
e-ISSN: 2622-321X
Gambar 4.3 Grafik penurunan perubahan nilai error pada skenario terbaik
Pada tabel 4.3 akan ditunjukkan penggalan hasil pengujian data uji pada setiap kelas.
Tabel 4.3 Penggalan hasil pengujian data uji setiap kelas
Jenis Kain |
Jumlah Jumlah Salah Dikenali Sebagai Pengenalan Pengenalan Benar Salah |
Motif Cemplong |
19 6 motif gringsing, motif sekar, motif wajik, motif wajik, motif sekar, motif sekar |
Motif Gringsing |
21 4 motif sekar, motif wajik, motif wajik, motif cemplong |
Motif Sekar |
22 3 motif wajik, motif cemplong, motif gringsing |
Motif Wajik |
18 7 motif gringsing, motif gringsing, motif cemplong, motif sekar, motif cemplong, motif sekar, motif gringsing |
Pada gambar 4.6 dibawah ini dapat dilihat proses salah pengenalan / klasifikasi oleh sistem, dimana jenis data motif cemplong salah dikenali sebagai jenis data motif sekar.
Gambar 4.6 Implementasi Proses Pengenalan Citra Endek
e-ISSN: 2622-321X
Sejumlah kesimpulan yang dapat diambil dari penelitian ini antara lain adalah sebagai berikut.
-
1. Pada penelitian ini telah berhasil diimplementasikan metode Convolutional Neural Network (CNN) untuk menyelesaikan kasus yang berkaitan dengan pengenalan kain Endek Bali, dengan melakukan perubahan parameter pada nilai learning rate dan nilai batas minimum perubahan error (threshold) selama proses pelatihan data, hal ini mempengaruhi terjadinya perbedaan nilai cross entropy yang dihasilkan. Nilai cross entropy terkecil diperoleh pada penggunaan nilai learning rate 0.00001 dan nilai batas minimum perubahan error 0.0001.
-
2. Pada penelitian ini, nilai akurasi pengenalan kain Endek Bali terbesar diperoleh pada kelompok data endek motif sekar yaitu sebesar 88%, sedangkan nilai akurasi terkecil diperoleh pada kelompok data endek motif wajik yaitu sebesar 72%, dan secara keseluruhan nilai akurasi yang diperoleh untuk pengenalan kain endek Bali dengan menggunakan metode CNN adalah sebesar 80%.
References
-
[1] Dewi, M.C. (2018). “Deep Learning Convolutional Neural Network Untuk Klasifikasi Pengenalan Objek Menggunakan MXNet”. Yogyakarta.
-
[2] Dharmadi, Richard. (2018). “Mengenal Convolution Layer dan Pooling Layer” https://medium.com/nodeflux/mengenal‐convolutional‐layer‐dan‐pooling‐layer‐ 3c6f5c393ab2
-
[3] Fadilah, N.K. (2014). “Perancangan Buku Pengenalan Kain Endek Bali”. Repositori Universitas Multimedia Nusantara, Tangerang.
-
[4] Karn, Ujjwal. (2016). An Intuitive Explanation of Convolutional Neural Networks. Tidak diterbitkan. Tersedia pada www.kdnuggets.com/2016/11/intuitive‐explanation‐
convolutional‐neural‐networks.html.
-
[5] Kasim, A.A., Harjoko, A. (2014). “Klasifikasi Citra Batik Menggunakan Jaringan Syaraf Tiruan Berdasarakan Gray Level Co‐Occurence Matrices (GLCM)”. Yogyakarta.
-
[6] Krenker, Andrej., Bester, Janez., Kos, Andrej. (2011). “Introduction to the Artificial Neural Networks, ArtificialNeural Networks ‐ Methodological Advances and Biomedical Applications”, Prof. Kenji Suzuki (Ed.), ISBN: 978953‐307‐243‐2, InTech. Tidak diterbitkan Tersedia pada http://www. intechopen.com/books/artificial‐neural‐
networksmethodological‐advances‐and‐biomedical‐applications/introduction‐to‐the‐ artificial‐neural‐networks.
-
[7] Krizhesky, A., Sutskever, I., Hinton, G.E. (2012). “ImageNet Classification with Deep Convolutional Neural Networks”. Neural Information Processing Systems, pp.1–9. Toronto.
-
[8] Marbun, J.T. (2017). “Klasifikasi Stroke Menggunakan Convolutional Neural Network”. Departemen Teknologi Informasi, Universitas Sumatera Utara.
-
[9] Nugraha, Adi, Hapsari, Widi, Haryono, Nugroho Agus. (2014). ”Analisis Tekstur Pada Citra Motif Batik Untuk Klasifikasi Menggunakan K‐NN”. Yogyakarta.
-
[10] Pradnyanna, W.M. (2018). “Penerapan Optical Character Recognition Dengan Metode Convolutional Neural Network Untuk Mengenali Tulisan Huruf dan Angka Anak Usia Dini”. Universitas Udayana, Bukit Jimbaran, Bali.
-
[11] Pujoseno, Jimmy. (2018). “Implementasi Deep Learning Menggunakan Convolutional Neural Network untuk klasifikasi Alat Tulis”. Tugas Akhir Universitas Islam Indonesia, Yogyakarta.
-
[12] Puspitaningrum, Diyah. (2006). Pengantar Jaringan Syaraf Tiruan. Yogyakarta: Penerbit Andi.
-
[13] Putra, J.W.G. (2018). “Pengenalan Konsep Pembelajaran Mesin dan Deep Learning”, Edisi 1.1. Tokyo Institute Of Technology.
e-ISSN: 2622-321X
-
[14] Rahayuda, I G.S. (2015). “Texture Analysis on Image Motif of Endek Bali using K‐Nearest Neighbour Classification Method”. Denpasar, Bali.
-
[15] Riadi, M. (2016). “Pengolahan Citra Digital”.
https://www.kajianpustaka.com/2016/04/pengolahan‐citra‐digital.html
-
[16] Sumadi, I W.S., Hartono, I M.D.S., Yudha, I P.P.K. (2014). “Inventarisasi Perlindungan Karya Budaya Endek Di Provinsi Bali”, Balai Pelestarian Nilai Budaya Bali, ISBN: 602‐258‐ 237‐7, Kementrian Pendidikan dan Kebudayaan.
-
[17] Zhang, Zhifei. (2016). Derivation of Backpropagation in Convolutional Neural Network (CNN). University of Tenesee.
-
[18] Zufar, M., Setiyono, B. (2016). “Convolutional Neural Networks untuk Pengenalan Wajah Secara Real‐Time”. Surabaya : Jurnal Sains dan Seni ITS, Vol.5, No.2.
39
Discussion and feedback