i Universitas Kristen Maranatha
PENGENALAN WAJAH MENGGUNAKAN METODE
REGRESI LINIER
ABSTRAK
Ryan Dharmawan Susanto (0722005)
Jurusan Teknik Elektro Universitas Kristen Maranatha
email : ryan_sesss@yahoo.com
Salah satu masalah yang mengganggu dalam pengenalan wajah adalah
masalah ekspresi wajah. Ekspresi wajah yang berbeda antara citra latih dan citra
yang diujikan dapat menyebabkan kesalahan pengenalan dari suatu sistem
pengenalan wajah. Selain itu, biasanya sistem pengenalan wajah yang digunakan
membutuhkan citra wajah yang berdimensi besar untuk citra latih maupun citra
uji. Hal ini menyebabkan dibutuhkannya memori yang cukup besar untuk
menyimpan citra-citra tersebut. Suatu sistem pengenalan wajah diharapkan
mampu mengatasi kedua hal tersebut.
Dalam Tugas Akhir ini, dipaparkan suatu pengenalan wajah dengan
memformulakan masalah pengenalan pola dengan cara regresi linier. Dengan
konsep dasar bahwa pola-pola kelas dari suatu set citra wajah berada pada
subruang linear, kemudian dikembangkan model linear dari citra uji yang ingin
dikenali sebagai kombinasi linier dari citra-citra latih. Citra latih dan citra uji yang
digunakan merupakan citra yang berdimensi reatif kecil. Permasalahannya
diselesaikan dengan menggunakan Metoda Least Square dan penentuan kelasnya
diatur berdasarkan rekonstruksi error minimum. Pendekatan dengan menggunakan algoritma LRC (Linear Regression Classification) berada pada
kategori dari klasifikasi subruang terdekat.
Dari tugas akhir ini diketahui bahwa, sistem pengenalan wajah
menggunakan metoda regresi linier mampu mengatasi masalah ekspresi wajah
dengan persentase kesuksesan pengenalan 100% untuk citra uji yang sama persis
dengan citra latih dan 95% untuk citra uji yang berbeda dengan citra latih, namun
masih memiliki identitas kepemilikan yang sama dengan citra latih.
ii Universitas Kristen Maranatha
FACE RECOGNITION USING LINEAR REGRESSION
METHOD
ABSTRACT
Ryan Dharmawan Susanto (0722005)
Jurusan Teknik Elektro Universitas Kristen Maranatha
email : ryan_sesss@yahoo.com
One problem that interfere in face recognition is a matter of facial
expression. Different facial expressions between the training image and the test
image can lead to an errors recognition of face recognition system. In addition,
most face recognition systems requires high dimension of the face images for the
training images and the test images. This cause the need for a large enough
memory to store these images. A face recognition system should be able to cope
with both.
In this final project, presented a face recognition by formulating the
pattern recognition problem in terms of linear regression. Using a fundamental
concept that patterns from a set of face images class lie on a linear subspace, then
develop a linear model representing a probe image which want to identified as a
linear combination of the training images. The problem is solved using the
least-squares method and the decision is ruled in favor of the class with the minimum
reconstruction error. The proposed Linear Regression Classification (LRC)
algorithm falls in the category of nearest subspace classification.
From this final project is known that, a face recognition system using a
linear regression method can overcome the problem of facial expression with the
percentage of success recognition 100% for the test image which is same with a
training image and 95% for the test images which is different with the training
image, but still have same ownership of identity with the training image.
v Universitas Kristen Maranatha
DAFTAR ISI
ABSTRAK ... i
ABSTRACT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... vii
DAFTAR TABEL ... viii
BAB I PENDAHULUAN 1.1 Latar Belakang ... 1
1.2 Identifikasi Masalah ... 2
1.3 Tujuan ... 2
1.4 Pembatasan Masalah ... 2
1.5 Sistematika Penulisan ... 2
BAB II LANDASAN TEORI 2.1 Pengenalan Wajah ... 4
2.1.1 Pengelompokan Sistem Pengenalan Wajah ... 4
2.1.2 Alur Proses ... 7
2.2 Regresi Linier ... 8
2.2.1 Model Regresi Linier Sederhana ... 10
2.2.2 Model Regresi Linier Ganda ... 11
2.2.3 Least Square Estimation ... 12
2.3 Regresi Linier untuk Pengenalan Wajah ... 14
2.3.1 Algoritma Klasifikasi Regresi Linier ... 15
BAB III PROSES PERANCANGAN SISTEM PENGENALAN WAJAH MENGGUNAKAN METODA REGRESI LINIER 3.1 Database Wajah ... 17
vi Universitas Kristen Maranatha
3.2.1 Deteksi Wajah ... 20
3.2.2 Proses Lanjut terhadap Gambar Wajah ... 21
3.3 Proses Pengujian ... 22
BAB IV DATA PENGAMATAN DAN ANALISA 4.1 Proses Pelatihan Data ... 24
4.2 Proses Pengujian Data ... 26
4.2.1 Percobaan 1 ... 26
4.2.1.1 Data Pengamatan Percobaan 1 ... 26
4.2.1.2 Analisa Data Percobaan 1 ... 29
4.2.2 Percobaan 2 ... 31
4.2.2.1 Data Pengamatan Percobaan 2 ... 31
4.2.2.2 Analisa Data Percobaan 2 ... 37
4.2.3 Percobaan 3 ... 38
4.2.3.1 Data Pengamatan Percobaan 3 ... 39
4.2.3.2 Analisa Data Percobaaan 3 ... 41
BAB V KESIMPULAN DAN SARAN 5.1 Kesimpulan ... 42
5.2 Saran ... 42
DAFTAR PUSTAKA ... 43
vii Universitas Kristen Maranatha
DAFTAR GAMBAR
Gambar 2.1 Proses pengenalan wajah ... 7
Gambar 2.2 Garis regresi dalam sebuah grafik. ... 10
Gambar 2.3 Garis regresi antara dua variabel bebas. ... 12
Gambar 2.4 Metoda least square untuk menemukan A ketika AB minimum... 13
Gambar 2.5 Penjelasan mengenai downsampel, vektor citra, dan normalisasi. ... 15
Gambar 2.6 Jarak antara vektor respon terprediksi dan vektor respon asli. .. 16
Gambar 3.1 Sampel database wajah yang digunakan. ... 17
Gambar 3.2 Contoh citra yang digunakan dan hasil deteksinya. ... 18
Gambar 3.3 Diagram alir proses pelatihan. ... 19
Gambar 3.4 Diagram alir deteksi wajah. ... 20
Gambar 3.5 Diagram alir proses lanjut terhadap gambar wajah. ... 21
Gambar 3.6 Diagram alir proses pengujian ... 23
viii Universitas Kristen Maranatha
DAFTAR TABEL
Tabel 4.1 Data hasil percobaan 1. ... 26
Tabel 4.2 Data hasil percobaan 2. ... 32
Tabel 4.3 Pengujian ulang citra uji ke-11 dan ke-39 ... 38
LAMPIRAN A
A-1 Program Utama Pelatihan Citra
% Program Pelatihan Citra clear;
indeks_gbr=jum_gbr*(indeks_orang-1)+1:jum_gbr*indeks_orang; bantu=1;simpan=[];
% Proses baca gambar per orang
for m=indeks_gbr(1):indeks_gbr(jum_gbr) indeks=num2str(m);
gbr_vec=reshape(gbr_down,size(gbr_down,1)... *size(gbr_down,2),1);
A-2 clear simpan;
end;
% Menyesuaikan dengan nama variabel pada paper
for indeks_orang=1:jum_orang
temp_gbr=gbr_orang{indeks_orang}; simp=[];
for pp=1:jum_gbr
temp_simp=temp_gbr{pp}; [simp]=[simp temp_simp]; end;
X{indeks_orang}=simp; clear simp;
end;
% Menyimpan Nilai Xi
A-3 Program Utama Pengujian Citra
close all;
% Proses Baca Gambar Uji
gbr_uji = imread(masuk);
figure;imshow(gbr_uji);title('Gambar yang diuji (RGB)');
% Proses Deteksi Wajah Gambar Uji
[gbr_uji_det]= deteksi_face(gbr_uji);
% Proses menyamakan ukuran gambar wajah uji
[gbr_uji_det]=samakan_ukuran(gbr_uji_det);
figure;imshow(gbr_uji_det);title('Gambar yang diuji hasil deteksi wajah');
% Proses downsample gambar uji
[gbr_uji_down]=desimasi(gbr_uji_det);
% Proses ubah ke vektor gambar uji
gbr_uji_vec=reshape(gbr_uji_down,size(gbr_uji_down,1)... *size(gbr_uji_down,2),1);
% Proses normalisasi vektor gambar uji (nilai maks = 1)
x_uji1=double(gbr_uji_vec);
% Menyamakan nama variabel sesuai paper
A-4
% Proses mencari beta estimasi untuk tiap orang (kelas) % Khusus orang / kelas pertama
X_temp=X{1};
beta_estimasi(:,1)=inv(X_temp'*X_temp)*X_temp'*y;
% Proses mencari y estimasi untuk tiap orang (kelas) % Khusus orang / kelas pertama
y_estimasi(:,1)=X_temp*beta_estimasi(:,1);
% Proses mencari jarak untuk tiap orang (kelas) dengan y estimasi % Khusus orang / kelas pertama
jarak(1)=sqrt(sum((y-y_estimasi(:,1)).^2));
% Proses mencari beta estimasi untuk tiap orang (kelas)
% Selain orang / kelas pertama
X_temp=X{indeks_orang};
beta_estimasi(:,indeks_orang)=inv(X_temp'*X_temp)*X_temp'*y;
% Proses mencari y estimasi untuk tiap orang (kelas)
% Selain orang / kelas pertama
y_estimasi(:,indeks_orang)=X_temp*beta_estimasi(:,indeks_orang);
% Proses mencari jarak untuk tiap orang (kelas) dengan y estimasi
% Selain orang / kelas pertama
jarak(indeks_orang)=sqrt(sum((y-y_estimasi(:,indeks_orang)).^2));
if jarak(indeks_orang)<min_jarak min_jarak=jarak(indeks_orang);
mmm=num2str(indeks_tampil(mm)); mm_ind=[mmm,'.jpg'];
xm=imread(mm_ind);
% figure;imshow(xm);
A-5 end;
cek_satu=X{min_indeks};
jarak_satu(1)=sqrt(sum((y-cek_satu(:,1)).^2));
% Nilai terdekat sementara
min_jarak_satu=jarak_satu(1); indeks_min_satu=1;
for m_satu=2:jum_gbr
jarak_satu(m_satu)=sqrt(sum((y-cek_satu(:,m_satu)).^2)); if jarak_satu(m_satu) < min_jarak_satu
min_jarak_satu=jarak_satu(m_satu); indeks_min_satu=m_satu;
end; end;
% mmm_satu=num2str((min_indeks-1)*5+m_satu);
mmm_satu=num2str((min_indeks-1)*jum_gbr+indeks_min_satu); mm_ind_satu=[mmm_satu,'.jpg'];
xm_satu=imread(mm_ind_satu);
% Untuk percobaan 3 (nilai treshold)
if min_jarak_satu > 4.061
dk= imread('Tidak dikenali.png'); figure;imshow(dk);
else
figure;imshow(xm_satu);
A-6 function menyamakan ukuran gambar wajah
function[keluar]=samakan_ukuran(masuk)
% Function ini untuk menyamakan ukuran gambar wajah % Variabel masukan : masuk = gambar wajah yang mau
% disamakan ukurannya (grayscale)
% Variabel keluaran : keluar = gambar wajah yang sudah disamakan ukurannya (grayscale) ke 40 x 40
m=40; n=40;
A-7 function deteksi face (butuh file “ facefind.dll ”)
function [keluar]= deteksi_face(masuk)
% Function ini untuk melakukan proses deteksi wajah % Variabel masukan : masuk = wajah yang mau dideteksi % Variabel keluaran : keluar = cell yang isinya gambar wajah % yang sudah dideteksi
% (grayscale)
x=masuk;
if (size(x,3)>1)%if RGB image make gray scale
try
x=double(x);%make sure the input is double format
[output,count,m,svec]=facefind(x);%full scan
% figure;imshow(z1);title('Gambar wajah saja (grayscale)');
A-8 function downsampel citra
function[keluar]=desimasi(masuk)
% function ini melakukan proses downsampel
% variabel masukan : masuk = gambar yg mau didownsampel (grayscale) % variabel keluaran : keluar = gambar yg suda didownsampel (grayscale)
x1 = masuk;
for m=1:size(x1,2)
if (1+(m-1)*2)<size(x1,2) x11(:,m)=x1(:,1+(m-1)*2); else
break; end; end;
for m=1:size(x11,1)
if (1+(m-1)*2)<size(x11,1) x22(m,:)=x11(1+(m-1)*2,:); else
break; end; end;
A-9 function normalisasi vektor
function [keluar indeks maks] = ubah_satu(masuk)
% Function ini untuk mengubah nilai max masukan menjadi % satu dan menemukan indeksnya
% Variabel masukan : masuk = vektor % Variabel keluaran : keluar = vektor
% indeks = indeksnya
keluar=masuk; maks=masuk(1); indeks=1;
for k=2:length(masuk) if masuk(k)>maks maks=masuk(k); indeks=k; end;
end;
BAB I Pendahuluan
1 Universitas Kristen Maranatha
BAB I
PENDAHULUAN
1.1 Latar Belakang.
Aplikasi pengenalan wajah sudah banyak dikembangkan akhir-akhir ini
khususnya dalam bidang keamanan. Sistem pengenalan wajah ini lebih banyak
dipilih karena keunggulannya dibandingkan dengan biometrik-biometrik lainnya
(mata, sidik jari, suara, dan lain-lain). Beberapa keunggulan biometrik wajah
dibandingkan dengan biometrik lainnya, yaitu :
1. Biometrik wajah lebih natural dan tidak mudah terganggu (nonintrusive).
2. Biometrik wajah dapat diambil dengan suatu jarak yang relatif lebih jauh
dibandingkan dengan biometrik yang lain.
Namun demikian, keakuratan aplikasi pengenalan wajah tersebut sering
kali menjadi masalah untuk mengenali wajah seseorang meskipun wajah orang
tersebut terdapat dalam database wajah yang telah dibentuk. Hal ini disebabkan
oleh perbedaan citra yang terdapat dalam database dengan citra wajah yang akan
dikenali walaupun identitas wajah yang bersangkutan sama. Perbedaan ini
biasanya disebabkan oleh adanya pose, pencahayaan (illumination), ekspresi serta
oklusi pada citra wajah (contoh masalah oklusi : penggunaan kacamata hitam,
syal, dan aksesoris lainnya yang mengganggu penampilan citra wajah). Hal-hal ini
sangat berpengaruh dalam suatu sistem pengenalan wajah.
Selain itu, biasanya sistem pengenalan wajah yang digunakan
membutuhkan citra wajah yang berdimensi besar, baik untuk citra pada database
maupun citra uji. Tujuannya adalah agar karakteristik citra wajah yang akan
dibandingkan masih sama dengan citra aslinya. Hal ini menyebabkan
dibutuhkannya memori yang cukup besar untuk menyimpan citra-citra tersebut,
proses pengenalannya pun membutuhkan waktu yang relatif lebih besar.
Oleh karena itu dalam tugas akhir ini ditunjukkan suatu metoda klasifikasi
regresi linier (Linear Regression Classification) dalam aplikasinya untuk
pengenalan wajah. Metoda ini diharapkan memiliki keakurasian yang cukup baik
BAB I Pendahuluan
2 Universitas Kristen Maranatha menggunakan citra wajah yang relatif berdimensi lebih kecil (downsampled
images).
1.2 Identifikasi Masalah.
1. Bagaimana penerapan algoritma regresi linier untuk pengenalan wajah?
2. Bagaimana hasil dari penggunaan metoda Regresi Linier pada pengenalan
wajah?
1.3 Tujuan.
1. Merealisasikan penggunaan metoda regresi linier untuk penentuan kelas
pada pengenalan wajah.
2. Mengevaluasi hasil pengenalan wajah dengan menggunakan metoda
regresi linier.
1.4 Pembatasan Masalah.
1. Gambar uji & database berekstensi data JPEG.
2. Gambar input berdimensi 133 x 78 piksel.
3. Database wajah menggunakan database wajah buatan sendiri.
4. Citra wajah dalam database terdapat wajah pria dan wanita.
5. Dalam 1 citra hanya terdapat 1 citra wajah saja.
6. Simulasi menggunakan MATLAB R2008b.
7. Deteksi wajah menggunakan Local Successive Mean Quantization
Transform (Local SMQT) yang diambil dari :
http://www.mathworks.com/matlabcentral/fileexchange/13701-face-detection-in-matlab.
1.5 Sistematika Penulisan.
Laporan tugas akhir ini terbagi menjadi lima bab utama. Untuk memperjelas
penulisan laporan ini, akan diterangkan secara singkat sistematika beserta uraian
BAB I Pendahuluan
3 Universitas Kristen Maranatha 1. BAB I PENDAHULUAN
Bab ini akan menjelaskan mengenai apa saja yang melatarbelakangi
penulisan laporan tugas akhir, identifikasi masalah yang akan diselesaikan
dalam tugas akhir, apa saja yang menjadi tujuan penyusunan laporan tugas
akhir, pembatasan masalah sehingga ruang lingkup permasalahan yang
akan diselesaikan menjadi lebih fokus, serta sistematika penulisan laporan
tugas akhir ini.
2. BAB II DASAR TEORI
Bab ini memberikan penjelasan singkat mengenai metode pengenalan
wajah yang digunakan dan beberapa dasar teori yang berkaitan dengan
metoda pengenalan wajah ini.
3. BAB III PERANCANGAN
Pada bab ini akan dibahas mengenai proses perancangan dari program
pengenalan wajah yang akan dibuat.
4. BAB IV SIMULASI DAN ANALISA
Bab ini akan menampilkan dan menganalisa hasil pengujian terhadap
program pengenalan wajah yang telah dirancang.
5. BAB V KESIMPULAN DAN SARAN
Bab ini menyimpulkan hasil perancangan dan memberikan saran-saran
mengenai hal-hal yang mungkin harus ditambah atau dikurangi pada
sistem yang telah dibuat untuk mendapatkan hasil yang lebih baik untuk
BAB V Kesimpulan dan Saran
42 Universitas Kristen Maranatha
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan.
1. Jika citra yang diujikan sama dengan citra latih, maka citra uji tersebut
akan selalu dikenali tepat sama (100%) dengan citra latih yang ada dalam
database. (percobaan 1)
2. Keakuratan sistem pendeteksi wajah mempengaruhi kesuksesan suatu
sistem pengenalan wajah yang menggunakan metoda regresi linier.
(percobaan 2)
3. Sistem pengenalan wajah menggunakan metoda regresi linier lebih baik
diterapkan untuk aplikasi sistem pengenalan wajah yang bekerja pada
mode identifikasi. (percobaan 3)
4. Sistem pengenalan wajah menggunakan metoda regresi linier baik untuk
mengatasi masalah ekspresi wajah dengan persentase kesuksesan
pengenalan untuk citra uji sama persis dengan citra latih adalah 100% dan
citra uji yang berbeda dengan citra latih, namun masih memiliki identitas
kepemilikan yang sama dengan citra latih adalah 95%.
5.2 Saran.
1. Gunakan modul pendeteksi wajah yang lebih baik, agar kesuksesan
pengenalan meningkat.
2. Tambahkan variasi pose, iluminasi, dan oklusi untuk database citra wajah
43 Universitas Kristen Maranatha
DAFTAR PUSTAKA
[1] Barsi, R., Jacobs, D., “Lambertian Reflection and Linear Subspaces,”
IEEE Trans. Pattern Analysis and Machine Intelligence, vol. 25, no. 2, pp. 218-233, Feb. 2003.
[2] Chai, X., Shan, S., Chen, X., Gao, W., “Locally Linear Regression for
Pose-Invariant Face Recognition”, IEEE Trans. Image Processing, vol. 16, no. 7,pp. 1716-1725, July 2007.
[3]
http://www.mathworks.com/matlabcentral/fileexchange/13701-face-detection-in-matlab, 27 Januari 2012.
[4] Kurniawan, Denny, “Regresi Linier”, http://ineddeni.wordpress.com.
[5] Li, Stan Z., Jain, Anil K., Handbook of Face Recognition, Introduction,
Eds. Stanz. Li & Anil K. Jain, Springer, 2004.
[6] Mundy, J., Liu, A., Pillow, N., Zisserman, A., Abdallah, S., Utcke, S.,
Nayar, S., Rothwell, C., “An Experimental Comparison of Appearance
and Geometric Model Based Recognition”, Object Representation in
Computer Vision, Springer-Verlag, page 247--269, 1996.
[7] Naseem, I., Togneri, R., Bennamoun, M. 2010, “Linear Regression for
Face Recognition”, IEEE Transactions on Pattern Analysis and Machine
Intelligence, 32, 11, pp. 2106-2112.
[8] R.O. Duda, P.E. Hart, and D.G. Stork, Pattern Classification. John Wiley
& Sons, 2000.
[9] Ryan, T.P., Modern Regression Methods, Wiley-Interscience, 1997.
[10] Seber, G.A.F, Linear Regression Analysis, Wiley-Interscience,2003.