• Tidak ada hasil yang ditemukan

Verifikasi Wajah Seseorang Pada Perbedaan Usia Dengan menggunakan 2D Gabor Wavelet Untuk Menentukan Titik Ciri.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Verifikasi Wajah Seseorang Pada Perbedaan Usia Dengan menggunakan 2D Gabor Wavelet Untuk Menentukan Titik Ciri."

Copied!
21
0
0

Teks penuh

(1)

i

Verifikasi Wajah Seseorang Pada Perbedaan Usia Dengan 2D Gabor

Wavelet Untuk Menentukan Titik Ciri

Rivanodi/0322037

Jurusan Teknik Elektro, Fakultas Teknik

Universitas Kristen Maranatha

Jl. Prof. Drg. Suria Sumantri 65, Bandung 40164, Indonesia

Email:Rivanodi_2008@yahoo.com

ABSTRAK

Verifikasi wajah merupakan proses untuk mengenali dan mengidentifikasi

seseorang. Teknologi pengenalan citra wajah termasuk di dalam biometrik yang

menggunakan karekteristik manusia. Saat ini verifikasi wajah dapat digunakan dalam

berbagai hal, diantaranya untuk keamanan, pengenalan identitas pegawai, meningkatkan

efisiensi dan efektifitas berbagai kegiatan, yaitu dengan mengurangi pemakaian kartu

identitas dan kata sandi.

Dalam tugas akhir ini metode yang digunakan untuk implementasi sistem

verifikasi wajah adalah dengan menggunakan filter Wavelet Gabor 2D dan informasi

titik

titik koordinat ciri wajah. Filter Wavelet Gabor 2D dan titik

titik koordinat ini

digunakan untuk

mendapatkan informasi ciri yang penting dari citra wajah. Jumlah

vektor ciri yang dihasilkan adalah 15 vektor dimana vektor ini mewakili ciri spesifik dari

setiap citra wajah.

Hasil keluaran dari proses ini digunakan sebagai inputan pada

proses pengenalan pola dan pengklasifikasian. Untuk tahap ini, akan digunakan

metode jaringan saraf tiruan propagasi balik atau back propagation (JST-BP). Filter

2D gabor wavelet akan mengekstraksi citra normal yang berbentuk persegi dan dalam

warna grayscale dengan kombinasi dari 3 sudut, yaitu

(30˚),

(60˚), dan

(90˚),

sedangkan frekuensi yang digunakan 2,3,4,5, dan 6.

Hasil pengujian terhadap 20 kelas citra wajah yang diuji dapat memverifikasi

wajah sebanyak 12 kelas citra wajah yang dikenali, jadi sistem ini mencapai

keakuratan sebesar 60%,.

(2)

ii

Human Face Verification At Different Age Using 2D Gabor Wavelet

For Determine Feature Points

Rivanodi/0322037

Department of Electrical Engineering, Faculty of Technique

Maranatha Christian University

Jl. Prof. Drg. Suria Sumantri 65, Bandung 40164, Indonesia

Email:Rivanodi_2008@yahoo.com

ABSTRACT

Face verification is a process to recognize and identify someone by his face.

Face recognition technology includes on biometric which uses characteristics of

human. Nowadays, face recognition can be used for many things, for example:

security, employee identity recognition, making many things more efficient and

effective by reducing the using of password and identity card.

In the final project is used method which for implementation of this face

verification system is by using Wavelet Gabor 2D Filter and feature point coordinate

information. Wavelet Gabor 2D Filter and feature point coordinate information is used

to get important feature of face. Total of feature vectors which is got is 15 vectors

where these vectors represent specific features of every face. The output of this

process is used as input in pattern recognition process and classification. Back

propagation artificial neural network is used for this process. The 2D gabor wavelet

filter will extract normal image which is in square shape and grayscale color mode

with 3 angle combination, that are

30˚,

60˚,

and

90˚, the frequency are 2,3,4,5 and 6

.

Result of the testing toward 20 classes of face be experiment could to verify

the face recognizable amounting to 12 classes of face. So this system to reach amount

of 60% accurate.

(3)

Lampiran A: Data Citra

A.1 Citra Data Latih

009A00 009A03 009A05 015A00 015A03 015A05

035A00 035A03 035A07 036A00 036A03 036A05

038A00 038A03 038A05 040A00 040A03 040A05

043A00 043A03 043A05 058A00 058A03 058A05

