• Tidak ada hasil yang ditemukan

Perancangan Klasifikasi dengan Metode SVM

BAB 3 DESAIN SISTEM

3.1 Desain Software

3.1.4 Perancangan Klasifikasi dengan Metode SVM

Perancangan klasifikasi dengan algoritma Support Vector Machine dibuat untuk mengetahui akurasi data yang telah didapatkan sebelumnya ke dalam beberapa jenis emosi seperti pada Gambar 3.5 berikut ini. Data dari sensor GSR dan juga sensor Heart Rate yang sudah didapatkan sebelumnya menggunakan metode K-Means akan disimpan dalam file csv. Selanjutnya data tersebut akan dinormalisasi agar nilai datanya menjadi 0-1. Data dari setiap kelas akan di bagi menjadi 80% data training dan 20% data testing. Data train dan data testing dari masing pembagian tiap kelas. Setelah itu, data train dan juga data testing yang sudah dikumpulkan akan di acak untuk menghapus anomaly yang bergantung pada urutan dalam data. Label dari setiap kelas akan dirubah menjadi output setiap kumpulan data. Selanjutnya dapat dilakukan klasifikasi dengan menggunakan metode SVM dan dengan memanfaatkan 4 jenis kernel dalam metode Support Vector Machine (SVM) yaitu linier, polynomial, Gaussian RBF, Serta Sigmoid sebagai pembanding seperti yang tampak pada Tabel 3.1. Kernel Linear digunakan ketika data yang akan diklasifikasi dapat terpisah dengan sebuah garis atau hyperlane. Sedangkan, kernel non-linier digunakan ketika data

33

Gambar 3.5 Flowchart Perancangan SVM

hanya dapat dipisahkan dengan garis lengkung atau sebuah bidang pada ruang dimensi tinggi.

Tabel 3.1 Tipe Kernel pada Metode SVM

No Type Function

1 Linier ( , ) =

2 Polynomial ( , ) = ( )

3 Gaussian RBF ( , ) = (−‖ − ‖2 2 ) 4 Sigmoid ( , ) = ( ( ) )

Dari hasil klasifikasi tersebut nantinya akan diketahui model terbaik sistem berdasarkan tingkat akurasinya.

34

Gambar 3.9 Perancangan Klasifikasi Wajah

Gambar 3. 8 Blok diagram pengambilan dataset dengan Webcam 3.1.5 Pengambilan dan Pengumpulan Dataset Ekspresi Anak

Dataset untuk klasifikasi emosi pada anak berdasarkan ekspresi yang digunakan pada penelitian ini adalah berupa image. Data image wajah dalam penelitian ini bersumber dari pengambilan image langsung menggunakan webcam. Untuk pengambilan dataset menggunakan webcam dilakukan dengan cara capture langsung wajah anak. untuk mendeteksi area wajah masing-masing anak pada sampel gambar yang diambil, digunakan haarcascade dan dilakukan cropping pada area wajah. Diagram blok dari proses pengambilan dataset terdapat pada Gambar 3.8.

Dari hasil pengumpulan dataset tersebut ditetapkan sebanyak 10 anak dan masing masing anak diambil 500 image, sehingga jumlah image yang akan digunakan dalam penelitian ini sebanyak 5000 image wajah anak.

3.1.6 Perancangan Klasifikasi Menggunakan CNN

Perancangan klasifikasi dengan metode CNN dibuat untuk mengklasifikasikan data ekspresi wajah yang telah didapatkan sebelumnya ke dalam beberapa jenis emosi seperti pada Gambar 3.9 berikut ini.

35 BAB 4

EXPERIMEN DAN UJI COBA

Progres penelitian yang sudah dilakukan peneliti yaitu melakukan studi literatur mengenai cara mendapatkan emosi anak berdasarkan detak jantung dan konduktivitas kulit, pengujian sensor Heart Rate untuk mengetahui detak jantung anak berdasarkan 4 kondisi, pengujian sensor GSR untuk mengetahui konduktivitas kulit pada anak berdasarkan 4 kondisi, menguji data dengan metode K-Means, pembentukan model klasifikasi emosi menggunakan metode Convolutional Neural Network (CNN), pembentukan arsitektur CNN, melakukan pelatihan data untuk membuat model CNN, menguji akurasi data training, serta menguji model CNN secara riil time menggunakan webcam.

