TESIS
MIFTAHUL JANNAH
157038078
TESIS
MIFTAHUL JANNAH
157038078
PERSETUJUAN
Pembimbing 2 Pembimbing 1
Diketahui/disetujui oleh
Magister Teknik Informatika
Ketua,
PERNYATAAN
TESIS
Saya mengakui bahwa tesis ini adalah hasil karya saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Miftahul jannah
157038078
Sebagai sivitas akademika Universitas Sumatera Utara, saya yang bertanda tangan di
bawah ini :
Beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti Non
Eksklusif ini, Universitas Sumatera Utara berhak menyimpan, mengalih media,
memformat, mengelola dalam bentuk database, merawat dan mempublikasikan tesis
saya tanpa meminta izin dari saya selama tetap mencantumkan nama saya sebagai
penulis dan sebagai pemegang dan/atau sebagai pemilik hak cipta.
Miftahul jannah
157038078
RIWAYAT HIDUP
DATA PRIBADI
DATA PENDIDIKAN
Puji Syukur kehadirat Allah SWT sebagaimana Allah telah memberi kita beribu-ribu
nikmat, rahmat dah hidayahnya kepada kita sehingga penulis dapat menyelesaikan
Tesis dengan judul “ANALISI PERBANDINGAN SISTEM PENDETEKSI WAJAH
DAN EKPRESI MENGGUNAKAN ALGORITMA WIDROW HOFF DAN
LEARNING VECTOR QUANTIZATION”
Tesis ini merupakan salah satu syarat untuk memeperoleh gelar Master Teknik
Informatika pada program studi S-2 Teknik Informatika Universitas Sumatera Utara.
Pada kesempatan ini tak lupa penulis mengucapkan terima kasih sebesar-
besarnya kepada :
1. Bapak Prof. Dr. Runtung Sitepu, S.H., M.Hum., selaku Rektor Universitas
Sumatera Utara.
2. Bapak Prof. Dr. Opim Salim Sitompul., selaku Dekan Fakultas Ilmu Komputer
danTeknologi Informasi Universitas Sumatera Utara.
3. Bapak Prof. Dr. Muhammad Zarlis, M.Sc., selaku Ketua Program Studi
Pascasarjana Teknik Informatika Fakultas Ilmu Komputer dan Teknologi
Informasi Universitas Sumatera Utara Medan dan juga Selaku Dosen Pembimbing
I yang telah bersedia memberikan bimbingan serta arahan dengan sangat bijaksana
dan penuh kesabaran hingga selesainya penulisan tesis ini.
4. Bapak Prof. Dr. Herman Mawengkang., selaku pembimbing kedua yang tiada
henti memberikan motifasi dan saran serta ilmu yang sangat membantu penulis
sehingga penulis dapat menyelesaikan tugas akhir ini dengan tepat waktu.
5. Bapak Prof. Dr. Tulus Vor. Dipl, Math., M.Si.., selaku pembanding/ penguji 1
yang selama ini telah memberikan banyak saran, serta pembelajaran yang berharga
bagi penulis
6. Bapak Dr. Syahril Efendi, S.Si., M.IT., selaku Sekretaris program studi
Pascasarjana Teknik Informatika Fakultas Ilmu Komputer dan Teknologi
Informasi Universitas Sumatera Utara Medan dan juga Selaku
pembanding/penguji II yang telah memberikan bantuan serta arahan dalam proses
menyelesaikan penelitian tesis ini.
7. Bapak/ Ibu Dosen di Jurusan Teknik Informatika yang telah memberikan bekal
ilmu yang sangat berharga bagi penulis selama menjadi mahasiswa.
8. Seluruh civitas akademika, Staf, Pegawai, teman-teman, adik-adik, kakak-kakak di
Teknik Informatika yang telah mewarnai hari-hari indah penulis selama menjalani
masa kuliah.
9. Ayahanda Adib S.Sos dan Ibunda Nurmala wati yang tercinta, tesis ini merupakan
persembahan untuk mereka berdua, yang tak pernah henti memberikan cinta serta
kasih sayang serta doa pada penulis hingga detik akhir selesainya tesis ini.
10. Seluruh keluarga tersayang dan sangat berarti bagi penulis, Kakanda Yusuf Setia
Putra, Nurul Rezeki Putri, Filda Alfia Riska, Safara Tasya Nadila, Khairatul Ulfa,
Masri,Rosmawar, M. Dzakial Ridha dan Khalisa Adhra
11. Bapak Fadlisyah dan Ibu Nurlela Polem selaku orang tua terkasih dan tersayang
yang sangat membantu penulis dalam menyelesaikan tesis ini.
12. Ibu Ardiana selaku orang tua penulis serta Saudara M.Baihaqi Bestari, Intan
Nabila Bestari, M.Furqan Bestari
13. Sahabat-sahabat yang luar biasa, terkhusus kepada sahabat terbaik Kiki Riski
Ananti, Luayyun A rani, Yessi aprilia, Adnan Buyung, Rizky Phonna, Insidini,
Khairul Umam, Adli Abdillah, Safrina amanah, Reni Ramadani dan sahabat-
sahabat se-angkatan 2015, khususnya sahabat-sahabat Unit kom C.
Penulis menyadari bahwa tesis ini jauh dari kesempurnaan karena keterbatasan
pengetahuan, untuk itu kritik dan saran sangat diharapkan agar pada masa yang akan
datang penulis dapat melakukan perbaikan untuk penulisan ilmiah lainnya.
Penulis
ABSTRAK
Sistem pendeteksian ekspresi wajah merupakan topik ynag terus menerus diteliti
karena merupakan penelitian yang sangat popular saat ini. Para peneliti telah banyak
melakukan usaha-usaha untuk membuat sistem pendeteksian wajah dan ekspresi
dengan algoritma yang kompleks, sehingga memerlukan waktu yang lama untuk
melakukan komputasi yang panjang. Sistem pendeteksian wajah dan ekspresi ini akan
dibuat dengan menggunakan dua algoritma yaitu Widrow-hoff dan Learning Vector
Quantization untuk diketahui unjuk kinerja dari kedua algoritma tersebut. Dalam
penelitian ini ada dua proses yaitu pelatihan dan pengujian. pada tahap pelatihan,
proses akan memberikan inputan sistem berupa citra video wajah, setelah itu
dilakukan proses perhitungan jarak dan bobot akhir yang kemudian nilai-nilai tersebut
disimpan kedalam memori. Setelah sistem mengenal beberapa citra video wajah,
sistem akan melakukan pengujian, dimana inputannya berupa citra video yang bersifat
real time dan akan memperoleh nilai neuron dengan jarak yang minimum. Sehingga
hasil penelitian menunjukkan bahwa sistem pendeteksian wajah dan ekspresi
menggunakan Widrow- Hoff memiliki true detection 85% dan Learning Vector
Quantization (LVQ) memiliki kisaran true detection sebesar 80%. Untuk
meningkatkan unjuk kerja dari sistem pendeteksi wajah dan eskpresi, dapat dilakukan
dengan memberikan pelatihan lebih lanjut dengan tambahan data training yang lebih
banyak dan lebih bervariasi.
Kata kunci: Sistem pendeteksian ekspresi wajah, Widrow hoff, Learning Vector
Quantization, Citra Video.
ABSTRACT
The facial expression detection system is a topic that is constantly being studied
because it is a very popular research for now. Researchers have made many attempts
to create facial expression detection systems with complex algorithms, so it takes a
long time to do long computations. The facial expression detection system will be
created using two algorithms namely Widrow-hoff and Learning Vector Quantization
to know the performance of these two algorithms. In this research there are two
processes namely training and testing. in the training phase, the process will provide
input system in the form of facial video image, after which the process of calculating
the distance and the final weight of the values then stored into memory. Once the
system recognizes some face video images, the system will perform the test, where the
input in the form of real time video images and will obtain the value of neurons with a
minimum distance. So the results showed that facial detection and expression system
using Widrow-Hoff has 85% true detection and Learning Vector Quantization (LVQ)
has a true detection range of 80%. To improve the performance of the face detection
and expression system, it can be done by providing further training with additional
and more varied training data.
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Persetujuan Publikasi iv
Panitia Penguji Tesis v
Riwayat Hidup vi
Ucapan Terima Kasih vii
Abstrak ix
Abstract x
Daftar Isi xi
Daftar Tabel xiii
Daftar Gambar xiv
Bab 1 Pendahuluan
1.1. Latar Belakang 1
1.2. Rumusan Masalah 2
1.3. Batasan Masalah 3
1.4. Tujuan dan Manfaat Penelitian 3
1.5. Manfaat Penelitian 3
Daftar Pustaka
Lampiran
DAFTAR TABEL
Halaman
Tabel 2.1. Metode yang terkait dengan deteksi wajah 11
Tabel 2.1. Penelitian Sebelumnya 21
Tabel 4.1. Hasil unjuk kerja sistem ekspresi wajah happy dengan
algoritma Widrow-Hoff 33
Tabel 4.2. Hasil unjuk kerja sistem ekspresi wajah unhappy dengan
algoritma Widrow-Hoff 33
Tabel 4.3. Hasil unjuk kerja sistem ekspresi wajah happy dan unhappy
dengan algoritma Widrow-Hoff 35
Tabel 4.4. Hasil unjuk kerja sistem ekspresi wajah happy dengan
algoritma LVQ 36
Tabel 4.5. Hasil unjuk kerja sistem ekspresi wajah unhappy
dengan algoritma LVQ 37
Tabel 4.6. Hasil unjuk kerja sistem ekspresi wajah happy dan unhappy
dengan algoritma LVQ 38
Tabel 4.7. Beberapa contoh pendeteksian ekspresi wajah dengan
algoritma Widrow-Hoff 39
Tabel 4.8. Beberapa contoh pendeteksian ekspresi wajah dengan
algoritma LVQ 42
Tabel 4.9. Contoh nilai Pixel Suatu Citra 47
Tabel 4.10. Hasil Nilai Citra Sobel 47
Tabel 4.11. Hasil Normalisasi Nilai Citra 47
DAFTAR GAMBAR
Halaman
Gambar 2.1. Tingkat kecerahan yang kontinu 5
Gambar 2.2. Tingkat kecerahan setelah mengalami kuantisasi 16
tingkatan diskrit 5
Gambar 2.3. Contoh gambar derajar keabuan 6
Gambar 2.4. Komposisi Warna RGB 7
Gambar 2.5. Lokasi Fitur Ekspresi wajah 13
Gambar 2.6. Histogram Fitur Bentuk Mulut 14
Gambar 2.7. Arsitektur ADALINE 15
Gambar 2.8. Pola interkoneksi suatu memori asosiatif pengenalan
sepuluh pola wajah yang dibangun dari ciri utama 16
Gambar 2.9. Contoh Jaringan LVQ 19
Gambar 3.1. Alur kerja penelitian secara umum 24
Gambar 3.2. Skema sistem pendeteksi ekspresi wajah pada video 24
Gambar 3.3. Diagram alir Proses Grey-scale 25
Gambar 3.4. Diagram alir Proses Konvolusi 26
Gambar 3.5. Diagram alir Algoritma Widrow-Hoff 27
Gambar 3.6. Diagram alir Algoritma LVQ 29
Gambar 4.1. Beberapa Sampel Citra Wajah Dan Ekspresi yang digunakan 31
Gambar 4.2. Vektor pola citra yang mengandung ekpresi wajah hasil
koreksi dan pengamatan pada sejumlah citra wajah
yang digunakan sebagai pelatihan 32
Gambar 4.3. Beberapa Hasil True Detection Pada Citra Wajah dan Ekspresi 32
Gambar 4.4. Beberapa Hasil False Detection Pada Citra Wajah dan Ekspresi 33
Gambar 4.5. Grafik unjuk kerja sistem deteksi ekspresi Happy
menggunakan Widrow-hoff 34
Gambar 4.6. Grafik unjuk kerja sistem deteksi ekspresi Unhappy
menggunakan Widrow-hoff 35
Gambar 4.7. Grafik unjuk kerja sistem deteksi ekspresi Happy
menggunakan LVQ 37
Gambar 4.8. Grafik unjuk kerja sistem deteksi ekspresi Unhappy
menggunakan LVQ 38
Gambar 4.9. Grafik unjuk kerja sistem menggunakan Widrow Hoff 44
Gambar 4.10. Grafik unjuk kerja sistem menggunakan LVQ 44
Gambar 4.11. Beberapa contoh citra edge yang memuat lokasi
wajah yang berhasil dideteksi 45
Gambar 4.12. Beberapa contoh citra edge yang memuat lokasi
wajah yang tidak berhasil dideteksi 46
Gambar 4.13. Beberapa contoh citra konvolusi yang memuat lokasi wajah 48
Gambar 4.14. Contoh pengenalan bobot wajah dan ekpresi dengan algoritma WH 49
Gambar 4.15. Contoh pengenalan bobot wajah dan ekpresi dengan
algoritma LVQ 51
PENDAHULUAN
Pendeteksian wajah sebagai bagian dari sistem persepsi manusia sudah lama
menjadi topic yang terus menerus diteliti oleh para ahli di berbagai bidang antara lain
ilmu psikologi, teknik dan neuroscience dengan berbagai macam teknik penyelesaian
yang digunakan dalam melakukan penelitian tersebut. Banyak penelitian yang
dilakukan dalam mendeteksi wajah secara realtime, akan tetapi sistem tidak banyak
melakukan pendekatan yang lebih spesifik terhadap area wajah seperti ekspresi dan
lain sebagainya.
Mu-Chun et al (2014) membahas masalah pendeteksian wajah pada gambar,
ekstraski fitur ekspresi wajah dan klasifikasi ekpresi wajah menggunakan Self-
organizing feature maps ( SOM) dan memiliki keakuratan sebesar 90 %.
Ketaren (2016) membahas metode pendeteksian wajah yang dilakukan dengan
memasukkan karakteristik backpropagation yaitu hidden layer dan bobot acak yang
dinamakan Modified LVQ (MLVQ). Hasil penelitian ini adalah perbandingan antara
algoritma Backpropagation, LVQ dan MLVQ pada pengenalan wajah. Dengan
akurasi sebesar dengan tingkat akurasi untuk algoritma Backpropagation sebesar
49.25 %, algoritma LVQ sebesar 48.14 % sedangkan algoritma MLVQ sebesar
50.37%.
Dalam penelitian ini penulis tertarik untuk membandingkan dua algoritma
yang memiliki keunggulan masing-masing agar mendapat akurasi yang lebih baik dari
kedua metode tersebut. Untuk pendeteksian ekpresi wajah melalui kamera yang
cenderung lebih dinamis dan berubah secara lebih cepat dengan menggunakan
perbandingan metode widrow hoff ( WH) dan learning vector quantization (LVQ).
Berdasarkan uraian diatas penulis tertarik untuk mengambil judul : Analisis
perandingan Sistem Pendeteksian wajah dan ekpresi wajah dengan Menggunakan
Metode widrow hoff dan Learning Vektor Quantization.
demikian pula adanya perbandingan antara metode Widrow hoff dan Learning Vector
Quantization ( LVQ).
Menurut Darma Putra (2010) secara umum, pengolahan citra digital menunjuk pada
sebuah pemrosesan gambar dua dimensi menggunakan perangkat komputer. Dalam
konteks yang lebih luas, pengolahan citra digital mengacu pada pemrosesan setiap
data dua dimensi. Citra digital merupakan sebuah larik (array) yang berisi nilai-nilai
real maupun kompleks yang dipresentasikan dengan deretan bit tertentu.
Komputer dapat mengolah isyarat-isyarat elektronik digital yang merupakan
sinyal biner (bernilai dua: 0 dan 1). Untuk itu citra digital harus mempunyai format
tertentu yang sesuai sehingga dapat mempresentasikan objek pencitraan dalam bentuk
kombinasi data biner (Nugroho. 2012).
Komputer merupakan alat yang beroperasi dalam sistem digital yang
menggunakan bit atau byte dalam pengukuran datanya, dan yang terpenting dalam
sistem digital adalah sifatnya yang diskrit, bukan kontinu. Hal ini berlawanan
dengan citra digital yang sebenarnya merupakan representasi citra asal yang
bersifat kontinu. Untuk mengubah citra yang bersifat kontinu diperlukan sebuah
cara untuk mengubahnya dalam bentuk data digital. Komputer menggunakan
sistem bilangan biner dalam pemecahan masalah ini. Dengan penggunaan sistem
bilangan biner ini, citra dapat diproses dalam komputer dengan sebelumnya
mengekstrak informasi citra analog asli dan mengirimkannya ke komputer dalam
bentuk biner. Proses ini disebut dengan digitisasi. Digitisasi dapat dilakukan oleh alat
seperti kamera digital atau scanner. Kedua alat ini selain dapat mengambil atau
menangkap sebuah citra, juga dapat bertindak sebagai alat input (masukan) bagi
komputer. Alat penangkap citra digital ini dapat menyediakan aliran data biner
bagi komputer yang didapatkan dari pembacaan tingkat kecerahan pada sebuah
citra asli dalam interval sumbu x dan sumbu y. Citra digital merupakan citra yang
tersusun dari piksel diskrit dari tingkat kecerahan dan warna yang telah
terkuantisasi . Jadi, pada dasarnya adalah sebuah citra yang memiliki warna dan
tingkat kecerahan yang kontinu perlu diubah dalam bentuk informasi warna, tingkat
kecerahan, dsb yang bersifat diskrit untuk dapat menjadi sebuah citra digital. Pada
Gambar 2.1 diperlihatkan kurva tingkat kecerahan yang kontinu dengan nilai hitam
dan putih yang tidak terbatas (a) dan kurva tingkat kecerahan setelah mengalami
kuantisasi dalam 16 tingkatan diskrit (b).Tingkat kecerahan pada Gambar 2.1 yang
bersifat kontinu dapat diubah menjadi tingkat kecerahan seperti Gambar 2.2
dengan pembacaan tingkat kecerahan menggunakan interval tertentu pada sumbu x
dan y seperti yang telah disebutkan di atas. Pembagian seperti pada pembagian
tingkat kecerahan ini juga berlaku untuk warna agar nilai warna dapat menjadi
diskrit.
Nilai suatu pixel memiliki nilai dalam rentang tertentu, dari nilai minimum sampai
nilai maksimum. Jangkauan yang digunakan berbeda-beda tergantung dari jenis
warnanya. Namun secara umum jangkauannya adalah 0 – 255. Citra dengan
penggambaran seperti ini digolongkan ke dalam citra integer. Berikut adalah jenis-
jenis citra berdasarkan nilai pixel-nya.
a. Citra biner (monochrome) : citra digital yang.hanya memiliki dua kemungkinan
nilai pixel yaitu hitam dan putih. Citra biner juga disebut sebagai citra B & W
(black and white) atau citra monokrom. Hanya dibutuhkan 1 bit untuk mewakili
nilai setiap pixel dari citra biner. Citra biner sering kali muncul sebagai hasil dari
proses pengolahan seperti segmentasi, thresholding, morfologi, ataupun dithering.
b. Citra skala keabuan (grayscale) : citra digital yang hanya memiliki satu nilai kanal
pada setiap pixelnya, dengan kata lain nilai bagian red = green = blue. Nilai
tersebut digunakan untuk menunjukkan tingkat intensitas. Warna yang dimiliki
adalah warna dari hitam, keabuan, dan putih. Tingkatan keabuan disini merupakan
warna abu dengan berbagai tingkatan dari hitam hingga mendekati putih. Berikut
contoh grayscale :
Dalam deteksi pergerakan objek terdapat suatu proses matching yang disebut Frame
Difference yaitu mengurangi frame satu dengan frame lainnya dan memberi label
pada frame berbeda yang lebih besar dari objek. Proses ini akan menangkap batas tepi
dari objek yang bergerak. Pertama-tama video image akan menampilkan
gambar/image yang ditangkap oleh webcam. Video image (berupa color image) yang
ditangkap ini kemudian diubah menjadi 16 grayscale image. Dengan tujuan untuk
memudahkan pemrosesan citra. Bila timbul suatu image baru yang ditangkap oleh
webcam maka program akan menghitung perbedaan yang terjadi antara dua image
dengan cara melakukan penghitungan nilai rata-rata dari semua nilai gray value dalam
suatu gambar yang dapat disebut juga sebagai mean. Nilai mean yang didapat akan
dibandingkan dengan nilai threshold yang ditentukan oleh user. Semakin kecil batas
nilai threshold maka motion detection akan semakin sensitif.
Pada prinsipnya citra pada video atau citra secara real time adalah sama
dengan citra digital biasa, citra video merupakan sekumpulan citra-citra yang
digerakkan sepanjang durasi waktu tertentu, pergerakan citra-citra yang terdapat pada
video tersebut membentuk pergerakan dinamis sehingga mudah mengelabui mata
manusia. Pergerakan atau perubahan yang cepat tersebut yang menjadi tantangan kita
untuk mengimplementasikan algoritma yang tepat dalam situasi yang cepat dan
dinamis.
Video digital pada dasarnya tersusun atas serangkaian frame yang ditampilkan
dengan kecepatan tertentu (frame / detik). Jika laju frame cukup tinggi, maka mata
manusia melihatnya sebagai rangkaian yang kontinu sehingga tercipta ilusi gerak yang
halus, semakin besar nilai frame rate maka akan semakin halus pergerakan yang
ditampilkan.. Setiap frame merupakan gambar/ citra digital.
Kompresi video adalah adalah salah satu bentuk kompresi data yang bertujuan
untuk mengecilkan ukuran file audio/video. Di dalam video ada 2 hal yang dapat
dikompresi yaitu frame(image) dan audionya. Proses kompresi file menyebabkan
kualitas dari file video tersebut mengalami penurunan kualitas di berbagai frame yang
ada, seperti timbulnya noise pada bagian bagian tertentu, frame yang hilang dan juga
kualitas warna gambar yang berbeda dengan versi asli nya, hal itu disebabkan karena
adanya perubahan data ataupun data yang hilang karena proses kompresi data yang
dilakukan pada file yang asli.
Wajah merupakan sebuah model visual multidimensional yang kompleks dan untuk
menggambarkan pengenalan wajah secara komputasi itu sulit. Pengenalan wajah
adalah suatu kegiatan yang aktif di bidang biometric. Bagian terpenting dalam
pengenalan wajah adalah pendeteksian bagian – bagian dari wajah. Teknik pengenalan
wajah secara garis besar dapat dibagi menjadi 3 kategori berdasarkan metodologi
akuisisi data wajah, diantaranya:
a. Metode yang beroperasi pada intensitas
b. Urutan dalam pengambilan gambar
c. Informasi 3D atau citra infra merah Pengenalan wajah ini, pada dasarnya digunakan
untuk mengidentifikasi orang dari gambar atau video (Yulius H,2014).
Menurut Hemalatha & Sumathi (2014) Langkah pertama dalam deteksi wajah
adalah preprocessing dengan alasan untuk mendapatkan gambar wajah murni dengan
Intensitas normal, ukuran dan bentuk seragam. Langkah-langkah yang terlibat dalam
mengubah gambar menjadi gambar wajah normal untuk ekstraksi fitur adalah
mendeteksi titik fitur, berputar hingga berbaris. Pada pendekatan ini, para peneliti
mencoba menemukan fitur-fitur yang tidak berubah (invariant) pada wajah. Asumsi
ini didasarkan pada observasi bahwa manusia dapat dengan mudah mendeteksi wajah
dengan berbagai pose dan kondisi cahaya, sehingga disimpulkan bahwa pasti ada
sifat-sifat atau fitur-fitur yang bersifat invariant. Fitur wajah seperti alis, mata, hidung,
mulut, biasanya diekstraksi dengan edge detector. Selanjutnya dibentuk suatu model
statistik yang mendeskripsikan hubungan antara fitur-fitur tersebut untuk menentukan
ada tidaknya wajah. Warna kulit manusia juga dapat digunakan untuk membantu
memperkirakan area wajah.
Metode deteksi wajah dikembangkan berdasar pada aturan (rule) yang didapat
dari pengetahuan para peneliti tentang wajah manusia. Sebagai contoh, suatu wajah di
dalam citra biasanya memiliki dua buah mata yang simetris, sebuah hidung, dan
sebuah mulut. Relasi antara fitur-fitur tersebut dapat direpresentasikan sebagai jarak
atau posisi. Lokasi dan tanam daerah wajah menggunakan persegi panjang, sesuai
dengan model wajah. Mendeteksi wajah dalam satu gambar melibatkan empat metode
Berbasis pengetahuan, Invarian wajah, Pencocokan template dimana pada metode ini
akan disimpan beberapa pola wajah standar untuk mendeskripsikan wajah secara
keseluruhan maupun bagian-bagiannya. Pada saat pendeteksian akan dihitung korelasi
antara citra input dengan citra pola wajah yang tersimpan sebelumnya. Penampilan
berdasarkan menurut penulis Ming-Hsuan disebut dalam tabel berikut:
4. Kondisi pengambilan citra. Citra yang diperoleh sangat dipengaruhi oleh faktor-
faktor seperti intensitas cahaya, arah sumber cahaya, dan karakteristik sensor dan
kualitas kamera.
Deteksi wajah dianggap sebagai kasus yang spesifik dari deteksi kelas objek
yang mempunyai ukuran dan lokasi objek, tercantum di kelas, di dalam gambar
masukan. Dalam langkah ini wajah terdeteksi dengan mengidentifikasi fitur wajah
sembari mengabaikan semua elemen non-wajah. Lakukan deteksi wajah terlebih
dahulu lalu diubah menjadi bentuk biner dan pindai gambar untuk area dahi,
kemudian cari lebar maksimum piksel putih kontinu sampai mencapai alis mata.
Setelah itu potong area wajah sedemikian rupa sehingga tingginya 1,5 kali lipat dari
lebarnya (P. M. Chavan et al, 2013 ).
Ekspresi atau mimik adalah salah satu bentuk komunikasi nonverbal yang merupakan
hasil dari satu atau lebih gerakan atau posisi otot pada wajah serta dapat
menyampaikan keadaan emosi dari seseorang kepada orang yang mengamatinya.
Melalui ekspresi wajah, maka dapat dipahami emosi yang sedang bergejolak pada diri
individu. Ekspresi wajah merupakan salah satu karakteristik perilaku. Penggunaan
sistem teknologi biometrika dengan karakteristik ekspresi wajah memungkinkan untuk
mengenali mood atau emosi seseorang. Komponen dasar sistem analisis ekspresi
wajah adalah deteksi wajah, ekstraksi data wajah, dan pengenalan ekspresi wajah.
Menurut Friska et al (2015) Pengenalan ekspresi wajah merupakan salah satu
cara untuk mengenali emosi. Karena ekspresi wajah merupakan hal yang paling kuat,
alami dan cepat untuk menyampaikan emosi atau perasaan seseorang. Banyak hal
dapat diketahui hanya dengan melihat ekspresi seseorang seperti niat, kepribadian,
hubungan sosial dan benda-benda yang ada di lingkungan. Otot-otot yang membentuk
ekspresi wajah dikenal sebagai musculi facialis yang merupakan otot-otot penggerak
wajah, sebagai contoh musculi zigomaticus major dan minor berorigo pada tulang
zigomaticus dan berinsersio pada sudut mulut berfungsi menarik sudut mulut ke atas
dan keluar.
Ekspresi wajah telah terbukti menjadi alat yang kuat dalam mengidentifikasi
manusia. Keadaan emosional dan tanggapan yang baik terhadap keadaan atau
menjadi sesuatu yang baru (produk) . Analisis dan pengukuran ekspresi wajah yang
efektif dilakukan di beberapa bidang aplikasi: obat-obatan, bidang keamanan, sistem
video surveillance, permainan, hiburan, identifikasi biometrik, tetapi juga dalam
banyak ilmu perilaku, antropologi, dan psikoanalisis (Reda & Shikun 2015).
Sarbani Ghosh (2015) Pendeteksian ekpresi wajah berhubungan dengan
masalah klasifikasi citra terhadap ekpresi manusia ( senang, sedih, normal dan marah).
Pola ekpresi berhungan dengan bermacam subjek seperti pengenalan pola perceptual,
kompurasi yang efektiv dan pembelajaran mesin.
Dalam proses pendeteksian ekpsresi dan wajah terdapat tahapan ekstaksi ciri
atau Fitur extraction. Ekstraksi ciri digunakan untuk mengambil cirri atau fitur yang
penting dari ekspresi wajah. Dalam teknik ini berdasarkan lokasi fitur dan
bentuk fitur. Ada 6 lokasi fitur penting yaitu 2 lokasi di pusat mata, 2 lokasi di
ujung alis dalam dan 2 lokasi di ujung mulut seperti gambar yang ditunjukkan
berikut:
Pertama dilakukan pencarian titik pusat mata dan ujung alis dalam
dengan metode pencarian berdasarkan titik hitam dari suatu daerah menggunakan
iterasi thresholding. Untuk mendapatkan fitur 2 lokasi di ujung mulut
menggunakan teknik integral projection melalui proses deteksi tepi. Teknik yang
digunakan untuk mendapatkan bentuk fitur adalah dengan mengektrak bentuk
fitur daerah mulut dengan histogram seperti pada gambar berikut :
ADALINE (Adaptive Linear Neuron) dikembangkan oleh Widrow dan Hoff pada
tahun 1960. Adaline dilatih dengan menggunakan aturan delta, yang juga dikenal
sebagai aturan least mean squares (LMS) atau Widrow-Hoff. Jaringan lapis tunggal
Jaringan terdiri dari satu atau lebih unit masukan dan satu unit keluaran. Mempunyai
sebuah bias yang berperilaku seperti bobot yang bisa disesuaikan yang terletak pada
koneksi dari sebuah unit yang selalu mengeluarkan sinyal +1 agar bobot bias bisa
dilatih seperti bobot lainnya dengan proses yang sama dalam algoritma pelatihan.
Beberapa jaringan Adaline yang menerima sinyal dari unit masukan yang sama dalam
dikombinasikan menjadi sebuah jaringan lapis tunggal seperti perceptron. Beberapa
Adaline juga bisa dikombinasikan sehingga keluaran dari sebagian Adaline menjadi
masukan untuk Adaline yang lain.
ADALINE menggunakan threshold dalam melakukan proses penjumlahan
linier seluruh masukan pada jaringannya. Pengaturan bobot interkoneksi pada jaringan
ADALINE dilakukan menggunakan Persamaan :
𝑊 +
̂𝑘)
= 𝑊 + 𝜇 (−∇ (1)
Keterangan :
µ adalah konstanta belajar.
εk adalah error pada iterasi ke-k.
𝜂 adalah konstanta belajar yang bernilai 2 µ.
W[ ] = [ ]
+
= + 𝑇
=[ ]+[ + ] × [+ + + − ]
+
−
+ + + −
=[+ + + − ]
+ + + −
− − − +
+ + + − +
= + 𝑇
=[+ + + − ]+[ + ] × [− − + − ]
+ + + − +
− − − + −
+ +
=[ + + ]
+ −
− +
Gambar 2.8 Pola interkoneksi suatu memori asosiatif pengenalan sepuluh pola wajah
yang dibangun dari ciri utama.
Pada Gambar 2.8, bobot interkoneksi antara elemen pemroses 1 dan 2, 1 dan 3,
dan 2 dan 3 mempunyai nilai 2, hal ini mencerminkan bahwa nilai-nilai ciri utama
yang berhubungan dengan elemen pemroses adalah sama, +1 dan +1 atau -1 dan -1,
dalam enam pola, tetapi berbeda untuk empat pola, 6 x (+1)+4 x (-1)=2. Bobot
interkoneksi antara elemen pemroses 1 dan 4 mempunyai nilai 6, yang menunjukkan
bahwa nilai-nilai ciri utama1 dan 4 sama dalam delapan pola dan berbeda dalam 2
pola, 8 x (+1)+2 x (-1)=6. Bobot interkoneksi antara elemen pemroses 2 dan 4, dan 3
dan 4 mempunyai nilai -2, yang menunjukkan nilai-nilai ciri utama yang berhubungan
dengan elemen pemroses adalah sama, +1 dan +1 atau -1 dan -1, dalam empat pola,
tetapi berbeda untuk enam pola, 4 x (+1)+6 x (-1)= -2.
Tinjau kembali hasil dari Gambar 2.6, ambil vektor masukan 2 dan 4 yang
menghasilkan keluaran yang tidak kuat (karena tidak ortogonal). Selanjutnya kita
mencoba membuat matriks bobot dengan algoritma belajar Widrow-Hoff. Jaringan
ADALINE terdiri dari kriteria sebagai berikut :
1. Memiliki satu atau lebih unit masukan dan satu unit keluaran.
2. Mempunyai sebuah bias yang berperilaku seperti bobot yang bisa disesuaikan
yang terletak pada koneksi dari sebuah unit yang selalu mengeluarkan sinyal +1
agar bobot bias bisa dilatih seperti bobot lainnya dengan proses yang sama dalam
algoritma pelatihan.
3. Beberapa jaringan Adaline yang menerima sinyal dari unit masukan yang sama
dalam dikombinasi kan menjadi sebuah jaringan lapis tunggal seperti perceptron.
4. Beberapa Adaline juga bisa dikombinasikan sehingga keluaran dari sebagian
Adaline menjadi masukan untuk Adaline yang lain, dan akan membentukan
jaringan lapis banyak yang disebut Madaline (Many Adaptive Linear Neuron).
5. Fungsi aktivasi yang digunakan adalah fungsi tangga
1 if yin > 0
Y=
(2)
-1 if yin < 0
6. Algoritma Pembelajaran
Langkah 0. Inisialisasi bobot
(biasanya digunakan bilangan acak yang kecil)
Menurut Ezat & Maleke Ashtar ( 2014) Learning Vektor Quantization (LVQ) adalah
suatu metode jaringan syaraf tiruan untuk melakukan pembelajaran pada lapisan
kompetitif yang terawasi. Suatu lapisan kompetitif akan secara otomatis belajar untuk
mengklasifikasikan vector-vektor input. Kelas-kelas yang didapatkan sebagai hasil
dari lapisan kompetitif ini hanya tergantung pada jarak antara vector-vektor input. Jika
kedua vector input mendekati sama, maka lapisan kompetitif akan meletakkan kedua
vector input tersebut kedalam kelas yang sama.
Jaringan LVQ memiliki lapisan kompetitif pertama dan lapisan linier kedua.
Lapisan kompetitif belajar untuk mengklasifikasikan vektor input dengan cara yang
sama seperti lapisan kompetitif dari Self Organizing Feature Maps. Lapisan linier
mengubah kelas lapisan kompetitif menjadi klasifikasi target yang ditentukan oleh
pengguna. Kelas yang dipelajari oleh lapisan kompetitif disebut sebagai subclass dan
kelas dari lapisan linier sebagai kelas sasaran
Arsitektur jaringan LVQ ini terdiri dari input, lapisan kohonen, dan lapisan
output. Arsitektur LVQ ini dapat digambarkan seperti gambar berikut:
∥ − j∥: jarak Euclidean antara vektor input dan bobot vektor untuk layer output ke-j
Berikut ini adalah algoritma pembelajaran LVQ:
langkah 0 : inisialisasi vektor referensi ; inisialisasi rating pembelajaran α (0)
langkah 1 : ketika kondisi berhenti adalah false, lakukan langkah 2 sampai 6
langkah 2 : untuk setiap input pelatihan vektor x lakukan langkah 3 – 4
langkah 3 : temukan j hingga ||x – wj|| minimum
langkah 4 : perbaharui wj sebagai berikut :
Wj(baru) = Wj(lama) + α[x – wj(lama)];
jika T ≠ Cj, maka
Wj(baru) = Wj(lama) - α[x – wj(lama)];
langkah 5 : kurang rating pelatihan
langkah 6 :tes kondisi berhenti: yaitu kondisi yang mungkin menetapkan sebuah
jumlah tetap dari iterasi atau rating pembelajaran mencapai nilai kecil
yang cukup.
Setelah proses pembelajaran Learning Vector Quantization (LVQ) maka langkah
selanjutnya adalah proses pengambilan hasil output Learning Vector Quantization
(LVQ). Pengambilan hasil dilakukan hanya pada proses Testing(pengujian). Pada
dasarnya, tahapan ini hanya memasukkan input bobot akhir kemudian mencari jarak
terdekat dengan perhitungan Euclidian (jarak terdekat).
Dari tabel diatas setiap algoritma memiliki kelebihan dan kelemahan. Oleh
karena itu peneliti akan mencoba mengimplementasikan algoritma Widrof Hoff dan
Learning vector Quantization dengan memandingkan kedua algoritma untuk
menganalisis akurasi pendeteksian wajah dan ekspresi sehingga didapatkan hasilnya
manakah yang lebih efektif dalam mendeteksi wajah dan ekspresi.
Identifikasi masalah
Menetapkan tujuan
Penelitian
Desain Sistem
Pengumpulan Data
Sampel
Implementasi Sistem
Ujicoba
Tidak
Sistem
ya
Pengukuran kinerja
Kesimpulan
Adapun tahapan yang dilakukan setelah sistem menerima input video adalah
tahapan grey-scale, konvolusi, dan uji pengenalan pola wajah dan ekspresi melalui
metode Widrow-Hoff dengan pendekatan jaringan ADALINE dan LVQ. Pada tahap
pre-processing, video sumber yang menjadi inputan akan di-resize terlebih dahulu
untuk menghemat waktu dan jumlah iterasi saat komputasi. Setelah resizing, video
akan direpresentasikan dalam bentuk satu kanal, dan diakhiri dengan pendeteksian
tepi melalui proses konvolusi. Pada proses utama, komputasi menggunakan jaringan
ADALINE dan LVQ, vektor pola wajah akan dilatih untuk mendapatkan sebuah
matriks bobot, yang selanjutnya digunakan sebagai matriks pengujian.
3.5. Grey-scale
Diagram alir untuk proses grey-scale dibangun berdasarkan Gambar 3.3:
Mulai
X = 0
Y= 0
Ya X = X + 1
X > panjang ?
Tidak
Y = Y + 1
Y > Tinggi ?
Tidak
Selesai
3.6. Konvolusi
Diagram alir untuk proses konvolusi dibangun berdasarkan Gambar 3.4:
Mulai
Video Grey-scale
(x,y) (x n,y)
kernel
(x,y n) (x n,y n)
Tidak
Ya
Stop
Gambar 3.4 Diagram alir proses konvolusi
Hitung error
n X [t ] X t 1
Ya
Stop
Langkah di atas berlaku untuk tahapan pelatihan dan pegujian sistem yang di
bangun. Pertama sistem akan melakukan proses pelatihan untuk mendapatkan bobot
nilai yang akan dijadikan referensi saat pegujian. Saat proses pengujian algorima
akan menyimpan bobot nilai yang mengandung ekpresi senang dan sedih pada area
wajah.
Adapun Skema untuk metode LVQ Dalam proses ini inputan sistem berupa citra
video wajah yang telah dikonvolusi, setelah itu dilakukan proses perhitungan jarak
menggunakan rumus Ecludian Distance dan mendapatkan nilai bobot akhir yang
kemudian nilai-nilai tersebut disimpan kedalam memori unyuk digunkan sebagai nilai
referensi pada saat proses pengujian. Adapun kema pelatihan pada metode LVQ
digambarkan pada gambar 3.6 :
Pada tahap ini, Langkah awal adalah melakukan pengenalan terhadap pola
masukkan terlebih dahulu yang disajikan dalam bentuk vector yang terdiri dari vector
target atau variable input. Setiap neuron keluaran menyatakan kelas atau katagori
tertentu, maka pola masukkan dapat dikenali kelasnya berdasarkan neuron keluaran
yang diperoleh. Metode LVQ mengenali pola masukkan berdasarkan pada kedekatan
jarak antara dua vector yaitu vector dari unit masukkan dan bobot. Adapun langkah-
langkahnya adalah :
Langkah 1 : Inisialisasi vector pola, learning rate dan bobot
Langkah 2: input nilai vector pola dan target
4.1. Hasil
Hasil yang dibahas meliputi pemilihan sampel pelatihan citra, vektor pola citra,
pengujian sistem dan pengukuran unjuk kerja sistem.
Gambar 4.1. Beberapa sampel citra wajah dan ekpresi yang digunakan
yang dihasilkan dari pengamatan pada citra wajah dan ekspresi pelatihan. Vektor pola
ekpresi wajah referensi terkait dengan kemunculan nilai-nilai 0 atau 1 pada sejumlah
video wajah pelatihan. Nilai 0 pada vektor mewakili nilai yang bukan termasuk fitur
ekspresi wajah tetapi di dalam wilayah wajah, sebaliknya nilai 1 mewakili nilai yang
termasuk di dalam fitur ekspresi wajah
Gambar 4.2. Vektor pola citra yang mengandung ekpresi wajah hasil koreksi dan pengamatan
pada sejumlah citra wajah yang digunakan sebagai pelatihan.
Gambar 4.3. Beberapa hasil true detection pada citra wajah dan ekspresi
Gambar 4.4. Beberapa hasil false detection pada citra wajah dan ekspresi
jelaskan pada pada tabel 4.1 dan ”unhappy” atau k 2 yang akan di jelaskan pada
pada tabel 4.2 dimana nilai persentase di dapat dari rumus berikut :
𝑟 𝑒 𝑒 𝑒𝑐
Persentase = x 100 %
𝐽 𝑎ℎ 𝑟𝑎
Tabel 4.1. Hasil unjuk kerja sistem ekspresi wajah happy dengan algoritma Widrow-Hoff
2 50 46 4 92 %
10
75 69 6 92 %
100 80 20 80%
Berdasarkan table di atas maka hasil unjuk kerja true detection untuk
ekpspresi happy yang diperoleh ditunjukkan oleh gambar 4.5 sebagai berikut :
25 50 75 100
Gambar 4.5. Grafik unjuk kerja sistem deteksi ekspresi Happy menggunakan Widrow-hoff
Tabel 4.2. Hasil unjuk kerja sistem ekspresi wajah unhappy dengan algoritma Widrow-Hoff
2 50 45 5 90 %
10
75 69 6 92 %
100 85 15 85%
Berdasarkan table di atas maka hasil unjuk kerja true detection yang diperoleh
ditunjukkan oleh gambar 4.6 sebagai berikut :
25 50 75 100
Gambar 4.6. Grafik unjuk kerja sistem deteksi ekspresi Unhappy menggunakan Widrow-hoff
Secara keseluruhan kedua nilai persentase ekpresi senang dan sedih dapat
dirangkum dalam tabel 4.3 sebagai berikut
Tabel 4.3. Hasil unjuk kerja sistem ekspresi wajah happy dan unhappy dengan
algoritma Widrow-Hoff
2 50 92 % 90 %
10
75 92 % 92 %
100 80% 85%
Berdasarkan tabel diatas jumlah citra pengujian dalam penelitian ini adalah
sebanyak 100 vektor pola wajah dalam video. Untuk tahap pelatihan dengan jumlah 5
sampel pada data pengujian 25 sampel maka diperoleh true detection untuk k1 = 0,80
atau 80% dan k 2 = 0,76 atau 76%, pada data pengujian 50 sampel maka diperoleh true
detection untuk k1 = 0,82 atau 82% dan k 2 = 0,84 atau 84%, pada data pengujian 75
sampel maka diperoleh true detection untuk k1 = 0,84 atau 84% dan k 2 = 0,86 atau
86%, pada data pengujian 100 sampel maka diperoleh true detection untuk k1 = 0,74
atau 74% dan k 2 = 0,70 atau 70%. Pada tahap kedua proses pelatihan data sebanyak
10 sampel maka pada data pengujian 25 sampel diperoleh true detection untuk k1 =
0,88 atau 88% dan k 2 = 0,88 atau 88%, pada data pengujian 50 sampel maka diperoleh
true detection untuk k1 = 0,92 atau 92% dan k 2 = 0,90 atau 90%, pada data pengujian
75 sampel maka diperoleh true detection untuk k1 = 0,92 atau 92% dan k 2 = 0,92 atau
92%, pada data pengujian 100 sampel maka diperoleh true detection untuk k1 = 0,80
tabel 4.4 dan ”unhappy” atau k 2 . yang akan di jelaskan pada pada tabel 4.5 dimana
nilai persentase di dapat dari rumus pada algoritma Widrow-hoff sebelumnya.
Tabel 4.4. Hasil unjuk kerja sistem ekspresi wajah happy dengan algoritma LVQ
2 50 42 8 84 %
10
75 62 13 82 %
100 77 23 77%
Berdasarkan table di atas maka hasil unjuk kerja true detection untuk
ekpspresi happy yang diperoleh ditunjukkan oleh gambar 4.7 sebagai berikut :
25 50 75 100
Gambar 4.7. Grafik unjuk kerja sistem deteksi ekspresi Happy menggunakan LVQ
Tabel 4.5 Hasil unjuk kerja sistem ekspresi wajah unhappy dengan algoritma LVQ
2 50 43 7 86 %
10
75 69 6 83 %
100 80 20 80%
Berdasarkan table di atas maka hasil unjuk kerja true detection untuk
ekpspresi happy yang diperoleh ditunjukkan oleh gambar 4.8 sebagai berikut :
25 50 75 100
Gambar 4.8. Grafik unjuk kerja sistem deteksi ekspresi unhappy menggunakan LVQ
Secara keseluruhan kedua nilai persentase ekpresi senang dan sedih dapat
dirangkum dalam tabel 4.3 sebagai berikut
Tabel 4.6. Hasil unjuk kerja sistem ekspresi happy dan unhappy dengan algoritma LVQ
2 50 84 % 86 %
10
75 82 % 83 %
100 77% 80%
Berdasarkan tabel diatas jumlah citra pengujian dalam penelitian ini adalah
sebanyak 100 vektor pola wajah dalam video. Untuk tahap pelatihan dengan jumlah 5
sampel pada data pengujian 25 sampel maka diperoleh true detection untuk k1 = 0,72
atau 72% dan k 2 = 0,76 atau 76%, pada data pengujian 50 sampel maka diperoleh true
detection untuk k1 = 0,76 atau 76% dan k 2 = 0,80 atau 80%, pada data pengujian 75
sampel maka diperoleh true detection untuk k1 = 0,80 atau 80% dan k 2 = 0,84 atau
84%, pada data pengujian 100 sampel maka diperoleh true detection untuk k1 = 0,74
atau 74% dan k 2 = 0,68 atau 68%. Pada tahap kedua proses pelatihan data sebanyak
10 sampel maka pada data pengujian 25 sampel diperoleh true detection untuk k1 =
0,80 atau 80% dan k 2 = 0,88 atau 88%, pada data pengujian 50 sampel maka diperoleh
true detection untuk k1 = 0,84 atau 84% dan k 2 = 0,86 atau 86%, pada data pengujian
75 sampel maka diperoleh true detection untuk k1 = 0,82 atau 82% dan k 2 = 0,83 atau
83%, pada data pengujian 100 sampel maka diperoleh true detection untuk k1 = 0,77
Tabel 4.7. beberapa contoh pendeteksian ekspresi wajah dengan algoritma Widrow-Hoff
Citra yang True False
No Hasil citra
digunakan detection detection
2
1 0
2 2 0
3 2 0
4 2 0
5 2 0
6 1 1
7 2 0
8 1 1
9 2 0
10 2 0
11 2 0
12 1 1
13 1 1
14 0 2
15 2 0
16 2 0
17 2 0
Tabel 4.8. beberpa contoh pemdeteksian ekspresi wajah dengan algoritma LVQ
Citra yang True False
No Hasil citra
digunakan detection detection
1 2 0
2 2 0
3 2 0
4 2 0
5 2 0
6 1 1
7 1 1
8 2 0
9 2 0
10 2 0
11 2 0
12 2 0
13 1 1
14 0 2
15 0 2
16 1 1
Hasil pengujian pada tabel 4.6 dan tabel 4.7 menunjukkan bahwa true
detection sangat dipengaruhi oleh citra pelatihan. Maka hasil unjuk kerja true
detection yang diperoleh ditunjukkan oleh gambar 4.7 untuk algoritma Widrow-Hoff
dan gambar 4.8 untuk algoritma LVQ.
1.5
true detection
1 false detection
0.5
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Citra yang digunakan
1.5
true detection
1 false detection
0.5
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Citra yang digunakan
4.2. Pembahasan
Pembahasan yang dibahas meliputi proses mendapatkan vector pola citra wajah dan
ekspresi dan pengukuran unjuk kerja sistem
Gambar 4.11. Beberapa contoh citra edge yang memuat lokasi wajah yang berhasil dideteksi
Gambar 4.12. Beberapa contoh citra edge yang memuat lokasi wajah yang tidak berhasil
dideteksi
Kombinasi antar kedua hasil operasi dengan mask tersebut bisa dilakukan
dengan mengambil hasil penjumlahan.
|𝐺| = |𝐺 | + |𝐺 |
22 10 15 28 11 19 13 10
13 17 24 23 17 25 24 18
65 17 25 23 17 24 22 17
25 24 18 25 24 17 25 24
15 22 17 25 22 17 25 21
-4 20 8 -28 16 8
Sebagai catatan, jika hasil konvolusi menghasilkan nilai pixel negatif, maka nilai
tersebut dijadikan 0, sebaliknya jika hasil konvolusi menghasilkan nilai pixel lebih
besar dari nilai keabuan maksimum, maka nilai tersebut dijadikan ke nilai keabuan
maksimum sehingga Normalisasi nilai pixel dapat di tulis:
Jika M >= 0 maka M=1, Jika M<0 maka M=0
Tabel 4.11. Hasil Normalisasi Nilai Pixel
0 1 0 0 0 0
0 1 0 0 1 0
0 1 1 0 1 1
Gambar 4.13. Beberapa contoh citra konvolusi yang memuat lokasi wajah
Berdasarkan gambar diatas dapat kita lihat, setiap citra memiliki bobot nilai
yang berbeda-beda. Hal ini di karenakan setiap gambar memiliki tepian yang berbeda-
beda. Nilai yang didapatkan pada vector pola setiap ekspresi berbeda antara algoritma
Widrow-hoff dan LVQ. Untuk nilai vector pola wajah yang dominan senang, akan
mengandung vector pola yang sangat mirip antara nilai koefisien senang dan sedih.
Demikian pula terhadap wajah yang dominan murung, maka akan mengandung nilai
vector yang mirip sehingga membuat sistem akan sulit membedakan antara bobot nilai
senang dan sedih.
kedalam file “petavertikal.txt” untuk nilai yang menyatakan citra yang mengandung
ekpresi senang dan “petavertikal2.txt” untuk nilai yang mengadung ekpresi sedih.
selanjutnya sistem akan membaca nilai dari bobot citra yang diujikan. Berikut
beberapa set data yang menjadi citra latih :
Gambar 4.14. contoh pengenalan bobot wajah dan ekpresi dengan algoritma WH
Berdasarkan gambar diatas, proses pengenalan ekpresi pada wajah didapat dari
nilai citra latih yang mengandung ekspresi senang dan bobot nilai yang telah di
lakukan perhitungan dengan algoritma widrow-Hoff yang akan disimpan kedalam file
yang dijelaskan sebelumnya untuk dijadikan nilai acuan yang digunkan untuk proses
pengujian. Untuk bobot nilai citra latih yang mengandung nilai ekpresi sedih disimpan
dalam file yang dijelaskan sebelumnya untuk dijadikan nilai acuan yang digunkan
untuk proses pengujian pula. Selanjutkan sistem akan melakukan proses pengujian
dengan citra yang baru yang dijadikan sebagai citra uji dan mengandung unsur wajah
dan ekspresi. Jika bobot citra yang di uji mendekati nilai vector pada file citra latih
senang, maka citra uji dikenali sebagai citra senang atau sistem akan mendeteksi
sebagai “Happy” namun Jika bobot citra yang di uji mendekati nilai vector pada file
citra latih sedih, maka citra uji dikenali sebagai citra senang atau sistem akan
mendeteksi sebagai “UnHappy”
Maksimum ∆w1 dari keempat masukkan adalah = 0.07 > toleransi, maka iterasi
dilanjutkan untuk epoch selanjutnya sehingga mendapatkan nilai yang paling kecil
dalam jumlah bobotnya. Table 4.4 menunjukkan hasil untuk epoch 1 dan tabel 4.5
menunjukkan hasil untuk epoch ke 2.
Pada Algoritma Learning Vector Quantization, sistem akan melakukan
pelatihan terhadap wajah yang telah dideteksi tepi dengan cara menggeser bagian
detektor ke dalam posisi area wajah yang mengandung fitur-fitur wajah. Kemudian
akan dilakukan perekaman peta wajah. Yang dimaksudkan disini adalah, posisi
wajah yang akan direkam dalam detektor yang nantinya akan disimpan kedalam file
notepad bernama “peta.txt”. Selanjutnya sistem akan menggunakan metode yang
telah ditentukan, yaitu Learning Vector Quantization. Didalam metode ini, epoch
akan diatur menjadi nol dan akan dilakukan untuk pencarian jarak menggunakan
Euclidian distance yang nantinya akan disimpan dalam file notepad bernama
“jarak.txt”.
Gambar 4.15. contoh pengenalan bobot wajah dan ekpresi dengan algoritma LVQ
Berdasarkan gambar diatas, proses pengenalan ekpresi pada wajah didapat dari
nilai citra latih yang mengandung ekspresi senang dan bobot nilai yang telah di
lakukan perhitungan dengan algoritma widrow-Hoff yang akan disimpan kedalam file
yang dijelaskan sebelumnya untuk dijadikan nilai acuan yang digunkan untuk proses
pengujian. Untuk bobot nilai citra latih yang mengandung nilai ekpresi sedih disimpan
dalam file yang dijelaskan sebelumnya untuk dijadikan nilai acuan yang digunkan
untuk proses pengujian pula. Selanjutkan sistem akan melakukan proses pengujian
dengan citra yang baru yang dijadikan sebagai citra uji dan mengandung unsur wajah
dan ekspresi. Jika bobot citra yang di uji mendekati nilai vector pada file citra latih
senang, maka citra uji dikenali sebagai citra senang atau sistem akan mendeteksi
sebagai “Happy” namun Jika bobot citra yang di uji mendekati nilai vector pada file
citra latih sedih, maka citra uji dikenali sebagai citra senang atau sistem akan
mendeteksi sebagai “Sad”.
Contoh perhitungan sederhana jarak menggunakan Euclidian distance yang
diambil dari nilai sembarang vektor fitur.
A : 0.32 0.24 0.2 0.16
B : 0.24 0.36 0.2 0.32
=√ . + . + + .
=√ . = 0.215
Selanjutnya akan dipilih jarak yang terpendek untuk menentukan kelas dari
vektor input dan perubahan bobot dari kelas tersebut. Kemudian dilakukan pencarian
bobot baru sesuai dengan iterasi yang nantinya akan disimpan dalam file notepad
bernama “bobotbaru.txt”. Pencarian bobot baru ini dapat digunakan dengan
persamaan 2 dan 3 yang telah dijelaskan sebelumnya pada bab 2. Berikut akan
dijelaskan contoh perhitungan sederhana Metode LVQ dimana data yang lain sebagai
data yang akan dilatih α = 0.05, dan maksimum epoch = 10, penurunan α=0,1 .
α(lama):
Data ke -1 = menggunakan Eucludian Distance
Bobot ke-1
= √ − 2 + − 2 + − 2 + − 2 =1
Bobot ke-2
= √ − 2 + − 2 + − 2 + − 2 = 1,73
Jarak terkecil pada bobot ke-1
Target data ke-1=1
Bobot ke-1 baru:
W11(baru)=w11(lama)+ α*x11-w11(lama)]=1+0,05*(0-1)= 0,95
W12(baru)=w12(lama)+ α*x12-w12(lama)]=1+0,05*(1-1)= 1
W13(baru)=w13(lama)+ α*x13-w13(lama)]=1+0,05*(1-1)= 1
W14(baru)=w14(lama)+ α*x14-w14(lama)]=0+0,05*(0-0)= 0
Sehingga w1=(0,95 1 1 0) W2=(1011)
Sampai dengan epoh maximum =10 Misalnya setelah epoh ke-10 di dapat bobot-
bobot:
w2=(0,953 0 0,95 1) w1=(0,95 1 1 0,05
Kemudian perekaman peta wajah akan diubah menjadi vertikal, hal ini dilakukan
untuk mencegah terjadinya kesalahan pengambilan nilai matriks yang telah disimpan
sebelumnya kedalam file notepad bernama ”peta.txt”. Maka peta wajah akan disimpan
kembali secara vertikal kedalam file notepad bernama ”petavertikal.txt”. Hal yang
sama juga akan dilakukan kedalam bobot baru yang telah disimpan sebelumnya
kedalam file notepad bernama “bobotbaru.txt”. Sehingga bobot baru yang disimpan
kembali secara vertikal kedalam file notepad akan menjadi “bobotbaruvertikal.txt”.
Setelah semua proses itu selesai, barulah dilakukan perekaman untuk bibir
dimana ekspresi yang akan direkam dalam detektor adalah senyum dan nantinya akan
disimpan kedalam file notepad bernama “ekspresi”. File tersebut juga akan diubah
menjadi vertikal, sehingga file notepad bernama “Ekspresivertikal”.
Setelah melakukan proses pembelajaran, sistem juga akan melakukan proses
pengujian. Hal ini dilakukan untuk mengetahui apakah wajah senyum yang telah
dilatih sebelumnya dapat terdeteksi atau tidak. Didalam proses ini akan dilakukan
pengujian terhadap sampel yang akan diuji dengan melihat kesesuaian yang ada dalam
file notepad bernama “petavertikal.txt”, “jarak.txt”, “bobotbaruvertikal.txt”,
“happy.txt”, yang nantinya akan disimpan kedalam “happyform2.txt”. Jika kita
melakukan reupdate maka file notepad bernama “jarakacuform2.txt” dan
“bobotform2.txt” akan terperbaharui.
Selanjutnya akan dilakukan pengecekan kesesuaian peta dan jarak peta lokasi
terhadap target dengan cara mencari jarak antara bobot citra uji dan citra acuan. Jarak
bobot terpendek dengan citra acuan merupakan kelas dari citra uji. Berikut akan
dijelaskan contoh perhitungan sederhana, pencarian jarak terpendek yang diambil dari
sembarang vektor fitur.
Pada penelitian ini, proses pelatihan yang dilakukan sebelumnya secara
bertahap, dimulai dari 5 sampel data latih yang diujikan terhadap 25, 50, 75 dan 100
sampel data uji, selanjutkan dari 10 sampel data latih yang diujikan terhadap 25, 50,
75 dan 100 sampel data uji dan hal ini menunjukkan bahwa semakin sering sistem
dilatih maka semakin akurat pula pendeteksian yang di dapat, hal ini dikarenakan,
update bobot yang yang terdapat dalam sistem membuat sistem akan lebih fleksibel
dalam mencari pedekatan bobot nilai yang terdapat dalam proses pengujian citra. Hal
ini dibuktikan dengan semkin tinggi nilai true detection yang didapat dengan adanya
proses pelatihan yang digunakan.
5.1 Kesimpulan
Dari analisa dan pembahasan yang telah dibahas, dapat disimpulkan bahwa:
1. Hasil penelitian menunjukkan bahwa pendeteksian ekpresi wajah menggunakan
algoritma Widrow-Hoff 74% hingga 85% dan sistem pendeteksi ekspresi wajah
memiliki Detection rate sebesar 74% hingga 80% untuk algoritma Learning
Vector Quantization (LVQ)
2. Persentase detection rate tersebut menunjukkan bahwa metode Widrow-Hoff
dan Learning Vector Quantization (LVQ) sama-sama efektif digunakan sebagai
salah satu pendekatan untuk pendeteksian wajah dan ekspresi pada video ( Real-
time) , hanya saja algoritma Widrow-hoff lsedikit lebih akurat dalam mendeteksi
ekspresi.
3. Didalam pendeteksian wajah dan ekspresi yang dibangun, terdapat beberapa
sampel yang sedikit sulit untuk dibedakan antara senang dan sedih, hal ini
dikarenakan kemiripan vector pola wajah dan ekpresi yang terdapat dalam
sampel.
4. Selain itu, faktor cahaya juga menjadi salah satu kelemahan pada saat
pendeteksian. Karena jika cahaya yang diterima tidak normal, terlalu terang atau
terlalu gelap, maka proses konvolusi sering mengalami kegagalan dalam
memetakan fitur-fitur wajah pada video.
5. Pendeteksian wajah dan ekpresi menggunakan Widrow-Hoff dan Learning
Vector Quantization (LVQ) dapat bekerja dengan baik pada citra yang memiliki
latar belakang yang tidak kompleks, sebaliknya pada citra yang memuat latar
belakang yang kompleks dengan orientasi wajah yang beragam
6. Pendeteksian wajah dan ekspresi menggunakan metode widrow-hoff memiliki
false positive rate yang lebih rendah yaitu 24 %. Dan sistem pendeteksian wajah
menggunakan LVQ memiliki false positive rate LVQ berkisar 28% yang lebih
tinggi dibandingkan widrow-hoff
7. Sistem akan sulit mendeteksi ekpresi seseorang yang cenderung memiliki wajah
murung, dan dominan senang, hal ini dikarenakan kemiripan vector bobot yang
dimiliki oleh wajah tersebut.
8. Keunggulan Widrow-hoff dan algoritma LVQ adalah kemampuan pengenalan
pola wajah dengan jumlah data pelatihan yang tidak terlalu besar, sangat tepat
untuk diterapkan pada sistem biometrics seperti pengenalan wajah, pengenalan
ekspresi, klasifikasi kecantikan, dan lain-lain.
5.2 Saran
1. Untuk meningkatkan unjuk kerja dari pendeteksi wajah dan ekspresi dapat
dilakukan dengan memberikan pelatihan lebih lanjut dengan tambahan data
training yang lebih banyak dan lebih bervariasi.
2. Didalam kasus pendeteksian wajah dan ekspresi, akurasi dapat ditingkatkan
dengan mengkombinasikan sistem pendeteksi wajah dan ekpresi dengan sistem
pendeteksi warna kulit.
3. Kecepatan deteksi juga dapat ditingkatkan dengan bantuan pendeteksi warna
kulit, karena dengan demikian deteksi jaringan syaraf tiruan hanya perlu
dilakukan pada area yang mengandung warna kulit.
4. Teknologi deteksi wajah senyum adalah salah satu bidang penelitian yang masih
terus berkembang. Hasil dari deteksi wajah dan ekspresi ini dapat dimanfaatkan
lebih lanjut untuk membangun sistem pengenalan wajah senyum.
Batoteng,F.G, Pasiak, T.F & Ticoalu, S.H. 2015. “Gambaran Musculi Facialis
Pada Ekspresi Wajah Dan Emosi Dengan Menggunakan Facial Action
Coding System Pada Calon Presiden Jokowi”. 1 : 281
Chavan, P. M., Manan C .Jadhav, Jinal B. Mashruwala, Aditi K. Nehete & Pooja
A. Panjari. 2013. Real Time Emotion Recognition through Facial
Expressions for Desktop Devices”. International Journal of Emerging
Science and Engineering (IJESE) :104
Huang, 2009. “ Yu-Hao & Chiou-Shann Fuh. Face Detection and Smile
Detection. Proceedings of IPPR Conference Computer on Vision,
Graphics and Image Processing”. Shitou. Taiwan, 5-6, 108
Mu-Chun Su, Chun-Kai Yang, Shih-Chieh Lin, De-Yuan Huang, Yi-Zeng Hsieh,
& Pa-Chun Wang. 2014 “An SOM-based Automatic Facial Expression
Recognition System”, International Journal on Soft Computing, Artificial
Intelligence and Applications (IJSCAI).45.
Shbib, Reda &Shikun Zhou. 2015. “Facial Expression Analysis using Active
Shape Model”. International Journal of Signal Processing, Image
Processing and Pattern Recognitio. 1 : 9
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, LPComponent, SLComponentCollection, VLCommonDisplay,
VLImageDisplay, VLDSCapture, VLCommonFilter, VLResize,
VLGrayScale,
VLBasicGenericFilter, VLGenericFilter,VLBitmap, StdCtrls,
Menus,
ExtCtrls;
type
TForm1 = class(TForm)
VLDSCapture1: TVLDSCapture;
VLResize1: TVLResize;
VLGrayScale1: TVLGrayScale;
VLGenericFilter1: TVLGenericFilter;
VLImageDisplay1: TVLImageDisplay;
VLImageDisplay3: TVLImageDisplay;
VLGenericFilter2: TVLGenericFilter;
GroupBox1: TGroupBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
VLGenericFilter3: TVLGenericFilter;
GroupBox2: TGroupBox;
Button5: TButton;
MainMenu1: TMainMenu;
Konfigurasi1: TMenuItem;
SetConClear1: TMenuItem;
GroupBox4: TGroupBox;
Button7: TButton;
Button8: TButton;
Button9: TButton;
private
{ Private declarations }
FBitmap : TVLBitmap;
public
{ Public declarations }
end;
var
Form1: TForm1;
x_atas, x_baw, y_atas, y_baw,sm : byte;
peta, bobot, bxp, se, bobaru : array [0..90,
0..90] of real;
Fi : Textfile;
implementation
{$R *.dfm}
FBitmap.Canvas.Brush.Style := bsClear;
FBitmap.Canvas.Pen.Width := 2;
FBitmap.Canvas.Pen.Color := clBlue;
FBitmap.Canvas.Rectangle( x_atas, y_atas, x_baw, y_baw );
kondisi:=true;
end;
begin
kondisi:=false;
//----------------------------------
NamaArsip:='peta.txt';
AssignFile(Fi,NamaArsip);
rewrite(Fi);
//------------------------------------
for X := x_atas to x_baw-1 do
begin
for Y := y_atas to y_baw-1 do
begin
write(Fi,floattostr(peta[X,Y])+' ');
end;
writeln(Fi);
end;
CloseFile(Fi);
end;
end;
end;
writeln(Fi);
end;
CloseFile(Fi);
end;
end;
begin
cac_err:=0;
epoch:=0;
repeat // wh
//------------------------------------
for X := x_atas to x_baw-1 do
for Y := y_atas to y_baw-1 do bxp[X,Y]:=0;
//----------------------------------
NamaArsip:='petabxp.txt';
AssignFile(Fi,NamaArsip);
rewrite(Fi);
//------------------------------------
bxp[X,Y]:=bxp[X,Y]+bobot[X+cacahmatriks,Y]*peta[Y,X+cacahmatriks];
write(Fi,floattostr(bxp[X,Y])+' ');
end;
writeln(Fi);
end;
CloseFile(Fi);
//-----------------akhir langkah 1
//----langkah 2 hitung selisih error
end;
writeln(Fi);
end;
CloseFile(Fi);
//----akhir langkah 2
//--langkah 3 updated bobotbaru
// bobotbaru--> se*konstanta belajar +bobot sebelumnya
//----------------------------------
NamaArsip:='bobotbaru.txt';
AssignFile(Fi,NamaArsip);
rewrite(Fi);
//------------------------------------
for X := x_atas to x_baw-1 do
begin
for Y := y_atas to y_baw-1 do
begin
bobaru[X,Y]:=(konstanta_belajar*se[X,Y])+bobot[X,Y];
write(Fi,floattostr(bobaru[X,Y])+' ');
end;
writeln(Fi);
end;
CloseFile(Fi);
//--------------
//semua elemen bobot baru set ke bobot
for X := x_atas to x_baw-1 do
for Y := y_atas to y_baw-1 do
bobot[X,Y]:=bobaru[X,Y];
end;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, StdCtrls, LPComponent, SLComponentCollection,
VLCommonDisplay,
VLImageDisplay, VLGrayScale, VLCommonFilter, VLResize,
VLDSCapture,
VLBasicGenericFilter, VLGenericFilter, VLBitmap;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
VLDSCapture1: TVLDSCapture;
VLResize1: TVLResize;
VLGrayScale1: TVLGrayScale;
VLImageDisplay1: TVLImageDisplay;
VLGenericFilter1: TVLGenericFilter;
VLImageDisplay2: TVLImageDisplay;
VLGenericFilter2: TVLGenericFilter;
Edit3: TEdit;
VLImageDisplay3: TVLImageDisplay;
VLGenericFilter3: TVLGenericFilter;
Edit4: TEdit;
Edit5: TEdit;
GroupBox1: TGroupBox;
Edit7: TEdit;
Button4: TButton;
Button5: TButton;
procedure FormActivate(Sender: TObject);
procedure VLGenericFilter1ProcessData(Sender: TObject;
InBuffer: IVLImageBuffer; var OutBuffer: IVLImageBuffer;
var SendOutputData: Boolean);
procedure VLGenericFilter2ProcessData(Sender: TObject;
InBuffer: IVLImageBuffer; var OutBuffer: IVLImageBuffer;
var SendOutputData: Boolean);
procedure VLGenericFilter3ProcessData(Sender: TObject;
InBuffer: IVLImageBuffer; var OutBuffer: IVLImageBuffer;
var
Form1: TForm1;
Fi : Textfile;
NamaArsip : String;
peta,peta_2,peta2,templatepeta : array [0..90,
0..90] of real;
X,Y, Max_x, Max_y : integer;
tampung : string;
treshold_B : integer;
x_atas, x_baw, y_atas, y_baw : byte;
face, poci : Boolean;
penghilang : byte;
implementation
{$R *.dfm}
end;
CloseFile(Fi);
//---------------------------------- PETA 2
NamaArsip:='petavertikal2.txt';
AssignFile(Fi,NamaArsip);
reset(Fi);
Readln(Fi,tampung);
Edit1.text:=(tampung);
Readln(Fi,tampung);
Edit2.text:=(tampung);
Max_x:=strtoint(Edit1.Text);
Max_y:=strtoint(Edit2.Text);
//--------------------------------
while not Eof(Fi) do
begin
for X:=0 to Max_x-1 do
for Y:=0 to Max_y-1 do
begin
Readln(Fi,tampung);
peta_2[X,Y]:=strtofloat(tampung);
end;
end;
CloseFile(Fi);
face:=FALSE;
treshold_B:=710;
penghilang:=0;
edit7.Text:=inttostr(treshold_B);
end;
end;
begin
//edit3.Text:=floattostr(SAD);
end; //end else
if Hamming>Hamming2 then
if SAD>SAD2 then
if jelajah2>treshold_B then
begin
poci:=FALSE;
x_atas:=Xa;
y_atas:=Ya;
x_baw:=Xa+Max_x;
y_baw:=Ya+Max_y;
face:=TRUE;
end;
end; //*
end;
begin
// Convert to Bitmap.
InBuffer.ToBitmap( FBitmap );
FBitmap.Canvas.TextOut( 1, 1, '.......' );
FBitmap.Canvas.Brush.Style := bsClear;
FBitmap.Canvas.Pen.Width := 2;
if poci=TRUE then
BEGIN
FBitmap.Canvas.Pen.Color := clRed ;
FBitmap.Canvas.TextOut( 1, 1, 'UNHAPPY' );
END;
if poci=FALSE then
BEGIN
FBitmap.Canvas.TextOut( 1, 1, 'HAPPY' );
FBitmap.Canvas.Pen.Color := clYellow;
END;
inc(penghilang,1);
if penghilang > 5 then begin
penghilang:=0;
face:=FALSE
end;
if face=TRUE then
FBitmap.Canvas.Rectangle( x_atas, y_atas, x_baw, y_baw );
// Convert to Buffer.
OutBuffer.FromBitmap( FBitmap );
end;
end.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, LPComponent, SLComponentCollection, VLCommonDisplay,
VLImageDisplay, VLDSCapture, VLCommonFilter, VLResize,
VLGrayScale,
VLBasicGenericFilter, VLGenericFilter,VLBitmap, StdCtrls,
Menus,
ExtCtrls;
type
TForm1 = class(TForm)
VLDSCapture1: TVLDSCapture;
VLResize1: TVLResize;
VLGrayScale1: TVLGrayScale;
VLGenericFilter1: TVLGenericFilter;
VLImageDisplay1: TVLImageDisplay;
VLImageDisplay3: TVLImageDisplay;
VLGenericFilter2: TVLGenericFilter;
GroupBox1: TGroupBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
VLGenericFilter3: TVLGenericFilter;
GroupBox2: TGroupBox;
Button5: TButton;
private
{ Private declarations }
FBitmap : TVLBitmap;
public
{ Public declarations }
end;
implementation
{$R *.dfm}
FBitmap.Canvas.Brush.Style := bsClear;
FBitmap.Canvas.Pen.Width := 2;
FBitmap.Canvas.Pen.Color := clBlue;
FBitmap.Canvas.Rectangle( x_atas, y_atas, x_baw, y_baw );
// Convert to Buffer.
OutBuffer.FromBitmap( FBitmap );
end;
kondisi:=true;
end;
begin
kondisi:=false;
//----------------------------------
NamaArsip:='peta.txt';
AssignFile(Fi,NamaArsip);
rewrite(Fi);
//------------------------------------
for X := x_atas to x_baw-1 do
begin
for Y := y_atas to y_baw-1 do
begin
write(Fi,floattostr(peta[X,Y])+' ');
end;
writeln(Fi);
end;
CloseFile(Fi);
end;
end;
end;
end;
begin
epoch:=0;
repeat // LVQ LINEAR VECTOR QUANTIZATION
//--set jarak menjadi 0----------------------------------
for X := x_atas to x_baw-1 do jarak[X]:=0;
//----------------------------------
NamaArsip:='jarak.txt';
AssignFile(Fi,NamaArsip);
rewrite(Fi);
//-(1) bobot - peta wajah linier lalu dikuadrat dan diakar
secara VERTIKAL-->
for X := x_atas to x_baw-1 do
begin
for Y := y_atas to y_baw-1 do
jarak[X]:=jarak[X]+(sqr(bobot[X,Y]-peta[X,Y]));
jarak[X]:=sqrt(jarak[X]);
write(Fi,floattostr(jarak[X])+' ');
writeln(Fi);
end;
CloseFile(Fi);
end;
writeln(Fi);
end;
CloseFile(Fi);
//--------------
//semua elemen bobot baru set ke bobot
for X := x_atas to x_baw-1 do
for Y := y_atas to y_baw-1 do
bobot[X,Y]:=bobaru[X,Y];
inc(epoch,1);
until (epoch>100);
edit5.Text:=inttostr(epoch);
end;
end.
procedure TForm1.Button17Click(Sender: TObject);
begin
end;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
VLDSCapture1: TVLDSCapture;
VLResize1: TVLResize;
VLGrayScale1: TVLGrayScale;
VLImageDisplay1: TVLImageDisplay;
VLGenericFilter1: TVLGenericFilter;
VLImageDisplay2: TVLImageDisplay;
VLGenericFilter2: TVLGenericFilter;
Edit3: TEdit;
VLImageDisplay3: TVLImageDisplay;
VLGenericFilter3: TVLGenericFilter;
Edit4: TEdit;
Edit5: TEdit;
GroupBox1: TGroupBox;
Edit7: TEdit;
Button4: TButton;
Button5: TButton;
procedure FormActivate(Sender: TObject);
procedure VLGenericFilter1ProcessData(Sender: TObject;
InBuffer: IVLImageBuffer; var OutBuffer: IVLImageBuffer;
var SendOutputData: Boolean);
procedure VLGenericFilter2ProcessData(Sender: TObject;
InBuffer: IVLImageBuffer; var OutBuffer: IVLImageBuffer;
var SendOutputData: Boolean);
procedure VLGenericFilter3ProcessData(Sender: TObject;
InBuffer: IVLImageBuffer; var OutBuffer: IVLImageBuffer;
var SendOutputData: Boolean);
procedure VLGenericFilter3Start(Sender: TObject; var AWidth,
AHeight: Integer; AFrameDelay: Real);
procedure VLGenericFilter3Stop(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
FBitmap : TVLBitmap;
public
{ Public declarations }
end;
var
{$R *.dfm}
end;
end;
CloseFile(Fi);
//---------------------------------- PETA 2
NamaArsip:='petavertikal2.txt';
AssignFile(Fi,NamaArsip);
reset(Fi);
Readln(Fi,tampung);
Edit1.text:=(tampung);
Readln(Fi,tampung);
Edit2.text:=(tampung);
Max_x:=strtoint(Edit1.Text);
end;
end;
CloseFile(Fi);
face:=FALSE;
treshold_B:=710;
penghilang:=0;
edit7.Text:=inttostr(treshold_B);
end;
end;
begin
peta2[X,Y]:=Templatepeta[Xa+X,Ya+Y];
//ukur Hamming Distance
if peta[X,Y]=peta2[X,Y] then
inc(jelajah,1)
else inc(Hamming,1);
//Template SAD
SAD:=SAD+abs(peta[X,Y]-peta2[X,Y]);
//ukur Hamming Distance 2
if peta_2[X,Y]=peta2[X,Y] then
inc(jelajah2,1)
else inc(Hamming2,1);
//Template SAD 2
//edit3.Text:=floattostr(SAD);
end; //end else
if Hamming>Hamming2 then
if SAD>SAD2 then
if jelajah2>treshold_B then
begin
poci:=FALSE;
x_atas:=Xa;
y_atas:=Ya;
x_baw:=Xa+Max_x;
y_baw:=Ya+Max_y;
face:=TRUE;
end;
end; //*
end;
begin
// Convert to Bitmap.
InBuffer.ToBitmap( FBitmap );
FBitmap.Canvas.Brush.Style := bsClear;
FBitmap.Canvas.Pen.Width := 2;
if poci=TRUE then
// Convert to Buffer.
OutBuffer.FromBitmap( FBitmap );
end;
end.