Anda di halaman 1dari 28

Dibuat Oleh :

Yudo Devianto / 1311601049


Kelompok XL

PROGRAM MAGISTER ILMU KOMPUTER


UNIVERSITAS BUDI LUHUR
JAKARTA
2014

DAFTAR ISI
PENGENALAN WAJAH MENGGUNAKAN ANALISIS KOMPONEN UTAMA
(PRINCIPAL COMPONENTS ANALYSIS)..................................................................................
DAFTAR ISI....................................................................................................................................I
ABSTRAK.......................................................................................................................................1
BAB 1 PENDAHULUAN...............................................................................................................2
I.1.

Latar belakang...................................................................................................................2

I.2.

Rumusan masalah.............................................................................................................2

I.3.

Batasan masalah................................................................................................................2

I.4.

Tujuan...............................................................................................................................3

BAB II TEORI PENUNJANG........................................................................................................4


II.1.

Citra digital....................................................................................................................4

II.2.

Principal Components Analysis (PCA).........................................................................4

BAB III METODELOGI.................................................................................................................6


III.1.

PCA Secara Statistik......................................................................................................6

III.2.

Nilai Eigen.....................................................................................................................7

III.3.

Pengurangan Ukuran.....................................................................................................8

III.4.

Proses Pengenalan.........................................................................................................8

III.5.

Eigenfaces.....................................................................................................................9

III.6.

Deskripsi Algoritma......................................................................................................9

BAB IV IMPLEMENTASI............................................................................................................11
IV.1.

Soal dan jawaban.........................................................................................................11

IV.2.

Script program.............................................................................................................18

IV.3.

Hasil Proses Program..................................................................................................21

BAB V PENUTUP........................................................................................................................24
Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049
I

V.1.

Kesimpulan..................................................................................................................24

V.2.

Saran............................................................................................................................24

V.3.

Sumber Informasi........................................................................................................24

Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049


II

ABSTRAK

Sistem pengenalan wajah banyak dimanfaatkan pada biometrics yang digunakan untuk
identifikasi personal pada penggunaan mesin absensi, akses kontrol dan lain-lain. Secara umum
sistem pengenalan image tidak menggunakan bitmap pixel secara langsung melainkan ia
bekerja pada domain feature. Image direpresentasikan kedalam bentuk feature yang lebih
kompak yang kemudian digunakan untuk pengenalan, dengan demikian dapat menghemat
komputasi. Berbagai metode ekstrasi feature telah dimanfaatkan seperti metode moment, feature
filter Gabor, Wavelet, dan lain-lain. Dalam tugas ini akan digunakan 1 metode ekstrasi feature
secara statistik yang secara luas telah lama digunakan yaitu PCA (Principal Components
Analysis). Dengan metode tersebut dibuatlah aplikasi dengan menggunakan MATLAB, dari uji
menggunakan aplikasi tersebut dihasilkan pengenalan wajah yang cukup baik dengan tingkat
kesalahan kecil.
Kata kunci

: Pengenalan Wajah, PCA, Principal Component Analysis

ABSTRACT
Face recognition system widely used in biometrics used for personal identification on the
use of machine attendance, access control and others. In general recognition system does not
use a bitmap image pixels directly, but he worked on the feature domain. Image is represented in
the form of a feature that is more compact which is then used for recognition, thus can save
computation. Various feature extraction methods have been used as a method moment, Gabor
filter feature, Wavelet, and others. In this task will be used first statistical feature extraction
method which has long been widely used, namely PCA (Principal Components Analysis). With
this method the application made by using MATLAB, using the application of the test produced a
pretty good face recognition with a small error rate.
Keywords

: Facial Recognition, PCA, Principal Component Analysis

Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049


1

BAB 1 PENDAHULUAN

I.1.

Latar belakang

