Prancangan Perangkat Lunak Pengenalan Wajah dengan Metode Eigenface

(1)

PERANCANGAN PERANGKAT LUNAK PENGENALAN WAJAH

DENGAN METODE EIGENFACE

SKRIPSI

MUHAMMAD SYUKUR HUTAGALUNG

071401078

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2014


(2)

PERANCANGAN PERANGKAT LUNAK PENGENALAN WAJAH

DENGAN METODE EIGENFACE

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar

Sarjana Komputer

MUHAMMAD SYUKUR HUTAGALUNG

0 7 1 4 0 1 0 7 8

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2014


(3)

PERSETUJUAN

Judul : PERANCANGAN PERANGKAT LUNAK

PENGENALAN WAJAH DENGAN METODE EIGENFACE

Kategori : SKRIPSI

Nama : MUHAMMAD SYUKUR HUTAGALUNG

Nomor Induk Mahasiswa : 071401078

Program Studi : SARJANA (S1) ILMU KOMPUTER

Departemen : ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI

(Fasilkom-TI) UNIVERSITAS SUMATERA

UTARA

Diluluskan di

Medan,28 Agustus 2014 Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Amer Sharif,S.Si,M.Kom M.Andri Budiman B,ST,McompSc,MEM NIP. 197510082008011011

Diketahui/Disetujui oleh

Departemen Ilmu Komputer Fasilkom-TI USU Ketua,

Dr. Poltak Sihombing, M.Kom NIP. 199203171991021001


(4)

PERNYATAAN

PERANCANGAN PERANGKAT LUNAK PENGENALAN WAJAH DENGAN METODE EIGENFACE

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, 28 Agustus 2014

MUHAMMAD SYUKUR HUTAGALUNG NIM. 071401078


(5)

PENGHARGAAN

Segala puji dan syukur kepada Allah SWT yang senantiasa melimpahkan rahmat dan karunia-Nya kepada penulis sehingga skripsi ini dapat selesai dalam waktu yang telah ditetapkan.

Skripsi ini merupakan salah satu syarat wajib diselesaikan guna meraih gelar sarjana komputer padajurusan S1 Ilmu Komputer Universitas Sumatera Utara. Adapun judul

yang diangkat penulis adalah “Prancangan perangkat lunak pengenalan wajah dengan metode eigenface”. Terima kasih penulis sampaikan kepada semua pihak yang telah membantu penulis dalam menyelesaikan skripsi ini baik secara langsung maupun tidak langsung. Dalam kesempatan ini penulis mengucapkan terima kasih yang sebesar-besarnya kepada :

1.Ketua Jurusan S1 Ilmu Komputer Bapak Dr. Poltak Sihombing, M.Kom.Bapak Muhammad Andri Budiman, ST, M.CompSc, MEM dan Bapak Amer Sharif,S.Si, M.Kom selaku pembimbing yang telah membimbing dan memberikan panduan dan penuh kepercayaan kepada penulis untuk menyelesaikan skripsi ini.

2. Dosen penguji Bapak Dr. Poltak Sihombing, M.Kom dan Bapak Drs. Marihat Situmorang,M.Kom yang telah memberikan panduan ringkas, padat dan profesional kepada penulis guna penyempurnaan skripsi ini.

3. Sekertaris Jurusan S1 Ilmu Komputer, Ibu Maya Silvi Lydia, B.Sc, M.Sc., Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi beserta para pegawai/staff S1 Ilmu Komputer.

4. Keluarga tercinta, kepada ayahanda dan ibunda tercinta, Drs.H.Maulana Hutagalung dan Hj.Murni Idawani Dalimunthe yang sangat luar biasa sabar,tidak henti-hentinya mendukung dan mendoakan penulis serta memberikan motivasi dan dukungan baik secara moril dan materil.

5. Sahabat yang selalu membantu dan menjadi teman diskusi penulis dalam menyelesaikan skripsi ini diantaranya Takdir tarigan,Eka Patma Rahmansyah S.Kom, Alpiriyandi S.Kom, ahmad syawqi ,yogi aditya putra,indra dongoran,subardi,reza affandi,ardinsyahputra,para anggota RCS dan Rekan-rekan mahasiswa Program Studi S1 Ilmu Komputer pada umumnya dan angkatan 2007 pada khususnya yang telah memberikan dukungan moril dalam penyusunan skripsi ini.

Penulis menyadari bahwa dalam penyelesaian skripsi ini masih jauh dari sempurna. Untuk itu, penulis sangat mengharapkan kritik dan saran guna penyempurnaan dimasa mendatang.


(6)

Akhirnya penulis berharap, semoga skripsi ini dapat bermanfaat bagi pribadi penulis, keluarga, masyarakat, organisasi dan negara.

Medan, 28 Agustus 2014 Penulis


(7)

ABSTRAK

Sistem pengenalan wajah adalah sistem berbasis komputer yang mampu mengenali karakteristik individu baik secara karakteristik fisiologi maupun karakteristik perilaku untuk mengenali atau mengidentifikasi suatu individu. Pengenalan wajah banyak dikembangkan karena memiliki tingkat kenyamanan dan penerimaan yang tinggi, serta merupakan bagian dari pengenalan pola dengan masukkan berupa citra wajah. Penelitian ini bertujuan untuk merancang sebuah sistem yang dapat mengenali sebuah wajah menggunakan metode eigenfaces. Data yang digunakan oleh sistem berupa foto close up dari bagian muka, dan foto inilah yang akan diinformasikan ke sistem untuk dikenali, sehingga apabila terdapat sebuah foto lain dari orang yang sama diinputkan ke sistem, maka secara otomatis sistem dapat mengenali orang tersebut. Metode penelitian yang akan dilakukan dengan menganalisa dan merancang sebuah program aplikasi untuk mensimulasikan kebenaran hipotesa. Pengujian sistem ini dilakukan dengan mencocokkan foto wajah yang diinputkan dengan foto wajah yang disimpan di database, sehingga sistem dapat mengidentifikasi foto wajah tersebut. KataKunci : Face Recognition, Image Processing, Eigenfaces, PCA, Eucledean


(8)

DESIGNING SOFTWARE OF FACE RECOGNITION WITH EIGENFACE METHOD

ABSTRACT

Face recognition system is a computer-based system capable of identifying both physical and behaviour characteristic of one individual. Face recognition has been widely developed because of its comfortability and high acceptance, and as part of pattern recognition with face visual as input. The purpose of this research is to design a system that will recognize faces using the Eigenfaces Method. Data used in the system is a full face close-up photograph. This photo will be inputted to the system to be recognized, so if there is another photo from the same person inputted to the system, it will automatically recognized. The method in this research will be conducted by analyzing and designing an application to simulate a hypothesis. The testing in this system will be done by matching the inputted face with the face stored in the database, then the system will be able to identify the face.

Keyword: Face Recognition, Image Processing, Eigenfaces, PCA, Eucledean Distance, Face Detection.


(9)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak v

Abstract vi

Daftar Isi vii

Daftar Tabel ix

Daftar Gambar x

Bab 1 Pendahuluan 1

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Batasan Masalah 2

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metode Penelitian 3

1.7 Sistematika Penulisan 4

Bab 2 Landasan Teori 6

2.1 Pengertian Citra 6

2.1.1 Pengolahan Citra 6

2.1.2 Mode Warna 7

2.1.3 Pengenalan Pola 8

2.1.4 SubsistemManajemenBasisModel 8

2.2 Eigenface 10

2.2.1 Perhitungan Eigenface 11

2.3 Principal Component Analysis (PCA) 13

2.4 Database 15

2.5 Microsoft Visual Studio 17

2.6 Bahasa Pemrograman C# 18

2.7 Webcam 18

2.8 Penelitian Relevan 20

Bab 3 Analisis dan Perancangan Sistem 21

3.1 Analisis Permasalahan 21

3.2 Analisis Proses Pengenalan Wajah 22

3.3 Flowchart Proses Pelatihan 25 3.4 Flowchart Proses Pengenalan 26 3.5 Data Flow Diagram (DFD) 27

3.5.1 Diagram Konteks / DFD Level 0 27


(10)

3.5.3 DFD Level 2 29

3.6 Perancangan Antarmuka (Interface) 32

3.6.1 Rancangan Tampilan Utama 32

3.6.2 Rancangan Tampilan Proses Pelatihan Wajah 33 3.6.3 Rancangan Tampilan Proses Pengenalan Wajah 35

Bab 4 Implementasi dan Pengujian 38

4.1 Implementasi Sistem 38

4.2 Pengujian Sistem 38

4.2.1 Tampilan Halaman Utama 38

4.2.2 Tampilan Proses Pelatihan Citra Wajah 40 4.2.3 Tampilan Proses Pengenalan Citra Wajah 43

Bab 5 Kesimpulan dan Saran 46

5.1 Kesimpulan 46

5.2 Saran 46


(11)

DAFTAR TABEL

No. Keterangan Hal.

3.1 Spesifikasi Proses Diagram Konteks / DFD Level 0 28

3.2 Spesifikasi Proses DFD Level 1 29

3.3 Spesifikasi Proses DFD Level 2 Proses Pelatihan Foto Wajah 30 3.4 Spesifikasi Proses DFD Level 2 Proses Pengenalan Foto Wajah 31


(12)

DAFTAR GAMBAR

No. Keterangan Hal.

2.1 Kombinasi Warna RGB 8

2.2 Citra Hasil Proses Eigenfaces 12

3.1 Flowchart Proses Pelatihan 25

3.2 Flowchart Proses Pengenalan 26

3.3 Diagram Konteks / DFD Level 0 27

3.4 DFD Level 1 28

3.5 DFD Level 2 Proses Pelatihan Foto Wajah 30

3.6 DFD Level 2 Proses Pengenalan Foto Wajah 31

3.7 Rancangan Tampilan Utama 33

3.8 Rancangan Tampilan Halaman Proses Pelatihan Wajah 34 3.9 Rancangan Tampilan Halaman Proses Pengenalan Wajah 36

4.1 Tampilan Halaman Utama 39

4.2 Menu Utama 39

4.3 Tampilan Menu Pilihan pada Menu Utama 40

4.4 Tampilan Halaman Menu Training Wajah 40

4.5 Tampilan Proses Pengambilan Wajah Orang 41

4.6 Tampilan Proses Pengisian Biodata 42

4.7 Tampilan Konfirmasi Awal Proses Training 42

4.8 Tampilan Konfirmasi Akhir Proses Training 43

4.9 Tampilan Halaman Proses Pengenalan Wajah 43

4.10 Tampilan Proses Pengambilan Wajah Orang 44


(13)

ABSTRAK