069A00 069A03 069A05 070A00 070A03 070A05

(4)

075A00 075A03 075A05 076A00 076A03 076A05

078A00 078A03 078A05 079A00 079A03 079A05

080A00 080A03 080A05 081A00 080A03 080A05

A.2 Citra Data Uji

009A18 015A19 019A07 023A25 035A18 036A19

038A10 040A09 043A15 058A13 069A07 070A09

073A06 074A06 075A07 076A10 078A11 079A07

(5)

Lampiran B: List Program

Simulasi

function varargout = simulasi(varargin) gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @simulasi_OpeningFcn, ... 'gui_OutputFcn', @simulasi_OutputFcn, ... 'gui_LayoutFcn', [] , ...

'gui_Callback', []); if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1}); end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

gui_mainfcn(gui_State, varargin{:}); end

function simulasi_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;

guidata(hObject, handles);

function varargout = simulasi_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;

function edit5_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

function pushbutton4_Callback(hObject, eventdata, handles) run mainMenu;

close ('simulasi');

function pushbuttonEkstraksiCiri_Callback(hObject, eventdata, handles) clc;

global open_image imagepath hasil point; imagename = open_image;

imagename = strrep(imagename, '.jpg', ''); imagename = strrep(imagename, '.bmp', ''); imagename = strrep(imagename, '.JPG', ''); imagename = strrep(imagename, '.BMP', '');

[hasil point] = ekstraksi_point(strcat(imagepath,imagename)); axes(handles.axesFeaturePoint);

imshow(hasil);

(6)

image=uint8(image); % b=rgb2gray(a);

hasilGabor = two_d_gaborwavelet(image); hasilGabor = hasilGabor';

xlswrite([imagepath imagename '_gabor.xls'], hasilGabor); set(handles.edit26,'string', hasilGabor(1));

set(handles.edit27,'string', hasilGabor(2)); set(handles.edit28,'string', hasilGabor(3)); set(handles.edit29,'string', hasilGabor(4)); set(handles.edit30,'string', hasilGabor(5)); set(handles.edit31,'string', hasilGabor(6)); set(handles.edit32,'string', hasilGabor(7)); set(handles.edit33,'string', hasilGabor(8)); set(handles.edit34,'string', hasilGabor(9)); set(handles.edit35,'string', hasilGabor(10)); set(handles.edit36,'string', hasilGabor(11)); set(handles.edit37,'string', hasilGabor(12)); set(handles.edit38,'string', hasilGabor(13)); set(handles.edit39,'string', hasilGabor(14)); set(handles.edit40,'string', hasilGabor(15));

gabor = hasilGabor; point = (point/100);

hasil_ekstraksi = point + gabor; hasil_ekstraksi = hasil_ekstraksi/2;

xlswrite([imagepath imagename '_ekstraksi.xls'], hasil_ekstraksi); msgbox('Proses Ekstraksi Ciri telah berhasil dilaksanakan','', 'none'); function edit8_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

function PathUji_Sim_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function pushbuttonBrowse_Callback(hObject, eventdata, handles)

clc;

global open_image imagepath;

[open_image,imagepath]=uigetfile(...

{'*.bmp;*.jpg;','File Citra (*.bmp,*jpg,)'; '*.bmp','File Bitmap (*.bmp)';...

'*.jpg','File jpeg (*.jpg)';

'*.*','Semua File (*.*)'},'Pick an Image');

clc;

disp_image='false';

(7)

handles.fopen=fopen; guidata(hObject,handles); if ~isequal(open_image,0) global X; X=imread(fopen); XInfo=imfinfo(fopen); disp_image='true'; end if isequal(disp_image,'true')

% displaying image handles.banner = X;

axes(handles.axesOriginalImage); imshow(handles.banner);

file= [imagepath, open_image];

set(handles.axesOriginalImage, 'Visible', 'off', 'Units', 'pixels'); set(handles.NamaDataUji, 'Visible', 'on', 'string', open_image); set(handles.PathUji_Sim,'string', file);

% save parameter handles.oriIm2=X;

oriIm2=X; X=double(X); oriIm =X;

oriName =open_image; proc='encode'; handles.oriIm=oriIm; handles.oriName=oriName; handles.proc=proc; guidata(hObject,handles); tes = fopen(1:end-4); end

function edit26_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

% --- Executes during object creation, after setting all properties. function edit27_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

