BAB 3 ANALISIS DAN PERANCANGAN 3.1 Analisis Permasalahan Aplikasi ini tergolong sebagai sistem kecerdasan buatan karena akan menggantikan peran seseorang yang mampu mengenali ekspresi wajah. Tiga ekspresi yang akan dikenali oleh sistem senang, terkejut dan wajah datar tanpa ekspresi. Untuk meminimalkan kendala dalam pendeteksi wajah dan pendeteksi fitur wajah, beberapa batasan perlu ditentukan agar program aplikasi dapat menjalankan fungsinya dengan baik, salah satunya adalah posisi kepala masih harus diatur dalam pendeteksian. Walau sudah ada teknik untuk merotasi citra, namun menurut Chibelushi(2003), input hasil rotasi dan manipulasi tersebut tidak cukup baik. Dibutuhkan riset lebih jauh dalam transformation-invariant ekspresion recognition (Chibelushi & Bourel, 2003). Masih menurut Chibelushi (2003), hambatan lainnya ada pada variasi fitur wajah, seperti rambut pada wajah, misalnya jenggot, kumis, make up, gabungan beberapa ekspresi wajah, luka luka pada wajah dan lain-lain. Untuk mengatasinya, maka akan dicari basis data ekspresi wajah yang menampilkan wajah depan dan tidak memasukkan wajah wajah yang terdeformasi karena kecelakaan atau gangguan fisik. Pemilihan sukarelawan untuk melakukan testing pun mengikuti aturan yang sama. Untuk mempermudah pengenalan, variasi dalam beberapa ekspresi pun dibatasi. Misalnya, untuk perancangan aplikasi ini, semua data training untuk ekspresi bahagia diharuskan memperlihatkan senyum dengan mulut terbuka, untuk ekspresi terkejut, diambil data training yang menampilkan mulut yang terbuka. 45
46 Ekspresi wajah yang menjadi bahan training dan testing adalah pose yang dibuat dan bukan ekspresi alami karena kesulitan mengambil ekspresi alami. Gambar 3.1 System Process Sistem menjalankan proses pendeteksian dalam blok proses seperti pada Gambar 3.1. Setelah menerima input, sistem kemudian akan melakukan proses facial feature detection. Selanjutnya citra fitur wajah yang terdeteksi akan diekstraksi lalu dikompresi menggunakan metode wavelet transform. Setelah tahap pre-processing tersebut selesai, maka input siap untuk dimasukkan kedalam jaringan syaraf tiruan baik untuk training maupun untuk testing dan menghasilkan output kepada user.
47 Pada proses training, user akan juga diminta memberikan nilai target dari tiap citra yang tertangkap. Untuk proses testing, setelah citra di menyelesaikan pre-processing, input tersebut di masukkan ke jaringan syaraf tiruan dan memberikan output yang setelah mengalami post-processing akan menjelaskan ekspresi wajah dari hasil tangkapan kamera. 3.2 Analisis metode yang digunakan Gambar 3.2 Gambaran Umum Proses Pengenalan Ekspresi 3.2.1 Deteksi Wajah Deteksi wajah pada aplikasi ini dilakukan dengan metode Viola-Jones. Metode ini diambil karena menggunakan metode komputasi yang memiliki performa yang cukup untuk mendeteksi wajah dalam waktu real time. Metode ini memerlukan data berupa hasil training dari kumpulan citra yang ingin dideteksi. Pada aplikasi ini data training sudah disediakan oleh libary Emgu CV. 3.2.2 Face Tracking Penelusuran (Tracking) pada wajah yang telah dideteksi sebelumnya bertujuan agar Viola-Jones tidak perlu mendeteksi setiap saat. Setelah tracking dilakukan dalam waktu tertentu, fungsi pendeteksi wajah kembali dipanggil dan setelah wajah
48 berhasil dideteksi, penelusuran akan kembali dilakukan dan seterusnya. Metode penelusuran yang digunakan adalah metode Lucas-Kanade. Pemilihan metode ini karena metode ini telah mencapai State of The Art dalam penelusuran wajah yang dicapai dalam penelitian Matthews dan Baker (IJCV, 2004). 3.2.3 Pre-processing pada citra Pre-processing dilakukan pada citra agar citra tersebut dapat diterima oleh jaringan syaraf tiruan. Pertama-tama citra yang di dapat mengalami perubahan ukuran (resize) agar nantinya tiap input terdiri dari jumlah piksel yang sama. Selanjutnya citra akan mengalami filter equalize histogram. Filtering ini bermaksud agar kontras citra menjadi lebih baik dan mempermudah ekstraksi fitur wajah. 3.2.4 Deteksi Fitur Wajah Setelah di dapat citra wajah, citra wajah itu dibagi menjadi dua bagian. 6/10 Bagian atas, digunakan untuk mendeteksi mata kanan dan mata kiri, dan sisa bagian bawah digunakan untuk mendeteksi mulut. Algoritma ini ditempuh untuk mengurangi area pecarian mata dan mulut. Cara ini sudah pernah ditempuh dalam penelitian oleh krolak (2010). Peng-ekstraksian area mulut dan area mata ini didasarkan sifat ketergantungan geometrikal pada wajah manusia. Akhirnya, citra yang telah dimodifikasi tersebut akan di kompresi menggunakan metode Haar wavelet. Setiap citra fitur pada akhirnya diubah menjadi citra berukuran 4 x 4 piksel. 3.2.5 Pengenalan Ekspresi Wajah Pengenalan ekspresi wajah akan dilakukan dengan membandingkan hasil output dari perhitungan jaringan syaraf tiruan. Input dari jaringan syaraf tiruan ini
49 terdiri dari nilai nilai grayscale dari tiap piksel yang diambil dari citra fitur. Citra fitur yang diambil sebagai input terdiri dari 4 x 4 piksel sehingga dibutuhkan 16 input node. Output dari jaringan syaraf ini adalah pengenalan ekspresi wajah. Karena untuk aplikasi ini akan di kenal 3 ekspresi wajah, akan di sediakan 3 output node. Lalu hasil output yang berupa array angka ini akan masuk post-processing lagi agar hasilnya dapat dipahami dan dapat ditampilkan pada aplikasi. 3.3 Perancangan Layar 3.3.1 Layar Utama Gambar 3.3 Layar utama Facial Expression Recognizer Ketika aplikasi pertama kali dijalankan, tampilan utama akan ditampilkan. Komponen-komponen dari layar utama adalah sebagai berikut: a. ToolStrip MenuItem File bila menu ini dipilih maka tampilan layar akan menjadi seperti pada Gambar 3.3. b. ToolStrip MenuItem Help. Berfungsi untuk menampilkan menu bantuan bagi user. Memilih menu ini akan membuat tampilan layar seperti pada gambar 3.13. c. PictureBox berfungsi menampilkan gambar yang ditangkap kamera.
50 d. Button Start, berfungsi untuk menjalankan kamera dan nantinya untuk menangkap citra dan menyimpannya. e. ComboBox Select Camera berfungsi untuk memilih kamera yang digunakan. f. Label Face(s) Detected mengindikasikan jumlah wajah yang terdeteksi oleh aplikasi. g. Label Status berfungsi memberi informasi yang berkaitan dengan hasil pendeteksian pada citra di PictureBox. h. Label Select Camera Berfungsi untuk memebri tahu fungsi dari Combo Box. 3.3.2 Layar submenu dari File Gambar 3.4 Submenu dari menu File Submenu dari menu file terdiri dari: a. ToolStrip MenuItem Start berfungsi untuk memulai aplikasi. Bila menu ini dipilih, tampilan akan seperti Gambar 3.4. b. ToolStrip MenuItem Training on camera capture. Berfungsi untuk melakukan pelatihan dengan hasil tangkapan web-camera sebagai data input. Memilih menu ini akan membawa tampilan pada gambar 3.7.
51 c. ToolStrip MenuItem Training on images. Berfungsi untuk memulai pelatihan dari citra yang ada di komputer lokal. Memilih menu ini akan membuat tampilan seperti Gambar 3.10. d. ToolStrip MenuItem Exit berfungsi untuk meutup layar dan mengakhiri aplikasi. 3.3.3 Layar Start Facial Expression Recognizer Kamera akan aktif dan PictureBox akan menampilkan apa yang tertangkap melalui kamera. Selain itu, status message akan berubah berdasarkan hasil pendeteksian aplikasi terhadap hasil tangkapan kamera. Berikut adalah daftar status message dan penjelasan dari status message tersebut. Detection only can be done when only one(1) face detected. Message untuk user ketika sistem menangkap lebih dari 1 wajah di kamera. Face Features not detected. Message ini ditampilkan ketika aplikasi mengenali wajah, tapi gagal mendeteksi fitur wajah. Facial expression is not activated. please train application first Message ini ditampilkan ketika fitur wajah berhasil mendeteksi fitur wajah, namun pengenalan ekspresi wajah belum diaktifkan. Pesan ini tidak akan terlihat ketika training on camera capture dijalankan. Facial expression detected. Pesan ini akan terlihat ketika fitur wajah berhasil di deteksi dan pengenalan ekspresi wajah telah dijalankan. Pesan ini tidak akan terlihat ketika training on camera capture dijalankan. Facial feature Detected. Click capture to get image. Pesan ini hanya keluar ketika training on camera capture dilakukan. Ketika pesan ini ditampilkan, tombol capture akan diaktifkan.
52 Selain perubahan pada status message, aplikasi juga mengubah citra yang ditampilkan oleh PictureBox dengan memberi kotak hijau setiap kali persis satu wajah berhasil di deteksi oleh aplikasi. Jika fitur pengenalan ekspresi wajah telah diaktifkan, maka ekspresi tersebut akan dituliskan pada label diatas kotak hijau. Gambar 3.5 Layar setelah kamera diaktifkan dan mengenali ekspresi wajah Gambar 3.6 Aplikasi berhasil mengenali ekspresi wajah 3.3.4 Layar Training on camera capture Tampilan ini akan keluar bila anda tidak mengaktifkan kamera sebelum memilih training on camera capture. Jika anda telah mengaktifkan kamera sebelumnya, tampilan akan seperti Gambar 3.7.
53 Gambar 3.7 Warning pada Training on camera capture Gambar 3.8 Layar Training on camera capture Teks pada tombol start akan berubah menjadi capture dan fungsinya akan ikut berubah. Ketika fitur ini dijalankan, maka, fitur pendeteksi ekspresi wajah akan di non aktifkan. Lalu dalam picture box akan ada tulisan untuk menjelaskan langkah selanjutnya. Selain itu, File > Training on camera capture berubah fungsi dan teksnya juga diubah menjadi View training input.
54 Gambar 3.9 Layar View training input Layar view training input terdiri dari; a. ListBox Detected Face berfungsi menampilkan list foto yang diambil oleh user b. ListBox Training input berfungsi menampilkan daftar gambar yang dijadikan user sebagai input data training. c. PictureBox picture berfungsi menampilkan gambar berdasarkan list yang dipilih oleh user baik citra yang berasal dari listbox detected face atau dari listbox training input. d. ComboBox Expression berfungsi untuk membantu user mengisi ekspresi wajah citra input. Bila ada citra dari listbox training input dipilih, combobox akan menampilkan ekspresi yang bersangkutan dengan citra dan user tidak dapat mengganti value dari combobox. e. Button Copy berfungsi untk meng-copy citra yang dipilih dari listbox detected face dan menyimpan ekspresi wajah yang telah di-set oleh user untuk gambar bersangkutan.
55 f. Button Delete berfungsi untuk menghapus citra yang dipilih dari listbox. Fungsi ini juga menghapus ekspresi yang bersangkutan dengan citra yang menjadi bakal input data training. g. Button Start Training berfungsi memulai pelatihan terhadap jaringan syaraf tiruan dan juga menghapus semua gambar dari listbox detected face dan listbox Training input. Tombol ini juga mengaktifkan kotak pesan seperti pada gambar 3.10 setelah user men-click pesan itu, jendela akan tertutup dan tampilan menjadi seperti pada gambar 3.5. h. Label yang tidak merespon click dan bertujuan untuk memberi info saja. Beberapa label dapat merubah tampilan berdasarkan jumlah item dalam ListBox Gambar 3.10 View training input selesai
56 3.3.5 Layar Training on images Gambar 3.11 Layar Training on images Layar view training input terdiri dari; a. ListBox Detected Face berfungsi menampilkan list foto yang diambil oleh pengguna dari komputer lokal. b. Browse Button berfungsi menjalankan openfiledialog yang mencari gambar yang akan menjadi input training. c. Pre-processing button. Berfungsi untuk mengolah citra yang dipilih dari memory komputer lokal agar citra tersebut nantinya dapat diolah oleh jaringan syaraf tiruan. d. ListBox Training input berfungsi menampilkan daftar gambar yang dijadikan user sebagai input data training. e. PictureBox picture berfungsi menampilkan gambar berdasarkan list yang dipilih oleh user baik citra yang berasal dari listbox detected face atau dari listbox training input.
57 f. ComboBox Expression berfungsi untuk membantu user mengisi ekspresi wajah citra input. Bila ada citra dari listbox training input dipilih, combobox akan menampilkan ekspresi yang bersangkutan dengan citra dan user tidak dapat mengganti value dari combobox. g. Button Copy berfungsi untk meng-copy citra yang dipilih dari listbox detected face dan menyimpan ekspresi wajah yang telah di-set oleh user untuk gambar bersangkutan. h. Button Delete berfungsi untuk menghapus citra yang dipilih dari listbox. Fungsi ini juga menghapus ekspresi yang bersangkutan dengan citra yang menjadi bakal input data training. i. Button Start Training berfungsi memulai training terhadap jaringan syaraf tiruan dan juga menghapus semua gambar dari listbox detected face dan listbox Training input. Tombol ini juga mengaktifkan kotak pesan seperti pada gambar 3.10 setelah user men-click pesan itu, jendela akan tertutup dan tampilan menjadi seperti pada gambar 3.5. j. Label yang tidak merespon click dan bertujuan untuk memberi info saja. Beberapa label dapat merubah tampilan berdasarkan jumlah item dalam ListBox. k. Label yang tidak merespon click dan bertujuan untuk memberi info saja. Beberapa label dapat merubah tampilan berdasarkan jumlah item dalam ListBox.
58 3.3.6 Layar Help Gambar 3.12 Layar Training on images selesai Gambar 3.13 Layar Help Layar Help terdiri dari a. Label yang di-set agar dapat memberi respon ketika di klik untuk memilih bantuan yang ingin dipilih.
59 b. TextBox, yang berfungsi menampilkan penjelasan yang dipilih oleh user. Bila user menutup tampilan Help, maka tampilan akan kembali ke tampilan awal. 3.3.7 Layar Warning Gambar 3.14 Layar Warning Layar ini akan ditampilkan bila user tidak memilih camera sebelum men-click tombol start atau MenuItem Start. Perancangan layar layar yang disajikan ini dapat saja dalam pelaksanaannya tidak dipakai atau mengalami perubahan. Hal ini wajar terjadi dalam perancangan program aplikasi dimana ada kemungkinan perancangan belum memenuhi semua kebutuhan sistem. Perancangan layar ini telah dilakukan dengan mengacu kepada delapan aturan emas. Namun dalam peancangan ini tidak banyak menyediakan shortcut bagi pengguna karena proses program yang pendek.
60 3.4 Perancangan Piranti Lunak Berbasis UML 2.0 3.4.1 Use Case Diagram Gambar 3.15 Use Case Diagram Setelah aplikasi dijalankan, user dapat menggunakan fitur fitur seperti yang dijelaskan pada use-case diagram. Ketika user mengaktifkan kamera, maka fitur facial features detection akan berjalan dengan sendirinya. Dan jika neural network sudah menjalani proses pelatihan, maka fitur pendeteksi ekspresi wajah juga akan berjalan secara otomatis ketika kamera diaktifkan. Selain itu, user juga dapat menggunakan fitur lain seperti training on image data set, dan training on camera capture. Berikut disajikan use-case narrative yang akan menjelaskan use-case diagram lebih jauh:
61 Tabel 3.1 Use-Case Narrative Read Application s Help Use Case Actor Description Read Application s Help User Use-case ini mendeskripsikan proses menampilkan panduan aplikasi kepada User. Pre Condition Flow of Events User menjalankan aplikasi. User milih menu help untuk melihat panduan bagaimana cara menggunakan aplikasi dan fitur-fitur yang disediakan. Post Condition User telah lihat panduan dan mengerti cara menggunakan aplikasi beserta fiturnya. Tabel 3.2 Use Case Narrative Facial Feature Detection Use Case Actor Description Pre Condition Flow of Events Facial Feature Detection User Use-case ini mendeskripsikan proses pelatihan aplikasi User menjalankan aplikasi, kamera telah dihubungkan. User mengaktifkan kamera yang telah dihubungkan dengan komputer lokal. Kamera akan menampilkan hasil tangkapan kamera di layar aplikasi. Post Condition Setiap kali komputer berhasil menangkap hanya 1 wajah, maka akan terlihat status yang menyatakan bahwa wajah dan fitur wajah telah terdeteksi. Label status akan berubah secara real time untuk menginformasikan user.
62 Tabel 3.3 Use Case Narrative Training on camera capture Use Case Actor Description Pre Condition Flow of Events Training on camera capture User Use-case ini mendeskripsikan proses pelatihan aplikasi. User menjalankan fitur Facial Feature Detection. Setelah memastikan kamera berjalan dengan baik, User akan meng-click button train on camera capture. Setelah itu ketika kondisi pendeteksi ekspresi wajah terpenuhi, status bar akan memberi tahu user, dan user dapat menyimpan frame tersebut dengan meng-click save. Setelah user merasa mengambil cukup input, user dapat menuju menu view training input set dan akan ada tampilan layar yang menyajikan semua gambar yang telah diambil. User dapat memilih gambar mana saja yang ingin dimasukkan dalam training dan juga user di haruskan memasukkan nilai output yang diharapkan dari tiap gambar yang telah dipilih sebelumnya dengan memilih satu ekspresi dari combo box yang tersedia. Setelah itu, user dapat memulai training terhadap neural network dengan meng-click tombol Start Training. Post Condition User akan mendapat pop-up yang menyatakan bahwa training telah selesai. Jika tidak pernah dilakukan training sama sekali baik melalui citra atau kamera, maka untuk pertama kalinya fitur recognize expression akan berjalan.
63 Tabel 3.4 Use Case Narrative Recognize Expression Use Case Actor Description Pre Condition Recognize Expression User Use case ini mendeskripsikan pengenalan ekspresi. User menjalankan fitur Facial Feature Detection, user pernah melakukan pelatihan terhadap neural network. Flow of Events User mengaktifkan kamera yang telah dihubungkan dengan komputer lokal. Kamera akan menampilkan hasil tangkapan kamera di layar aplikasi. Post Condition Aplikasi akan menampilkan di layar kondisi emosional seseorang berdasarkan hasil tangkapan kamera yang mendeteksi ekspresi wajah. Tabel.3.5 Use Case Narrative Training on image data set Use Case Actor Description Pre Condition Flow of Events Training on image data set User Use case ini mendeskripsikan proses pelatihan aplikasi. User menjalankan aplikasi. User mengambil gambar wajah dari komputer lokal dengan meng-click button browse. Lalu user memasukkan nilai output yang diharapkan untuk tiap gambar yang telah dipilih dengan memilih dari combobox yang tersedia. user memulai training terhadap neural network dengan meng-click tombol Start Training. Post Condition User mendapat pop-up yang menyatakan training telah selesai. Jika tidak pernah dilakukan training maka untuk
64 pertama kalinya fitur recognize expression akan berjalan. 3.4.2 Activity Diagram Activity Diagram berikut akan menjelaskan langkah-langkah yang dilakukan user dan sistem pada proses pelatihan berdasarkan gambar dari komputer lokal. User diberi kebebasan untuk memilih sebanyak mungkin citra untuk menjadi data pelatihan. Perlu diberitahukan, semakin banyak citra wajah yang dilatih, semakin lama proses pelatihan dan semakin akurat sistem pengenalan nantinya.
65 Diagram berikut menjelaskan langkah-langkah yang dilakukan user dan sistem pada proses pendeteksi fitur wajah dan proses pengenalan ekspresi wajah. Ini dikarenakan recognize expression adalah extends dari fitur facial feature detection. Di sini setelah memilih web-camera, user diberi kebebasan untuk mengaktifkan webcamera melalui menu atau melalui tombol start di tampilan layar utama.
66 Activity diagram berikut akan menjelaskan langkah-langkah yang dilakukan user dan sistem pada proses pelatihan berdasarkan gambar dari kamera.setelah user mengaktifkan web-camera dan mengaktifkan fitur, sistem akan secara berulang menangkap citra hingga dihentikan oleh user. Setelah user memilih data pelatihan dan nilai target, barulah pelatihan jaringan syaraf tiruan dijalankan.
67 Diagram berikut akan menjelaskan langkah langkah untuk mengakses Help submenu. Help Submenu bertujuan untuk memperkenalkan fitur pada user. 3.4.3 Class Diagram Gambar.3.16 Class Diagram
68 Berdasarkan class diagram kita bisa melihat bahwa untuk men-training neural network, hanya bisa dilakukan melalui form TrainingForm dan juga melalui form trainingonimageform. Hubungan agregasi antara form Utama dan form lainnya bersifat satu satu. Hubungan antara Capture dan CameraCapture bersifat komposisi. Hal ini tentu menyebabkan bahwa setiap kali objek dari class CameraCapture di-desctruct, secara otomatis class Capture juga akan ter-destruct. 3.4.4 Sequence Diagram Gambar 3.17 Read Application's Help Sequence Diagram Dalam sequence diagram diperlihatkan bahwa form utama tidak tertutup ketika form help dibuka. Ini bertujuan agar user tetap dapat melihat help sambil menjalankan aplikasi. Dalam rancangan layar kita bisa melihat bahwa tampilan help
69 terpisah dari layar utama. Maka sistem akan membuat modul untuk mengatur layar utama terpisah dengan modul untuk mengatur tampilan layar help. Gambar 3.18 Feature Detection Sequence Diagram
70 Dalam menjalankan fungsinya, Camera Capture mengambil citra dari kelas Capture dan mengolahnya. Citra wajah yang berhasil ditangkap disimpan dengan nama res. Setelah data berhasil diolah dan di simpan dalam variabel array double input. Input akan di gunakan oleh kelas Network untuk menghasilkan output yang mengklasifikasikan ekspresi wajah. Setelah output diolah, maka hasilnya bisa ditampilkan pada layar utama. Gambar 3.19 Training on images Sequence diagram Dari sequence diagram Gambar 3.19, dapat kita lihat bahwa fitur training ini merupakan fitur interaktif dimana user dapat bebas memasukkan gambar untuk di training. Apabila user melewatkan bagian browse image, training tidak dapat dilakukan.
Gambar 3.20 Sequence diagram training on camera capture 71
72 Ketika trainingform melakukan fungsi inisialisasi, fungsi ini meng-copy semua citra yang disimpan oleh Camera capture dan menyajikannya dalam listbox. Kemudian dari sini user bisa memilih gambar mana saja yang ingin dimasukkan ke dalam data training. Seperti yang dijelaskan pada use-case diagram, training on camera capture berintegrasi dengan fitur face detection. Karena itu pada sequence diagram ini, ada sebagian dari sequence diagram dari face detection yang diikut sertakan.