identifikasi personal pada penggunaan mesin absensi, akses kontrol dan lain-lain.
Secara umum sistem pengenalan image tidak menggunakan bitmap pixel secara langsung
melainkan ia bekerja pada domain feature. Image direpresentasikan kedalam bentuk
feature yang lebih kompak yang kemudian digunakan untuk pengenalan, dengan
demikian dapat menghemat komputasi. Berbagai metode ekstrasi feature telah
dimanfaatkan seperti metode moment, feature filter Gabor, Wavelet, dan lain-lain. Dalam
tugas ini akan digunakan 1 metode ekstrasi feature secara statistik yang secara luas telah
lama digunakan yaitu PCA (Principal Components Analysis). Dengan metode tersebut
dibuatlah aplikasi dengan menggunakan MATLAB, dari uji menggunakan aplikasi
tersebut dihasilkan pengenalan wajah yang cukup baik dengan tingkat kesalahan kecil.
Metode PCA dikenal juga dengan nama Karhunen-Loeve transformation (KLT),
yang telah dikenal sejak 30 tahun dalam dunia pengenalan pola. PCA memberikan
transformasi ortogonal yang disebut dengan eigenimage yang mana sebuah image
direpresentasikan kedalam bentuk proyeksi linier searah dengan eigenimage yang
bersesuaian dengan nilai eigen terbesar dari matrix covariance (atau scatter matrix).
Secara praktis matrix covariance ini dibangun dari sekumpulan image training yang
diambil dari berbagai obyek/kelas. PCA memberlakukan properti statistik yang sama bagi
seluruh image training dari berbagai obyek/klas.
I.2.

Rumusan masalah
Pengenalan wajah, membandingkan file wajah yang ada dalam database dengan
file wajah yang menjadi testing / pembanding, permasalahan yang dihadapi :
1. Cara membandingan wajah yang ada dalam database dengan file wajah yang
digunakan sebagai testing / pembanding.
2. Metode apa yang akan di gunakan.

I.3.

Batasan masalah
Adapun batasan-batasan masalah dari tugas ini adalah sebagai berikut:
1. Contoh file wajah berasal dari media internet.
2. Metode yang digunakan adalah PCA (Principal Components Analysis).

Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049


2

3. Program bantu yang digunakan adalah MATLAB.


I.4.

Tujuan
Tujuan dari tugas ini adalah untuk menunjukan bahwa metode PCA (Principal
Components Analysis) dapat digunakan untuk pengenalan wajah.

Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049


3

BAB II TEORI PENUNJANG

II.1. Citra digital


Citra dapat dibagi menjadi 4 kelas, yaitu cara kontinu-kontinu, kontinu-diskret,
diskret-kontinu, dan diskret-diskret. Deskripsi pertama menyatakan tingkat akurasi dari
suatu titik pada bidang koordinat, sedangkan deskripsi kedua menyatakan tingkat
keabuan atau warna suatu citra. Kontinu dinyatakan dengan tingkat akurasi tidak
berhingga, sedangkan diskret dinyatakan dengan tingkat akurasi berhingga. Berdasarkan
tingkat pewarnaan, citra dapat dibagi menjadi dua kelas, yaitu citra monokrom atau hitam
putih, yang merupakan citra satu kanal, dan citra multi-spektral atau multiwarna. Citra
hitam putih menyajikan warna dengan nilai integer pada piksel yang menyatakan tingkat
keabuan dari hitam ke putih, sedangkan pada citra multi-spektral, warna citra dinyatakan
oleh tiga komponen warna, yaitu merah, hijau, dan biru (RGB), sehingga penyajian
warnanya adalah berbentuk fungsi nilai tingkat warna, yang meliputi warna-warna:
merah, hijau, dan biru: { f (x, y), f (x, y), f (x, y)}. merah hijau biru.
II.2. Principal Components Analysis (PCA)
Sebuah image 2D dengan dimensi b baris dan k kolom dapat direpresentasikan
kedalam bentuk image 1D dengan dimensi n (n=b*k). Dengan ekspresi lain dapat
dituliskan sebagai , adalah ruang image dengan dimensi n. Image training yang
digunakan sebanyak sampel dinyatakan dengan
yang diambil dari sebanyak
obyek/kelas yang dinyatakan dengan . Total matrix scatter (atau matrix covariance)
didefinisikan sebagai berikut:
K

S T ( x k )( x k ) T
k 1

Dimana adalah rata-rata sampel image yang diperoleh dengan merata-rata


training image {x1 , x2 ,..., xK } . Dengan dekomposisi eigen, matrix covariance ini dapat
didekomposisi menjadi:
S T T

Dimana adalah matrix eigenvector, dan adalah is a diagonal matrix dari


