• Tidak ada hasil yang ditemukan

Perancangan Sistem Pengenalan Wajah Berbasis Algoritma Principal Component Analysis (PCA)

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perancangan Sistem Pengenalan Wajah Berbasis Algoritma Principal Component Analysis (PCA)"

Copied!
69
0
0

Teks penuh

(1)
(2)

TUGAS AKHIR

Disusun untuk memenuhi syarat kelulusan pada

Program Studi Sistem Komputer Strata Satu di Jurusan Teknik Komputer

Oleh

Krisna Gunawan

NIM: 10207028

Pembimbing

Dr. Ir. Yeffry Handoko Putra, MT.

Wendi Zarman, M.Si.

JURUSAN TEKNIK KOMPUTER

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

(3)
(4)

iii

Sistem identifikasi merupakan suatu bidang yang sangat penting penerapannya di dalam masyarakat, tidak jarang sistem ini diterapkan pada bidang yang bersifat rahasia dan menyangkut data-data pribadi seseorang, seperti sistem keamanan, absensi dan lainnya. Terdapat banyak metode yang dapat diterapkan pada sistem identifikasi, salah satunya menggunakan wajah. Sistem identifikasi berbasis pengenalan wajah, merupakan sistem yang baru-baru ini mulai digunakan sebagai alternatif sistem identifikasi. Sistem ini bekerja dengan cara mengambil karakteristik suatu citra yang nantinya dibandingkan dengan karakteristik citra yang telah disimpan dalam database. Pemasalahan yang timbul dalam sistem pengenalan wajah ini adalah seberapa akurat tingkat pengenalannya.

Pada tugas akhir ini, permasalahan keakuratan pengenalan tersebut akan

diuji dengan membandingkan hasil pengenalan pada berbagai kondisi. Sistem pengenalan wajah yang digunakan berbasis algoritma Principal Component Analysis. Algoritma ini berfungsi sebagai ekstraktor karakteristik citra yang dimasukan kedalam sistem.

Karakteristik-karakteristik yang didapatkan dari proses ekstraksi citra tersebut akan dibandingkan menggunakan metode Euclidean Distance, tujuannya untuk mengetahui seberapa mirip karateristik-karakteristik tersebut. Berdasarkan pengujian keseluruhan sistem yang telah dilakukan, sistem pengenalan wajah ini memiliki tingkat keakuratan yang cukup baik. Ketidak-akuratan sistem ini disebabkan intensitas cahaya dan posisi wajah yang diuji berbeda dengan posisi wajah yang telah disimpan dalam database.

(5)

iv

System Identification is a very important system which applied in society,

this system not infrequently applied to a field which has confidential and personal

data concerning a person, such as security systems, absences and other. There are many methods that can be applied to system identification, one of them uses

the face. System identification which based face recognition is an alternative

system that has recently begun to be used in identification system. This system works by taking the characteristics of an image that will be compared with the

characteristics of the image that has been stored in the database. The problem that appears in face recognition that is how accurate system can recognice an

image.

In this final paper, the accuracy problem of recognition will be tested by

comparing the result in various conditions. Face recognition systems in this paper

based on Principal Component Analysis algorithm. This algorithm serves as an

image characteristic extractor which added into system.

Characteristic of the image are compared using Euclidean Distance

method, the aim of this process to find out how similar

characteristic-characteristics which compared by system. Based on the overall system test which

has been done, this facial recognition system has a fairly good level of accuracy.

Imprecision of this system due to light intensity and position of the face were

tested had different to the face position that had been stored in database.

(6)

v Bismillahirahmaannirrohiim,

Assalamu’alaikum Wr. wb.

Segala puji dan syukur penulis panjatkankepada Allah SWT., Pencipta dan Pemelihara alam semesta, shalawat serta salam semoga terlimpah bagi Muhammad SAW., keluarga dan para pengikutnya yang setia hingga akhir masa.

Atas rahmat dan hidayah-Nya, akhirnya penulis dapat menyelesaikan tugas akhir ini, meskipun hasilnya masih jauh dari kata sempurna, mengingat keterbatasan pengetahuan, keilmuan, pengalaman serta referensi yang penulis miliki. Oleh karena itu penulis selalu terbuka untuk menerima kritik dan saran yang dapat menyempurnakan tugas akhir ini.

Penyusunan tugas akhir ini, tidak terlepas dari bantuan berbagai pihak yang

tak mungkin penulis sebutkan satu per satu. Sehingga, dengan segala kerendahan hati pada kesempatan ini penulis ingin mengucapkan terima kasih kepada:

1. Kedua orang tua dan keluarga besar penulis yang sudah memberikan do’a, dukungan, kasih sayang dan motivasi, sehingga penulis dapat menyelesaikan tugas akhir ini.

2. Ibu Sri Nurhayati, M.T. selaku Ketua Jurusan Teknik Komputer Univesitas Komputer Indonesia.

3. Bapak Dr. Ir. Yeffry Handoko Putra, M.T. selaku dosen pembimbing I, yang telah banyak memberikan arahan, saran dan bimbingan kepada penulis. 4. Bapak Wendi Zarman, M.Si. selaku dosen pembimbing II, yang telah

memberikan bimbingan dan arahan kepada penulis.

5. Ibu Selvia Lorena Br. Ginting, M.Si. selaku dosen wali penulis yang telah memberikan banyak bimbingan selama penulis menuntut ilmu.

6. Bapak dan Ibu seluruh staff dosen Jurusan Teknik Komputer yang telah memberikan ilmu, motivasi dan bantuan kepada penulis.

7. PT. Callysta Multi Engineering yang telah mengenalkan penulis ke dunia

(7)

vi memberikan bantuan kepada penulis.

9. Teman-teman SMA, yang telah banyak membantu penulis.

10. Serta seluruh pihak yang telah mendukung dan membantu dalam penyusunan tugas akhir ini yang tidak dapat penulis sebutkan satu persatu.

Akhir kata, penulis berharap semoga penelitian ini menjadi sumbangsih yang bermanfaat bagi dunia sains dan teknologi di Indonesia, khususnya disiplin keilmuan yang penulis dalami.

Bandung, 30 Agustus 2012

(8)

vii

1.2 Maksud dan Tujuan ... 2

1.3 Batasan Masalah ... 2

1.4 Metodologi Penelitian ... 2

1.5 Sistematika Penulisan ... 3

BAB II DASAR TEORI ... 4

2.1 Perkembangan Teknologi Pengolahan Citra ... 4

2.2 Sistem Pengenalan Wajah ... 5

2.2.1 Pendeteksian Wajah ... 7

2.2.7 Principal Component Analysis (PCA) ... 16

2.2.8 Ekstraksi Fitur Menggunakan PCA ... 18

(9)

viii

2.4 Perangkat Lunak ... 24

2.4.1 C++ ... 24

2.4.2 Microsoft Visual C++ 2008 Enterprise ... 26

2.4.3 Open Source Computer Vision (OpenCV) ... 26

2.4.4 HaarCascade Frontal Face ... 28

BAB III PERANCANGAN SISTEM ... 33

3.1 Diagram Blok ... 33

3.2 Diagram Alir... 33

3.3 Perancangan Sistem ... 38

3.3.1 Konfigurasi OpenCV2.1 ... 38

3.3.2 Antarmuka Sistem ... 39

BAB IV PENGUJIAN DAN ANALISA ... 41

4.1 Pengujian Antarmuka Sistem ... 41

4.2 Pengujian Proses Deteksi Wajah ... 42

4.3 Pengujian Proses Pelatihan Citra Wajah ... 43

4.4 Pengujian Proses Pengenalan ... 46

4.5 Pengujian Sistem Secara Keseluruhan ... 46

BAB V KESIMPULAN DAN SARAN ... 56

5.1 Kesimpulan... 56

5.2 Saran ... 56

(10)

1 1.1 Latar Belakang

Dewasa ini, telah banyak metode yang digunakan untuk mengidentifikasi seseorang dalam sistem keamanan, sistem absensi dan sistem lain yang menerapkannya. Dengan cara yang beragam, dari yang memanfaatkan benda fisik

seperti smart card, hingga yang memanfaatkan bagian anggota tubuh seperti sidik jari, retina mata dan sampai menggunakan wajah. Sistem identifikasi seseorang berbasiskan wajah atau biasa disebut sistem pengenalan wajah, memang baru-baru ini mulai digunakan pada bidang biometrika, sehingga sistem ini masih diragukan

