Pendeteksian Gambar Wajah Menggunakan Jaringan Saraf Tiruan Berarsitektur Multilayer Perceptron.

PENDETEKSIAN GAMBAR WAJAH
MENGGUNAKAN JARINGAN SARAF TIRUAN
BERARSITEKTUR MULTILAYER PERCEPTRON
Anthony Sitepu/9822099
Jurusan Teknik Elektro Fakultas Teknik Universitas Kristen Maranatha
Jl. Prof. Drg. Surya Sumantri 65, Bandung 40164, Indonesia
Email :anthony_sit3pu@yahoo.co.id

ABSTRAK
Pendeteksian gambar wajah (face detection) adalah salah satu tahap awal yang
sangat penting dalam sistem pengenalan wajah (face recognition) yang digunakan
dalam identifikasi biometrik. Deteksi wajah juga dapat digunakan untuk pencarian
atau pengindeksan data wajah dari citra atau video yang berisi wajah dengan berbagai
ukuran, posisi, dan latar belakang. Sistem pendeteksian gambar wajah memperoleh
kemampuan deteksinya dengan cara belajar dari contoh (learning by examples).
Tahap pendeteksian wajah dapat dibagi dalam dua langkah. Langkah pertama
adalah mengklasifikasikan, dengan mengambil sembarang citra sebagai input untuk
menghasilkan output berupa bilangan biner yang mengindikasikan keberadaan
gambar wajah pada citra. Langkah kedua adalah melakukan pemeriksaan terhadap
seluruh gambar yang berpotensi sebagai gambar wajah pada citra. Output merupakan
lokasi pada citra yang diperkirakan merupakan lokasi setiap gambar wajah.

Pada Tugas Akhir ini diuraikan sistem pendeteksian gambar wajah
menggunakan jaringan syaraf tiruan multilayer perceptron. Berdasarkan hasil
percobaan yang dilakukan, sistem pendeteksian wajah menggunakan jaringan saraf
tiruan berarsitektur multilayer perceptron memiliki tingkat keberasilan pendeteksian
sebesar 78%.
Kata Kunci : Pendeteksian Gambar Wajah, Neural Network, Multilayer Perceptron

i

ABSTRACT
Face detection is one of the most important preprocessing step in face
recognition systems used in biometric identification. Face detection can also be used
in searching and indexing still image or video containing faces in various size,
position, and background. The system achieves its ability by means of learning by
examples.
The face detection system can be divided into two steps. The first step is a
classification that takes some arbitrary image as input and outputs a binary value that
indicating whether there are any faces present in the window. The second step is the
face localization that checks all potential face contained window. Output, the location
in the window that indicating location of any face contained window. This final

project describes a face detection system using multilayer perceptron.The localization
task assumes that its input image contains a face.
In this final project describes a face detection system using multilayer
perceptron. Based on experimental results, face detection system using multilayer
perceptron achieves Successful detection rate about 78%

Keyword : Face Detection, Neural Network, Multilayer Perceptron

ii

DAFTAR ISI
ABSTRAK

..........................................................................................................i

ABSTRACT .........................................................................................................ii
KATA PENGANTAR

................................................................................iii


DAFTAR ISI …………………………………………………………………….v
DAFTAR GAMBAR …………………………………………………………...vii
DAFTAR TABEL

……………………………………………………............ix

BAB I. PENDAHULUAN

.................................................................................1

I.1

Latar Belakang

….………………………………………………....1

I.2

Identifikasi Masalah


I.3

Tujuan ………………………………….…………………………………2

I.4

Pembatasan Masalah ………………………….…………………………2

I.5

Sistematika Penulisan …………………………………….………….…...2

BAB II. DASAR TEORI

….……………………………………...….2

…………………………………………….….…...4

II.1


Citra Digital ……………………………………………………….…....4

II.2

Deteksi Wajah

…………………………………………………….4

II.1.1 Segmentasi Kulit

…………………………………….……....5

II.1.2 Proses Morfologi

……………………………………….........7

II.1.3 Connected Region Analysis ……………………………….........8
II.1.4 Ekstraksi Wajah

………………………………………….....9


II.3

Jaringan Saraf ………………………………………………………….....9

II.4