nilai eigen. Kemudian dipilih sejumlah m kolom eigenvector dari matrix yang
berasosiasi dengan sejumlah m nilai eigen terbesar. Pemilihan eigenvector ini
menghasilkan matrix transformasi atau matrix proyeksi m , yang mana terdiri dari m
kolom eigenvector terpilih yang biasa disebut juga dengan eigenimage. Berikutnya
Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049
4

sebuah image x (berdimensi n) dapat diekstraksi kedalam feature baru y (berdimensi m <
n) dengan memproyeksikan x searah dengan m sebagai berikut:
y m x

Dengan kata lain metode PCA memproyeksikan ruang asal n kedalam ruang
baru yang berdimensi lebih rendah m , yang mana sebanyak mungkin kandungan
informasi asal tetap dipertahankan untuk tidak terlalu banyak hilang setelah dibawa ke
dimensi feature yang lebih kecil. Disini terlihat reduksi feature yang signifikan dari n
buah menjadi m buah yang tentunya akan sangat meringankan komputasi dalam proses
pengenalan berikutnya.
Total matrix scatter S T diatas sesungguhnya adalah jumlahan dari matrix scatter
dalam kelas (within-class scatter matrix) S W dan matrix scatter antar kelas (betweenclass scatter matrix) S B yaitu, S T SW S B . Dengan demikian, kekurangan utama
yang terlihat disini adalah bahwa dalam proses PCA ke dua matrix scatter ini
termaksimalkan bersama-sama. Sesungguhnya yang diinginkan adalah hanya
maksimalisasi S B saja, sedangkan S W sebisa mungkin diminimalkan agar anggota
didalam kelas lebih terkumpul penyebarannya yang pada akhirnya dapat meningkatkan
keberhasilan pengenalan. Misalkan pada variasi perubahan iluminasi maupun skala dari
image yang terjadi pada obyek yang sama, dapat menyebabkan matrix scatter dalam kelas
menjadi besar yang cukup menyulitkan dalam proses pengenalan. Bila ini terjadi, dengan
demikian PCA akan menyertakan variasi iluminasi didalam eigenimage-nya, dan
konsekuensinya PCA menjadi tidak handal terhadap variasi iluminasi yang terjadi pada
obyek.

Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049


5

BAB III METODELOGI

III.1. PCA Secara Statistik


Perhitungan PCA dimulai dengan pembentukan matriks kovarians dari
sekumpulan citra latih dalam basis-data. Untuk membuat matriks kovarians dapat
dilakukan dengan mengurangkan setiap kolom dari matriks ruang citra dengan reratanya
masing-masing sehingga didapatkan suatu matriks transformasi, kemudian mengalikan
matriks hasilnya dengan transpos matriks tersebut sendiri. Jika dimisalkan matriks
transformasinya adalah X, maka matriks kovariansnya adalah X = XXT.
Pada dasarnya, matriks kovarians X = XXT, dari sekumpulan wajah latih adalah
tidak berbentuk diagonal.

(1)
ij menyajikan kovarians antara piksel i dan piksel j. Hubungan antara koefisien
kovarians dan koefisien korelasi adalah:

(2)
sehingga koefisien korelasi adalah normalisasi dari koefisien kovarians.
Tujuan yang ingin dicapai adalah membangun sebuah ruang wajah, dengan setiap
komponennya tidak saling berkorelasi. Ini berarti bahwa matriks kovarians dari
komponen yang baru haruslah berbentuk diagonal:

(3)
dengan yi adalah vektor kolom yang mendeskripsikan wajah xi pada sumbu ruang wajah,
yi disebut juga komponen utama; X adalah matriks yang berisi sejumlah wajah latih, xi;
Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049
6

Y adalah matriks yang berisi vektor-vektor yi.


Bentuk diagonal dari matriks kovarians ini menunjukkan bahwa varians sebuah
variabel dengan variabel itu sendiri akan bernilai maksimal, sedangkan kovarians sebuah
variabel dengan variabel lainnya akan bernilai nol, setiap variabel tidak saling berkorelasi
lagi. Dengan demikian, pembentukan ruang wajah baru ini adalah untuk mencari arah
sumbu yang akan memaksimalkan varians.
Komponen utama dari matriks X dapat dihitung secara linear. Jika P adalah
matriks transformasinya, maka:
(4)
Pada dasarnya P=P-1, karena setiap kolom dari vektor P adalah saling ortonormal,
dengan: P P I,T di sini I adalah suatu matriks identitas. Hal yang menjadi pertanyaan
sekarang adalah merupakan apakah seharusnya P itu jika Y adalah sebuah matriks
diagonal.