Sistem pengenalan wajah adalah sistem berbasis komputer yang mampu mengenali karakteristik individu baik secara karakteristik fisiologi maupun karakteristik perilaku untuk mengenali atau mengidentifikasi suatu individu. Pengenalan wajah banyak dikembangkan karena memiliki tingkat kenyamanan dan penerimaan yang tinggi, serta merupakan bagian dari pengenalan pola dengan masukkan berupa citra wajah. Penelitian ini bertujuan untuk merancang sebuah sistem yang dapat mengenali sebuah wajah menggunakan metode eigenfaces. Data yang digunakan oleh sistem berupa foto close up dari bagian muka, dan foto inilah yang akan diinformasikan ke sistem untuk dikenali, sehingga apabila terdapat sebuah foto lain dari orang yang sama diinputkan ke sistem, maka secara otomatis sistem dapat mengenali orang tersebut. Metode penelitian yang akan dilakukan dengan menganalisa dan merancang sebuah program aplikasi untuk mensimulasikan kebenaran hipotesa. Pengujian sistem ini dilakukan dengan mencocokkan foto wajah yang diinputkan dengan foto wajah yang disimpan di database, sehingga sistem dapat mengidentifikasi foto wajah tersebut. KataKunci : Face Recognition, Image Processing, Eigenfaces, PCA, Eucledean


(14)

DESIGNING SOFTWARE OF FACE RECOGNITION WITH EIGENFACE METHOD

ABSTRACT

Face recognition system is a computer-based system capable of identifying both physical and behaviour characteristic of one individual. Face recognition has been widely developed because of its comfortability and high acceptance, and as part of pattern recognition with face visual as input. The purpose of this research is to design a system that will recognize faces using the Eigenfaces Method. Data used in the system is a full face close-up photograph. This photo will be inputted to the system to be recognized, so if there is another photo from the same person inputted to the system, it will automatically recognized. The method in this research will be conducted by analyzing and designing an application to simulate a hypothesis. The testing in this system will be done by matching the inputted face with the face stored in the database, then the system will be able to identify the face.

Keyword: Face Recognition, Image Processing, Eigenfaces, PCA, Eucledean Distance, Face Detection.


(15)

BAB I

PENDAHULUAN

1.1.Latar Belakang

Dewasa ini kemajuan dunia teknologi berkembang sangat pesat dan berpengaruh hampir ke seluruh sisi kehidupan. Hal ini dapat kita lihat dengan penggunaan komputer yang sudah hampir menjadi sebuah bagian dari kehidupan harian kita. Semakin banyak muncul peralatan-peralatan terkomputerisasi maupun sistem yang bekerja dengan bantuan komputerisasi yang bertujuan untuk membantu meringankan tugas manusia. Perkembangan tersebut sangatlah membantu dalam menyajikan data dan informasi dengan cepat dan efisien.

Seiring perkembangan teknologi tersebut, dikembangkan pula suatu teknologi yang mampu mengenali seseorang berdasarkan pola wajah. Sistem pengenalan wajah adalah salah satu bagian dari pengolahan citra yang mengidentifikasi individu berdasarkan data yang diinputkan berupa karakteristik fisiologis maupun karakteristik perilaku. Pengetahuan tersebut berdasarkan data yang diinputkan ke dalam database sehingga setiap orang yang diidentifikasi melalui sistem dapat diketahui datanya.

Permasalahan pengaruh dari data yang akan dimasukkan membuat pemilihan

facedetection yang bagus akan diharapkan meningkatkan keberhasilan penggunaan metode eigenfaces. Pemrosesan informasi terbukti lebih cepat daripada memproses

feature dari muka jika dihadapkan pada videosequences. Untuk itu, pendeteksian wajah menggunakan colorthresholding. Deteksi wajah ini sendiri merupakan sistem pencarian wajah pada suatu citra. Jadi, jika eigenfaces ini mendapatkan data input yang benar-benar muka maka diharapkan akan didapatkan suatu sistem pengenalan wajah yang lebih baik.


(16)

Cara kerja dari colorthresholding, dimana citra akan dibedakan berdasarkan threshold

tertentu dari warna. Cara ini akan digunakan karena waktu yang diperlukan untuk prosesrelatif singkat. Karena permasalahan luasnya batas threshold jika harus mengenali orang yang berwarna kulit beragam, maka ditentukan untuk membatasi warna kulit ini menjadi dalam kelompok orang asia, agar warna kulitnya di dalam batas nilai intensitas yang tidak terlalu tinggi dan rendah.

Salah satu implementasi yang diterapkan sistem pengenalan wajah ini, dalam bidang keamanan yaitu untuk sistem keamanan gedung, dimana orang yang dapat mengakses gedung tersebut merupakan orang-orang tertentu saja, terlebih mengingat keamanan dan keselamatan suatu gedung saat ini merupakan kebutuhan pengguna gedung yang menginginkan privasi dan rentan terhadap penjahat. Oleh karena itu dibangun suatu sistem yang dapat membantu pengenalan wajah agar dapat mengetahui data dari orang yang fotonya diinputkan ke sistem, sehingga meminimumkan timbulnya kesalahan dalam pengenalan seseorang, dengan menggunakan metode eigenfaces.

1.2.Rumusan Masalah

Berdasarkan uraian pada latar belakang masalah di atas, maka dapat dirumuskan masalah yang dihadapi penulis dalam pembuatan tugas akhir ini adalah bagaimana merancang sistem pengenalan wajah untuk mengidentifikasi data foto yang diinputkan apakah dapat dikenali oleh sistem atau tidak.

1.3.Batasan Masalah

Batasan-batasan masalah yang digunakan dalam tugas akhir ini, adalah:

a. Pembangunan sistem pakar ini menggunakan metode eigenface dari data penunjang yang sesuai untuk mengatasi masalah diagnosis.

b. Komputer yang akan digunakan memakai sistem operasi Windows XP Service Pack 2.

c. Perekaman wajah dengan menggunakan webcam yang ber-resolusi minimal 1.3 mega pixel.


(17)

d. Foto wajah pembanding disimpan dalam bentuk file yang ber-format .jpg dengan resolusi warna grayscale.

e. Data pemilik wajah disimpan dalam database.

f. Aplikasi yang akan dibangun dengan menggunakan Framework Visual Studio 2010 bahasa pemrograman C#.

g. Penyimpanan data penunjang menggunakan SQL Server 2005.

1.4. Tujuan Penelitian

Tujuandari penelitian ini adalah untuk merancang suatu sistem pengenalan wajah dengan menggunakan webcam.

1.5. Manfaat Penelitian

Manfaat dari penelitian ini adalah untuk mempermudah dan mempercepat mendapatkan hasil pengenalan wajah seseorang yang sedang dicari.

1.6. Metodologi Penelitian

Dalam penelitian ini, tahapan-tahapan yang akan dilalui adalah sebagai berikut: a. Studi Literatur

Pengerjaan skripsi ini dimulai dengan mengumpulkan data yang diperlukan menggunakan metode Library Research. Penulis mengumpulkan data sebagai referensi baik dari buku, paper, jurnal, makalah, forum, milis, dan sumber-sumber lain yang berkaitan dan beberapa referensi lainnya untuk menunjang pencapaian penelitian ini.

b. Observasi

Metode ini dilakukan dengan melakukan pengamatan terhadap sistem pengenalan wajah yang sudah ada.

c. Analisis

Pada tahap ini, dilakukan analisis permasalahan yang ada, batasan yang dimiliki dan kebutuhan yang diperlukan untuk arsitektur hardware dan software.


(18)

d. Perancangan dan Implementasi Algoritma

Pada tahap ini akan dilakukan perancangan aplikasi dan implementasi hasil analisis dalam bentuk hardware dan software.

1.7. Sistematika Penulisan

Agar penulisan menjadi lebih terstruktur, maka penulisan ini dibagi menjadi lima bab, antara lain sebagai berikut:

BAB 1 :Pendahuluan

Pada bab ini penulis menguraikan latar belakang, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan sistematika penulisan.

BAB 2 :Landasan Teori

Pada bab ini penulis menguraikan tentang dasar - dasar teoritis pencitraan, metode eigenface untuk melandasi pemecahan masalah dan teori-teori sehubungan dengan pendeteksi wajah serta teknologi yang digunakan dalam pembuatan tugas akhir ini.

BAB 3 : Pembahasan Dan Perancangan

Pada bab ini penulis menguraikan tentang analisis masalah yang akan dibangun pada sistem pengenalan wajah ini, dan menganalisis apa saja kebutuhan sistem yang akan dibangun kemudian tahapan selanjutnya adalah melakukan perancangan sistem yakni dengan membuat Data Flow Diagram

(DFD) atau Diagram Aliran Data (DAD), Flowchart, basis data pengetahuan dan merancang antarmuka sistem.

BAB 4 : Implementasi Dan Pengujian Sistem

Pada bab ini penulis menyajikan tentang implementasi sistem berdasarkan tahapan perancangan dengan menggunakan metode eigenface dengan


(19)

serta tahapan pengujian sistem untuk melihat apakah sistem sudah berjalan sesuai perancangan atau tidak.

BAB 5 : Kesimpulan Dan Saran

Bab ini berisi mengenai kesimpulan yang diperoleh selama penulisan dan saran yang diberikan untuk pengembangan lebih lanjut.


(20)

BAB II

TINJAUAN PUSTAKA

2.1. Pengertian Citra

Citra adalah gambar dua dimensi yang dihasilkan dari gambar analog dua dimensi yang kontiniu menjadi gambar diskrit melalui proses sampling. Citra digital dapat didefinisikan sebagai fungsi dua variabel, f(x,y), dimana x dan y adalah koordinat spasial sedangkan nilai f(x,y) adalah intensitas citra pada koordinat tersebut, hal tersebut diilustrasikan pada gambar di bawah ini. Teknologi dasar untuk menciptakan dan menampilkan warna pada citra digital berdasarkan pada penelitian bahwa sebuah warna merupakan kombinasi dari tiga warna dasar, yaitu merah, hijau, dan biru (Red, Green, Blue - RGB) [6].

Citra digital merupakan citra yang diambil berdasarkan sampling dan kuantitas tertentu sehingga citra digital ini terbentuk dari piksel-piksel yang besarnya tergantung pada besar kecilnya sampling dan nilainya (besarnya derajat keabuan) tergantung pada kuantitas. Berdasarkan pengertian ini maka model citra digital dinyatakan dalam bentuk matriks yang nilainya berupa nilai derajat keabuan. Model ini menyatakan model dari citra grayscale yaitu citra yang terdiri dari derajat keabuan tertentu [3].

2.1.1. Pengolahan Citra

Pengolahan citra merupakan bidang studi yang mempelajari proses pengolahan gambar dimana baik masukan maupun keluarannya berbentuk berkas citra digital [2]. Pengolahan citra merupakan pengolahan dan analisis citra yang banyak melibatkan persepsi visual [2].


(21)

Kebutuhan untuk memproses sebuah gambar dengan cepat dalam satu aplikasi yang melakukan pengolahan citra adalah salah satu masalah utamanya seperti yang dikemukakan oleh Chen, “Walau bagaimanapun, aplikasi yang bekerja secara

