BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis
Sistem Pengenalan wajah ini bertujuan untuk mengenali wajah seseorang dari data wajah-wajah orang yang telah diinputkan terlebih dahulu. Dengan memasukkan beberapa pose orang dalam setiap orang agar dalam pengenalan wajah seseorang bisa lebih detail.
3.1.1 Analisis Kebutuhan fungsional
Dalam membangun sistem pengenalan wajah ini diperlukan batasan yang jelas sebagai tujuan utamanya agar tidak keluar dari rencana yang telah ditetapkan. Beberapa kebutuhan sistem yang akan didefinisikan dalam Software Requirement Specification antara lain :
Tabel 3.1 Software Requirement Specification
No SRS ID DESKRIPSI
1 SRS-SPT001 Mengambil data wajah manusia melalui WebCam dan menyimpannya pada media penyimpanan yang sudah disiapkan sebelumnya
2 SRS-SPT002 Melakukan preprocessing secara otomatis dengan menggunakan system.
3 SRS-SPT003 Mendeteksi dan mengenali wajah yang ada pada data image wajah.
4 SRS-SPT004 Sistem akan mengeluarkan text bila wajah terverifikasi dengan benar
3.1.2 Analisis Kebutuhan Non Fungsional
Analisis kebutuhan non fungsional merupakan analisis kebutuhan di luar fungsi daripada sistem,analisis ini terdiri dari analisis hardware, analisis software, analisis user (pengguna) dan analisis jaringan.
3.1.2.1 Analisis Hardware ( Perangkat Keras )
Untuk spesifikasi perangkat keras minimum yang digunakan dalam pembuatan sistem ini adalah 1 buah notebook dengan spesifikasi sebagai berikut :
1. Resolusi Monitor : Resolusi monitor minimal bila dijalankan pada ukuran 800x600 piksel.
2. Processor : Intel Core2Duo. 2 Ghz
3. Harddisk : 160 GB
4. RAM 1 GB
5. Webcam
3.1.2.2 Analisis Software ( Perangkat Lunak )
Adapun untuk melengkapi perangkat keras yang telah disebut sebelumnya maka diperlukan juga perangkat lunak diantaranya
1. Sistem operasi yang digunakan adalah Windows 7 Ultimate SP 1
2. Matlab 2012a Digunakan untuk membuat sistem Pengenalan wajah
3. Microsoft Office Visio 2010 digunakan untuk merancang SSAD
3.1.3 Arsitektur Sistem
Gambar 3.1 merupakan arsitektur sistem Pengenalan wajah manusia yang tergambar pada
Gambar 3.1 Arsitektur Sistem Pengenalan wajah Di dalam arsitektur sistem terdapat beberapa tahap yaitu :
a. Pada tahap pertama data gambar yang sudah dalam bentuk grayscale akan mengalami ekstraksi ciri dengan metode LDA buat mencari nilai karakteristik dan mengurangi dimensi diproyeksikan terhadap nilai normalisasi gambar yang akan diujikan.
b. Selanjutnya gambar yang akan diujikan dicari nilai normalisasi dan diproyeksikan hasil terhadap gambar hasil pelatihan sebagai matriks proyeksi. c. Lalu hasil matriks proyeksi diklasifikasikan menggunakan KNN setelah diklasifikasi maka akan mengetahui wajah yang kita cari itu akan mengetahui pemilik data wajah yang kita cari.
3.1.4 Arsitektur Aplikasi
Pengguna Antarmuka
Klasifikasi Data wajah
terekstrak Ekstraksi ciri Preprocessing Data wajah Gambar 3.2 Arsitektur aplikasi Sistem Pengenalan wajah
Dalam gambar dijelaskan beberapa tahap dalam sistem pengenalan wajah sebagai berikut :
1. User input data image
Proses tahap pertama yaitu pengguna melakukan input pada aplikasi berupa data sebuah image.
2. Preprocessing
Preprocessing adalah tahap awal dalam mengolah data dari data mentah sampai ke bentuk data yang dibutuhkan dalam proses pengenalan data.
3. Data ekstraksi ciri
Data ektraksi ciri merupakan data ciri seseorang dari setiap gambar setelah mengalami proses ektraksi ciri mengunakan algoritma LDA.
4. Klasifikasi KNN
Pada tahap selanjutnya program proses klasifikasi untuk mengetahui pemilik data.
5. Output
3.1.5 Analisis Sistem Pengenalan Wajah Mengunakan Linear Discriminant
Analysis
A. Flowchart Linear Discriminant Analysis
Gambar 3.3 merupakan flowchart dari algortima LDA dari awal inputan berupa matrik vektor hingga menghasilkan matrik proyeksi
Gambar 3.3 Flowchart Linear Discriminant Analysis
Pada proeses LDA memiliki beberapa tahap dalam proses seperti pada Gambar 3.3 adapun tahap LDA sebagai berikut :
a. Tahap pertama siapkan data wajah dengan beberapa variasi disiapkan misaln yang digunakan adalah 2 orang dengan 10 variasi. Setelah data disiapkan selanjutnya akan mengalami proses Preprocessing dimana dalam proses preprocessing tersebut data wajah akan mengalami
beberapa pase yaitu RGB to Grey merubah data gambar ke bentuk keabuan, selanjutnya proses cropping yaitu memotong gambar yang tidak diperlukan dan resize yaitu memperkecil ukuran gambar.
b. Setelah didapatkan data wajah hasil dari preprocessing selanjutnya data tersebut diubah dengan menjadi matriks vector dan nanti hasilnya berupa matriks dengan dimensi 20 x 896 selanjutnya hasil dari matriks vector lalu membentuk kelas karena ada dua wajah manusia yang berbeda dengan demikian kelas ada dua.
c. Tahap selanjutnya mencari ukuran gambar tersebut yang dimana akan digunakan dalam mencari matriks scatter within class. Dan pada proses selanjutnya mencari nilai normalisasi dimana nilai tersebut didapat dari nilai matriks vector dikurangi matriks gambar
d. Kemudian mencari nilai rata-rata setiap kelasnya dan rata totalnya yang akan digunakan dalam mencari matriks scater between class. e. Pada tahap selanjutnya mencari matriks scatter within class dengan
maksud mencari jarak di antara kelas dan mencari matriks scatter between class dengan maksud mencari jarak di dalam kelas sendiri. f. Lalu mencari nilai covarian yang merupakan inputan dari nilai matriks
scatter betwenn class dikalikan invers dari matriks scatter within class. Selanjutnya mencari nilai eigen vector dan eigen value
g. Setelah didadapat nilai eigen value selanjutnya diurutkan dari terbesar sampai terkecil yang bersesuain dengan indeks eigen vector dan diambil beberapa saja misalnya mengambil 60 variabel dari 896
variabel yang kemudian diproyeksikan terhadapa nilai normalisasi sebagai matriks proyeksi.
h. Lalu data hasil matriks proyeksi sebagai inputan dalam mengklasifikasi dengan menggunakan knn dengan maksud mencari nilai ketetanggaan dan mencari nilai minimum yang paling dekat.
i. Lalu didapatkan gambar wajah itu milik siapa
B. Langkah langkah membangun aplikasi sistem pengenalan wajah dengan
metode Linear Discriminant Analysis dan metode pengembangan aplikasi
prototype
Pada tahap ini akan dijelaskan tahap demi tahap dalam membangun sistem pengenalan wajah manusia dengan metode pengembangan perangkat lunak yang digunakan prototype sebagai berikut :
a. Tahap pengumpulan bahan dan data
Pada tahap ini mengumpulkan bahan bahan referensi dalam membangun sebuah sistem pengenalan wajah dan data-data wajah yang diperlukan dalam database. Dalam perancangan ini menggunakan 2 orang dengan 10 variasi berbeda yaitu foto Firman dan Tommy yang pencahayaan sudah dikondisikan dengan ukuran 1200 x 1600 pixel seperti pada Gambar 3.4
b. Tahap membangun prototyping
Membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian bagaimana user interface dari sistem pengenalan wajah manusia tersebut akan disajikan. Pada tahap ini merancang bagaimana membuat user interface dengan sistem pengenalan wajah secara offline atau online seperti perancangan user interface sistem pengenalan wajah offline pada Gambar 3.5 dan perancangan user interface sistem pengenalan wajah online pada Gambar 3.6
Gambar 3.5 User Interface Sistem Pengenalan wajah offline
Pada Gambar 3.5 merupakan sistem pengenalan wajah secara offline dimana pada saat browse gambar akan mendapatkan gambar yang akan dikenali, setelah itu lalu tekan tombol recognize untuk mengenali data wajah tersebut setelah ditekan kemudian muncul nama pemilik wajah yang diujikan. Selain itu pada Gambar 3.6 yang merupakan sistem pengenalan wajah dengan online dimana sistem online yang dibuat agar data input dari webcam merupakan data gambar yang akan diujikan.
Gambar 3.6 User Interface Sistem Pengenalan wajah online
Pada saat aplikasi tersebut dibuka maka wajah kita akan terbaca oleh webcam dan langsung memproses pengenalan wajah tersebut.ketika proses sudah selesai dan wajah yang akan dikenali dan diverifikasi dengan menekan tombol cek maka ada suara selamat siang pak firman dan sebaliknya tidak sesuai dengan data akan muncul suara alarm.
c. Tahap mengkodekan sistem
Dalam tahap ini prototyping sistem pengenalan wajah manusia yang sudah disepakati diterjemahkan ke dalam bahasa pemrograman matlab. Pada tahap ini dalam mengkodekan sistem terdapat beberapa modul yang harus dilakukan yaitu modul preprocessing, ekstraksi ciri dengan metode LDA, klasifikasi, dan user interface pengenalan wajah secara offline maupun online. Dimana salah satu modul source code pada saat pengenalan wajah secara offline dapat dilihat pada Gambar 3.7
Gambar 3.7 Source code User Interface Offline
Gambar 3.7 merupakan bagian dari pengkodean agar sebuah user interface agar dari hasil perancangan user interface sebelumnya dapat dibangun dalam bentuk tampilan yang diinginkan dari perancangan dan buat Source code lebih lengkapnya dapat dilihat pada lampiran b pada bagian source code.
function varargout = Testing(varargin) gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @welcome_OpeningFcn, ... 'gui_OutputFcn', @welcome_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;end; function welcome_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject; guidata(hObject, handles);end;
function varargout = welcome_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;end;
function open_Callback(hObject, eventdata, handles) [nama_file, nama_path] = uigetfile('*.png');
if ~isequal(nama_file, 0)
handles.data = imread(fullfile(nama_path, nama_file)); guidata(hObject,handles);
img = imresize(handles.data,5); axes(handles.image1);
imshow(img);
save 'D:\Skripsi Munaqosah\program\sistem offline\nama_path' nama_path
save 'D:\Skripsi Munaqosah\program\sistem offline\nama_file' nama_file else return; end set(handles.text3,'String',nama_file); set(handles.text4,'String',size(handles.data,1)); set(handles.text5,'String',size(handles.data,2));end; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
Gambar 3.8 Source code User Interface Offline
function varargout = Home(varargin) end;
function Home_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject; guidata(hObject, handles);
vid = videoinput('winvideo', 1, 'RGB24_320x240');
src = getselectedsource(vid); % get properties of video object;get(src)
save 'D:\Skripsi Munaqosah\program\webcam\vid' vid; vid.FramesPerTrigger = 1;
vid.ReturnedColorspace = 'rgb'; triggerconfig(vid, 'manual');
vidRes = get(vid, 'VideoResolution'); imWidth = vidRes(1);
imHeight = vidRes(2);
nBands = get(vid, 'NumberOfBands');
hImage = image(zeros(imHeight, imWidth, nBands), 'parent', handles.Webcam); preview(vid, hImage); rectangle('position',[90 30 120 160],'edgecolor','k','LineWidth',4) rectangle('position',[90 30 120 160],'edgecolor','w','LineWidth',1) rectangle('position',[120 100 56 64],'edgecolor','w','LineWidth',1);end
function varargout = Home_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output; end
load 'D:\Skripsi Munaqosah\program\proses LDA\EigenSampel';
load 'D:\Skripsi Munaqosah\program\proses LDA\DataUji'; [HM,WM] = size(DataUji);
dir = 'D:\Skripsi Munaqosah\program\webcam\'; name = '';imageUji='test.png';numOfPose = HM/4;
Gambar = [dir imageUji];imageTesting = imread(Gambar); imageTesting = double(imageTesting);
[H,W] = size(imageTesting);
imageTesting = reshape (imageTesting,1,H*W); FinalValue = imageTesting * EigenSampel; FinalValue = repmat(FinalValue,HM,1); EucDis = (DataUji - FinalValue).^2;
sumMatrix = double(sum(transpose(EucDis))); sumMatrix = transpose(sumMatrix);
degreesMatrix = sqrt(sumMatrix);
[minimum,index] = min(degreesMatrix); if index >= 1 && index <= numOfPose name = 'Firman baik';
elseif index > numOfPose && index <= numOfPose * 2 name = 'Tomcat';
elseif index > numOfPose && index <= numOfPose * 3 name = 'Hadoy';
elseif index > numOfPose && index <= numOfPose * 4 name = 'Ridwan';elsename = 'undifine';end
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
Gambar 3.8 merupakan bagian dari pengkodean agar sebuah user interface agar dari hasil perancangan user interface sebelumnya dapat dibangun dalam bentuk dimana data yang akan dikenali merupakan input dari webcam langsung kemudian wajah tersebut akan dikenali tampilan yang diinginkan dari perancangan dan buat Source code lebih lengkapnya dapat dilihat pada lampiran b pada bagian source code.
a. Preprocessing
Pada tahap ini aka membuat mengkodekan sistem preprocessing dimana dalam tahap ini data wajah yang dilakukan pada tahap pengumpulan data akan diproses pada beberapa proses yaitu RGB to grey, cropping, resize.
Pada pase RGB to grey merubah gambar berbentuk keabuan agar dalam pengolahan sebuah sistem pada saat proses tidak terlalu berat seperti pada Gambar 3.8
Gambar 3.9 data wajah berbentuk grayscale
Pada pase sesudah dari grayscale selanjutnya data akan mengalami proses cropping yaitu dimana akan dilakukan pemotongan terhadap gambar yang sudah berbentuk keabuan akan dipotong background yang tidak diperlukan. Hasil dari proses ini data gambar menjadi ukuran 701 x 801 pixel seperti pada Gambar 3.10
Gambar 3.10 data wajah hasil cropping
Selanjutnya langkah berikutnya akan mengalami proses resize pengecilan ukuran gambar dari asalnya 701 x 801 pixel menjadi berukuran 28 x 32 pixel seperti pada Gambar 3.11
Gambar 3.11 data wajah hasil resize
b. Extraction fiture
Sebelum melakukan pelatihan terlebih dahulu gambar diubah menjadi bentuk matriks vector yang sehingga berukuran 20 x 896 pixel seperti pada Gambar 3.12
Matriks scatter between class
Di dalam LDA ada tahap dimana harus menghitung matriks scatter between class atau mencari jarak di dalam kelas dimana foto Firman sebagai kelas pertama dan foto Tomy sebagai kelas dan hasil dari matriks scatter between class akan menghasilkan matriks berukuran 896 x 896. Dimana rumus matriks scatter between adalah
SB = ∑ Ni i – i – T
(1) Dimana Ni = Jumlah Image pada kelas ke i
i = rata – rata kelas ke i = rata-rata total
C = Jumlah kelas yang ada Matriks scatter within class
Selanjutnya dalam LDA kemudian mencari mencari matriks scatter within class yaitu mencari jarak dengan kelas lain agar lebih memaksimalkan matriks dalam setiap kelas dan hasil dari perhitungan ini akan membentuk matriks 896 x 896 pixel dengan rumus
SW = ∑ Ni( Xk - i) ( Xk - i) T
(2)
Dimana Xk = Image ke k
C = Jumlah kelas yang ada
I = rata-rata kelas ke I (Xk adalah anggota kelas ke-i
Covarian
Pada tahap ini mencari nilai variasi atau covarian dengan rumus cov=sb*invers(Sw)
Dimana cov = nilai covarian
Sb = Matriks scatter between Sw = matriks scatter within class
dan nanti akan menghasilkan matriks berukuran 896x896 pixel
Eigen value dan eigen vector. Pada tahap ini selanjutnya mencari nilai karakteristik yaitu pada fungsi matlab menggunakan fungsi eig yang mencari nilai eigen vector dan eigen value dan hasil matriks eigen vector adalah matriks berukuran 896 x 896 dan eigen value berukuran 896 x 1 dan mengurutkan eigen vector dari terbesar sampai terkecil.
Matriks proyeksi
Selanjutnya nilai eigen diambil 100 untuk melakukan proyeksi matriks terhadap nilai normalisasi sebagai inputana data latih
c. Klasifikasi K-NN
Pada proses klasifikasi ada dua inputan yaitu data uji adalah data yang akan dicari kemiripan wajahnya dan data latih adalah data yang telah melakukan pelatihan agar dikenali
Menentukan iterasi
Sebelum mencari nilai terdekat atau nilai minimal sebelumnya menentukan iterasi yang akan dilakukan berapa kali dimana dalam percobaan ini menggunakan iterasi 1 dimana data akan diuji secara satu persatu.
Jarak ketetangaan
Pada tahap ini akan mencoba klasifikasi data dengan inputan data latih dan data uji dengan rumus
Dimana a=data uji dan b= data latih pada saat sebuah foto pada Gambar 3.9
Gambar 3.13 foto Firman yang diuji
Setelah foto di Gambar 3.13 diklasifikasi menunjukkan bahwa foto tersebut milik dengan naman Firman
d. User interface sistem offline dan online
Tahap selanjutnya mengkodekan sistem secara offline maupun online untuk tampilan antarmuka dalam pengenalan wajah. Sistem offline digunakan dengan cara browse gambar lalu melakukan pengenalan sedangkan yang sistem online melalui capture camera video webcam secara langsung terhadap orang lalu melakukan pengenalan.
d. Tahap mengujikan sistem
Dalam tahap ini sistem akan diujikan dengan beberapa cara yaitu Pengujian blackbox dengan pengujian yang lebih ke aplikasi dengan mengecek apakah fungsi berfungsi sebagaimana mestinya. Pengujian selanjutnya yang dilakukan adalah pengujian dengan mencari komposisi penggunaan data yang dilatih dan data yang diuji agar mengetahui tingkat pengenalan seberapa besar pengenalan tersebut dilakukan. Pengujian selanjutnya yaitu menguji sistem secara langsung atau online yaitu dengan melakukan pengenalan wajah langsung kepada Firman dan Tommy dengan setiap orangnya melakukan 50 kali pengenalan agar mengetahu tingkat presentase pengenalan seberapa banyak mengetahui
kesalahan dan mengetahui tingkat kebenarannya. Salah satu hasil pengujian seperti pada Gambar 3.14
Gambar 3.14 tingkat pengenalan Firman
Dimana pada pengujian terhadap Firman memiliki tingkat kebenaran sebesar 52% dan tingkat kesalahan mempunyai presentasi 48%, selain itu pengujian dilakukan terhadap kepada seseorang yang bernama Hadi dengan tingkat pengenalan pada Gambar 3.15
Gambar 3.15 tingkat pengenalan Hadi
Sedangka tingkat pengenalan kepada Hadi mempunyai presentasi sebesar 80% dan tingkat kesalahan sebesar 20%
e. Tahap evaluasi sistem
Pada tahap ini dilalukan evaluasi sistem apabila sistem mengalami kekurangan akan kembali lagi kepada tahap mengkodekan sistem dan tahap pengujian sistem dan apabila sistem dirasa cukup maka sistem siap dipakai
f. Tahap menggunakan sistem
Pada tahap ini sistem yang telah dievaluasi kemudian sistem pengenalan wajah ini siap digunakan dan dimplementasikan kepada aplikasi tertentu seperti absensi dengan menggunakan wajah maupun sistem keamanan yang menggunakan wajah. Kemudian sistem seperti pada Gambar 3.14 siap digunakan
Gambar 3.16 User interface online
Sistem ini digunakan dengan cara wajah yang akan dikenali harus sesuai kotak persegipanjang yang telah disediakan setelah itu tekan tombol verifikasi kemudian mengeluakan text hasil dari pengenalan wajah.
Selain Gambar 3.17 merupakan sebuah sistem dibuat juga user interface dengan sistem pengenalan wajah secara offline
Gambar 3.17 User interface offline
Gambar 3.17 merupakan sebuah antarmuka dengan bekerja mengambil gambar yang akan diujikan kemudian menekan tombol recognize kemudian keluar text yang akan dikenali
C. Ilustrasi perhitungan Linear Discriminant Analysis
a. Preprocessing
1. Grayscale
Merubah citra RGB menjadi citra grayscale adalah salah satu contoh proses pengolahan citra menggunakan operasi titik. Untuk mengubah citra RGB menjadi citra grayscale adalah dengan menghitung rata-rata nilai intensitas RGB dari setiap piksel penyusun citra tersebut. Rumus matematis yang digunakan adalah sebagai berikut:
Dimana RGB mempunyai nilai ( 0 sampai 255, 0 sampai 255, 0 sampai 255) misal nilai suatu gambar RGB adalah (12,9,27) maka dalam mencari nilai grayscale akan dibagi 3 dalam mencari rata-rata dimana nilai untuk mendapatkan grayscale adalah (16) Jadi sebelum gambar diproses mencari ruang ciri maka terlebih dahulu gambar yang akan dilatih akan mengalami proses preprocessing agar dalam penggalian ciri tidak terlalu berat dalam prosesnya.
2.Cropping
Setelah gambar dalam bentuk grayscale kemudian citra akan mengalami proses Cropping. Dimana dalam proses ini akan mengalami proses pemotongan gambar yang dianggap tidak perlu sehingga citra membentuk citra dengan tampilan yang diperlukan dalam mencari ruang ciri.
3. Resize
Setelah melalui proses Cropping maka akan dilakukan proses Resize. Dimana Resize adalah teknik pengecilan suatu citra misalnya dalam tahap ini terdapat gambar yang berukuran 1600 x 1200 pixel lalu setelah mengalami proses Resize suatu citra diperkecil sampai suatu citra berukuran 37 x 28 pixel
b. Extraction Fiture Linear Discriminant Analysis
Linear Discriminant Analysis bekerja berdasarkan analisa matrik penyebaran yang bertujuan menemukan suatu proyeksi optimal sehingga dapat memproyeksikan data input pada ruang dengan dimensi yang lebih kecil dimana semua pola (pattern) dapat dipisahkan semaksimal mungkin.
Karenanya untuk tujuan pemisahan tersebut maka LDA akan mencoba untuk memaksimalkan penyebaran data-data input diantara kelas-kelas yang berbeda dan sekaligus juga meminimalkan penyebaran input pada kelas yang sama. Perbedaan antar kelas direpresentasikan oleh matriks Sb (scatter between class) dan perbedaan dalam kelas direpresentasikan oleh matriks Sw (scatter within class).Dalam penjelasan akan menggunakan 2 orang dimana setiap orang masing masing mempunyai 2 pose yang akan digunakan sebagai penggali ciri.
1. Mencari Matriks Scatter Between
SB disebut matriks scatter between class atau penyebaran data antar kelas yang
berbeda. Bila pada PCA dicari rata-rata seluruh image saja, rnaka pada LDA juga harus dicari lebih dulu rata-rata image yang terdapat dalam satu kelas.
a. Merubah Gambar ke Matriks Vector
Pada tahap ini akan merubah 2 gambar orang dengan masing-masing memiliki setiap 2 pose maka hasil yang didapatkan adalah sebagai berikut :
Tabel 3.2 Data matriks dengan masing-masing dua variasi
Baris pertama adalah milik orang pertama dengan pose pertama. Baris kedua adalah milik orang pertama dengan pose kedua. Baris ketiga adalah milik orang kedua dengan pose pertama. Baris ketiga adalah milik orang kedua dengan pose kedua.
Karena gambar hanya dicontohkan 2 orang yang berbeda makan akan membentuk 2 kelas.
Tabel 3.3 data kelas A
Tabel 3.4 data kelas B
c. Menghitung Jumlah gambar tiap kelas
Dalam tahap ini akan menghitung berapa gambar yang ada setiap kelas ternyata setiap kelas memiliki 2 gambar setiap gambar dengan nilai N=2;
d. Menghitung rata-rata per kelas
Pada tahap selanjutnya maka akan dihitung rata-rata setiap kelasnya berikut proses perhitungannya dan beserta hasilnya :
Rata-rata Kelas A Pose pertama
(173+168+161+152)/4 = 163,5 Pose Kedua
(91+79+71+61)/4 = 75,5
Tabel 3.5 Rata-rata kelas A
Rata-rata Kelas B Pose pertama
Pose Kedua
(164+164+165+164)/4 = 164,25
Tabel 3.6 Rata-rata kelas B
e. Menghitung Rata-rata total
Pada tahap selanjutnya mencari rata-rata total dengan perhitungan dan hasilnya sebagai berikut :
Pose pertama
(Rata-rata Kelas A+Rata-rata Kelas B)/2 = (155,75+163,5)/2=159,625 Pose kedua
(Rata-rata Kelas A+Rata-rata Kelas B)/2 = (164,25+75,5)/2=119,875 Tabel 3.7 rata-rata total
Setelah semua tahap yang dibutuhkan dalam mencari matriks Scatter Between selanjutnya data tersebut dimasukkan ke rumus mencari matriks Scatter Between :
SB = ∑ Ni i – i – T
Dimana Ni = Jumlah Image pada kelas ke i i = rata – rata kelas ke i
= rata-rata total
C = Jumlah kelas yang ada
f. Matriks Scatter Between B
([ ]-[ ] )T = [ ]
g. Matriks Scatter Between A
2([ ]-[ ] ) ([ ]-[ ] ) T = [ ]
h. Matriks Scatter Between keseluruhan
Kemudian dicari Scatter Between keseluruhan SbB + SbA / 2 maka hasilnya adalah = [ ]
i. Mencari Matriks Scatter Within Class
SW disebut matriks scatter within class atau penyebaran data dalam satu kelas yang
1. Menghitung Nilai Normalisasi
Pada tahap ini akan melakukan nilai normalisas dengan rumus sebagai berikut matrikvector-ratakelas tertentu
Nilai normalisasi B
Matrik vector B - rata-rata dari kelasB [ ] - [ ] = [ ] Nilai normalisasi A
Matrik vector A- rata kelas A Matrik vector B-rata kelas B [
] - [
] = [ ]
Kemudian dicari Scatter Between keseluruhan SwB + SwA / 2 maka rumus dan hasilnya adalah : ZeromeanT - Zeromean
Mencari Matriks Scatter Within Class B SwIbu=ZeromeanBT - ZeromeanB [ ]-[ ] = [ ]
Mencari Matriks Scatter Within Class B SwIbu =ZeromeanBT - ZeromeanB
[ ]-[ ]
= [ ]
Mencari Matriks Scatter Within Class Keseluruhan Sw=SwB+SwA [ ] + [ ] = [ ]
j. Mencari Matriks Covarian
Pada tahap ini mencari nilai covarian dengan rumus : Covarian=Sb*InversSw [ ] * [ ] = [ ]
k. Menghitung Eigen Vector dan Eigen Value
Dalam mencari Eigen dapat dicari dengan rumus AX= X
[ ]= [ ]=[ ] l. Proyeksi Matriks
Pada tahap memproyeksikan matriks dilakukan dengan cara sebagai berikut : Proyeksi Matriks = Zeromean * Jumlah eigen vector yang diambil
Pada percobaan ini eigen vector misalnya diambil sejumlah 4 nilai eigen maka
[ ]*[ ] = [ ] c. Klasifikasi K-NN
K-Nearest Neighbor (KNN) adalah suatu metode yang menggunakan algoritma supervised dimana hasil dari query instance yang baru diklasifikan berdasarkan mayoritas dari kategori pada KNN. Tujuan dari algoritma ini adalah mengklasifikasikan obyek baru bedasarkan atribut dan training sample.
Dimana rumus KNN itu sendiri adalah :
p i i i ix
x
d
1 2 1 2 Keterangan: 1 x = Sampel Data 2x = Data Uji / Testing
i = Variabel Data
d = Jarak
p = Dimensi Data
Dimana data uji adalah data matrik proyeksi yang sebelumnya dibahas sedangkan sampel data adalah gambar yang akan jadi sampel dan dalam proses knn tersebut akan mencari nilai tetangga yang berdekatan bila sudah mengetahu nilai tersebut maka ada suatu keputusan nilai itu dekat dengan nilai siapa.Berikut proses perhitungan dengan Metode KNN
Klasifikasi Orang ke 1 dan Pose ke 1
D
i =√∑
[
]
– - [173 168 161 152] = 3.270000000000001e+02Klasifikasi Orang ke 1 dan Pose ke 2
D
i =√∑
[
]
-[ 91 79 71 61]=1.510000000000000e+02D
i =√∑
[
]
-[157 157 159 150]=3.115000000000001e+02Klasifikasi Orang ke 2 dan Pose ke 2
D
i =√∑
[
]
-[157 157 159 150]= 3.285000000000001e+02Nilai klasifikasi tersebut tersebut diklasifikasi dimana nilai orang ke 1 pose ke 1 dan orang ke 1 dan pose kedua dikenal sebagai orang kesatu dan nilai klasifikasi orang ke 2 pose ke 1 dan orang ke 2 pose ke 1 dikenal sebagai orang kedua.
3.2 Pemodelan sistem
Dalam Pemodelan sistem citra wajah digunakan untuk memberikan gambaran tentang sistem yang akan dibuat yaitu penggambaran sistem dalam bentuk diagram konteks ini menggambarkan seluruh sistem yang akan dibuat dan akan diimplementasikan dalam sebuah program, tetapi diagram konteks yang dibuat masih bersifat umum dan belum menggambarkan proses pengenalan wajah dengan jelas. Maka diagram tersebut perlu didekomposisi lagi untuk mendapatkan gambaran sistem dengan jelas.
3.2.1 Diagram Konteks
Berikut merupakan Diagram Konteks Pengenalan Wajah Manusia yang tergambar pada Gambar 3.18 :
Pengguna SISTEM PENGENALAN WAJAH Admin Data wajah Text Citra Wajah
Data Presentase Ketepatan Pengenalan Wajah
Gambar 3.18 Diagram Context Sistem Pengenalan Wajah 3.2.2 Data Flow Diagram Level 0
Berikut merupakan Data Flow Diagram Level 0 saat melakukan proses Pengenalan Wajah Manusia yang tergambar pada Gambar 3.19
Pengguna 1.Input Citra melalui Webcam Citra 2.Preprocessing 4.Klasifikasi 5.Melakukan Pengenalan Wajah Data Wajah Data Wajah Preprocessing Data Wajah Data Wajah Data Keputusan Data Keputusan text Admin Data Wajah 3.LDA
Data wajah Preprocessing
Data Proyeksi Matriks Data Proyeksi Matriks
Data Proyeksi Matriks
Data Jarak Minimal Data Resize
Gambar 3.19 Data flow Diagram level 0 Sistem Pengenalan wajah Penjelasan gambar :
1. Citra berasal dari Pengambilan gambar dari Webcam kemudian disimpan dalam suatu folder dengan satu orang pengguna yang akan dikenali diambil beberapa posse agar dalam penggenalan suatu wajah lebih akurat.
2. Lalu admin Memasukkan data identitas pada saat klasifikasi dan melakukan Preprocessing Wajah yang telah diambil lalu melakukan Preprocessing dengan tiga tahap yaitu :
a. Gambar diubah ke dalam bentuk GrayScale b. Gambar Ukurannya diresize
c. Gambar Yang telah di resize lalu mengalami Cropping
3. Gambar yang telah mengalami Preprocessing lalu akan diproses dengan Metode Linear Discriminant Analysis agar dapat mencari nilai Eigen atau ciri yang akan dicari.
4. Kemudian dari eigen tersebut membentuk suatu data eigen yang akan diklasifikasi
5. Setelah diklasifikasi maka ciri seseorang tersebut akan dikenali. 3.2.3 Data Flow Diagram Level 1 Proses 2.0 (Preprocessing)
Berikut merupakan Data Flow Diagram Level 1 Proses 2.0 (Training) saat melakukan proses Pengenalan Wajah Manusia yang tergambar pada Gambar 3.20: 2.1 Rgb to Grey 2.2 Cropping 2.3 Resize Admin
Data Wajah GREYSCALE
Data Preprocessing Data Resize Pengguna Data Wajah Data Wajah Data Wajah Data Wajah
Data wajah Cropping
Penjelasan Gambar :
Admin melakukan pengolahan terhadap data yang telah input melalui webcam kemudian akan mengalami proses Preprocessing dimana gambar tersebut akan mengalami beberapa tahap yaitu :
a. Rgb to grey yang merubah gambar dari grayscale menjadi dalam bentuk Grayscale atau keabuan
b. Resize yaitu proses dimana setelah diubah menjadi grayscale kemudian ukuran dikecilkan.
c. Setelah ukuran dikecilkan maka gambar melakukan Cropping yaitu pemotongan gambar sehingga background yang tidak perlu dipotong.
Setelah mengalami proses tersebut maka akan diproses memakai linear discriminant analysis dan Diklasifikasi sehingga citra dikenali.
3.2.4 Data Flow Diagram Level 2 Proses 3.0 (LDA)
Berikut merupakan Data Flow Diagram Level 3 Proses 4.0 (Training) saat melakukan proses Pengenalan Wajah Manusia yang tergambar pada Gambar 3.21:
Penjelasan gambar :
Pertama proses akan mengambil data preprocessing yang kemudian diolah melalu proses ekstraksi fitur menggunakan Linear Discriminant Analysis dimana tahap-tahap sebagai berikut
a. Merubah gambar preprocessing dalam bentuk matriks.
b. Lalu Mencari Matriks Scatter Betwenn atau penyebaran data antar kelas yang berbeda. Bila pada PCA dicari rata-rata seluruh image saja, rnaka pada LDA juga harus dicari lebih dulu rata-rata image yang terdapat dalam satu kelas. c. Lalu mencari matriks Scatter within class atau penyebaran data antar kelas
yang berbeda. Bila pada PCA dicari rata-rata seluruh image saja, rnaka pada LDA juga harus dicari lebih dulu rata-rata image yang terdapat dalam satu kelas.
d. Lalu mencari matrik kovarian dan dari matrik kovarian dicari nilai eigen vector dan eigen value dan diurutkan secara menurun dari nilai tertinggi sampai terbawah
e. Kemudian hasil nilai eigen diproyeksikan terhadap gambar yang akan diuji 3.2.5 Data Flow Diagram Level 3 Proses 4.0 (Training)
Berikut merupakan Data Flow Diagram Level 3 Proses 4.0 (Training) saat melakukan proses Pengenalan Wajah Manusia yang tergambar pada Gambar 3.22:
Data wajah Proyeksi
Matriks Data Wajah
4.1 Hitung Jarak Euclidian 4.2 Mencari Jarak Minimal DATA EUCLIDIAN
Data Jarak MINIMAL Data Keputusan
Penjelasan gambar :
a. Pertama mencari jarak tetangga terdekat
b. Setelah didapat kemudian mencari jarak minimal
c. Dari data diurutkan dipilih beberapa data yang akan dikomparasi. 3.2.6 Pseudocode Linear Disciminant Analysis
Berikut ini merupakan Pseudocode dari algortima LDA
Gambar 3.23 Pseudo code
Pada Gambar 3.23 menggambarkan bagaimana Linear Discriminant Analysis ini bekerja dari data wajah yang berupa input data matriks dan menghasilkan output berupa proyeksi matriks. Algoritma Menentukan_nilai_matrik_proyeksi_dengan_LDA Deklarasi MatrikVektor,Class1,Class2,MeanClass1,MeanClass2,MeanTotal,SizeC lass1,SizeClass2,CenterClass1,CenterClass2,ScatterWithin,Scatter Between,Covarian,eigenvector,eigenvalue, FinalData, MatrikProyeksi:double Deskripsi Read(MatrikVektor) Class1=MatrikVektor(1:9, :);Class1=MatrikVektor(10:18,:) SizeClass1=size(class1);SizeClass2= size(class2) MeanClass1=mean(Class1);MeanClass2=mean(Class2) MeanTotal= MeanClass1+ MeanClass2
CenterClass1=Class1-(MeanClass1,sizeClass1) CenterClass2=Class1-(MeanClass2,sizeClass2) Sw1= CenterClass1’*CenterClass1 Sw2= CenterClass2’*CenterClass2;ScatterWithin=Sw1+Sw2 Sb1=SizeClass1*(MeanClass1-MeanTotal)’*(MeanClass1-MeanTotal) Sb2=SizeClass2*(MeanClass2-MeanTotal)’*(MeanClass2-MeanTotal) ScatterBetween=Sb1+Sb2 Covarian = Inv(Sw)*Sb [eigvector,eigvalue] = eig(Covarian) [i,indeks] = sort(eigenvalue) FinalData = eigenvector(:,indeks) MatrikProyeksi = ZeroMean * FinalData Output(MatrikProyeksi)
3.3 Database
Pada penelitian ini, tidak menggunakan tool database yang biasa digunakan untuk pembuatan aplikasi, misalnya dengan MySql, PostgreSql ataupun dengan Oracle. Karena aplikasi yang dibangun pada skripsi ini hanya sebagai contoh dari implementasi metode LDA yang merupakan pokok bahasan utama dari skripsi ini.
Cara penyimpanan yang digunakan adalah dengan menggunakan matriks yang disimpan pada file dengan ekstensi .mat yang kemudian file tersebut disimpan pada folder project. Data yang didapat disimpan pada matriks yang dibuat dengan menggunakan aplikasi MATLAB 2012.