(5)
Dengan demikian, Y adalah rotasi dari X oleh vektor P. Misal P adalah matriks
yang berisi sejumlah vektor eigen dari matriks X
(6)
Dengan adalah matriks diagonal yang berisi sejumlah nilai eigen dari matriks
X Dengan demikian,
(7)
dan Y adalah matriks diagonal berisi sejumlah nilai eigen dari X, karena setiap elemen
diagonal dari Y adalah varians dari komponen wajah-wajah latih di ruang wajah, yang
juga merupakan nilai eigen dari matriks X
III.2. Nilai Eigen
Misalkan A = [a jk ] adalah matriks n n yang dikaitkan dengan persamaan:
(8)
dengan adalah suatu bilangan; maka vektor nol, x 0 adalah penyelesaian dari
Persamaan (1) untuk sebarang nilai . Suatu nilai pada Persamaan (1) yang
memberikan penyelesaian x 0 disebut nilai eigen atau nilai karakteristik dari matriks A.
Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049
7

Penyelesaian padanannya, yaitu x 0 dari Persamaan (1) disebut vektor eigen, atau
vektor karakteristik dari A yang berpadanan dengan nilai .
III.3. Pengurangan Ukuran
Seharusnya, ukuran dari ruang wajah adalah lebih kecil dari pada ruang citra:

(9)
dengan K adalah jumlah wajah yang dilatihkan, sehingga nilai 1 pada Persamaan (9)
menunjukkan bahwa yang dicari adalah dimensi 1 wajah;
col adalah jumlah kolom;
rank adalah jumlah vektor baris atau vektor kolom yang bebas linear dari suatu matriks.
Dengan demikian, ukuran ruang wajah adalah rank(XX T), yaitu nilai minimal antara w
h dengan K. Oleh karena nilai K biasanya adalah jauh lebih kecil dari w h, maka
rank(XXT) adalah sama dengan K. Pengurangan ukuran telah dibuat dan informasi yang
dibawa oleh yi adalah sama dengan informasi yang dibawa oleh citra aslinya, yaitu xi.
III.4. Proses Pengenalan
Setelah proses pelatihan, akan dihasilkan suatu pola latih berupa sejumlah vektor
ciri yang berisi komponen utama dari seluruh citra latih (citra yang dilatihkan ke sistem).
Vektor ciri tersebut disimpan dalam suatu matriks, dan akan dikeluarkan pada saat proses
pengenalan. Untuk proses pengenalan, suatu citra uji (citra yang disajikan ke sistem
untuk proses pengenalan) yang memiliki dimensi yang sama dengan citra latih yang
disajikan ke sistem. Citra uji tersebut kemudian diekstraksi ciri dengan cara mengalikan
dengan vektor eigen citra latih, dan menghasilkan vektor ciri berisikan komponen utama
yang memiliki dimensi yang sama dengan vektor ciri citra latih.
Setelah didapatkan vektor ciri dari citra uji, maka proses selanjutnya adalah
membandingkan vektor ciri dari citra uji dengan vektor ciri citra latih. Perbandingan
tersebut dapat dilakukan dengan cara menghitung jarak euclidean (euclidean distance),
yang merupakan selisih nilai piksel antara 2 vektor tersebut. Jarak euclidean adalah akar
dari jumlah selisih kuadrat antara 2 vektor, dan secara matematis dapat dirumuskan oleh:

dengan dist(a,b) adalah jarak euclidean antara vektor a dan vektor b;


ai adalah komponen ke i dari vektor a;
Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049
8

bi adalah komponen ke i dari vektor b;


