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 1
SRS ID SRS-SPT001
2
SRS-SPT002
3
SRS-SPT003
4
SRS-SPT004
DESKRIPSI Mengambil data wajah manusia melalui WebCam dan menyimpannya pada media penyimpanan yang sudah disiapkan sebelumnya Melakukan preprocessing secara otomatis dengan menggunakan system. Mendeteksi dan mengenali wajah yang ada pada data image wajah. 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 Gambar 3.2 merupakan gambar arsitektur aplikasi Pengenalan wajah manusia
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
Ouput dari aplikasi yaitu berupa data dari wajah yang telah dikenali oleh sistem.
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
Gambar 3.4 Data wajah
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
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
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;
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.
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
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 3.8 Source code= User Interface Offline name = Gambar 'Ridwan';elsename 'undifine';end
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
Gambar 3.12 Matrik vector berukuran 20 x 896
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–
T
i–
(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. b. Pembentukkan Kelas
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 (157+157+159+157)/4 =
155,75
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 = ∑ Dimana
Ni
i–
i–
T
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
2([
]-[
])
([
]-[
] )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 sama
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 :
di
p
x i 1
x1i
2
2i
Keterangan: x1 = Sampel Data
x2 i d p
= Data Uji / Testing = Variabel Data = Jarak = 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
Di = √∑
[
]–
- [173 168 161 152] = 3.270000000000001e+02
Klasifikasi Orang ke 1 dan Pose ke 2
Di = √∑
[
-[ 91 79 71 61]=1.510000000000000e+02
Klasifikasi Orang ke 2 dan Pose ke 1
]
Di = √∑
[
]
-[157 157 159 150]=3.115000000000001e+02
Klasifikasi Orang ke 2 dan Pose ke 2
Di = √∑
[
]
-[157 157 159 150]= 3.285000000000001e+02
Nilai 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 :
Data Presentase Ketepatan Pengenalan Wajah
Pengguna
SISTEM PENGENALAN WAJAH
Text
Admin
Data wajah
Citra 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 Admin
Data Wajah
Pengguna
Citra
1.Input Citra melalui Webcam 2.Preprocessing Data Wajah Data Wajah Data Wajah Data Resize Data Wajah Preprocessing Data Proyeksi Matriks
4.Klasifikasi
Data wajah Preprocessing Data Proyeksi Matriks
Data Proyeksi Matriks Data Jarak Minimal
3.LDA Data Keputusan
Data Keputusan
text
5.Melakukan Pengenalan Wajah
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: Data Preprocessing Data Resize
Data wajah Cropping
2.3 Resize
Data Wajah
Pengguna
2.1 Rgb to Grey
Admin
Data Wajah
Data Wajah GREYSCALE
2.2 Cropping
Data Wajah Data Wajah
Gambar 3.20 Data flow Diagram level 1 Proses 2.0 (Preprocessing)
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:
Gambar 3.21 Data flow Diagram level 2 Proses 3.0 (LDA)
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
DATA EUCLIDIAN
4.2 Mencari Jarak Minimal
Data Jarak MINIMAL
Data Keputusan
Gambar 3.22 Data flow Diagram level 3 Proses 4.0 (Training)
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 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)
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.
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.