• Tidak ada hasil yang ditemukan

PENGENALAN WAJAH MANUSIA MENGGUNAKAN ALGORITMA EIGENFACE.

N/A
N/A
Protected

Academic year: 2017

Membagikan "PENGENALAN WAJAH MANUSIA MENGGUNAKAN ALGORITMA EIGENFACE."

Copied!
88
0
0

Teks penuh

(1)

SKRIPSI

Disusun oleh :

RULLY GITA HARTANTYO

NPM. 0934010219

J URUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”

J AWA TIMUR

(2)

SKRIPSI

Diajukan Untuk Memenuhi Sebagai Persyaratan Dalam Memperoleh Gelar Sarjana Komputer

Jurusan Teknik Informatika

Disusun oleh :

RULLY GITA HARTANTYO

NPM. 0934010219

J URUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”

J AWA TIMUR

(3)

MENGGUNAKAN ALGORITMA EIGENFACE

Disusun oleh :

RULLY GITA HARTANTYO

NPM. 0934010219

Telah disetujui untuk mengikuti Ujian Negar a Lisan Gelombang IV Tahun Akademik 2012/2013

Pembimbing

Basuki Rahmat, S.Si, MT NPT. 36907 060 2091

Mengetahui,

Ketua J ur usan Teknik Infor matika Fakultas Teknologi I ndustr i UPN “Veter an” J awa Timur

Dr . Ir . Ni Ketut Sar i, MT NIP. 19650731 199203 2 001

(4)

Disusun oleh :

RULLY GITA HARTANTYO NPM. 0934010219

Telah dipertahankan dihadapkan dan diter ima oleh Tim Penguji Skr ipsi J ur usan Teknik Infor matika Fakultas Teknologi Industri

Univer sitas Pembangunan Nasional “Veteran” J awa Timur Pada Tanggal 14 J uni 2013

Pembimbing :

Basuki Rahmat, S.Si, MT NPT. 36907 060 2091

Tim Penguji : NPT. 38608 100 2951

3.

Bar r y Nuqoba, S.Si, M.Kom NIP. 198411020 21212 1 002

Mengetahui,

Dekan Fakultas Teknologi I ndustr i

Univer sitas Pembangunan Nasional “Veter an” J awa Timur

(5)

KETERANGAN REVISI

Mahasiswa di bawah ini :

Nama : RULLY GITA HARTANTYO NPM : 0934010219

Jurusan : Teknik Informatika

Telah mengerjakan revisi/ tidak ada revisi*) pra rencana (design)/ skripsi ujian lisan gelombang IV, TA 2012/2013 dengan judul:

“PENGENALAN WAJ AH MANUSIA MENGGUNAKAN ALGORITMA EIGENFACE”

Surabaya, Juni 2013 Dosen Penguji yang memerintahkan revisi :

1) Intan Yuniar P., S.Kom, MSc. NPT. 38006 040 1981

2) Wahyu S.J. Saputra, S.Kom, M.Kom NPT. 38608 100 2951

3) Barry Nuqoba, S.Si, M.Kom NPT. 198411020 21212 1 002

Mengetahui, Pembimbing

Basuki Rahmat, S.Si, MT NPT. 36907 060 2091

{

}

{

}

(6)

bantuan dari berbagi pihak. Oleh karena itu dalam kesempatan ini perkenankan penulis mengucapkan rasa terima kasih yang sebesar-besarnya kepada :

1) Allah SWT., karena berkat rahmat dan karunia-Nya penulis dapat menyusun dan menyelesaikan skripsi ini.

2) Keluarga tercinta. Ayah dan Ibu yang selalu memberikan kasih sayang, dukungan moril, doa, semangat dan materiil yang tiada henti-hentinya. Mbak Yani, mbak Riska, dek Rudhy dan dek Dhian tersayang yang selalu memberikan semangat. Serta keponakan yang lucu-lucu (kak Atha, si kembar kak Ndut dan kak Nit, dedek Chia) yang selalu mengobati di saat kejenuhan. Dan juga Ay’ Lia Noviana yang selalu mendampingi, memberikan semangat dan motivasi serta perhatian dan pengertian yang luar biasa.

3) Bapak Prof. Dr. Ir. Teguh Soedarto, MP selaku Rektor Universitas Pembangunan Nasional “Veteran” Jawa Timur.

4) Bapak Sutiyono, MT selaku Dekan Fakultas Teknologi Industri UPN “Veteran” Jawa Timur.

5) Ibu Dr. Ir. Ni Ketut Sari, MT selaku Ketua Jurusan Teknik Informatika UPN “Veteran” Jawa Timur.

(7)

7) Bapak Basuki Rahmat, S.Si, MT selaku dosen pembimbing skripsi ini di UPN “Veteran” Jawa Timur yang telah banyak memberikan waktu, bimbingan dan petunjuk sejak awal hingga terselesainya skripsi ini.

8) Sahabat seperjuangan Ryan Raynaldi, Kanti Putri R., Firna Anas O., Rizky S., Ganggang R. dan Nur Vibria. Tiada hari siang malam tanpa ngopi dan ngoding. Kenanglah selalu momen-momen indah pada saat itu.

(8)

Allah SWT atas segala rahmat serta karunia-Nya yang diberikan kepada penulis sehingga penulis dapat menyelesaikan skripsi yang berjudul “PENGENALAN WAJ AH MANUSIA MENGGUNAKAN ALGORITMA EIGENFACE”.

Skripsi dengan beban 4 SKS ini disusun sebagai salah satu syarat untuk menyelesaikan program Strata Satu (S1) pada jurusan Teknik Informatika, Fakultas Teknologi Industri, UPN “Veteran” Jawa Timur.

Penulis menyadari bahwa penulisan skripsi ini masih jauh dari kesempurnaan dikarenakan pengetahuan dan pengalaman yang dimiliki oleh penulis masih sangat terbatas dan masih perlu diperbaiki baik dari segi penyajian maupun isinya. Oleh karena itu, penulis mengharapkan kritik dan saran yang bersifat membangun dari semua pihak yang membaca skripsi ini. Semoga skripsi ini bermanfaat bagi semua pembaca pada umumnya dan bagi penulis pada khususnya. Amiin.

Surabaya, Mei 2013

(9)

ABSTRAK ... i

KATA PENGANTAR ... ii

UCAPAN TERIMA KASIH ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... viii

DAFTAR TABEL ... x

BAB I PENDAHULUAN ... 1

1.1. Latar Belakang ... 1

1.2. Rumusan Masalah ... 3

1.3. Batasan Masalah ... 3

1.4. Tujuan ……….. ... 4

1.5. Manfaat ... 4

BAB II TINJ AUAN PUSTAKA ... 6

2.1. Peneliti Pendahulu ... 6

2.2. Image ... 7

2.2.1.Definisi Image ... 7

2.2.2.Warna ... 8

(10)

2.3.1.Tahap Resizing ... 10

2.3.2.Tahap Grayscaling ... 11

2.4. Pengenalan Citra Wajah ... 12

2.4.1.Eigenvalue, Eigenvector dan Eigenface ... 13

2.4.2.Eigenvalue ... 13

2.4.3.Eigenvector ... 14

2.4.4.Algoritma Eigenface ... 16

2.5. Visual Basic ... 25

2.6. Emgu CV ... 27

2.7. haarcascade_frontalface_default.xml ... 32

BAB III METODOLOGI PENELITIAN ... 34

3.1. Analisis Sistem ... 34

3.1.1.Pre-processing ... 36

3.1.2.Feature Extraction ... 39

3.1.3.Recognition Process ... 40

3.2. Perancangan Interface ... 41

3.2.1.Interface Tampilan Awal ... 41

3.2.2.Interface Menu ... 41

3.2.3.Interface Face Registration ... 42

3.2.4.Interface Face Recognition ... 43

(11)

BAB IV HASIL DAN PEMBAHASAN ... 45

4.1. Implementasi Data ... 45

4.2. Implementasi Interface ... 45

4.3. Implementasi Proses ... 51

4.3.1.Proses Mengaktifkan Web-Camera dan Deteksi Area Wajah ... 57

4.3.2.Proses Grayscale ... 58

4.3.3.Proses Resize ... 58

4.3.4.Proses Save to Database Training Faces ... 58

4.3.5.Proses Pengenalan Citra Wajah ... 60

4.4. Uji Coba Program ... 62

4.4.1.Skenario Uji Coba ... 62

4.4.2.Pelaksanaan Uji Coba ... 63

4.5. Evaluasi Aplikasi ... 68

4.5.1.Analisis Proses Face Registration ... 69

4.5.2.Analisis Proses Face Recognition ... 72

BAB V KESIMPULAN DAN SARAN ... 74