Jaringan Saraf Tiruan …………………………………………………...10
II.4.1 Neuron .…………………………………………………………11
II.4.2 Arsitektur Jaringan Saraf Tiruan

……………………….......11

II.4.3 Struktur Jaringan Saraf Tiruan

…………………………...12

II.4.4 Cara memodifikasi Bobot

…………………………………...14


II.4.5 Fungsi Aktifasi

…………………………………...14

II.4.6 Bias Dan Threshold …………………………………………...16
II.5

Multilayer Perceptron …………………………………………………...16

v

II.5.1

Arsitektur Dan Algoritma

…………………………………...17

II.5.2 Memperbaharui Bobot Pada Lapisan Keluaran


…………...18

II.5.3 Memperbaharui Bobot Pada Lapisan Tersembunyi …………...20
II.6

Penerapan Jaringan Saraf Tiruan Menggunakan
Bahasa Pemrograman Matlab

II.7

….………………………………..22

Ekstraksi Fitur Gabor …………………………………………………...23

BAB III. PERANCANGAN SISTEM

…………………………………...26

III.1


Perancangan Sistem …………………………………………………...26

III.2

Diagram Aliran Data

…………………………...........................27

III.3

Tahap pendeteksian wajah

…………………………………………...29

III.4

Jaringan Saraf Tiruan

…………………………………………...31


III.5

Gabor Filter

…………………………………………………………...32

III.6

Database

........……………………………………………………...33

III.7

Pelatihan Active Learning

…………………………………………...33

III.8


Histogram Equalization

........……………………………………...34

BAB IV. ANALISA

…………………………………………………...35

IV.1

Data

…………………………………………………………...35

IV.2

Pengukuran Evaluasi Unjuk Kerja

IV.3

Hasil Deteksi

IV.4

Pengaruh Jumlah Data Training Yang Digunakan

…………………………………...35

…………………………………………………...35

BAB V. KESIMPULAN DAN SARAN

…………………...38

…………………………………...40

V.1.

Kesimpulan …………………………………………………………...40

V.2.

Saran …………………………………………………………………...40

DAFTAR PUSTAKA
LAMPIRAN A: KODE PROGRAM

vi

DAFTAR GAMBAR
Gambar II.1 Proses deteksi wajah

……………..…..………………………….5

Gambar II.2 Korelasi antara nilai Cb dan Cr yang memperlihatkan warna kulit....6
Gambar II.3 Nilai Cb dan Cr untuk warna kulit (baris atas)
dan untuk seluruh gambar (baris bawah)

……………….……7

Gambar II.4 Proses erosi dan dilasi …………………………………………….8
Gambar II.5 Struktur sel saraf

.................................................................................... 9

Gambar II.6 Neuron ...........................................................................................11
Gambar II.7 Jaringan lapisan tunggal

.......................................................11

Gambar II.8 Jaringan lapisan banyak ...................................................................12
Gambar II.9 Jaringan saraf tiruan feedforward
Gambar II.10 Jaringan reccurent

…………………………...13

…………………………………………...13

Gambar II.11 Fungsi linier

……………………..…………..………….……..15

Gambar II.12 Fungsi tansig

...............................................……………..……..15

Gambar II.13 Fungsi logsig ..................................................………..………...16
Gambar II.14 Jaringan saraf backpropagation

..……………………….…17

Gambar II.15 Model wajah yang terdiri dari empat titik landmark …………...24
Gambar III.1 Sistem pendeteksi gambar wajah

…………………………...26

Gambar III.2 Sistem Trainer Jaringan Saraf Tiruan ………………………….....27
Gambar III.3 Diagram aliran data sistem detector wajah

..……………….....28

Gambar III.4 Tahap pertama proses pendeteksian wajah

..……………….....29

Gambar III.5 Kandidat wajah yang dikandung window

………………......29

Gambar III.6 Kandidat wajah setelah difilter

……….……………...…...30

Gambar III.7 Memperbesar pola dengan disk structure
Gambar III.8 Titik tengah dari kandidat wajah

….…………....…..30

….……………………......30

Gambar III.9 Persegi panjang untuk masing-masing titik tengah
kandidat wajah

…………………………………………...31

Gambar III.10 Hasil akhir proses identifikasi
Gambar III.11 Proses vektorisasi