kehandalannya. Oleh karena itu, perlu diadakan suatu analisis tentang kehandalan sistem mengidentifikasi seseorang berbasiskan wajah.

Sama hal nya dengan sidik jari dan retina mata manusia, wajah bersifat non-identik karena setiap orang memiliki bentuk dan kontur wajah yang berbeda-beda, sehingga wajah sangatlah memungkinkan untuk dijadikan alat atau model yang dipakai untuk mengidentifikasi seseorang. Sistem pengenalan wajah adalah suatu sistem yang membuat mesin dapat mengenali wajah seseorang sesuai dengan gambar wajah yang telah dilatih dan disimpan di dalam mesin tersebut.

Untuk membangun sistem pengenalan wajah yang baik agar dapat diterapkan pada sistem identifikasi seseorang, sistem tersebut harus memenuhi beberapa kriteria diantaranya keakuratan pengenalan dan kecepatan pengenalan. Dengan adanya masalah tersebut maka diperlukan suatu analisis terhadap sistem pengenalan wajah, oleh karena itu dilakukan penelitian tentang analisis sistem pengenalan wajah dengan metoda principal component, dengan judul “Perancangan Sistem Pengenalan Wajah Berbasis Algoritma Principal

(11)

2 1.2 Maksud dan Tujuan

Pembuatan tugas akhir ini dibuat dengan maksud dan tujuan untuk mempelajari dan memahami bahasa pemrograman C++, merancang sistem pengenalan wajah yang berfungsi dengan baik dan mendapatkan hasil analisis tentang keakuratan sistem pengenalan wajah berbasis principal component

analysis, yang kedepannya diharapkan dapat berguna bagi bidang biometrika untuk mengidentifikasi seseorang.

1.3 Batasan Masalah

Pada perancangan sistem pengenalan wajah yang dibuat ini terdapat beberapa batasan masalah yaitu:

1. Bahasa pemrograman yang digunakan adalah bahasa C++ dengan IDE

Microsoft Visual C++ 2008 Express Edition.

2. Posisi wajah yang akan dikenali lurus tegap menghadap kamera.

3. File data wajah yang disimpan dengan format PGM. 4. Proses pengenalan dilakukan hanya per satu orang.

5. Jumlah orang yang dikenali sebanyak 5 orang dengan database orang pembanding sebanyak 5, 10 dan 20 orang.

6. Citra yang diambil ke dalam database sebanyak 10 citra per orang.

1.4 Metodologi Penelitian

Metodologi penelitian yang dilakukan dalam penyelesaian tugas akhir ini meliputi:

1. Studi literatur.

Suatu metode pengumpulan data dengan membaca dan mempelajari buku atau referensi lainnya yang berhubungan dengan topik tugas akhir ini.

2. Perancangan.

(12)

3 3. Eksperimen.

Melakukan eksperimen atau pengujian sistem dan cara kerja sistem pengenalan wajah.

4. Analisa

Melakukan analisa terhadap pengujian sistem dan mengambil kesimpulan dari penelitian ini.

1.5 Sistematika Penulisan

Sistematika penulisan yang dilakukan dalam penyelesaian tugas akhir ini sebagai berikut:

BAB I PENDAHULUAN

Bab ini mengemukakan latar belakang pemilihan judul,rumusan masalah, batasan masalah, metodologi penelitian, serta sistematika penulisan.

BAB II DASAR TEORI

Bab ini akan menjelaskan tentang semua landasan teori yang berhubungan dengan sistem yang akan dibuat.

BAB III PERANCANGAN SISTEM

Bab ini menjelaskan perancangan sistem, mulai dari tujuan, perangkat lunak yang digunakan, pembuatan program, proses

training image dan cara menggunakan/menjalankan sistem.

BAB IV PENGUJIAN DAN ANALISA

Bab ini berisi hasil dan bahasan yang ditekankan pada perumusan masalah, yaitu tentang pengujian sistem, serta analisa terhadap hasil yang telah didapatkan.

BAB V KESIMPULAN DAN SARAN

(13)

4

2.1 Perkembangan Teknologi Pengolahan Citra

Teknologi pengolahan citra sekarang ini sudah semakin berkembang, hal tersebut ditandai dengan mulai banyaknya aplikasi-aplikasi yang menerapkan

teknologi ini. Pengolahan citra merupakan proses yang memperbaiki kualitas citra agar mudah diinterpretasi oleh manusia atau komputer. Sedangkan definisi citra sendiri adalah gambar pada bidang 2 dimensi atau secara matematis pengertiannya adalah fungsi yang kontinu dari intensitas cahaya pada bidang 2 dimensi.

Pengolahan citra digital mulai dikembangkan pertama kali pada tahun 1964, dimana pada saat itu pengolahan citra digital digunakan untuk memperbaiki kualitas citra bulan dari distorsi di laboratorium Jet Propulsion. Sampai perkembangannya hingga sekarang, teknologi ini telah memiliki spektrum aplikasi yang sangat luas, diantaranya:

1. Dibidang biomedis terdapat tomografi terkomputerisasi (computerized

tomography/CT) dan scanner Magnetic Resonance Imaging (MRI) yang digunakan untuk mengidentifikasi organ dalam tubuh.

Gambar 2.1. Hasil Pencitraan Scanner MRI

(14)

Gambar 2.2. Citra Satelit Daerah Jepang Pasca Bencana Tsunami

3. Dibidang biometrika, yang memanfaatkan sidik jari, iris, wajah, dan lainnya untuk teknologi sistem keamanan.

Gambar 2.3. Kunci Pintu Dengan Sidik Jari Biometrik

4. Dibidang-bidang lainnya, seperti bidang fotografi, bidang desain visual,

identifikasi objek, bidang volumetrik, dll.

2.2 Sistem Pengenalan Wajah

Sistem pengenalan wajah adalah aplikasi pengolahan citra yang dapat mengidentifikasi atau memverifikasi seseorang melalui citra digital atau frame video. Dewasa ini, sistem pengenalan wajah telah menjadi salah satu aplikasi pengolahan citra yang cukup populer, khususnya di bidang sistem keamanan, verifikasi kartu kredit dan indentifikasi penjahat.

(15)

Proses pengenalan wajah menggunakan komputer berjalan lambat dan cukup rumit, selain itu terdapat faktor lain yang menambah kesulitan pengenalan wajah

seperti orientasi wajah yang berbeda, pencahayaan, potongan rambut, kumis dan objek lain di sekitar wajah.

Penelitian tentang pengenalan wajah telah berlangsung dari tahun 1960 hingga sekarang dengan beragan metode yang digunakan. Namun dari beragam metode tersebut, hanya terdapat dua metode utama yang digunakan untuk pengenalan wajah, yaitu[2]:

- Pengenalan berbasis fitur, berdasarkan pada ekstraksi dari sifat-sifat organ individu yang terletak pada wajah seperti mata, hidung dan mulut, serta hubungan mereka satu sama lain.

- Pengenalan berbasis pendekatan eigenfaces, berdasarkan pada ekstraksi informasi paling relevan yang terkandung dalam wajah. Informasi ini berupa suatu set karakteristik citra yang digunakan untuk menggambarkan variasi citra wajah. Tujuan dari proses ekstraksi tersebut adalah untuk mendapatkan

eigenvector (eigenface) dari kovarian matriks distribusi, yang disusun dari kumpulan pelatihan citra wajah. Kemudian, setiap citra wajah diwakili oleh kombinasi linier dari eigenvector. Pengenalan dilakukan dengan mengklasifikasikan citra baru dengan citra yang telah disimpan dalam

database.

Secara umum, meskipun didasari dengan metode-metode yang berbeda proses pengenalan wajah terdiri dari dua proses utama yaitu, proses pelatihan citra

dan proses pengenalan citra. Kedua proses ini memiliki tahapan-tahapan yang hampir sama, perbedaannya terletak pada hasil ekstraksi fiturnya. Proses pelatihan citra wajah memiliki tahapan-tahapan sebagai berikut:

- Pendeteksian wajah atau tracking wajah. - Penyelarasan wajah.

- Ekstraksi fitur.

(16)

Untuk lebih jelasnya, pada Gambar 2.4 ditunjukan diagram blok sistem pelatihan citra wajah secara umum:

Deteksi Wajah

