KLASIFIKASI NAIVE BAYESIAN
ABSTRAK
Wajah adalah biometrik yang secara alamiah dipunyai dan menjadi ciri khas
setiap manusia. Ciri khas wajah yang unik ini dapat dimanfaatkan untuk membantu
komputer mengenali wajah seseorang. Di antara metode yang ada, supaya komputer
dapat mengenali ciri wajah digunakan metode eigenface di tahap preprocessing dan metode naïve bayesian untuk proses klasifikasi. Kedua metode ini yang digunakan untuk pencocokan wajah dalam tulisan ini. Setiap hasil dari proses klasifikasi akan
dihitung akurasinya dengan menggunakan confusionmatrix. Dari hasil percobaan yang telah dilakukan, dengan menggunakan metode ini dapat dicapai akurasi 88%
dari 200 citra wajah yang berasal dari 20 mahasiswa dimana setiap mahasiswa
mempunyai 10 citra wajah. Berdasarkan hasil akurasi ini dapat disimpulkan bahwa
untuk pengenalan wajah dengan menggunakan komputer dapat digunakan metode
ABSTRACT
Face is a biometric that naturally belongs to human race and become one of
human characteristic. This unique characteristic can be used to help computers
recognize an image of person's face. In order to help computer recognize an image
of person’s face, eigenface method can be used in the image preprocessing stage and naïve bayesian method for the classification process. Both of these methods
are used for face recognize in this paper. Each result of the classification process
will be calculated using confusion matrix to gain the accuracy of the classification.
The results of the experiments that have been conducted, the accuracy reach up to
88% obtained from 200 face images by 20 students where each student have 10 face
images. Based on this result, eigenface and naïve bayesian concluded as suitable
i
Penerapan Metode Eigenface Untuk Pencocokan Wajah
Dengan Menggunakan Klasifikasi Naive Bayesian
SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
Oleh :
Halaman Judul
Ega Bima Putranto 115314059
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA YOGYAKARTA
ii
Application of Eigenface Method For Face Recognize Use
Naïve Bayesian Classified
A Thesis
Presented as Partial Fulfillment of the Requirements to Obtain Sarjana
Komputer Degree in Informatics Engineering Study Program
Written By:
Halaman Judul (English)
Ega Bima Putranto 115314059
INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY YOGYAKARTA
iii
HALAMAN PESETUJUAN
SKRIPSI
Penerapan Metode Eigenface Untuk Pencocokan Wajah
Dengan Menggunakan Klasifikasi Naive Bayesian
Disusun oleh:
Ega Bima Putranto
115314059
Telah disetujui oleh:
Dosen Pembibing
iv
HALAMAN PENGESAHAN SKRIPSI
Penerapan Metode Eigenface Untuk Pencocokan Wajah
Dengan Menggunakan Klasifikasi Naive Bayesian
Dipersiapkan dan disusun oleh:
Nama : Ega Bima Putranto
NIM : 115314059
Telah dipertahankan di depan panitia penguji
pada tanggal 22 Juli 2015
dan dinyatakan memenuhi syarat
Susunan Panitia Penguji:
Nama Lengkap Tanda Tangan
Ketua Dr. Anastasia Rita Widiarti, M.Kom ___________
Sekretaris Eko Hari Parmadi, S.Si., M.Kom ___________
Anggota Dr. Cyprianus Kuntoro Adi, SJ., M.A., M.Sc. ___________
Yogyakarta, Juli 2015
Fakultas Sains dan Teknologi
Universitas Sanata Dharma
Dekan,
v
HALAMAN PERSEMBAHAN
“One way to forget about pain is to do something you will be in completely…So Computer Games”-- Danil Ishutin (Dendi)
vi
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini
tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan
dalam kutipan dan daftar pustaka sebagaimana layaknya karya ilmiah.
Yogyakarta, 30 Juni 2015
Penulis
vii
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI
KARYA ILMIAH
UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata
Dharma:
Nama : Ega Bima Putranto
NIM : 115314059
Demi pengembangan ilmu pengetahuan, saya memberikan kepada
perpustakaan
Universitas Sanata Dharma karya ilmiah yang berjudul:
PENERAPAN METODE EIGENFACE UNTUK PENCOCOKAN WAJAH DENGAN MENGGUNAKAN KLASIFIKASI NAIVE BAYESIAN
Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya
memberikan kepada perpustakaan Universitas Sanata Dharma hak untuk
menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk
pangkalan data, mendistribusikan secara terbatas, dan mempublikasikan di
internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari
saya maupun memberikan royalty kepada saya selama tetap mencatumkan nama
saya sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya.
Yogyakarta, 30 Juli 2015
Yang menyatakan,
viii
PENERAPAN METODE EIGENFACE UNTUK
PENCOCOKAN WAJAH DENGAN MENGGUNAKAN
KLASIFIKASI NAIVE BAYESIAN
ABSTRAK
Wajah adalah biometrik yang secara alamiah dipunyai dan menjadi ciri
khas setiap manusia. Ciri khas wajah yang unik ini dapat dimanfaatkan untuk
membantu komputer mengenali wajah seseorang. Di antara metode yang ada,
supaya komputer dapat mengenali ciri wajah digunakan metode eigenface di tahap
preprocessing dan metode naïve bayesian untuk proses klasifikasi. Kedua metode ini yang digunakan untuk pencocokan wajah dalam tulisan ini. Setiap hasil dari
proses klasifikasi akan dihitung akurasinya dengan menggunakan confusion matrix. Dari hasil percobaan yang telah dilakukan, dengan menggunakan metode ini dapat dicapai akurasi 88% dari 200 citra wajah yang berasal dari 20 mahasiswa
dimana setiap mahasiswa mempunyai 10 citra wajah. Berdasarkan hasil akurasi
ini dapat disimpulkan bahwa untuk pengenalan wajah dengan menggunakan
ix
APPLICATION OF EIGENFACE METHOD FOR FACE
RECOGNIZE USE NAÏVE BAYESIAN CLASSIFIED
ABSTRACT
Face is a biometric that naturally belongs to human race and become one
of human characteristic. This unique characteristic can be used to help computers
recognize an image of person's face. In order to help computer recognize an image of person’s face, eigenface method can be used in the image preprocessing stage and naïve bayesian method for the classification process. Both of these methods
are used for face recognize in this paper. Each result of the classification process
will be calculated using confusion matrix to gain the accuracy of the
classification. The results of the experiments that have been conducted, the
accuracy reach up to 88% obtained from 200 face images by 20 students where
each student have 10 face images. Based on this result, eigenface and naïve
x
KATA PENGANTAR
Dengan kerendahan hati terucap puji dan syukur kepada Tuhan Yang
Maha Esa karena dengan perlindungan dan kuasa-Nya penulis dapat menyelesaikan skripsi yang berjudul “Penerapan Metode Eigenface Untuk Pencocokan Wajah Dengan Menggunakan Klasifikasi Naïve Bayesian”. Pada
proses penulisan tugas akhir ini, terucap banyak terimakasih kepada:
1. Kedua orang tua penulis, Bapak M. Alim Bimo Gunarto dan Ibu Siti
Baroyani yang menyemangati penulis.
2. Kedua saudara penulis, Antonius Aryanto Nugroho dan Mita Kurnianti
yang tanpa henti memberi semangat kepada penulis.
3. Romo Dr. Cyprianus Kuntoro Adi, SJ, MA, M.Sc. selaku dosen
pembimbing, terima kasih atas bimbingan, kesabaran, inspirasi, dan
motivasi yang telah diberikan sehingga penulis dapat menyelesaikan
skripsi ini.
4. Bapak Eko Hari Parmadi, S.Si., M.Kom. dan Ibu Dr. Anastasia Rita
Widiarti, M.Kom. selaku dosen penguji yang telah memberikan banyak masukan terhadap skripsi ini.
5. Romo Poldo Situmorang, Benedictus Reynusa Paradhipta dan Aluisius
Bayu Saputra yang bersama-sama memberikan ide, inspirasi dan
semangat dengan cara membantu ataupun menyusahkan.
6. Seluruh civitas akademika Teknik Informatika angkatan 2011, terutama
anggota C++ yang telah berjuang bersama dan saling memberi
semangat dan inspirasi.
7. Teman-teman Dota 2 Yogo, Niel, Pantrek, Angga, Nusa dan yang tidak
bisa disebut satu persatu, yang telah menemani dan menghibur penulis.
8. Semua pihak baik langsung maupun tidak langsung, yang telah
membantu dalam proses penyelesaian skripsi ini.
Yogyakarta, 22 Juli 2015 Penulis,
xi
Daftar Isi
Halaman Judul ... i
Halaman Judul (English) ... ii
HALAMAN PESETUJUAN ... iii
HALAMAN PENGESAHAN ... iv
HALAMAN PERSEMBAHAN ... v
PERNYATAAN KEASLIAN KARYA ... vi
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI ... vii
ABSTRAK ... viii
ABSTRACT ... ix
KATA PENGANTAR ... x
Daftar Isi ... xi
Daftar Gambar... xiii
Daftar Tabel ... xiv
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang Masalah... 1
1.2 Rumusan Masalah ... 2
1.3 Tujuan ... 2
1.4 Batasan Masalah ... 2
BAB II LANDASAN TEORI ... 3
2.1 Pengenalan Wajah ... 3
2.1.1 Pengertian Pengenalan Wajah ... 3
2.1.2 Tahapan Pengenalan Wajah ... 4
2.1.3 Ekstrasi Ciri ... 5
2.2 Metode Eigenface ... 5
2.2.1 Principal Component Analysis (PCA) ... 7
2.2.2 Proses Principal Component Analysis (PCA) / Eigenface .. 7
2.2.3 Contoh PerhitunganEigenface ... 8
2.3 Naive Bayesian ... 16
2.3.1 Klasifikasi Naive Bayesian ... 16
2.3.2 Contoh Perhitungan Naive Bayesian ... 18
xii
BAB III METODOLOGI ... 22
3.1 Metode Pengumpulan Data ... 22
3.2 Teknik Analisis Data ... 22
3.3 Desain User Interface ... 28
3.4 Spesifikasi Software dan Hardware ... 30
BAB IV IMPLEMENTASI DAN ANALISIS HASIL ... 31
4.1 Implementasi ... 31
4.1.1 Pengolahan Data ... 31
4.1.1.1 Preprocessing ... 32
4.1.1.2 Proses ... 34
4.1.1.3 Output ... 35
4.1.1.4 Akurasi ... 35
4.1.2 User Interface ... 36
4.2 Analisis ... 39
BAB V KESIMPULAN DAN SARAN ... 43
5.1 Kesimpulan ... 43
5.2 Saran ... 43
Daftar Pustaka ... 45
xiii
Daftar Gambar
Gambar 2.1 PengenalanWajah (Zhao dan Chellapa, 2006) ... 4
Gambar 3.1 Diagram Block ... 22
Gambar 3.2 User Interface ... 29
Gambar 4.1 Data Awal I ... 31
Gambar 4.2 Data Awal II ... 32
Gambar 4.3 Cropping dan Resize ... 32
Gambar 4.4 Data I ... 33
Gambar 4.5 Data II ... 33
Gambar 4.6 Tabel Hasil Confusion matrix ... 35
Gambar 4.7 Hasil Matrix ... 36
xiv
Daftar Tabel
Tabel 2.1 Hasil eigen value dan eigen vektor ... 13
Tabel 2.2Tabel IPK ... 18
Tabel 2.3 Hasil IPK ... 19
Tabel 2.4 Hasil Uji IPK ... 19
Tabel 2.5 Confusion Matrix ... 20
Tabel 2.6 Contoh Confusion Matrix ... 21
Tabel 3.1 Pembagian Data ... 27
Tabel 3.2 Contoh Hasil Confusion Matrix (akurasi 88%) ... 28
1
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Indonesia merupakan negara yang maju. Teknologi di Indonesia juga
sudah bisa dikatakan maju karena penggunaan teknologi yang banyak. Bisa
dibuktikan dengan salah satunya adalah biometrik. Biometrik adalah metode
mengenali karakteristik biologis manusia dari ciri fisik biologisnya. Contoh
penerapan biometrik di Indonesia beberapa diantaranya adalah sistem absensi
yang menggunakan sidik jari, raut wajah, dan retina mata.
Walaupun banyak yang menerapkan biometrik ini, sangat disayangkan di
Indonesia belum banyak yang membuatnya sendiri. Banyak perkantoran atau
instansi-instansi lainya yang masih membelinya dari luar negeri. Hal ini membuat
Indonesia di mata dunia masih sebagai konsumen bukan sebagai pengembang
perangkat lunak.
Metode eigenface pernah digunakan untuk citra wajah beperapa karyawan Universitas Sanata Dharma Yogyakarta. Penelitian tersebut menggunakan metode
ecludian distance sebagai pencocokan wajahnya. Tingkat keberhasilan dari metode ecludian distance adalah 97.143% yang didapat dari salah satu kombinasi data dari proses 3 fold crossvalidation. (Putri, 2012)
mampu membantu pengembang perangkat lunak untuk mendalami metode
tersebut sehingga dapat mengurangi permasalahan yang sudah disebutkan diatas.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah disebutkan sebelumnya, maka dapat
dirumuskan permasalahan, yaitu:
1. Bagaimana metode eigenface dapat mengekstrasi ciri citra wajah?
2. Berapa akurasi pengenalan wajah menggunakan klasifikasi naive bayesian
dalam mengenali wajah?
1.3 Tujuan
Adapun tujuan dari penelitian ini, antara lain :
1. Menerapkan metode eigenface untuk mengektraksi ciri citra wajah dengan baik.
2. Mengetahui akurasi pengenalan wajah menggunakan klasifikasi naive bayesian.
1.4 Batasan Masalah
1. Citra digital hanya dapat menggunakan tampilan background polos sehingga tidak ada obyek-obyek dibelakangnya.
2. Sistem hanya berbentuk prototype yang dibuat menggunakan MATLAB. 3. Data sebanyak 200 citra wajah dari 20 orang dimana setiap orang memiliki
10 citra wajah dengan berbagai ekspresi.
4. Data citra wajah berukuran 150x150 pixels. Proses resize dan cropping
2
BAB II
Landasan Teori
Landasan teori digunakan untuk menjelaskan teori yang akan digunakan
pada penelitian ini, diantaranya pengertian wajah, eigenface, naive bayesian dan
Principal Component Analysis (PCA).
2.1 Pengenalan Wajah
Wajah atau muka adalah bagian depan dari kepala manusia meliputi
wilayah dari dahi hingga dagu, termasuk rambut, alis, mata, hidung, pipi, mulut,
bibir, gigi, kulit, dan dagu (Sugiono, 2008). Elemen-elemen itulah yang menjadi
pembeda antara wajah satu dengan yang lain. Selain elemen fisik ada faktor-faktor
lain yang mempengaruhi wajah yaitu: syaraf dan pembuluh darah, trauma fisik
dan hasil pembedahan, ekspresi karena pembuluh, air mata dan keringat,
kesakitan dan kelelahan, gender, ras, pertumbuhan dan usia. Oleh karena itu tidak
ada satu wajahpun yang serupa mutlak, bahkan pada manusia kembar identik
sekalipun karena wajah terutama digunakan untuk ekspresi wajah, penampilan
serta identitas (Sitorus dkk, 2006).
2.1.1 Pengertian Pengenalan Wajah
Pengenalan wajah adalah suatu teknologi yang disebut biometrik yang
sudah lama digunakan. Teknologi biometrik pada wajah ini sudah banyak
digunakan pada isntansi-instansi pemerintah maupun swasta seperti perkantoran
swasta maupun negeri, kepolisian, kemiliteran, dan perumahan. Teknologi
Izin Mengemudi), sistem keamanan rumah,dan sistem pengamanan komputer
pribadi.
Pada pengenalan wajah langkah yang dikerjakan adalah melakukan
pengenalan wajah secara mandiri atau otomatis yang lalu akan disimpan pada
suatau basis data tertententu.
2.1.2 Tahapan Pengenalan Wajah
Dalam melakukan pengenalan wajah (face recognition), ada beberapa tahapan proses yang harus dilalui, seperti :
Gambar 2.1 PengenalanWajah (Zhao dan Chellapa, 2006)
Deteksi wajah (face detection) merupakan proses awal yang harus dilakukan pada citra input untuk mendeteksi adanya citra wajah di dalam citra
masukan. Namun, berdasarkan Gambar 2.1 tahap-tahap proses pengenalan wajah
dikelompokkan menjadi 2 bagian, yaitu proses ekstraksi ciri dan proses
pengenalan wajah (Zhao dan Chellapa, 2006). Proses deteksi wajah akan
dilakukan bersama dalam proses ekstraksi ciri. Hal ini dikarenakan dalam proses
deteksi wajah diperlukan ekstraksi ciri di dalam citra masukan yang akan
mendeteksi apakah citra masukan merupakan citra yang mengandung ciri wajah.
Citra Input Deteksi
Wajah Ektrak Ciri
Pengenalan
Wajah Vertifikasi
2.1.3 Ekstrasi Ciri
Secara umum, (Zhao dan Chellapa 2006) menjelaskan ada dua macam ciri
(feature) pada wajah, yaitu holistic features dan facial feature. Facial feature
contoh cirinya adalah warna dan bentuk, besar dan letak hidung, mulut, mata,
telinga, dan lain-lain. Sedangkan pada holistic features setiap cirinya adalah merupakan suatu karakteristik dari seluruh wajah. Wajah dianggap sebagai
kesatuan yang utuh. Untuk melakukan ekstrak ciri pada wajah, (Zhao dan
Chellapa, 2006) membedakan teknik pengenalan wajah menjadi tiga metode,
sebagai berikut:
a) Holistic methods
Metode ini digunakan untuk menyelesaikan kasus holistic features
yaitu mencari informasi secara keseluruhan pada wajah.
b) Features-based
Metode ini digunakan untuk menyelesaikan kasus facial features
yaitu mencari informasi berdasarkan ciri yang ada pada wajah seperti
hidung, mata, telinga, dan lain-lain.
c) Hybrid methods
Metode ini merupakan penggabungan dari metode holistic methods
dan features-based.
2.2 Metode Eigenface
Kata eigenface sebenarnya berasal dari bahasa jerman yaitu “eigenwert”
dimana “eigen” artinya karakteristik dan “wert” artinya nilai. Eigenface adalah
Component Analysis (PCA) yang dikembangkan di MIT. Banyak penulis lebih menyukai istilah eigen image. Teknik ini telah digunakan pada pengenalan tulisan tangan, pembacaan bibir, pengenalan suara dan pencitraan medis. Menurut
layman (Al Fatta, 2009) Eigenface adalah sekumpulan unsur wajah yang telah dibuat standar yang diambil dari analisis statistik dari banyak gambar wajah.
Algoritma eigenface secara keseluruhan cukup sederhana. Training image
direpresentasikan dalam sebuah vector flat (gabungan vektor) dan digabung bersama-sama menjadi sebuah matriks tunggal. Eigenface dari masing-masing citra kemudian diekstraksi dan disimpan dalam file temporary atau database. Test image yang masuk didefinisikan juga nilai eigenfaces-nya dan dibandingkan dengan eigenfaces dari image database atau file temporary (Prasetyo dan Rahmatun, 2008).
Cara perhitungannya dilakukan dengan cara:
1. Pencarian matriks A berukuran N x N dapat dihitung dengan :
. = � . (2.1)
λ dinamakan eigenvalue dari matriks A, sedangkan x merupakan eigenvector yang sama dengan scalar (λ).
2. Pencarian determinan dari matriks A dengan rumus :
| − �| = (2.2)
3. Setelah nilai eigenvalue (�) ditemukan langkah selanjutnya adalah mencari
eigenvektor dengan menggunakan rumus :
2.2.1 Principal Component Analysis (PCA)
Principal Component Analysis (PCA) adalah sebuah transformasi linier yang biasa digunakan untuk mereduksi data. Principal Component Analysis
(PCA) adalah sebuah teknik statistika yang berguna pada bidang pengenalan,
klasifikasi dan mereduksi data citra. PCA juga merupakan teknik yang umum
digunakan. Karena Principal Component Analysis (PCA) sangat ampuh untuk mereduksi data baik seperti teks, citra, dan sinyal.
2.2.2 Proses Principal Component Analysis (PCA) / Eigenface
Proses perhitungan PCA dapat dilakukan dengan langkah-langkah sebagai
berikut (Fatta, 2009)
1. Mengambil satu set training citra wajah (M). Misalkan M berjumlah 10 buah
citra wajah.
2. Inisialisasi untuk tiap citra wajah dari set training. r adalah sebuah vektor
× berdasarkan matriks dari citra wajah yang berukuran NxN.
3. Menghitung rata-rata vektor citra wajah
= �∑��= � (2.4)
4. Melakukan normalisasi ukuran citra dengan melakukan pengurangan
vektor citra wajah dengan nilai rata-rata tersebut.
5. Menghitung matriks kovarian
= �∑��= � �� = � � (2.6)
Dimana
= [ … . �] � (2.7)
6. Dikarenakan ukuran matriks terlalu besar, maka pencarian matriks
kovarian menjadi :
= � (2.8)
7. Menghitung eigenvalue (λ) dan eigenvector (x) dari matriks kovarian
= � (2.9)
8. Menghitung eigenvector sebanyak M dari matriks kovarian
= � (2.10)
dengan persamaan :
� = . � (2.11)
9. Melakukan normalisasi terhadap u. 10. Mengumpulkan eigenvector sebanyak K.
2.2.3 Contoh Perhitungan Eigenface
1. Terdapat 3 buah image yang masing-masing mempunyai 2x2 matriks.
Image1 = [ ][ ]
Image1 = [ ][ ]
2. Lalu ditransformasikan ke matriks × �
S = [ ]
3. Mencari rata-rata vector
+ +
= = .
+ +
= = .
+ +
= =
+ +
= = .
Sehingga didapatkan :
= | . .
.
|
4. Mengurangi vector citra wajah dengan nilai Y
[ ] − | . .
.
| = [ − . − .
− − .
[ ] − | . . . | = [ − . . . ] [ ] − | . . . | = [ . . − . ]
5. Selanjutnya, , , digabungkan menjadi satu matriks A
= [ − . − . − − . − . . . . . − . ]
6. Menghitung kovarian menggunakan rumus �
= [− .− . . − . . . − − − . . . ] × [ − . − . − − . − . . . . . − . ] = [ . − − . − . − . − . − . ]
7. Menghitung eigenvalue dan eigenvector dari korvarian matriks . (Untuk
mempermudahkan perhitungan maka angka dirubah)
− � {− � + � + } − + −� + =
− � { � − � + } + =
− � { � − � + } =
− � � − � −
� = � = � =
8. Eigenvalue � , � , � yang didapat dari matriks digunakan untuk menghitung eigenvektor
Untuk � =
[ −−
− − −− ] [ ] =
[−
− −− ] [ ] =
Diperolehlah persamaan:
− + =
− + =
− + =
Langkah selanjutnya dilakukan proses eliminasi sehingga diperoleh,
[ ] = [ ]
Eigenvektornya adalah
[ ]
[ −−
− − −− ] [ ] =
[−
− −− ] [ ] =
Diperolehlah persamaan:
− =
− + − =
− + − =
Langkah selanjutnya dilakukan proses eliminasi sehingga diperoleh,
[ ] = [− ]
Eigenvektornya adalah
[− ]
Untuk � =
[ −−
− − −− ] [ ] =
[−
− −− ] [ ] =
Diperolehlah persamaan:
− =
− + − =
− + − =
[ ] = [ ]
Eigenvektornya adalah
[ ]
9. Menghitung eigenvektor sebanyak M dari matriks .
� = . � = [ − . − . − − . − . . . . . − . ] × [ ] = [ − − − − ] = [ − . − . − − . − . . . . . − . ] × [− ] = [ ] = [ − . − . − − . − . . . . . − . ] × [ ] = [ − . . . ]
10.Setelah itu eigenvalue diurutkan dari yang paling kecil sampai yang
paling besar.
Tabel 2.1 Hasil eigen value dan eigen vektor
Eigenvalue Eigenvektor
λ=3 -1.3333
0.6667
3
λ=2 -8
-6
-1
-1
λ=1 8
6
1
1
11.Memproyeksikan �kedalam eigenspace
=
[− . . . ] × [
− . − .
− − .
] = − .
[− . . . ] × [
− . . .
] = .
[− . . . ] × [
. .
− .
] = − .
=
[− − − − ] × [
− . − .
− − .
[− − − − ] × [ − . . . ] = . [− − − − ] × [ . . − . ] = − . = [ − ] × [ − . − . − − . ] = − . [ − ] × [ − . . . ] = − . [ − ] × [ . . − . ] = .
12.Memasukkan nilai �kedalam sebuah vector
� = [− .. − . . . − . − . − . . ]
13.Langkah selanjutnya dari matriks omega ini di cari mean (µ) dan standar
deviasi (σ).
14. � = [
2.3 Naive Bayesian
Bayesian filter atau Naive Bayes Classifier merupakan metode terbaru untuk mengklasifikasikan dokumen. Algoritma ini adalah metode probabilitas dan
dikemukakan oleh ilmuwan Inggris bernama Thomas Bayes, yaitu memprediksi
probabilitas di masa depan berdasarkan pengalaman sebelumnya. Dasar dari
teorema Naive Bayes digunakan dalam pemrograman adalah rumus Naive Bayes
sebagai berikut ini:
│ = │ ∗ / (2.12)
P (A|B) = Probabilitas yang dihitung (Posterior) dari peristiwa A karena
adanya informasi yang dikandung dalam peristiwa B.
P (B|A) = Probabilitas yang dihitung (Posterior) dari peristiwa B karena
adanya informasi yang dikandung dalam peristiwa A.
P (A) = Probabilitas tak bersyarat atau disebut probabilitas awal (Prior)
dari peristiwa A.
P (B) = Probabilitas tak bersyarat atau disebut probabilitas awal (Prior)
dari peristiwa B.
2.3.1 Klasifikasi Naive Bayesian
Jika X adalah vektor masukkan yang berisi fitur dan Y adalah label kelas,
Naïve Bayes dituliskan dengan P (X|Y). Notasi tersebut berarti probabilitas label
kelas Y didapatkan setelah fitur-fitur X diamati. Notasi ini disebut juga
probabilitas akhir (posterior probability) untuk Y, sedangkan P (Y) disebut
Selama proses pelatihan harus dilakukan pembelajaran probabilitas akhir P
(Y|X) pada model untuk setiap kombinasi X dan Y bedasarkan informasi yang
didapat dari data latih. Dengan membangun model tersebut, suatu data uji X’
dapat diklasifikasikan dengan mencari nilai Y’ dengan memaksimalkan nilai
P(X’|Y’).
Yang lalu didapatkan rumus Naïve Bayes untuk klasifikasi sebagai
berikut:
| = � ∏��=1�( �| )
� (2.13)
P(Y|X) adalah probabilitas data dengan vektor X pada kelas Y. P(Y)
adalah probabilitas awal kelas Y. ∏��= �| adalah probabilitas independen
kelas Y dari semua fitur dalam vektor X. Nilai P(X) selalu tetap sehingga dalam
perhitungan prediksi selanjutnya tinggal menghitung bagian
∏��= �| dengan memilih yang terbesar sebagai kelas yagg dipilih
sebagai hasil prediksi. Sementara probabilitas independen ∏��= �| tersebut
merupakan pengaruh semua fitur dari data terhadap setiap kelas Y.
Naive bayesian memiliki bentuk peluang kelas bersyarat untuk atribut kontinyu. Distribusi dikarakterisasi dengan dua parameter yaitu mean,
, danvarian, 2. Untuk tiap kelas yj, peluang kelas bersyarat untuk atribut Xi adalah
ijij i x ij j i i x Y y X P 2 2 2 exp 2 1 (2.14)
training record yang dimiliki kelas yj. Dengan cara sama,
2ij dapat diestimasidari sampel varian
s2 training record tersebut.2.3.2 Contoh Perhitungan Naive Bayesian
[image:34.595.137.455.251.576.2]Terdapat data sebagai berikut:
Tabel 2.2Tabel IPK
IPK
Tidak Lulus
2 3.5
3 3.25
2 2.75
2.5 3.5
1.6 4
2.5 3.75
2.3 2.25
3.25 3.8
Jika terdapat IPK 3.5 nilai tersebut dikategorikan lulus atau tidak. Langkah
pertama adalah menentukan rata-rata dan standar deviasi untuk masing-masing
Tabel 2.3 Hasil IPK
IPK
Tidak Lulus
2 3.5
3 3.25
2 2.75
2.5 3.5
1.6 4
2.5 3.75
2.3 2.25
3.25 3.8
Mean 2.39375 3.35
Standar Deviasi 0.544083 0.586759
Kemudian nilai mean dan standar deviasi dimasukkan kedalam rumus
[image:35.595.128.497.87.730.2]naive bayesian bersarat pada rumus (2.14). Setelah itu dihasilkan nilai sebagai berikut:
Tabel 2.4 Hasil Uji IPK
g(IPK= . 5,m,σ|Tidak) 0.73342325 0.289865
0.212593567
g(IPK= . 5,m,σ|Lulus) 0.680081055 0.985582
Dihasilkan nilai IPK 3,25 mirip dengan data training lulus jadi dapat
disimpulkan bahwa jika IPK 3,25 kemungkinan besar lulus.
2.4 Confusion Matrix
Fungsi confusion matrix adalah mebghitung seberapa tepat dan lengkap klasifikasi terhadap suatu kelas data. Isi dari confusion matrix adalah informasi
[image:36.595.128.502.283.589.2]hasil actual dan prediksi yang dihasilkan oleh pengklasifikasian.
Tabel 2.5 Confusion Matrix
Prediksi
negatif
positif
Asli
negatif
A
B
positif
C
D
A adalah jumlah nilai prediksi benar ketika contoh negatif.
B adalah jumlah nilai prediksi salah ketika contoh positif.
C adalah jumlah nilai prediksi salah ketika contoh negatif.
D adalah jumlah nilai prediksi benar ketika contoh positif.
Akurasi adalah hasil dari penjumlahan nilai diagonal dibagi dengan jumlah
total keseluruhan data dan selajutnya dikalikan 100%.
= + + ++ × % (2.14)
Tabel 2.6 Contoh Confusion Matrix
1 1 1 1 1 1
0 2 2 0 2 0
0 1 1 2 1 1
0 0 0 6 0 0
0 0 0 0 6 0
0 0 0 0 0 6
3
BAB III
METODOLOGI
Berdasarkan pada landasan teori yang telah disampaikan pada bab kedua
di atas, pada bab ini dibahas metodologi yang akan digunakan pada penelitian ini.
Bab ini berisi tentang blok diagram, data, tatap muka pengguna dan contoh
perhitungan.
3.1 Metode Pengumpulan Data
Mengambil 200 citra wajah mahasiswa Universitas Sanata Dharma
Program Studi Teknik Informatika angkatan 2011 dikarenakan data sangat mudah
untuk didapat dan data yang dihasilkan adalah data yang nyata.
3.2 Teknik Analisis Data
Hasil yang diperoleh dari pengumpulan data selanjutnya dianalisa dengan
tahap- tahap sebagai berikut :
Proses
Data Preprocessing Output Akurasi
Eigenface Greyscale
Naivebayesian Data Model Confusionmatrix Cropping dan
[image:38.595.113.511.255.692.2]Resize
1. Data
Data yang diambil adalah citra wajah dari mahasiswa Universitas Sanata
Dharma Fakultas Teknik Program Studi Teknik Informatika. Dengan jumlah
mahasiswa 20 dan setiap mahasiswa mempunyai 10 citra wajah sehingga total
data keseluruhan adalah 200 citra wajah. citra asli berukuran 3456 x 5184 pixel yang di ambil menggunakan kamera Digital Single Lens Reflex (DSLR).
2. Preprocessing
Data citra asli pada awal preprocessing dipotong fokus pada bagian wajah menjadi 150 x 150 pixel karena data yang diperkecil terlebih dahulu untuk mempermudah proses perhitungan di dalam sistem. Proses memperkecil citra
wajah menggunakan program Adobe Photoshop CS 5 Version 12.0 (64x bits).
Data yang sudah didapat lalu diproses melalui grayscale, sehingga citra menjadi putih keabu-abuan. Matriks akan berbentuk seperti ini (contoh
perhitungan menggunakan matriks berukuran 2x2 yang seharusnya 150x150).
= [ ] = [ ] = [ ] = [ ] = [ ] = [ ]
= [ ] ℎ = [ ] = [ ] = [ ]
Langkah selanjutnya mengurangi matriks S dengan rata-ratanya untuk
setiap kolom menggunakan zero mean. Dan hasil disimpan pada matriks A.
Setelah didapatkan matriks A, penghitungan kovarian dilakukan. Perhitungan dilakukan dengan cara C=A*A’. Berikut adalah hasil dari
Hasil C selanjutnya akan dinormalisasi menggunakan zscore. Berdasarkan nilai kovarian, matriks C menghasilkan eigenvalue dan eigenvektor.
Eigenvalue diurutkan (sorting) berdasarkan nilai yang paling tinggi ke paling rendah. Tahap ini adalah tahap akhir dari proses eigenface. Selanjutnya
eigenvektor diurutkan berdasarkan indeks eigenvalue yang telah diurutkan sebelumnya. Langkah terakhir dari proses eigenface adalah pembentukan dataset
yang baru dengan nama matriks u.
Agar bentuk akhir sama dengan matriks asli yang digunakan pada sistem
Proses yang telah disebutkan di atas adalah perhitungan setiap orang,
dimana masing-masing orang mempunyai 10 citra wajah maka ukuran matriks
yang akan terbentuk adalah berukuran 22500x100 seperti matriks
u=[ ⋱ ] dimana setiap baris merupakan atribut (feature).
Matriks u selanjutnya di normalisasi menggunakan zscore data matriks u agar dapat dipotong sesuai keinginan, data yang digunakan mempunyai panjang
feature 22500 jika feature ini dipotong maksimal yang dapat dipotong adalah 22499 dan minimal adalah satu. Proses pemotongan adalah memotong baris dari
matriks u diatas. 3. Proses
Hasil eigenface dari 10 citra wajah per orang dibagi menjadi fivefold. Fungsi fivefold adalah membuat lima buah bagian dari 10 citra wajah untuk diambil satu bagian (dua citra wajah) untuk testing dan empat bagian untuk training, sehingga data training terdapat delapan buah citra wajah dan data testing
terdapat dua buah citra wajah. Langkah ini dilakukan berulang sebanyak iterasi
jumlah orang. Hasil dari fivefold disimpan dan digabungkan. Langkah selanjutnya, data training diproses menggunakan NaiveBayes.fit dan data testing menggunakan
predict. Proses NaiveBayes.fit menggunakan fungsi matlab, data training diolah menggunakan fungsi ini. Hasil proses ini menghasilkan data model yang disebut
predict, hasil model dari pengolahan data training lalu di predict menggunakan data testing.
4. Output
Proses output akan menghasilkan keluaran data model. Data model ini
berisi mean dan varian yang dihasilkan dari proses NaiveBayes.fit. Proses predict
menghasilkan prediksi klasifikasi dari data testing. 5. Akurasi
Proses akurasi bertujuan untuk menguji keakuratan dan keberhasilan suatu
sistem. Setiap proses menghasilkan confusion matrix, lalu proses ini diulang samapai semua bagian pernah menjadi data testing. Pembagian data dibagi seperti
[image:43.595.113.513.244.603.2]berikut :
Tabel 3.1 Pembagian Data
Sehingga didapat hasil akhir yang berupa confusion matrix. Pembagian data ini terjadi ketika proses setelah eigenface.
Tabel 3.2 Contoh Hasil Confusion Matrix (akurasi 88%)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
2 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3 0 0 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
4 0 0 0 8 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
5 0 0 0 0 7 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0
6 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 1 0 0 0
8 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 1 0 0
9 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 1 0 0
10 0 0 0 0 0 0 0 0 1 9 0 0 0 0 0 0 0 0 0 0
11 0 0 0 0 1 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0
12 0 0 0 0 2 0 0 0 0 0 0 7 0 0 0 0 1 0 0 0
13 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 2 0
14 0 0 0 0 0 0 0 1 0 0 0 0 0 9 0 0 0 0 0 0
15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0
16 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 8 0 0 1 0
17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 1 0
18 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 8 1 0
19 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 9 0
20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10
Confusion matrix mempresentasikan hasil dari pencocokan data training dan data testing. Setiap data yang memiliki nilai sama antara data training dan data testing dapat dikatakan bernilai benar. Setiap hasil pencocokan yang bernilai
benar akan dihitung dengan dijumlahkan kemudian dibagi dengan jumlah data dan
dikalikan dengan 100%, sehingga menghasilkan akurasi. Pencocokan data yang
bernilai benar membentuk diagonal pada matriks, dengan kata lain penjumlahan
dari diagonal confusion matrix merupakan akurasi dari sistem.
3.3 Desain User Interface
Agar proses dapat mudah dilihat oleh pengguna maka dirancang interface
Gambar 3.2 User Interface
Pada data input diinputkan jumlah orang, jumlah foto, jumlah atribut,
ekstensi foto dan grayscale. Pada interface juga terdapat citra asli dan citra
eigenface agar pengguna juga dapat melihat perubahan citra. Lalu confusion matrix dan akurasi juga ditampilkan akan mempermudah pengguna untuk memantau sistem.
Panel di bawahnya menunjukkan hasil analisis untuk beperapa kali
percobaan yang disertai dengan informasi grafik sehingga pengguna akan
3.4 Spesifikasi Software dan Hardware
Untuk proses membuat sistem dan data digunakan software dan hardware
sebagai berikut :
1. Software
a) Sistem operasi : Windows 8.1 Single Language 64-bit
b) Bahasa pemprograman : Matlab version 8.0.0.783 (R2012b)
c) Program pengolah citra : Adobe Photoshop CS5 v.12.0 64-bit
2. Hardware
a) Processor : Intel(R) Core(TM) i7-4800MQ CPU @ 2.70GHz b) Memory : 16 GB
4
BAB IV
IMPLEMENTASI DAN ANALISIS HASIL
Metodologi yang dijelaskan pada bab-bab sebelumnya diimplementasikan
pada bab ini yang meliputi implementasi, pengolahan data, preprocessing, proses, output, akurasi, user interface dan analisis.
4.1 Implementasi
Landasan teori yang telah dipaparkan akan lebih berguna jika
diimplementasikan. Imlementasi yang akan dipaparkan pada bab ini meliputi
pengolahan data dan user interface.
4.1.1 Pengolahan Data
[image:47.595.113.513.256.720.2]Data mentah yang diambil menggunakan kamera Digital Single Lens Reflex (DSLR) sejumlah 200 citra wajah dengan rincian 20 orang yang setiap orangnya mempunyai 10 citra wajah.
Gambar 4.2 Data Awal II
Data mentah ini belum bisa diolah kedalam sistem karena ukuran dan
tidak fokusnya citra terhadap wajah. Data mentah ini harus diproses dalam tahap
preprocessing.
4.1.1.1 Preprocessing
Tahap awal sebelum data masuk ke pengolahan data mining data masih bisa dikatakan sebagai data mentah yang harus melelaui proses preprocessing. Tahap preprocessing yang harus dilalui adalah:
1. Cropping dan Resize
Proses pemotongan dan pengecilan citra menggunakan Adobe Photoshop CS 5 Version 12.0 (64x bits). Proses ini bertujuan mefokuskan citra pada wajah dan memperkecil ukuran citra yang awalnya berukuran 3456 x 5184 pixel bisa dilihat pada gambar 4.3 menjadi 150x150 pixel pada gambar 4.4 dan gambar 4.5.
Gambar 4.4 Data I
2. Grayscaling
Proses awal preprocessing adalah grayscaling (keabu-abuan). Data citra yang berjumlah 200 citra wajah dirubah menjadi citra keabu-abuan dan disimpan
kedalam matriks S. Setiap baris matriks tersimpan satu orang yang mempunyai
citra wajah 10 citra. Proses ini berulang hingga 20 kali sesuai dengan jumlah
orang, sehingga data citra wajah yang berjumlah 200 ini bisa masuk ke proses
berikutnya yaitu eigenface. 3. Eigenface
Data yang sudah menjadi grayscale memasuki proses kedua dari
reprocessing yaitu eigenface. Pada proses ini citra wajah diubah menjadi citra
eigenface. Hasil eigenface disimpan ke dalam matriks u yang di dalam setiap kolom tersimpan satu citra wajah yang sudah berbentuk citra eigenface, setiap proses eigenface menyimpan satu set data satu orang di dalam matriks u yang panjang kolomnya sepanjang 22500. Panjang kolom ini bisa dipotong sesuai
dengan keinginan pengguna. Setelah dipotong hasil pemotongan data ini disimpan
kedalam matriks hasileigface yang menampung 200 citra wajah eigenface yang telah dipotong.
4.1.1.2 Proses
Pada proses ini adalah memproses data citra wajah menggunakan
klasifikasi naïve bayes. Sebelum masuk inti proses naïve bayes data dipisah terlebih dahulu menjadi data training dan data testing. Hasil dari pemisahan ini disimpan kedalam 2 matriks yaitu trainingsmuaorang dan testingsemuaorang,
testingsemuaorang untuk menyimpan data citra wajah testing. Perhitungan naïve bayesian menggunakan fungsi matlab yaitu naivebayes.fit dan predict, trainingsemuaorang diproses menggunakan naivebayes.fit kemudian
testingsemuaorang diproses menggunakan predict. Fungsi model = naivebayes.fit(trainingsemuaorang) adalah fungsi matlab yang digunakan untuk mengolah data training sedangkan fungsi model.predict(testingsemuaorang)
untuk mengolah data testing.
4.1.1.3 Output
Berdasarkan proses naïve bayesian, maka dihasilkan mean dan varian
sebagai data model yang diperoleh dari data training, kemudian hasil prediksi kelas yang didapat dari data testing. Selanjutnya, langkah yang dilakukan adalah mencocokan data testing dengan kelas training proses ini akan digunakan untuk proses selanjutnya yaitu perhitungan akurasi.
4.1.1.4 Akurasi
Proses menghitung akurasi terbentuk dari perhitungan jumlah hasil
[image:51.595.220.441.595.722.2]confusion matrix. Penjumlahan diagonal matriks ini akan memberikan nilai akurasi sistem. Hasil dari confusion matrix dapat dilihat gambar 4.6
Hasil confusion matrix diambil ketika dilakukan pemotongan feature
sejumlah 19095. kemudian dari confusion matrix dapat dihitung akurasinya dengan cara jumlah diagonal dibagi dengan seluruh jumlah data jadi jumlah
diagonal dari gambar 4.6 adalah 175 dan lalu dibagi dengan keseluruhan data 200
yang menghasilkan nilai 0,875 selanjutnya dikalikan dengan 100 agar hasil
menjadi perseratus, akurasi yang didapat adalah 87.5%. Pemotongan feature
minimal sehingga didapatkan akurasi 87.5% adalah 19095 dari total feature
[image:52.595.123.512.253.556.2]22500.
Gambar 4.7 Hasil Matrix
4.1.2 User Interface
Pembuatan User interface sistem pencocokan wajah menggunakan sarana
yang diberikan oleh Matlab version 8.0.0.783 (R2012b), user interface ini berguna
untuk mempermudahkan pengguna di dalam penginputan data yang dibutuhkan
Gambar 4.8 User Interface
Gambar tersebut menjelaskan bahwa input dialog terdapat interaksi yang dibutuhkan oleh pengguna. Panel input dialog membutuhkan inputan berupa jumlah orang, jumlah foto, jumlah atribut, ekstensi foto, grayscale, tombol save
dan proses.
Jumlah orang menjelaskan jumlah orang yang akan diproses di dalam
sistem.
Jumlah foto menjelaskan jumlah foto setiap orang yang akan diproses di
dalam sistem.
Jumlah atribut mendeskripsikan jumlah atribut atau feature yang sudah
Ekstensi foto menjelaskan ekstensi citra yang akan digunakan meliputi
*.jpg, *.bmp, *.jpeg.
Grayscale menjelaskan data citra sudah berbentuk citra grayscale atau
tidak.
Tombol save digunakan untuk menyimpan model data.
Tombol proses digunakan utnuk menjalankan sistem.
Selanjutnya bagian proses foto menampilkan citra wajah yang
berbentuk grayscale dan citra wajah yang berbentuk eigenface. Bagian
confusion matrix menampilkan jumlah confusion matriks, dalam confusion matrix terdapat tombol biru yang berguna untuk memperbesar tabel dari
confusion matrix. Terakhir dari user interface adalah bagian akurasi dalam akurasi akan menampilkan jumlah akurasi yang didapatkan dari perhitungan
confusion matrix.
Panel input foto tedapat check box graysclae, tombol input foto, foto
testing, foto hasil, nama file testing, label dan keterangan benar atau salah kegunaanya adalah:
Check box graysclae berguna untuk jika inputan citra testing sudah berupa
grayscale.
Tombol input foto adala tombol untuk memilih dan memproses inputan
citra.
Foto testing dan foto hasil menampilkan citra yang diinputkan dan hasil
citra setelah diolah.
Label adalah menampilkan hasil label yang didapatkan setelah proses.
Keterangan benar dan salah adalah keterangan yang didapatkan saat data
testing dan data hasil dicocokkan menghasilkan citra yang benar atau
salah.
Panel Uji Akurasi dan Hasil Uji Tertinggi terdapat min atribut, max
atribut, range, jumlah atribut, akurasi dan tombol proses uji kegunaan panel
tersebut adalah:
Min Atribut adalah inputan pengguna yang memasukkan batas minimal
atribut yang sudah melalui proses eigenface yang akan digunakan.
Max Atribut adalah inputan pengguna yang memasukkan batas maksimal
atribut yang sudah melalui proses eigenface yang akan digunakan.
Range adalah inputan pengguna yang memasukkan jarak atribut yang
sudah melalui proses eigenface sesuai keinginan.
Jumlah Atribut menunjukkan titik atribut yang sudah melalui proses
eigenface tertinggi menunjukkan akurasi tertinggi. Akurasi menunjukkan akurasi teringgi yang didapatkan.
Grafik Hasil Uji Akurasi menampilkan grafik dalam bentuk garis dari
beperapa percobaan akurasi.
4.2 Analisis
Implementasi yang telah ditulis diatas membantu analisis terhadap
Tabel 4.1 Hasil Percobaan Akurasi
No Panjang
Atribut Akurasi(%) No
Panjang
Atribut Akurasi(%)
1 1 8 62 20949 88
2 2 8.5 63 20950 88
3 3 9.5 64 20951 88
4 4 10 65 20952 88
. . . 66 20953 88
. . . 67 20954 88
5 100 37 68 20955 88
6 101 37 69 20956 88
7 102 36.5 70 20957 88
8 103 38.5 71 20958 88
9 104 37.5 72 20959 88
10 105 37.5 73 20960 88
11 106 36 74 20961 88
. . . . . .
. . . . . .
12 113 36 75 21066 88
13 114 36.5 76 21067 88
14 115 36.5 77 21068 88
15 116 37 78 21069 88
16 117 37.5 79 21070 88
17 118 38 80 21071 88
18 119 38 81 21072 88
19 120 37.5 82 21073 88
. . . 83 21074 88
. . . 84 21075 88
20 1000 51.5 85 21076 87.5
21 1001 51.5 . . .
22 1002 51 . . .
23 1003 51.5 85 22467 87.5
24 1004 51.5 86 22468 87.5
25 1005 51.5 87 22469 87.5
26 1006 51.5 88 22470 87.5
27 1007 51.5 89 22471 87.5
28 1008 51.5 90 22472 87.5
29 1009 51.5 91 22473 87.5
30 1010 51.5 92 22474 87.5
. . . . . .
31 20000 87.5 93 22493 87.5
32 20001 87.5 94 22494 87.5
33 20002 87.5 95 22495 87.5
34 20003 87.5 96 22496 87.5
35 20004 87.5 97 22497 87.5
36 20005 87.5 98 22498 87.5
37 20006 87.5 99 22499 87.5
38 20007 87.5 100 22500 87.5
39 20008 87.5
40 20009 87.5
41 20010 87.5
42 20011 87.5
43 20012 87.5
44 20013 87.5
45 20014 87.5
46 20015 87.5
47 20016 87.5
48 20017 87.5
49 20018 87.5
50 20019 87.5
51 20020 87.5
. . .
. . .
52 20939 87.5
53 20940 88
54 20941 88
55 20942 88
56 20943 88
57 20944 88
58 20945 88
59 20946 88
60 20947 88
Gambar 4.6 Hasil Atribut dan Akurasi
Berdasarkan tabel 4.1 dengan 22500 kali percobaan didapatkan hasil
seperti yang tertera di dalam percobaan. Percobaan dilakukan dengan mengambil
dari minimum feature dengan nilai nol sampai 22500, dengan jarak satu feature
setiap percobaan.
Nilai akurasi tertingi adalah 88% pada panjang feature 20940.
5
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan penelitian, penerapan metode eigenface untuk pencocokan wajah dengan menggunakan naïve bayesian dapat disimpulkan beperapa hal, yaitu:
1. Ekstraksi ciri menggunakan metode eigenface dan klasifikasi menggunakan metode naïve bayesian terbukti mampu mengenali wajah dengan baik, karena didapatkan akurasi yang tinggi sebesar 88%.
2. Hasil dari percobaan menggunakan semua feature sepanjang 22500 akurasi metode eigenface menggunakan naive bayesian membantu mengenali wajah sebesar 87.5%. Hasil akurasi terbesar yang didapatkan adalah sebesar 88%
dari panjang feature 20940.
3. Berdasarkan penelitian dari panjang feature 0-20940 sampai 0-21075 didapatkan akurasi yang stabil sebesar 88%.
5.2 Saran
Untuk penelitian lebih lanjut, ekstrak ciri menggunakan metode eigenface
dan klasifikasi menggunakan metode naïve bayesian dapat digunakan untuk membuat sistem informasi seperti sistem absensi, sistem keamanan rumah, sistem
Untuk memudahkan pengguna sistem, citra wajah bisa terdapat
obyek-obyek lain yang terdapat di dalam citra. Sehingga citra wajah yang diinputkan
Daftar Pustaka
Depdiknas. (2002). Kamus Besar Bahasa Indonesia (Edisi Ketiga). Jakarta: Balai Pustaka.
Fatta, H. A. (2009). Rekayasa Sistem Pengenalan Wajah. Yogyakarta: Andi Offset.
Prasetyo, E. (2012). Konsep dan Aplikasi menggunakan MATLAB. Yogyakarta: Andi Offset.
Prasetyo, E. (2014). Mengolah Data Menjadi Informasi Menggunakan Matlab.
Yogyakarta: Andi Offset.
Prasetyo, E., & Rahmatun, I. (2008). Desain System Pengenalan Wajah Dengan Variasi Ekspresi dan Posisi Menggunakan Metode EIGENFACE. Jurnal Ilmiah Informatika dan Komputer, Vol.11, No.01, pp.33.
Putri, Y. W. (2012). Penerapan Face Recognition Menggunakan Metode Eigenface Pada Sistem Presensi Karyawan Universitas Sanata Dharma.
Skripsi. Yogyakarta: Fakultas Sains dan Teknologi, Universitas Sanata Dharma.
Sitorus, S. d. (2006). Pengolahan Citra Digital. Medan: USU Press.
Sugiono, D. (2008). Kamus Besar Bahasa Indonesia Pusat Bahasa Edisi Keempat. Jakarta: PT Gramedia Pustaka Utama.
LAMPIRAN
Source Code1. Bayes.m
function [ ConMatrix,model ] = Bayes(
class_train,class_test,trainingSemua,testingSemua )
%UNTITLED5 Summary of this function goeBayess here % Detailed explanation goes here
model = NaiveBayes.fit(trainingSemua,class_train); class_predict = model.predict(testingSemua);
ConMatrix=hitungConfusionmat (class_test,class_predict);
function confMat=hitungConfusionmat(class_test,class_predict)
yu=unique(class_test); confMat=zeros(length(yu)); for i=1:length(yu)
for j=1:length(yu)
confMat(i,j)=sum(class_test==yu(i) & class_predict==yu(j)); end end ConMatrix=confMat; end % assignin('base','class_predict',class_predict); end 2. Eigface.m
function [hasilEig,eigPic]=eigface(S,irow,icol)
[jmlBaris,jmlKolom] = size(S); rerataData = mean(S,2);
S=double(S); A=S;
for i=1:jmlBaris
for j=1:jmlKolom
A(i,j)=S(i,j)-rerataData(i,1); end
end
ADbl=A;
% ADbl=[];
% for i=1:jmlKolom
% temp=double(A(:,i)); % ADbl=[ADbl temp]; % end
% ADbl=zscore(ADbl);
C=ADbl'*ADbl; C=zscore(C);
% 3. Hitung eigenvector dan eigenvalue dari covariance matrix.
[eigenvector,eigenvalue]=eig(C);
% 4. Pilih component dan bentuk vector feature dan principal component dari
% eigenvector yang memiliki eigenvalue paling besar diambil (decreasing order).
eigenvalue=diag(eigenvalue);
[~, indeks]=sort(eigenvalue,'descend');
featureVector=eigenvector(:,indeks);
% 5. Menurunkan data set yang baru.
u = ADbl*featureVector;
% assignin('base','u',u);
% % PCA denggan PCA dari Matlab % ADbl=double(S);
% [~,u,~] = princomp(ADbl);
% Normalisasi
u= zscore(u);
% % Potong PC
% cutU=u(1:jmlPC,:);
% Hasil akhir
hasilEig=u;
% Tampilan foto eigenface
for i=1:size(u,2)
img=reshape(u(:,i),icol,irow); img=img';
img=histeq(img,255); eigPic=img;
3. Input.fig
4. Input.m
function varargout = Input(varargin)
%INPUT M-file for Input.fig
% INPUT, by itself, creates a new INPUT or raises the existing
% singleton*. %
% H = INPUT returns the handle to a new INPUT or the handle to
% the existing singleton*. %
% INPUT('Property','Value',...) creates a new INPUT using the % given property value pairs. Unrecognized properties are passed via
% varargin to Input_OpeningFcn. This calling syntax produces a
% warning when there is an existing singleton*. %
% INPUT('CALLBACK') and INPUT('CALLBACK',hObject,...) call the
% local function named CALLBACK in INPUT.M with the given input
% arguments. %
% instance to run (singleton)". %
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help Input
% Last Modified by GUIDE v2.5 29-Jul-2015 20:43:54
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Input_OpeningFcn, ...
'gui_OutputFcn', @Input_OutputFcn, ...
'gui_LayoutFcn', [], ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before Input is made visible.
function Input_OpeningFcn(hObject, ~, handles, varargin)
% This function has no output args, see OutputFcn. % hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) % varargin unrecognized PropertyName/PropertyValue pairs from the
% command line (see VARARGIN)
clc;
% Choose default command line output for Input
handles.output = hObject; axes(handles.Logo1)
imshow('Icons\logo.png') axes(handles.axeGreyTraining) imshow('Icons\whos.jpg')
axes(handles.axeEigenfaceTraining) imshow('Icons\whos.jpg')
axes(handles.axFotoTesting) imshow('Icons\whos.jpg') axes(handles.axFotoHasil) imshow('Icons\whos.jpg')
% Icon button zoom in confusion matriks
icon=imread('Icons\figure.jpg');
set(handles.BtnFigureTable,'CData',icon);
% Icon button zoom in
set(handles.btnZoomIn,'Visible','off');
icon=imread('Icons\zoom_in.jpg');
set(handles.btnZoomIn,'CData',icon);
% Icon button zoom out
set(handles.btnZoomOut,'Visible','off');
icon=imread('Icons\zoom_out.jpg');
set(handles.btnZoomOut,'CData',icon);
% Icon button hand
set(handles.btnHand,'Visible','off');
icon=imread('Icons\hand.jpg');
set(handles.btnHand,'CData',icon);
% Icon button figure axes grafik hasil uji
set(handles.btnFigAxGrafikUji,'Visible','off');
icon=imread('Icons\figure.jpg');
set(handles.btnFigAxGrafikUji,'CData',icon);
% Axes grafik hasil uji
set(handles.axGrafikUji,'Visible','off');
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes Input wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = Input_OutputFcn(~, ~, handles)
% varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes during object creation, after setting all properties.
function Logo1_CreateFcn(~, ~, ~) %#ok<DEFNU>
% hObject handle to Logo1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% Hint: place code in OpeningFcn to populate Logo1
% --- Executes on button press in btnDataTraining.
function btnDataTraining_Callback(hObject, ~, handles) %#ok<DEFNU>
% hObject handle to btnDataTraining (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
clc;
try
set(handles.tblConMatrik,'Visible','off'); set(handles.txtAkurasi,'Visible','off'); set(handles.txtPersen,'Visible','off'); set(handles.BtnFigureTable,'Visible','off'); set(handles.btnSave,'Enable','inactive');
set(handles.BtnFigureTable,'Enable','inactive'); warning('off'); %#ok<WNOFF>
handles.folder= uigetdir;
if handles.folder ~= 0
jmlOrang=str2double(get(handles.etJumlahOrang, 'String'));
jmlFoto=str2double(get(handles.etJumlahFoto, 'String'));
jmlPC=str2double(get(handles.edJumlahPC, 'String'));
handles.jmlOrang=jmlOrang; handles.jmlFoto=jmlFoto;
if get(handles.popFormat,'Value') == 1
handles.format='.jpg';
elseif get(handles.popFormat,'Value') == 2
handles.format='.bmp';
else
handles.format='.jpeg';
end
% Mengambil nama file, menghilangkan angka dan ekstensi
files =
dir(fullfile(strcat(handles.folder,'\*',handles.format)));
namaFile=cell(1,jmlOrang); namaSemua=cell(1,jmlOrang);
for i=1:jmlFoto*jmlOrang nama=files(i).name;
nama=regexprep(nama,strcat('[12345678910]+',handles.format),''); namaSemua{i}=nama;
if mod(i,jmlFoto)==0 namaFile{i}=nama; end
end
handles.nama=namaFile;
% Pengambilan file dan memulai proses eigenface
chkBox=get(handles.chkBoxGrey,'Value');
for i=1:jmlOrang S=[];
for j=1:jmlFoto
str=strcat(handles.folder,'\',char(handles.nama(i)),int2str(j),han
dles.format);
gambar=imread(str);
if chkBox==0
gambar=rgb2gray(gambar); % Berarti foto yang
digunakan
% adalah foto berwarna
else
% gambar=rgb2gray(gambar);
end
axes(handles.axeGreyTraining); %#ok<LAXES>
imshow(gambar); % Gambar grey untuk axeGreyTraining
% pause(0.1);
[irow,icol]=size(gambar); a=gambar';
temp=reshape(a,irow*icol,1); S=[S temp]; %#ok<AGROW>
set(handles.txtDimensiData,'String',['[m , n] =
[',num2str(irow),' , ',num2str(icol),'] => Size: ', num2str(irow*icol)]); end handles.S=S;
% Proses eigenface
[hasilEig,eigPic]=eigface(S,irow,icol);
hasilSemuaEigFace{i}=hasilEig; %#ok<AGROW> % Menampung seluruh hasil eigenface
% ke dalam cell
% Foto eigenface untuk axeEigenfaceTraining
axes(handles.axeEigenfaceTraining); %#ok<LAXES>
imshow(eigPic); end
% Potong PC
hasilEigFaceMtx=[]; for i=1:n
hasilEigFace{i}=hasilSemuaEigFace{i}(1:jmlPC,:);
%#ok<AGROW>
hasilEigFaceMtx=[hasilEigFaceMtx;hasilSemuaEigFace{i}(1:jmlPC,:)'] ; %#ok<AGROW>
end
handles.hasilSemuaEigFace=hasilSemuaEigFace;
% Pembentukan class training dan testing
jmlTesting=2;%str2double(get(handles.edJmlTesting,'String')); handles.jmlTesting=jmlTesting; class_semuaData=zeros(1,(jmlOrang*jmlFoto)); class_train=zeros(1,(jmlOrang*jmlFoto)-(jmlOrang*jmlTesting)); class_test=zeros(1,jmlOrang*jmlTesting); class=1; idxSemuaData=1; idxTrain=1; idxTest=1;
for i=1:jmlOrang for j=1:jmlFoto
class_semuaData(idxSemuaData)=class; idxSemuaData=idxSemuaData+1;
end
for j=1:jmlFoto-jmlTesting
class_train(idxTrain)=class; idxTrain=idxTrain+1;
end
for k=1:jmlTesting
class_test(idxTest)=class; idxTest=idxTest+1; end class=class+1; end handles.class_semuaData=class_semuaData'; class_train=class_train'; class_test=class_test'; handles.class_train=class_train; handles.class_test=class_test; handles.hasilEigFaceMtx=hasilEigFaceMtx;
model = NaiveBayes.fit(hasilEigFaceMtx,class_semuaData); handles.dataModelSemua=model.Params;
% assignin('base','class_semuaData',class_semuaData);
% assignin('base','hasilEigFaceMtx',hasilEigFaceMtx);
%
assignin('base','dataModelSemua',handles.dataModelSemua);
[testing,training,dataModel,ConMatrix,akurasi]=klafikasiAkurasi (hasilEigFace,jmlOrang,jmlFoto,class_train,class_test,jmlTesting); handles.testing=testing; handles.training=training; handles.conMax=ConMatrix; [~,n]=size(dataModel); dataModel{n+1}=handles.dataModelSemua; handles.model=dataModel;
% assignin('base','dataModel',dataModel);
% Menampilkan confius matriks
set(handles.tblConMatrik,'Data',ConMatrix);
set(handles.tblConMatrik,'ColumnWidth',{30});
set(handles.tblConMatrik,'Visible','on'); set(handles.BtnFigureTable,'Visible','on');
% Menampilkan hasil akurasi
set(handles.txtAkurasi,'String',num2str (akurasi));
set(handles.txtAkurasi,'Visible','on');
% Menampilkan logo persen
set(handles.txtPersen,'Visible','on'); % Mengaktifkan tombol Save dan figure tabel
set(handles.btnSave,'Enable','on');
set(handles.BtnFigureTable,'Enable','on');
% Set max PC untuk percobaan uji akurasi
set(handles.edPercobaanMax,'String',num2str(irow*icol));
end
catch err
uiwait(msgbox(strcat('ADA
ERROR:',err.message),'Peringatan','modal'));
end
guidata(hObject, handles);
%=========================================================END OF TRAINING
% --- Executes on button press in BtnFigureTable.
function BtnFigureTable_Callback(~, ~, handles) %#ok<DEFNU>
% hObject handle to BtnFigureTable (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of BtnFigureTable
X=handles.conMax;
% Konversi matrix dari nomor ke cell array string
% Penentuan yang akan diberi warna dengan fotmat html
[m,n]=size(X);
for i=1:m for j=1:n if i==j
XX(i,j) = strcat(...
'<html><span style="color: #429808; font-we