5.1. Kesimpulan ... 74

5.2. Saran ... 75

(12)

ABSTRAK

Penelitian tentang sistem keamanan terutama keamanan berbasis pengenalan wajah secara otomatis telah berkembang pesat. Dalam penerapannya, aplikasi pengenalan citra wajah ini menggunakan sebuah web-camera untuk menangkap citra wajah seseorang secara real-time kemudian dibandingkan dengan wajah yang sebelumnya telah disimpan di dalam database tertentu.

Ada beberapa metode untuk proses pengenalan wajah. Pada penelitian ini menggunakan metode Eigenface dengan bahasa pemrograman Visual Basic,

compiler Microsoft Visual Studio 2010 (.Net) dan image processing library Emgu

CV. Metode ini mempunyai komputasi yang sederhana dan cepat. Secara garis besar proses dari aplikasi ini adalah kamera melakukan capture pada citra wajah sehingga didapatkan sebuah nilai RGB. Dengan menggunakan pemrosesan awal, dilakukan resize dan RGB ke gray. Metode eigenface berfungsi untuk menghitung eigenvalue dan eigenvector yang akan digunakan sebagai fitur dalam melakukan pengenalan. Metode euclidean distance digunakan untuk mencari jarak dengan data fitur yang telah didapat dan jarak terkecil adalah hasilnya.

Dari percobaan dan pengujian yang dilakukan, aplikasi dapat mengenali citra wajah dengan tingkat keberhasilan sampai 85%. Tinggi rendahnya unsur pencahayaan yang berada di sekitar obyek sangat mempengaruhi proses pendeteksian.

(13)

1.1. Latar Belakang

Keamanan merupakan salah satu aspek penting dalam kehidupan manusia. Penelitian tentang sistem keamanan terutama keamanan berbasis pengenalan citra wajah secara otomatis telah berkembang pesat beberapa tahun ini. Hal tersebut dikarenakan semakin tingginya permintaan aplikasi komputer untuk identifikasi dalam lingkup penegak hukum, autentifikasi pada perbankkan dan sistem keamanan lainnya.

Pengenalan citra wajah secara otomatis dan terkomputerisasi diadopsi

pada kemampuan manusia yang kemudian diimplementasikan dengan pendekatan konsep learning. Dengan pendekatan konsep learning, sebuah program komputer dapat mempelajari karakteristik dari data-data yang diberikan kemudian mampu menggeneralisasikannya ke dalam bentuk pengetahuan. Pengetahuan ini yang kemudian digunakan untuk membuat sistem pengenalan citra wajah yang memiliki kemampuan seperti manusia.

AI atau Artificial Intelligence adalah kecerdasan yang diciptakan dan dimasukkan ke dalam suatu mesin (komputer) agar dapat melakukan pekerjaan seperti yang dapat dilakukan manusia. Salah satu cabang dari ilmu komputer

artificial intelligence adalah computer vision yang bertujuan untuk memahami isi

(14)

dapat dilakukan dengan berbagai metode. Sistem pengenalan citra wajah manusia memiliki aplikasi yang luas di bidang keamanan dan antarmuka komputer dengan manusia. Suatu sistem pengenalan citra wajah yang lengkap terdiri dari beberapa modul : face detection/location, facial feature extraction, dan face recognition.

Ada beberapa metode untuk proses pengenalan citra wajah. Salah satunya adalah dengan menggunakan algoritma Eigenface. Algoritma Eigenface secara keseluruhan cukup sederhana. Training images direpresentasikan dalam sebuah vektor flat (gabungan vektor) dan digabung bersama-sama menjadi sebuah matriks tunggal. Eigenface dari masing-masing citra kemudian diekstraksi dan disimpan dalam file temporary atau database. Test image yang masuk didefinisikan juga nilai eigenface-nya dan dibandingkan dengan eigenface dari

image dalam database atau temporary.

Sebelumnya telah dilakukan penelitian mengenai algoritma eigenface dengan judul Rekayasa Sistem Pengenalan Wajah Menggunakan Algoritma

Eigenface Untuk Membangun Sistem Presensi Karyawan (Al Fatta Hanif, 2009).

Kelebihan dari penelitian tersebut adalah dijelaskan dengan detail bagaimana membangun suatu sistem presensi karyawan dengan menggunakan algoritma

eigenface untuk mengenali citra wajah yang ter-capture kamera. Kekurangan dari

penelitian tersebut adalah citra wajah yang ter-capture tidak terdeteksi secara otomatis.

(15)

terkenal dan paling banyak digunakan hingga saat ini. Open CV dikembangkan oleh Intel. Mulanya ditulis dalam bahasa C dan sekarang juga menyertakan

interface C++ sejak versi 2.0. Tentunya library ini secara default hanya bisa

digunakan oleh program yang ditulis dengan C atau C++. Agar fungsi-fungsi dalam Open CV bisa dipanggil melalui bahasa pemrograman yang compatible dengan .NET seperti C#, VB, dan VC++, maka dibuatlah Emgu CV yang merupakan wrapper .Net untuk Open CV.

1.2. Rumusan Masalah

Berdasarkan latar belakang tersebut maka dapat dirumuskan masalah sebagai berikut :

1. Bagaimana menerapkan tahapan proses untuk membuat sebuah aplikasi pengenalan citra wajah dengan menggunakan library Emgu CV.

2. Bagaimana menerapkan algoritma Eigenface pada library Emgu CV untuk proses pengenalan citra wajah.

1.3. Batasan Masalah

Adapun batasan-batasan masalah yang dibuat agar dalam pengerjaan tugas akhir ini dapat berjalan dengan baik adalah sebagai berikut :

1. Citra wajah yang akan dideteksi adalah citra wajah yang menghadap ke depan (frontal face), dalam posisi tegak dan tidak terhalangi sebagian oleh objek lain (kacamata atau rambut).

(16)

3. Citra wajah yang digunakan sebagai data training untuk pengenalan citra wajah adalah citra wajah grayscale yang disimpan dalam folder komputer dengan resolusi 100 x 100 pixel berformat bmp.

4. Bahasa pemrograman yang dipakai adalah Visual Basic (.Net) dengan compiler Microsoft Visual Studio 2010 dan library Emgu CV.

5. Menggunakan haarcascade_frontalface_default.xml pada library Emgu CV untuk mendeteksi area wajah pada citra yang ter-capture.

6. Menggunakan algoritma Eigenface pada library Emgu CV untuk pengenalan citra wajah.

1.4. Tujuan

Tujuan dari tugas akhir ini adalah membuat sebuah aplikasi berbasis

computer vision untuk pengenalan citra wajah manusia menggunakan algoritma

Eigenface pada library Emgu CV.

1.5. Manfaat

Manfaat dari pembuatan aplikasi adalah :

1. Sebagai dasar solusi untuk membantu sistem keamanan seperti keamanan

log in sistem, identifikasi dan autenfikasi, yang akan dapat

mengidentifikasi citra wajah secara otomatis.

(17)
(18)

2.1. Peneliti Pendahulu

Sebelumnya telah dilakukan penelitian mengenai algoritma eigenface dengan judul Rekayasa Sistem Pengenalan Wajah Menggunakan Algoritma

Eigenface Untuk Membangun Sistem Presensi Karyawan (Al Fatta Hanif, 2009).

Kelebihan dari penelitian tersebut adalah dijelaskan dengan detail bagaimana membangun suatu sistem presensi karyawan dengan menggunakan algoritma

eigenface untuk mengenali citra wajah yang ter-capture kamera. Dari pengujian

yang dilakukan didapatkan kesimpulan bahwa keberhasilan pengenalan dipengaruhi beberapa hal, diantaranya :

• Jarak antara subjek dan kamera. Untuk pengenalan yang baik, jarak antara subjek dan kamera saat pengisian data dan proses presensi dibuat konstan. • Pencahayaan. Pencahayaan yang kurang ternyata memberikan hasil yang

lebih baik. Ini disebabkan karena pada pencahayaan yang terlalu tinggi membuat detail gambar yang lebih rumit, mengakibatkan matriks dari gambar menjadi lebih kompleks, sehingga pengenalan menjadi lebih sensitif dan menurunkan kualitas pengenalan.

(19)

Kekurangan dari penelitian tersebut adalah citra wajah yang ter-capture tidak terdeteksi secara otomatis.

2.2. Image

2.2.1. Definisi Image

Secara harfiah image (citra) adalah gambar pada bidang dua dimensi. Ditinjau dari sudut pandang matematis, citra merupakan fungsi menerus (continue) dari intensitas cahaya pada bidang dua dimensi. (Sitorus dkk,

2006)