realtime lebih bergantung pada pemrosesan piksel / signal yang cepat daripada metode optimisasi lain yang rumit dan memakan waktu” [4].

2.1.2. Mode Warna

Menampilkan sebuah citra pada layar monitor diperlukan lebih dari sekedar informasi tentang letak dari pixel-pixel pembentuk citra. Untuk memperoleh gambar yang tepat dibutuhkan juga informasi tentang warna yang dipakai untuk menggambarkan sebuah citra digital. Beberapa mode warna yang sering digunakan adalah:

1. Bitmap mode memerlukan 1 bit data untuk menampilkan warna dan warna yang dapat ditampilkan hanya warna hitam dan putih (monochrome).

2. Indexed Color Mode, mengurutkan warna dalam jangkauan 0-255 (8 bit). 3. Grayscale Mode, menampilkan citra dalam 256 tingkat keabuan.

4. RGB Mode, menampilkan citra dalam kombinasi 3 warna dasar (Red, Green, Blue) tiap warna dasar memiliki intensitas warna 0-255 (8 bit).

5. CMYK Mode, menampilkan citra dalam kombinasi 4 warna dasar (cyan, magenta,

yellow, black) tiap warna dasar memiliki intensitas warna 0-255 (8 bit).

Mode warna RGB menghasilkan warna menggunakan kombinasi dari tiga warna primer merah, hijau, biru. RGB adalah model warna penambahan, yang berarti bahwa warna primer dikombinasikan pada jumlah tertentu untuk menghasilkan warna yang diinginkan. RGB dimulai dengan warna hitam (ketiadaan semua warna) dan menambahkan merah, hijau, biru terang untuk membuat putih. Kuning diproduksi dengan mencampurkan merah, hijau; warna cyan dengan mencampurkan hijau dan biru; warna magenta dari kombinasi merah dan biru. Monitor komputer dan televisi memakai RGB. Sorotan electron menghasilkan sinyal merah, hijau, biru yang dikombinasikan untuk menghasilkan berbagai warna yang dilihat pada layar. Kombinasi warna RGB dapat dilihat pada Gambar 2.1.


(22)

Gambar 2.1 Kombinasi Warna RGB

Warna campuran (selain dari putih) dihasilkan dengan menambahkan warna komponen RGB individual dengan berbagai tingkat saturasi, dengan tingkatan mulai dari 0.0 hingga 1.0 (0 berarti tidak menggunakan warna tersebut; 1 berarti menggunakan warna tersebut pada saturasi penuh)[6].

2.1.3. Pengenalan Pola

Pengenalan pola adalah suatu proses analisis gambar, dimana masukkan berupa sebuah citra dan hasil keluarannya berupa sebuah deskripsi citra tersebut. Proses ini bertujuan untuk mengekstrak informasi yang disampaikan oleh citra. Pada pengenalan pola dibutuhkan obyek citra untuk diidentifikasikan. Hasil dari pengenalan pola ini akan berupa kelas yang merupakan kelompok dari klasifikasinya [2].

FeatureExtraction adalah proses mengambil informasi yang relevan, berhubungan dengan klasifikasi data input dengan bantuan suatu alat. Biasanya

feature extraction dilakukan dengan bantuan piranti lunak. Pemrosesan ini akan mengubah pola data mentah dari gambar menjadi sebuah vector ciri. Penggunaaannya akan mengurangi data yang berulang dalam sebuah pola gambar. Teknik feature extraction ini digunakan dalam proses, salah satunya face detection [9].

2.1.4. Pengenalan Wajah

Menurut Waring, usaha untuk mendeteksi muka membutuhkan fungsi diskriminasi efektif yang membedakan antara pola muka dan bukan muka [10]. Pendekatan dalam face detection ini dibagi menjadi 4 kategori, yaitu:


(23)

1. Metode berdasar pengetahuan

Metode ini mencoba menggambarkan semua pola dari wajah dengan menggunakan aturan syarat wajah manusia, seperti sebuah wajah memiliki 2 buah mata dan sebuah mulut.

2. Metode berdasar template

Metode ini merepresentasikan wajah dengan template yang diubah-ubah berdasarkan pada poin-poin fitur wajah. Akan tetapi poin-poin tersebut bisa menjadi rusak oleh pencahayaan, posisi wajah, tambahan benda pada wajah, atau perubahan expresi bias saja gagal ditemukan. Namun jika batas anterlalu longgar, akan terjadi kesalahan deteksi.

3. Metode fitur yang serupa

Metode ini sulit digunakan untuk mendeteksi wajah dalam citra nyata karena adalah sulit untuk menemukan suatu fitur yang benar-benar serupa dengan adanya variasi pencahayaan, posisi, dan ekspresi wajah. Untuk mengatasi kesulitan tersebut, metode berdasar penampilan memberikan keuntungan dan banyak digunakan dalam pendeteksian wajah. Karena kemampuannya untuk belajar dari data hasil training, banyaknya variasi, ekspresi, dan posisi bisa digantikan dengan training menggunakan data awal yang banyak.

4. Metode berdasar tampilan

Metode ini menggunakan spectralhistogram sebagai sebuah representasi dan dukungan mesin vektor sebagi pemilahnya. Spectralhistogram mengeneralisasi dengan cara hanya mengelompokan citra yang mirip secara persepsi. Dan dengan dukungan mesin vektor, memberikan sebuah fungsi yang memisahkan antara citra wajah dengan citra selain wajah, walaupun didalam berbagai macam kondisi yang berbeda.


(24)

Proses pengenalan wajah secara umum adalah terdiri dari:

a. Acquisition module, merupakan blok input dari proses pengenalan wajah, sumbernya dapat berasal dari kamera ataupun file citra.

b. Pre-processing module, merupakan proses penyesuaian citra input yang meliputi, normalisasi ukuran citra, histogram equalization untuk memperbaiki kualitas citra input agar memudahkan proses pengenalan tanpa menghilangkan informasi utamanya, median filtering untuk menghilangkan noise akibat kamera atau pergeseran frame, high pass filtering untuk menunjukkan bagian tepi dari citra, background removal untuk menghilangkan background sehingga hanya bagian wajah saja yang diproses dan normalisasi pencahayaan ketika mengambil citra input. Bagian pre-processing ini untuk menghilangkan masalah yang akan timbul pada proses pengenalan wajah seperti yang dijelaskan sebelumnya.

c. Feature Extraction module, digunakan untuk mengutip bagian terpenting sebagai suatu vektor yang merepresentasikan wajah dan bersifat unik.

d. Classification module, pada modul ini, dengan bantuan pemisahan pola, fitur wajah yang dibandingkan dengan fitur yang telah tersimpan di database sehingga dapat diketahui apakah citra wajah tersebut dikenali.

e. Training set, modul ini digunakan selama proses pembelajaran proses pengenalan, semakin kompleks dan sering, proses pengenalan wajah akan semakin baik.

f. Database, berisi kumpulan citra wajah.

2.2. Eigenface

Ide utama dari eigenface ini didapat dengan mengambil informasi yang terdapat pada citra muka, lalu memasukkan ke dalam perhitungan matematika yang mudah dan membandingkannya dengan masing-masing muka dari muka yang diketahui yang diproses dengan perhitungan yang sama. Jika didapatkan hasil yang sama, maka dapat disimpulkan bahwa citra yang diinputkan berupa muka dan diketahui.

Proses yang dilakukan oleh perhitungan eigenface ini menggunakan teknik PCA. Hasil yang diperoleh dari PCA ini berupa vektor eigen. Vektor eigen

selanjutnya diurutkan dari besar sampai ke kecil. Gunanya untuk mendapatkan nilai vektor yang paling menonjolkan cirinya. Dari nilai vektor ini selanjutnya akan bisa


(25)

didapatkan nilai eigenface dengan mengalikan nilai vector yang sudah didapat dari PCA dengan nilai awal citra yang belum diproses PCA [7].

Vektor eigenface yang didapat akan mewakili wajah yang paling menggambarkan subyek. Seperti yang dituliskan di atas, nilai yang dihitung dengan rumus yang sama akan mempunyai nilai yang sama dengan nilai yang mempunyai rumus yang sama juga. Karena itu, untuk melakukan pengenalan, nilai vektor input yang mengandung data citra, akan diproses dengan menggunakan langkah yang sama, tetapi pada pengenalan ini tidak akan dilakukan perhitungan nilai eigenvektor baru. Tetapi cukup dengan mencerminkan data input baru terhadap nilai rata-rata citra dan hasilnya dikalikan dengan nilai vektor eigen yang didapat dari proses pelatihan.

Eigenvector dari suatu transformasi adalah vektor-vektor yang tidak mengalami perubahan sedang eigenvalue dari suatu eigenvector adalah scale factor

dimana eigenvector dikalikan. Eigenvector juga dinyatakan sebagai karakteristik wajah oleh karena itu metoda ini disebut dengan eigenface. Setiap wajah direpresentasikan dalam kombinasi linear eigenface. Kirbi dan Sirovich mengembangkan suatu teknik yang menunjukan wajah menggunakan analisis komponen, teknik tersebut menghitung koordinat sistem wajah yang disebut dengan

eigenpicture [1].

Hasil yang didapat dari perhitungan proses pengenalan, selanjutnya akan dibandingkan dengan masing-masing nilai eigenfaces yang paling mencerminkan citra. Hasil perbedaan nilai yang paling kecil ini merupakan citra yang paling mewakili citra yang diinputkan.

2.2.1. Perhitungan Eigenface

Perhitungan eigenface citra adalah sebagai berikut: a. Mengisi variabel S dengan seluruh citra wajah input.

b. Setiap citra ditranformasikan ke dalam vektor dengan ukuran N . c. Tentukan nilai tengah atau mean.


(26)

d. Kemudian tentukan selisih antara citra input dengan citra mean.

e. Selanjutnya vektor orthonormal M, un, yang menunjukkan distribusi data. Vektor ke-k, uk: bernilai maksimum terhadap uk dan ul adalah eigenvector dan

eigenvalue.

f. Nilai matriks C akan diperoleh.

g. Kemudian tentukan eigenvector, v1, u1.

Proses Perhitungan eigenface-nya adalah:

a. Citra wajah baru yang akan ditransformasikan menjadi komponen eigenface, dibandingkan dengan citra input yang telah diubah manjadi bentuk mean kemudian dikalikan dengan eigenvector.

b. Kemudian tentukan euclidean distance yang merepresentasikan citra wajah tersebut.

Gambar 2.2 Citra Hasil Proses Eigenfaces.

Keterangan : 1. Start


(27)

2. Ambil citra input X (*.jpg) yang akan dikenali dari database 3. Tentukan nilai mean berikut eigenvalue dari setiap citra

4. Ambil sebuah citra (*.jpg) yang akan dicocokkan dengan citra input dari database 5. Tentukan nilai mean dan eigenvaluenya

6. Apakah eigenvalue dari citra random sama dengan citra input 7. Jika belum sama, maka ulangi lagi langkah ke-4

