Klasifikasi Bentuk Wajah Manusia Menggunakan Metode Convolutional Neural Network (CNN)
on
JNATIA Volume 1, Nomor 1, November 2022
Jurnal Nasional Teknologi Informasi dan Aplikasinya
Klasifikasi Bentuk Wajah Manusia Menggunakan Metode Convolutional Neural Network (CNN)
I Wayan Widya Premanandara1 dan I Gede Arta Wibawaa2
aProgram Studi Informatika, Universitas Udayana
Jimbaran, Badung, Bali, Indonesia 1[email protected] 2[email protected]. (corresponding author)
Abstract
Humans have a different face for each person. Differences in face shape can affect a person's appearance so usually someone will choose an appearance according to the shape of the face such as the appearance of hair. However, it is difficult to know the shape of a person's face. Therefore, in this study, the classification of the shape of the human face was carried out. The face shapes are classified as square and round faces. The method used in this research is Convolutional Neural Network (CNN) because it has good accuracy and is commonly used in various fields. In this study, the method succeeded in classifying the shape of the human face into squares and round shapes and getting results in the form of a testing accuracy of 75%. These results are close to the results of training and testing accuracy of 81%.
Keywords: face shape, classification, Convolutional Neural Network (CNN)
Manusia memiliki wajah yang berbeda – beda untuk setiap orang. Perbedaan wajah tersebut seperti bentuk mata, hidung, mulut, alis ataupun bentuk wajah. Pemanfaatannya pada teknologi yaitu dapat dijadikan informasi dalam pembuatan teknologi pengenalan wajah untuk keamanan. Seseorang dapat diketahui apakah melakukan tindak kejahatan dengan mengenali bentuk wajah [1]. Selain itu, perbedaan bentuk wajah dapat mempengaruhi penampilan seseorang sehingga biasanya seseorang akan memilih penampilan sesuai bentuk wajah seperti penentuan tampilan rambut. Namun, terkadang sulit untuk mengetahui bentuk wajah seseorang oleh karena itu diperlukan suatu sistem yang dapat mengelompokkan atau mengklasifikasikan bentuk wajah manusia.
Banyak metode saat ini yang dapat digunakan dalam klasifikasi salah satunya yang paling umum digunakan dan dengan akurasi yang baik adalah CNN. CNN atau Convolutional Neural Network merupakan metode pengolahan data dua dimensi yang memiliki kedalaman jaringan yang tinggi dan termasuk kedalam deep learning [2]. Terinspirasi dari jaringan syaraf manusia. Metode ini paling umum digunakan dalam berbagai bidang seperti computer vision, face recognition dan lainnya. Secara umum jenis CNN yang digunakan mirip dengan Multi-Layer Perceptron (MLP) yang terdiri dari Convolutional Layer, Pooling Layer dan Full Connected Layer.
Penelitian menggunakan CNN telah banyak dilakukan dalam klasifikasi, salah satunya penelitian yang menggunakan CNN untuk klasifikasi wajah bermasker [3]. Pada penelitian tersebut dilakukan untuk 3847 gambar dan dengan dua skema yaitu 3 layer dan 5 layer. Hasil penelitian ini yaitu mendapatkan akurasi sebesar 99,20% untuk training dan 70,59% untuk validation menggunakan 3 layer. Sedangkan untuk 5 layer mendapatkan akurasi sebesar 98,20% untuk testing dan 82,35% untuk validation dan telah dapat melakukan klasifikasi.
Sedangkan penelitian mengenai klasifikasi bentuk wajah manusia belum banyak dilakukan pada lima tahun terakhir dan membuat penulis tertarik untuk menelitinya. Pada penelitian sebelumnya telah dilakukan klasifikasi bentuk wajah manusia menggunakan metode Fisherface [4]. Adapun klasifikasi bentuk wajah yang dilakukan terdiri dari bentuk wajah persegi, oval, panjang dan bulat. Hasil penelitian mendapatkan tingkat rata – rata keberhasilan sebesar 65% dengan rata - rata tingkat kesalahan sebesar 38%.
Berdasrkan uraian diatas, panulis melakukan penelitian mengenai klasifikasi bentuk wajah. Adapun perbedaan dengan penelitian sebelumnya yaitu pada penelitian ini menggunakan metode CNN dengan 3 layer konvolusi untuk mengklasifikasikan bentuk wajah kotak dan bulat. Penelitian dilakukan mulai dari tahap akuisisi data, eksplorasi data, klasifikasi, dan evaluasi. Dengan adanya penelitian ini diharapkan dapat membantu dalam melakukan klasifikasi bentuk wajah dan dapat dimanfaatkan kedepannya seperti untuk pengenalan wajah atau sistem rekomendasi yang memerlukan bentuk wajah. Selain itu untuk mengetahu akurasi yang didapatkan agar dapat digunakan sebagai pembanding pada penelitian sejenis.
Berikut merupakan desain penelitian secara umum:
Gambar 1. Desain Penelitian
Pada tahap ini, dilakukan pengumpulan data dengan tehnik scrapping secara manual pada website Kaggle yaitu Face Shape Dataset, adapun jumlah data yang terkumpul adalah sebanyak 200 gambar untuk bentuk muka bulat dan 200 gambar untuk bentuk muka kotak. Semua gambar bentuk muka yang digunakan adalah bentuk muka laki-laki. Adapun usia dari gambar yang didapatkan adalah mulai remaja sampai tua.
Pada tahap ini dilakukan data augmentation. Hal ini dilakukan karena hanya diperoleh 200 gambar per kelas. Augmentation pada data gambar dilakukan dengan melakukan flip, rotasi, zoom dan rescale pada gambar bentuk muka untuk menambah inputan gambar sebelum diolah menggunakan metode CNN.
Berikut merupakan tahapan klasifikasi menggunakan metode CNN:
Gambar 2. Tahapan klasifikasi dengan CNN
-
2.4.1. Convolutional Layer
Convolutional layer adalah lapisan utama yang akan melakukan operasi konvolusi dengan keluaran layer yang diterima sebelumnya [5]. Layer ini bertujuan untuk melakukan ekstraksi fitur dengan mempelajari representasi fitur dari layer masukan yang terdiri dari filter – filter yang di pelajari secara acak untuk melakukan konvolusi. Proses tersebut menghasilkan transformasi linear data input berdasrkan informasi spasial yang ada pada data. Terdapat bobot yang berfungsi menspesifikasikan kernel konvolusi yang digunakan sehingga dapat dapat dilakukan pelatihan berdasarkan masukan pada CNN. Persamaan operasi konvolusi ditunjukan pada persamaan (1).
FM[i]j,k = (∑m ∑n N[j-m,k-n]F[m,n]) + bF (1)
Keterangan:
FM[i] = matriks feature map ke-i
j,k = posisi piksel matriks citra input
m,n = posisi piksel matriks filter konvolusi
N = matriks citra masukan
F = matriks filter konvolusi
bF = nilai bias pada filter
-
2.4.2. Activation Layer
Fungsi aktivasi merupakan fungsi non-linear dan disebut juga neuron. Fungsi ini akan memungkinkan penyelesaian permasalahan non-trivial pada sebuah jaringan syaraf tiruan. Sebuah nilai akan diambil dan akan dilakukan operasi matematika sehingga menghasilkan suatu pola fitur. Fungsi ini terletak pada proses setelah perhitungan konvolusi atau pooling atau perhitungan akhir keluaran feature map. Pada penelitian ini digunakan fungsi aktivasi yang paling umum digunakan yaitu ReLU. Seluruh piksel yang bernilai kurang dari 0 pada suatu citra akan dijadikan 0 oleh aktivasi ini [6]. Keuntungan utama ReLU dibandingkan yang lain yaitu kecepatan komputasi karena bebannya lebih rendah. Representasi matematisnya ada di persamaan (2):
f(x)ReLU = max(0,x) (2)
-
2.4.3. Max Pooling
Pooling Layer adalah lapisan yang dapat mengurangi sumberdaya komputasi pada saat memproses data dengan cara mengurangi dimensi feature map [7]. Selain itu, proses pelatihan model akan lebih efektif karena fitur yang diekstrak yaitu fitur dominan. Pada penelitian ini menggunakan max pooling yaitu menggunakan operasi maksimal untuk penentuannya dan sudah umum digunakan. Berikut adalah contoh max pooling:
Single depth slice
max pool with 2x2 filters and stride 2
Gambar 3. Contoh Operasi Max Pooling
-
2.4.4. Softmax Layer
Lapisan terakhir dari arsitektur CNN adalah lapisan keluaran berupa klasifikasi akhir. Pada lapisan ini terdapat penghitung kesalahan prediksi pada saat pelatihan pada CNN atau disebut loss function. Perbedaan antara keluaran aktual dan yang diprediksi dapat diketahui melalui kesalahan ini. Apabila telah dihitung maka akan dioptimalkan pada pelatihan. Pada penelitian ini menggunakan softmax layer untuk menghitung lost function tersebut. Nilai pada setiap kelas
diinterpretasikan sebagai probabilitas yang tidak ternormalisasi [8]. Representasi matematis ada di persamaan (3).
Y-; = 1 ιjk
exW ∑^=1exiJk
(3)
Pada tahap ini dilakukan evaluasi untuk mengukur kinerja dari model CNN yang dibuat dalam melakukan klasifikasi. Pada penelitian ini akan digunakan confusion matrix dalam pengukuran peforma model tersebut sehingga dapat diperoleh nilai accuracy, precision dan recall.
Gambar yang didapatkan dari situs Kaggle dibagi menjadi dua kelas yaitu bulat dan kotak dengan masing – masing berjumlah 200 data, sehingga total data adalah 400 data. Sedangkan terdapat 20 data lagi yang disediakan untuk testing. Adapun data yang digunakan adalah gambar laki – laki saja. Data tersebut dibagi sebanyak 80% untuk data training dan 20% untuk data validation. Sedangkan untuk implementasi model CNN yang digunakan dapat dilihat pada gambar 4.
Layer (type) |
Output Shape |
Param # |
random-flip (RandomFlip) |
(None, 18θ, 180, 3) |
0 |
random_rotation (RandomRota tion) |
(None, 18Θ, 18Θ, 3) |
0 |
random-zoom (RandomZoom) |
(None, 180, 180, 3) |
0 |
rescaling (Rescaling) |
(None, 180, 180, 3) |
Θ |
conv2d (Conv2D) |
(None, 180, 180, 128) |
3584 |
max_pooling2d (MaxPoolingZD ) |
(None, 90, 9θ, 128) |
0 |
conv2dl (Conv2D) |
(None, 90, 90, 64) |
73792 |
max_pooling2d_l (MaxPooling 2D) |
(None, 45, 45, 64) |
0 |
COiiv2d_2 (Conv2D) |
(None, 45, 45, 32) |
18464 |
max_pooling2d_2 (MaxPooling 2D) |
(None, 22, 22, 32) |
0 |
dropout (Dropout) |
(None, 22, 22, 32) |
0 |
flatten (Flatten) |
(None, 15488) |
0 |
dense (Dense) |
(None, 128) |
1982592 |
dropout_l (Dropout) |
(None, 128) |
0 |
dense-l (Dense) |
(None, 64) |
8256 |
dropout-2 (Dropout) |
(None, 64) |
0 |
dense-2 (Dense) |
(None, 2) |
130 |
Gambar 4. Implementasi Model CNN
Implementasi model CNN pada gambar 4 menggunakan sebanyakl 3 konvolusi. Adapun jumlah filter yaitu 128, 64, dan 32 dengan menggunakan kernel 3 x 3 dan dengan padding yaitu zero padding. Fungsi aktivasi ReLU digunakan apabila terdapat nilai yang negatif sehingga dapat dijadikan angka 0. Lalu dilakukan maxpooling. Setelah itu dilakukan dropout sebanyak 30% neuron. Kemudian akan diolah oleh flatten layer sebelum dibawa ke full connected layer. Untuk full connected layer penulis menggunakan filter sebanyak 128 dan melakukan dropout lagi
sebanyak 20% pada lapisan pertama. Selanjutnya dibuat full connected layer kedua dengan menggunakan filter sebanyak 64. Kemudian dilakukan dropout sebanyak 20%. Setelah itu dibuat layer output yang sesuai dengan jumlah kelas yang telah dibuat sebelumnya yaitu kotak dan bulat. Adapun aktivasi yang digunakan setiap full connected adalah ReLU. Tahap akhir akan melalui loss function menggunakan softmax lost function untuk menghitung kesalahan pelatihan sebelum di optimasi menggunakan optimizer adam. Adapun jumlah tuning dilakukan sebanyak 50 epochs.
Klasifikasi model bentuk wajah yang didapatkan yaitu pada proses training mendapatkan hasil akurasi berada di 0.8188 atau jika dalam persen adalah 81% dan akurasi validasi ada di angka 0.8125 atau 81% juga. Hasil tersebut dapat dilihat dari gambar 5. Berdasarkan hasil tersebut dapat diikatakan model yang dibuat cukup mampu dalam memprediksi bentuk wajah laki – laki dengan bentuk wajah kotak dan bulat.
Gambar 5. Grafik Akurasi dan Loss Proses Training dan Validasi
Selanjutnya model akan disimpan untuk proses pengujian. Adapun jumlah data yang digunakan adalah sebanyak 20 data yang terdiri dari 10 data dengan gambar bentuk wajah kotak dan 10 data dengan gambar bentuk wajah bulat. Akan dilakukan confusion matrix untuk 20 data uji.
Confusion Matrix
[[8 2]
[3 7]]
Classification Report
precision |
recall |
fl-score |
support | |
round |
Θ.73 |
θ.8θ |
θ.76 |
1Θ |
square |
θ.78 |
θ.7θ |
θ.74 |
10 |
accuracy |
θ.75 |
2θ | ||
macro avg |
θ.75 |
θ.75 |
θ.75 |
2θ |
weighted avg |
θ.75 |
θ.75 |
θ.75 |
2θ |
Gambar 6. Confusion matrix
Berdasarkan gambar 6 didapatkan 8 gambar yang diperidiksi benar sebagai bentuk wajah bulat dan 2 yang diprediksi salah. Selain itu didapatkan 7 gambar yang diperidksi benar sebagai bentuk wajah kotak dan 3 yang diprediksi salah sehingga kita mendapatkan rata-rata akurasi testing di 0,75 atau 75%. Nilain tersebut mendekati hasil validasi. Selain itu telah didapatkan juga nilai precision dan recall untuk 2 kelas yaitu bentuk wajah kotak dan bulat.
Berdasarkan penelitian yang telah dilakukan, model CNN untuk klasifikasi bentuk wajah manusia yang dibagi kedalam dua kelas yaitu bentuk wajah kotak dan bulat memiliki nilai akurasi training sebesar 0.8188 atau 81% dan akurasi validasi sebesar 0.8125 atau 81%. model tersebut mampu mendapatkan akurasi untuk data testing sebesar 0,75 atau 75%. Nilai tersebut tidak jauh berbeda
dengan nilai akurasi validasi. Akurasi tersebut membuktikan bahwa model CNN yang dibuat cukup baik untuk melakukan klasifikasi bentuk wajah. Dengan adanya penelitian ini diharapkan dapat membantu dalam bidang lain seperti pengenalan wajah untuk keamanan atau lainnya. Untuk mendapatkan hasil yang terbaik, disarankan untuk memperbanyak data atau mengganti arsitektur untuk meningkatkan akurasi. Selain itu rencana kedepan perlu dilakukan pengembangan untuk bentuk muka lainnya.
References
-
[1] T. C. A. Zulkhaidi, E. Maria and Yulianto, “Pengenalan Pola Bentuk Wajah dengan OpenCV” Jurnal Rekayasa Teknologi Informasi (JURTI), vol. 3, no. 2, pp 181-186, 2019.
-
[2] Sunardi, A. Fadlil and D. Prayogi, "Sistem Pengenalan Wajah pada Keamanan Ruangan Berbasis Convolutional Neural Network" Journal Sains Komputer & Informatika (j-SAKTI), vol. 6, no. 2, p. 636-647, 2022.
-
[3] F. M. Qotrunnada and P. H. Utomo, "Metode Convolutional Neural Network untuk Klasifikasi Wajah Bermasker" Journal Prosiding Seminar Nasional Matematika (PRISMA), vol. 5, no. 1, p. 799-807, 2022.
-
[4] Muthmainnah and Rahayu, "Pengenalan Bentuk Wajah Manusia Pada Citra Menggunakan Metode Fisherface" Jurnal Penelitian Teknik Informatika (TECHSI), vol.8, no.1, p. 215-225, 2019.
-
[5] Y. E. B. Purba et al, "Perancangan Alat Pendeteksi Kematangan Buah Nanas Dengan Menggunakan Mikrokontroler Dengan Metode Convolutional Neural Network" Journal Ilmiah Teknik Informatika (Methotika), vol. 2, no. 1, pp. 13-21, 2022.
-
[6] S. Ilahiyah and A. Nilogiri, "Implementasi Deep Learning Pada Identifikasi Jenis Tumbuhan Berdasarkan Citra Daun Menggunakan Convolutional Neural Network" Journal Sistem & Teknologi Informasi Indonesia (JUSTINDO), vol. 3, no. 2, p. 49-56, 2018.
-
[7] M. R. Alwanda, R. P. K. Ramadhan and D. Alamsyah, "Implementasi Metode Convolutional Neural Network Menggunakan Arsitektur LeNet-5 untuk Pengenalan Doodle" Jurnal
Algoritme, vol. 1, no. 1, p. 45-56, 2020.
-
[8] E. N. Arrofiqoh and Harintaka, "Implementasi Metode Convolutional Neural Network Untuk Klasifikasi Tanaman Pada Citra Resolusi Tinggi" Geomatika, vol. 24, no. 2, p. 61-68, 2018.
Lampiran
Hasil Cek Plagiarisme melalui https://www.duplichecker.com/id
Hasil cek plagiarisme bab 1 dan 2:
e Dupli Checker
PLAGIARISM SCAN REPORT
Hasil cek plagiarisme abstrak, bab 3 dan 4:
378
Discussion and feedback