……….…………………..31

…………………………….…………......32

Gambar III.12 Gabor filter dalam domain waktu

vii

……………………….......33

Gambar III.13 Metode pelatihan Active Learning

…………………………...34

Gambar IV.1 Hasil deteksi dengan false positive
dan wajah yang tidak terdeteksi
Gambar IV.2 Hasil deteksi wajah

……………..………….…36

……………………………..………….....37

Gambar IV.3 Gambar masukan untuk tabel IV.1

..……………………..…...38

Gambar IV.4 Gambar masukan untuk tabel IV.2

..……………………..…...38

viii

DAFTAR TABEL

Tabel IV.1 Pengaruh jumlah data training yang digunakan …………….…......39
pada IV.1
Tabel IV.2 Pengaruh jumlah data training yang digunakan …………….…......39
pada IV.2

ix

LAMPIRAN A
KODE PROGRAM

%-----------------------------------------------------------------------------------------------% create_gabor.m
close all;
clear all;
clc;

G = cell(5,8);
for s = 1:5
for j = 1:8
G{s,j}=zeros(32,32);
end
end
for s = 1:5
for j = 1:8
G{s,9-j} = gabor([32 32],(s-1),j-1,4*pi/5,sqrt(2),3*pi/2);
end
end

%figure;
for s = 1:5
for j = 1:8
%

subplot(5,8,(s-1)*8+j);

%

imshow(real(G{s,j}),[]);
end

end

for s = 1:5
for j = 1:8
G{s,j}=fft2(G{s,j});
end
end
save gabor G

A- 1

%-----------------------------------------------------------------------------------------------% gabor.m
function Psi = gabor (w,nu,mu,Kmax,f,sig)

% w : Window [128 128]
% nu : Scale [0 ...4];
% mu : Orientation [0...7]
% kmax = pi/2
% f = sqrt(2)
% sig = 2*pi

m = w(1);
n = w(2);
K = Kmax/f^nu * exp(i*mu*pi/8);
Kreal = real(K);
Kimag = imag(K);
NK = Kreal^2+Kimag^2;
Psi = zeros(m,n);
for x = 1:m
for y = 1:n
Z = [x-m/2;y-n/2];
Psi(x,y) = (sig^(-2))*exp((-.5)*NK*(Z(1)^2+Z(2)^2)/(sig^2))*...
(exp(i*[Kreal Kimag]*Z)-exp(-(sig^2)/2));
end
end

%-----------------------------------------------------------------------------------------------% createffnn.m
net = network;

net.numInputs = 1;

A- 2

net.numLayers = 2;

net.biasConnect = [1;1];

net.inputConnect = [1 ;...
0 ];

net.layerConnect = [0 0 ;...
1 0 ];

net.outputConnect = [0 1];
net.targetConnect = [0 1];

netInputs = ones (2160,2);
netInputs (1:2160,1)= -1;
net.inputs{1}.range = netInputs;

net.layers{1}.size = 100;
net.layers{2}.size = 1;

net.layers{1:2}.transferFcn = 'tansig';
net.layers{1:2}.initFcn = 'initnw';

net.initFcn = 'initlay';
net.performFcn = 'msereg';
net.trainFcn = 'trainscg';

net = init(net)
save net net

A- 3

%-----------------------------------------------------------------------------------------------% im2vec.m

function IMVECTOR = im2vec (W27x18)

load gabor;
W27x18 = adapthisteq(W27x18,'Numtiles',[8 3]);
Features135x144 = cell(5,8);
for s = 1:5
for j = 1:8
Features135x144{s,j} = ifft2(G{s,j}.*fft2(double(W27x18),32,32),27,18);
end
end
Features135x144 = abs(cell2mat(Features135x144));
Features135x144 (3:3:end,:)=[];
Features135x144 (2:2:end,:)=[];
Features135x144 (:,3:3:end)=[];
Features135x144 (:,2:2:end)=[];
Features45x48 = premnmx(Features135x144);
IMVECTOR = reshape (Features45x48,[2160 1]);

%-----------------------------------------------------------------------------------------------% loadimages.m