8. Jika sama, maka tampilkan ke dua citra. 9. Proses selesai.

2.3. Principal Component Analysis (PCA)

Metode Principal Component Analysis (PCA) dibuat pertama kali oleh para ahli statistik dan ditemukan oleh Karl Pearson pada tahun l90l yang memakainya pada bidang biologi. Kemudian tidak ada perkembangan baru pada teknik ini, dan. perkembangannya baru mulai pesat pada akhir tahun l930 dan awal 1940. Setelah itu perkembangannya berkurang sebentar sampai komputer telah berhasil didesain sehingga dapat mengaplikasikan teknik ini pada masalah-masalah yang masuk akal. Pada tahun 1947 teori ini muncul lagi dan cukup independen sebagai teori probabilitas yang ditemukan oleh Karhunen, dan kemudian dikembangkan oleh Loeve pada tahun l963, sehingga teori ini juga dinamakan Karhunen-Loeve transform pada bidang ilmu telekomunikasi.

PCA adalah sebuah transformasi linier yang biasa digunakan pada kompresi data. PCA adalah sebuah teknik statistika yang berguna pada bidang pengenalan, klasifikasi dan kompresi data citra. PCA juga merupakan teknik yang umum digunakan untuk menarik fitur-fitur dari data pada sebuah skala berdimensi tinggi. Dengan cara mentransformasikan citra ke dalam eigenfaces secara linier, proyeksikan citra ke dalam bentuk skala berdimensi n, yang menampakkan properti dari sampel yang paling jelas sepanjang koordinat.

Fitur yang paling signifikan yang ada pada citra akan menjadi principal component yang akan digunakan untuk pengolahan selanjutnya. Dalam prosesnya


(28)

eigenvector dan nilai-nilai yang disebut dengan eigenvalue untuk mendapatkan fitur yang paling signifikan pada dataset. Principal component dicari dengan hubungan:

AC = λC

di mana A adalah matriks yang akan dicari principal component-nya, C adalah

principal component atau disebut dengan eigenvector dan λ adalah eigenvalue. Andaikan A adalah sebuah matriks berdimensi n x n, eigenvalue dari matriks A diperoleh dengan hubungan:

det(A-λI) = 0

di mana I adalah matriks identitas dari A dan λ adalah eigenvalue dari matriks A.

Mencari nilai eigenvector dapat dicari dengan memecahkan (A- λI) v = 0, dalam beberapa kasus dapat dijumpai suatu matriks tanpa eigenvalues di mana karakteristik polinomial-nya adalah λ2 + 1 sehingga eigenvalue-nya adalah bilangan bilangan kompleks i, -i. Eigenvalue juga tidak riil. Sebagai contoh diberi matrik citra A= , polinomial karakteristiknya dapat dicari sebagai berikut:

Ini adalah persamaan kuadrat dengan akarnya λ1 = 2 dan λ2 = 3. Substitusikan λ2 = 3 ke dalam persamaan. Misalnya Y0 adalah Eigenvector yang berasosiasi dengan

Eigenvalue λ2 = 3. Set Y0 dengan nilai:

Substitusikan Y0 dengan v pada persamaan:

dapat disederhanakan lagi menjadi Y0 = -X0 Sehingga Eigenvector untuk Eigenvalue = 3 adalah


(29)

2.4 Database

Database terdiri dari dua kata, yaitu base dan data. Base berarti markas atau gudang, tempat bersarang atau berkumpul. Sedang data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia pegawai, siswa, guru, pelanggan, barang, hewan, peristiwa, konsep, keadaan, dan sebagainya yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi, atau kombinasinya [8].

Database dapat didefinisikan berdasarkan sejumlah sudut pandang yaitu sebagai berikut:

1. Himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah. 2. Kumpulan data yang saling berhubungan yang disimpan secara bersama

sedemikian rupa dan tanpa pengulangan (Redudance) yang tidak perlu, untuk memenuhi berbagai kebutuhan.

3. Kumpulan file/tabel/arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronis.

Database dan lemari arsip sesungguhnya memiliki prinsip kerja dan tujuan yang sama. Prinsip utamanya adalah pengaturan data/arsip. Dan tujuan utamanya adalah kemudahan dan kecepatan dalam mengambil kembali data/arsip. Perbedaannya hanya terdapat pada media penyimpanan yang digunakan. Jika lemari arsip menggunakan lemari dari besi atau kayu sebagai media penyimpanan, maka basis data menggunakan media penyimpanan elektronis seperti disk (disket atau harddisk). Hal ini merupakan konsekuensi yang logis, karena lemari arsip langsung dikelola/ditangani manusia, sementara basis data dikelola/ditangani melalui perantaraan alat/mesin pintar elektronik (yang kita kenal sebagai komputer).

Istilah-istilah yang biasa dipergunakan dalam sistem database adalah sebagai berikut:


(30)

Entitas adalah suatu bentuk organisasi, seperti: Restoran maupun Pegawai. Data yang disimpan di dalam basis data merupakan data operasional suatu enterprise. Contoh data operasional adalah:

Data Restoran Kode, NamaRestoran, Alamat Data Pegawai NIP, NamaPegawai, JKPegawai

Data MenuMakanan KodeMenu, NamaMenu, Harga.

2. Entitas (entity)

Entitas adalah suatu obyek yang dapat dibedakan dengan obyek lainnya yang dapat diwujudkan di dalam basis data.

Contoh:

a. Entitas di lingkungan Restoran (Pegawai, Menu Makanan, Gaji). b. Entitas di lingkungan Kantor (Pegawai, Gaji Pegawai, Tamu).

c. Kumpulan entitas disebut himpunan entitas. Contoh: Restoran merupakan kumpulan entitas pegawai dan tamu.

3. Attribute/field, karakteristik entitas tertentu.

Contoh:

Entity Menu Makanan  atributnya adalah Kode, NmMenu, Harga Entity Pegawai  atributnya adalah NIP, NamaPegawai, JKPegawai

4. Data Value (nilai atau isi data), merupakan data aktual atau informasi yang disimpan di tiap data elemen atau atribut. Isi atribut disebut nilai data.

Contoh:

Atribut NmSiswa  Sutrisno, Budiman.

5. Record/Tuple, kumpulan isi elemen data atribut yang saling berhubungan menginformasikan tentang suatu entity secara lengkap.

Contoh: kumpulan atribut NIP, NamaPegawai, JKPegawai berisikan “04345698”,


(31)

6. File, kumpulan record sejenis yang mempunyai panjang elemen dan atribut yang sama, namun berbeda-beda valuenya.

7. Kunci elemen data, sebagai tanda pengenal yang secara unik mengidentifikasi entitas dari suatu kumpulan entitas.

Contoh: Entitas Pegawai mempunyai atribut-atribut NIP, NamaPegawai, JKPegawai, menggunakan NIP sebagai kunci elemen data.

Database Management System (DBMS) kemudian yang saling berkaitan bersama dengan program untuk pengelolanya. Database dapat terdiri dari ratusan field

yang dibutuhkan untuk informasi dan dapat diakses/dipakai secara bersama-sama oleh lebih dari beberapa ratus pemakai (user). Karena database dipergunakan secara bersama-sama, mungkin dalam waktu yang bersamaan, maka diperlukan suatu pengontrol dan pengelola data yang ada di dalamnya.

Pengontrol ini dilakukan oleh DBMS (Database Management System) yang merupakan kumpulan software yang mengkoordinasikan semua kegiatan yang berhubungan dengan basis data agar data dapat diakses/dipakai oleh pengguna. Tujuannya adalah efisiensi dan kenyamanan dalam memperoleh dan menyimpan informasi di dalam database.

2.5. Microsoft Visual Studio

Microsoft Visual Studio merupakan sebuah perangkat lunak lengkap (suite) yang dapat digunakan untuk melakukan pengembangan aplikasi, baik itu aplikasi bisnis, aplikasi personal, ataupun komponen aplikasinya, dalam bentuk aplikasi console, aplikasi Windows, ataupun aplikasi Web. Visual Studio mencakup kompiler, SDK,

Integrated Development Environment (IDE), dan dokumentasi (umumnya berupa MSDN Library). Kompiler yang dimasukkan ke dalam paket Visual Studio antara lain Visual C++, Visual C#, Visual Basic, Visual Basic .NET, Visual InterDev,Visual J++, Visual J#, Visual FoxPro, dan Visual SourceSafe.


(32)

Microsoft Visual Studio dapat digunakan untuk mengembangkan aplikasi dalam native code (dalam bentuk bahasa mesin yang berjalan di atas Windows) ataupun managed code (dalam bentukMicrosoft Intermediate Language di atas .NET Framework). Selain itu, Visual Studio juga dapat digunakan untuk mengembangkan aplikasi Silverlight, aplikasi Windows Mobile (yang berjalan di atas .NET Compact Framework).

2.6. Bahasa Pemograman C#

C# adalah bahasa pemrograman baru yang diciptakan oleh Microsoft yang dikembangkan dibawah kepemimpinan Anders Hejlsberg yang telah menciptakan berbagai macam bahasa pemrograman termasuk Borland Turbo C++ dan orland Delphi. Bahasa C# juga telah di standarisasi secara internasional oleh ECMA. Seperti halnya bahasa pemrograman yang lain, C# bisa digunakan untuk membangun berbagai macam jenis aplikasi, seperti aplikasi berbasis windows (desktop) dan aplikasi berbasis web serta aplikasi berbasis web services.

2.7. Webcam

Webcam (singkatan dari web camera) adalah sebuah kamera video digital kecil yang dihubungkan ke komputer melalui (biasanya) port USB ataupun port COM. Ada berbagai macam merek webcam, di antaranya LogiTech, Itech, SunFlowwer dan sebagainya. Webcam biasanya ber-resolusi sebesar 352 x 288 / 640 x 480 piksel, namun ada yang kualitasnya hingga 1 megapiksel. Sekarang hampir semua kamera digital dan telepon genggam bisa dijadikan sebagai kamera web (webcam).

Istilah webcam merujuk pada teknologi secara umumnya, sehingga kata web

terkadang diganti dengan kata lain yang mendeskripsikan pemandangan yang ditampilkan di kamera, misalnya StreetCam yang memperlihatkan pemandangan jalan, Metrocam yang memperlihatkan pemandangan panorama kota dan pedesaan,

TraffiCam yang digunakan untuk memonitor keadaan jalan raya, cuaca dengan


(33)

Kabel support yang dibuat dari bahan yang fleksibel, salah satu ujungnya dihubungkan dengan papan sirkuit (PCB) dan ujung satu lagi memiliki konektor. Kabel ini dikontrol untuk menyesuaikan ketinggian, arah dan sudut pandang web camera. Sebuah webcam biasanya dilengkapi dengan software, software ini mengambil gambar-gambar dari kamera digital secara terus menerus ataupun dalam interval waktu tertentu dan menyiarkannya melalui koneksi internet. Ada beberapa metode penyiaran dan yang paling umum adalah software mengubah gambar ke dalam bentuk file JPEG dan meng-upload-nya ke web server menggunakan File Transfer Protocol (FTP).

