Pengenalan Wajah Menggunakan Metode Regresi Linier.

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.

Kata kunci : Pengenalan Wajah, Regresi linear, Least Square Estimation

i

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 leastsquares 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.

Keyword : Face Recognition, Linear Regression, Least Square Estimation

ii

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


3.2

Proses Pelatihan ....................................................................................... 18

v

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

LAMPIRAN A PROGRAM MATLAB

vi

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

Gambar 4.1

Keseluruhan citra latih dan penamaannya. ................................ 34

vii

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
Tabel 4.4 Data hasil percobaan 3. ..................................................................... 39

viii

Universitas Kristen Maranatha

LAMPIRAN A
KODE PROGRAM

Program Utama Pelatihan Citra
% Program Pelatihan Citra
clear;
close all;
clc;
jum_gbr=5;
jum_orang=20;
% Proses Sebelum Pengujian
for indeks_orang=1:jum_orang
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);
ind=[indeks,'.jpg'];
x=imread(ind);
%figure;imshow(x);title('Gambar masukan (RGB)');
% Proses face detection
[gbr_det]= deteksi_face(x);
% Proses Menyamakan Ukuran Gambar Wajah
[gbr_det]=samakan_ukuran(gbr_det);
% Proses downsample
[gbr_down]=desimasi(gbr_det);
% Proses ubah ke vektor
gbr_vec=reshape(gbr_down,size(gbr_down,1)...
*size(gbr_down,2),1);
% Proses normalisasi vektor (nilai maks = 1)
x1=double(gbr_vec);
[y nmr maks]=ubah_satu(x1);
for n=1:length(y)
if n~=nmr
y(n)=y(n)/maks;
end;
end;
gbr_vec_norm=y;
simpan{bantu}=gbr_vec_norm;
bantu=bantu+1;
end;
gbr_orang{indeks_orang}=simpan;

A-1

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
save database X jum_orang jum_gbr

A-2

Program Utama Pengujian Citra
close all;
clear all;
clc;
load database.mat
% ------------------------------% Proses Pengujian
masuk = input('Nama File Uji : ','s');
masuk = [masuk,'.jpg'];
% 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);
[y_uji nmr_uji maks_uji]=ubah_satu(x_uji1);
for p=1:length(y_uji)
if p~=nmr_uji
y_uji(p)=y_uji(p)/maks_uji;
end;
end;
gbr_uji_vec_norm=y_uji;
% Menyamakan nama variabel sesuai paper
y=gbr_uji_vec_norm;

A-3

% 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));
% Nilai terdekat sementara
min_jarak=jarak(1);
indeks_min=1;
min_indeks=indeks_min;
for indeks_orang=2:jum_orang
% 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) 4.061
dk= imread('Tidak dikenali.png');
figure;imshow(dk);
else
figure;imshow(xm_satu);
title('Gambar yang mirip dengan gambar uji (RGB) : hanya satu gambar');
end

A-5

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;
keluar=imresize(masuk, [m n]);

A-6

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=rgb2gray(x);%image toolbox dependent
catch
x=sum(double(x),3)/3;%if no image toolbox do simple sum
end;
end;
x=double(x);%make sure the input is double format
[output,count,m,svec]=facefind(x);%full scan

N=size(output,2);
col=[1 0 0]; % lihat plotbox.m untuk variabel col
t=2;
if (N>0)
for i=1:N
x1=output(1,i);
x2=output(2,i);
y1=output(3,i);
y2=output(4,i);
vec=[x1 x2 y1 y2];
ind=find(isinf(vec));%special case if coordinate is Inf
a=200;%should be realmax, but bug in Matlab? (strange lines occur)
vec(ind)=sign(vec(ind))*a;
end;
end;
y=ceil(output);
z=uint8(x);
z1=z(y(3):y(4),y(1):y(2));
% figure;imshow(z1);title('Gambar wajah saja (grayscale)');
keluar = z1;

A-7

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)