function IMGDB = loadimages
%-----------------------------------------------------------------------------------------------face_folder = 'face\'; %Lokasi gambar wajah
non_face_folder = 'non-face\'; %Lokasi gambar non-wajah
file_ext = '.png';
out_max = 0.9; % Output yang diinginkan untuk mendeteksi sebuah wajah
out_min = -0.9; % Output yang diinginkan untuk mendeteksi Non-wajah
%------------------------------------------------------------------------------------------------

A- 4

if exist('imgdb.mat','file')
load imgdb;
else
IMGDB = cell (3,[]);
end
fprintf ('Loading Faces ');
folder_content = dir ([face_folder,'*',file_ext]);
nface = size (folder_content,1);
for k=1:nface
string = [face_folder,folder_content(k,1).name];
image = imread(string);
[m n] = size(image);
if (m~=27 || n~=18)
continue;
end
f=0;
for i=1:length(IMGDB)
if strcmp(IMGDB{1,i},string)
f=1;
end
end
if f==1
continue;
end
fprintf ('.');
IM {1} = im2vec (image);
IM {2} = im2vec (fliplr(image));
IM {3} = im2vec (circshift(image,1));
IM {4} = im2vec (circshift(image,-1));
IM {5} = im2vec (circshift(image,[0 1]));
IM {6} = im2vec (circshift(image,[0 -1]));
IM {7} = im2vec (circshift(fliplr(image),1));

A- 5

IM {8} = im2vec (circshift(fliplr(image),-1));
IM {9} = im2vec (circshift(fliplr(image),[0 1]));
IM {10} = im2vec (circshift(fliplr(image),[0 -1]));
for i=1:10
IMGDB {1,end+1}= string;
IMGDB {2,end} = out_max;
IMGDB (3,end) = {IM{i}};
end
end
fprintf ('\nLoading non-faces ');
folder_content = dir ([non_face_folder,'*',file_ext]);
nnface = size (folder_content,1);
for k=1:nnface
string = [non_face_folder,folder_content(k,1).name];
image = imread(string);
[m n] = size(image);
if (m~=27 || n~=18)
continue;
end
f=0;
for i=1:length(IMGDB)
if strcmp(IMGDB{1,i},string)
f=1;
end
end
if f==1
continue;
end
fprintf ('.');
IM {1} = im2vec (image);
IM {2} = im2vec (fliplr(image));
IM {3} = im2vec (flipud(image));

A- 6

IM {4} = im2vec (flipud(fliplr(image)));
for i=1:4
IMGDB {1,end+1}= string;
IMGDB {2,end} = out_min;
IMGDB (3,end) = {IM{i}};
end
end
fprintf('\n');
save imgdb IMGDB;

%-----------------------------------------------------------------------------------------------% trainnet.m

function NET = trainnet(net,IMGDB)

%-----------------------------------------------------------------------------------------------net.trainFcn = 'trainscg';
net.trainParam.lr = 0.4;
net.trainParam.epochs = 400;
net.trainParam.show = 10;
net.trainParam.goal = 1e-3;
%------------------------------------------------------------------------------------------------

T{1,1} = cell2mat(IMGDB(2,:));
P{1,1} = cell2mat(IMGDB(3,:));
net = train(net,P,T);
save net net
NET = net;

A- 7

%-----------------------------------------------------------------------------------------------% imscan.m
function im_out = imscan (net,im)
close all
%-----------------------------------------------------------------------------------------------% Parameters
SCAN_FOLDER = 'imscan\';
UT_FOLDER = 'imscan\under-thresh\';
TEMPLATE1 = 'template1.png';
TEMPLATE2 = 'template2.png';
Threshold = 0.5;
%-----------------------------------------------------------------------------------------------warning off;
delete ([UT_FOLDER,'*.*']);
delete ([SCAN_FOLDER,'*.*']);
mkdir (UT_FOLDER);
mkdir (SCAN_FOLDER);
[m n]=size(im);
%-----------------------------------------------------------------------------------------------% Langkah pertama
C1 = premnmx(double(im));
C2 = premnmx(double(imread (TEMPLATE1)));
C3 = premnmx(double(imread (TEMPLATE2)));
Corr_1 = double(conv2 (C1,C2,'same'));
Corr_2 = double(conv2 (C1,C3,'same'));
Cell.state = int8(imregionalmax(Corr_1) | imregionalmax(Corr_2));
Cell.state(1:13,:)=-1;
Cell.state(end-13:end,:)=-1;
Cell.state(:,1:9)=-1;
Cell.state(:,end-9:end)=-1;
Cell.net = ones(m,n)*-1;
[LUTm LUTn]= find(Cell.state == 1);