Citra didefinisikan sebagai fungsi intensitas cahaya dua dimensi

f(x,y) dimana x dan y menunjukkan koordinat spasial, dan nilai f pada suatu

titik (x,y) sebanding dengan tingkat kecerahan (gray level) dari citra di titik tersebut. (Purwanto Ari, 2009)

Citra dapat dikelompokkan menjadi dua bagian yaitu citra diam (still

images) dan citra bergerak (moving images). Citra diam adalah citra tunggal

yang tidak bergerak. Sedang citra bergerak adalah rangkaian citra diam yang ditampilkan secara beruntun (sekuensial), sehingga memberi kesan pada mata sebagai gambar yang bergerak. (Sitorus dkk, 2006)

(20)

merepresentasikan suatu titik di dalam citra, dan nilai elemen matriks tersebut menunjukkan gray level di titik tersebut. (Purwanto Ari, 2009)

Hal tersebut dapat diilustrasikan pada Gambar 2.1. berikut ini.

Gambar 2.1. Citra Digital

2.2.2. Warna

Format data citra digital berhubungan erat dengan warna. Warna adalah spektrum tertentu yang terdapat di dalam suatu cahaya sempurna (berwarna putih). Nilai warna ditentukan oleh tingkat kecerahan maupun kesuraman warna. Nilai ini dipengaruhi oleh penambahan putih ataupun hitam.

Untuk keperluan penampilan secara visual, nilai data digital merepresentasikan warna dari citra yang diolah. Format citra digital yang banyak dipakai adalah :

Citra Biner (binary image)

(21)

pixel-pixel latar belakang bernilai 0. Pada waktu menampilkan citra, 0

adalah putih dan 1 adalah hitam.

Hal tersebut dapat diilustrasikan pada Gambar 2.2. berikut ini.

Gambar 2.2. Citra Biner • Cita Grayscale (skala keabuan)

Citra grayscale adalah citra digital yang setiap pixel-nya merupakan sampel tunggal, yaitu informasi intensitas. Citra jenis ini terbentuk hanya dari warna abu-abu pada tingkatan yang berbeda-beda, mulai dari warna hitam pada tingkat intensitas terendah hingga warna putih pada tingkat intensitas tertinggi.

Hal tersebut dapat diilustrasikan pada Gambar 2.3. berikut ini.

(22)

Citra Warna (true color)

Setiap pixel pada citra warna mewakili warna yang merupakan kombinasi tiga warna dasar, yaitu merah, hijau, dan biru (RGB = Red, Green, Blue). Setiap warna pokok mempunyai intensitas sendiri dengan nilai maksimum 255.

RGB disebut juga ruang warna yang dapat diilustrasikan sebagai sebuah kubus seperti gambar 2.4., dengan tiga sumbunya yang mewakili komponen warna merah (red) R, hijau (green) G, biru (blue) B.

Gambar 2.4. Citra RGB

2.3. Pengolahan Citr a Digital (Image Processing) 2.3.1. Tahap Resizing

Resizing merupakan proses mengubah ukuran citra digital sesuai

(23)

digital tersebut adalah dengan menggunakan metode interpolasi. Teknik ini menggunakan rata-rata suatu region untuk mewakili region tersebut.

Hal tersebut dapat diilustrasikan pada Gambar 2.5. berikut ini.

Gambar 2.5. Resizing Image

2.3.2. Tahap Grayscaling

Citra digital yang telah melalui proses resizing kemudian diubah menjadi citra dua warna dengan proses grayscaling. Proses perubahan warna ini dilakukan karena citra dalam bentuk grayscale lebih mudah dianalisis apabila dibandingkan dengan citra berwarna. Sistem warna RGB terdiri dari 24 bit, masing-masing bit untuk merah, hijau dan biru. Nilai grayscale didapat dengan merata-ratakan ketiga nilai RGB tersebut.

Rumus untuk mengkonversi nilai RGB ke grayscale pada umumnya adalah sebagai berikut :

W = − − − − −

(24)

G = nilai warna hijau B = nilai warna biru

Hal tersebut dapat diilustrasikan pada Gambar 2.6. berikut ini.

Gambar 2.6. Grayscaling Image

2.4. Pengenalan Citra Wajah

Secara umum sistem pengenalan citra wajah dibagi menjadi dua jenis, yaitu sistem feature-based dan sistem image-based. Pada sistem pertama digunakan ciri yang diekstraksi dari komponen citra wajah seperti mata, hidung, mulut, dan lain-lain yang kemudian dimodelkan secara geometris hubungan antara ciri-ciri tersebut. Sedangkan pada sistem kedua menggunakan informasi mentah dari pixel citra yang kemudian direpresentasikan dalam metode tertentu, misalnya seperti Principal Component Analysis (PCA) atau transformasi wavelet yang digunakan untuk klasifikasi indentitas citra. (Al Fatta Hanif, 2009)

(25)

1994), dengan Support Vector Machine (Osuna dkk, 1997), dan dengan metode

Statistic dan Wavelet (Schneiderman, 2000).

Berikut ini akan dijelaskan salah satu teknik untuk pengenalan citra wajah dengan menggunakan algoritma Eigenface.

2.4.1. Eigenvalue, Eigenvector dan Eigenface

Transformasi ruangan seperti translasi, rotasi, refleksi, strechting dan kompresi, atau kombinasi dari transformasi ini, dapat divisualisasikan dengan efek yang dihasilkan pada vektor. Vektor dapat divisualisasikan sebagai panah yang menunjuk 1 titik ke titik yang lain.

Eigenvector dari suatu transformasi adalah vektor-vektor yang tidak

mengalami perubahan atau hanya dikalikan dengan scale factor setelah transformasi. Sedangkan eigenvalue dari suatu eigenvector adalah scale

factor dimana eigenvector dikalikan.

Eigenface sebenarnya berasal dari bahasa Jerman “eigenwert”

dimana “eigen” artinya karakteristik dan “wert” artinya nilai. Eigenface adalah salah satu algoritma pengenalan pola citra wajah yang berdasarkan pada Principle Component Analysis (PCA) yang dikembangkan di MIT.

Hubungan antara eigenvalue, eigenvector dan eigenface dapat dijelaskan sebagai berikut :

2.4.2. Eigenvalue

(26)

A maka akan ekuivalen dengan persamaan linier (A – λI)v = 0 (dimana I adalah matriks identitas) yang memiliki pemecahan non-zero v (suatu

eigenvector), sehingga akan ekuivalen dengan determinan :

det(A – λI) = 0

Fungsi p(λ) = det(A – λI) adalah sebuah polynomial dalam λ karena

determinan dihitung dengan sum of product. Semua eigenvalue dari suatu

matriks A dapat dihitung dengan menyelesaikan persamaan pA(λ) = 0. Jika A adalah matriks ukuran n x n, maka pA memiliki derajat n dan A akan memiliki paling banyak n buah eigenvalue.

2.4.3. Eigenvector

Jika eigenvalue λ diketahui, eigenvector dapat dicari dengan

memecahkan :

(A – λI) v = 0

Dalam beberapa kasus dapat dijumpai suatu matriks tanpa

eigenvalue, misalnya :

− 0 1 −1 0−

dimana karakteristik bilangan polynomialnya adalah λ2 + 1 sehingga

eigenvalue adalah bilangan kompleks i, -i. Eigenvector yang berasosiasi juga

tidak riil.

Jika diberikan matriks :

A = − 2 1 1 3−

(27)

det − ( 2− λ) −1 0 ( 3− λ) − = λ

2

- 5λ + 6 = 0

ini adalah persamaan kuadrat dengan akar-akarnya adalah λ = 2 dan λ = 3. Adapun eigenvector yang didapat ada dua buah. Eigenvector pertama dicari dengan mensubtitusikan λ = 3 ke dalam persamaan. Misalnya Y0 adalah eigenvector yang berasosiasi dengan eigenvalue λ = 3. Set Y 0

Kemudian subtitusikan Y0 dengan v pada persamaan: (A – λI)v = 0

sehingga diperoleh :

(2-3)X0 + (-Y0) = 0

0 + (3-3)Y0 = 0 dapat disederhanakan menjadi :

-X0 - Y0 = 0 atau

Y0 = - X0

sehingga eigenvector untuk eigenvalue λ = 3 adalah : Y0 = −

Hubungan antara eigenvalue dan eigenvector dari suatu matriks digambarkan oleh persamaan :

(28)

dimana v adalah eigenvector dari matriks M dan λ adalah eigenvalue. Terdapat n buah eigenvector dan eigenvalue dalam sebuah n x n matriks.

2.4.4. Algoritma Eigenface