4.1 Dataset Retrieval Berdasarkan Kondisi Tubuh

Data yang dikumpulkan berjumlah 800 data yang terdiri dari 2 parameter yaitu, bpm, dan konduktivitas kulit. Data tersebut diperloeh dengan melakukan uji coba kepada 10 orang sebanyak 4 kali dengan pengambilan 20 data untuk masing masing kondisi per anak. Untuk memudahkan pengambilan data emosi senang, sedih, marah, dan netral berdasarkan detak jantung dan konduktivitas kulit pada anak maka dibuatlah 4 kondisi yaitu:

4.1.1 Kondisi Memperoleh Emosi Senang

Pada kondisi ini, seorang anak akan dihadapkan pada sebuah video. Video tersebut memiliki unsur yang dapat membuat anak merasa senang seperti unsur lucu, tenang, dan sebagainya.

36 4.1.2 Kondisi Memperoleh Emosi Sedih

Pada kondisi ini, seorang anak akan dihadapkan pada sebuah video. Video tersebut memiliki unsur yang dapat membuat anak merasa sedih seperti unsur empati, tegang, sepi, dan sebagainya.

4.1.3 Kondisi Memperoleh Emosi Marah

Pada kondisi ini, seorang anak akan dihadapkan dengan suatu permainan yang sulit. Sehingga dapat membuat anak merasa marah seperti unsur kesal, frustasi, dan sebagainya.

4.1.4 Kondisi Memperoleh Emosi Netral

Pada kondisi ini, untuk memastikan nilai emosi yang didapatkan benar maka ditambahkan pengukuran untuk kondisi emosi netral dimana pengukuran dilakukan pada saat anak tidak diberi stimultan emosi apapun. Sehingga dapat diketahui perbedaan atau perubahan nilai emosi dari kondisi neutral ke kondisi emosi lainya.

4.2 Alat Pengujian Sistem

Pengujian alat baik sensor maupun performa system tersaji pada penjelasan berikut ini:

4.2.1 Pengujian Sensor Heart Rate

Pengujian ini dilakukan untuk membuktikan bahwa sensor Detak Jantung mampu bekerja secara maksimal untuk mengukur detak jantung pada anak yang akan digunakan sebagai objek penelitian.

37

Gambar 4. 1Konfigurasi MAX30102 dengan Mikrokontroller a. Peralatan yang digunakan:

- Sensor : MAX30102

- Mikrokontroller : Arduino Mega 2560 - Media Komunikasi : Wire

b. Setting Pengujian

- Mengkonfigurasi sensor seperti Gambar 4.1.

Sensor Heart Rate dikonfigurasikan dengan Arduino Mega 2560 dengan cara menyesuaikan pin seperti Tabel 4.1.

Tabel 4. 1 Konfigurasi Pin HR pada Arduino

- Mengupload program sensor yang sudah dibuat menggunakan software Arduino IDE.

MEGA 2560 MAX30102

GND GND

3.3 V Vin

SDA SDA

SCL SCL

38

Gambar 4.2 Penempatan Jari pada Sensor Heart Rate - Meletakkan jari telunjuk pada sensor seperti Gambar 4.2.

Untuk mengetahui kinerja dari sensor Heart Rate yang digunakan yaitu sensor MAX30102, maka dapat dilakukan dengan membandingkannya pada alat ukur pembanding dengan spesifikasi sebagai berikut:

Tabel 4.2 Alat Pembanding Pengujian Sensor

NO Nama Alat

Pembanding Spesifikasi Fungsi

1 Oxymeter

Meas range: 30 s/d 240 BPM Resolution: 1 BPM

Accuracy: +- 1 bpm or +- 1 Percent

Pengukuran Heart Rate

4.2.2 Pengujian Sensor GSR

Pengujian ini dilakukan untuk membuktikan bahwa sensor GSR mampu bekerja secara maksimal untuk mengukur konduktivitas kulit pada anak yang akan digunakan sebagai objek penelitian.

a. Peralatan yang digunakan:

- Sensor : Groove GSR

- Mikrokontroller : Arduino Mega 2560 - Media Komunikasi : Wire

b. Setting Pengujian

- Mengkonfigurasi sensor seperti Gambar 4.3.

39

Gambar 4.3 Kofigurasi Sensor GSR

Gambar 4.4 Penempatan Jari Pada Sensor GSR