A- 8

imshow(im);
hold on
plot(LUTn,LUTm,'.y');pause(0.001);
%------------------------------------------------------------------------------------------------

%-----------------------------------------------------------------------------------------------% Langkah kedua
while (1==1)
[i j] = find(Cell.state==1,1);
if isempty(i)
break;
end
imcut = im(i-13:i+13,j-9:j+8);
Cell.state(i,j) = -1;
Cell.net(i,j) = sim(net,im2vec(imcut));
if Cell.net(i,j) < -0.95
for u_=i-3:i+3
for v_=j-3:j+3
try
Cell.state(u_,v_)=-1;
end
end
end
plot(j,i,'.k');pause(0.001);
continue;
elseif Cell.net(i,j) < -1*Threshold
plot(j,i,'.m');pause(0.001);
continue;
elseif Cell.net(i,j) > 0.95
plot(j,i,'.b');pause(0.001);
for u_=i-13:i+13
for v_=j-9:j+9

A- 9

try
Cell.state(u_,v_)=-1;
end
end
end
elseif Cell.net(i,j) > Threshold
plot(j,i,'.g');pause(0.001);
elseif Cell.net(i,j) < Threshold
plot(j,i,'.r');pause(0.001);
end
for i_=-1:1
for j_=-1:1
m_=i+i_;
n_=j+j_;
if (Cell.state(m_,n_) == -1 || Cell.net(m_,n_)~=-1)
continue;
end
imcut = im(m_-13:m_+13,n_-9:n_+8);
Cell.net(m_,n_) = sim(net,im2vec(imcut));
if Cell.net(m_,n_) > 0.95
plot(n_,m_,'.b');pause(0.001);
for u_=m_-13:m_+13
for v_=n_-9:n_+9
try
Cell.state(u_,v_)=-1;
end
end
end
continue;
end
if Cell.net(m_,n_) > Threshold
Cell.state(m_,n_) = 1;

A-10