Prinsip dasar dari pengenalan citra wajah adalah dengan mengutip informasi unik citra wajah tersebut kemudian di-encode dan dibandingkan dengan hasil decode yang sebelumnya dilakukan. Dalam metode eigenface,

decoding dilakukan dengan menghitung eigenvector kemudian direpresentasikan dalam sebuah matriks yang berukuran besar.

Algoritma Eigenface secara keseluruhan cukup sederhana. Image

Matriks (Γ) direpresentasikan ke dalam sebuah himpunan matriks (Γ 1, Γ 2,… Γ M). Cari nilai rata-rata (Ψ) dan gunakan untuk mengekstraksi eigenvector (v) dan eigenvalue (λ) dari himpunan matriks. Gunakan nilai eigenvector untuk mendapatkan nilai eigenface dari image. Apabila ada sebuah image baru atau

test face (Γ new) yang ingin dikenali, proses yang sama juga diberlakukan

untuk image (Γ new), untuk mengekstraksi eigenvector (v) dan eigenvalue (λ),

kemudian cari nilai eigenface dari image test face (Γ new). Setelah itu barulah image baru (Γ new) memasuki tahapan pengenalan dengan menggunakan

(29)

Gambar 2.7. Alur Proses Algoritma Eigenface

(30)

1. Langkah pertama adalah menyiapkan data dengan membuat suatu himpunan S yang terdiri dari seluruh training image (Γ 1, Γ 2,… Γ M).

S = {Γ 1, Γ 2,… Γ M}

Buat himpunan image (S) dari total M training image, dimana setiap image adalah p x q pixel.

Misal di dalam himpunan image terdapat tiga image ukuran 3 x 3 pixel maka :

image1 image2 image3

2. Langkah kedua adalah ambil nilai tengah atau mean (Ψ) Ψ = −

− ∑ Γn

− − −

Cari nilai tengah atau mean (Ψ).

Ψ = −

3. Langkah ketiga kemudian cari selisih (Ф) antara training image (Γ i) dengan nilai tengah (Ψ)

(31)

Cari selisih (Ф) antara training image (Г) dengan nilai tengah

(Ψ), apabila ditemukan nilai dibawah nol ganti nilainya dengan nol.

4. Langkah keempat adalah menghitung nilai matriks kovarian (C) C = −

(32)

5. Langkah kelima menghitung eigenvalue (λ) dan eigenvector (v) dari matriks kovarian (C)

C x vi = λ i x vi

Cari nilai eigenvalue (λ) dan eigenvector (v). L x v = λ x v

eigenvector (v) dihasilkan dengan mensubtitusikan nilai

(33)

maka didapat persamaan : −2v− – 2v− = 0

−2v− −− 2v− = 0

−5v− = 0

dan jika diselesaikan maka :

−2v− – 2v− = 0 artinya v− = – v− = – t

dihasilkan eigenvector = − −1

(34)

−2v− +− 2v− = 0

−v− = 0

dan jika diselesaikan maka :

2v− – 2v− = 0 artinya v− = v− = t

dihasilkan eigenvector = − 1

maka didapat persamaan : 3v− – 2v− = 0

−2v− + 3v− = 0

v− = 0

dan jika diselesaikan maka :

3v− – 2v− = 0 *3 9v− – 6v− = 0

−2v− + 3v− = 0 *2 −4v− + 6v− = 0

5v− = 0

(35)

v− = 0

dihasilkan eigenvector = − 0 0 0

sehingga eigenvector yang dihasilkan dari matriks L adalah :

eigenface (μ ) dapat dicari dengan:

(36)

Tahapan Pengenalan :

1. Sebuah citra wajah baru atau test face (Γ new) akan dicoba untuk

dikenali, pertama terapkan cara pada tahapan pertama perhitungan eigenface untuk mendapatkan nilai eigenface dari

image tersebut.

μ new = v . (Γ new – Ψ)

Ω = [μ − ,μ − , …, μ − − ]

Cari nilai eigenface image baru (Γ new) yang akan dikenali. a. Cari selisih (Ф) antara test face (Γ new) dengan nilai tengah

b. Cari nilai eigenface dari test face (Γ new) μ new = v.Ф − − −

(37)

− − = || Ω - Ω k||

karena jarak (distance) eigenface image1 dengan eigenface test

face yang paling kecil, maka hasil identifikasi meyimpulkan

bahwa test face lebih mirip dengan image1 daripada image2 atau

image3.

2.5. Visual Basic