Sensor GSR dikonfigurasikan dengan mikrokontroller Arduino dengan cara menyesuaikan pin seperti Tabel 4.3.

Tabel 4.3 Pinout Arduino Ke Sensor GSR

- Mengupload program sensor yang sudah dibuat menggunakan software Arduino IDE.

- Memasukkan kedua jari yaitu jari telunjuk dan jari tengah pada sarung tangan jari seperti pada Gambar 4.4.

4.2.3 Implementasi Metode CNN

Implementasi metode CNN dalam tesis ini menggunakan hardware dan software sebagaimana terlihat pada Tabel 4.4 berikut ini:

MEGA 2560 GSR

GND GND

3.3 V Vin

A0 SIG

40

Tabel 4.4 Implementasi Metode CNN

Komponen Spesifikasi

Laptop Asus TUF Gaming A15

Prosesor AMD Ryzen™ 7 4800H

RAM 8 GB

WebCam 720P HD Camera

Software

Operating System Windows 10

Python PyCharm Community Edition 2021.2.1 4.3 Hasil Uji Coba.

Pengujian dilakuakan terhadap semua system yang dibangun, baik hardware maupun software. Pada pengujian hardware, pengujian dilakukan terhadap pembacaan sensor Heart Rate dan sensor GSR yang telah dipasang. Hasil pembacaan sensor Heart rate akan dibandingkan menggunakan alat sebagaimana tertuang pada Tabel 4.2. Adapun pengujian software dan hasil model .h5 dilakukan menggunakan perangkat yang ada pada Tabel 4.4.

4.3.1 Uji Pembacaan Sensor Heart Rate

Untuk mengetahui kinerja dari sensor Heart Rate yang digunakan yaitu sensor MAX30102, maka dapat dilakukan dengan membandingkannya pada alat ukur pembanding dengan spesifikasi yang tampak pada Tabel 4.2. Pada pengujian ini dilakukan pengambilan 20 data oleh sensor MAX30102 dan akan dibandingkan dengan alat ukur Pulse Oxymeter seperti yang terlihat pada Tabel 4.5.

41

Tabel 4.5 Data Pengujian sensor HR pada Arduino Pulse

Oxymeter (Bpm)

MAX30102

(Bpm) Error (%)

Pulse Oxymeter

(Bpm)

MAX30102

(Bpm) Error (%)

78 78.25 0.32 85 85.27 0.31

78 78.65 0.83 87 86.82 0.20

80 80.75 0.94 87 87.42 0.48

81 81.30 0.37 88 87.89 0.12

83 83.50 0.60 90 90.14 0.16

84 84.24 0.28 91 90.84 0.17

84 84.49 0.58 94 93.74 0.27

85 84.79 0.24 94 94.24 0.26

85 84.85 0.17 95 95.25 0.26

85 84.87 0.15 95 95.25 0.26

Berdasarkan Tabel 4.5 tersebut diketahui bahwa hasil pengukuran antara alat ukur pulse oxymeter dengan sensor MAX30102 memiliki perbedaan nilai.

Meskipun perbedaan nilai tersebut tidak terlalu signifikan tetapi hal tersebut tetap akan berpengaruh. Untuk menghitung persentase error pembacaan sensor MAX3012 dapat dihitung seperti Persamaan (4.1). Dari kedua hasil pengukuran tersebut didapatkan nilai rata-rata eror sebesar 0.35%.

= 1 −

1

4.3.2 Uji Pembacaan Sensor Heart Rate

Untuk mengetahui kinerja dari sensor GSR yang digunakan yaitu sensor Groove GSR, maka dapat dilakukan dengan menggunakan software Thony. Data pengukuran yang diambil dapat dilihat pada Tabel 4.6.

(4.1)

42

Tabel 4.6 Data Pengujian Sensor GSR

Uji GSR Sensor

(Ohm) Uji GSR Sensor

(Ohm)

1 385.737 6 480.750

2 384.750 7 490.750

3 384.750 8 285.375

4 384.737 9 288.450

5 480.560 10 288.400

Dari hasil pengujian diatas dapat terlihat bahwa nilai konduktivitas sensor pada saat keadaan tangan menggenggam lebih kecil daripada saat keadaan tangan tidak menggenggam. Hal ini membuktikan bahwa sensor dapat bekerja.