Frame rate mengindikasikan jumlah gambar sebuah software dapat ambil dan transfer dalam satu detik. Untuk streaming video, dibutuhkan minimal 15 frame per second (fps) atau idealnya 30 fps. Untuk mendapatkan frame rate yang tinggi, dibutuhkan koneksi internet yang tinggi kecepatannya. Sebuah webcam tidak harus selalu terhubung dengan komputer, ada webcam yang memiliki software webcam dan

web server bulit-in, sehingga yang diperlukan hanyalah koneksi internet, webcam ini

dinamakan “network camera”.

Penggunaan webcam mencakup video conferencing, internet dating, video messaging, home monitoring, images sharing, video interview, video phone-call, dan banyak hal lain. Kamera untuk video conference biasanya berbentuk kamera kecil yang terhubung langsung dengan komputer. Kamera analog juga terkadang digunakan, kamera ini terhubung dengan video capture card dan tersambung dengan internet (baik langsung maupun tidak langsung). Saat ini kamera untuk video conference sudah makin maju, sudah ada webcam yang di dalamnya terdapat

microphone maupun noise cancellation untuk memfokuskan audio ke speaker yang terletak di depan kamera sehingga noise yang ada tidak mengganggu jalannya konferensi.

Webcam memiliki fitur-fitur dan setting yang bermacam-macam, di antaranya adalah:

1. Motion sensing, webcam akan mengambil gambar ketika kamera mendeteksi gerakan.


(34)

2. Image archiving, pengguna dapat membuat sebuah archive yang menyimpan semua gambar dari webcam atau hanya gambar-gambar tertentu saat interval pre-set.

3. Video messaging, beberapa program messaging mendukung fitur ini.

4. Advanced connections, menyambungkan perangkat home theater ke webcam

dengan kabel maupun nirkabel.

5. Automotion, kamera robotik yang memungkinkan pengambilan gambar secara pan

atau tilt dan setting program pengambilan frame berdasarkan posisi kamera. 6. Streaming media, aplikasi profesional, setup webcam dapat menggunakan

kompresi MPEG4 untuk mendapatkan streaming audio dan video yang sesungguhnya.

7. Custom coding, mengimpor kode komputer pengguna untuk memberitahu webcam apa yang harus dilakukan (misalnya automatically refresh).

8. AutoCam, memungkinkan pengguna membuat webpage untuk webcam-nya secara gratis di server perusahaan pembuat webcam.

2.8. Penelitian Relevan

Penelitian relevan yang dilakukan oleh Kusnadi di mana topik utama membahas permasalahan pengembangan eigenfaces atau face detection adalah Analisis dan Perancangan Sistem Pengenalan Wajah menggunakan Web-Camera dengan metode Eigenface. Penulis merancang sistem aplikasi penerapan eigenfaces dengan menggunakan inputan data dari Web-Camera. Dalam penelitian ini, program penulisan dibatasi posisi gambar muka harus berada di tengah dan menjadi pusat dari

Web-Camera, sehingga akan membatasi proses kerja dari eigenface dan ada kemungkinan kesalahan dari faktor pengguna dimana posisi mukanya tidak berada di pusat dari Web-Camera, dan menimbulkan kesalahan dalam pengenalannya.


(35)

BAB III

ANALISIS DAN PERANCANGAN SISTEM

Analisis sistem dalam penelitian ini akan dilakukan dalam beberapa tahap yakni analisis permasalahan sistem dan analisis proses pengenalan wajah. Sedangkan, pada perancangan sistem dalam penelitian ini akan dijelaskan dengan menggunakan

flowchart, data flow diagram, dan perancangan antarmuka (interface).

3.1 Analisis Permasalahan

Pengenalan wajah merupakan suatu teknologi dimana komputer dapat meniru kemampuan otak manusia dalam mengenali wajah manusia. Pada manusia, sistem pengenalan wajahnya yaitu adalah mengunakan alat indera penglihatan manusia yaitu mata sebagai input bagi sistem. Kemudian melalui berbagai proses, hasil input dari mata dikirim ke otak sebagai informasi untuk melakukan proses selanjutnya yaitu proses pengenalan atau mengingat wajah manusia.

Pada pengenalan wajah pada komputer, fungsi alat indra penglihatan pada manusia dapat ditangani oleh berbagai alat media seperti kamera digital, scanner ataupun webcam. Citra wajah yang diambil menggunakan media-media tersebut merupakan hasil input yang nantinya akan diproses lebih lanjut oleh aplikasi dalam komputer. Dimulai dari mengubah format warna dari citra wajah dengan format 24 bit menjadi format grayscale 8 bit yang kemudian dilanjutkan dengan melakukan training untuk mendapatkan fitur-fitur dari citra wajah.

Pengenalan wajah merupakan salah satu bidang yang sangat menarik untuk diteliti dan sampai sekarang masih belum ditemukan suatu metode yang benar-benar sempurna dalam mengenal suatu foto wajah. Hal ini dikarenakan wajah manusia


(36)

terlalu kompleks, sehingga untuk mengembangkan suatu perhitungan yang ideal adalah hal yang sulit.

Banyak peneliti yang sudah menggunakan metode-metode berbeda, dan tentu saja dari tiap metode-metode itu ada kelebihan dan juga kekurangannya, bahkan metode tersebut banyak yang digabungkan, dengan hasil yang lebih baik tetapi masih belum dapat dikatakan sempurna. Dapat dikatakan bahwa dari sekian banyak pengembangan dan implementasi aplikasi pengenalan wajah, belum suatu aplikasi yang mengkombinasikan kecepatan, keakuratan, dan ketahanan terhadap variasi citra wajah. Kesulitan utama yang dihadapi dalam analisa dan pengenalan wajah adalah karena variasi dalam satu wajah bisa sangat besar, sedangkan variasi antara wajah yang berbeda sangat kecil.

Di dalam setiap penelitian tentang pengenalan pola, pasti akan kita temukan sesuatu yang berhubungan dengan image processing dan computer vision. Image Processing adalah salah satu jenis teknologi untuk menyelesaikan masalah mengenai pemrosesan gambar. Dalam Image Processing, gambar yang ada diolah sedemikian rupa sehingga gambar tersebut lebih mudah diproses, sedangkan Computer Vision mempunyai tujuan utama yaitu untuk membuat suatu keputusan yang berguna tentang obyek fisik nyata yang didapat dari perangkat atau sensor.

Dari sekian banyak metode pengenalan wajah yang telah digunakan, kami menggunakan metode principal component analysis untuk memecahkan masalah yang dihadapi. Hal ini didasari oleh kelebihan-kelebihan pada metode ini antara lain dapat merepresentasi image wajah dengan sangat rapi, proses yang cepat, tingkat keakurasian yang tinggi.

3.2 Analisis Proses Pengenalan Wajah

Cara yang paling umum digunakan oleh seseorang untuk menentukan mengenali orang lain adalah dengan pengenalan terhadap wajah seseorang tersebut. Pengenalan tersebut dilakukan dengan melihat pola dan ciri-ciri wajah orang yang akan dikenali. Fakta-fakta yang dijadikan dasar seseorang untuk mengenali orang lain harus


(37)

diperoleh terlebih dahulu dan terutama didapatkan dari orang yang akan dan ingin dikenali.

Secara garis besar, tahap pada pengenalan wajah dengan metode eigenfaces

dan deteksi muka dengan color thresholding akan mempunyai proses yang dilakukan sebagai berikut:

1. Melakukan pencarian wajah dari beberapa image input dan menyiapkannya sebagai inputan untuk pelatihan citra.

Kegunaan utama dari proses pencarian wajah ini adalah untuk mendukung dalam pengenalan wajah, dengan menyiapkan terlebih dahulu sebelum diinputkan ke dalam pengenalan wajah. Proses ini akan diharapkan akan membantu dalam memberikan inputan yang lebih baik dan konsisten kepada proses pelatihan wajah, sehingga hasil dari pelatihan akan menjadi lebih akurat. Terutama apabila citra yang digunakan sebagai input memiliki ukuran yang berbeda-beda dan posisi wajah pada citra tidak tetap (posisi dan jarak wajah pada masing-masing citra tidak sama).

Citra yang akan digunakan sebagai input pencarian wajah diharuskan menggunakan gambar berwarna karena metode color thresholding yang digunakan dalam deteksi wajah memerlukan input nilai warna. Untuk ukuran dari citra akan dibuat bisa menerima variasi yang berbeda. Namun jenis file yang akan digunakan akan bertipe jpeg. Citra yang berbeda-beda ukuran ini, nanti akan diproses untuk menghasilkan citra baru dengan menggunakan feature classification dan candidate generation, sehingga citra yang akan dijadikan input dalam face recognition

nantinya diharapkan memiliki ciri yang serupa yaitu daerah muka.

Ciri citra yang baik untuk digunakan adalah: - Keseluruhan wajah terdapat di dalam citra.

- Warna latar belakang, baju dan rambut tidak menyerupai warna kulit (lebih baik jika berwarna kontras seperti merah, hijau, atau biru)


(38)

2. Pelatihan citra dengan menggunakan input dari hasil deteksi wajah dan melakukan perhitungan pelatihan dengan eigenface

Pada tahap pelatihan, kumpulan citra yang menjadi hasil face detection akan diproses dengan melakukan perhitungan PCA dengan tujuan untuk mendapatkan nilai eigenface. Nilai eigenface ini akan diproyeksikan dengan semua citra yang ada yang sudah dikurangi dengan rata-rata seluruh wajah. Hasil proyeksi ini akan berupa nilai eigenspace.

3. Pengenalan citra wajah

Pada tahap pengenalan citra wajah, nilai dari citra yang akan dikenali akan diproyeksikan terhadap nilai eigenface yang telah didapat sebelum dari tahap pelatihan, sehingga akan didapatkan nilai space untuk citra input. Nilai ini nantinya akan digunakan untuk mengenali citra wajah tersebut. Dengan mencari jarak yang paling minimal dengan eucledian distance, maka akan didapatkan citra yang paling mendekati wajah yang diinputkan.


(39)

Pada Gambar 3.1 diperlihatkan aliran kerja berupa flowchart bagian proses pelatihan setiap image wajah.

Gambar 3.1 Flowchart Proses Pelatihan 3.4 Flowchart Proses Pengenalan

Mengaktifkan webcam untuk menampilkan gambar yang berada di depan webcam tersebut

Mulai

Selesai Terdeteksi citra wajah dari webcam?

Menampilkan citra wajah yang berhasil diambil dari webcam

Menyimpan biodata, nilai eigenvalue, dan citra wajah Melakukan proses PCA untuk

mendapatkan eigenvalue Simpan citra

wajah?

Ya

Tidak Ya


(40)

Pada Gambar 3.2 diperlihatkan aliran kerja berupa flowchart bagian proses pengenalan wajah.