plot(n_,m_,'.g');pause(0.001);
imwrite(imcut,[SCAN_FOLDER,'@',int2str(m_),',',int2str(n_),'
(',int2str(fix(Cell.net(m_,n_)*100)),'%).png']);
else
Cell.state(m_,n_) = -1;
%imwrite(imcut,[UT_FOLDER,'@',int2str(m_),',',int2str(n_),'
(',int2str(fix(Cell.net(m_,n_)*100)),'%).png']);
plot(n_,m_,'.r');pause(0.001);
end
end
end
end
%------------------------------------------------------------------------------------------------

%-----------------------------------------------------------------------------------------------% Third Section
hold off
figure;imshow (Cell.net,[]);
xy_ = Cell.net > Threshold;
xy_ = imregionalmax(xy_);
xy_ = imdilate (xy_,strel('disk',2,4));
[LabelMatrix,nLabel] = bwlabeln(xy_,4);
CentroidMatrix = regionprops(LabelMatrix,'centroid');
xy_ = zeros(m,n);
for i = 1:nLabel
xy_(fix(CentroidMatrix(i).Centroid(2)),...
fix(CentroidMatrix(i).Centroid(1))) = 1;
end
xy_ = drawrec(xy_,[27 18]);
im_out (:,:,1) = im;
im_out (:,:,2) = im;
im_out (:,:,3) = im;

A-11

for i = 1:m
for j=1:n
if xy_(i,j)==1
im_out (i,j,1)=0;
im_out (i,j,2)=255;
im_out (i,j,3)=0;
end
end
end

% -----------------------------------------------------------------------------------------------% drawrec.m
function out = drawrec (in,w)
% Fungsi ini akan menggambar suatu persegi panjang 27x18
% Persegi panjang akan digambar pada tiap gambar biner yang merupakan
kandidat wajah.
% -----------------------------------------------------------------------------------------------[m n]=size(in);
[LUTm LUTn]=find(in);
out = zeros (m,n);
for i =1:size(LUTm,1)
try
out (LUTm(i),LUTn(i))=0;
end
try
out (LUTm(i)-14:LUTm(i)+13,LUTn(i)-9)=1;
end
try
out (LUTm(i)-14:LUTm(i)+13,LUTn(i)+8)=1;
end

A-12

try
out (LUTm(i)-14,LUTn(i)-9:LUTn(i)+8)=1;
end
try
out (LUTm(i)+13,LUTn(i)-9:LUTn(i)+8)=1;
end
end

%-----------------------------------------------------------------------------------------------% main.m
clear all;
clc;
close all;
if ~exist('gabor.mat','file')
fprintf ('Creating Gabor Filters ...');
create_gabor;
end
if exist('net.mat','file')
load net;
else
createffnn
end
if exist('imgdb.mat','file')
load imgdb;
else
IMGDB = loadimages;
end
while (1==1)
choice=menu('Face Detection',...
'Create Database',...
'Initialize Network',...
'Train Network',...

A-13

'Test on Photos',...
'Exit');
if (choice ==1)
IMGDB = loadimages;
end
if (choice == 2)
createffnn
end
if (choice == 3)
net = trainnet(net,IMGDB);
end
if (choice == 4)
[file_name file_path] = uigetfile ('*.jpg');
if file_path ~= 0
im = imread ([file_path,file_name]);
try
im = rgb2gray(im);
end
tic
im_out = imscan (net,im);
toc
figure;imshow(im_out,'notruesize');
end
end
if (choice == 5)
clear all;
clc;
close all;
return;
end
end

A-14

Lampiran B
Hasil percobaan yang digunakan
pada tabel IV.1

Grafik training neural network dengan menggunakan 10 data wajah dan 10 data
non wajah sebagai data training.

Gambar hasil deteksi dengan menggunakan 10 data wajah dan 10 data non wajah
sebagai data training.

B-1

Grafik training neural network dengan menggunakan 10 data wajah dan 30 data
non wajah sebagai data training.

Gambar hasil deteksi dengan menggunakan 10 data wajah dan 30 data non wajah
sebagai data training.

B-2

Grafik training neural network dengan menggunakan 10 data wajah dan 40 data
non wajah sebagai data training.

Gambar hasil deteksi dengan menggunakan 10 data wajah dan 30 data non wajah
sebagai data training.

B-3

Grafik training neural network dengan menggunakan 10 data wajah dan 55 data
non wajah sebagai data training.

Gambar hasil deteksi dengan menggunakan 10 data wajah dan 55 data non wajah
sebagai data training.

B-4

Grafik training neural network dengan menggunakan 20 data wajah dan 55 data
non wajah sebagai data training.

Gambar hasil deteksi dengan menggunakan 20 data wajah dan 55 data non wajah
sebagai data training.

B-5

Grafik training neural network dengan menggunakan 30 data wajah dan 55 data
non wajah sebagai data training.

Gambar hasil deteksi dengan menggunakan 30 data wajah dan 55 data non wajah
sebagai data training.

B-6

Grafik training neural network dengan menggunakan 40 data wajah dan 55 data
non wajah sebagai data training.

Gambar hasil deteksi dengan menggunakan 40 data wajah dan 55 data non wajah
sebagai data training.

B-7

Grafik training neural network dengan menggunakan 50 data wajah dan 55 data
non wajah sebagai data training.

Gambar hasil deteksi dengan menggunakan 50 data wajah dan 55 data non wajah
sebagai data training.

B-8

Grafik training neural network dengan menggunakan 69 data wajah dan 55 data
non wajah sebagai data training.

Gambar hasil deteksi dengan menggunakan 69 data wajah dan 55 data non wajah
sebagai data training.

B-9

Grafik training neural network dengan menggunakan 79 data wajah dan 55 data
non wajah sebagai data training.

Gambar hasil deteksi dengan menggunakan 79 data wajah dan 55 data non wajah
sebagai data training.

B-10

Grafik training neural network dengan menggunakan 108 data wajah dan 65 data
non wajah sebagai data training.

Gambar hasil deteksi dengan menggunakan 108 data wajah dan 65 data non wajah
sebagai data training.

B-11

Gambar hasil deteksi dengan menggunakan 108 data wajah dan 122 data non
wajah sebagai data training.

Gambar hasil deteksi dengan menggunakan 108 data wajah dan 122 data non
wajah sebagai data training.

B-12

BAB I
PENDAHULUAN

I.1

Latar Belakang
Sejalan

dengan

semakin

tingginya

kemampuan

komputer

untuk

memproses data dalam jumlah besar dengan kecepatan yang tinggi, sistem
biometrik semakin banyak diaplikasikan dalam kehidupan manusia. Sthepen Coob
(1996) mendefinisikan biometrik sebagai berikut: “The term biometrics refers to a
range of authentication systems. Its definition is a measureable characteristic or
personal trait used to recognize the identity or verify the claimed identity, of a
person through the automated means”. Secara umum, sistem biometrik adalah
sistem untuk melakukan identifikasi dengan cara menggunakan ciri-ciri fisik atau
anggota tubuh manusia, seperti wajah, sidik jari, retina mata, suara.
Dewasa ini teknologi pengenalan wajah semakin banyak diaplikasikan,
antara lain untuk sistem pengenalan biometrik. Secara umum untuk manusia,
wajah merupakan ukuran yang paling mudah dan sederhana untuk membedakan
identitas individu yang satu dengan yang lainnya. Sistem pengenalan wajah
bertujuan untuk mengidentifikasi wajah seseorang dengan cara membandingkan
wajah tersebut dengan database wajah yang sudah ada.
Pendeteksian gambar wajah merupakan persoalan menentukan posisi
wajah dalam suatu citra dan merupakan masalah klasifikasi pola dengan input
adalah suatu citra dan outputnya adalah label kelas dari citra tersebut. Dalam hal
ini terdapat dua label kelas, yaitu wajah dan non wajah

[1]

. Pendeteksian gambar

wajah (face detection) adalah salah satu tahap awal yang sangat penting sebelum
dilakukan proses pengenalan wajah (face recognition) yang digunakan dalam
identifikasi biometrik. Metode pada penentuan daerah wajah ini adalah dengan
memisahkan wilayah kulit (skin region) dengan wilayah bukan kulit (non-skin
region).
Masalah pendeteksian gambar wajah dapat dirumuskan sebagai berikut:
diberikan masukan sebuah citra digital sembarang, maka sistem akan mendeteksi
apakah ada wajah manusia di dalam citra tersebut. Keluaran dari sistem adalah
posisi subcitra berisi wajah manusia yang berhasil dideteksi.
1

Universitas Kristen Maranatha

2

I.2

Identifikasi Masalah.
1. Bagaimana mendeteksi lokasi wajah manusia dari gambar masukan yang
diberikan?
2. Bagaimana

kinerja

proses

pendeteksian

gambar

wajah

dengan

menggunakan jaringan saraf tiruan berarsitektur multilayer perceptron ?
3. Bagaiman merealisasikan suatu program yang dapat mensimulasikan
pendeteksian gambar wajah dengan menggunakan jaringan saraf tiruan
multilayer perceptron?

I.3

Tujuan.
Tujuan Tugas Akhir ini adalah untuk mempelajari cara kerja sistem

pendeteksian wajah menggunakan metode jaringan saraf tiruan multilayer
perceptron.

I.4

Pembatasan Masalah.
1. Wajah yang akan dideteksi adalah wajah yang menghadap ke depan
(frontal), dan tidak terhalangi sebagian oleh objek lain.
2. Input yang dideteksi menggunakan format JPEG.
3. Metode pelatihan dan pengujian yang digunakan adalah jaringan saraf
tiruan multilayer perceptron.

I.5

Sistematika Penulisan.
Penulisan Tugas Akhir ini terdiri dari lima bab dengan susunan sebagai

berikut:
1. BAB I PENDAHULUAN
Bab ini akan menjelaskan mengenai apa saja yang melatarbelakangi
penulisan laporan tugas akhir, mengidentifikasi masalah yang akan
diselesaikan dalam tugas akhir dan apa saja yang menjadi tujuan
penyusunan laporan Tugas Akhir, pembatasan masalah sehingga ruang
lingkup permasalahan yang akan diselesaikan menjadi lebih fokus, dan
sistematika penulisan laporan Tugas Akhir ini.
Universitas Kristen Maranatha

3

2. BAB II DASAR TEORI
Bab ini berisi materi-materi sebagai referensi dalam perancangan sistem
pendeteksian

gambar

wajah

menggunakan

jaringan

saraf

tiruan

berarsitektur multilayer perceptron.
3. BAB III PERANCANGAN
Pada bab ini akan dibahas mengenai perancangan tiap-tiap modul dari
program pendeteksian wajah yang akan dibuat.
4. BAB IV SIMULASI DAN ANALISA
Bab ini akan menampilkan dan menganalisa hasil pengujian terhadap
program pendeteksian wajah yang telah dirancang.
5. BAB V KESIMPULAN DAN SARAN
Bab ini menyimpulkan hasil perancangan, disertai saran-saran untuk
pengembangan lebih lanjut.

Universitas Kristen Maranatha

BAB V
KESIMPULAN DAN SARAN

V.1

Kesimpulan
Kesimpulan yang didapat dari penyusunan tugas akhir ini adalah sebagai

berikut:
1. Pada sistem pendeteksi wajah yang berbasis contoh, hasil yang
diperoleh sangat dipengaruhi oleh banyaknya contoh dan kualitas data
yang digunakan.
2. Pendefenisian kotak wajah yang berlebih pada proses deteksi wajah
disebabkan oleh penyesuaian terhadap dimensi gambar.
V.1

Saran
Berdasarkan hasil percobaan yang telah dilakukan, maka dapat

dirumuskan beberapa saran sebagai berikut, yaitu:
1. Untuk meningkatkan unjuk kerja sistem pendeteksi wajah, dapat
diberikan pelatihan dengan tambahan data training.
2. Untuk percobaan lebih lanjut, sistem pendeteksi gambar wajah dapat
dikombinasikan dengan pendeteksi warna kulit.

40

Universitas Kristen Maranatha

DAFTAR PUSTAKA
1. Sung, K.K., 1996, “ Learning and Example Selection for Object and
Pattern Detection”, AITR 1572, Massachusetts Institute of Technology AI
Lab.
2. Yang, M.H., Kriegman, D., Ahuja, N., 2002, “Detecting Faces in Images:
A Survey” , IEEE Trans. Pattern Analysis and Machine Intelligence, vol.
24, no. 1.
3. Marius, Diedrik., Pennathur, Sumita., Rose, Klint., “ Face Detection Using
Color Thresholding, And Eigenimage Template Matching”.
4. LeCun, Y., Bottou, L., Orr, G.B., Muller, K.R., 1998, “ Efficient
BackProp” , Neural Networks: tricks of the trade, Springer.
5. Jek,

Jong,

Siang,

”Jaringan

syaraf

tiruan

&

Pemrogramannya

menggunakan MATLAB”, Andi, 2005.
6. Haykin Simon, Neural networks acomprehensive foundation, second
edition, Prentice Hall, 1999.
7. Gonzalez, R.C., Woods, R.E., 1992, Digital Image Processing, AddisonWesley Publishing Company, USA.
8. Demuth,H., Bale, M., Neural Network Toolbox, For Use with MATlLAB,
The MathWorks, 2001.
9. http://www.geocities.com/setyo_n/pub/naskah-pub-ugm-sn.pdf,

09

Februari, 2008.
10. http://puslit.petra.ac.id/~puslit/journals/articles.php?PublishedID=INF030
40101, 6 February, 2008.
11. http://vasc.ri.cmu.edu/idb/html/face/frontal_images, 21 February 2008.
12. Kusumadewi, Sri,“Membangun Jaringan Saraf Tiruan Menggunakan
Matlab & Excel link”,Edisi Pertama,graham Ilmu,Yogyakarta, 2004.
13. Arif, Oki Pamungkas, “Pengenalan Wajah Menggunakan Metode
Fisherface”.
14. Haslim, Herman Susilo, “Aplikasi Jaringan Saraf Tiruan Pada Simulator
Pembor PCB Otomatis”, 2003.

15. Radjagukguk,

Hendrik

MH,

“Klasifikasi

Arrhythmia

Dengan

Menggunakan Jaringan Saraf Tiruan Berarsitektur Multiple Multilayer
Pperceptrons”