% --- Executes during object creation, after setting all properties. function edit28_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

% --- Executes during object creation, after setting all properties. function edit29_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

(8)

end

% --- Executes during object creation, after setting all properties. function edit30_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

% --- Executes during object creation, after setting all properties. function edit31_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

% --- Executes during object creation, after setting all properties. function edit32_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

% --- Executes during object creation, after setting all properties. function edit33_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

% --- Executes during object creation, after setting all properties. function edit34_CreateFcn(hObject, eventdata, handles)

.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

% --- Executes during object creation, after setting all properties. function edit35_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

% --- Executes during object creation, after setting all properties. function edit36_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

(9)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

% --- Executes during object creation, after setting all properties. function edit38_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

% --- Executes during object creation, after setting all properties. function edit39_CreateFcn(hObject, eventdata, handles)

), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

% --- Executes during object creation, after setting all properties. function edit40_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

% --- Executes on button press in pushbutton.

function pushbuttonPreprocessing_Callback(hObject, eventdata, handles) global X open_image imagepath;

imagename = open_image;

imagename = strrep(imagename, '.jpg', ''); imagename = strrep(imagename, '.bmp', ''); imagename = strrep(imagename, '.JPG', ''); imagename = strrep(imagename, '.BMP', ''); resultname = 'preprocess.jpg';

X = uint8(X); if (~isgray(X)) X = rgb2gray(X); end

threshold = 10;