Gambar 3.2 Flowchart Proses Pengenalan

3.5 Data Flow Diagram

Mengaktifkan webcam untuk menampilkan gambar yang berada di depan webcam tersebut

Mulai

Selesai

Terdeteksi citra wajah dari webcam?

Menampilkan citra wajah yang berhasil diambil dari webcam

Menampilkan biodata dan citra wajah dari database

Menghitung jarak Euclidean antara citra wajah tersebut dengan citra

wajah yang terdapat di dalam database

Ya

Tidak

Melakukan proses PCA untuk mendapatkan eigenvalue

Jarak Euclidean

terkecil?

Ya


(41)

Pemodelan dalam sistem ini menggunakan Data Flow Diagram atau yang sering disebut DFD yang digunakan untuk menggambarkan aliran informasi dan proses data yang bergerak dari pemasukan data hingga keluaran. DFD memudahkan pemakai yang kurang menguasai bidang komputer untuk mengertisistem yang akan dikerjakan atau dikembangkan.

3.5.1 Diagram Konteks / DFD Level 0

Diagram konteks atau biasa disebut DFD Level 0 adalah diagram yang terdiri dari suatu proses yang menggambarkan ruang lingkup sistem secara keseluruhan. Berikut diagram konteks untuk perangkat lunak pengenalan wajah.

P0

Perangkat Lunak Pengenalan

Wajah User

citra, biodata

citra_wajah

citra_hasil, biodata

Gambar 3.3 Diagram Konteks / DFD Level 0

Pada DFD Level 0 ini, user memberikan input kepada sistem berupa citra / foto wajah yang digunakan untuk proses pelatihan dan pengenalan wajah, biodata / identitas diri dari setiap citra wajah yang digunakan dalam proses pelatihan. Kemudian setelah mendapat foto wajah sebagai basis pengetahuan, sistem menghasilkan deteksi wajah yang membantu user untuk mengetahui informasi mengenai foto wajah yang sedang dideteksi.

Tabel 3.1 Spesifikasi Proses Diagram Konteks / DFD Level 0 No./Nama


(42)

P0/Perangkat Lunak Pengenalan Wajah citra biodata citra_wajah

Perangkat lunak menerima input citra dan biodata sebagai bagian dari proses pelatihan. Selanjutnya, perangkat lunak melakukan proses pengenalan dengan menerima input citra_wajah untuk mendeteksi / mengenali wajah dan menampilkan citra_hasil dan biodata yang terkait dengan citra_wajah tersebut sebagai output.

citra_hasil biodata

3.5.2 DFD Level 1

Diagram level 1 atau biasa disebut DFD Level 1 adalah diagram yang terdiri dari suatu proses yang menggambarkan ruang lingkup sistem secara lebih luas dan terperinci. DFD level 1 merupakan pengembangan dari DFD level 0. Berikut DFD level 1 dari proses perangkat lunak pengenalan wajah.

P2 Pengenalan DataTrain citra, biodata User P1 Training data_training data_training citra_wajah citra_hasil, biodata

Gambar 3.4 DFD Level 1

Tabel 3.2 Spesifikasi Proses DFD Level 1 No./Nama

Proses Input Keterangan Proses Output


(43)

biodata beserta biodata yang dimasukkan sebagai citra yang akan dibandingkan dengan citra_wajah dalam proses pengenalan wajah. P2/Pengenalan citra_wajah

data_training

Proses pengenalan wajah dengan membandingkan nilai-nilai dari citra_wajah dengan data_training setiap citra yang berasal dari proses training.

citra_hasil biodata

3.5.3 DFD Level 2

Diagram level 2 atau biasa disebut DFD Level 2 adalah diagram yang terdiri dari suatu proses yang menggambarkan ruang lingkup proses secara lebih terperinci. Diagram level 2 merupakan pengembangan dari DFD level 1.

Gambaran DFD level 2 dari proses pelatihan foto wajah ditampilkan pada Gambar 3.5 berikut.

User

P1.1 Input Citra

Wajah

P1.2 Perhitungan

PCA

P1.3 Simpan Hasil

DataTrain citra

biodata

data_citra

data_PCA

data_training


(44)

Tabel 3.3 Spesifikasi Proses DFD Level 2 Proses Pelatihan Foto Wajah No./Nama

Proses Input Keterangan Proses Output

P1.1/Input Citra Wajah

citra Proses mengambil citra wajah yang ditampilkan oleh webcam. Proses tersebut mengambil data dari citra bersangkutan untuk proses perhitungan PCA selanjutnya.

data_citra

P1.2/Perhitungan PCA

data_citra Proses menghitung nilai-nilai dari citra wajah yang dibutuhkan dalam proses pengenalan wajah.

data_PCA

P1.3/Simpan Hasil

data_PCA biodata

Proses menyimpan nilai dari citra wajah beserta identitas dari citra wajah yang bersangkutan ke dalam database.

data_training

Gambaran DFD Level 2 untuk proses pengenalan foto wajah ditampilkan pada Gambar 3.6 berikut.

User P2.1 Input Citra Wajah P2.2 Perhitungan PCA P2.3 Perhitungan Jarak Euclidean P2.4 Perbandingan Jarak Euclidean P2.5 Hasil Akhir DataTrain data_training citra_wajah citra_hasil, biodata data_citra data_PCA data_euclidean data_training


(45)

Tabel 3.4 Spesifikasi Proses DFD Level 2 Proses Pengenalan Foto Wajah

No./Nama Proses Input Keterangan Proses Output

P2.1/Input Citra Wajah

citra_wajah Proses mengambil citra wajah yang hendak dikenali dari tampilan yang dihasilkan oleh webcam.

data_citra

P2.2/Perhitungan PCA

data_citra Proses menghitung dan mendapatkan nilai-nilai dari citra wajah yang dibutuhkan dalam proses pengenalan wajah. data_PCA P2.3/Perhitungan Jarak Euclidean data_PCA data_training

Proses menghitung jarak euclidean antara citra wajah yang hendak dikenali dengan setiap citra yang disimpan ke dalam database yang diperoleh dari proses training sebelumnya.

data_euclidean

P2.4/Perbandingan Jarak Euclidean

data_euclidean Proses yang membandingkan setiap nilai jarak euclidean. Perbandingan tersebut untuk mencari nilai jarak euclidean yang paling kecil.

data_training

P2.5/Hasil Akhir data_training Proses yang menampilkan hasil pengenalan wajah berupa citra wajah dan biodata dari database yang mempunyai jarak euclidean terkecil.

citra_hasil biodata


(46)

Perancangan interface memperlihatkan rancangan yang digunakan untuk mendapatkan gambaran bagaimana suatu sistem akan dibangun. Tampilan interface

tersebut akan menjadi jembatan komunikasi antara sistem dengan user.

3.6.1 Rancangan Tampilan Utama

Rancangan yang akan diperlihatkan terlebih dahulu adalah rancangan halaman utama. Rancangan halaman utama menampilkan beberapa pilihan menu dari menu pelatihan, menu pengenalan, menu about, dan exit. Untuk lebih jelasnya, rancangan halaman utama ditampilkan dalam Gambar 3.7.

Gambar 3.7 Rancangan Tampilan Utama

Keterangan:

1. Menu Pelatihan merupakan menu yang digunakan untuk menjalankan proses pelatihan wajah.

2. Menu Pengenalan merupakan menu yang digunakan untuk menjalankan proses pengenalan wajah.

3. Menu About merupakan menu yang digunakan untuk memperlihatkan informasi mengenai pembuat aplikasi tersebut.

4. Menu Exit merupakan menu yang digunakan untuk menutup aplikasi.

5. Bagian ini digunakan sebagai tempat untuk menampilkan halaman dari menu pelatihan, menu pengenalan, dan menu about.

Pelatihan Form Utama

Pengenalan About Exit

1 2 3 4


(47)

3.6.2 Rancangan Tampilan Proses Pelatihan Wajah

Rancangan yang diperlihatkan selanjutnya adalah rancangan halaman untuk proses pelatihan citra wajah. Rancangan halaman proses pelatihan wajah menampilkan objek yang ditangkap oleh webcam dan selanjutnya sistem akan mendeteksi dan mengambil bagian wajah dan selanjutnya mencari nilai-nilai yang akan dibutuhkan dalam proses pengenalan. Setiap hasil pelatihan citra wajah tersebut akan disimpan ke dalam database beserta biodata / identitas diri dari citra wajah yang bersangkutan. Rancangan halaman proses pelatihan wajah dapat dilihat pada Gambar 3.8.

Gambar 3.8 Rancangan Tampilan Halaman Proses Pelatihan Wajah

Ambil Gambar

Nama

Alamat

No. Telp Biodata

Train

1 2 3

4

5

6


(48)

Keterangan:

1. Bagian ini digunakan sebagai tempat untuk menampilkan objek yang ditangkap oleh webcam.

2. Tombol “Ambil Gambar” merupakan tombol yang digunakan untuk mengambil bagian wajah dari objek yang ditampilkan oleh webcam.

3. Bagian ini digunakan sebagai tempat untuk menampilkan hasil pengambilan gambar wajah.

4. Textbox “Nama” merupakan bagian yang digunakan untuk mengisi nama orang

dari foto wajah orang yang bersangkutan.

5. Textbox“Alamat” merupakan bagian yang digunakan untuk mengisi alamat rumah

dari foto wajah orang yang bersangkutan.

6. Textbox “No. Telp” merupakan bagian yang digunakan untuk mengisi nomor

telepon dari foto wajah orang yang bersangkutan.

7. Tombol “Train” merupakan tombol yang digunakan untuk melakukan proses perhitungan PCA dan menyimpan nilai-nilai citra wajah dan biodata dari citra wajah orang yang bersangkutan.

3.6.3 Rancangan Tampilan Proses Pengenalan Wajah

Rancangan halaman selanjutnya adalah rancangan halaman yang digunakan untuk proses pengenalan wajah. Rancangan halaman proses pengenalan wajah menampilkan objek yang ditangkap oleh webcam dan kemudian sistem mengambil bagian wajah dari objek tersebut dan mencari nilai-nilai yang diperlukan untuk mengenali wajah tersebut. Rancangan halaman proses pengenalan wajah dapat dilihat pada Gambar 3.9.


(49)

Gambar 3.9 Rancangan Tampilan Halaman Proses Pengenalan Wajah

Keterangan :

1. Bagian ini digunakan sebagai tempat untuk menampilkan objek yang ditangkap oleh webcam.

2. Tombol “Ambil Gambar” merupakan tombol yang digunakan untuk mengambil citra wajah dari objek yang ditampilkan oleh webcam tersebut.

3. Bagian ini digunakan sebagai tempat untuk menampilkan citra wajah yang diambil dari objek yang ditampilkan oleh webcam tersebut.

4. Tombol “Kenali” merupakan tombol yang digunakan untuk memulai proses perhitungan PCA dan mencari nilai jarak euclidean. Tahap akhir dari proses pengenalan wajah adalah mencari nilai terkecil dari setiap jarak euclidean antara citra wajah dengan setiap citra wajah yang terdapat di dalam database.