Sedangkan pada proses pengenalan citra wajah, terdiri dari tahapan-tahapan sebagai berikut:

- Pendeteksian wajah atau tracking wajah. - Penyelarasan wajah.

- Ekstraksi fitur.

- Pencocokan fitur yang diuji dengan fitur yang dilatih.

Untuk lebih jelasnya, pada Gambar 2.5 ditunjukan diagram blok sistem pengenalan citra wajah secara umum:

Deteksi Wajah

Gambar 2.5. Diagram Blok Proses Pengenalan Citra Wajah

2.2.1 Pendeteksian Wajah

(17)

proses pendeteksian wajah mempunyai fungsi yang sama. Perbedaannya terletak pada proses pendeteksiannya saja, jika pada masukan berbentuk citra, sistem

berjalan offline sehingga dapat menggunakan proses pendeteksian wajah, sedangkan pada masukan video, sistem berjalan secara online atau real-time yang

membutuhkan pendeteksian secara langsung maka proses yang digunakan adalah proses face tracking. Terdapat banyak metode yang dapat digunakan untuk melakukan proses pendeteksian wajah ini, salah satunya dengan menggunakan metode Viola-Jones.

Gambar 2.6. Proses Deteksi Wajah

2.2.2 Penyelarasan Wajah

Pada proses pendeteksian wajah, citra wajah yang didapatkan masih berupa perkiraan kasar atau masih memiliki kualitas yang cukup buruk seperti ukuran yang berbeda dengan ukuran normal, faktor pencahayaan yang kurang atau lebih, kejelasan citra yang buruk dan sebagainya. Maka perlu diadakannya proses penyelarasan.

Proses penyelarasan wajah merupakan proses yang bertujuan untuk menormalisasi wajah dari citra wajah yang didapatkan dari proses pendeteksian wajah. Proses ini terdiri dari tahapan-tahapan sebagai berikut:

- Grayscaling (tahap konversi warna menjadi warna abu)

- Pemotongan(tahap pemisahan citra wajah dengan latar belakangnya) - Resizing (tahap normalisasi dimensi citra)

(18)

2.2.2.1 Grayscaling Citra

Grayscaling citra merupakan tahapan pertama dari proses penyelarasan, pada tahap ini terjadi pengkonversian citra warna RGB menjadi citra berwarna abu. Citra warna RGB terdiri dari 3 parameter warna yaitu merah (red), hijau

(green) dan biru (blue), jika citra warna RGB ini dimasukan ke dalam proses ekstraksi, maka proses tersebut akan sulit untuk dilakukan karena citra RGB terdiri dari 3 parameter, oleh karena itu diperlukan penyamaan parameter yaitu dengan melakukan tahap grayscaling ini. Berikut ini adalah persamaan tahap

grayscaling citra[14]:

x = 0.299r + 0.587g + 0.114b (2.1)

Dimana, nilai citra RGB adalah (r, g, b) dengan nilai integer diantara 0 sampai 255, dan x adalah nilai grayscale.

Gambar 2.7. Grayscaling Citra

2.2.2.2 Pemotongan Citra

(19)

Gambar 2.8. Pemotongan Citra

2.2.2.3 Resizing Citra

Pada tahap resizing citra, terjadi proses normalisasi dimensi citra wajah, yaitu proses pembesaran atau pengecilan dimensi citra wajah menjadi dimensi yang telah ditentukan. Tujuannya, untuk menyamakan dimensi wajah dari tiap citra yang dimasukan, sehingga pada proses ekstraksi citra nanti tidak ada perbedaaan dimensi dari matriks data citra wajah.

2.2.2.4 Equalizing Citra

Tahap ini adalah tahapan terakhir dari proses penyelarasan, yang tujuannya untuk memperjelas nilai histogram dari citra wajah hasil tahapan-tahapan

sebelumnya.

Gambar 2.9. Equalizing Citra

2.2.3 Ekstraksi Fitur

(20)

(PCA), linear discriminant analysis (LDA), independent component analysis

(ICA) dan sebagainya. Informasi yang didapatkan dari ekstraksi fitur disebut

vektor fitur, yaitu bentuk dasar pencarian citra berbasis konten, yang menangkap properti citra seperti warna dan tekstur.

2.2.4 Penyimpanan Fitur

Proses penyimpanan fitur, merupakan tahapan terakhir dari proses pelatihan citra wajah. Proses ini bertugas untuk menyimpan vektor fitur hasil ekstraksi citra wajah beserta identitas vektor fitur tersebut kedalam database, yang nantinya akan digunakan sebagai pembanding citra wajah yang diuji pada proses pengenalan wajah.

2.2.5 Pencocokan Fitur

Pencocokan fitur adalah tahapan proses yang hanya terdapat pada proses pengenalan citra wajah. Proses ini merupakan proses perbandingan fitur yang telah diekstrak dari citra uji dengan fitur citra wajah dari database, yang sebelumnya telah melalui proses pelatihan citra. Proses perbandingan ini dilakukan menggunakan metode pengenalan pola, salah satunya adalah metode

nearest neighbours.

Dari proses perbandingan fitur tersebut akan menghasilkan nilai jarak terdekat yang menandakan nilai fitur citra uji hampir menyamai dengan fitur citra latih. Nilai jarak ini akan menjadi nilai masukan untuk nilai kemiripan citra.

Nilai kemiripan citra merupakan nilai tingkat kemiripan citra uji dengan citra latih, semakin besar nilainya menandakan bahwa orang yang sedang diamati

adalah orang yang sama dengan orang yang citra wajahnya telah disimpan dalam

database. Nilai kemiripan ini sebelum mengeluarkan output hasil pengenalan wajah akan melalui proses threshold terlebih dahulu.

(21)

pengenalan yang ditampilkan bernilai benar, karena memiliki nilai kemiripan yang tinggi.

Setelah, proses-proses tersebut dilakukan proses terakhir adalah proses pencarian tingkat keakuratan. Keakuratan adalah kondisi yang menunjukan

kebenaran atau ketepatan suatu objek yang diamati, dalam sistem pengenalan ini adalah kebenaran bahwa citra wajah yang diujikan benar-benar citra wajah orang yang dimaksud.

2.2.6 Metode Viola-Jones

Metode Viola-Jones merupakan salah satu metode pendeteksian objek yang cukup populer, yang dapat memberikan hasil dengan tingkat keakuratan yang cukup tinggi dan dengan kecepatan yang sangat tinggi. Metode ini, diusulkan oleh Paul Viola dan Michael Jones pada tahun 2001, dengan menggabungkan empat kunci utama untuk mendeteksi suatu objek, yaitu[8]:

- Fitur persegi sederhana, disebut fitur Haar

- Integral image untuk pendeteksian fitur dengan cepat - Metoda AdaBoost machine-learning

- Cascade classifier untuk mengkombinasikan banyak fitur

Fitur yang digunakan dalam metode Viola-Jones adalah fitur Haar yang didasari oleh Haar wavelets. Haar wavelets adalah satu gelombang panjang berupa gelombang persegi (satu interval tinggi satu dan satu interval rendah). Dalam dua dimensi, gelombang persegi ini digambarkan dengan sepasang persegi yang berdekatan – satu terang dan satu gelap.

(22)

Ada atau tidaknya fitur Haar dalam suatu citra ditentukan dengan cara mengurangi nilai rata-rata piksel daerah gelap dengan nilai rata-rata piksel daerah

terang. Jika hasilnya diatas ambang maka fitur tersebut dikatakan ada.

Untuk menentukan ada atau tidaknya ratusan fitur Haar pada suatu citra

secara efektif, Viola-Jones menggunakan teknik yang disebut integral image.

Integral image merupakan teknik yang dapat mempercepat proses pendeteksian suatu objek dengan menggabungkan unit terkecil dari citra yaitu nilai-nilai piksel menjadi suatu representasi citra baru, caranya dengan menjumlahkan piksel yang ada di sebelah kiri dan atas titik tersebut.

Gambar 2.11. Nilai Piksel (x, y) Adalah Nilai Semua Piksel Daerah Arsir

Sebagai contoh terdapat citra masukan dengan dimensi 5x5 dengan nilai-nilai piksel sebagai berikut:

Maka integral image dari citra input diatas adalah:

2 6 13 18 26 3 12 28 40 55 7 22 46 63 84 10 30 60 83 111 14 38 73 99 133