K adalah jumlah komponen pada vektor a dan vektor b. Dari hasil perhitungan
jarak euclidean tersebut dapat ditentukan suatu citra wajah adalah mirip bila memiliki
jarak yang paling dekat.
III.5. Eigenfaces
Masalah dengan representasi gambar yang kita diberikan adalah dimensi tinggi.
Dua-dimensi p x q gambar grayscale rentang am = pq - dimensi ruang vektor, sehingga
gambar dengan 100 x 100 pixels terletak pada 10000-dimensi ruang gambar. Hal itu
terlalu banyak untuk setiap perhitungan, tetapi semua dimensi benar-benar bermanfaat
bagi kita. Kita hanya bisa membuat keputusan apakah ada perbedaan dalam data ?,
sehingga apa yang kita inginkan adalah komponen yang menjelaskan sebagian besar
informasi. The Principal Component Analysis (PCA) secara independen diusulkan oleh
Karl Pearson (1901) dan Harold Hotelling (1933) untuk mengubah set variabel mungkin
berkorelasi menjadi set yang lebih kecil dari variabel tidak berkorelasi. Idenya adalah
bahwa dataset dimensi tinggi sering escribed oleh variabel berkorelasi dan karena itu
hanya dimensi yang berarti beberapa account untuk sebagian besar informasi. Metode
PCA menemukan petunjuk dengan varians terbesar dalam data, yang disebut komponen
utama.
III.6. Deskripsi Algoritma
Let X = {x1, x2,.., xn} be a random vector with observations xi 2 Rd.
Persamaan 1

Persamaan 2 : Compute the the Covariance Matrix S

Persamaan 3 : Compute the eigenvalues and eigenvectors of S

Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049


9

Persamaan 4
Order the eigenvectors descending by their eigenvalue. The k principal
components are the eigenvectors corresponding to the k largest eigenvalues. The k
principal components of the observed vector x are then given by:

Persamaan 5
where W = (v1, v2,, vk). The reconstruction from the PCA basis is given by:

Kemudian Metode Eigenfaces melakukan pengenalan wajah dengan:


1. Memproyeksikan semua sampel pelatihan ke PCA subspace (menggunakan
Persamaan 4).
2. Memproyeksikan citra query ke PCA subspace (menggunakan Listing 5).
3. Menemukan tetangga terdekat antara proyeksi gambar pelatihan dan citra query
diproyeksikan.

Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049


10

BAB IV IMPLEMENTASI

IV.1. Soal dan jawaban


1.

Buat citra gambar wajah berukuran sama (n x n) dan center, simpan citra tsb. kedalam
database
Lokasi data tes D:\Data Kuliah S2\TugasPakNazori\DatabaseWajah\TestDatabase :

2.

1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg

7.jpg

8.jpg

9.jpg

10.jpg

Baca tiap-tiap citra wajah tersebut,


I = [I1 , I2 , I3 , .............I15]

f (1,1) f (1,2) . . f (1, N )


f (2,1) . . . . f (2, N )

I1I(x=, y)citra
ke-1
.. .. .. ..

Tugas Individu Teknik Komputasi / Yudo Devianto


f (N ,1) f (N ,2) . . f (N , N ) 11 - 1311601049
1

I2 = citra ke-2
dst.
Script Matlab
%Membaca Tiap - tiap Wajah Di Dalam Folder DatabaseWajah
D = dir(database);
imgcount = 0;
for i=1 : size(D,1)
if not(strcmp(D(i).name,'.')|strcmp(D(i).name,'..')|strcmp(D(i).name,'Thumbs.db'))
imgcount = imgcount + 1; % Semua Gambar Yang Ada Dalam Folder DatabaseWajah
end
end

Lokasi database D:\Data Kuliah S2\TugasPakNazori\DatabaseWajah\DatabaseWajah :

1.jpg

5.jpg

9.jpg

2.jpg

3.jpg

4.jpg

6.jpg

7.jpg

8.jpg

10.jpg

11.jpg

12.jpg

Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049


12

13.jpg

17.jpg
3.

14.jpg

15.jpg

16.jpg

18.jpg

19.jpg

20.jpg

Ubah dimensi citra wajah menjadi vektor (matrik baris) berukuran: 1 x N2


1 [ f (1,1)

f ( 2,1)

f (3,1)

f ( 4,1) .......

f ( N , N )]

2 [ f (1,1)

f ( 2,1)

f (3,1)

f ( 4,1) .......

f ( N , N )]

3 [ f (1,1)

f ( 2,1)

f (3,1)

f ( 4,1) .......

f ( N , N )]