Ambil Gambar

Nama

Alamat

No. Telp Identitas

Kenali

1 2

4

3

5

6

7


(50)

5. Bagian ini digunakan sebagai tempat untuk menampilkan hasil pengenalan wajah berupa citra wajah yang bersesuaian dengan citra wajah dari objek yang ditangkap oleh webcam tersebut.

6. Textbox “Nama” merupakan tempat untuk menampilkan hasil pengenalan wajah berupa nama orang dari citra wajah orang yang bersangkutan.

7. Textbox “Alamat” merupakan tempat untuk menampilkan hasil pengenalan wajah berupa alamat orang dari citra wajah orang yang bersangkutan.

8. Textbox “No. Telp” merupakan tempat untuk menampilkan hasil pengenalan wajah berupa nomor telepon dari citra wajah orang yang bersangkutan.


(51)

BAB IV

IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi Sistem

Bab ini memperlihatkan hasil implementasi dari tahap perancangan sistem pengenalan wajah. Proses perancangan diimplementasikan ke dalam framework Microsoft Visual Studio 2010 dengan bahasa pemrograman C#. Data diolah dan dimasukkan ke dalam database dengan bantuan SQL Server 2005.

4.2 Pengujian Sistem

Pengujian sistem merupakan tahap di mana hasil implementasi sistem pengenalan wajah diuji untuk membuktikan apakah sistem yang dibangun dapat memberikan hasil yang diinginkan. Tujuan dari adanya proses pengujian sistem adalah untuk dapat memperbaiki setiap fungsi yang tidak bekerja semestinya.

4.2.1 Tampilan Halaman Utama

Pada Gambar 4.1 diperlihatkan tampilan halaman awal ketika aplikasi pertama kali dijalankan. Pada halaman tersebut terdapat beberapa menu pilihan yang berkaitan dengan sistem pengenalan wajah. Tampilan setiap menu pada halaman utama diperlihatkan pada Gambar 4.2.


(52)

Gambar 4.1 Tampilan Halaman Utama

Pada Gambar 4.2 diperlihatkan empat menu yang terdapat pada halaman utama. Menu-menu tersebut adalah menu pelatihan, pengenalan, about, dan exit. Menu yang berhubungan dengan proses pengenalan wajah adalah menu pelatihan dan menu pengenalan.

Gambar 4.2 Menu Utama

Pada Gambar 4.3 diperlihatkan tampilan mengenai tampilan menu pelatihan, pengenalan, maupun menu about ditampilkan pada tempat yang tersedia pada halaman awal.


(53)

Gambar 4.3 Tampilan Menu Pilihan pada Menu Utama

4.2.2 Tampilan Proses Pelatihan Citra Wajah

Pada Gambar 4.4 diperlihatkan tampilan awal dari proses pelatihan citra wajah. Pada tampilan tersebut diperlihatkan hasil objek yang berhasil diambil oleh webcam.


(54)

Pada Gambar 4.5 diperlihatkan tampilan hasil pengambilan bagian citra wajah dari objek yang ditampilkan oleh webcam tersebut. Pada awalnya sistem berusaha mendeteksi ada atau tidaknya citra wajah dengan memberikan tanda kotak merah pada layar webcam jika sistem berhasil mendeteksi adanya citra wajah pada layar webcam tersebut. Ketika sistem berhasil mendeteksi citra wajah, user dapat mengeksekusi

tombol “Ambil Gambar” untuk mengambil bagian citra wajah dari objek tersebut.

Hasil pengambilan citra wajah ditampilkan di sebelah kanan dari tombol “Ambil

Gambar”.

Gambar 4.5 Tampilan Proses Pengambilan Wajah Orang

Pada Gambar 4.6 diperlihatkan tampilan user mengisi data nama, alamat, dan nomor telepon dari citra wajah yang bersangkutan. Biodata yang diisikan tersebut bertujuan untuk menunjukkan identitas diri dari citra wajah yang bersangkutan.

Tombol “Train” digunakan untuk memulai proses perhitungan PCA untuk


(55)

didapatkan tersebut selanjutnya akan disimpan ke dalam database bersama dengan biodata dari citra wajah yang bersangkutan beserta citra wajah tersebut.

Gambar 4.6 Tampilan Proses Pengisian Biodata

Pada Gambar 4.7 ditampilkan konfirmasi sebelum proses pelatihan citra wajah dimulai. Jika user memilih tombol “yes” maka sistem akan memulai proses

perhitungan tersebut. Demikian sebaliknya, jika user memilih “No” maka sistem akan

menutup halaman konfirmasi dan tidak melakukan proses perhitungan.


(56)

Pada Gambar 4.8 diperlihatkan pesan bahwa proses perhitungan telah berhasil mendapatkan nilai-nilai yang dibutuhkan dalam proses pengenalan dan telah berhasil menyimpan citra wajah, nilai dan biodata tersebut ke dalam database.

Gambar 4.8 Tampilan Konfirmasi Akhir Proses Training

4.2.3 Tampilan Proses Pengenalan Citra Wajah

Pada Gambar 4.9 diperlihatkan tampilan awal dari proses pengenalan citra wajah. Pada awal tampilan tersebut diperlihatkan objek yang berhasil diambil dari webcam.


(57)

Pada Gambar 4.10 diperlihatkan tampilan hasil pengambilan bagian citra wajah dari objek yang ditampilkan oleh webcam tersebut. Proses pengambilan citra wajah tersebut sama dengan proses pengambilan citra wajah pada bagian pelatihan citra wajah. Sistem memberikan tanda kotak merah pada layar webcam jika sistem berhasil mendeteksi adanya citra wajah pada layar webcam tersebut. Ketika sistem berhasil mendeteksi citra wajah, user dapat mengeksekusi tombol “Ambil Gambar”

untuk mengambil bagian citra wajah dari objek tersebut. Hasil pengambilan citra

wajah ditampilkan di sebelah kanan dari tombol “Ambil Gambar”.

Gambar 4.10 Tampilan Proses Pengambilan Wajah Orang

Pada Gambar 4.11 diperlihatkan tampilan hasil akhir dari proses pengenalan citra wajah. Untuk memulai proses pengenalan wajah, user mengeksekusi tombol


(58)

perhitungan PCA untuk mendapatkan nilai seperti halnya pada proses pelatihan citra wajah sebelumnya. Proses selanjutnya dari pengenalan wajah adalah mencari jarak Euclidean antara citra wajah dengan setiap citra wajah yang terdapat di dalam database. Proses terakhir dari proses pengenalan wajah adalah mengambil jarak Euclidean terkecil dan menampilkan citra wajah tersebut beserta identitas diri dari citra wajah yang bersangkutan pada kolom yang tersedia.


(59)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Kesimpulan dari hasil penelitian Perancangan Perangkat Lunak Pengenalan Wajah dengan Metode Eigenface adalah sebagai berikut:

1. Pengenalan wajah dengan menggunakan metode eigenface pada penelitian ini dapat berjalan dengan baik.

2. Unsur pencahayaan yang berada di sekitar objek mempengaruhi proses pendeteksian wajah dengan menggunakan webcam.

3. Hasil pengenalan wajah diambil dari nilai jarak euclidean terkecil. Nilai jarak euclidean yang semakin kecil menandakan bahwa citra wajah yang hendak dikenali mirip dengan citra wajah yang terdapat di dalam database.

5.2 Saran

Saran-saran yang dapat diberikan untuk pengembangan selanjutnya adalah sebagai berikut:

1. Penelitian ini dapat dikembangkan dengan menambahkan metode-metode lainnya yang mendukung metode eigenface dalam pengenalan wajah.

2. Penelitian ini dapat dikembangkan dengan menambahkan beberapa fungsi baru yang berhubungan dengan metode eigenface.

3. Penelitian ini dapat dikembangkan dengan membandingkan metode eigenface dengan metode lain dalam proses pengenalan wajah.


(60)

DAFTAR PUSTAKA

[1]. Al-Fatta, Hanil. 2009. Rekayasa Sistem Pengenalan Wajah. Yogyakarta: ANDI.

[2]. Aniati, Murni. 1992. Pengantar Pengolahan Citra. Jakarta: PT. Elex Media Komputindo.

[3]. Basuki, Achmad. Jozua F Palandi. Fatchurrochman. 2005. Pengolahan Citra Digital Menggunakan Visual Basic. Jakarta: Graha Ilmu.

[4]. Chen, Lihui dan Christos Grecos. 2003. A Fast Skin Colour Detector for Face Extraction.

http://www.lboro.ac.uk/departments/el/research/conferences/esc2003/ papers/chen.pdf.

[5]. Kusnadi, Jeffry. 2004. Analisis dan Perancangan Sistem Pengenalan Wajah Menggunakan Web Camera dengan Metode Eigenface. Skripsi. Jakarta: Universitas Bina Nusantara.

[6]. Munir, Rinaldi. 2004. Pengolahan Citra Digital dengan Pendekatan Algoritmik. Bandung: Informatika.

[7]. Pissarenko, Dimitri. 2002. Eigenface-based Facial Recognition.

http://openbio.sourceforge.net/resources/eigenfaces/eigenfaces-html/facesOptions.html.

[8]. Ramalho, Jose. 2001. Microsoft SQL Server 7. Jakarta: PT. Elexmedia Komputindo.


(61)

[9]. Shapiro, Linda dan George Stockman. 2001. Computer Vision. New Jersey: Prentice Hall.

[10]. Waring, Christopher dan Xiuwen Liu. 2005. Face Detection Using Spectral Histograms and SVMs. http://www.cs.fsu.edu/~liux/research/publications/ papers/waring-liu-face-detection-smcb-2005.pdf.


(62)