s = fdmex(X', threshold);

sorteds = sortrows(s,3); sizes = size(sorteds,1); if sizes>0

start1 = floor(sorteds(sizes,1)-sorteds(sizes,3)/2); start2 = floor(sorteds(sizes,2)-sorteds(sizes,3)/2); psize = sorteds(sizes,3);

imgtemp = X(start2:start2+psize, start1:start1+psize);

imwrite(imgtemp,[imagepath imagename '_normal.jpg'],'jpg'); axes(handles.axesNormalImage);

(10)

% msgbox('Proses Normalisasi telah berhasil dilaksanakan','', 'none');

end

% --- Executes on button press in pushbuttonIdentifikasi.

function pushbuttonIdentifikasi_Callback(hObject, eventdata, handles) global open_image imagepath;

imagename = open_image;

imagename = strrep(imagename, '.jpg', ''); imagename = strrep(imagename, '.bmp', ''); imagename = strrep(imagename, '.JPG', ''); imagename = strrep(imagename, '.BMP', '');

%testing JST%

load 'hasil_training';

P = xlsread([imagepath imagename '_ekstraksi.xls'], 'Sheet1'); % P=xlsread('hasil ekstraksi_uji_energi_17x17.xls','Sheet2') [output,Pf,Af,e,perf]=sim(net,P,[],[])

% simpan hasil testing JST

fileSAVE = [imagepath imagename '.mat' ]; save(fileSAVE, 'output', 'e', 'perf');

[sortArray idx] = sort(output, 'descend'); hasilValue = sortArray(1)

hasilIndex = idx(1)

load('subjects.mat');

subjectName = subjects(hasilIndex,1); subjectImg1 = subjects(hasilIndex,2); subjectImg2 = subjects(hasilIndex,3); subjectImg3 = subjects(hasilIndex,4);

axes(handles.axes10);

img = imread(char(subjectImg1)); imshow(img);

axes(handles.axes18);

img = imread(char(subjectImg2)); imshow(img);

axes(handles.axes19);

img = imread(char(subjectImg3)); imshow(img);

set(handles.edit41,'string', hasilIndex);

set(handles.edit45,'string', char(subjectName));

(11)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

% --- Executes on button press in pushbutton16.

function pushbutton16_Callback(hObject, eventdata, handles) global hasil;

figure;

imshow(hasil);

function edit45_Callback(hObject, eventdata, handles) function edit45_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

% --- Executes on button press in pushbutton27.

function pushbutton27_Callback(hObject, eventdata, handles)

global point;

tabel_ekstraksi_point(point);

% --- Executes on button press in pushbutton28.

function pushbutton28_Callback(hObject, eventdata, handles) x = imread('white.bmp');

axes(handles.axesOriginalImage); imshow(x);

axes(handles.axesNormalImage); imshow(x);

axes(handles.axesFeaturePoint); imshow(x);

axes(handles.axes10); imshow(x);

axes(handles.axes18); imshow(x);

axes(handles.axes19); imshow(x);

(12)

set(handles.edit32,'string', ''); set(handles.edit33,'string', ''); set(handles.edit34,'string', ''); set(handles.edit35,'string', ''); set(handles.edit36,'string', ''); set(handles.edit37,'string', ''); set(handles.edit38,'string', ''); set(handles.edit39,'string', ''); set(handles.edit40,'string', ''); set(handles.PathUji_Sim,'string', ''); set(handles.NamaDataUji,'string', '');

2D Gabor wavelet

function [template]=two_d_gaborwavelet(image)

alpha=1/sqrt(2); i=1;

for teta=pi/6:pi/6:pi/2 for j=2:6

for x=-5:5 for y=-5:5

h=(1/(2*pi))*exp((-(alpha^(2*j))*(x^2+y^2)/2)); h1(x+9,y+9)=h;

R=cos(pi*(alpha^j)*(x*cos(teta)+y*sin(teta))); R1(x+9,y+9)=R;

size(R1);

I=sin(pi*(alpha^j)*(x*cos(teta)+y*sin(teta))); I1(x+9,y+9)=I;

end end

Rh=h1.*R1; Ih=h1.*I1;

Ro=conv2(image,Rh,'same');

Io=conv2(image,Ih,'same'); out=sqrt(Ro.*Ro+Io.*Io);

out_normalisasi= abs(out)/(max(max(out)));

[m n]=size(out_normalisasi); resolusi=m*n;

power=sum(sum(out_normalisasi.^2)); energi=power/resolusi;

template(i)= energi; i=i+1;

(13)

Training JST

function training_jst_bp;

P=xlsread('hasil ekstraksi_latih.xlsx','Sheet1')

% load kelas target yang digunakan load 'kelas_target_latih_20_neuron'; t=target_latih_20_neuron;

% pembentukan arsitrektur JST

net=newff(minmax(P),[150,200,20],{'tansig','logsig','purelin'},'traincgf');

% inisialisasi parameter-parameter training JST

net.trainParam.epochs=2000; % jumlah eppoch yang diharapkan net.trainParam.goal=1E-6; % mse yang diharapkan

net.trainParam.lr=0.8; % lr yang digunakan

net.trainParam.show =20; % setiap kelipatan 10 eppoch, ditampilkan hasil training

% training JST

[net,tr,Y,E,Pf,Af]=train(net,P,t,[],[]);

% simpan hasil training save hasil_training_1 net;

Tinytest

clc;

imageFolder = 'image data latih'; resultFolder = 'data_latih normal'; [path name] = DirBrowser(imageFolder);

for wew=1:length(path)

imname = char(path(wew)); x = imread(imname);

if (~isgray(x)) x = rgb2gray(x); end

% decision threshold.

% change this to a smaller value, if too many false detections occur. % change it to a larger value, if faces are not recognized.

% a reasonable range is -10 ... 10. threshold = 0;

%figure; hold on;

colormap gray;

s = fdmex(x', threshold);

sorteds = sortrows(s,3); sizes = size(sorteds,1); if sizes>0

(14)

psize = sorteds(sizes,3);

imgtemp = x(start2:start2+psize, start1:start1+psize); imwrite(imgtemp,[resultFolder '\' char(name(wew))],'jpg'); end axis equal; axis off end

Testing JST

function testing_jst_bp;

% deskripsi : melakukan testing atau testing JST terhadap data testing. % input : data testing, data hasil training JST, data target. % proses : data testing masuk ke dalam JST yang telah dtraining sebelumnya kemudian dengan pemrosesan

% yang bersifat "black box" dihasilkan output. Dari nilai % output tersebut dapat ditentukan data testing tersebut masuk

% ke dalam kelas target yang mana.

% output : satu nilai yang kemudian digunakan untuk mengetahui termasuk kelas target mana data testing tersebut.

% =========================================================================

% load data yang digunakan % load 'jumlah_data.mat'; % load 'data_testing.mat'; load 'hasil_training_1';

% load 'kelas_target_testing'; % load data yang digunakan

% load 'kelas_target_uji_35_neuron';

P=xlsread('hasil ekstraksi_uji_energi.xls','Sheet1') % P=abs(PP)/(max(max(PP)))

% tentukan jumlah data testing % jumlah_vektor_input=n_data_testing;

% load data testing

% inisiaisasi awal matrik A1 % A1=[];

%

% % tentukan data training A1 yang diload dari data_testing.mat % for i= 1:jumlah_vektor_input

% A1=[A1;data_testing{i}]; %ditranspose baris % end

% A=A1'; % size(A)

% load kelas target testing % inisiaisasi awal matrik t1 % A=target_uji_35_neuron;

% tentukan data training t yang diload dari kelas_target_training.mat % U=cell2mat(kelas_target_testing);

(15)

[output,Pf,Af,e,perf]=sim(net,P,[],[])

% simpan hasil testing JST

save hasil_testing output e perf;

Feature Point

function [hasil result] = ekstraksi(imagename) fileName = imagename;

loadData = importdata([fileName '.pts'],' '); result = zeros(15,1);

result(1) = sqrt((loadData(28,1)-loadData(30,1))^2 + (loadData(28,2)-loadData(30,2))^2);

result(2) = sqrt((loadData(35,1)-loadData(33,1))^2 + (loadData(35,2)-loadData(33,2))^2);

result(3) = sqrt((loadData(28,1)-loadData(33,1))^2 + (loadData(28,2)-loadData(33,2))^2);

result(4) = sqrt((loadData(30,1)-loadData(35,1))^2 + (loadData(30,2)-loadData(35,2))^2);

result(5) = sqrt((loadData(28,1)-loadData(68,1))^2 + (loadData(28,2)-loadData(68,2))^2);

result(6) = sqrt((loadData(32,1)-loadData(68,1))^2 + (loadData(32,2)-loadData(68,2))^2);

result(7) = sqrt((loadData(30,1)-loadData(68,1))^2 + (loadData(30,2)-loadData(68,2))^2);

result(8) = sqrt((loadData(35,1)-loadData(68,1))^2 + (loadData(35,2)-loadData(68,2))^2);

result(9) = sqrt((loadData(37,1)-loadData(68,1))^2 + (loadData(37,2)-loadData(68,2))^2);

result(10) = sqrt((loadData(33,1)-loadData(68,1))^2 + (loadData(33,2)-loadData(68,2))^2);

result(11) = sqrt((loadData(40,1)-loadData(68,1))^2 + (loadData(40,2)-loadData(68,2))^2);

result(12) = sqrt((loadData(44,1)-loadData(68,1))^2 + (loadData(44,2)-loadData(68,2))^2);

result(13) = sqrt((loadData(49,1)-loadData(68,1))^2 + (loadData(49,2)-loadData(68,2))^2);

result(14) = sqrt((loadData(52,1)-loadData(68,1))^2 + (loadData(52,2)-loadData(68,2))^2);

result(15) = sqrt((loadData(55,1)-loadData(68,1))^2 + (loadData(55,2)-loadData(68,2))^2);

xlswrite([fileName '_point.xls'], result);

image = imread([fileName '.jpg']); if (~isgray(image))

image = rgb2gray(image); end

temp = zeros(size(image,2),size(image,1)); for (i=1:length(loadData))

(16)

temp = rot90(temp,3); temp = flipdim(temp,2);

hasil = double(image) + temp; hasil = uint8(hasil);

(17)

1

Bab I

Pendahuluan

1.1

Latar Belakang Masalah

Biometric yaitu proses pengukuran dan pencocokan terhadap karakteristik biologis

manusia, seperti : sidik jari, iris mata, dan wajah. Dalam bidang biometrics, face recognition

dapat melakukan proses identifikasi atau verifikasi. Keuntungan dari face recognition dapat

dilakukan tanpa pengetahuan tertentu dari seseorang individu sebagai objek penelitian. Hanya

dengan memasukan citra wajah pada input device (computer), maka system sudah dapat

mengenali individu yang bersangkutan berdasarkan pencocokan dengan data yang ada pada

database.

Dalam tugas akhir ini masalah yang penulis bahas adalah membuat verifikasi wajah

seseorang sesuai dengan citra wajah orang bersangkutan dalam usia

usia yang terdapat dalam

database. Sebagai ilustrasi, misalnya akan diverifikasi foto wajah seseorang yang berusia 20

tahun, setelah dilakukan proses face recognition, maka akan diperoleh foto orang tersebut pada

usia yang berbeda, misalnya pada usia 0 tahun, 3 tahun, 5 tahun. Dimana foto wajah usia 0, 3,

dan 5 tahun tersebut telah di training di database sebelumnya.

Dalam tugas akhir ini, penulis menggunakan sistem verifikasi citra wajah berbasis fitur,

fitur ini didapatkan dari hasil ekstraksi citra wajah yang menggunakan titik ciri dan 2D

Gabor-wavelet. Kemudian hasil ekstraksi tersebut digunakan sebagai inputan ke dalam Jaringan Syaraf

Tiruan Propagasi Balik.

1.2

Perumusan Masalah

Bagaimana merancang dan merealisasikan perangkat lunak untuk melakukan verifikasi

wajah seseorang berdasarkan data-data wajah yang disediakan dalam database dan

perbedaan usia?

1.3

Tujuan

(18)

2

1.4

Pembatasan Masalah

Program dibuat dengan Matlab 7.1.

Data citra wajah dari FG-net database.

Input citra berupa 1 wajah.

Metode yang digunakan adalah 2D Gabor-wavelet dan Titik ciri.

Algoritma yang digunakan pada proses verifikasi wajah adalah Jaringan Syaraf Tiruan

Propagasi Balik.

1.5

Sistematika Penulisan

Laporan Tugas akhir ini disusun dengan sistematika sebagai berikut :

Bab 1 Pendahuluan

Bab ini berisi latar belakang masalah, identifikasi masalah, tujuan, pembatasan masalah

dan sistematika penulisan.

Bab 2 Landasan Teori

Bab ini berisi mengenai Pengantar pengolahan citra, Dasar ekstraksi ciri, jaringan syaraf

tiruan, karakteristik jaringan syaraf tiruan, jaringan syaraf tiruan propagasi balik.

Bab 3 Perancangan Sistem

Bab ini membahas mengenai perancangan system dari verifikasi wajah yang akan dibuat

dengan menggunakan 2D gabor wavelet dan titik ciri. Secara garis besar tahapannya

terdiri dari masukan citra berupa wajah, normalisasi wajah, ekstraksi wajah dengan

metode 2D gabor wavelet dan titik ciri, perhitungan JST-BP, dan verifikasi wajah.

Bab 4 Analisis Hasil Simulasi

Bab ini menyajikan proses uji coba dari system verifikasi wajah dengan metode 2D gabor

wavelet dan titik ciri dengan algoritma jaringan syaraf tiruan backpropagation.

Bab 5 Kesimpulan dan Saran

Bab ini menyimpulkan hasil perancangan dan memberikan saran mengenai tujuan

(19)

43

Bab V

Kesimpulan dan Saran

5.1

Kesimpulan

Dari hasil analisa pengujian sistem pengenalan citra wajah menggunakan Filter 2D

Gabor Wavelet dan informasi koordinat titik ciri serta pemodelan dengan jaringan saraf tiruan

Backpropagation, maka dapat diambil kesimpulan sebagai berikut :

1.

Perangkat lunak untuk simulasi verifikasi wajah dengan mengunakan 2D gaborwavelet

dan titik ciri berhasil direalisasikan dengan tingkat keberhasilan sebesar 60%.

5.2

Saran

Pengembangan yang dapat dilakukan pada tugas akhir ini antara lain:

1.

Titik

titik koordinat ciri dari tiap citra wajah yang digunakan didapat hanya dengan

cara mengambil informasi ini dari database yang tersedia. Untuk pengembangan

sistem ini, dapat dilakukan proses mendapatkan feature point secara otomatis.

2.

Proses normalisasi citra yaitu tinytest tidak dibahas dalam tugas akhir ini, untuk itu

proses normalisasi citra selanjutnya dapat dilakukan pengembangan lebih lanjut.

3.

Jumlah vektor ciri yang digunakan dalam Tugas Akhir ini adalah 15. Untuk

pengembangan lebih lanjut dapat dilakukan lebih dari 15.

4.

Proses ekstraksi dengan filter 2D gabor wavelet dalam sistem ini menggunakan sudut

(30˚),

(60˚), dan

(90˚), sedangkan frekuensi yang digunakan 2,3,4,5, dan 6

.

(20)

44

Daftar Pustaka

1.

Riyanto, Sigit. 2005. Pengolahan Citra Digital. Yogyakarta : ANDI.

2.

Dewi Agushinta R, Adang Suhendra, Hendra. Ekstraksi Fitur Dan

Segmentasi Wajah Sebagai Semantik Pada Sistem Pengenalan Wajah.

Universitas Gunadarma. Depok. 2006.

3.

Dharma, Eddy Muntina. 2005. Diktat Kuliah Digital Image Processing

[DIP] Fundamental. Jurusan Teknik Informatika STT Telkom Bandung.

4.

Fajar, Ujang. 2006. Mendeteksi Wajah Menggunakan Sketsa. Jurusan

Teknologi Informasi Politeknik Elektronika Institut Teknologi Sepuluh

Nopember Surabaya.

5.

FG-NET face database

http://www.fgnet.rsunit.com

6.

G. Hua, S. Guangda, D. Cheng, Feature Points Extraction from Faces,

Tsinghua University, China. 2005

7.

Kusumadewi, Sri. 2003. Artificial Intelligence (Teknik dan Aplikasinya).

Yogyakarta : Graha Ilmu

8.

Prasetio, Bayu, ”Citra Wajah Sebagai Alat Identifikasi,”

http://home.bprasetio.or.id/articles.php

9.

Suyanto ST. 2002. Buku Ajar Intelijensia Buatan. Jurusan Teknik

Informatika STT Telkom Bandung.

10.

Triantoro, A.K. Identifikasi Tanda Tangan Menggunakan Filter 2D

Gabor-wavelet dan Jaringan syaraf tiruan Adaptive Resonance Theory

(ART).Bandung, 2006.

11.

Jek Siang, Jong.2004. jaringan syaraf tiruan & pemrograman

menggunakan matlab.Yogyakarta : ANDI

12.

Tryandini, enggar.”pengenalan wajah dengan menggunakan filter 2D

gabor wavelet”.

Jurusan Teknik Informatika STT Telkom Bandung.

13.

Toto Wibowo, Agung.”ANN Exclusive Training 2007”.

Jurusan Teknik

(21)

45

14.

Heron.”pengenalan wajah melalui webcam dengan metode gabor

wavelet-

kernel fisher analysis ”.

Jurusan Teknik Elektro Universitas

Kristen Maranatha.

15.

Wibawa, Darma AA.”pengenalan wajah manusia berbeda usia dengan

metode ekstraksi 2D gaborwavelet dan feature point dengan algoritma

jaringan syaraf tiruan propagasi balik”.

Jurusan Teknik Informatika STT

Telkom Bandung.

16.

Ho, Bruce K. T.,Ma, Marco., Panwar, Ramesh. K., Saipetech, Pongskom,

“Medical Image Enhancement Using Wavelet Transform and Arithmetic

Coding”.

17.

Adiguna, “

Algoritma Pengenalan Sidik Jari Menggunakan Adaptive

Resonance Theory Dan Filter Gabor

”,

STT

Telkom

Bandung,

2006.

18.

Suyanto, “

Algoritma Genetika dalam MATLAB

”, Penerbit ANDI

Yogyakarta, 2005.

Referensi

Dokumen terkait

Hipotesis tindakan dalam penelitian ini adalah Upaya Peningkatan Hasil Belajar Siswa melalui model Role Playing pada Tema Indahnya Kebersamaan kelas IV SDN 01

Dengan adanya kemungkinan bahwa jam operasi mesin yang tersedia tidak digunakan seluruhnya, maka tujuan yang diharapkan untuk dicapai, juga dapat diartikan sebagai

Perencanaan dan penganggaran berjangka menengah dan berbasis kinerja menggambarkan pencapaian sasaran atau tujuan instansi pemerintah dalam rangka pelaksanaan visi, misi dan

Dari definisi diatas maka dapat disimpulkan bahwa akuntansi adalah sebuah sistem untuk mencatat, mengklasifikasi, mengolah, dan menyajikan data transaksi kejadian

membahas tentang makna denotatif dan konotatif pada reklame, slogan, dan poster. Berdasarkan penelitian tersebut guru dapat mengarahkan siswa betapa pentingnya pemahaman mengenai

Semakin besar konsentrasi pati yang terkandung dalam edible film maka daya larut edible film terhadap air semakin rendah, hal tersebut disebabkan pati yang

Laundry Q Pontianak memerlukan aplikasi pelayanan jasa dan persediaan bahan baku guna memastikan kegiatan bisnis yang dijalankan dapat berjalan dengan efektif dan efisien..

Pengukuran periodisitas parasit dalam darah dengan melakukan pengambilan sedian darah jari sampel yang positif cacing mikrofilaria pada survey darah jari