Bahasa Visual Basic adalah salah satu diantara sekian banyak bahasa pemrograman yang cukup banyak digunakan oleh para programmer. Visual Basic adalah bahasa pemrograman visual dengan dasar pemrograman bahasa BASIC. Bahasa BASIC (Beginner's All-purpose Sybolic Instruction Code) dikembangkan pertama kali pada awal 1950-an. Sementara bahasa Visual Basic, yang merupakan pengembangan bahasa BASIC dikembangkan pertama kali oleh Microsoft pada tahun 1991.

(38)

Basic dimulai dengan memperkirakan kebutuhan, kemudian merancang tampilan program yang diikuti dengan pembuatan kode program tersebut.

Tampilan dari Visual Basic 2010 seperti pada Gambar 2.8. berikut ini.

Gambar 2.8. Tampilan Lingkungan Visual Basic 2010

Agar bisa menguasai bahasa pemrograman Visual Basic, diharuskan mempelajari dasar-dasarnya dengan lebih baik dan kuat. Beberapa komponen utama dalam bahasa Visual Basic yang harus diketahui diantaranya :

Project

Project adalah sekumpulan modul. Jadi project (proyek) adalah program

aplikasi itu sendiri. Didalamnya terdapat form beserta code nya. Project ini disimpan dalam file berakhiran .vbproj.

Form

Form adalah object yang dipakai sebagai tempat bekerja program aplikasi.

(39)

Toolbox

Toolbox adalah kotak alat yang berisi icon-icon untuk memasukkan objek

tertentu ke dalam jendela form. Properties

Properties digunakan untuk menentukan setting suatu objek. Suatu objek

biasanya mempunyai beberapa properties yang dapat diatur langsung dari jendela properties atau lewat kode program.

• Kode Program

Kode program adalah serangkaian tulisan perintah yang akan dilaksanakan jika suatu objek dijalankan. Kode program ini akan mengontrol dan menentukan jalannya suatu objek.

Event

Event adalah peristiwa atau kejadian yang diterima oleh suatu objek,

misalnya klik, seret, tunjuk, dan lain-lain. Event yang diterima objek akan memicu MS VB menjalankan kode program yang ada di dalamnya.

2.6. Emgu CV

Emgu CV merupakan suatu library open source lintas platform. Emgu CV sebenarnya adalah .Net wrapper pada Open CV library image processing. Emgu CV dapat memanggil fungsi-fungsi pada Open CV dengan bahasa pemrograman kompatibel .Net.

Keuntungan menggunakan library Emgu CV adalah :

(40)

Emgu CV dapat dijalankan pada berbagai sistem operasi seperti Linux, MacOS, Windows, iPad, iPhone dan Android.

b. Cross Language

Meskipun ditulis dalam bahasa pemrograman C#, Emgu CV dapat digunakan oleh bahasa pemrograman lain yang kompatibel, seperti VB.NET, C++, dan IronPython.

Emgu CV memiliki 2 layer, layer 1 berisi function, structure, dan

enumeration mappings yang secara langsung merefleksikan yang ada di Open

CV. Sementara layer 2 berisi class yang merupakan keuntungan dari bahasa pemrograman .Net.

Di dalam Emgu CV terdapat beberapa folder yang berisi class – class yang mempunyai fungsi – fungsi yang ditampilkan pada Tabel 2.1. berikut ini.

Tabel 2.1. Fungsi Class – Class Pada Emgu CV (http://www.emgu.com/wiki/files/2.4.2/document/Index.html)

Class Description

AdaptiveSkinDetector Adaptive Skin Detector

CameraCalibration Camera calibration functions

Capture Capture images from either camera or

video file

CascadeClassifier The Cascade Classifier

ColorInfoAttribute Attribute used to specify color

information

Contour(T) Wrapped class for Contour

CvArray(TDepth) Wrapped CvArr

CvInvoke Library to invoke OpenCV functions

DenseHistogram A Dense Histogram

(41)

EigenObjectRecognizer An object recognizer using PCA

(Principle Components Analysis)

EigenObjectRecognizer.RecognitionResult

The result returned the Recognized

function is called. Contains the label,

index and the eigen distance

ExtrinsicCameraParameters Extrinsic camera parameters

FaceRecognizer Face Recognizer

FeatureTree A wrapper for CvFeatureTree

FisherFaceRecognizer Fisher face recognizer

HaarCascade HaarCascade for object detection

HOGDescriptor A HOG discriptor

Image(TColor, TDepth) An Image is a wrapper to IplImage of

OpenCV.

IntrinsicCameraParameters Intrinsic camera parameters

Kalman Kalman Filter

KinectCapture Kinect Camera capture

LatentSvmDetector Laten SVM detector

LBPHFaceRecognizer LBPH face recognizer

Map(TColor, TDepth)

A Map is similar to an Image, except

that the location of the pixels is defined

by its area and resolution

Matrix(TDepth) A Matrix is a wrapper to cvMat of

OpenCV

MemStorage A MemStorage is a wrapper to

cvMemStorage of OpenCV

MotionHistory The motion history class

Octree Oct-Tree

OpticalFlow Contains a collection of optical flow

methods

Class Description

PointCollection A collection of points

RotationMatrix2D(T) A (2x3) 2D rotation matrix. This Matrix

(42)

Seq(T) Wrapper to cvSeq of OpenCV

SparseMatrix(TDepth) Create a sparse matrix

StereoBM Use Block Matching algorithm to find

stereo correspondence

StereoGC Use Graph Cut algorithm to find stereo

correspondence

VideoWriter Create a video writer that write images

to video format

Pada Emgu CV untuk melakukan pengenalan citra wajah dapat menggunakan class EigenObjectRecognition. Di dalam class tersebut berisi beberapa members yang dapat dilihat seperti pada Tabel 2.2. berikut ini.

Tabel 2.2. EigenObjectRecognizer Members

(http://www.emgu.com/wiki/files/2.4.2/document/Index.html)

Name Description

EigenObjectRecognizer(Image(Gray, Byte)[], MCvTermCriteria)

Create an object recognizer using the

specific tranning data and parameters, it will

always return the most similar object

EigenObjectRecognizer(Image(Gray, Byte)[], String[], MCvTermCriteria)

Create an object recognizer using the

specific tranning data and parameters, it will

always return the most similar object

EigenObjectRecognizer(Image(Gray, Byte)[], String[], Double,

MCvTermCriteria)

Create an object recognizer using the

specific tranning data and parameters

Name Description

CalcEigenObjects Caculate the eigen images for the specific traning image

EigenDecomposite Decompose the image as eigen values, using the specific eigen vectors

(43)

projected image

Equals Determines whether the specified Object is equal to the current Object

(Inherited from Object.)

Finalize Allows an Object to attempt to free resources and perform other cleanup operations before

the Object is reclaimed by garbage

collection

(Inherited from Object.)

GetEigenDistances Get the Euclidean eigen-distance between image and every other image in the database

GetHashCode Serves as a hash function for a particular type

(Inherited from Object.)

GetType Gets the Type of the current instance. (Inherited from Object.)

MemberwiseClone Creates a shallow copy of the current Object (Inherited from Object.)

AverageImage Get the average Image

EigenDistanceThreshold Get or set the eigen distance threshold. The smaller the number, the more likely an

examined image will be treated as

unrecognized object. Set it to a huge number

(e.g. 5000) and the recognizer will always

treated the examined image as one of the

known object

(44)

EigenValues Get the eigen values of each of the training area wajah yaitu haarcascade_frontalface_default.xml. Di dalam template ini berisi jumlah stages, jumlah tree, nilai threshold, serta bentuk, ukuran, dan posisi fitur Haarlike yang digunakan.

Berikut potongan code dalam haarcascade_frontalface_default.xml :

<opencv_storage>

<haarcascade_frontalface_default type_id="opencv-haar-classifier"> <size>24 24</size>

<stages>

<threshold>-0.0315119996666908</threshold> <left_val>2.0875380039215088</left_val>

<right_val>-2.2172100543975830</right_val></_></_> <_>

(45)

...

<!-- tree 199 --> <_>

<!-- root node --> <feature>

<rects>

<_>9 1 6 22 -1.</_> <_>12 1 3 11 2.</_>

<_>9 12 3 11 2.</_></rects> <tilted>0</tilted></feature>

<threshold>-0.0221730004996061</threshold> <left_val>0.4860099852085114</left_val>

<right_val>3.6160000599920750e-003</right_val></_></_></trees>

<stage_threshold>-2.9928278923034668</stage_threshold> <parent>23</parent>

(46)

Pada bab ini akan dijelaskan mengenai proses pembuatan aplikasi pengenalan citra wajah dengan metode eigenface menggunakan library Emgu CV. 3.1. Analisis Sistem

Secara garis besar proses perancangan aplikasi akan dibagi menjadi beberapa tahap seperti pada Gambar 3.1. di bawah ini.

(47)

Gambar 3.1. di atas merupakan desain tahapan dari pengembangan sistem pengenalan citra wajah menggunakan metode eigenface. Pada aplikasi pengenalan citra wajah ini menggunakan web-camera sebagai alat pengambilan citra dengan ukuran 320 x 240 pixel. Setelah web-camera diaktifkan, maka proses selanjutnya yaitu mendeteksi area wajah dari citra objek yang ter-capture. Jika citra wajah sudah terdeteksi, maka diberikan dua pilihan proses yaitu proses pendaftaran atau proses pengenalan citra wajah.

Pada proses pendaftaran citra wajah dilakukan 2 proses yaitu

pre-processing dan feature extraction. Di dalam pre-pre-processing ada beberapa tahapan

yaitu mengkonversi citra wajah ke format grayscale, mengubah ukuran citra wajah menjadi 100 x 100 pixel dan menyimpan citra wajah ke dalam database citra wajah dalam format bitmap (.bmp) serta meng-input-kan identitas pemilik citra wajah ke dalam notepad. Sedangkan dalam feature extraction, citra wajah yang tersimpan dalam database akan diproses untuk mendapatkan nilai eigenface dari masing-masing citra wajah yang tersimpan dalam database.

(48)

distance terkecil dengan eigenface test face tersebut dipilih sebagai yang mewakili

objek tersebut.

Keterangan detail dari proses tahapan pengenalan citra wajah menggunakan metode eigenface tersebut adalah sebagai berikut.

3.1.1. Pre-processing

Gambar 3.2. Pra-Proses

Tahap pre-processing seperti pada Gambar 3.2. di atas merupakan proses awal untuk mengumpulkan citra wajah ke dalam database training

(49)

citra wajah. Pada proses ini dilakukan pengambilan citra wajah melalui

web-camera kemudian memprosesnya dalam 3 tahapan, antara lain :

1. Convert to grayscale

Pada tahap ini citra wajah ter-capture yang sebelumnya berformat RGB akan dikonversi menjadi grayscale. Pada Emgu CV untuk mengkonversi image RGB ke grayscale dengan menggunakan perintah :

image_result = image_scr .Convert(Of Gray, Byte)() dimana :

image_scr as image awal berformat RGB

image_result as image hasil berformat grayscale

2. Resize

Pada tahap ini citra wajah yang sebelumnya sudah dikonversi menjadi grayscale akan di-resize sehingga berukuran 100 x 100

pixel. Tujuan dari konversi RGB menjadi grayscale serta me-resize

ini adalah untuk mereduksi noise yang terdapat pada citra agar lebih mudah untuk diproses karena mengandung nilai yang lebih sedikit. Pada Emgu CV untuk me-resize image dengan menggunakan perintah :

(50)

image_scr as image awal image_result as image hasil

Resize(100, 100, Emgu.CV.CvEnum.INTER. _

CV_INTER_CUBIC) as Resize(lebar, tinggi, tipe_interpolasi)

3. Save to database training face

Pada tahap ini citra wajah yang sudah dikonversi ke grayscale dan di-resize akan disimpan ke dalam database training face dengan format .bmp. Selain itu juga dilakukan penyimpanan nama dari pemilik citra wajah tersebut.

Untuk menyimpan image dengan menggunakan perintah :

image.Save(Application.Star tupPath + " /TrainedFaces/face" + _ i.ToStr ing() + " .bmp" )

Sedangkan untuk menyimpan nama dengan menggunakan perintah : File.AppendAllText(Application.Star tupPath + _

" /TrainedFaces/Tr ainedLabels.txt" , filename.ToString() + " % " ) dimana:

Application.StartupPath + "/TrainedFaces/” as folder tempat penyimpanan citra wajah.

(51)

3.1.2. Feature Extraction

Gambar 3.3. Proses Pengambilan Ciri Citra

Pengambilan ciri citra (feature extraction) pada metode eigenface seperti pada Gambar 3.3. di atas merupakan proses yang dilakukan setelah

pre-processing. Mula-mula citra data training (training face) yang sudah

menjadi grayscale diambil cirinya untuk mendapatkan nilai eigenface-nya. Pada citra data test (test face) juga diproses dan dilakukan pengambilan cirinya untuk mendapatkan nilai eigenface-nya. Tujuan dari proses pengambilan ciri dan mendapatkan nilai eigenface ini adalah untuk membandingkan nilai eigenface dari test face dengan nilai eigenfaces yang terdapat pada database training faces dengan menggunakan perhitungan

euclidean distance.

(52)

3.1.3. Recognition Process

Gambar 3.4. Proses Pengenalan Citra Wajah

Proses seperti pada Gambar 3.4. di atas nilai eigenface dari masing-masing citra wajah di database training faces dan eigenface dari test face dihitung perbedaan kesamaan jaraknya menggunakan perhitungan euclidean

distance. Nilai terkecil dari perhitungan euclidean distance merupakan nilai

yang diambil sebagai hasil dari citra wajah yang dikenali.

Pada Emgu CV untuk proses pengenalan citra yang meliputi perhitungan euclidean distance serta pencarian citra wajah pada database

training faces yang sesuai dengan test face yaitu dengan menggunakan

perintah :

EigenObjectRecognizer.Recognize(testface) dimana :

(53)

3.2. Perancangan Interface

Interface merupakan suatu halaman perangkat lunak sebagai tempat

interaksi bagi pengguna dan perangkat lunak tersebut. Tujuan dari perancangan

interface berikut ini agar pengguna dapat memahami jalan kerja program dengan

mudah.

3.2.1. Interface Tampilan Awal

Pada form ini pengguna dapat melihat tampilan awal aplikasi seperti pada Gambar 3.5. di bawah. Tampilan awal aplikasi dapat dilihat ketika pertama kali aplikasi dijalankan atau ketika pengguna mengklik tombol beranda.

Gambar 3.5. Desain Tampilan Awal

3.2.2. Interface Menu

Pada form seperti pada Gambar 3.6. di bawah, pengguna dapat memilih salah satu dari dua menu yang disediakan yaitu face registration dan

(54)

Gambar 3.6. Desain Tampilan Menu

3.2.3. Interface Face Registration

Pada form seperti pada Gambar 3.7. di bawah, pengguna dapat melakukan input-an citra wajah melalui web-camera serta meng-input-kan nama pemilik citra wajah tersebut dan disimpan sebagai data training faces.

(55)

3.2.4. Interface Face Recognition

Pada form seperti pada Gambar 3.8. di bawah, pengguna dapat melakukan uji coba pengenalan citra wajah. Citra wajah pengguna di-capture melalui web-camera kemudian diproses dan dicocokkan dengan citra wajah pada database data training faces dan ditampilkan data yang sesuai.

Gambar 3.8. Desain Tampilan Menu Face Recognition

3.3. Lingkungan Implementasi

Untuk dapat melalukan implementasi sistem secara optimum, maka dibutuhkan spesifikasi sistem perangkat lunak (software) ataupun perangkat keras (hardware) yang memadai.

(56)

Perangkat Keras

Perangkat keras yang digunakan untuk implementasi aplikasi pengenalan citra wajah ini adalah :

- Komputer dengan processor Intel(R) Core(TM) i3 CPU M 350 @2.27GHz (4 CPUs), ~2.3GHz

- 2048MB RAM

- VGA Card ATI Mobility Radeon HD 5470 1743 MB - Monitor 14”

- Hard Disk 320 GigaByte - USB 2.0 1.3M UVC WebCam Perangkat Lunak

Perangkat lunak yang digunakan untuk implementasi aplikasi pengenalan citra wajah ini adalah :

- Sistem Operasi Microsoft Windows 7 Professional 32-bit (6.1, Build 7601) Service Pack 1

(57)

Pada bab IV ini akan dijelaskan mengenai implementasi dari rancangan program yang telah dibuat pada bab III. Bagian implementasi aplikasi pengenalan citra wajah ini meliputi : lingkungan implementasi, implementasi data, implementasi interface, implementasi proses, uji coba dan evaluasi aplikasi.

4.1. Implementasi Data

Data yang akan diimplementasikan pada proses pembuatan aplikasi pengenalan citra wajah dengan metode eigenface menggunakan library Emgu CV ini berupa citra bergerak (moving images) yang telah di-capture melalui

web-camera yang akan diproses melalui beberapa tahapan untuk menyimpan dan

melakukan pengenalan citra wajah yang terdeteksi tersebut.

4.2. Implementasi Interface

Pada implementasi interface ini digunakan untuk memudahkan user yang akan melakukan proses pengenalan citra wajah dengan menggunakan aplikasi yang telah dibuat. Adapun gambaran dari interface aplikasi sebagai berikut ini.

(58)

Gambar 4.1. Tampilan Utama Aplikasi

Pada tampilan utama aplikasi tersebut terdapat empat tombol yaitu : • tombol (exit),

• tombol (home), • tombol (menu), • tombol (help).

Tombol exit berfungsi untuk keluar dari aplikasi pengenalan citra wajah tersebut, tombol home berfungsi untuk menampilkan tampilan utama, tombol menu berfungsi untuk menampilkan menu yang terdapat pada aplikasi pengenalan citra wajah tersebut dan tombol help untuk menampilkan tutorial penggunaan aplikasi. Selain keempat tombol tersebut, pada tampilan utama aplikasi pengenalan citra wajah tersebut juga ditampilkan wallpaper serta sebuah digital

(59)

Tampilan aplikasi telah disusun sedemikian rupa dengan tujuan untuk mempermudah pengguna dalam memahami dan menggunakan aplikasi pengenalan citra wajah tersebut.

Ketika pengguna mengklik tombol help maka akan ditampilkan seperti pada Gambar 4.2. di bawah ini.

Gambar 4.2. Tampilan Help

Pada form help tersebut digunakan untuk menampilkan tutorial penggunaan aplikasi pengenalan wajah. Terdapat juga keterangan dari fungsi tombol-tombol yang terdapat pada aplikasi tersebut. Jika ingin menutup form help klik tombol (closed).

(60)

Gambar 4.3. Tampilan Menu Pada menu terdapat dua tombol yaitu :

• tombol (face registration) • tombol (face recognition)

Tombol face registration berfungsi untuk melakukan pendaftaran citra wajah agar disimpan ke database training faces. Setelah melakukan pendaftaran citra wajah maka pengguna dapat mengklik tombol face recognition untuk melakukan pengenalan citra wajah.

(61)

Gambar 4.4. Tampilan Menu Face Registration

Di dalam menu face registration terdapat dua imagebox, imagebox1 berukuran 320 x 240 pixel berfungsi sebagai camera viewer untuk mendeteksi citra wajah, sedangkan imagebox2 berukuran 100 x 100 pixel berfungsi untuk menampilkan hasil dari citra wajah terdeteksi yang sudah di-capture dan dikonversi dalam format grayscale dengan ukuran 100 x 100 pixel. Sebelum menyimpan citra wajah tersebut, terlebih dahulu meng-input-kan nama dari citra wajah tersebut di dalam textbox yang telah disediakan kemudian mengklik tombol (add) untuk melakukan proses penyimpanan ke dalam database training

faces. Jika ingin menutup menu face registration klik tombol (closed).

(62)

Gambar 4.5. Tampilan Menu Face Recognition

Berbeda dengan menu face registration sebelumnya yang terdapat dua

imagebox, di dalam menu face recognition hanya terdapat satu imagebox yang

berfungsi sebagai camera viewer untuk proses pengenalan citra wajah. Hasil dari proses tersebut dapat dilihat seperti pada Gambar 4.6. di bawah ini.

Gambar 4.6. Tampilan Hasil Face Recognition

(63)

yang berkorespondensi dengan citra wajah yang dikenali yang terdapat di database training faces.

Dari contoh di atas dijelaskan bahwa hasil pengenalan untuk citra wajah yang ter-capture kamera tersebut adalah citra wajah dengan index 55 dan label yang berkorespondensi yaitu rully. Jika ingin menutup menu face recognition klik tombol (closed).

4.3. Implementasi Pr oses

Bagian implementasi proses ini menjelaskan mengenai implementasi proses-proses sesuai dengan konsep yang telah dibuat pada bab III seperti yang telah digambarkan dalam flowchart.

Aplikasi pengenalan citra wajah ini merupakan aplikasi yang menggunakan library Emgu CV, oleh karena itu sebelum proses coding maka diperlukan untuk melakukan konfigurasi pada komputer dan Microsoft Visual Studio 2010 agar dapat menjalankan fungsi-fungsi yang terdapat dalam library Emgu CV tersebut. Berikut ini adalah langkah-langkahnya :

1. Instalasi Open CV dan Konfigurasinya

(64)

Computer, pilih Properties kemudian pilih Advanced system settings

seperti pada Gambar 4.7. di bawah ini.

Gambar 4.7. Tampilan Setting Open CV ke-1

Kemudian klik Environment Variables seperti pada Gambar 4.8. di bawah ini.

(65)

Pada bagian System variables cari bagian path, kemudian klik edit. Tambahkan baris berikut ini :

;C:\opencv\build\x86\vc10\lib\;C:\opencv\build\bin\;C:\opencv\build\x86

\vc10\bin\ seperti pada Gambar 4.9. di bawah ini.

Gambar 4.9. Tampilan Setting Open CV ke-3

Klik OK, kemudian restart komputer agar system dapat mengenali path baru tersebut.

2. Instalasi Emgu CV dan Konfigurasinya

Seperti instalasi pada Open CV untuk memulai instalasi double klik pada file Emgu CV yang sudah didownload. Pilih drive C untuk mengekstrak file .exe Emgu CV.

Kemudian pada library pada project yang kita buat. Klik kanan pada

project kemudian klik Add reference seperti pada Gambar 4.10. di bawah

(66)

Gambar 4.10. Tampilan Setting Emgu CV ke-1

Pada tab browse pilih lokasi penginstalan Emgu CV kemudian pilih folder bin. Pilih file Emgu.CV.dll, Emgu.CV.UI.dll dan Emgu.Util.dll seperti pada Gambar 4.11. di bawah ini.

Gambar 4.11. Tampilan Setting Emgu CV ke-2

(67)

digunakan untuk menampilkan gambar seperti picture box. Untuk menambahkan komponen, terlebih dahulu pilih bagian General pada

Toolbox. Kemudian klik kanan dan pilih Choose Items seperti pada

Gambar 4.12. di bawah ini.

Gambar 4.12. Tampilan Setting Emgu CV ke-3

Lanjutkan dengan mengklik tombol Browse dan pilih file

Emgu.CV.UI.dll pada folder bin di lokasi folder Emgu CV. Kemudian

pada bagian .NET Framework Components beri centang pada bagian

Image Box dan kemudian klik OK seperti pada Gambar 4.13. di bawah

(68)

Gambar 4.13. Tampilan Setting Emgu CV ke-4

Setelah itu otomatis komponen Image Box akan muncul pada Toolbox pada bagian General seperti pada Gambar 4.14. di bawah ini.

Gambar 4.14. Tampilan Setting Emgu CV ke-5

(69)

Imports Emgu.CV

Imports Emgu.CV.Structure

Imports Emgu.CV.CvEnum

4.3.1. Pr oses Mengaktifkan Web-Camera dan Deteksi Area Wajah Proses mengaktifkan web-camera dan deteksi area wajah ini merupakan sebuah proses untuk mengaktifkan web-camera sebagai alat untuk pengambilan citra wajah dan mendeteksi area wajah yang nantinya akan digunakan untuk pendaftaran atau pengenalan citra wajah. Berikut adalah potongan source code untuk proses tersebut :

... ... ...

grabber = New Capture

grabber.QueryFrame()

currentFrame = grabber.QueryFrame.Resize(320, 240, _ Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC)

gray = currentFrame.Convert(Of Gray, Byte)()

Dim facesDetected() As Rectangle = face.DetectMultiScale(gray, 1.2, 10, New Size(20, 20), Size.Empty)

For Each f As Rectangle In facesDetected

result = currentFrame.Copy(f).Convert(Of Gray, Byte)().Resize(100, 100, _ Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC)

currentFrame.Draw(f, New Bgr(Color.Red), 2)

Next

ImageBox1.Image = currentFrame

... ... ...

(70)

4.3.2. Pr oses Grayscale

Proses grayscale ini merupakan proses mengkonversi image berwarna RGB menjadi gray image. Berikut adalah potongan source code untuk proses tersebut :

... ... ...

TrainedFace = currentFrame.Copy(f).Convert(Of Gray, Byte)()

... ... ...

4.3.3. Pr oses Resize

Proses resize image ini merupakan sebuah proses yang bertujuan untuk merubah ukuran image menjadi 100 x 100 pixel. Berikut adalah potongan source code untuk proses tersebut :

... ... ...

TrainedFace = result.Resize(100, 100, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC)

... ... ...

4.3.4. Pr oses Save to Database Training Faces

Pada proses ini citra wajah yang sudah dikonversi ke grayscale dan di-resize akan disimpan ke dalam database training face dengan format .bmp. Selain itu juga dilakukan penyimpanan nama dari pemilik citra wajah tersebut. Berikut adalah potongan source code untuk proses tersebut :

... ... ...

(71)

gray = grabber.QueryGrayFrame.Resize(320, 240, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC)

Dim facesDetected() As Rectangle = face.DetectMultiScale(gray, 1.2, 10, New Size(20, 20), Size.Empty)

For Each f As Rectangle In facesDetected

TrainedFace = currentFrame.Copy(f).Convert(Of Gray, Byte)()

Exit For Next

TrainedFace = result.Resize(100, 100, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC) trainingImages.Add(TrainedFace) Labelss.Add(TbName.Text)

ImageBox2.Image = TrainedFace

File.WriteAllText(Application.StartupPath +

"/TrainedFaces/TrainedLabels.txt",

trainingImages.ToArray().Length.ToString() + "%")

Dim i As Integer = 1

Do While (i < (trainingImages.ToArray.Length + 1))

trainingImages.ToArray()(i - 1).Save(Application.StartupPath +

"/TrainedFaces/face" + i.ToString() + ".bmp")

File.AppendAllText(Application.StartupPath +

"/TrainedFaces/TrainedLabels.txt", Labelss.ToArray()(i - 1) + "%") i = (i + 1)

Loop

MessageBox.Show(("Proses Penyimpanan Wajah " + TbName.Text + "

Berhasil"), "Penyimpanan OK", MessageBoxButtons.OK,

MessageBoxIcon.Information)

(72)

MessageBox.Show("Deteksi Wajah Gagal", "Penyimpanan Gagal",

MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

End Try

... ... ...

4.3.5. Pr oses Pengenalan Citr a Wajah

Proses pengenalan citra wajah ini adalah proses dimana nilai

eigenface dari masing-masing citra wajah di database training faces dan

eigenface dari test face dihitung perbedaan kesamaan jaraknya menggunakan

perhitungan euclidean distance. Nilai terkecil dari perhitungan euclidean

distance merupakan hasil dari citra wajah yang dikenali.

Setelah proses pengenalan citra wajah selesai, maka akan ditampilkan hasil dari pengenalan citra wajah tersebut dengan pelabelan pada

test face tersebut meliputi index dan nama yang berkorespondensi dengan

hasil pengenalan citra wajah tersebut.

Berikut ini adalah potongan source code untuk proses tersebut : ... ... ...

Try

currentFrame = grabber.QueryFrame.Resize(320, 240, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC)

gray = currentFrame.Convert(Of Gray, Byte)()

Dim facesDetected() As Rectangle = face.DetectMultiScale(gray, 1.2, 10, New Size(20, 20), Size.Empty)

For Each f As Rectangle In facesDetected

(73)

result = currentFrame.Copy(f).Convert(Of Gray, Byte)().Resize(100, 100, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC)

currentFrame.Draw(f, New Bgr(Color.Red), 2)

If (trainingImages.ToArray().Length <> 0) Then

Dim termCrit As MCvTermCriteria = New MCvTermCriteria(ContTrain, 0.001)

Dim recognizer As EigenObjectRecognizer = New

EigenObjectRecognizer(trainingImages.ToArray(), Labelss.ToArray(),

5000, termCrit)

Dim jarak As Decimal = recognizer.Recognize(result).Distance

If jarak >= 5000 Then

Dim UK As String = "unknown"

currentFrame.Draw(UK, huruf, New Point((f.X - 2), (f.Y - 2)), New

Bgr(Color.LightGreen))

Else

nama = recognizer.Recognize(result).Label

Dim indek As Integer = recognizer.Recognize(result).Index

currentFrame.Draw(nama, huruf, New Point((f.X - 2), (f.Y - 2)),

New Bgr(Color.LightGreen))

currentFrame.Draw(indek, huruf, New Point((f.X - 2), (f.Y - 15)),

New Bgr(Color.LightGreen))

End If End If Next

ImageBox1.Image = currentFrame

Catch ex As Exception

End Try

(74)

4.4. Uji Coba Program

Pada sub bab ini akan dijelaskan tentang uji coba terhadap aplikasi pengenalan citra wajah yang telah dibuat dan selanjutnya akan dievaluasi dari hasil uji coba tersebut. Uji coba dilaksanakan untuk mengetahui kemampuan aplikasi dapat berjalan dengan baik sesuai dengan rancangan. Evaluasi dilakukan untuk menentukan tingkat keberhasilan dari aplikasi yang dibuat.

4.4.1. Skenario Uji Coba

Untuk memastikan bahwa aplikasi ini berjalan dengan baik, diperlukan adanya skenario yang akan dicoba, antara lain :

a. Melakukan proses pendaftaran citra wajah dengan memasukkan beberapa citra wajah ke dalam database training faces. Dalam proses ini satu orang memasukkan citra wajahnya sebanyak lima kali dengan pose pengambilan yang berbeda-beda. Hal ini dimaksudkan agar pada uji coba pengenalan citra wajah nantinya aplikasi dapat mengenali wajah dengan baik.

(75)

4.4.2. Pelaksanaan Uji Coba

Setelah melakukan perancangan interface aplikasi dan pengcodingan program kemudian adalah menguji aplikasi tersebut. Dari project yang telah dibuat tekan F5 untuk memulai menjalankan aplikasi pengenalan citra wajah tersebut. Pertama-tama aplikasi akan mengecek apakah terdapat citra wajah yang tersimpan di dalam database training faces. Jika database training faces masih kosong akan ditampilkan messagebox seperti pada Gambar 4.15. di bawah ini.

Gambar 4.15. Uji Coba Messagebox Database Kosong

(76)

Gambar 4.16. Uji Coba Tampilan Utama Aplikasi

Uji coba pertama adalah melakukan face registration. Klik tombol menu dan pilih menu face registration seperti Gambar 4.17. di bawah ini.

(77)

Setelah itu masuk ke tampilan face registration seperti pada Gambar 4.18. di bawah ini.

Gambar 4.18. Uji Coba Tampilan Face Registration

Di dalam proses ini, web-camera otomatis akan diaktifkan dan kemudian mendeteksi area wajah dari citra yang ter-capture. Jika terdapat informasi “ready to capture” maka pengguna dapat memasukkan nama citra wajah tersebut di dalam textbox yang telah disediakan kemudian mengklik tombol (add). Jika terdapat informasi “not ready to capture” maka

textbox dan tombol add otomatis akan di-disable. Jika textbox kosong atau

(78)

Gambar 4.19. Uji Coba Messagebox Data Tidak Lengkap

Jika proses registration berjalan dengan benar maka hasilnya seperti pada Gambar 4.20. di bawah ini.

(79)

Hasil dari pendaftaran citra wajah tersebut disimpan di dalam folder TrainingFaces dan pelabelannya disimpan di TrainingLabels.txt. Klik tombol

closed untuk menutup menu face registration tersebut.

Proses uji coba kedua adalah face recognition. Klik tombol menu dan pilih menu face recognition seperti pada Gambar 4.21. di bawah ini.

Gambar 4.21. Uji Coba Tombol Menu Face Recognition

(80)

Gambar 4.22. Uji Coba Tampilan Face Recognition

Pada proses ini, program akan otomatis menjalankan pengenalan citra wajah terhadap citra wajah yang ter-capture oleh web-camera. Hasil dari proses tersebut dapat dilihat seperti gambar di atas. Keterangan dari citra wajah yang dikenali pada gambar di atas adalah citra wajah dengan index 55 pada database training faces dan label yang berkorespondensi yaitu rully.

Klik tombol closed untuk menutup menu face recognition tersebut. Jika ingin menutup aplikasi klik tombol exit.

4.5. Evaluasi Aplikasi

(81)

4.5.1. Analisis Pr oses Face Registration

Pada tahap pengujian face registration ini akan diuji berdasarkan tingkat ketepatan dalam mendeteksi area wajah dari citra wajah yang

ter-capture, memproses ke dalam format grayscale, mengubah ukuran dan

menyimpan ke dalam database training faces. Pengujian face registration ini dilakukan dalam dua kondisi cahaya yaitu redup atau terang. Jarak citra wajah dengan web-camera adalah konstan ±30 cm. Hasil proses tersebut dapat dilihat seperti pada Tabel 4.1. di bawah ini.

Tabel 4.1. Hasil Proses Face Registration Uji

Coba ke -

Citr a Wajah Pr oses

Uji Coba

ke -

Citr a Wajah Pr oses

1 Berhasil 2 Berhasil

3 Berhasil 4 Berhasil

5 Berhasil 6 Berhasil

(82)

Uji Coba

ke -

Citr a Wajah Pr oses

Uji Coba

ke -

Citr a Wajah Pr oses

9 Berhasil 10 Berhasil

11 Berhasil 12 Berhasil

13 Berhasil 14 Berhasil

15 Berhasil 16 Berhasil

17 Gagal 18 Berhasil

19 Gagal 20 Berhasil

(83)

Uji Coba

ke -

Citr a Wajah Pr oses

Uji Coba

ke -

Citr a Wajah Pr oses

23 Berhasil 24 Berhasil

25 Berhasil 26 Berhasil

27 Berhasil 28 Berhasil

29 Berhasil 30 Berhasil

31 Berhasil 32 Berhasil

33 Berhasil 34 Berhasil

(84)

Uji Coba

ke -

Citr a Wajah Pr oses

Uji Coba

ke -

Citr a Wajah Pr oses

37 Berhasil 38 Berhasil

39 Berhasil 40 Berhasil

Dari percobaan pada face registration yang telah dilakukan, dapat dilihat bahwa dari 40 kali uji coba menghasilkan wajah berhasil terdeteksi sebanyak 38 kali dan 2 kali tidak terdeteksi. Citra wajah yang tidak dapat dideteksi adalah citra wajah yang tertutupi sebagian oleh objek lain seperti kerudung. Tingkat keberhasilan akurasi wajah ini sangat tinggi yaitu mencapai : 38/40*100% = 95% .

4.5.2. Analisis Pr oses Face Recognition

Pada tahap pengujian face recognition ini dilakukan untuk mengetahui keberhasilan aplikasi pengenalan citra wajah pada kondisi pencahayaan yang berbeda atau sama antara pada waktu melakukan face

registration dan face recognition ini. Hasil proses tersebut dapat dilihat

(85)

Tabel 4.2. Hasil Proses Face Recognition Kondisi Pencahayaan J umlah

Uji Coba

Hasil

Registration Recognition Berhasil Gagal

redup terang 10 4 6

terang redup 10 3 7

terang terang 10 8 2

redup redup 10 9 1

Akurasi recognition :

• Kondisi pencahayaan berbeda (redup-terang, terang-redup) pada waktu registration dan recognition

Tingkat keberhasilan : 7/20*100% = 35% Tingkat kegagalan : 13/20*100% = 65%

• Kondisi pencahayaan sama (redup-redup, terang-terang) pada waktu registration dan recognition

Tingkat keberhasilan : 17/20*100% = 85% Tingkat kegagalan : 3/20*100% = 15%

Gambar

Gambar 2.8. Tampilan Lingkungan Visual Basic 2010
Tabel 2.1. Fungsi Class – Class Pada Emgu CV
Gambar 3.1. Tahapan Pengenalan Citra Wajah Menggunakan Metode Eigenface
Gambar 3.2. Pra-Proses
+7

Referensi

Dokumen terkait

a) Digunakan untuk melengkapi data pegawai dengan foto, di mana foto ini akan disimpan ke dalam database, yang nantinya akan dicocokkan dengan citra wajah yang di-capture

Dalam hal ini penulis akan melakukan penelitian tentang pengaruh dekomposisi citra menggunakan wavelet pada pengenalan wajah menggunakan eigenface pada aplikasi mobile.. Sehingga

Aplikasi ini dapat melakukan pengenalan terhadap karakter manusia melalui bentuk bagian wajah dari pas photo digital yang dijadikan sebagai input dengan menggunakan metode

Proyeksi Data dari data citra wajah dari 2 subyek pada 3 komponen utama PCA Dari hasil pengujian terhadap perangkat lunak pengenalan citra wajah manusia dengan

HASIL DAN PEMBAHASAN 3.1 Komponen Database Citra Wajah Untuk melakukan proses pengenalan wajah dibutuhkan database training yang terdiri dari citra wajah 6

Hasil dari pengujian yang telah dilakukan, aplikasi dapat mendeteksi dan mengenali citra wajah mahasiswa yang melakukan pelanggaran dari foto yang telah dimasukkan pada aplikasi

HASIL DAN PEMBAHASAN 3.1 Komponen Database Citra Wajah Untuk melakukan proses pengenalan wajah dibutuhkan database training yang terdiri dari citra wajah 6

Sedangkan proses yang dilakukan pada penelitian ini meliputi: (1) proses menangkap citra wajah dengan kamera untuk menyimpan ke database pada saat akses masuk; (2) proses