LAMPIRAN A : LISTING PROGRAM

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Eigenfaces.Kelas { class EigenValueDecompositionSymm {

virtual public double[] EigenValues { get { return (eigenValues); } }

virtual public double[][] EigenVectors { get { return (eigenVectors); } }

private double[] eigenValues; private double[][] eigenVectors;

public EigenValueDecompositionSymm(double[][] matrix) {

int m = Matrix.getNumOfRows(matrix); int n = Matrix.getNumOfColumns(matrix); eigenVectors = Matrix.clone(matrix); eigenValues = Vector.newVector(m); double[] accu = Vector.newVector(m); for (int i = 0; i < m; i++)

{

eigenValues[i] = eigenVectors[m - 1][i]; }

for (int i = m - 1; i > 0; i--) {

double sc = 0.0; double h1 = 0.0;

for (int j = 0; j < i; j++) {

sc = sc + System.Math.Abs(eigenValues[j]); }

if (sc == 0.0) {

accu[i] = eigenValues[i - 1]; for (int j = 0; j < i; j++) {

eigenValues[j] = eigenVectors[i - 1][j]; eigenVectors[i][j] = 0.0;


(63)

eigenVectors[j][i] = 0.0; }

} else {

for (int j = 0; j < i; j++) {

double evj = eigenValues[j] / sc; eigenValues[j] = evj;

h1 += evj * evj; }

double f = eigenValues[i - 1]; double g = System.Math.Sqrt(h1); if (f > 0)

{

g = -g; }

accu[i] = sc * g; h1 = h1 - f * g;

eigenValues[i - 1] = f - g; for (int j = 0; j < i; j++) {

accu[j] = 0.0; }

for (int j = 0; j < i; j++) {

f = eigenValues[j]; eigenVectors[j][i] = f;

g = accu[j] + eigenVectors[j][j] * f; for (int k = j + 1; k <= i - 1; k++) {

g += eigenVectors[k][j] * eigenValues[k]; accu[k] += eigenVectors[k][j] * f;

}

accu[j] = g; }

f = 0.0;

for (int j = 0; j < i; j++) {

accu[j] /= h1;

f += accu[j] * eigenValues[j]; }

double h2 = f / (h1 + h1); for (int j = 0; j < i; j++) {

accu[j] -= h2 * eigenValues[j]; }

for (int j = 0; j < i; j++) {

f = eigenValues[j]; g = accu[j];

for (int k = j; k <= i - 1; k++) {

eigenVectors[k][j] -= (f * accu[k] + g * eigenValues[k]);

}

eigenValues[j] = eigenVectors[i - 1][j]; eigenVectors[i][j] = 0.0;

} }


(64)

}

for (int i = 0; i < m - 1; i++) {

eigenVectors[m - 1][i] = eigenVectors[i][i]; eigenVectors[i][i] = 1.0;

double h = eigenValues[i + 1]; if (h != 0.0)

{

for (int j = 0; j <= i; j++) {

eigenValues[j] = eigenVectors[j][i + 1] / h; }

for (int j = 0; j <= i; j++) {

double g = 0.0;

for (int k = 0; k <= i; k++) {

g += eigenVectors[k][i + 1] * eigenVectors[k][j]; }

for (int k = 0; k <= i; k++) {

eigenVectors[k][j] -= g * eigenValues[k]; }

} }

for (int j = 0; j <= i; j++) {

eigenVectors[j][i + 1] = 0.0; }

}

for (int i = 0; i < m; i++) {

eigenValues[i] = eigenVectors[m - 1][i]; eigenVectors[m - 1][i] = 0.0;

}

eigenVectors[m - 1][m - 1] = 1.0; accu[0] = 0.0;

double a = 0.0; double piv = 0.0; double eps = 1.0e-16; for (int i = 1; i < n; i++) {

accu[i - 1] = accu[i]; }

accu[n - 1] = 0.0;

for (int i = 0; i < n; i++) {

piv = System.Math.Max(piv, System.Math.Abs(eigenValues[i]) + System.Math.Abs(accu[i]));

int l = i; while (l < n) {

if (System.Math.Abs(accu[l]) <= eps * piv) {

break; }

l++; }


(65)

{

int iter = 0; do

{

iter = iter + 1;

double f = eigenValues[i];

double g = (eigenValues[i + 1] - f) / (2.0 * accu[i]); double r = dist(g, 1.0);

if (g < 0) {

r = -r; }

eigenValues[i] = accu[i] / (g + r); eigenValues[i + 1] = accu[i] * (g + r); double ev1 = eigenValues[i + 1];

double h = f - eigenValues[i]; for (int j = i + 2; j < n; j++) {

eigenValues[j] -= h; }

a = a + h;

g = eigenValues[l]; double ac1 = accu[i + 1]; double b1 = 1.0;

double b2 = 1.0; double b3 = 1.0; double s1 = 0.0; double s2 = 0.0;

for (int j = l - 1; j >= i; j--) {

b3 = b2; b2 = b1; s2 = s1;

f = b1 * accu[j]; h = b1 * g;

r = dist(g, accu[j]); accu[j + 1] = s1 * r; s1 = accu[j] / r; b1 = g / r;

g = b1 * eigenValues[j] - s1 * f;

eigenValues[j + 1] = h + s1 * (b1 * f + s1 * eigenValues[j]);

for (int k = 0; k < n; k++) {

h = eigenVectors[k][j + 1]; eigenVectors[k][j + 1] = s1 * eigenVectors[k][j] + b1 * h;

eigenVectors[k][j] = b1 * eigenVectors[k][j] - s1 * h;

} }

g = (-s1) * s2 * b3 * ac1 * accu[i] / ev1; accu[i] = s1 * g;

eigenValues[i] = b1 * g; }

while (System.Math.Abs(accu[i]) > eps * piv); }

eigenValues[i] = eigenValues[i] + a; accu[i] = 0.0;

} }


(66)

private static double dist(double a, double b) {

double r;

if (System.Math.Abs(a) > System.Math.Abs(b)) {

r = b / a;

return (System.Math.Abs(a) * System.Math.Sqrt(1 + r * r)); }

else if (b != 0) {

r = a / b;

return (System.Math.Abs(b) * System.Math.Sqrt(1 + r * r)); }

else {

return (0.0); }

} } }


(67)

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Eigenfaces { class EuclideanDistance {

public int dMax(int[] nilai1, int[] nilai2) {

int d = 0; int dmax = 0; int temp = 0;

for (int i = 0; i < nilai1.Length; i++) {

d = (int)Math.Pow((nilai1[i] - nilai2[i]), 2); double c = Math.Sqrt(d);

if (c > dmax) {

dmax = (int)c; }

temp += d; }

return (int)Math.Sqrt(temp); }

public int dMin(double[] nilai1, double[] nilai2) {

int d = 0; int dmin = 0; int temp = 0;

for (int i = 0; i < nilai1.Length; i++) {

d = (int)Math.Pow((nilai1[i] - nilai2[i]), 2); if (i==0)

{

dmin = d; }

if (d < dmin) {

dmin = d; }

temp += d; }

return dmin; }

} }


(1)

Percobqqn ke 9


(2)

(3)

Struktur Database Table DATATRAIN


(4)

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Emgu.CV.Util; using Emgu.CV.CvEnum; using Emgu.CV.Structure; using Emgu.CV; using Emgu.Util; using AForge.Video; using Accord.Vision.Detection; using Accord.Vision.Detection.Cascades; using System.Runtime.InteropServices; using System.Windows.Threading; using System.Data.SqlClient; using System.IO; namespace Eigenfaces {

public partial class Training2 : Form {

//Inisialisasi Variabel Kamera public Capture capture;

DispatcherTimer timer; Image<Bgr, Byte> imgFrame; Bitmap gambar; public Training2() { InitializeComponent(); }

void timer_Tick(object sender, EventArgs e) {

imgFrame = capture.QueryFrame().Resize(320, 240, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC);

pictureBox1.Image = imgFrame.ToBitmap(); HaarObjectDetector detector;

FaceHaarCascade cascade = new FaceHaarCascade(); detector = new HaarObjectDetector(cascade, 30);

detector.SearchMode = ObjectDetectorSearchMode.Average; detector.ScalingFactor = 1.5f;

detector.ScalingMode = ObjectDetectorScalingMode.GreaterToSmaller; detector.UseParallelProcessing = true;

detector.Suppression = 3; Rectangle[] faceObjects =

detector.ProcessFrame((Bitmap)pictureBox1.Image);

Graphics g = Graphics.FromImage(pictureBox1.Image); Pen pen = new Pen(Brushes.Black, 10);

foreach (System.Drawing.Rectangle face in faceObjects) {

Bitmap cropImage = new Bitmap(face.Width, face.Height); using (Graphics grp = Graphics.FromImage(cropImage)) {

grp.DrawImage(pictureBox1.Image, new Rectangle(0, 0, face.Width, face.Height), face, GraphicsUnit.Pixel);


(5)

gambar = (Bitmap)cropImage; } g.DrawRectangle(Pens.Red, face); } g.Dispose(); this.pictureBox1.Invalidate(); }

private void Training2_Load(object sender, EventArgs e) {

capture = new Capture(); timer = new DispatcherTimer();

timer.Tick += new EventHandler(timer_Tick); timer.Interval = new TimeSpan(0, 0, 0, 0, 1);

pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage; timer.Start();

}

private void training_closed(object sender, EventArgs e) {

timer.Stop(); capture.Stop(); capture.Dispose(); }

private void btnAmbilGambar_Click(object sender, EventArgs e) {

pictureBox2.Image = gambar; }

private void bersih() {

txtNama.Clear(); txtAlamat.Clear(); txtNoTelp.Clear(); }

private void btnTrain_Click(object sender, EventArgs e) {

DialogResult hasil = MessageBox.Show("Apakah anda yakin? ", "Jawab.", MessageBoxButtons.YesNo);

if (hasil == DialogResult.Yes) {

Kelas.Koneksi koneksi = new Kelas.Koneksi(); if (koneksi.test())

{

if (txtNama.Text != "" || txtAlamat.Text != "" || txtNoTelp.Text != "" || pictureBox2.Image == null)

{

capture.Pause();

SqlConnection con1 = koneksi.getCon(); SqlCommand cmd1 = new SqlCommand();

//Bentuk inVector dari semua image di dalam folder double[][] inVectors = new double[1][];

int z = 0;

Kelas.Preprocessing preproses = new Kelas.Preprocessing();

Bitmap gambar2 = (Bitmap)pictureBox2.Image; gambar2 = preproses.grayScale(gambar2);

//gambar2 = preproses.resampling(gambar2, 120); inVectors[0] = new double[gambar2.Height * gambar2.Width];

for (int y = 0; y < gambar2.Height; y++) {


(6)

for (int x = 0; x < gambar2.Width; x++) {

inVectors[0][z] = gambar2.GetPixel(x, y).R; z++;

} }

Kelas.PCA eigen = new Kelas.PCA(inVectors); double[] eigenValues = eigen.EigenValues; cmd1.Connection = con1;

//buat string fleksibel untuk query ke SQL String temp2 = eigenValues[0].ToString();

//ubah gambar menjadi byte agar bisa disimpan kedalam database

gambar2.Save("temp.bmp");

FileStream fs = new FileStream("temp.bmp", FileMode.Open, FileAccess.Read);

Byte[] picByte = new Byte[fs.Length];

fs.Read(picByte, 0, Convert.ToInt32(fs.Length)); fs.Close();

//buat string sql

cmd1.CommandText = "INSERT INTO DATATRAIN values('" + txtNama.Text + "','" +

txtAlamat.Text + "','" +

txtNoTelp.Text + "','" +

"temp.bmp" + "','" +

temp2 + "', @pic)";

SqlParameter picParameter = new SqlParameter(); picParameter.SqlDbType = SqlDbType.Image; picParameter.ParameterName = "pic"; picParameter.Value = picByte; cmd1.Parameters.Add(picParameter); cmd1.ExecuteNonQuery(); MessageBox.Show("Berhasil!"); bersih(); capture.Start(); } } } } } }