BAB II
KAJIAN PUSTAKA
2.1 State Of Art Review
Penelitian tentang verifikasi wajah di mobile device telah banyak dan dengan beberapa metode yang berbeda, berikut beberapa penelitian yang berkaitan:
Penelitian yang berjudul “Face Analysis and Recognition in Mobile Device” tahun 2008 oleh Mauricio Villegas Santamaria membandingkan beberapa metode verification wajah dari segi waktu dan ketepatannya serta membandingkan metode verification wajah di computer dan perangkat mobile berbasis j2me yaitu handphone seri n70.
Penelitian yang berjudul “Face Recognition in Mobile device” tahun 2010 oleh Mattias Junered telah menerapkan gabungan algoritma PCA, LDA, SVM, ICA, metode matching graph dan metode Neural Network.
Penelitian oleh Donovan Gentles dalam tesisnya yang berjudul “Aplication of Biometrics in Mobile Voting”. Tahun 2012, dalam penelitian tersebut memfokuskan tentang penggunaan aplikasi biometric untuk mobile voting.
Jurnal “Android Based Mobile Application Development and its Security”, Tahun 2012 oleh Suhas Holla, dkk, menuliskan hasil penelitian tentang keunggulan dan keamanan mobile application android based .
Dalam penelitian Sin Kwan Kang tahun 2012 yang berjudul “A Study on the Mobile
Communication Network with Smart Phone for Building of Location Based Real Time Reservation System” telah secara khusus menggunakan mobile based untuk system reservasi
Dalam artikel yang berjudul ”Face Recognition Application on Android” oleh Aditya Pabbaraju dan Srujankumar Puchakayala, menggabungkan algoritma eigenfaces dan algoritma
fisherfaces pada perangkat android mobile. Menghasilkan hasil kecepatan mendeteksi wajah 0,9
detik, preprocessing 0,03 detik, projecting dengan eigen vector space 0,4 detik, detecting the min 0,01 detik( variable), similar growth entire process 1,4 detik.
Jurnal tahun terbit 2012 atas nama Jianfeng Ren etc yang berjudul “A Complete and
Fully Automated Face Verification System On Mobile Devices”,pada artikel ini membahas
verifikasi wajah di mobile khususnya untuk PDA dengan 02FN database.
Tabel 2. 1. Penelitian Sebelumnya
No Nama Judul Deskripsi
1.
Mauricio Villegas Santamaria dkk (2008)
Face Analysis and Recognition in Mobile Device
Membandingkan beberapa metode
verification wajah dari segi waktu dan
ketepatannya serta membandingkan metode verification wajah di computer dan perangkat mobile berbasis j2me yaitu nokia seri n70
2. Mattias Junered, dkk (2010)
Face Recognition in Mobile device
Menerapkan gabungan algoritma PCA, LDA, SVM, ICA, metode matching
graph dan metode Neural Network
untuk face recognition
3. Donovan Gentles, dkk (2012) Aplication of Biometrics in Mobile Voting
Memfokuskan tentang penggunaan aplikasi biometric untuk mobile voting
4. Suhas Holla, dkk (2012)
Android Based Mobile Application Development and its Security
Keunggulan dan keamanan mobile application android based
5. Sin Kwan Kang, dkk (2012)
A Study on the Mobile Communication Network with Smart Phone for Building of Location Based
Secara khusus menggunakan mobile based untuk system reservasi dengan menggabungkan augmented reality
Real Time Reservation System 6. Aditya Pabbaraju, dkk (2012) Face Recognition Application on Android
Menggabungkan algoritma eigenfaces dan algoritma fisherfaces pada perangkat android mobile. Menghasilkan hasil kecepatan mendeteksi wajah 0,9 detik,
preprocecingnya 0,03 detik, projecting dengan eigen vector space 0,4 detik,
detecting the min 0,01 detik( variable),
similar growth entire process 1,4 detik
7. Jianfeng Ren,dkk (2012)
A Complete and Fully Automated Face Verification System On Mobile Devices
Membahas verifikasi wajah di mobile khususnya untuk PDA dengan 02FN
database.
Tabel 2. 2. Metriks Kebaharuan
Judul Jurnal Ilmiah
Komponen 1 Topik Thesis (mobile) Komponen 2 Topik Thesis (verifikasi wajah) Komponen 3 Topik Thesis (android)
Face Analysis and Recognition in Mobile Device oleh Mauricio
Villegas Santamaria dkk (2008)
Face Recognition in Mobile device oleh
Mattias Junered, dkk (2010)
Aplication of Biometrics in Mobile Voting oleh Donovan Gentles, dkk (2012)
Android Based Mobile Application Development and its Security oleh
Suhas Holla, dkk (2012)
A Study on the Mobile Communication Network with Smart Phone for Building of Location Based Real Time Reservation System oleh
Sin Kwan Kang, dkk (2012)
Face Recognition Application on Android
oleh Aditya Pabbaraju, dkk (2012)
A Complete and Fully Automated Face Verification System On Mobile Devices oleh
Jianfeng Ren,dkk (2012)
Aplikasi Absensi Berbasis Mobile
Dengan Verifikasi Wajah Menggunakan Algoritma Fisherface
2.2 Konsep Pemrograman Berorientasi Objek
Pemrograman berorientasi objek merupakan suatu konsep yang membagi program menjadi objek - objek yang saling berinteraksi sama lain. Objek merupakan kesatuan entitas yang memiliki sifat dan tingkah laku. Keuntungan OOP (Hermawan, 2004) antara lain, yaitu :
a. Alami (Natural),
b. dapat diandalkan (Reliable),
d. mudah untuk dimaintain (Maintainable), e. dapat diperluas (Extendable),
f. efesiensi waktu,
Java merupakan salah satu bahasa pemrograman yang menggunakan konsep OOP. Java adalah suatu teknologi di dunia software computer. Selain merupakan suatu bahasa pemrograman, Java juga merupakan suatu platform. Mulanya Java diciptakan dengan tujuan untuk menghasilkan bahasa komputer sederhana yang dapat dijalankan di peralatan sederhana dengan tidak terikat pada arsitektur tertentu. Terakhir teknologi Java melahirkan J2ME (Java 2 Micro Edition) yang sudah diadopsi oleh Nokia, Siemens, Sony Ericsson, Motorola, Samsung untuk menghasilkan aplikasi mobile baik games maupun software bisnis dan berbagai jenis software lain yang dapat dijalankan di peralatan mobile seperti ponsel (Rickyanto, 2005).
2.3 Perangkat Lunak
Perancangan perangkat lunak adalah disiplin manajerial dan teknis yang berkaitan dengan pembuatan dan pemeliharaan produk perangkat lunak secara sistematis, termasuk pengembangan dan modifikasinya, yang dilakukan pada waktu yang tepat dan dengan mempertimbangkan faktor biaya.
Software engineer bertugas melakukan analisa, rancangan, uji dan verifikasi,
dokumentasi, pemeliharaan perangkat lunak, serta pengelolaan proyek. Software engineer harus mempunyai keterampilan dan pengalaman seorang programmer.
Programmer adalah individu yang bertugas dalam hal rincian implementasi, pengemasan,
dan modifikasi algoritma serta struktur data, dituliskan dalam sebuah bahasa pemrograman tertentu.
Dalam membuat sebuah perangkat lunak terdiri dari beberapa tahap / fase yang menggambarkan sebuah kegiatan yang akan dilakukan sehingga memudahkan dalam mendefinisikan, mengembangkan, menguji, mengantarkan, mengoperasikan, dan memelihara produk perangkat lunak. Setiap fase membutuhkan informasi masukan, proses dan produk yang terdefinisi dengan baik. Deretan fase tersebut adalah :
a. Analisa terdiri dari fase pertama yaitu perencanaan yang menghasilkan dua produk yaitu Pendifinisian Sistem (System Definition) dan Perencanaan Proyek (Poject Plan) dan fase kedua yaitu penetapan persyaratan yang menghasilkan sebuah produk spesifikasi kebutuhan perangkat lunak (Software Requirements Specifications).
b. Perancangan melakukan identifikasi terhadap komponen perangkat lunak (fungsi, arus data, penyimpanan data), hubungan antar komponen, struktur perangkat lunak (dekomposisi menjadi modul-modul dan antar muka Perangkat Lunak). Fase ini menghasilkan arsitektur rinci, terutama dalam bentuk algoritma-algoritma.
c. Implementasi adalah terjemahan langsung arsitektur rinci ke dalam bahasa pemrograman tertentu.
d. Pengujian terdiri dari fase pertama yaitu uji integrasi dengan melakukan pengujian terhadap semua modul dan pengantarmukaan sehingga pada level sistem dapat beroperasi dengan benar, dan fase kedua yaitu uji penerimaan dengan melakukan berbagai pengujian, mengacu kepada berbagai persyaratan yang telah ditentukan.
e. Pemeliharaan terdiri dari fase peningkatan kemampuan, adaptasi terhadap lingkungan pemrosesan, dan melakukan berbagai koreksi atas kesalahan yang terjadi
2.4 Perangkat Mobile
Perangkat mobile merupakan perangkat bergerak yang digunakan sebagai alat komunikasi dan komputasi seperti PDA (Personal Digital Assistance), smartphone dan cell
phone. Berbagai perangkat mobile ini dibedakan berdasarkan spesifikasi perangkat keras dan
perangkat lunaknya seperti processor, ukuram memory, screen resolution, sistem operasi, web
browser dan sebagainya. Berikut ini adalah berbagai contoh gambar perangkat mobile.
Gambar 1.1. Contoh Perangkat Mobile
Perangkat mobile memiliki banyak jenis dalam hal ukuran, desain dan layout, tetapi memiliki kesamaan karakteristik yang sangat berbeda dari sistem desktop.
a. Ukuran yang kecil
Perangkat mobile memiliki ukuran yang kecil. Konsumen menginginkan perangkat yang terkecil untuk kenyamanan dan mobilitas mereka.
b. Memory yang terbatas
Perangkat mobile juga memiliki memory yang kecil, yaitu primary (ram) dan secondary (disk). Pembatasan ini adalah salah satu factor yang mempengaruhi penulisan program untuk berbagai jenis dari perangkat ini. Dengan pembatasan jumlah memory, pertimbangan-pertimbangan khusus harus diambl untuk memelihara pemakaian sumber daya.
Sistem mobile tidaklah setangguh desktop. Ukuran, teknologi dan biaya adalah beberapa faktor yang mempengaruhi status dari sumber daya ini.
d. Mengkonsumsi daya yang rendah
Perangkat mobile menghabiskan sedikit daya dibandingkan dengan mesin desktop. Perangkat ini harus menghemat daya karena mereka berjalan pada keadaan diman daya yang disediakan dibatasi oleh baterai.
2.5 Smartphone
Smartphone adalah telepon genggam yang mempunyai kemempuan tingkat tinggi, kadang-kadang dengan fungsi yang menyerupai komputer. Belum ada standar pabrik yang menentukan arti telepon cerdas. Smartphone merupakan telepon yang bekerja menggunakan seluruh perangkat lunak system operasi yang menyediakan hubungan standar dan mendasar bagi pengembang aplikasi. Bagi yang lainnya, telepon cerdas hanyalah merupakan sebuah telepon yang menyajikan fitur canggih seperti surel (surat elektronik), internet dan kemampuan membaca buku elektronik (e-book) atau terdapat papan ketik (baik sebagaimana jadi maupun dihubung keluar) dan penyambung VGA. Dengan kata lain, telepon cerdas merupakan komputer kecil yang mempunyai kemampuan sebuah telepon. Pertumbuhan permintaan akan alat canggih yang mudah dibawa kemana-mana membuat kemajuan besar dalam pemrosesan, pengingatan, layar dan sistem operasi yang di luar dari jalur telepon genggam sejak beberapa tahun ini.
Kebanyakan alat yang dikategorikan sebagai telepon pintar menggunakan sistem operasi yang berbeda. Dalam hal fitur, kebanyakan telepon pintar mendukung sepenuhnya fasilitas surel dengan fungsi pengatur personal yang lengkap. Fungsi lainnya dapat menyertakan miniatur papan ketik QWERTY, layar sentuh atau D-pad, kamera, pengaturan daftar nama, penghitung kecepatan, navigasi piranti lunak dan keras, kemampuan membaca dokumen bisnis,
pemutar musik, penjelajah foto dan melihat klip video, penjelajah internet, atau hanya sekedar akses aman untuk membuka surel perusahaan.
Gambar 2. 2. Contoh Perangkat Smartphone
2.6 Sistem Operasi Android
Android adalah sistem operasi berbasis Linux dirancang terutama untuk perangkat mobile touchscreen seperti smartphone dan komputer tablet. Awalnya dikembangkan oleh Android, Inc, yang didukung Google finansial dan kemudian dibeli pada tahun 2005, Android ini diresmikan pada tahun 2007 bersama dengan pendiri Open Handset Alliance: konsorsium hardware, software, dan telekomunikasi perusahaan yang ditujukan untuk memajukan terbuka standar untuk perangkat mobile. Yang pertama ponsel Android terjual pada bulan Oktober 2008. Android adalah open source dan Google merilis kode di bawah Lisensi Apache. Ini kode sumber terbuka dan lisensi permisif memungkinkan perangkat lunak untuk secara bebas dimodifikasi dan didistribusikan oleh produsen perangkat, operator nirkabel dan pengembang antusias. Selain itu, Android memiliki komunitas besar pengembang menulis aplikasi yang memperluas fungsionalitas dari perangkat, ditulis terutama dalam versi disesuaikan dari bahasa pemrograman Java. Pada bulan Oktober 2012, ada sekitar 700.000 aplikasi yang tersedia untuk Android, dan
perkiraan jumlah aplikasi yang diunduh dari Google Play, toko aplikasi utama Android, adalah 25 miliar. Faktor-faktor ini telah memberikan kontribusi terhadap pembuatan Android platform smartphone dunia yang paling banyak digunakan, menyalip Symbian pada kuartal keempat tahun 2010 dan software pilihan bagi perusahaan teknologi yang membutuhkan biaya rendah, disesuaikan, sistem operasi ringan untuk perangkat teknologi tinggi tanpa mengembangkan satu dari awal. Sebagai hasilnya, meskipun terutama dirancang untuk ponsel dan tablet, ia telah melihat aplikasi tambahan di televisi, konsol game, kamera digital dan elektronik lainnya. Sifat terbuka Android telah lebih jauh mendorong komunitas besar pengembang dan penggemar untuk menggunakan kode sumber terbuka sebagai dasar untuk proyek-proyek berbasis komunitas, yang menambahkan fitur baru untuk pengguna tingkat lanjut atau membawa Android ke perangkat yang resmi dirilis menjalankan operasi lainnya sistem. Sebuah laporan pada Juli 2013 menyatakan bahwa pangsa Android di pasar smartphone global, yang dipimpin oleh produk Samsung, adalah 64% pada bulan Maret 2013. Keberhasilan sistem operasi telah membuatnya menjadi target litigasi paten sebagai bagian dari apa yang disebut "perang smartphone" antara perusahaan teknologi Pada Mei 2013, total 900 juta perangkat Android telah diaktifkan dan 48 miliar aplikasi telah diinstal dari toko Google Play menurut sumber wikipedia.
2.7 Android SDK (Software Development Kit)
Android SDK adalah tools API (Aplication Programming Interface) yang diperlukan untuk mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java. Sebagai platform aplikasi netral, Android memberi kesempatan bagi semua orang untuk membuat aplikasi yang dibutuhkan, yang bukan merupakan aplikasi bawaan Handphone /
Smartphone (Safaat H, 2011). Beberapa fitur-fitur Android yang paling penting adalah :
b. Integrated browser berdasarkan engine open source WebKit.
c. Grafis yang dioptimalkan dan didukung oleh libraries grafis 2D, grafis 3D berdasarkan spesifikasi opengl ES 1.0 (Opsional akselerasi perangkat keras). d. SQLite untuk penyimpanan data (database).
e. Media yang mendukung audio, video, dan gambar. f. Bluetooth, EDGE, 3G dan WiFi, Kamera dan GPS
g. Lingkungan Development yang lengkap dan kaya termasuk perangkat emulator, tools untuk debugging, profil dan kinerja memori, dan plugin untuk IDE Eclipse.
2.8 Eclipse
Dalam pemrograman komputer, Eclipse adalah multi-bahasa lingkungan pengembangan Terpadu (IDE) yang terdiri dari ruang kerja dasar dan extensible sistem plug-in untuk mengubah lingkungan. Hal ini ditulis sebagian besar di Java. Hal ini dapat digunakan untuk mengembangkan aplikasi di Jawa dan, melalui berbagai plug-in, bahasa pemrograman lain termasuk Ada, C, C + +, COBOL, Fortran, Haskell, JavaScript, Perl, PHP, Python, R, Ruby (termasuk Ruby on Rails kerangka), Scala, Clojure, Groovy, Skema, dan Erlang. Hal ini juga dapat digunakan untuk mengembangkan paket untuk software Mathematica. Pembangunan lingkungan termasuk Eclipse Java Development Tools (JDT) untuk Jawa dan Scala, Eclipse CDT untuk C / C + + dan Eclipse PDT untuk PHP, antara lain. Basis kode awal berasal dari IBM Visual Age The Eclipse Software Development Kit (SDK), yang meliputi alat pengembangan Java, dimaksudkan untuk pengembang Java.. Pengguna dapat memperpanjang kemampuannya dengan menginstal plug-in ditulis untuk Platform Eclipse, seperti toolkit pengembangan untuk bahasa pemrograman lain, dan dapat menulis dan berkontribusi sendiri plug-in modul. Dirilis di bawah persyaratan Lisensi Publik Eclipse, Eclipse SDK ini gratis dan terbuka source software
(meskipun tidak sesuai dengan GNU General Public License . Itu salah satu IDE pertama yang berjalan di bawah GNU Classpath dan itu berjalan tanpa masalah di bawah IcedTea.
2.9 SQLite
SQLite merupakan sebuah sistem manajemen basisdata relasional yang bersifat ACID-compliant dan memiliki ukuran pustaka kode yang relatif kecil, ditulis dalam bahasa C. SQLite merupakan proyek yang bersifat public domain yang dikerjakan oleh D. Richard Hipp
Tidak seperti pada paradigma client-server umumnya, Inti SQLite bukanlah sebuah sistem yang mandiri yang berkomunikasi dengan sebuah program, melainkan sebagai bagian integral dari sebuah program secara keseluruhan. Sehingga protokol komunikasi utama yang digunakan adalah melalui pemanggilan API secara langsung melalui bahasa pemrograman. Mekanisme seperti ini tentunya membawa keuntungan karena dapat mereduksi overhead, latency
times, dan secara keseluruhan lebih sederhana. Seluruh elemen basisdata (definisi data, tabel,
indeks, dan data) disimpan sebagai sebuah file. Kesederhanaan dari sisi disain tersebut bisa diraih dengan cara mengunci keseluruhan file basis data pada saat sebuah transaksi dimulai (Safaat N, 2005).
Terdapat beberapa alasan mengapa SQLite sangat cocok untuk pengembangan aplikasi Android, yaitu :
a. Database dengan konfigurasi nol. Artinya tidak ada konfigurasi database untuk para
developer. Ini membuatnya relatif mudah digunakan.
b. Tidak memiliki server. Tidak ada proses database SQLite yang berjalan. Pada dasarnya satu set libraries menyediakan fungsionalitas database.
c. Single-file database. Ini membuat keamanan database secara langsung.
2.10 Face Recognition
Sistem pengenalan wajah/recognition wajah adalah aplikasi pengolahan citra yang dapat mengidentifikasi atau memverifikasi seseorang melalui citra digital atau frame video. Saat ini sistem pengenalan wajah telah menjadi salah satu aplikasi pengolahan citra yang cukup popular terutama di dalam bidang keamanan seperti verifikasi kartu kredit dan identifikasi penjahat. Sistem pengenalan citra wajah umumnya mencakup empat modul utama:
1. Deteksi wajah (face detection). 2. Penyelasaran wajah (Face Alignment) 3. Ekstraksi fitur fisherface (feature extraction) 4. Pencocokan (matching).
2.10.1 Deteksi Wajah
Proses deteksi wajah merupakan salah satu bagian terpenting dalam sistem pengenalan wajah. Sistem harus mampu mendeteksi keberadaan wajah pada citra dengan berbagai variasi pose, pencahayaan, ekspresi wajah dan atribut (kaca mata, kumis dan jenggot).
Gambar 2. 3. Diagram Blok Deteksi Wajah Metode Fisherface
Wajah merupakan sisi bagian depan dari kepala yang meliputi: daerah dari dahi hingga dagu, termasuk juga rambut, dahi, alis, mata, hidung, pipi, mulut, bibir, gigi, dagu dan kulit.
Capture Deteksi Wajah Penyelarasan wajah Simpan database Ekstraksi Fisher face Hasil Pencocokan
SImpan data absensi Capture Deteksi Wajah Penyelarasan wajah Pencoco kan Modul Pelatihan Modul Pencocokan
Wajah digunakan untuk menunjukkan sikap seseorang terhadap ekspresi wajah, penampilan, serta identitas dari seseorang. Tidak ada satu pun wajah yang sama atau serupa mutlak, bahkan pada manusia kembar sekalipun. Wajah sebagai objek dua dimensi digambarkan dengan berbagai macam illuminasi, pose dan ekspresi wajah untuk diidentifikasi berdasarkan citra dua dimensi dari wajah tersebut. Melihat wajah, manusia dapat mengenali atau mengidentifikasi seseorang dengan mudah (Zayuman, 2010)
Sistem pengenalan wajah seseorang tidak mengganggu kenyamanan seseorang saat akuisisi citra. Pendekatan yang paling umum untuk pengenalan wajah didasarkan pada bentuk dan penempatan atribut wajah seperti mata, alis mata, hidung, bibir dan dagu serta hubungan antara atribut tersebut atau analisis wajah secara keseluruhan yang menghadirkan suatu wajah sebagai suatu kombinasi dari sejumlah wajah kanonik. Suatu sistem pegenalan wajah pada prakteknya agar dapat bekerja dengan baik maka sistem harus secara otomatis dapat mendeteksi kehadiran wajah pada citra yang diperoleh, menempatkan posisi wajah dan mengenali wajah dari suatu sudut pandang umum atau berbagai pose. Beberapa kesulitan dalam penggunaan biometrika wajah, diantaranya: penyamaran, deteksi wajah ditengah keramaian orang, sudut pandang atau pose
Pengenalan wajah (face recognition) merupakan salah satu teknologi biometrik yang sekarang telah diterapkan untuk banyak aplikasi dalam bidang keamanan, antara lain access
security system, Authentification system, hingga sebagai alat bantu dalam pelacakan pelaku
kriminal. Namun dalam perkembangannya masih terdapat beberapa permasalahan, selain masalah komputasi dan kapasitas penyimpanan data, kondisi citra wajah yang menjadi masukan (input) sistem juga merupakan masalah yang penting. Beberapa aspek penting yang
mempengaruhi kondisi citra wajah manusia diantaranya adalah pencahayaan, ekspresi wajah dan perubahan atribut seperti kumis, janggut dan kacamata.
Pada tahun 1997, Peter N. Belhumeur, Joao P. Hespanha dan David J. Kriegman mengembangkan algoritma yang dinamakan Fisherface. Algortima ini merupakan gabungan dari metode Principal Component Analysis (PCA) dengan Fisher’s Linear Discriminant (FLD). Dasar dari algoritma ini adalah reduksi dimensi yang sekaligus memperbesar rasio jarak antar kelas terhadap jarak intra kelas dari vektor ciri. Semakin besar rasio, vektor ciri yang dihasilkan semakin tidak sensitif terhadap perubahan ekspresi ataupun perubahan cahaya, sehingga dapat menghasilkan klasifikasi yang lebih baik. Selain dapat menghasilkan tingkat klasifikasi yang lebih baik, algoritma Fisherface ini juga performa dan waktu pemrosesan yang lebih cepat. Dengan kelebihannya, tentunya algoritma Fisherface ini cocok untuk diimplementasikan pada sistem pengenalan wajah yang berbasis pada smartphone android
2.10.1.a. Metode Fisherface
Metode Fisherface dikembangkan oleh Peter N. Belhumeur, João P. Hespana dan David J. Kreigman pada tahun 1997 untuk mengatasi kelemahan metode Eigenface, khususnya untuk citra dalam variasi pencahayaan dan ekspresi wajah. Metode ini mentransformasikan vektor dari ruang citra berdimensi-n ke ruang citra berdimensi-m dengan m < n 2.
Dasar dari metode Fisherface ini adalah Fisher's Linear Discriminant (FLD). FLD ditemukan oleh Robert Fisher pada tahun 1936 untuk klasifikasi taksonomi dan menjadi salah satu teknik yang banyak digunakan dalam pengenalan pola (pattern recognition). FLD merupakan salah satu contoh metode class specific, karena metode ini berusaha untuk
membentuk jarak (scatter) antar kelas dan intra kelas sehingga dapat menghasilkan klasifikasi yang lebih baik.
Fisher's Linear Discriminant yang menjadi dasar dari algoritma Fisherface memilih
matriks transformasi W yang dapat memaksimalkan rasio antara determinan between-class scatter (SB) dengan within-class scatter (SW) dari vektor-vektor ciri melalui fungsi :
Wopt = argmax
𝑊𝑆𝐵𝑊𝑇
𝑊𝑆𝑊𝑊𝑇
………. (1)
=
𝑤
1; 𝑤
2; … . ; 𝑤
𝑚dimana [w1; w2; ....; wm] merupakan m buah vektor eigen (dalam bentuk vektor baris) dari rasio antara SB dengan SW, yang bersesuaian dengan m buah nilai eigen terbesar. Jika wi adalah vektor eigen dari rasio antara matriks SB dengan matriks SW dan di merupakan nilai eigen yang bersesuaian, maka :
𝑆
𝐵𝑊
1𝑇= 𝑑
𝑖𝑆
𝑤𝑊
1𝑇 ……….. ………... (2)dimana i = 1...m dan d1 > d2 > ... > dm.
Jika xi, i = 1...N adalah vektor citra dimensi-n dan masing-masing vektor citra merupakan anggota salah satu dari C kelas citra wajah {X1, X2, ..., XC} dan vektor u adalah rata-rata vektor citra yang dapat diperoleh dari persamaan :
𝜇 =
1𝑁
𝑋
𝑖𝑁
𝑖=1 ……….. (3)
maka matriks SB dan matrik SW dapat diperoleh melalui persamaan berikut :
𝑆
𝐵=
𝐶𝑖=1𝑁
𝑖𝜇
𝑖− 𝜇
𝑇𝜇
𝑖− 𝜇
………. (4)𝑆
𝑊=
𝑁𝑖𝑥
𝑗− 𝜇
𝑖 𝑇𝑥
𝑗− 𝜇
𝑖𝑛𝑗𝑒𝑋𝑖
𝐶
dimana Ni adalah jumlah anggota kelas Xi dan μi adalah rata-rata citra anggota kelas Xi, i = 1...C.
Suatu citra wajah dengan lebar dan tinggi masing-masing l dan t piksel mempunyai jumlah piksel sebanyak lxt. Tiap-tiap piksel dikodekan dengan nilai 0-255 sesuai dengan nilai tingkat keabuannya. Maka dapat dibentuk citra wajah berdasarka nilai keabuan tersebut yaitu :
𝑔
𝑖=
𝑎
11𝑎
12… 𝑎
1𝑙𝑎
21𝑎
22…
…
𝑎
2𝑙…
𝑎
𝑡1…
𝑎
𝑡2…
…
𝑎
𝑡𝑙 ………. (6)dimana i = 1...N (banyaknya citra wajah)
Setiap gi adalah anggota salah satu kelas wajah X. Jika terdapat C buah kelas wajah X maka terdapat Xj, dimana j = 1..C. Untuk setiap kelas wajah Xj terdapat Nj citra wajah, dimana j = 1..C dan N1 = N2 = Nj. Dengan demikian jumlah citra wajah adalah N1 + N2 + N3 + ... + Nc = N.
Dari vektor citra wajah di atas dapat dibentuk suatu vektor baris citra wajah yaitu : xi = [a11
a12 ... ag ] (1*N)
Dengan demikian vektor citra dikatakan berada dalam ruang citra dimensi-n, dimana i = 1...N. Selanjutnya adalah membentuk matriks input berdimensi N*n yang berisi kumpulan vektor baris citra yang akan digunakan dalam pelatihan dan pengujian.
input=
𝑥
1𝑥
2…
𝑥
𝑁 (N*n) ………. (7)Matriks input ini yang merupakan masukan untuk metode Fisherface. Berikut akan dijelaskan algoritma metode Fisherface.
Konstruksi fisherface adalah pembuatan suatu set fisherface dari suatu set gambar training dengan menggunakan perhitungan Principal Component Analysis (PCA) dan Fisher’s Linear
Discriminant (FLD). Perhitungan PCA dilakukan dengan langkah-langkah sebagai berikut:
1. Mengambil satu set gambar training dan kemudian mentransformasikan setiap gambar tersebut menjadi vektor kolom, sehingga akan didapat satu matriks yang tiap kolomnya mewakili gambar yang berbeda, face space ( Γ )
2. Membentuk average face (Ψ), yaitu nilai rata-rata dari seluruh gambar wajah pada training set, dan mengurangi seluruh gambar pada training set terhadap average face untuk mencari deviasinya ȼ
ȼ = Γ-Ψ ……….. (8)
3. Menghitung matriks kovarian (A), yaitu dengan melakukan operasi perkalian transpose dari training set yang telah dinormalisasikan.
………... (9)
4. Menghitung nilai eigen (λ) dan vektor eigen (ν) dari matriks kovarian. λ
5. Mengurutkan vektor eigen berdasarkan dengan besarnya nilai eigen masing-masing vektor.
6. Menghitung matriks proyeksi PCA (Wpca) yaitu dengan mengalikan nilai deviasi dengan vektor eigen dan menormalisasikan hasilnya. 𝑉′ = Ȼ ⋅ 𝑣
……….. (10)
2.10.1.b. Eigenface
Pada dasarnya (Agustina, 2002), metode Eigenface bertujuan untuk mengekstrak ciri-ciri suatu citra dengan teori Principal Component Analysis (PCA) atau transformasi Karhunen- Loeve, yaitu menyusun suatu citra baru yang mengandung hanya informasi informasi penting dari citra yang lama. Metode ini bertujuan untuk memaksimalkan total-scatter atau jarak vector ciri (Roth, 2007). Jadi informasi cirri mengenai suatu citra akan disebarkan sehingga bercampur dengan informasi ciri citra yang lain. Setiap citra dapat direpresentasikan sebagai vektor baris xi, i = 1 … N, berdimensi n. Nilai n merupakan dimensi ruang citra, sehingga xi berada di dalam ruang citra berdimensi n. Matriks kovarian ST atau matriks total-scatter, didefinisikan sebagai:
𝑆𝑇 = 𝐴𝑇∙ 𝐴 ……….… (11)
di mana A = [Φi], dimanaΦi adalah selisih vektor citra dengan rata-rata vector citra xi, i = 1
… N Transformasi Karhunen-Loeve atau PCA terhadap vektor citra akan menghasilkan
vektor-vektor ciri yang memiliki total-scatter: W ST WT
dengan W adalah matriks transformasi. Matriks transformasi W yang dipilih adalah matriks yang dapat dimaksimalkan determinan dari total-scatter vector vector ciri. Atau:
𝑊 = arg max 𝑊𝑆𝑇𝑊𝑇 ………. (12)
= 𝑊1; 𝑊2 ; … . ; 𝑊𝑀
di mana wi, i = 1 … m, adalah kumpulan vektor eigen dari ST (dalam bentuk vector basis) yang bersesuaian dengan m nilai eigen terbesar. Vektor-vektor eigen ini, yang disebut principal
components, memiliki dimensi yang sama dengan citra wajah, yaitu n, sehingga disebut sebagai Eigenfaces atau Eigenpictures. Eigenfaces merupakan vector vektor basis dari ruang ciri
dimensi-m. Transformasi citra dari ruang citra dimensi-n ke ruang ciri dimensi-m adalah
Dengan demikian, dapat diperoleh vector ciri berdimensi m untuk masing-masing citra. Besarnya nilai m dapat ditentukan melalui persamaan berikut:
𝑊 =𝑟𝑚𝑖𝑛 𝑑𝑖 𝑟 𝑖=1 𝑑𝑖 𝑟 𝑖=1 ………... (14) dimana θ adalah suatu nilai ambang atau threshold dan 0 < threshold ≤ 1.
2.10.2. Penyelarasan Wajah
Pada proses pendeteksian wajah, citra wajah yang didapatkan masih berupa perkiraan kasar atau masih memiliki kualitas yang cukup buruk seperti ukuran yang berbeda dengan ukuran normal, faktor pencahayaan yang kurang atau lebih, kejelasancitra yang buruk dan sebagainya. Sehingga perlu dilakukan proses penyelarasan.Proses penyelarasan wajah merupakan proses yang bertujuan untuk menormalisasi wajah dari citra wajah yang didapatkan dari proses pendeteksian wajah. Proses ini terdiri dari tahapan-tahapan sebagai berikut:
1. Grayscaling (tahap konversi citra warna menjadi warna abu)
2. Pemotongan (tahap pemisahan citra wajah dengan latar belakangnya) 3. Resizing (tahap normalisasi dimensi citra)
4. Equalizing (tahap koreksi tingkat kecerahan citra)
2.10.3. Ekstraksi Fitur
Reduksi komponen atau fitur wajah dilakukan untuk mengurangi memori yang dibutuhkan dan waktu komputasi. Ada dua cara yang digunakan yaitu pemilihan fitur (feature
selection) dan ekstraksi fitur (feature extraction). Pemilihan fitur bertujuan untuk memilih
sejumlah fitur yang banyak berpengaruh dari fitur yang ada. Sedangkan ekstraksi fitur di dapat dengan memproyeksikan fitur ke dalam dimensi yang lebih rendah.
Fitur adalah segala jenis aspek pembeda, kwalitas atau karakteristik. Fitur bisa berupa simbolik (misal warna) atau numerik (misal intensitas). Terdapat dua jenis karakteristik yang disebut sebagai fitur dari sebuah citra:
A. Bagian global dari suatu citra. B. Bagian khusus dari suatu citra.
Terkadang fitur dari suatu citra tidak berhubungan langsung dengan bagia-bagian yang terdapat pada citra tersebut tetapi masih mencerminkan karakteristik tertentu dari citra. Fitur wajah merupakan hasil suatu algoritma ekstraksi terhadap citra wajah. Ekstraksi fitur dilaksanakan dengan alasan:
1. Mengurangi data masukan (sehingga mempercepat proses dan mengurangi kebutuhan data).
2. Menyediakan sekumpulan fitur yang relevan untuk proses klasifikasi. 3. Mengurangi redudansi.
4. Menemukan variabel fitur yang menjelaskan data.
5. Menghasilakan representasi dalam dimensi yang lebih kecil dengan sedikit informasi yang hilang
2.11 Penyimpanan Fitur
Proses penyimpanan fitur merupakan tahapan terakhir dari proses pelatihan citra wajah. Proses ini berfungsi untuk menyimpan fitur hasil ekstraksi citra wajah yang ada di dalam database ke dalam sebuah file berekstensi *.xml. File inilah yang nantinya akan digunakan untuk proses pencocokan antara citra wajah yang diuji dengan hasil ekstraksi fitur yang terdapat pada file ini.
2.11.1 Pencocokan
Pencocokan fitur adalah tahapan inti dari pada proses pengenalan citra wajah. Proses ini merupakan proses pencocokan fitur dari citra uji dengan fitur citra wajah dari database, yang sebelumnya telah melalui proses pelatihan citra. Proses perbandingan ini dilakukan menggunakan metode pengenalan pola, salah satunya adalah metode nearest neighbours