(23)

ilustrasi di atas diperoleh dengan cara menjumlahkan nilai piksel baris ke-1 kolom ke-1, piksel baris ke-1 kolom ke-2, piksel baris ke-2 kolom ke-1 dengan piksel

baris ke-2 kolom ke-2, maka didapatkan piksel dengan nilai 12 (2+4+1+5).

Dengan integral image ini, maka perhitungan untuk mendapatkan nilai fitur

Haar dapat didapatkan dengan waktu yang cepat, berikut ini adalah contoh perbandingan pencarian nilai fitur dengan menggunakan integral image dan tanpa

integral image:

= | (jumlah nilai piksel baris-2 kolom-2 sampai nilai piksel baris-5 kolom-3) – (jumlah nilai piksel baris-4 kolom-2 sampai nilai piksel baris-5 kolom-5) |

= | (5+9+6+8+5+6+4+5) – (7+7+5+6+6+7+3+6) |

Untuk menghitung fitur dengan menggunakan integral image, terdapat rumusan sebagai berikut:

(24)

Dimana, D adalah nilai piksel kanan bawah, A adalah nilai piksel kiri atas, B adalah piksel atas dari piksel D dan C adalah nilai piksel kiri dari piksel D.

Berikut adalah gambaran dari piksel-piksel tersebut:

Gambar 2.12.Pencarian Nilai Piksel D Pada Integral Image

Nilai fitur Haar = | (total piksel hitam) – (total piksel putih) | = | (73+2-(14 + 13)) – (133+13-(73+26)) | = | 48 - 47 |

= 1

Selanjutnya, setelah nilai fitur didapatkan Viola-Jones menggunakan metode AdaBoost machine-learning untuk mengetahui suatu fitur apakah

merepresentasikan ada tidaknya wajah dalam suatu citra masukan. Metode AdaBoost menggabungkan banyak classifier lemah menjadi satu classifier kuat.

Classifier adalah suatu ciri yang menandakan adanya objek wajah dalam suatu citra. Sedangkan classifier lemah adalah suatu jawaban benar namun memiliki tingkat kebenaran yang kurang akurat, jika digabung maka classifier lemah tersebut akan menghasilkan suatu classifier kuat. Berikut ini adalah gambaran dari metode AdaBoost yang digunakan untuk mendeteksi wajah:

(25)

tingkat, jika nilai fitur sama atau diatas nilai ambang maka terdeteksi adanya wajah dalam fitur tersebut.

Gambar 2.13. Metode AdaBoost Machine-Learning

Tingkatan proses penyeleksian fitur diurutkan berdasarkan bobot terberat sampai teringan, sehingga dapat secepat mungkin untuk mengklasifikasikan bahwa tidak terdeteksi wajah dalam citra masukan, pengurutan proses penyeleksian fitur ini disebut cascade classifier.

Gambar 2.14. Fitur Tingkat Pertama Pada Metode Viola-Jones

2.2.7 Principal Component Analysis (PCA)

(26)

telah mengalami pengembangan hingga terakhir oleh Karhunen-Louve pada tahun 1963.

PCA banyak digunakan sebagai alat eksplorasi dalam analisis data dan untuk membuat model prediksi. Sedangkan, pada sistem pengenalan wajah, PCA

digunakan untuk keperluan ekstraksi fitur citra, dimana jumlah dimensi dari citra jauh lebih besar dibandingkan dengan jumlah data sampel yang digunakan. Misalnya diketahui suatu citra dengan ukuran hxw, dengan h adalah tinggi citra dan w adalah lebar citra, maka dimensi citra adalah n dengan n=hxw. Jika suatu citra dengan ukuran dimensi n, maka jumlah kombinasi linier dari citra sebanyak n merupakan dimensi yang tinggi, dan ini merupakan masalah besar pada komputasi ketika proses pengukuran. Dengan menggunakan PCA, dimensi yang tinggi tersebut dapat direduksi menjadi dimensi yang rendah. Jumlah dimensi yang dihasilkan oleh PCA tergantung pada jumlah data yang digunakan oleh pelatihan dan jumlah sampel pada masing-masing data pelatihan. Misalkan jumlah data pelatihan adalah k dan masing-masing data mempunyai s model, maka jumlah sampel keseluruhan adalah m dengan m=kxs.

Sebagai contoh, misalnya terdapat data sampel 50 orang dengan 4 pose citra yang digunakan untuk pelatihan, maka m = 50x4 = 200. Jika tinggi citra 150 pixel

dan lebar 110 pixel, maka n = 150x110 = 165.000 pixel. Pada kasus ini, metode ekstraksi fitur menggunakan PCA sangat cocok untuk digunakan karena nilai

m<<n (200<<165.000). Pengurangan dimensi yang sangat signifikan ini akan sangat membantu untuk mempercepat waktu komputasinya dalam melakukan

klasifikasi.

(27)

Jika n>>m dan n merupakan dimensi citra, m adalah jumlah citra dilatih. Perlu dicatat, n merupakan vektor baris hasil bentukan hxw dengan h sebagai

tinggi citra dan w merupakan lebar citra. Setiap citra yang digunakan harus dibentuk menjadi matriks baris atau matriks kolom. Sebagai ilustrasi dapat dilihat

pada gambar berikut:

Gambar 2.15. Representasi Perubahan Dimensi dari 4x5 Menjadi 1x20

2.2.8 Ekstraksi Fitur Menggunakan PCA

Proses ekstraksi fitur bukanlah proses yang singkat, proses ini terdiri dari banyak tahapan, berikut ini adalah bentuk algoritma ekstraksi fitur menggunakan PCA:

a. Pembentukan matriks data citra wajah

Hal pertama yang harus dilakukan adalah pembentukan matriks yang datanya diambil dari pixel setiap citra. Berdasarkan contoh yang telah dijelaskan diatas yaitu, mxn dimana m adalah jumlah citra yang dilatih dan n merupakan dimensi dari citra tersebut, lalu diekstraksi menjadi citra dengan dimensi yang lebih kecil, hasilnya diproyeksikan menjadi sebuah matriks seperti pada persamaan (2.3).

b. Pencarian rata-rata seluruh citra

Setelah matriks data citra wajah terbentuk, maka proses berikutnya

adalah proses perhitungan untuk mencari rata-rata hasil seluruh citra. Pencarian nilai rata-rata ini tujuannya untuk mengetahui noise atau persamaan tiap vector yang dapat menganggu keakuratan perhitungan pada PCA, yang

(28)

Terlihat bahwa hasil perhitungan persamaan diatas adalah merupakan sebuah array yang memuat nilai n, (τ1, τ2, … … …, τn). Array tersebut

nantinya akan digunakan untuk mencari nilai rata-rata nol (zero mean), setelah dibentuk menjadi matriks 1xn terlebih dahulu. Namun, ukuran matriks nilai rata-rata tidak berkesesuaian dengan matriks data citra sampel yang memiliki ukuran mxn, maka perlu dilakukan penggandaan nilai rata-rata.

c. Penggandaan nilai rata-rata.

Pengandaan nilai rata-rata dilakukan untuk menyamakan dimensi nilai rata-rata dengan dimensi data citra sampel sebanyak m, sehingga rata-rata seluruh citra data sampel memiliki dimensi (mxn). Matriks rata-rata citra data sampel yang telah digandakan sebanyak m kali dapat ditulis menggunakan persamaan:

a adalah matriks kolom dengan dimensi mx1 dan a untuk keseluruhan nilai adalah bernilai 1. Nilai dari [μi,1, μi,2, … … …, μi,n] pada baris ke i =

nilai baris ke i+1 dan berlaku maka hasil persamaan diatas dapat digunakan untuk menghitung rata-rata nol.

d. Perhitungan nilai rata-rata nol

Perhitungan nilai rata-rata nol, berfungsi untuk menghilangkan noise

(29)

Atau dapat dimodelkan menggunakan matriks seperti pada persamaan berikut:

e. Pembentukan matrik kovarian

Hasil perhitungan nilai rata-rata nol digunakan untuk mendapatkan nilai matriks kovarian. Matriks kovarian merupakan matriks reduksi dari proses ekstraksi PCA, yang memiliki dimensi lebih kecil dibandingkan dimensi matriks citra asli. Berikut ini adalah persamaan matriks kovarian:

Persamaan 2.6 dapat diuraikan menggunakan matriks seperti pada persamaan:

T

(30)

f. Penentuan matriks eigenvalue dan eigenvector

Setelah matriks kovarian didapatkan maka langkah selanjutnya adalah menentukan matriks eigenvalue dan matriks eigenvector.

Matriks eigen dapat dicari menggunakan persamaan:

Dimana C adalah matriks kovarian. Z adalah matriks eigenvalue dengan  sebagai scalar pembentuknya dan I sebagai matriks identitas, persamaan

tersebut jika diimplementasikan ke bentuk matriks menjadi persamaan sebagai berikut:

Hasil dari matriks tersebut akan menghasilkan suatu persamaan, sebagai berikut:

Setelah itu dilakukan proses faktorisasi, maka akan didapatkan nilai (1,

2, …, i+1) yang nantinya akan digunakan untuk mencari nilai eigenvector,

(31)

Xi merupakan matriks kolom dengan elemen (x1, x2, …, xi) didalamnya,

dan matriks inilah yang disebut eigenvector. Persamaan (2.13) dapat ditulis

menjadi bentuk matriks sebagai berikut:

Kedua matriks tersebut dikalikan hingga didapatkan sebuah persamaan sebagai berikut:

(C11

Dari persamaan (2.14) didapatkan nilai (x1, x2, …, xn+1) yang nantinya

diproyeksikan kedalam suatu matriks baris atau kolom, yang disebut matriks

eigenvector.

g. Pencarian eigenface untuk proses pengenalan wajah

Eigenface didapatkan dari hasil perkalian matriks X atau eigenvector

dengan matriks  yang merupakan matriks hasil perhitungan rata-rata nol

pada persamaan (2.7), yang dibagi oleh akar Z, sebagai eigenvalue.

2.2.9 Pencocokan Fitur Menggunakan Metode Nearest Neighbours

Nearest neighbors adalah pendekatan untuk mencari kasus dengan menghitung kedekatan antara kasus baru dengan kasus lama, yaitu berdasarkan pada pencocokan bobot dari sejumlah fitur yang ada. Terdapat banyak metode pengukuran jarak pada nearest neighbor ini, salah satunya euclidean distance

yang akan digunakan pada proses pengenalan wajah ini. Berikut persamaan dari metode euclidean distance:

(32)

Diketahui, Eigenfacetrain ke j merupakan matriks fitur yang dihasilkan oleh

pelatihan ke j, dengan j  1..m dan m=k*s. Eigenfaceuji merupakan matriks fitur

citra yang diuji. Hasil pengukuran kemiripan yang didapatkan merupakan nilai minimal dari dv atau ditulis dengan persamaan:

d = min (dv ) (2.18)

2.3 Perangkat Keras

2.3.1 Webcam Logitech C270

Webcam atau kamera web, pada dasarnya adalah sebuah kamera digital yang terhubung ke komputer, yang berfungsi untuk mengambil citra yang akan diolah oleh komputer. Pada awalnya webcam digunakan sebagai alat komunikasi yang menampilkan rentetan citra dan dapat diakses melalui world wide web. Namun, seiring perkembangannya webcam digunakan juga untuk keperluan lainnya.

Gambar 2.16. Webcam Logitech C270

Webcam Logitech C270 merupakan webcam yang memiliki kemampuan yang cukup memenuhi syarat untuk digunakan pada sistem pengenalan wajah

online, karena:

- Memiliki tingkat kecerahan dan ketajaman gambar yang cukup baik. - Memiliki kecepatan frame rate yang tinggi.

(33)

2.4 Perangkat Lunak

2.4.1 C++

C++ merupakan bahasa pemrograman komputer yang dikembangkan oleh Bjarne Stroustrup di Bell Labs pada tahun 1979 merupakan pengembangan

pendahulunya yaitu bahasa C. Pada dasarnya fungsi-fungsi bahasa C++ tidaklah berbeda jauh dengan bahasa C, perbedaannya terletak pada penambahan kelas-kelas, fungsi virtual, operator overloading, multiple inheritance, templat, penanganan eksepsi dan fitur-fitur lainnya. Sehingga pada awal penciptaannya bahasa C++ sering disebut dengan istilah “C with Classes”.

C++ memiliki wilayah aplikasi yang cukup luas, karena dapat digunakan untuk membuat banyak program aplikasi diantaranya, perangkat lunak sistem, perangkat lunak aplikasi, driver perangkat keras, perangkat lunak tertanam, aplikasi dengan kinerja yang tinggi pada server dan client, dan perangkat lunak hiburan seperti video game. Contoh program C++ sederhana, sebagai berikut:

#include <iostream>

Pernyataan #include memberitahukan pre-processor untuk menyertakan kode dari iostream. Berkas iostream berisi deklarasi untuk berbagai fungsi yang dibutuhkan oleh perangkat lunak atau kelas-kelas yang dibutuhkan. Pre-processor adalah suatu program yang dijalankan oleh kompilator C++, yang memiliki kemampuan untuk menambahkan dan menghapus kode dari sumber.

- intmain()

(34)

- {

Kurung kurawal buka menandakan awal program.

- std ::cout <<"Hello,newworld!\ n ";

Cout adalah sebuah obyek dari library perangkat lunak standar C++ yang digunakan untuk mencetak string ke piranti output standar, biasanya layar komputer. Kompilator menghubungkan kode dari library perangkat lunak standar dengan kode yang telah ditulis untuk mendapatkan hasil yang dapat dieksekusi.

- \n

Bentuk modifier yang digunakan untuk berganti baris setelah menampilkan string.

- }

Kurung kurawal tutup menandakan akhir program.

Kelebihan dari bahasa C++ dibandingkan bahasa lain adalah:

- Bahasa C++ tersedia hampir di semua jenis komputer.

- Kode bahasa C/C++ sifatnya portable dan fleksibel untuk semua jenis komputer.

- Proses eksekusi program bahasa C/C++ lebih cepat. - Dukungan pustaka yang banyak.

- Bahasanya terstruktur

- Sudah mendukung pemrograman berorientasi objek.

Banyaknya kelebihan dari bahasa C++ ini bukan berarti bahasa ini tidak memiliki kekurangan, berikut adalah kekurangan bahasa C++:

- Banyaknya operator serta fleksibilitas penulisan program, yang dapat membingungkan pemakai.

- Bagi pemula pada umumnya akan mengalami kesulitan ketika menggunakan

(35)

2.4.2 Microsoft Visual C++ 2008 Enterprise

Microsoft Visual C++ 2008 Enterprise merupakan IDE (Intergrated Development Environtment) atau lingkungan pemrograman yang sudah dikemas sebagai program aplikasi yang biasanya terdiri dari editor kode, compiler,

debugger, dan antarmuka grafis (GUI) builder. Sesuai namanya, Visual C++

menggunakan bahasa C dan C++ sebagai bahasa pemrogramannya. Sesuai dengan versinya, IDE ini diperkenalkan oleh Microsoft pada tahun 2008. Perangkat ini memiliki beberapa keunggulan, diantaranya:

- Gratis.

- Mendukung pembangunan aplikasi native dan non-managed. - Dapat digunakan untuk mengkompilasi .NET serta aplikasi Win32.

Karena sifatnya yang gratis, perangkat lunak ini memiliki banyak kekurangan, diantaranya:

- Tidak dapat mengkompilasi aplikasi yang menggunakan MFC atau ATL. - Tidak mendukung OpenMP, 64-bit compiler, atau editor sumber daya.

Gambar 2.17. Tampilan IDE Microsoft Visual C++2008

2.4.3 Open Source Computer Vision (OpenCV)

Open Source Computer Vision Library, adalah library open source multi

(36)

untuk digunakan baik di kegiatan akademik maupun komersial. Library ini berfungsi untuk mentransformasikan data dari citra diam atau kamera video ke

salah satu keputusan atau representasi baru. Semua representasi tersebut dilakukan untuk mencapai beberapa tujuan tertentu.

OpenCV dirilis pada Januari 1999 oleh Visual Interactivity Group di Intel’s

Microprocessor Research Lab. Tujuannya untuk membangun suatu komunitas

open source vision dan menyediakan situs yang mendistribusikan upaya dari komunitas sehingga dapat dikonsolidasi dan dioptimalkan kinerjanya.

Struktur OpenCV secara luas terbagi menjadi lima komponen utama, empat diantaranya terlihat pada gambar dibawah ini[4]:

Gambar 2.18. Struktur Dasar OpenCV

Keterangan:

- Komponen CV berisi pengolahan citra dasar dan algoritma computer vision

tingkat tinggi.

- MLL adalah library pembelajaran mesin, yang meliputi pengklasifikasi statistik dan peralatan clustering.

- HighGUI berisi rutin dan fungsi I/O untuk menyimpan dan membaca video dan citra.

- CXCORE berisi struktur data dan konten dasar.

(37)

Telah banyak pengembangan-pengembangan yang dilakukan oleh kontributor dalam penambahan komponen ke kelas OpenCV, sehingga OpenCV

hingga saat ini, telah memiliki lebih dari 500 fungsi. Beberapa fungsi tersebut

Alasan utama penggunaan OpenCV, karena OpenCV memiliki kustomisasi yang tinggi dan kinerja yang baik pada program berbasis bahasa native C/C++. Selain itu terdapat beberapa kelebihan lainnya, yaitu:

- Gratis, karena open source library.

- Memiliki dokumentasi yang cukup banyak.

- Dapat bekerja lebih cepat pada prosesor berbasis intel.

Kekurangannya, yaitu:

- Kurang mendukung bahasa berbasis .NET seperti C#, Visual Basic, Phyton

dan lainnya, sehingga dibutuhkan wrappers mendukungnya.

2.4.4 HaarCascade Frontal Face

HaarCascade Frontal Face adalah suatu library berupa file templet berekstensi xml, yang diciptakan oleh Rainer Leinhart pada tahun 2000. Library

(38)

Setidaknya terdapat empat file templet HaarCascade Frontal Face, namun hanya satu yang akan digunakan penulis yaitu haarcascade_frontalface_alt.xml.

File templet ini memiliki karakteristik sebagai berikut:

- Menggunakan sub-window citra dengan dimensi 20x20

- Memiliki 22 tahapan (stage 0 sampai stage 21) cascade classifier

- Memiliki 2133 weak classifier (tree)

Berikut ini adalah potongan kode file templet haarcascade_frontalface_alt/xml:

<opencv_storage><haarcascade_frontalface_alt <tilted>0</tilted></feature>

<threshold>4.0141958743333817e-003</threshold> <left_val>0.0337941907346249</left_val>

<right_val>0.8378106951713562</right_val></_></_> <_>

<stage_threshold>0.8226894140243530</stage_threshold> <parent>-1</parent>

<next>-1</next></_> <_>

(39)

Pada awal kode, tertera <size> yang mendefinisikan ukuran sub-window

yang digunakan yaitu 20x20. Hal ini menunjukan bahwa setiap citra masukan akan dibentuk menjadi sub-window berukuran 20x20 sebelum masuk ketahapan deteksi wajah. Gambar 2.19 akan menjelaskan pembentukan sub-window 20x20.

Gambar 2.19. Pembentukan Sub-Window 20x20

(40)

(threshold) proses deteksi wajah, nilai batas minimum (left_val) dan nilai batas maksimum (right_val) yang harus dipenuhi agar sub-window lolos ke tahap

selanjutnya. Untuk dapat melewati suatu tahapan sub-window harus berhasil melewati setiap tree didalam suatu tahapan. Perhitungan nilai fitur dilakukan juga

pada tree. Sebagai contoh, berikut ini adalah perhitungan fitur Haar (rects) pada suatu tree.

<rects>

<_>3 7 14 4 -1.</_> <_>3 9 14 2 2.</_> </rects>

Angka pada kolom pertama dan kedua menunjukan posisi piksel yang akan

diklasifikasi (x, y) pada sub-window. Kolom ketiga dan keempat menunjukan lebar dan tinggi fitur. Sedangkan, angka pada kolom terakhir adalah konstanta yang akan dikalikan ke setiap fitur persegi tersebut, dimana angka ini berfungsi untuk menentukan piksel hitam dan piksel putih suatu fitur, dengan ketentuan jika nilai suatu piksel dalam suatu piksel < 0, maka piksel tersebut masuk ke daerah piksel hitam, jika tidak piksel tersebut masuk ke daerah putih.

(41)

Gambar 2.20 menjelaskan gambaran fitur dalam sub-window pada kasus fitur Haar (rects) diatas. Sesuai dengan gambar tersebut, piksel hitam adalah

piksel dengan nilai fitur = -1, sedangkan piksel putih adalah piksel dengan nilai fitur = (-1+2) = 1. Setelah daerah piksel hitam dan daerah piksel putih ditentukan,

langkah selanjutnya adalah menghitung nilai fitur Haar keseluruhan caranya dengan mengurangi jumlah nilai fitur pada piksel area hitam dengan jumlah nilai fitur pada piksel area putih. Hasilnya akan dibandingkandengan nilai yang tertera pada threshold pendeteksian wajah, jika nilainya berada dibawah threshold proses pendeteksian wajah maka fitur dianggap tidak ada, jika diatas threshold

pendeteksian wajah fitur akan dilanjutkan ke left_val dan right_val. Apabila, fitur tersebut memiliki nilai diantara left_val dan right_val, maka sub-window

dinyatakan berhasil melewati tree tersebut.

Untuk dapat melanjutkan ke tingkat classifier selanjutnya, seluruh

(42)

33 3.1 Diagram Blok

Sistem ini terdiri dari 2 blok utama yaitu blok proses pelatihan dan proses pengenalan. Blok proses pelatihan terdiri dari webcam dan perangkat lunak yang memproses citra masukan menjadi karakteristik citra yang hasilnya akan

disimpan. Sedangkan pada blok proses pengenalan terdiri dari webcam, perangkat lunak yang memproses citra masukan menjadi karakteristik citra, lalu membandingkannya dengan karakteristik citra yang telah disimpan hingga dan memberikan output hasil pengenalan. Berikut ini adalah diagram blok secara

keseluruhan:

Gambar 3.1. Diagram Blok Keseluruhan Sistem

3.2 Diagram Alir

(43)

Gambar 3.2. Diagram Alir Keseluruhan Sistem

Gambar 3.2 menunjukan diagram alir keseluruhan sistem yang dirancang. Dimana, sistem pengenalan wajah proses ini akan diawali dengan inisialisasi

library-library yang akan digunakan oleh program dan diakhiri oleh hasil pengenalan wajah. Input pada sistem ini akan terjadi secara otomatis, jika citra wajah terdeteksi maka proses akan dilanjutkan ke proses pengenalan atau pelatihan jika tidak program akan mencari masukan citra wajah secara terus menerus. Program ini akan selesai ketika ada penekanan tombol selesai pada

(44)

Gambar 3.3. Diagram Alir Proses Simpan Citra

(45)

Gambar 3.4. Diagram Alir Proses Pre-Processing Citra Uji

Gambar 3.4 menunjukan diagram alir yang menggambarkan aliran

(46)

Gambar 3.5. Diagram Alir Proses Ekstraksi PCA

(47)

Gambar 3.6. Diagram Alir Proses Klasifikasi Citra

Gambar 3.6 menjelaskan proses klasifikasi citra, dimana pada proses inilah proses pengenalan terjadi. Proses ini akan membandingkan dua masukan yaitu fitur citra latih dan fitur citra uji, yang akan menghasilkan suatu nilai yaitu nilai kemiripan. Nilai kemiripan ini nantinya akan melalui proses thresholding, jika nilai kemiripan berada diatas nilai threshold, maka citra uji yang diujikan akan dikenali sebagai citra latih yang memiliki nilai diatas threshold tersebut.

3.3 Perancangan Sistem

3.3.1 Konfigurasi OpenCV2.1

OpenCV 2.1 adalah library tambahan, sehingga tidaklah otomatis terhubung dengan IDE yang digunakan, maka perlu dilakukan konfigurasi tertentu untuk menghubungkan library ini dengan IDE yang digunakan agar sistem pengenalan

wajah ini dapat berjalan. Berikut ini adalah tahapan-tahapan konfigurasi penghubungan library OpenCV dengan IDE Microsoft Visual C++ 2008:

1. Penyertaan directory OpenCV

Dengan menambahkan path “$openCVDir\include\opencv” ke opsi include

files pada konfigurasi directory VC++: Tools\Options\Projects and Solutions\VC++ Directories.

(48)

Dengan menambahkan path “$openCVDir\lib” ke opsi library files pada konfigurasi directory VC++: Tools\Options\Projects and Solutions\VC++ Directories.

3. Penyertaan source files

Dengan menambahkan 4 path dibawah ini, ke opsi source files pada konfigurasi directory VC++: Tools\Options\Projects and Solutions\VC++ Directories.

a. $openCVDir\src\cv b. $openCVDir\src\cvaux c. $openCVDir\src\cxcore d. $openCVDir\src\highgui

4. Penyertaan library OpenCV pada proyek yang dirancang

Dengan menambahkan library-library files dibawah ini, kedalam linker input

properties dari project properties proyek yang dirancang: Project Properties\Configuration Properties\Linker Input.

a. cv210.lib b. cxcore210.lib

c. highgui210.lib

3.3.2 Antarmuka Sistem

Antarmuka sistem yang dirancang berupa command prompt dan frame video window yang terpisah, hal ini didasari karena keterbatasan dari library yang tidak mendukung manage code, yang menyebabkan terjadi error pada perancangan dengan antarmuka berbasis windows form application. Rancangan antarmuka pada command prompt terdiri dari:

- Keterangan cara penggunaan sistem pengenalan wajah, yang menjelaskan tentang bagaimana cara melakukan proses pelatihan citra wajah dan cara keluar dari program.

- Keterangan dari data wajah yang tersimpan didalam database.

(49)

Gambar 3.7. Prototype Antarmuka Command Prompt

Sedangkan rancangan pada frame video window terdiri dari:

- Tampilan citra yang ditangkap oleh webcam, dengan frame video windows

berukuran 320x240.

- Segmentasi wajah jika terdapat wajah pada citra yang ditangkap.

- Keterangan nama pemilik citra wajah pelatihan yang mirip dengan citra wajah pengujian.

(50)

41 4.1 Pengujian Antarmuka Sistem

Pada pengujian ini, dilakukan pengujian antarmuka sistem pengenalan wajah yang terdiri dari command prompt dan frame window.

Gambar 4.1. Tampilan Antarmuka Command Prompt

Gambar 4.1 menunjukan tampilan antarmuka command prompt yang berfungsi sebagai controller untuk melakukan proses training wajah dan proses

penghentian program, serta sebagai tempat yang menginformasikan proses yang sedang berlangsung pada sistem.

(51)

Gambar 4.2 menunjukan tampilan window frame yang berfungsi menampilkan video hasil tangkapan webcam. Dari window frame ini juga akan

ditampilkan wajah yang terdeteksi dan nama orang hasil proses pengenalan.

4.2 Pengujian Proses Deteksi Wajah

Pengujian ini dilakukan dengan mendeteksi ada tidaknya wajah dalam citra masukan yang di-input melalui webcam. Gambar 4.3 menunjukan bagaimana proses deteksi wajah bekerja.

Gambar 4.3. Pengujian Proses Deteksi Wajah

Tabel 4.1. Analisa Proses Deteksi Wajah

Kondisi Pengujian Wajah Terdeteksi Keterangan

Normal Ya

Kondisi terang, posisi wajah lurus terhadap

kamera

Kondisi Gelap Ya Posisi wajah lurus

terhadap kamera

Miring Tidak Kemiringan lebih dari

30º dari sumbu y

Terhalang Objek Tidak Bagian yang terhalangi

(52)

4.3 Pengujian Proses Pelatihan Citra Wajah

Selanjutnya, akan dilakukan pengujian proses pelatihan citra wajah dengan

cara memproses citra wajah dan menyimpannya ke dalam database, lalu mengekstraksi citra wajah menjadi karakteristik citra baru yang dinamakan

eigenface. Proses ini dimulai dengan penekanan diawali dengan penekanan

tombol ‘C’ pada keyboard, lalu program akan meminta masukan nama dari citra

wajah yang akan dilatih.

Gambar 4.4. Pengujian Proses Pelatihan Wajah

Dari Gambar 4.4 ditunjukan proses penyimpanan data citra kedalam

database, yang dimana database pada sistem ini berbentuk folder dengan kumpulan data citra wajah hasil penyelarasan. Data citra wajah tersebut disimpan dengan format n_(nama)m.pgm, dimana n adalah nomor wajah yang dilatih, nama adalah nama dari citra wajah dan m adalah nomor citra wajah yang dilatih. Gambar 4.5, menunjukan data citra wajah yang disimpan ke dalam database.

(53)

Setelah, citra wajah disimpan ke dalam database, citra-citra wajah tersebut direkam ke dalam file ‘train.txt’, yang berisikan daftar nomor orang yang dilatih,

nama wajah orang yang dilatih dan directory file citra wajah.

Gambar 4.6. Isi File train.txt

Gambar 4.6 menunjukan isi dari file train.txt, file ini nantinya akan digunakan dalam proses retrain untuk pelatihan ulang data baru yang ada dalam

database. Setelah, proses retrain dilakukan proses selanjutnya adalah proses ekstraksi citra wajah, yang menghasilkan data eigen yang akan digunakan pada proses pengenalan. Gambar 4.7 menunjukan hasil dari ekstraksi citra wajah yang telah dilakukan.

Gambar 4.7. Rata-Rata Citra (kiri) – Eigenface (kanan)

Data-data hasil ekstrasi PCA tersebut, akan disimpan ke dalam file

facedata.xml, yang berisi karakteristik dari suatu citra, seperti eigenvalue,

eigenvector, eigenface, dan lain-lain. Berikut ini adalah potongan isi file

(54)

<?xml version="1.0"?> <opencv_storage>

<nPersons>1</nPersons>

<personName_1>Krisna</personName_1> <nEigens>1</nEigens>

<nTrainFaces>2</nTrainFaces>

<trainPersonNumMat type_id="opencv-matrix">

<rows>1</rows> <cols>2</cols> <dt>i</dt> <data>

1 1</data></trainPersonNumMat> <eigenValMat type_id="opencv-matrix"> <rows>1</rows>

<cols>1</cols> <dt>f</dt> <data>

1.</data></eigenValMat>

<projectedTrainFaceMattype_id="opencv-matrix">

<rows>2</rows> <cols>1</cols> <dt>f</dt> <data>

003 -1.32703932e-003</data></projectedTrainFaceMat> <avgTrainImg type_id="opencv-image"> <width>120</width>

<height>90</height>

<origin>top-left</origin> <layout>interleaved</layout> <dt>f</dt>

<data>

2.95000000e+001 4.95000000e+001 3.75000000e+001 1.25000000e+001

1.25000000e+001 17. 0. 0. 1.25000000e+001 31. 25. 17. 26. 26. 1.35000000e+001 3.25000000e+001 1.25000000e+001

1.25000000e+001 0.

3.85000000e+001 3.85000000e+001 20. 2.25000000e+001 20. 1.25000000e+001 1.25000000e+001 17. 2.25000000e+001 31. 31. 4.95000000e+001 46. 53. 6.55000000e+001 5.45000000e+001 58. …

</data></avgTrainImg>

<eigenVect_0 type_id="opencv-image"> …

(55)

4.4 Pengujian Proses Pengenalan

Pengujian proses pengenalan wajah akan dilakukan dengan membandingkan

eigenface citra uji dengan eigenface citra latih yang telah disimpan dalam

database dengan menggunakan metode euclidean distance.

Gambar 4.8. Pengujian Pengenalan Wajah

Gambar 4.9. Keterangan Pengujian Pengenalan Wajah

4.5 Pengujian Sistem Secara Keseluruhan

Selanjutnya dilakukan pengujian sistem yang telah dibangun secara keseluruhan. Pengujian ini dilakukan dengan membandingkan citra uji dengan jumlah 5 sample citra wajah orang terhadap 5, 10 dan 20 sample citra wajah orang yang telah melalui proses pelatihan. Sample citra wajah orang yang digunakan

(56)

Tabel 4.2. 5 Sample Citra Latih

Nama Orang Data Citra Latih

Agung

Hery

Krisna

Azhar

Tri

(57)

Tabel 4.3. Pengujian Kondisi Normal Citra Uji Terhadap 5 Citra Latih

Nama Citra Uji Nama Hasil Pengenalan

Agung Agung

Tabel 4.4. Pengujian Kondisi Gelap Citra Uji Terhadap 5 Citra Latih

Nama Citra Uji Nama Hasil Pengenalan

Agung Agung

Tabel 4.5. Pengujian Kondisi Miring Citra Uji Terhadap 5 Citra Latih

Nama Citra Uji Nama Hasil Pengenalan

(58)

Tabel 4.6. 10 Sample Citra Latih

Nama Orang Data Citra Latih

Agung

Hery

Krisna

Azhar

Tri

Ida

Fahmi

Ratih

(59)

Cecep

Gambar 4.11. Eigenface 10 Orang Citra Latih

Tabel 4.7. Pengujian Kondisi Normal Citra Uji Terhadap 10 Citra Latih

Nama Citra Uji Nama Hasil Pengenalan

Agung Cecep

Hery Hery

Krisna Krisna

Azhar Hery

Tri Tri

(60)

Tabel 4.8. Pengujian Kondisi Gelap Citra Uji Terhadap 10 Citra Latih

Nama Citra Uji Nama Hasil Pengenalan

Agung Agung

Hery Hery

Krisna Azhar

Azhar Azhar

Tri Tri

Keakuratan = (4 / 5) x 100% = 80%

Tabel 4.9. Pengujian Kondisi Miring Citra Uji Terhadap 10 Citra Latih

Nama Citra Uji Nama Hasil Pengenalan

Agung Agung

Hery Hery

Krisna Ratih

Azhar Hery

Tri Tri

Keakuratan = (3 / 5) x 100% = 60%

Tabel 4.10.20 Sample Citra Latih

Nama Orang Data Citra Latih

Agung

Hery

Krisna

(61)

Tri

Ida

Fahmi

Ratih

Anton

Cecep

Astrid

Emi

Pema

(62)

Eko

Dody

Yoga

Roby

Iqbal

(63)
(64)

Tabel 4.11. Pengujian Kondisi Normal Citra Uji Terhadap 20 Citra Latih

Nama Citra Uji Nama Hasil Pengenalan

Agung Agung

Tabel 4.12. Pengujian Kondisi Gelap Citra Uji Terhadap 20 Citra Latih

Nama Citra Uji Nama Hasil Pengenalan

Agung Agung

Tabel 4.13. Pengujian Kondisi Miring Citra Uji Terhadap 20 Citra Latih

Nama Citra Uji Nama Hasil Pengenalan

Agung Agung

(65)

56 5.1 Kesimpulan

Merujuk pada data yang didapatkan pada bab pengujian dan analisa, dirumuskan kesimpulan sebagai berikut:

1. Sistem pengenalan wajah secara online berbasis algortima principal

component analysis (PCA) dapat berfungsi dengan baik, meskipun terdapat kekurangan pada sisi antarmuka yang agak sulit untuk digunakan.

2. Berdasarkan pada Tabel 4.13 dan Tabel 4.14, diketahui bahwa sistem ini memiliki tingkat keakuratan yang sangat baik dengan nilai keakuratan sebesar

100%.

3. Berdasarkan pada Tabel 4.7 dan Tabel 4.9, didapatkan nilai tingkat keakuratan sistem pengenalan wajah sebesar 60% yang menandakan bahwa sistem pengenalan wajah kurang bekerja dengan baik pada kondisi 5 citra uji dibandingkan dengan 10 citra latih.

4. Pada Gambar 4.13 diketahui bahwa, semakin banyak data citra yang dilatih tiap orang akan membuat sistem ini memiliki tingkat keakuratan yang lebih baik.

5.2 Saran

Saran yang dipertimbangkan untuk mengembangkan sistem ini lebih baik, adalah:

1. Untuk mendapatkan sistem pengenalan yang lebih akurat dan lebih baik dapat dilakukan dengan merancang sistem pengenalan wajah menggunakan kombinasi algoritma principal component analysis dengan algoritma image

(66)

2. Sistem pengenalan wajah berbasis principal component analysis ini dapat dikembangkan menjadi suatu aplikasi sistem keamanan atau sistem absensi yang menggunakan wajah sebagai objeknya.

(67)

58

[1] Anonim. (n.d.). Experimental and Obsolete Functionality Reference. Retrieved July 19, 2012, from Cognotics - Resource for Cognotive Robotics:

http://www.cognotics.com/opencv/docs/1.0/ref/opencvref_cvaux.htm

[2] Atalay, & Ilker. (1995). Face Recognition Using Eigenfaces.

[3] Bradski, G. (n.d.). Retrieved September 2011, from OpenCV: http://opencv.willowgarage.com/wiki/

[4] Bradsky, G., & Kaehler, A. (2008). Learning OpenCV. Sebastopol: O'Reilly Media, Inc.

[5] Chandra, D., Gaja, N. P., & Nugroho, L. A. (2011). Studi Pendeteksian Wajah Dengan Metode Viola Jones. 48-75.

[6] Garcia, E. (2006, July 17). Matrix Tutorial 3: Eigenvalues and

[8] Hewitt, R. (2007, May). How Face Detection Works. Retrieved June 2012, from Cognotics - Resource of Cognitive Robotics: http://www.cognotics.com/opencv/servo_2007_series/part_2/sidebar.html

[9] Hewitt, R. (2007, Februari). Seeing With OpenCV, Part 5: Implementing

Eigenface. Retrieved Januari 2012, from Cognotics - Resource for Cognitive Robotics:

http://www.cognotics.com/opencv/servo_2007_series/part_5/index.html

[10] Purnama, M. H., & Muntasa, A. (2010). Konsep Pengolahan Citra Digital

(68)

[11] Putra, D. (2010). Pengolahan Citra Digital. Yogyakarta: Penerbit Andi.

[12] Stroustrup, B. (1997). The C++ Programming Language 3rd Ed. Reading, Massachusetts: Addison-Wesley.

[13] Wahana Komputer. (2009). Shortcourse Series : Pemrograman Microsoft Visual C++. Yogyakarta: Penerbit Andi.

[14] Williams, P. X. (n.d.). How to Convert RGB to Grayscale. Retrieved

Agustus 4, 2012, from had to know:

(69)

Nama : Krisna Gunawan

Tempat, tanggal lahir : Bandung, 01 Oktober 1989

Jenis Kelamin : Laki-laki

Agama : Islam

Alamat : Jl. H.M. Mesri No. 34/6B Rt 03 Rw 06 Bandung 40171

No. telepon : 081321042023

Email : kr.gunawan@gmail.com

Pendidikan Formal

2007 – 2012 : Universitas Komputer Indonesia, Bandung.

Fakultas Teknik dan Ilmu Komputer, Jurusan Teknik Komputer.

2004 – 2007 : SMA Pasundan 3, Bandung. 2001 – 2004 : SMP Negeri 6, Bandung.

1994 – 2001 : SD Negeri Pasirkaliki 96/III, Bandung. 1993 – 1994 : TK Kenari, Bandung.

Pendidikan Non-Formal

Maret 2012 – April 2012 : Comlabs USDI-ITB, OpenSource Server and Networking.

Pengalaman Organisasi

Gambar

Gambar 2.16. Webcam Logitech C270
Gambar 2.17. Tampilan IDE Microsoft Visual C++2008
Gambar 2.19. Pembentukan Sub-Window 20x20
Gambar 2.20. Fitur Haar Pada Stage 0 – Tree 0
+7

Referensi

Dokumen terkait

tanpa menggunakan marker akan tetapi dengan menggunakan titik landmark pada setiap fitur-fitur wajah, yang nantinya dapat memberikan kontribusi pada bidang penelitian facial

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

tanpa menggunakan marker akan tetapi dengan menggunakan titik landmark pada setiap fitur-fitur wajah, yang nantinya dapat memberikan kontribusi pada bidang penelitian facial motion

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

Dalam rangka ekstraksi fitur untuk pengenalan wajah sebagai tujuan dalam penelitian ini, metode Principal Component Analysis (PCA) diusulkan, proses ektraksi

Penelitian ini menerapkan suatu metode yang dapat mempermudah dalam pembuatan animasi maupun game dengan melakukan deteksi fitur-fitur wajah untuk mendapatkan

Tidak dapat dipungkiri bahwa penambahan derau gaussian pada tahap preprocessing yang awalnya bertujuan untuk menguji keandalan sistem pengenalan wajah ini juga memiliki

Tujuan Penelitian ini adalah mengembangkan perangkat lunak pengenalan wajah dengan metode Principal Component Analysis sebagai ekstrasi fitur serta algoritma clustering