4.3.3 Dataset Retrieval Berdasarkan Kondisi Tubuh

Pengujian ini dilakukan untuk mendeteksi detak jantung dan konduktivitas kulit seorang anak yang nantinya akan digunakan sebagai data train untuk klasifikasi emosi pada anak. Data yang dikumpulkan berjumlah 800 data yang terdiri dari 2 parameter yaitu detak jantung dan konduktivitas kulit. Data tersebut diperoleh dengan melakukan uji coba pada 10 anak sebanyak 4 kali dan masing- masing anak diambil 20 data untuk setiap kondisi. Pengujian ini dilakukan untuk mengambil data anak sedang marah, senang, ataupun sedih selain itu juga ditambahkan pengujian pada saat anak belum diberi video untuk membangkitkan emosi. Dalam pengujian ini seorang anak diberi rangsangan berupa video dan pertanyaan yang sudah disiapkan untuk mengetahui emosi senang, sedih, netral, dan marah. Seperti yang tampak pada lampiran.

a. Untuk Membangkitkan Emosi Senang Anak

Seorang anak diberikan berbagai video animasi “culo boyo junior”. Video animasi ini dibuat oleh seorang creator yang bernama Cak Ikin. Animasi ini sering mengangkat permasalahan yang sedang viral dan umum terjadi dimasyarakat.

Animasi ini dinilai lucu karena menggunakan dialog dan istilah surabayaan yang

43

Gambar 4.5 Klip Video Pembangkit Emosi Senang

Gambar 4.6 Klip Video Pembangkit Emosi Sedih

medhok seperti mekhithik, ngaplo, mbois, dan juga diluk ngkas. Selain itu animasi ini juga diisi dengan penggambaran karakter yang lucu sehingga dapat meningkatkan emosi senang pada anak.

Contoh potongan klip dari animasi culo boyo junior dapat terlihat pada Gambar 4.5. Klip tersebut merupakan salah satu episode animasi culo boyo junior yang dinilai sangat lucu karena liriknya yang memparodikan lagu yang viral di salah satu aplikasi dengan judul lagu “aduh mamae” dengan bahasa surabayaan.

Data detak jantung dan konduktivitas kulit seorang anak diambil pada saat video diputar.

b. Untuk Membangkitkan Emosi Sedih Anak

Seorang anak diberikan suatu video iklan pendek gopay yang berkolaborasi dengan alfamart yang diambil dari youtube seperti yang tampak pada Gambar 4.6.

Video tersebut menceritakan tentang seorang anak perempuan yang mendapatkan tugas membuat cerita dengan tema ibuku pahlawanku. Iklan pendek ini dinilai dapat meningkatkan emosi anak karena film ini menceritakan seorang

44

Gambar 4.7 Games Pembangkit Emosi Marah

anak perempuan yang menggambarkan sosok ibunya yang ternyata adalah ayahnya. Data detak jantung dan konduktivitas kulit seorang anak diambil pada saat video diputar.

c. Untuk Membangkitkan Emosi Marah Anak

Seorang anak diberikan suatu permainan mobile yaitu “Stamble Guys” yang memiliki tingkat kesulitan yang tinggi. Seperti yang tampak pada Gambar 4.7.

Alasan penggunaan game stamble guys untuk membangkitkan emosi marah karena subject yang diambil adalah anak-anak, saat bermain game seorang anak akan dapat lebih ekspresif.

Dalam Stumble Guys, para pemain akan dimasukkan kedalam ruangan yang berisi 32 pemain lainnya yang nantinya harus berkompetisi untuk lolos memenuhi kuota tiap match. Untuk menjadi juara, tiap pemain harus melalui 3 map berbeda yang dipilih oleh sistem secara acak. Dalam tiap map tersebut, pemain harus lulus kualifikasi 16 besar, 8 besar, hingga map terakhir yang merupakan babak final di mana hanya 1 pemain yang lolos yang nantinya menjadi juara. Pada penelitian ini seorang anak diberikan kesempatan bermain hingga kalah. Untuk pengambilan data detak jantung dan juga konduktivitas kulit pada anak dilakukan setelah memainkan game tersebut, hal ini dikarenakan permainan ini menggunakan kedua tangan untuk memainkannya.

45 d. Untuk Pengambilan Emosi Netral

