8
BAB 2
LANDASAN TEORI
2.1 Teori-teori umum
Teori-teori umum yang berkaitan dalam topik skripsi disini adalah tentang
Computer Vision, Identifikasi Wajah, Rekayasa Peranti Lunak, UML.
2.1.1 Computer Vision
Computer Vision merupakan bidang yang berkembang pesat dikhususkan untuk
menganalisa, memodifikasi, dan pemahaman gambar tingkat tinggi. Tujuannya adalah
untuk
menentukan apa
yang terjadi
di depan kamera
dan menggunakan
pemahaman
tersebut untuk mengendalikan komputer, sistem robot, atau untuk memberikan citra baru
yang lebih
informatif daripada gambar kamera asli. Aplikasi
area untuk komputer visi
teknologi termasuk
video surveillance, biometrik, otomotif, fotografi, produksi film,
pencarian web, obat-obatan, game augmented reality, antarmuka pengguna yang baru,
dan banyak lagi (Pulli, Baksheev, Kornyakov, & Eruhimov, 2012).
2.1.2 Identifikasi Wajah
Wajah manusia memainkan peran penting dalam interaksi sosial kita,
menyampaikan identitas masyarakat. Saat ini wajah manusia digunakan sebagai kunci
untuk keamanan, teknologi pengenalan wajah biometrik telah menerima perhatian yang
signifikan dalam beberapa tahun terakhir karena potensinya untuk berbagai macam
aplikasi baik dalam penegakan hukum dan penegakan non-hukum.
Dibandingkan dengan sistem biometrik
lainnya menggunakan sidik jari, palm
print dan retina mata, pengenalan wajah memiliki kelebihan karena tidak perlu adanya
proses kontak langsung. Gambar wajah dapat ditangkap dari jarak jauh tanpa menyentuh
orang yang sedang diidentifikasi, dan identifikasi yang tidak memerlukan berinteraksi
dengan orang tersebut. Selain itu, pengenalan wajah melayani tujuan pembasmian
|
9
kejahatan karena wajah gambar yang telah direkam dan diarsipkan nantinya dapat
membantu mengidentifikasi seseorang.
Identifikasi wajah (face recognition) merupakan identifikasi biometrik.
Biometrik maksudnya pengenalannya berdasarkan keunikan seseorang berdasarkan
keadaan fisik maupun karakteristiknya. Meskipun pengenalan wajah sudah dapat
dilakukan oleh sistem komputer namun belum dapat melakukannya seperti apa yang
dilakukan manusia.
Salah satu dari aspek utama dalam identifikasi wajah adalah
robustness. Skema pengenalan wajah secara robust memerlukan kedua representasi fitur
dimensi rendah
untuk keperluan
kompresi data
dan
kemampuan
diskriminasi
ditingkatkan untuk pengambilan gambar berikutnya. Metode representasi biasanya mulai
dengan prosedur reduksi dimensi sejak dimensi tinggi dari
ruang visual asli
membuat
estimasi statistik sangat sulit dan memakan waktu.
Ada tiga Fase yang diperlukan mesin
untuk mengenali wajah. Ketiga fase
tersebut adalah detection, feature extraction, recognition
(Gandhe, Talele, & Keskar,
2007, pp. 53-54).
1. Detection
Banyak
algoritma
yang melaksanakan tugas
pendeteksian wajah
sebagai tugas
klasifikasi pola
biner. Hal ini dimaksudkan isi dari
bagian
tertentu
dari suatu
gambar
diubah menjadi
fitur, setelah
itu
classifier
dilatih pada
wajah
untuk
memutuskan apakah daerah tertentu dari gambar wajah atau tidak.
2. Feature extraction
Tiga jenis metode ekstraksi fitur:
-
Metode generik berdasarkan tepi, garis, dan kurva.
-
Fitur template berbasis
metode
yang digunakan
untuk mendeteksi fitur wajah
seperti mata.
-
Struktural
yang cocok
metode yang
memperhitungkan
kendala
pertimbangan
geometris pada fitur
|
![]() 10
3. Recognition
Selama berapa dekade sudah banyak metode yang ditawarkan. Pada umumnya
metode yang ada terbagi menjadi tiga yaitu holistic matching methods, feature-
based matching methods dan hybrid methods
.
Gambar 2.1 Contoh identifikasi wajah
2.1.3 Operasi Floating-point dan Integer
Integer
mengacu pada format yang digunakan untuk menyimpan dan
memanipulasi representasi numerik data tanpa
menggunakan titik desimal. Integer
dirancang untuk mewakili dan memanipulasi bilangan-bilangan bulat positif dan negatif.
Misalnya 16 bit, menghasilkan hingga 65.536 pola bit yang berasal dari
2
16
yang
biasanya mewakili bilangan bulat -32.768-32.767.
Floating-point (bilangan real) diperlukan untuk jumlah yang sangat besar atau
sangat kecil, atau angka yang membutuhkan penggunaan titik desimal (seperti pi dan
nilai-nilai trigonometri lainnya). Skema pengkodean yang digunakan oleh prosesor
untuk floating-point
lebih rumit daripada
integer. Representasi floating-point
dapat
mendukung lebih luas dari nilai dari fixed-point dengan kemampuan untuk mewakili
jumlah yang sangat kecil dan jumlah yang sangat besar.
|
![]() 11
Perhitungan floating-point menjamin rentang yang jauh lebih besar dibandingkan
integer serta
proses data lebih besar. Dengan demikian pada floating-point, prosesor
yang ideal untuk aplikasi komputasi intensif diperlukan mesin yang mampu melakukan
komputasi lebih cepat. Jika dilakukan perhitungan perkalian, integer lebih cepat 3,5 kali
dibandingkan perhitungan dengan floating-point (North, 2011).
2.1.4 Rekayasa Perangkat Lunak
Perangkat lunak
adalah instruksi-instruksi yang ketika dijalankan akan
menyediakan fungsi yang diperlukan, struktur data yang memungkinkan program untuk
memanipulasi informasi, dokumen yang menyatakan informasi atau kegunaan program.
Rekayasa perangkat
lunak adalah suatu
disiplin ilmu
yang membahas semua aspek
produksi perangkat
lunak, mulai dari tahap awal yaitu analisa kebutuhan pengguna,
menentukan spesifikasi dari kebutuhan pengguna, disain, pengkodean, pengujian sampai
pemeliharaan sistem setelah digunakan.
2.1.4.1 Rapid Application Development
Rapid Application Development
(RAD) adalah sebuah model proses
perkembangan software sekuensial linier yang menekankan siklus perkembangan yang
sangat pendek. Rapid application development
menggunakan metode iteratif dalam
mengembangkan sistem dimana system working model
dikonstruksikan di awal tahap
pengembangan dengan tujuan menetapkan kebutuhan user yang selanjutkan digunakan
model yang lebih baik. Working model tersebut jarang digunakan sebagai basis desain
dan implementasi sistem final (Sukamto, 2012, pp. 2-7).
Gambar 2.2 Contoh model proses Rapid Application Development
|
![]() 12
Kelebihan RAD
Hasil pengembangan bisa lebih cepat dibandingkan SDLC lainnya.
Memerlukan biaya yang lebih sedikit.
Mementingkan dari segi bisnis dan teknik.
Berkonsentrasi pada sudut pandang user.
Menyediakan kemungkinan perubahan secara cepat sesuai permintaan user.
Menghasilkan jarak kesesuaian yang kecil antara kebutuhan user dan spesifikasi
sistem.
Kekurangan RAD
RAD memerlukan sumber daya manusia yang memadai untuk menciptakan
jumlah tim RAD yang baik.
RAD menuntut pengembangan dan
pelanggan memiliki komitmen didalam
aktivitas rapidfire
yang diperlukan untuk melengkapi sebuah sistem, didalam
kerangka waktu yang sangat diperpendek.
Kecepatan yang tinggi dengan biaya minimal kemungkinan besar hasil
kualitasnya rendah.
Proyek mungkin berakhir dengan lebih banyak tambahan kebutuhan daripada
yang telah dipenuhi.
Potensial ketidakkonsistenan penamaan dan dokumentasi.
2.1.5 UML (Unified Modeling Language)
UML (Unified Modeling Language) adalah sebuah bahasa yang menggunakan
grafik atau gambar untuk memvisualisasi, menspesifikasikan, membangun, dan
mendokumentasikan sebuah sistem pengembangan
software
berbasis OO (Object-
Oriented).
|
![]() 13
2.1.5.1 Use Case Diagram
Use case diagram adalah gambaran graphical dari beberapa atau semua actor dan
interaksi diantara komponen-komponen tersebut yang memperkenalkan suatu sistem
yang akan dibangun. Use case diagram menjelaskan manfaat suatu sistem jika dilihat
menurut pandangan orang yang berada di luar sistem. Diagram ini menunjukkan
fungsionalitas suatu sistem atau kelas dan bagaimana sistem tersebut berinteraksi dengan
dunia luar.
Use case
diagram dapat digunakan selama proses analisis untuk menangkap
requirement sistem dan untuk memahami bagaimana sistem seharusnya bekerja. Selama
tahap desain, use case diagram berperan untuk menetapkan perilaku (behavior) sistem
saat diimplementasikan. Dalam sebuah model mungkin terdapat satu atau beberapa use
case diagram. Kebutuhan atau requirements system adalah fungsionalitas apa yang harus
disediakan oleh sistem kemudian didokumentasikan pada model use case
yang
menggambarkan fungsi sistem yang diharapkan (use case), dan yang mengelilinginya
(aktor), serta hubungan antara aktor dengan use case diagram itu sendiri.
Gambar 2.3 Contoh use case diagram
2.1.5.1 Sequence Diagram
Sequence diagram adalah diagram yang menampilkan interaksi antara objek-
objek dalam sistem yang disusun berdasarkan urutan pada waktu. Bentuk interaksi
meliputi pengguna, tampilan. dan sebagainya berupa pesan.
|
![]() 14
Sequence Diagram digunakan untuk menggambarkan skenario atau rangkaian
langkah-langkah yang dilakukan sebagai sebuah respon dari suatu kejadian untuk
menghasilkan output tertentu. Sequence Diagram diawali dari apa yang memicu aktivitas
tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang
dihasilkan.
Diagram ini secara khusus berasosiasi dengan use case
diagram. Sequence
diagram juga memperlihatkan tahap demi tahap apa yang seharusnya terjadi untuk
menghasilkan sesuatu didalam use case. Sequence diagram juga dapat merubah atribut
atas metode pada kelas yang telah dibentuk oleh class diagram, bahkan
menciptakan
sebuah kelas baru. Sequence diagram memodelkan aliran logika dalam sebuah sistem
dalam cara yang visual.
Gambar 2.4 Contoh sequence diagram
2.2 Teori-teori Khusus
Teori-teori khusus yang berkaitan dalam topic skripsi disini adalah tentang Local
Binary Pattern, OpenCV, FLTK.
2.2.1 Local binary Pattern
Operator LBP adalah salah satu deskriptor tekstur terbaik dan telah banyak
digunakan dalam berbagai aplikasi. LBP telah terbukti sangat diskriminatif dan
|
![]() 15
keuntungan utamanya, yaitu variasi untuk perubahan tingkat abu-abu monoton
dan
efisiensi komputasi, membuatnya cocok untuk tugas gambar menuntut analisis. Ide
untuk menggunakan LBP untuk deskripsi wajah didukung oleh fakta wajah dapat dilihat
sebagai komposisi pola mikro yang dapat dijelaskan oleh sebuah operator.
Local Binary Pattern
(LBP) didefinisikan sebagai ukuran tekstur gray-scale
invarian, berasal dari definisi umum tekstur di daerah sekitar. Operator LBP dapat
dilihat sebagai pendekatan kesatuan dengan model statistik dan struktur tradisional
berbeda dari analisis tekstur.
Secara sederhana, LBP adalah sebuah kode biner yang menggambarkan pola
tekstur lokal. Hal ini dibangun dengan lingkungan batas dengan nilai abu-abu dari
pusatnya (Ahonen, Hadid, & Pietikainen, 2004, pp. 2-3).
Contoh komputasi LBP pada 3x3 pixel
Gambar 2.5 Proses perhitungan pixel LBP
Setiap pixel memiliki nilai hasil grayscale, kemudian dilakukan threshold
berpusat pada titik tengah. Pixel yang memiliki nilai sama atau lebih dibandingkan
dengan titik tengah diberi nilai 1 selain itu diberi nilai 0. Kemudian nilai LBP didapat
dari penjumlahan dua pangkat nilai angka yang bernilai satu.
Gambar 2.6 Rumus komputasi LBP
|
![]() 16
Operator pada LBP memiliki label yang ditandai dengan P dan R. P mewakili
jumlah pixel tetangga yang digunakan dalam komputasi sementara R adalah radius
antara pixel titik pusat dan pixel tetangga.
Gambar 2.7 Varian LBP
Dalam
aplikasi
analisis tekstur
banyak
diinginkan
untuk memiliki
fitur yang
invarian atau kuat untuk rotasi gambar input. Sebagai LBP, pola P,R diperoleh dengan
sirkuler
sampel
sekitar
pixel
pusat, rotasi
gambar input
memiliki dua
efek: setiap
lingkungan lokal diputar ke lokasi pixel lainnya, dan dalam masing-masing lingkungan,
titik sampling pada
lingkaran
yang mengelilingi
titik pusat
diputar
ke
orientasi yang
berbeda.
Perpanjangan pada operator aslinya menggunakan Uniform Pattern. Untuk ini,
ukuran keseragaman pola yang digunakan: U ("pola") adalah jumlah bitwise transisi dari
0 ke 1 atau sebaliknya ketika
pola bit
dianggap
melingkar.
Pola
biner
lokal disebut
seragam
jika
ukuran
keseragaman
adalah 2.
Misalnya, pola
00000000
(0 transisi),
01110000
(2 transisi) dan
11001111
(2 transisi) adalah seragam
sedangkan
pola
11001001 (4 transisi) dan 01010011
(6 transisi) tidak. Dalam pemetaan
LBP seragam
ada yang terpisah output label untuk setiap pola seragam dan semua non-seragam pola
ditugaskan ke label tunggal. Dengan demikian, jumlah label output yang berbeda untuk
pemetaan pola-pola.
|
![]() 17
Gambar 2.8 Uniform patterns
2.2.1.1 Local Binary Pattern untuk Detection
Tujuan deteksi adalah untuk menentukan lokasi dan besarnya wajah manusia
pada gambar atau citra. Pada proses local binary pattern detection
yang diterapkan
OpenCV ada dua tahapan penting dalam mendeteksi wajah yaitu Multi-scale Block
Local Binary Pattern dan Gentle AdaBoost.
2.2.1.1.1 Multi-scale Block Local Binary Pattern
Operator LBP asli label pixel dari suatu gambar dengan thresholding tetangga
3x3 masing-masing pixel nilai pusat dan mempertimbangkan hasil sebagai string biner
atau angka desimal. Kemudian histogram dari label dapat digunakan sebagai deskriptor
tekstur. Sebuah ilustrasi dari operator LBP dasar ditampilkan pada gambar 2.9. Multi-
scale LBP merupakan pengembangan dari LBP, sehubungan dengan penggunaan pixel
tetangga (Liao, Zun, Lei, Zhang, & Li, 2007, p. 3).
|
![]() 18
Gambar 2.9 Proses operator LBP dan MB-LBP(a) LBP operator dasar (b) 9x9 MB-LBP
operator
Dalam MB-LBP, operator perbandingan antara pixel tunggal dalam LBP hanya
diganti dengan perbandingan antara nilai-nilai abu-abu rata-rata pada sebagian daerah.
Setiap wilayah sub blok persegi yang mengandung pixel tetangga. Keseluruhan filter
terdiri dari 9 blok. kita mengambil ukuran s sebagai parameter, dan S X S yang
menunjukkan skala operator MB-LBP (khususnya, 3 x 3 MB-LBP sebenarnya adalah
LBP asli). Perhatikan bahwa nilai-nilai skalar dari rata-rata selama blok dapat dihitung
sangat efisien dari tabel. Untuk alasan ini, MB-LBP ekstraksi fitur juga bisa sangat cepat
karena hanya menimbulkan biaya lebih sedikit dari 3 x 3 LBP operator.
Pada gambar 2.10 diberikan contoh MB-LBP gambar wajah disaring oleh 3 x 3,
9 x 9 dan 15 x 15 blok. Dari contoh ini kita bisa melihat pengaruh parameter s. Untuk
skala kecil, lokal, pola mikro dari struktur wajah juga terwakili, yang bermanfaat untuk
membedakan rincian lokal wajah. Di sisi lain, menggunakan daerah rata-rata nilai
daerah, filter skala besar mengurangi kebisingan, dan membuat representasi yang lebih
kuat, dan informasi skala besar memberikan informasi melengkapi rincian skala kecil.
Tapi banyak informasi diskriminatif juga turun. Biasanya, filter dari berbagai skala harus
hati-hati dipilih dan kemudian disatukan untuk mencapai kinerja yang lebih baik.
|
![]() 19
Gambar 2.10 Perbedaan citra pada jenis MB-LBP(a) gambar awal (b) 3x3 MB-
LBP (c) 9x9 MB-LBP (d) 15x15 MB-LBP
Pada gambar 2.11
menunjukkan MB-LBP fitur untuk gambar perbedaan intra-
personal dan ekstra-personal (piksel yang terang menunjukkan perbedaan yang lebih
besar). Perbedaan gambar digunakan untuk menunjukkan kekuatan diskriminatif dari
MB-LBP.
Gambar 2.11 Perbedaan citra pada intra dan extra personal image (a)(b)gambar
intra-personal image (c)(d)(e)hasil gambar dari 3x3,9x9,15x15 MB-LBP (f)(g)gambar
extra-personal image (h)(i)(j)hasil gambar dari 3x3,9x9,15x15 MB-LBP
|
![]() 20
2.2.1.1.2 Gentle AdaBoost
Gentle
AdaBoost merupakan pengembangan dari metode AdaBoost.
Gentle
AdaBoost menggunakan regresi pangkat terkecil untuk meminimasi fungsi (Ferreira,
2007, pp. 6-7).
Gambar 2.12 Algoritma Gentle AdaBoost
Pada gambar 2.12, fungsi H dicari dengan menentukan kuadrat terkecil y dan x
dengan nilai weight
w. Kemudian dilakukan perulangan pada fungsi yang didapat
dengan fungsi baru. Penambahan kedua fungsi menghasilkan fungsi baru. Setelah
didapat fungsi yang baru dilakukan normalisasi.
Tujuan gentle adaboost adalah menentukan suatu fungsi yang mewakili seluruh
hasil data training yang telah dimasukkan. Kemudian
dari hasil fungsi tersebut
ditentukan batas error yang digunakan sebagai tolak ukur data input baru.
|
![]() 21
Gambar 2.13 Fungsi garis terbentuk dari AdaBoost
Klasifikasi menggunakan AdaBoost dilakukan dalam beberapa tahap. Tahapan
tersebut dilakukan dengan menetapkan penambahan jumlah bin setiap kenaikan tahap
klasifikasi data citra wajah. Pada gambar 2.14, klasifikasi dilakukan bertahap dengan
tujuan menghemat waktu komputasi. Penghematan waktu komputasi terjadi pada
klasifikasi kasar pada tahap awal. Sehingga tidak perlu dilakukan klasifikasi detail atau
menggunakan semua bin pada semua data citra wajah.
Gambar 2.14 Proses klasifikasi AdaBoost
|
![]() 22
2.2.1.2 Local Binary Pattern Histogram untuk Recognition
Pada proses LBP, dibentuk histogram dengan menambahkan nilai setiap blok
sesuai dengan pola biner yang sama.
Pola biner tersebut yang digunakan berdasakan
pattern uniform yang digunakan. Pada prakteknya suatu image dibagi menjadi beberapa
bagian/blok. Hal ini dilakukan untuk mempercepat proses komputasi yang dilakukan.
Pada Gambar 2.15, proses ekstrasi wajah dilakukan dengan menggunakan local
binary pattern. Uniform pattern yang digunakan adalah 2. Alasan digunakan
pengambilan pola biner hanya pada U2 karena pola biner U2 mewakili sekitar 80% dari
jumalh pixel yang ada(Lopez, 2010, p. 9). Sehingga hal ini tidak mengganggu proses
identifikasi wajah. Dari 8 biner terdapat 256 pola biner yang di dapat dari 2 pangkat 8.
Namun pola biner uniform pattern 2 hanya terdapat 58 pola biner uniform. Tapi perlu
ditambah kan 1 lagi sebagai non-uniform sebagai perwakilan dari semua pola non-
uniform. Sehingga jumlah bin yang digunakan adalah 59 bin.
Gambar 2.15 Proses penentuan nilai pada LBP a) Contoh gambar wajah b) LBP image
label c) Histogram LBP uniform pattern 2
|
![]() 23
2.2.1.2.1 Euclidean Distance
Euclidean distance
adalah matrik
yang paling sering digunakan untuk
menghitung kesamaan 2 vektor. Euclidean distance
menghitung akar dari kuadrat
perbedaan 2 vektor (Picas, 2008).
Rumus dari euclidian distance:
Contoh :
Terdapat 2 vektor ciri berikut:
Euclidean distance dari vektor A dan B adalah
2.2.2 OpenCV
2.2.2.1 Definisi OpenCV
OpenCV (Open Computer Vision) adalah program opensource berbasiskan C++
yang saat ini banyak digunakan sebagai program computer vision. Dengan OpenCV
dapat membuat interaksi antara manusia dan computer, misalnya wajah dari manusia
dideteksi oleh camera/webcam, lalu di proses oleh computer, untuk melakukan
aksi
tertentu seperti mengikuti/mengenal wajah orang tersebut. Kesemuanya itu
membutuhkan openCV sebagai program utama antara webcam dan perangkatnya yaitu
|
![]() 24
computer maupun smartphone. Library ini terdiri dari fungsi-fungsi computer vision dan
API (Aplication Programming Interface) untuk image processing high level maupun low
level dan sebagai optimisasi 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 pada manusia.
2.2.2.2 Fitur OpenCV
Berikut ini adalah fitur-fitur pada library OpenCV :
Manipulasi data gambar (alokasi memori, melepaskan memori, kopi gambar,
setting serta konversi gambar)
Image/video
I/O (bisa menggunakan camera
yang sudah didukung oleh
library ini)
Manipulasi matriks dan vector serta terdapat juga routines linear algebra
(products, solvers, eigenvalues, SVD)
Image processing
dasar (filtering, edge detection, pendeteksian tepi,
sampling
dan interpolasi, konversi warna, operasi morfologi, histograms,
image pyramids)
Analisis structural
Kalibrasi kamera
Pendeteksian gerak
Pengenalan objek
Basic GUI (Display gambar/video, mouse/keyboard control, scrollbar)
Image Labelling (line, conic, polygon, test drawing)
|
25
2.2.3 FLTK
The Fast Light Toolkit (FLTK, diucapkan fulltick) adalah sebuah library cross-
platform antarmuka pengguna grafis
(GUI) yang dikembangkan oleh Bill Spitzak dkk.
Dibuat
untuk mengakomodasi
pemrograman
grafis 3D, ia memiliki
antarmuka untuk
OpenGL, tetapi juga cocok untuk pemrograman GUI umum.
FLTK
adalah perangkat lunak bebas, dibawah lisensi
LGPL
dengan
klausul
tambahan
memungkinkan
menghubungkan statis dari
aplikasi
yang tidak kompatibel
dengan lisensi. Ini mencakup FLUIDA (FLTK Pengguna Designer
Interface), seorang
desainer grafis GUI
yang
menghasilkan C++ source file dan header. Berbeda dengan
library
lainnya
seperti
Qt
dan
wxWidgets, FLTK
menggunakan
desain yang lebih
ringan. Karena itu, library ini sangat kecil
ukurannya (program FLTK "Hello World"
hanya sekitar 100 KiB), dan biasanya dihubungkan statis.
|