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
Citra digital....................................................................................................................4
II.2.
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.
IV.2.
Script program.............................................................................................................18
IV.3.
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
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
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
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).
Tujuan
Tujuan dari tugas ini adalah untuk menunjukan bahwa metode PCA (Principal
Components Analysis) dapat digunakan untuk pengenalan wajah.
S T ( x k )( x k ) T
k 1
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.
(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
(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:
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:
BAB IV IMPLEMENTASI
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
I1I(x=, y)citra
ke-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
1.jpg
5.jpg
9.jpg
2.jpg
3.jpg
4.jpg
6.jpg
7.jpg
8.jpg
10.jpg
11.jpg
12.jpg
13.jpg
17.jpg
3.
14.jpg
15.jpg
16.jpg
18.jpg
19.jpg
20.jpg
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) .......
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);
f ( N , N )]
temp = reshape(img',r*c,1);
X = [X temp];
end
4.
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)
cov( x, y )
(x
15
A1 cov( )
x ) ' ( yi y )
n 1
(
i 1
'
i )
n 1
matriks 15 x15
(j = 1 : P)
Dan
15
A2 cov( )
(
i 1
Script Matlab
'
i
i )
n 1
matriks N 2 xN 2
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;
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
w11
1
w2
...
1 ...
Pengenalan wajah dengan menggunakan
... eigenface
Wi vi
i 1
Dimana
wi vi
w1
w2
...
...
...
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)
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
(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');
Figure 2 Gambar Hasil Proses Pemilihan Gambar Wajah Yang Paling Cocok Dengan
Gambar Yang Dites
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