Emosi netral diambil sebelum melakukan pengukuran dan sebelum diberi pembangkit emosi untuk anak. diharapkan dengan adanya pengambilan data emosi netral data emosi yang diambil benar benar sesuai.

Dari hasil pengujian didapatkan grafik seperti yang tampak pada Gambar 4.8.

Dari Gambar 4.8 terlihat bahwa data 0-200 merupakan pengambilan data detak jantung dan konduktivitas kulit pada anak sebelum diberi stimulus video apapun.

Data 200-400 merupakan data detak jantung dan konduktivitas kulit pada anak saat diberikan video untuk membangkitkan emosi senang atau gembira. Data 400- 600 merupakan data detak jantung dan konduktivitas kulit pada anak saat diberikan video untuk membangkitkan emosi sedih. Data 600-800 merupakan data detak jantung dan konduktivitas kulit pada anak saat diberikan suatu permainan yang dapat membangkitkan emosi marah. Dari Gambar 4.8 diatas terlihat bahwa data pengambilan emosi netral dan emosi senang sangatlah berdekatan sehingga diperlukan suatu metode yang dapat mencari titik centroid dari masing-masing jenis emosi oleh karena itu, penelitian ini menggunakan metode K-Means.

Gambar 4. 8 Data HR dan GSR dengan Stimulus Emosi

46

4.4 Fusion Model Berdasarkan Metode K-means dan CNN

Klasifikasi emosi pada anak dilakukan berdasarkan kondisi tubuhnya menggunakan 2 sensor yaitu sensor Heart Rate, dan sensor GSR yang dikuatkan menggunakan klasifikasi emosi pada anak berdasarkan wajah. Parameter klasifikasi berdasarkan wajah dan kondisi tubuh pada anak di klasifikasikan dengan menggunakan 2 metode yang berbeda yaitu metode CNN untuk klasifikasi emosi anak berdasarkan wajah, serta metode K-Means untuk klasifikasi emosi berdasarkan kondisi tubuh anak. karena perbedaan 2 metode maka diperlukan fusion untuk kedua data agar dapat mengahsilkan satu keputusan. Dalam penelitian ini proses fusion dilakukan dengan membuat rule untuk hasil dari masing-masing metode. Dari masing masing rule akan di seleksi menggunakan if else sehingga akan didapatkan kesimpulan satu emosi dari dua metode yang berbeda. Pembuatan rule berdasarkan pengamatan pada saat pengambilan data sehingga didapatkan rule seperti yang tampak pada Tabel 4.7.

Tabel 4. 7 Penentuan Rule Berdasarkan Pengamatan

Klasifikasi Emosi

Menggunakan K-Means

Klasifikasi Emosi Menggunakan CNN Senang /

Gembira Netral Sedih Marah

Senang Senang Senang Netral Marah

Netral Senang Netral Sedih Marah

Sedih Netral Sedih Sedih Marah

Marah Senang Marah Sedih Marah

4.5 Processing Data Menggunakan Metode SVM

Penelitian ini menggunakan metode SVM dan memanfaatkan fitur kernel- function (linear, rbf, poly, dan sigmoid) untuk mengetahui nilai akurasi dari

47

metode K-Means. Data yang telah didapatkan akan di bagi menjadi 80% data training dan 20% data testing.

Seperti yang tampak pada Gambar 4.9 dan Gambar 4.10 jumlah data yang di training sebanyak 160 data untuk masing-masing emosi dan data yang di testing sebanyak 40 data tiap emosi. Untuk melakukan preprocessing terhadap data atau melakukan normalisasi terhadap data maka dapat digunakan rumus seperti Persamaan (4.2). Selanjutnya dari nilai tersebut nantinya akan dicari nilai confidence. Penentuan prediksi dilakukan dengan cara mencari nilai confidence yang terbesar sehingga didapatkan confusion matrix dan model akurasi. Model akurasi terbaik nantinya akan digunakan sebagai penentuan prediksi emosi.

= −

Gambar 4.9 Grafik Data Training

Gambar 4.10 Grafik Data Testing

(4.2) 160

Marah

160 160

Netral Senang

160 Sedih

40 Marah

40 40

Netral Senang

40 Sedih

48

Pada pengujian ini data set yang sudah displit data dengan penambahan cross validation akan dicari model yang paling akurat dengan cara memanfaatkan 4 kernel yaitu kernel linear, kernel polynomial, kernel rbf, serta kernel sigmoid.