................................................................................
................................................................................
................................................................................
15 [ f (1,1)

f ( 2,1)

f (3,1)

f ( 4,1) .......

Dari sini diperoleh vektor baru berukuran: 15 x N2

1

2
3


15 xn2 ....
....

Script Matlab ....
X gambar
%Proses membuat matrik
15

X = [];
for i = 1 : imgcount
str = strcat(database,'\',int2str(i),'.jpg');
img = imread(str);
img = rgb2gray(img);
[r c] = size(img);

Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049


13

f ( N , N )]

temp = reshape(img',r*c,1);
X = [X temp];
end

4.

Hitung rata-rata vektor diatas, diperoleh vektor berukuran 1 x N2


1 15

i
15 i 1

Script Matlab
%Menghitung Vektor gambar
m = mean(X,2); % Menghitung Rata-rata Gambar Wajah m = (1/P)*sum(Xj's)
imgcount = size(X,2);

5.

Kurangkan setiap vektor citra wajah dengan rata-rata nya, sehingga diperoleh vektor
berukuran 15 x N2
1 3
2 3
3 3
...................

Diperoleh vektor :

...................

1

2
3

...
...

Script Matlab
...
%Menghitung Vektor gambar

15
m = mean(X,2); % Menghitung Rata-rata Gambar Wajah m = (1/P)*sum(Xj's)
...................
15 15

imgcount = size(X,2);
6.

(j = 1 : P)

Hitung covarian matriks


n

cov( x, y )

(x

15

A1 cov( )

x ) ' ( yi y )
n 1

(
i 1

'

i )

n 1

matriks 15 x15

Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049


14

(j = 1 : P)

Dan

15

A2 cov( )

(
i 1

Script Matlab

'
i

i )

n 1

matriks N 2 xN 2

%Mengekstraksi Fitur PCA Pada Gambar Yang Akan Di Uji


test_image = imread(testimg);
test_image = test_image(:,:,1);
[r c] = size(test_image);
temp = reshape(test_image',r*c,1); % Membuat (MxN)x1 Vektor Gambar Dari Gambar 2D
temp = double(temp)-m;
projtestimg = eigenfaces'*temp; % Memproyeksikan Gambar Yang Di Uji

7.1. Hitung nilai eigenvalue () dan eigenvektor (Ui) dari A1


A1 I 0

Persamaan determinan diatas diselesaikan akan diperoleh 15 eigenvalue (), yang


merupakan bilangan skalar:
1 , 2 , 3 , .................., 15

Hitung eigenvektor untuk masing2 nilai , diurutkan dimulai dari nilai yang terbesar
sampai yang terkecil

A1 i I U i 0
Akan diperoleh eigenvektor sbb:

u11

1
u
2

...

U1 ... U 2
...

...

Script Matlab
1

15
%Menghitung
ueigenvalue

u12

u 22

u115

15
u2

...
...

...
U15 ...
...
...

...
...
15
2
u15
u15

A = [];
for i=1 : imgcount
temp = double(X(:,i)) - m;

Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049


15

A = [A temp];
end
L= A' * A;
[V,D]=eig(L);
L_eig_vec = [];
for i = 1 : size(V,2)
if( D(i,i) > 1 )
L_eig_vec = [L_eig_vec V(:,i)];
end
end
%Akhir Eigenfaces
eigenfaces = A * L_eig_vec;

7.2. Hitung eigenvektor (Vi) dari A2 , karena matriks A2 berukuran besar yaitu N2 x N2 , maka
kita dapat menghitung ke 15 eigenvektor dari A2 dengan menggunakan:
Vi ' U i

v11

v12

v115

15
2
v
2
v2
....

...

V1 ... V2 ...
V15 ...
...
...
...

...
...
...
Representasi dari Wajah:
1
2
15
v
v
2
Tiap-tiap wajah
sebagai kombinasi
N direpresentasikan
v N 2 linier dari 15 vektor
N 2 training dapat

1
v2
...

Vi , yaitu:

15

j Wi vi
i 1

Dimana

wi j vi

j adalah vektor wajah berukuran (1xN2 ) sedangkan


vi berukuran (N2 x 1), maka wi berukuran (1 x 1)
vi disebut eigenface

Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049


16

Tiap-tiap wajah training dinormalisasi sehingga citra wajah j yang belum


dinormalisasi menjadi citra wajah j yang sudah dinormalisasi

w11

1
w2
...

1 ...
Pengenalan wajah dengan menggunakan
... eigenface

Misal ada citra wajah yang akan dikenali


...
Langkah langkahnya:
1
w
15
1). Hitung: = ------ (1
x N )
2

2). Proyeksikan kedalam ruang wajah


15

Wi vi
i 1

Dimana

wi vi

3). Representasikan sebagai

w1

w2
...

...
...

4). Tentukan distance error


...d:
d min

w
15
k

5). Jika d<T, maka citra wajah dikenali sebagai wajah ke-k dari sekumpulan training
diatas
Dimana T = Threshold (didapat dari hasil percobaan)

Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049


