5 BAB II LANDASAN TEORI 2.1. Konsep Dasar Program Pengenalan wajah adalah salah satu teknologi biometrik yang telah banyak diaplikasikan dalam sistem keamanan selain pengenalan retina mata, pengenalan sidik jari dan iris mata, dalam aplikasinya sendiri pengenalan wajah menggunakan sebuah kamera untuk menangkap wajah seseorang kemudian dibandingkan dengan wajah yang sebelumnya tersimpan didalam database tertentu. Pengenalan wajah melibatkan banyak variabel, misalnya citra sumber, citra hasil pengolahan citra, citra hasil ekstraksi dan data profil seseorang. Dibutuhkan juga alat pengindra berupa sensor kamera dan metode untuk menentukan apakah citra yang ditangkap oleh webcamera tergolong wajah manusia atau bukan, sekaligus untuk menentukan informasi profil yang sesuai dengan citra wajah yang dimaksud. 2.1.1. Computer vision Computer Vision didefinisikan sebagai salah satu objek yang diamati atau diobservasi, gambar yang diperoleh dapat diperoleh dari beberapa sumber seperti video, scanner, atau digital image (Zhu, 2008).
30
Embed
BAB II LANDASAN TEORI - repository.bsi.ac.id filediaplikasikan dalam sistem keamanan selain pengenalan retina mata, pengenalan sidik jari dan iris mata, dalam aplikasinya sendiri pengenalan
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
5
BAB II
LANDASAN TEORI
2.1. Konsep Dasar Program
Pengenalan wajah adalah salah satu teknologi biometrik yang telah banyak
diaplikasikan dalam sistem keamanan selain pengenalan retina mata, pengenalan
sidik jari dan iris mata, dalam aplikasinya sendiri pengenalan wajah menggunakan
sebuah kamera untuk menangkap wajah seseorang kemudian dibandingkan dengan
wajah yang sebelumnya tersimpan didalam database tertentu.
Pengenalan wajah melibatkan banyak variabel, misalnya citra sumber, citra hasil
pengolahan citra, citra hasil ekstraksi dan data profil seseorang. Dibutuhkan juga alat
pengindra berupa sensor kamera dan metode untuk menentukan apakah citra yang
ditangkap oleh webcamera tergolong wajah manusia atau bukan, sekaligus untuk
menentukan informasi profil yang sesuai dengan citra wajah yang dimaksud.
2.1.1. Computer vision
Computer Vision didefinisikan sebagai salah satu objek yang diamati atau
diobservasi, gambar yang diperoleh dapat diperoleh dari beberapa sumber seperti
video, scanner, atau digital image (Zhu, 2008).
6
Menurut Zhu secara umum bidang dalam computer vision dapat dibagi menjadi
1. Recognition
Merupakan permasalahan mendasar dari computer vision yaitu
mengenali apakah didalam sebuah image terdapat objek-objek dan aktivitas-
aktivitas tertentu, bagi komputer permasalahan ini merupakan hal yang tidak
mudah bentuk mengenali secara langsung untuk mengenali sutatu objek dan
aktivitas tertentu.
2. Motion Tracking
Berkaitan dengan gerakan yang akan diamati yang mana image diolah
merupakan dari sebuah kegiatan tertentu atau pergerakan dari sebuah objek
yang telah dikenali, dalam tahap ini objek tersebut tentunya telah dikenali
terlebih dahulu, sehingga objek yang diamati pergerakannya berfokus pada
objek itu sendiri. Contohnya pergerakan mobil, pergerakan manusia
3. Scene Recontruction
Pada bagian ini, berkaitan dengan mengatur urutan image menjadi
sebuah grafik video setelah diketahui tindakan apa yang dilakukan oleh
masing-masing gambar. Merupakan proses kelanjutan dari bagian motion
tracking. Banyak digunakan pada permainan-permainan komputer yang
dinamis untuk memperkecil ukuran program sebagian respon dari program.
7
2.1.2 Eigenface
Kata Eigenface sebenarnya berasa dari bahasa jerman yang dimana dari kata
“eigenwert” dimana kata tersebut terdiri dari 2 suku kata “eigen” artinya karakteristik
dan “wert” artinya nilai.
Menurut Hanif (Al-Fattah.H, 2006) Eigenface adalah salah satu algoritma
pengenalan pola wajah yang berdasarkan pada Principle Component Analysis (PCA).
Prinsip dasar dari pengenalan wajah adalah dengan mengutip informasi wajah
tersebut kemudian di-encode dan dibandingkan dengan hasil encode yang
sebelumnya dilakukan.
Dalam metode eigenface, decoding dapat dilakukan dengan cara menghitung
eigenvector, kemudian direpresentasikan dalam sebuah matriks dalam yang
berukuran besar, eigenvector dapat juga dikatakan sebagai karakteristik wajah oleh
karena itu metode ini disebut dengan eigenface, setiap wajah direpresentasikan dalam
sebuah kombinasi linear eigenface, metode eigenface pertama kali dikembangkan
oleh Matthew turk dan Alex pentland dari vision and modeling group, the media
Laboratory, Massachusetts Institue Of Technology pada tahun 1987 dan kemudian
metode ini berhasil disempurnakan lagi oleh matthew turk pada tahun 1991.
Algoritma eigenface secara keseluruhan cukup sederhana image matriks (Γ)
direpresentasikan ke dalam sebuah him-punan matriks (Γ1, Γ2,.......,ΓM). Cari nilai rata-
rata (Ψ) dan gunakan untuk mengektraksi eigenvector (v) dan eigenvalue (λ) dari
8
himpunan matriks. Gunakan nilai eigenvector untuk mendapatkan eigenface dari
image apabila ada sebuah image baru atau test face (Γnew) yang ingin dikenali, proses
yang sama juga diberlakukan untuk image (Γnew), untuk mengektraksi eigenvector (v)
dan eigenvalue (λ), kemudian cari nilai eigenface dari image test face (Γnew) setelah
itu barulah image baru (Γnew) memasuki tahapan pengenalan dengan menggunakan
metode euclidean distance.
2.1.3. Software Development Life Cycle
Software Develoment Life Circle (SDLC) merupakan siklus
pengembangan aplikasi yang meliputi prosedur dan langkah-langkah yang
membimbing suatu proyek secara teknis dari awal sampai akhir. Secara garis besar
tahapan dibagi menjadi empat kegiatan utama, yaitu analisis, desain, impelemtasi,
dan perawatan. Software yang dikembangkan berdasarkan SDLC akan
menghasilkan sistem dengan kualitas yang tinggi, memenuhi harapan
penggunanya, tepat dalam waktu dan biaya, bekerja dengan efektif dan efisien dalam
infrastruktur teknologi informasi yang ada atau yang direncanakan, serta murah
dalam perawatan dan pengembangan lebih lanjut (Pressman, 2005)
Menurut Pressman, SDLC memiliki banyak bentuk model, salah satu
yang terkenal dan sering dipakai adalah model waterfall. Model waterfall diagram
prosesnya mirip dengan air terjun yang bertingkat yang meliputi tahapan - tahapan
sebagai berikut :
9
1. Perancangan Sistem ( Engineering Sistem )
Perancangan sistem diperlukan untuk bagian dari suatu sistem yang
lebih besar nantinya Pembuatan sebuah piranti lunak dapat dimulai
dengan melihat dan mencari apa yang dibutuhkan oleh sistem. Dari
kebutuhan sistem tersebut akan diterapkan kedalam piranti lunak yang
dibuat
2. Analisa kebutuhan piranti lunak ( Software Requitment Analysis )
Merupakan proses pengumpulan kebutuhan piranti lunak. Untuk
memahami dasar dari program yang akan dibuat, seorang analisis harus
mengetahui ruang lingkup informasi, fungsi-fungsi yang dibutuhkan,
kemampuan kinerja yang ingin dihasilkan dan perancangan antarmuka
pemakai piranti lunak tersebut.
3. Perancangan ( Design )
Perancangan piranti lunak terbagi atas 4 tahapan penting, yaitu:
Struktur data, arsitektur piranti lunak, detil prosedur, dan karakteristik
user interface
4. Pengkodean ( Coding )
Pengkodean piranti lunak merupakan proses penulisan kedalam
bahasa pemograman agar piranti lunak tersebut dapat digunakan oleh
mesin.
10
5. Pengujian ( Testing )
Proses ini akan menguji kode program yang telah dibuat dengan
memfokuskan pada bagian dalam piranti lunak. Tujuannya untuk
memastikan bahwa semua pernyataan telah diuji dan memastikan juga
bahwa input yang digunakan akan menghasilkan output yang sesuai. Pada
tahap ini pengujian ini dibagi menjadi dua bagian, pengujian internal dan
pengujian eksternal. Pengujian internal
bertujuan menggambarkan bahwa semua statement sudah dilakukan
pengujian, sedangkan pengujian eksternal bertujuan untuk menemukan
kesalahan serta memastikan output yang dihasilkan sesuai dengan yang
diharapkan
6. Pemeliharaan ( Maintenance )
Proses ini dilakukan setelah piranti lunak telah digunakan oleh user.
Suatu Perubahan akan dilakukan jika terdapat kesalahan dan
penyesuaian akan perubahan kebutuhan yang diinginkan user.
(Sumber Pressman, 2005) Gambar II.1 Model Waterfall
11
2.1.4. .Net Framework
.Net Framwork adalah suatu komponen windows yang terintegrasi yang
dibuat dengan tujuan untuk mensupport pengembangan berbagai macam aplikasi
serta untuk dapat menjalankan berbagai macam aplikasi generasi mendatang
termasuk pengembangan aplikasi Web Service XML.
.Net Framework di design untuk dapat memenuhi beberapa tujuan berikut ini :
a. Untuk menyediakan environment kerja yang konsisten bagi
bahasa pemrograman yang berorientasi objek (object-oriented programming -
OOP) baik kode objek itu di simpan dan di eksekusi secara lokal, atau
dieksekusi secara lokal tapi didistribusikan melalui internet atau di eksekusi
secara remote.
b. Untuk menyediakan environment kerja di dalam mengeksekusi kode yang
dapat meminimaliasi proses software deployment dan menghindari konflik
penggunaan versi software yang di buat.
c. Untuk menyediakan environment kerja yang aman dalam hal
pengeksekusian kode, termasuk kode yang dibuat oleh pihak ketiga (third
party).
d. Untuk menyediakan envirotment kerja yang dapat mengurangi masalah pada
persoalan performa dari kode atau dari lingkungan interpreter-nya.
12
e. Membuat para developer lebih mudah mengembangkan berbagai macam jenis
aplikasi yang lebih bervariasi, seperti aplikasi berbasis windows dan aplikasi
berbasis web.
f. Membangun semua komunikasi yang ada didalam standar industri untuk
memastikan bahwa semua kode aplikasi yang berbasis .Net Framework dapat
berintegrasi dengan berbagai macam kode aplikasi lain.
Sebagai salah satu sarana untuk dapat memenuhi tujuan di atas, maka
dibuatlah berbagai macam bahasa pemrograman yang dapat digunakan dan
dapat berjalan di atas platform .Net Framework seperti bahasa C#, VB.NET, J#,
Perl .NET dan lain-lain. Masing-masing bahasa tersebut mempunyai kelebihan
dan kekurangannya masing- masing, namun yang pasti, apapun bahasa
pemrograman yang digunakan, semuanya akan dapat saling berkomunikasi dan
saling compatible satu dengan yang lainnya dengan bantuan .Net Framework.
2.1.4.1. Arsitektur .Net Framework
.Net Framework terdiri dari dua buah komponen utama, yaitu Common
Language Runtime (CLR), dan .Net Framework Class Library atau kadang juga
sering disebut dengan Base Class Library.
Common Language Runtime adalah pondasi utama dari Framework .Net. CLR
merupakan komponen yang bertanggung jawab terhadap berbagai macam hal, seperti
bertanggung jawab untuk melakukan management memory, melakukan eksekusi
13
kode, melakukan verifikasi terhadap keamanan kode, menentukan hak akses dari
kode, melakukan kompilasi kode, dan berbagai layanan system lainnya. Dengan
adanya fungsi CLR ini, maka aplikasi berbasis .NET biasa juga disebut dengan
managed code, sedangkan aplikasi di luar itu biasa disebut dengan un-managed code.
Berikut ini beberapa hal yang disediakan oleh pondasi utama Common
Langugae Runtime ( CLR ) :
1. Dapat lebih menyederhanakan proses pengembangan aplikasi.
2. Memungkinkan adanya variasi dan integrasi dari berbagai bahasa
pemrograman yang ada di lingkungan .Net Framework.
3. Keamanan dengan melakukan identing pada kode aplikasi.
4. Bersifat assembly pada saat proses deployment / kompilasi.
5. Melakukan Versioning sebuah komponen yang bisa didaur ulang.
6. Memungkinkan pengguanaan kembali kode, dengan adanya sifat
inheritance
7. Melakukan pengaturan / manajemen tentang lifetime sebuah objek
8. Melakukan penganalisaan objek-objek secara otomatis.
9. CLR akan melakukan kompilasi kode-kode aplikasi kita menjadi
bahasa assembly MSIL (Microsoft Intermediate Language). Proses
14
kompilasi ini sendiri dilakukan oleh komponen yang bernama Just In
Time (JIT). JIT hanya akan mengkompilasi metode- metode yang
memang digunakan dalam aplikasi, dan hasil kompilasi ini sendiri di
chace di dalam mesin dan akan dikompile kembali jika memang ada
perubahan pada kode aplikasi kita.
.NET Framework Class Library atau sering juga disebut Base Case Library
(BCL) adalah koleksi dari reusable types yang sangat terintegrasi secara melekat
dengan CLR. Class library bersifat berorientasi terhadap objek yang akan
menyediakan types dari fungsi-fungsi managed code.
Hal ini tidak hanya berpengaruh kepada kemudahan dalam hal penggunaan,
tetapi juga dapat mengurangi waktu yang diperlukan pada saat eksekusi. Dengan
sifat tersebut, maka komponen pihak ketiga akan dengan mudah diaplikasikan ke
dalam aplikasi yang dibuat.
Dengan adanya BCL ini, maka kita bisa menggunakan .Net Framework
untuk membuat berbagai macam aplikasi, seperti :
1. Aplikasi Console
2. Aplikasi Berbasis Windows ( Windows Form )
3. Aplikasi ASP.Net ( Berbasis Web )
4. Aplikasi Web Services XML
5. Aplikasi berbasis Windows Services.
15
Jika kita membuat sekumpulan Class untuk membuat aplikasi berbasis
windows, maka Class-Class itu bisa kita gunakan untuk jenis aplikasi lain, seperti
aplikasi berbasis web (ASP.NET).
2.1.4.2. Keuntungan .Net Framework
Berikut ini adalah beberapa keuntungan yang didapat jika menggunakan .Net
Framework :
a. Mudah
Kemudahan di sini lebih ke arah pada kemudahan bagi para
developer untuk membuat aplikasi yang dijalankan pada lingkungan
.Net Framework. Beberapa hal yang merepotkan developer pada saat
membuat aplikasi, telah di hilangkan atau di ambil alih
kemampuannya oleh . N e t Framework, misalnya masalah lifetime
sebuah objek yang biasanya luput dari perhatian developer pada saat
proses pembuatan aplikasi. Masalah ini telah ditangani dan diatur
secara otomatis oleh .Net Framework melalui komponen yang
bernama Garbage Collector yang bertanggung jawab untuk mencari
dan membuang objek yang sudah tidak terpakai secara otomatis.
16
b. Efisien
Kemudahan pada saat proses pembuatan aplikasi, akan
berimplikasi terhadap efisiensi dari suatu proses produktivitas, baik
efisien dalam hal waktu pembuatan aplikasi atau juga efisien dalam
hal lain, seperti biaya (cost).
c. Konsisten
Kemudahan-kemudahan pada saat proses pembuatan aplikasi,
juga bisa berimplikasi terhadap konsistensi pada aplikasi yang kita
buat. Misalnya, dengan adanya BCL, maka kita bisa menggunakan
objek atau Class yang dibuat untuk aplikasi berbasis windows pada
aplikasi berbasis web. Dengan adanya kode yang bisa dintegrasikan
ke dalam berbagai macam aplikasi ini, maka konsistensi kode-kode
aplikasi kita dapat terjaga.
d. Produktivitas
Semua kemudahan-kemudahan di atas, pada akhirnya akan
membuat produktivitas menjadi lebih baik. Produktivitas naik,
terutama produktivitas para developer, akan berdampak pada
meningkatnya produktivitas suatu perusahaan.
17
2.2. Peralatan Pendukung ( Tools System )
2.2.1. Open Cv
OpenCV adalah suatu library gratis yang dikembangkan oleh developer-
developer Intel Corporation. Library ini terdiri dari fungsi-fungsi computer vision
dan API (Aplication Programming Interface) untuk image processing high level
maupun low level dan sebagai optimasi aplikasi realtime. OpenCV sangat disarankan
untuk programmer yang akan berkutat pada bidang computer vision, karena
library ini mampu menciptakan aplikasi yang handal, kuat dibidang digital
vision, dan mempunyai kemampuan yang mirip dengan cara pengolahan visual pada
manusia,
Karena library ini bersifat cuma-cuma dan sifatnya yang open source, maka
dari itu OpenCV tidak dipesan khusus untuk pengguna arsitektur Intel, tetapi
dapat dibangun pada hampir semua arsitektur Saat ini para developer dari
Intel Corporation telah membuat berbagai macam versi, yaitu:
a. Open CV untuk bahasa pemrograman C/C++
b. Open CV untuk bahasa pemrograman (masih dalam tahap
pengembangan)
c. Open CV untuk bahasa pemrograman java
Untuk bahasa pemrograman C# dan java, karena masih dalam tahap
pengembangan, maka kita membutuhkan library lain sebagai pelengkap kekurangan
18
yang ada, namun untuk bahasa pemrograman C/C++ tidak memerlukan library
lainnya untuk pemrosesan pada computer vision.
2.2.1.1. Fitur
Berikut ini adalah fitur-fitur yang terdapat pada library Open CV :
1. Manipulasi data gambar (alokasi memori, melepaskan memori, kopi
gambar, setting serta konversi gambar)
2. Image/Video I/O (Bisa menggunakan camera yang sudah didukung
oleh library ini)
3. manipulasi matrix dan vektor serta terdapat juga routines linear
algebra (products, solvers, eigenvalues, SVD)
4. Image processing dasar (filtering, edge detection, pendeteksian tepi,
sampling dan interpolasi, konversi warna, operasi morfologi,