Data yang diuji sudah dilakukan normalisasi terlebih dahulu. Dari proses tersebut didapatkan nilai akurasi dari masing-masing kernel seperti yang tampak pada Tabel 4. 8

Tabel 4. 8 Hasil Akurasi Model SVM Support Vector Machine (SVM) Method

Kernel Type Accuration (%)

Linear 83.12

Poly 66.88

RBF 81.60

Sigmoid 80.00

Akurasi tertinggi diperoleh saat menggunakan kernel tipe Linear dengan nilai akurasi training data sebesar 80.31% dan akurasi testing data sebesar 83.12%. Dari hasil tersebut confusion matrix saat menggunakan kernel Linear didapatkan confusion matrix seperti yang tampak pada Tabel 4.9.

Tabel 4.9 Confusion Matrix Menggunakan kernel Linear

Target Prediksi Class Precision

(%) Marah Senang Netral Sedih

Marah 40 0 4 0 90.91%

Senang 0 39 19 1 66.10%

Marah 0 1 15 0 93.75%

Sedih 0 0 2 39 95.12%

Class recall 100 % 97.50% 37.50% 97.50%

49

Gambar 4. 11 Contoh Program pada Arduino

Dari confusion matrix menggunakan kernel Linear dapat diketahui dari keseluruhan data kesalahan data yang di prediksi hanya sebanyak 29 data dari total 160 data. Kesalahan terbanyak didapatkan pada saat mengambil emosi netral.

4.6 Pengiriman Data dari Arduino ke Python

Pada pengujian ini data dari sensor Heart Rate dan sensor GSR berupa nilai detak jantung dan konduktivitas kulit, serta hasil klasifikasi emosi berdasarkan kondisi tubuh menggunakan metode K-Means yang sudah di program di Arduino IDE akan dikirimkan ke program python menggunakan py.serial.

Gambar 4.11 merupakan contoh program untuk menampilkan nilai detak jantung, konduktivitas kulit, dan juga hasil klasifikasi emosi berdasarkan kedua data tersebut menggunakan metode K-Means. Pada program tersebut disetting apabila menginputkan huruf „h‟ maka serial monitor akan memproses program untuk menampilkan nilai detak jantung. Apabila yang diinputkan huruf „b‟ maka data yang akan ditampilkan pada serial monitor adalah nilai konduktivitas kulit.

Sedangkan jika menginputkan huruf „k‟ maka akan menjalankan program metode K-Means sehingga yang akan ditampilkan pada serial monitor adalah hasil klasifikasi emosi berdasarkan kondisi tubuh. Seperti yang tampak pada Gambar 4.12.

50

Gambar 4. 12 Hasil Serial Monitor Arduino

Gambar 4. 13 Program untuk Menampilkan Nilai Sensor dari Arduino Untuk memudahkan pemrograman GUI maka program dari Arduino dikirimkan pada python menggunakan py.serial seperti yang tampak pada Gambar 4.13 dan Gambar 4.14.

51

Gambar 4. 15 Hasil Serial Berhasil Terbaca di Python Gambar 4. 14 Program untuk Menampilkan Hasil Klasifikasi

Untuk membaca serial dari Arduino maka digunakan code ser.readline().decode(„ascii‟). Seperti program yang tampak pada Gambar 4.13 dan Gambar 4.14 nilai detak jantung, konduktivitas kulit, serta hasil klasifikasi emosi berdasarkan kondisi tubuh menggunakan metode K-Means akan ditampilkan pada textbox melalui code TxtBox.insert(). Sehingga hasil serial yang ditampilkan di python terlihat seperti Gambar 4.15.

4.7 Klasifikasi Emosi Dari Wajah

Penelitian ini menggunakan metode CNN untuk mengklasifikasikan 4 jenis emosi yaitu senang, sedih, marah, dan neutral. Untuk mendapatkan model klasifikasi emosi yang terbaik, penelitian ini menguji beberapa dataset yang ada untuk mendapatkan nilai akurasi yang paling besar. Beberapa dataset yang digunakan seperti dataset yang ada pada Kaggle yaitu FER-2013 dengan total image sebanyak 26.217. Selain dataset dari Kaggle peneliti juga membuat dataset

52