17

IV.2. Script program


Script Matlab
%Menemukan Proyeksi Vektor Pada Semua Gambar
projectimg = [ ]; % Memproyeksikan Vektor Matrik Dari Gambar
for i = 1 : size(eigenfaces,2)
temp = eigenfaces' * A(:,i);
projectimg = [projectimg temp];
end
%Menghitung & Membandingkan Jarak Euclidian Dari Semua Gambar yang Ada Dalam Folder Data Dan
Diproyeksikan Ke Gambar Yang Di Uji
euclide_dist = [ ];
for i=1 : size(eigenfaces,2)
temp = (norm(projtestimg-projectimg(:,i)))^2;
euclide_dist = [euclide_dist temp];
end
[euclide_dist_min recognized_index] = min(euclide_dist);
recognized_img = strcat(int2str(recognized_index),'.jpg');

All Script Matlab


PengecekanWajah.m
clear all
close all
clc
%Lokasi Data Gambar
database = uigetdir('D:\Data Kuliah S2\TugasPakNazori\DatabaseWajah\DatabaseWajah','Pilih Lokasi
Database Gambar Wajah');
databasetes = uigetdir('D:\Data Kuliah S2\TugasPakNazori\DatabaseWajah\TestDatabase','Pilih Lokasi
Data Gambar Wajah Yang Akan Di Tes');
prompt = {'Masukan Nama Gambar Yang Akan Di Tes :'};
dlg_title = 'Masukan Data Wajah Pada Sistem Pengenalan Wajah Berbasis PCA';
num_lines= 1;
def = {' '};
TestImage = inputdlg(prompt,dlg_title,num_lines,def);
TestImage = strcat(databasetes,'\',char(TestImage),'.jpg');
%Proses Memanggil Functions
recog_img = facerecog(database,TestImage);
selected_img = strcat(database,'\',recog_img);
select_img = imread(selected_img);
test_img = imread(TestImage);
testing_img = facerecog(databasetes,TestImage);
figure,imshow(test_img);
title('Gambar Yang Dites');
xlabel (testing_img);
figure,imshow(select_img);

Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049


18

title('Gambar Yang Di Kenali');


xlabel (recog_img);
result = strcat('Gambar Yang Di Kenali Adalah : ',recog_img);
disp(result);

FungsiPengecekanWajah.m
function [recognized_img]=facerecog(database,testimg)
%Membaca Tiap - tiap Wajah Di Dalam Folder DatabaseWajah
D = dir(database);
imgcount = 0;
for i=1 : size(D,1)
if not(strcmp(D(i).name,'.')|strcmp(D(i).name,'..')|strcmp(D(i).name,'Thumbs.db'))
imgcount = imgcount + 1; % Semua Gambar Yang Ada Dalam Folder DatabaseWajah
end
end
%Proses membuat matrik X gambar
X = [];
for i = 1 : imgcount
str = strcat(database,'\',int2str(i),'.jpg');
img = imread(str);
img = rgb2gray(img);
[r c] = size(img);
temp = reshape(img',r*c,1);
X = [X temp];
end
%Menghitung Vektor gambar
m = mean(X,2); % Menghitung Rata-rata Gambar Wajah m = (1/P)*sum(Xj's)
imgcount = size(X,2);
%Menghitung eigenvalue
A = [];
for i=1 : imgcount
temp = double(X(:,i)) - m;
A = [A temp];
end
L= A' * A;
[V,D]=eig(L);
L_eig_vec = [];
for i = 1 : size(V,2)
if( D(i,i) > 1 )
L_eig_vec = [L_eig_vec V(:,i)];
end
end

Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049


19

(j = 1 : P)

%Akhir Eigenfaces
eigenfaces = A * L_eig_vec;
%Menemukan Proyeksi Vektor Pada Semua Gambar
projectimg = [ ]; % Memproyeksikan Vektor Matrik Dari Gambar
for i = 1 : size(eigenfaces,2)
temp = eigenfaces' * A(:,i);
projectimg = [projectimg temp];
end
%Mengekstraksi Fitur PCA Pada Gambar Yang Akan Di Uji
test_image = imread(testimg);
test_image = test_image(:,:,1);
[r c] = size(test_image);
temp = reshape(test_image',r*c,1); % Membuat (MxN)x1 Vektor Gambar Dari Gambar 2D
temp = double(temp)-m;
projtestimg = eigenfaces'*temp; % Memproyeksikan Gambar Yang Di Uji
%Menghitung & Membandingkan Jarak Euclidian Dari Semua Gambar yang Ada Dalam Folder Data Dan
Diproyeksikan Ke Gambar Yang Di Uji
euclide_dist = [ ];
for i=1 : size(eigenfaces,2)
temp = (norm(projtestimg-projectimg(:,i)))^2;
euclide_dist = [euclide_dist temp];
end
[euclide_dist_min recognized_index] = min(euclide_dist);
recognized_img = strcat(int2str(recognized_index),'.jpg');

IV.3. Hasil Proses Program


Lokasi Database Wajah
Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049
20

Lokasi Database Yang Akan Dites

Masukan Nama File Gambar Yang Akan Dites

Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049


21

Figure 1 Gambar Yang Akan Dites

Figure 2 Gambar Hasil Proses Pemilihan Gambar Wajah Yang Paling Cocok Dengan
Gambar Yang Dites

Gambar Yang Di Kenali Adalah :18.jpg


Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049
22

Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049


23

BAB V PENUTUP

V.1. Kesimpulan
Dengan hasil percobaan menggunakan file wajah yang didownload dari internet,
dengan posisi wajah menghadap ke depan dan dengan menggunakan metode PCA
(Principal Components Analysis), dihasilkan proses pengenalan wajah cukup baik,
dengan tingkat kesalahan pengenalan wajah yang sangat kecil.
V.2. Saran
Metode pengenalan pola perlu dikembangkan lebih lanjut misalnya menggunakan
neural networks atau metode-metode statistik lainnya seperti support vector machine
misalnya.
V.3. Sumber Informasi
[1].R. Chellappa, C. Wilson, and S. Sirohey, "Human and machine recognition: A
survey," Proceedings of the IEEE, vol. 83, no. 5, pp. 705--740, 1995.
[2].M. Turk and A. Pentland, "Eigenfaces for recognition." Journal of Cognitive
Neuroscience, Vol. 3, pp. 71-86, 1991.
[3].K. Etemad and R. Chellappa, "Discriminant Analysis for Recognition of Human Face
Images," Journal of Optical Society of America A, pp. 1724-1733, Aug. 1997.
[4].P.N. Belhumeur, J.P. Hespanha, and D.J. Kriegman, "Eigenfaces vs. fisherfaces:
Recognition using class specific linear projection", IEEE Trans. PAMI, Vol. 19, No. 7,
July 1997.
[5].Press, William H., et. al., Numerical Recipes In C, The Art Of Scientific Computing,
Second Edition, Cambridge : Cambridge University Press, 1995.
[6].Nayar, Shree K. and Tomaso Poggio, Early Visual Learning. Oxford : Oxford
University Press, 1996.
[7].Face recognition menggunakan metode Linear Discriminant Analysis (LDA),
Resmana Lim , Raymond & Kartika Gunadi .
[8].Jain, A.K., Fundamentals of Digital Image Processing, Prentice Hall of India Private
Limited, New Delhi, 1995.
[9].Oziem, D.J., Face Recognition Techniques and the Implications of Facial
Transformation, Disertasi-S3, University of Bristol, 2002.
Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049
24

[10]. Romdhani, S., Face Recognition Using Principal Components Analysis,


http://www.elec.gla.ac.uk/~romdhani, Juli 2004.

Tugas Individu Teknik Komputasi / Yudo Devianto - 1311601049


25

Anda mungkin juga menyukai