sendiri berdasarkan pengambilan image dari webcam dengan total image keseluruhan sebanyak 20.000. Pengujian terakhir dilakukan dengan menggabungkan kedua dataset antara dataset Kaggle dengan dataset yang diambil sendiri menggunakan webcam, dengan total image sebanyak 39.160. untuk masing masing dataset merupakan gambar hitam putih dengan ukuran pixel 48 x 48.

4.7.1 Pengumpulan Dataset FER-2013

Untuk melakukan proses pembelajaran atau learning pada CNN, sumber data yang utama berupa citra. Dalam hal pengenalan wajah, image yang dibutuhkan berupa image ekspresi anak, dataset image berasal dari dataset FER- 2013 Total image yang ada sebanyak 35.887 dengan pembagian menjadi 7 jenis emosi. Pada penelitian ini hanya menggunakan 4 dari 7 emosi yang ada pada dataset FER-2013 yaitu senang, sedih, marah, dan netral dengan total image sebanyak 26.217 untuk masing-masing jenis emosi dataset ini terdiri dari 4953 citra wajah anak untuk emosi Marah, 8989 untuk emosi senang, 6198 untuk emosi netral, dan 6077 untuk emosi sedih.

4.7.2 Pengumpulan dan Pengambilan Dataset

Untuk melakukan proses pembelajaran atau learning pada CNN, sumber data yang utama berupa citra. Dalam hal pengenalan wajah, image yang dibutuhkan berupa image ekspresi anak, dataset image berasal dari pengambilan image dari webcam. Total image yang digunakan pada percobaan ini adalah 20.000 dengan pembagian menjadi 4 jenis emosi, untuk masing-masing jenis emosi dataset ini terdiri dari 5000 citra wajah anak. pada pengambilan image dari webcam, peralatan menggunakan webcam internal dari laptop dengan menggunakan bahasa pemrograman Python. Running dari code pengambilan/pengumpulan dataset terlihat pada Gambar 4.16.

53

Gambar 4. 16 Proses Pengambilan Dataset

Gambar 4. 17 Hasil Penyimpanan Dataset

Dalam melakukan deteksi wajah saat pengambilan dataset menggunakan metode haarcascade frontalface dan haarcascade eye, selanjutnya citra wajah anak juga di cropping dengan penggunaan region of interest (ROI). Semua data yang terdeksi menggunakan haarcascade dilakukan resize terhadap 1 dimensi size yang sama yaitu 48x48 pixel, dan citra yang di dapat akan berupa citra greyscale.

Dataset yang sudah diambil akan dikumpulkan dalam satu folder, seperti yang tampak pada Gambar 4.17.

4.7.3 Pengelompokkan Dataset

Untuk mencari nilai akurasi yang terbaik maka dilakukan juga pengujian dengan menggabungkan kedua dataset. Dataset FER-2013 digabungkan dengan dataset yang diambil sendiri sehingga didapatkan total image 39.160 dengan 4

54

Gambar 4.18 Arsitektur CNN 3 Layer Convolusi

jenis emosi yaitu senang, sedih, marah, dan netral. Dengan total image sebesar 9.790 untuk masing masing emosi. Dengan rincian data 4.790 image diambil dari dataset FER-2013 dan 5000 image diambil dari dataset yang dikumpulkan sendiri.

4.7.4 Pembelajaran (learning).

Dalam proses learning, beberapa dataset diuji untuk mengetahui nilai akurasi yang paling baik. Setiap dataset yang ada dilakukan pembagian terhadap data training dan data testing dengan komposisi 80% data training dan 20%

sebagai data testing. Dataset tersebut kemudian dilakukan proses Convolutional.

Arsitektur CNN dibentuk dengan 3 convolution layer. Dataset di proses learning menggunakan laptop dan software dengan spesifikasi yang ada pada Tabel 4.4.

Adapun arsitektur yang diusulkan penulis seperti yang tampak pada Tabel 4.10 dan Gambar 4.18.

Arsitektur dalam percobaan ini menggunakan beberapa blok dengan penjelasan seperti Tabel 4.10.

Tabel 4.10 Layer Arsitektur CNN

Blok Layer Parameter

1 Conv Layer Kernel 3x3

Strides 2

Activation Function Rectified Linear Unit

Input shape 48x48x1

Max Pooling 2x2

2 Conv Layer Activation Function Relu

Max Pooling 2x2

3 Conv Layer Activation Function Relu

Dokumen terkait