BAB 2 TINJAUAN PUSTAKA 2.1
Teori Umum
2.1.1
Rekayasa Perangkat Lunak Incremental Process Model Incremental Model menggunakan kombinasi antara proses linear dan paralel
dalam sebuah Process Model, seperti pada gambar berikut:
Gambar 2.1 Incremental Process Model. (sumber : http://3.bp.blogspot.com/-qh2Fip3BLM/UPR2Tc0YfeI/AAAAAAAABDU/cXeSWD78vok/s1600/software_enginee ring_12.png) Proses linear adalah proses yang mengeksekusi masing-masing dari 5 framework activities secara berurutan, sementara proses paralel adalah proses yang mengeksekusi satu atau lebih framework activities dalam waktu bersamaan (Pressman, 2010:31). Proses pertama yang dijalankan dalam model ini adalah core product (kebutuhan dasar dari produk yang diinginkan). Evaluasi dari Increment sebelumnya akan dikembangkan lagi pada Increment berikutnya. Hal ini bertujuan untuk memenuhi kebutuhan user akan produk yang lebih baik dengan tambahan fitur dan fungsionalitas yang ada. Berikut ini adalah penjelasan dari berbagai tahapan dalam Incremental Process Model:
7
8 1. Communication Semua informasi dan kebutuhan yang diinginkan oleh user akan dikumpulkan dan dianalisa untuk tahap berikutnya. 2. Planning Pada tahap ini, akan dibuat mengenai berbagai modul yang perlu dikerjakan serta jangka waktu yang diperlukan. 3. Modelling Pada tahap ini, akan dibuat analisis mengenai struktur data yang akan digunakan, modul algoritma, rancangan perangkat lunak dan desain rancangan layar yang sesuai. 4. Construction Pada tahap ini, akan dilakukan proses pembuatan program berdasarkan hasil analisis sebelumnya. Proses testing juga dilakukan dalam tahap ini untuk memperbaiki kesalahan yang terjadi dalam program. 5. Deployment Pada tahap ini, akan disediakan dokumentasi mengenai program yang telah dibuat dan proses maintenance (perbaikan atau penambahan fitur) secara berkala. Incremental Process Model mampu diterapkan dalam suatu project yang mempunyai deadline yang pasti (tetap) serta tidak memerlukan jumlah orang yang banyak (dapat 1 orang) dalam mengerjakan setiap Increment. Setiap Increment juga dapat direncanakan untuk mengatasi resiko teknis (Pressman, 2010:41-42). 2.1.2
Flowchart Flowchart adalah suatu diagram yang meyajikan berbagai simbol untuk
menampilkan alir data dan urutan operasi dalam suatu sistem. ANSI X.35 digunakan sebagai sumber dasar untuk penggunaan konvensi dan simbol standar flowchart (George H.Bodnar, William S.Hopwood, 2010:41). Berikut ini adalah penjelasan istilah simbol standar dalam flowchart: 1. Terminal Terminal digunakan untuk merepresentasikan awal atau akhir flowchart.
Gambar 2.2 Terminal.
9 2. Input/Output (I/O) Input/Output (I/O) digunakan untuk merepresentasikan data untuk proses berikutnya (input) atau menyimpan informasi proses (output).
Gambar 2.3 Input/Output. 3. Process Process digunakan untuk merepresentasikan setiap jenis proses dalam flowchart.
Gambar 2.4 Process. 4. Flowline Flowline digunakan untuk menghubungkan berbagai simbol sehingga terbentuk sebuah urutan proses.
Gambar 2.5 Flowline. 5. Annotation Annotation digunakan untuk memberikan tambahan deskripsi sebagai klarifikasi.
Gambar 2.6 Annotation. 6. Decision Decision digunakan untuk merepresentasikan operasi tambahan deskripsi sebagai klarifikasi.
10
Gambar 2.7 Decision. 2.1.3
Unified Modeling Language (UML) Unified Modelling Language (UML) adalah sebuah bahasa standar yang
digunakan untuk membantu para pengembang perangkat lunak untuk membangun sebuah perangkat lunak yang baik (Pressman, 2010:841). 2.1.3.1 Use Case Diagram Use Case Diagram adalah rangkuman dan relasi dari keseluruhan use case. Suatu Use Case mendeskripsikan bagaimana user berinteraksi dengan sistem dengan mendefinisikan tahap yang diperlukan untuk mencapai tujuan tertentu (Pressman, 2010:847). Berikut ini adalah contoh Use Case Diagram untuk video player system:
Gambar 2.8 Use Case Diagram Video Player. Berikut ini adalah penjelasan istilah dalam Use Case Diagram : 1. Actor Actor digunakan untuk menggambarkan pelaku yang menyediakan atau menerima informasi dari sistem (Pressman, 2010:847).
11
Gambar 2.9 Actor. 2. Use Case Use Case digunakan untuk menggambarkan fungsionalitas dan kebutuhan sistem dari sudut pandang Actor (Pressman, 2010:847).
Gambar 2.10 Use Case. 2.1.3.2 Use Case Narrative Use Case Narrative merupakan penjelasan mengenai setiap use case yang didokumentasikan ke dalam suatu naratif (Whitten & Bentley, 2007, P.256 – P.260). Berikut ini adalah contoh Use Case Narrative mengenai Play Music: Tabel 2.1 Contoh Use Case Narrative dari Play Music. Nama Use Case
Play Music
Actor
User Use Case ini mendeskripsikan tentang Play Music
Deskripsi
dalam video player
Precondition
Actor telah membuka aplikasi.
Flow of Event
Actor Action
System Response
Step 1. Actor menekan
Step 2. Sistem akan
tombol Play Music.
memutar lagu yang ada di playlist.
Postcondition
Actor melakukan proses Play Music.
12 2.1.3.3 Activity Diagram Activity Diagram adalah diagram yang menggambarkan perilaku dinamis dari suatu atau bagian sistem melalui proses kontrol dari berbagaitindakan yang dilakukan oleh sistem. Activity Diagram memiliki kemiripan dengan flowchart, tetapi dapat memiliki proses yang konkuren. Activity Diagram juga dapat diberi swimlanes untuk menyatakan participant yang menjalankan action terkait (Pressman, 2010:853855). Berikut ini adalah contoh activity diagram dengan swimlanes:
Gambar 2.11 Contoh Activity Diagram. Berikut ini adalah penjelasan istilah dalam Activity Diagram:
13
1. Initial Node Initial node digunakan untuk menggambarkan titik awal proses dalam activity diagram. Initial node digambarkan sebagai lingkaran hitam (Pressman, 2010:853).
Gambar 2.12 Initial node. 2. Action Node Action node digunakan untuk menggambarkan proses yang dilakukan oleh sistem dalam activity diagram. Action node digambarkan sebagai rounded rectangle (Pressman, 2010:853).
Gambar 2.13 Action node. 3. Control Flow Control flow digunakaan untuk menggambarkan alir dari suatu elemen ke elemen lainnya dalam activity diagram. Control flow digambarkan sebagai garis panah (Pressman, 2010:853).
Gambar 2.14 Control flow. 4. Fork Fork digunakan untuk menggambarkan pemisahan suatu proses menjadi dua atau lebih proses yang konkuren. Fork digambarkan sebagai persegi panjang hitam horizontal dengan satu panah input dan dua atau lebih panah output (Pressman, 2010:853).
14
Gambar 2.15 Fork. 5. Join Join digunakan untuk menggambarkan sinkronisasi proses yang konkuren. Join digambarkan sebagai persegi panjang hitam horizontal dengan banyak panah input dan satu panah output (Pressman, 2010:854).
Gambar 2.16 Join. 6. Decision Decision digunakan untuk menggambarkan kondisi seleksi dalam control flow. Decision digambarkan sebagai wajik dengan satu panah input dan dua atau lebih panah output. Setiap panah output akan diberi keterangan (Pressman, 2010:854856).
Gambar 2.17 Decision.
15
2.1.3.4 Class Diagram Class Diagram adalah diagram yang menyediakan pandangan secara struktural atau statik dari suatu sistem. Elemen utama dari class diagram adalah berbagai kotak yang merepresentasikan class dan interface. Sebuah class diagram juga dapat menjelaskan mengenai relasi antar class (Pressman, 2010:842-843). Berikut ini adalah contoh class diagram:
Gambar 2.18 Contoh Class Diagram. Berikut ini adalah penjelasan istilah dalam Class Diagram : 1. Class Class merupakan sebuah template, cetakan atau prototype yang menggambarkan sebuah objek. Sebuah Class dalam Class Diagram terdiri atas 3 bagian, yaitu nama Class, attribute, dan operation. Attribute menunjuk kepada suatu data yang dimiliki dan diketahui oleh objek dari class terkait. Attribute umumnya diimplementasikan sebagai variabel dalam Class. Operation menunjuk ke sesuatu yang dapat dilakukan oleh objek dari class terkait. Operation umumnya diimplementasikan sebagai method dalam Class (Pressman, 2010:842).
16
MyClass -MyAttribute +MyOperation() Gambar 2.19 Class. 2. Type Type menggambarkan jenis atau tipe dari suatu attribute atau operation. Type ditulis dengan mengikuti nama attribute atau operation dan dipisahhkan dengan tanda titik dua (Pressman, 2010:842-843).
Gambar 2.20 Type dalam Class Diagram. 3. Visibility Visibility digunakan untuk mendeskripsikan hak akses dari suatu attribute atau operation dalam suatu Class (Pressman, 2010:842-843). Berikut ini adalah berbagai tipe dari visibility:
Tabel 2.2 Tabel Visibility. Visibility
Simbol
Private
-
Dapat diakses oleh Class yang memiliki.
Public
+
Dapat diakses oleh Class lainnya.
Protected
#
Dapat diakses oleh Class yang memiliki serta
Deskripsi
turunan(inherit) dari Class tersebut.
4. Interface Interface merupakan elemen dari Class Diagram yang mendefinisikan sejumlah operation untuk diimplementasikan ke dalam Class atau elemen lainnya.
17 Interface dalam Class Diagram terdiri atas nama interface (dengan tambahan kata “<
>”) dan operation (Pressman, 2010:843).
Gambar 2.21 Interface. 5. Generalizaton Generalization
digunakan
untuk
mendeskripsikanrelasi
berupa
turunan(inheritance) dalam Class Diagram. Inheritance pada Class Diagram melibatkan minimal 2 Class, yaitu superclass dan subclass. Generalization digambarkan sebagai sebuah panah dengan garis lurus dan mata panah segitiga pada superclass (Pressman, 2010:843).
Gambar 2.22 Generalization. 6. Association Association digunakan untuk mendeskripsikan relasi struktural antar Class. Association umumnya digambarkan sebagai garis penuh dan dapat diberi label untuk mengindikasikan peran dari Class tersebut. Garis penuh dengan panah pada salah satu ujungnya dalam Class Diagram mengindikasikan one-way navigability association. Assocation juga menyatakan adanya ketergantungan (dependency) antara Class yang berhubungan. Multiplicity digunakan untuk menyatakan jumlah objek dari suatu Class yang memiliki hubungan association
dengan Class lainnya. Multiplicity dinyatakan dengan satu atau jarak bilangan bulat
18 positif di tiap ujung garis association (Pressman, 2010:844–845). Berikut ini adalah
berbagai tipe dari multiplicity: Tabel 2.3 Tabel Multiplicity. Multiplicity
Simbol
Deskripsi
Zero or one
0…1
Association melibatkan satu atau tidak ada objek
Exactly one
1
Association melibatkan tepat satu objek
Many
*
Association melibatkan banyak objek
One or many
1…*
Association melibatkan satu atau banyak objek
Zero or many
0…*
Association melibatkan banyak objek atau tidak ada sama sekali
7. Aggregation Aggregation digunakan untuk mendeskripsikan relasi kepemilikan antar Class. Kepemilikan dalam aggregation mendefinisikan suatu Class sebagai bagian dari Class lainnya. Tiap Class yang memiliki hubungan Aggregation tetap bersifat independent (tidak memiliki ketergantungan). Aggregation digambarkan sebagai garis penuh dengan salah satu ujungnya berupa bentuk wajik (Pressman, 2010:845).
Gambar 2.23 Aggregation.
19
8. Composition Composition memiliki kesamaan dengan aggregation. Perbedaannya adalah adanya kepemilikan atau ketergantungan yang kuat(dependent) antar Class dalam composition.Composition digambarkan sebagai garis penuh dengan salah satu ujungnya berupa bentuk wajik berwarna hitam(Pressman, 2010:845).
Gambar 2.24 Composition. 2.1.3.5 Sequence Diagram Sequence Diagram adalah diagram yang menjelaskan mengenai komunikasi dinamis antar objek selama proses eksekusi berlangsung. Sequence Diagram menggambarkan adanya berbagai pesan yang dikirim antar objek untuk menyelesaikan suatu proses (Pressman, 2010:848). Berikut ini adalah contoh dari Sequence Diagram:
20 Gambar 2.25 Contoh Sequence Diagram. Berikut ini adalah penjelasan istilah dalam Sequence Diagram: 1. Lifelines Lifelines digunakan untuk menggambarkan jangka waktu dari suatu intance objek atau role. Lifelines digambarkan sebagai garis putus-putus di bawah objek (Pressman, 2010:849).
Gambar 2.26 Lifelines. 2. Instance Role Instance role digunakan untuk menggambarkan instance yang terlibat dalam suatu proses. Instance umumnya menunjuk ke suatu objek. Nama dari instance role dapat diawali tanda titik dua jika mengacu pada sebuah objek (Pressman, 2010:849).
Gambar 2.27 Instance. 3. Activation bar Activation bar digunakan untuk menggambarkan lama waktu eksekusi suatu operasi. Activation bar digambarkan sebagai persegi panjang putih pada lifelines (Pressman, 2010:849).
Gambar 2.28 Activation bar.
21
4. Messages (call) Messages (call) digunakan untuk menggambarkan pesan yang dikirim dari instance pengirim ke penerima. Messages (call) digambarkan sebagai sebuah garis panah penuhdengan nama operation yang dieksekusi. Messages (call) juga dapat berisi parameter, jenis serta return type dari operation yang dieksekusi. Jika instance pengirim dan penerima sama, maka panah dapat menunjuk kembali ke instance yang sama (Pressman, 2010, 849-851).
Gambar 2.29 Messages (call). 5. Messages (return) Messages (return) digunakan untuk menggambarkan pesan balasan (reply) dari instance penerima ke pengirim. Messages(call) digambarkan sebagai sebuah garis panah putus-putus (Pressman, 2010, 849).
Gambar 2.30 Messages (return). 6. Interaction frames Interaction frames digunakan untuk menggambarkan proses perulangan, seleksi dan struktur kontrol lainnya dalam sequence diagram. Interaction frames digambarkan sebagai sebuah persegi yang meliputi sebagian isi dari sequence diagram (Pressman, 2010:850).
Gambar 2.31 Interaction frames.
22
7. Object destruction Object destruction digunakan untuk menggambarkan suatu objek yang tidak lagi digunakan. Object destruction digambarkan sebagai sebuah tanda X di akhir lifelines (Pressman, 2010:851). 2.1.4
Interaksi Manusia Dan Komputer Menurut (Sheindermann, 2010:88), ada delapan aturan emas (eight golden
rules) dalam merancang suatu sistem interaksi manusia dan komputer yang baik, yaitu; 1. Strive for consistensy (berusaha untuk konsisten). 2. Cater to universal usability (dapat digunakan secara universal). 3. Offer informative feedback (menyediakan umpan balik informatif). 4. Design dialogs to yield closure (pengorganisasian berbagai aksi ke dalam dialog untuk membentuk urutan yang jelas dari awal sampai penutupan). 5. Prevent Errors (pendeteksian error dan penyediaan instruksi sederhana untuk memperbaiki error tersebut). 6. Permit easy reversal of actions (menyediakan fitur untuk kembali ke aksi sebelumnya dengan mudah). 7. Support internal locus of control
(memungkinkan pengguna untuk
mengatursistem dan tampilan aplikasi). 8. Reduce short-term memory load (mengurangi beban pengguna untuk mengingat berbagai informasi dari layar aplikasi). 2.1.5
Computer Vision Computer Vision adalah suatu bidang ilmu yang bertujuan untuk melakukan
transformasi data dari suatu gambar atau video camera ke dalam suatu keputusan atau representasi yang baru. Semua transformasi yang dilakukan bertujuan untuk mencapai tujuan tertentu. Suatu sistem mesin hanya dapat melihat urutan angka dari suatu gambar. Oleh karena itu, Computer Vision bertujuan mengubah sistem mesin dapat mengidentifikasi suatu gambar, seperti wajah dan rupa manusia. Computer Vision dapat diterapkan dalam berbagai area, yaitu robotik, text recognition, analisis medis, game dengan Augmented Reality (AR), dan lainnya (Gary Bradki & Adrian Kaehler, 2008: 2-3).
23
2.2
Teori Khusus
2.2.1
Facial Action Coding System (FACS) Facial Action Coding System (FACS) adalah sebuah sistem yang dibangun
oleh Paul Ekman dan Wallace V. Friesen pada tahun 1978 dengan tujuan untuk menentukan jenis ekspresi wajah dalam Action Units (AUs). Action Unit (AU) adalah suatu bagian yang secara anatomi berhubungan dengan kontraksi atau relaksasi berbagai otot tertentu. Ada 30 AU yang berhubungan dengan wajah, dimana bagian wajah atas memiliki 12 AU dan sisanya untuk bagian wajah bawah. Gabungan dari berbagai AU akan membentuk jenis emosi tertentu. Pergerakan dari AU juga dapat bersifat independen (tidak mengubah AU yang lain) atau nonindependen (mempengaruhi AU yang lain). Selain itu, tiap perubahan AU memiliki intensitas yang berbeda dan dapat hanya terjadi pada salah satu sisi wajah (Raymond R.Smith, Terry Windeatt, 2011:2). Ekspresi umum yang menggunakan FACS dalam pengenalan ekspresi wajah adalah terkejut (surprise), sedih (sadness), marah (anger), senang (happiness), jijik (disgust) dan takut (fear). Berikut contoh FACS dan AU dari gambar 2.11 dan 2.12:
Gambar 2.32 Action Unit wajah bagian atas dan bawah. (sumber : http://pds16.egloos.com/pds/201001/23/94/a0007594_4b5ae1b743752.png)
24
Gambar 2.33 Ekspresi marah yang dibentuk dari berbagai Action Unit. (sumber : http://what-when-how.com/wpcontent/uploads/2012/06/tmp7527314_thumb_thumb.png) Penelitian ini menggunakan FACS sebagai acuan pengenalan ekspresi pada Kinect. FACS pada Kinect terdiri dari 6 AU, yaitu Neutral Face, AU0 (Upper Lip Raiser), AU1 (Jaw Lowerer), AU2 (Lip Stretcher), AU3 (Brow Lowerer), AU4 (Lip Corner Depressor), dan AU5 (Outer Brow Raiser). Berikut ini adalah deskripsi dari masing-masing AU pada Kinect:
Tabel 2.4 Tabel AUs pada Kinect. Deskripsi AU
Ilustrasi AU
Interpretasi Nilai AU
Neutral Face
AU0 (Upper Lip Raiser)
0 : Netral dan gigi terlihat. +1: Gigi terlihat sepenuhnya. -1 :Bibir tertutup penuh.
25 Deskripsi AU
Ilustrasi AU
AU1 (Jaw Lowerer)
Interpretasi Nilai AU 0 : Rahang tertutup. +1: Rahang terbuka penuh. -1 : Rahang tertutup.
AU2 (Lip Stretcher)
0
: Netral.
+1 : Bibir ditarik penuh ke samping. -0.5: Bibir mulai berbentuk lingkaran. -1 :Bibir membentuk lingkaran penuh. AU3 (Brow Lowerer)
0
: Netral.
-1 : Alis naik ke atas secara maksimal. +1 : Alis turun ke bawah dan mendekati mata.
AU4 (Lip Corner Depressor)
0
: Netral.
-1 : Bibir tersenyum dengan sangat bahagia. +1 : Bibir mengkerut dengan sangat sedih.
AU5 (Outer Brow Raiser)
0 : Netral. -1 : Ujung luar alis turun ke bawah seperti sangat sedih. +1 : Ujung luar alis naik ke atas seperti terkejut.
2.2.2
Active Appearance Model (AAM) Active Appearance Model (AAM) adalah sebuah metode template-matching
berdasarkan statistik dengan variasi bentuk dan tesktur wajah yang berasal dari sebuah dataset training (Pedro Alexandre Dias Martins, 2008:22). AAM dikembangkan oleh Cootes et al. pada tahun 1998 dan dapat diterapkan pada banyak
26 objek, terutama untuk model bentuk dan tesktur wajah manusia. Berikut ini adalah berbagai tahap dalam AAM untuk memperoleh model yang diinginkan, yaitu: 1. Face Detection untuk wajah target dengan algoritma Viola-Jones. 2. Model Training. Pada tahap ini, contoh AAM akan di-training sehingga cocok dengan gambar target. AAM instance dibangun melalui 3 tahap, yaitu Shape Model, Texture Model, dan Combined Model. 3. Model Fitting untuk optimasi dengan menggunakan simulasi Monte-Carlo. Dalam Model Training, AAM mengambil kumpulan gambar dan titik yang berhubungan sebagai input dan menghasilkan output berupa sebuah model dengan berbagai parameter. Selanjutnya, AAM akan mencari parameter yang optimal untuk model tersebut secara real-time pada tahap Model Fitting (Dinesh Govindaraj, 2011). Parameter optimal yang diinginkan dalam AAM adalah perbedaan tesktur yang minimal antara instance model dengan gambar target. Oleh karena itu, AAM akan mengunakan algoritma fitting pada model yang diperoleh. Algoritma fitting adalah sebuah algoritma non-linear yang di-iterasi berulang kali sehingga diperoleh nilai tertentu yang diinginkan pada parameter bentuk dan teksturdari model (Gyeong Sic Jo, Yong Guk Kim, 2010). Berikut ini adalah diagram yang menjelaskan cara kerja AAM dalam mengenali ekspresi wajah:
Gambar 2.34 Diagram sistem pengenalan ekspresi wajah menggunakan AAM. 2.2.2.1 Shape Model Shape Model adalah sebuah model yang diperoleh darisuatu bentuk dengan berbagai parameter dan bertujuan untuk proses ekstraksi fitur wajah dan area sekitarnya. Shape Model dikembangkan oleh Tim Cootes dan Chris Taylor pada tahun 1995 dan memiliki sifat deformable, yaitu dapat menyesuaikan diri dengan
27 objek gambar yang baru (Qihui Wang, Lijun Xie, Bo Zhu, Tingjun Yang, Yao Zheng, 2013). Sebuah bentuk dalam Shape Model direpresentasikan sebagai himpunan titik N dalam dimensi K (Rk). Dalam gambar 2D (K=2), N titik
didefinisikan dalam 2N vektor: x=(
T
Dalam Shape Model, berbagai bentuk asli (original) dari N titik tersebut akan dilakukan transformasi (scaling, translation, dan rotation) sehingga diperoleh sebuah model dari rata-rata bentuk asli. Metode yang digunakan untuk proses transformasi dalam Shape Model adalah Generalized Procrustes Analysis. Selanjutnya, variansi dari dataset bentuk tersebut akan dianalisis menggunakan Principal Component Analysis (PCA) untuk memperoleh model yang diinginkan. Berikut adalah skema dari 58 titik yang merepresentasikan bentuk dari wajah manusia:
Gambar 2.35 Skema hubungan titik wajah
manusia. Gambar 2.36 Hasil dari Shape Model. (sumber : http://what-when-how.com/wpcontent/uploads/2012/06/tmpdece404_thumb22_thumb.png)
28
2.2.2.1.1 Generalized Procrustes Analysis Procrustes Analysis adalah sebuah metode penyesuaian antara kedua bentuk dengan cara korespondensi satu-satu dari titik di tiap bentuk (Sergio Camiz, Jean Jacques Denimal, 2011). Metode ini pertama kali dikembangkan oleh Mosier pada tahun 1939 dan diberi nama Procrustes Analysis oleh Hurley dan Cattel pada tahun 1962. Procrustes Analysis menggunakan Procrustes Distance yang secara matematis dapat dinyatakan sebagai berikut:
Generalized Procrustes Analysis merupakan pengembangan lanjut dari Procrustes Analysis yang melibatkan banyak bentuk dimana salah satu bentuk menjadi acuan (Adrien Bartoli, Daniel Pizzaro, Marco Loog, 2013: 4). Berikut ini adalah algoritma dari Generalized Procrustes Analysis: 1. Choose the first shape as an estimate for the mean shape 2. Initialize k = 0 3. Repeat for Each Shape
do
Procrustes( end for k=k+1 Recompute new mean from the aligned shape 4. Until mean converges (Pedro Alexandre Dias Martins, 2008:29)
29
Tabel 2.5 Transformasi titik setelah proses Procrustes Alignment. Raw Data
General Procrustes Alignment result
2.2.2.1.2 Principal Component Analysis (PCA) Principal Component Analysis (PCA) adalah sebuah teknik statistik multivariat yang menganalisis sebuah tabel data dan direpresentasikan dengan berbagai variabel yang bersifat dependent dan inter-correlated. Metode PCA dikenal juga dengan metode Karhunen-Loeve Transformation (KLT). Tujuan dari PCA adalah mereduksi dimensi data dan ekstraksi informasi penting dari tabel data ke dalam himpunan variabel orthogonal yang disebut Principal Components (Hérve Abdi, Lynne J. Williams, 2010:2). Berikut ini adalah tampilan dari Principal Components dalam 2D:
Gambar 2.37 Principal Components dalam 2D. 2.2.2.2 Texture Model
30 Tekstur didefinisikan sebagai distribusi spasial dari nilai pixel dalam suatu region lokal gambar (Madasamy Raja, G. Sadasivam, & V. Sadasivam, 2013). Secara matematis, tektur adalah representasi sebuah vektor g:= terhadap m pixel dalam entiti model. Jika gambar memiliki warna dasar RGB, maka nilai m akan terdiri dari 3 bagian, yaitu
Dalam Texture Model, setiap
gambar yang terdapat di dalam data training akan dilakukan proses pemetaan dan pelengkungan sehingga perbedaan tesktur dari Texture Model akan hilang jika Shape Model mengalami perubahan bentuk (Pedro Alexandre Dias Martins,2008:35-36). Secara matematis, proses pemetaan dan pelengkungan sebuah tekstur dapat dinyatakan sebagai berikut:
Dimana: n = jumlah pixel.
Dalam Texture Model, sebuah poligon akan dibuat dari bentuk rata-rata wajah dengan menggunakan Delaunay Triangulation. Setelah poligon dibuat, setiap pixel yang terdapat dalam poligon akan ditranslasi dengan menggunakan Barycentric Coordinates dan Bilinear Interpolation. Berikut ini adalah algoritma dari proses pemetaan dan pelengkungan tekstur: 1. Use Delaunay Triangulation to find the mean shape 2. For each pixel x= 2.
Find ,
the
inside the mean shape do
triangle,
t,
in
which
x
belong
to
t:
x
€
t,
,
3.
Use Barycentric Coordinates to find from t
4.
Find
with bilinear interpolation
5. end for (Pedro Alexandre Dias Martins,2008:39) Berikut ini adalah contoh Delaunay Triangulation dan Barycentric Coordinates dalam Texture Model:
31
Gambar 2.38 Poligon wajah menggunakan Delaunay Triangulation. (sumber : http://1.bp.blogspot.com/-YhVRZ_Nwcc/TpiQUe0SfaI/AAAAAAAAAfs/mYjQLqKCyGU/s1600/tri.png)
Gambar 2.39 Translasi pixel wajah menggunakan Barycentric Coordinates dan Bilinear Interpolation. (sumber : http://what-when-how.com/wpcontent/uploads/2012/06/tmpdece379_thumb2.png) 2.2.2.2.1 Delaunay Triangulation
32 Delaunay Triangulation adalah sebuah triangulasi (
) dari himpunan
titik dalam bidang jika dan hanya jika circumcircle dari setiap segitiga dari tidak mengandung titik dari P. Sebuah triangulasi ( jika
)
) disebut legal jika dan hanya
adalah sebuah Delaunay Triangulation (Mark de Berg, Otfried Cheong,
Marc van Kreveld, Mark Overmars, 2008:198). Berikut ini adalah contoh dari hasil Delaunay Triangulation:
Gambar 2.40 Contoh Delaunay Triangulation. Tujuan dari Delaunay Triangulation adalah untuk memaksimalkan setiap sudut terkecil di tiap segitiga sehingga diperoleh sebuah model dengan pandangan perspektif yang tepat. Berikut ini adalah model wajah yang diperoleh dari Delaunay Triangulation:
Gambar 2.41 Model wajah yang diperoleh dari Delaunay Triangulation.
33 (sumber : https://m1.behance.net/rendition/modules/67523857/disp/51b2a10363352ec2b30cbc 354394687e.jpg) 2.2.2.2.2 Barycentric Coordinates Barycentric Coordinates pertama kali diperkenalkan oleh August Ferdinand Möbius dalambuku The Barycentric Calculus pada tahun 1827. Barycentric Coordinates digunakan untuk menentukan posisi titik dalam suatu poligon (Christina Koblbauer, 2012:1-2). Poligon yang digunakan dalam penelitian ini adalah hasil dari Delaunay Triangulation sebelumnya. Suatu titik(
dalam segitiga dapat
dinyatakan dengan:
Dimana: A,B,C: ketiga titik segitiga. s,r,t €
dimana s+r+t=1.
Suatu titik berada di dalam segitiga jika memenuhi syarat sebagai berikut:
2.2.2.2.3 Bilinear Interpolation Bilinear Interpolation (Interpolasi bilinear) adalah suatu metode untuk memperkirakan nilai data baru di antarakeempat titik tetangga (ShengKui Gao,Viktor Gruev, 2011). Berikut ini adalah contoh hasil interpolasi bilinear dari keempat titik tetangga (
:
34
Gambar 2.42 Titik P dari hasil interpolasi bilinear 4 titik (
.
(sumber : http://upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Bilinear_interpolation.p ng/220px-Bilinear_interpolation.png) Hasil dari interpolasi bilinear (
secara matematis dapat dinyatakan
sebagai berikut:
Dimana: .
.
2.2.2.3 Combined Model Dalam tahap ini, Shape Model dan Texture Model yang telah dibangun akan digabung untuk mendapatkan contoh AAM dari suatu wajah. PCA akan digunakan lagi untuk menghilangkan hubungan antara parameter dari Shape Model dan Texture Model. Berikut ini adalah berbagai langkah yang dilakukanuntuk menggabungkan Shape Model dan Texture Model:
35 1. Menghitung matriks bobot (
untuk mengukur perbedaan unit antara
Shape Model dan Texture Model. Matriks bobot (
dinyatakan sebagai
berikut:
Dimana: = rasio antara jumlah nilai eigen Shape Model dan Texture
.
Model:
= matriks diagonal . 2.Menghitung PCA ( ) dari
,
, dan matriks bobot
. dapat dinyatakan
sebagai berikut:
3. Jika
adalah matriks vektor eigen yang paling dominan dalam parameter
model AAM(
, maka
juga dapat dinyatakan sebagai berikut:
Dimana:
4. Shape Model (x) yang baru dapat dinyatakan sebagai berikut:
5. Texture Model (g) yang baru dapat dinyatakan sebagai berikut:
36 Berikut ini adalah contoh AAM yang diperoleh dari Combined Model:
Gambar 2.43 Contoh AAM dari Combined Model. (sumber : http://media.tumblr.com/tumblr_lkttieolqC1qdqlma.png) 2.2.3
Kinect Kinect adalah suatu alat pendeteksi gerakan dan suara yang diproduksi oleh
Microsoft untuk video game. Kinect pertama kali diperkenalkan pada tahun 2010 sebagai free-controller game device. Microsoft juga merilis Kinect SDK sehingga para
game
developer
dapat
menggunakan
dengan
menggunakan
bahasa
pemrograman C++, C#, atau Visual Basic.NET (VB.NET). Kinect menggabungkan kamera RGB dengan depth sensor sehingga dapat mengukur jarak terhadap berbagai titik dan merekam posisi sendi dalam sebuah frame (M.Robinson, M.B. Parkinson, 2013). Sebagai alat pendeteksi gerakan, Kinect akan menghasilkan 3 output gambar yang berbeda, yaitu Infra-red (IR), RGB, dan depth. Hal ini dikarenakan depth sensor yang terdapat dalam Kinect merupakan gabungan dari IR projector dan IR camera. Penelitian ini menggunakan Kinect karena dapat mendeteksi berbagai pose orang secara efektif dari depth image dan memberikan estimasi yang akurat mengenai keseluruhan bagian tubuh orang tersebut.
37
Gambar 2.44 Tampilan Kinect. (sumber : http://upload.wikimedia.org/wikipedia/commons/6/67/Xbox-360-KinectStandalone.png)
Gambar 2.45 RGB dan depth image pada Kinect. (sumber : http://alixedi.wikispaces.com/file/view/_kinect_rgb%2Bdep.jpg/260983470/498x184 /_kinect_rgb%2Bdep.jpg) 2.2.4
Uji Modified Thompson Tau Uji Modified Thompson Tau adalah sebuah uji statistik yang digunakan untuk
membuang pencilan (outlier) dari sampel satu variabel. Pencilan didefinisikan sebagai suatu nilai data yang tidak konsisten (menyimpang) dengan keseluruhan nilai data secara statistik. Karena FACS pada Kinect akan menghasilkan nilai AU antara , maka pencilan dari sampel dapat dihilangkan dengan menggunakan uji Modified Thompson Tau. Berikut ini adalah tahapan yang dilakukan untuk menghilangkan nilai pencilan dengan uji Modified Thompson Tau: 1. Hitung nilai rata-rata ( ) dan standar deviasi
dari sampel
38 2. Untuk setiap nilai dari data, hitung
3. Hitung
Dimana: Banyaknyanilai dari data. Nilaikritis yang ditetapkan.
Nilai
juga dapat diperoleh dari tabel Modified Thompson berikut:
Tabel 2.6 Tabel Modified Thompson .
4. Suatu nilai dari data disebut pencilan jika
, dan sebaliknya.
(John M.Cimbala, 2011) 2.2.5
Uji-t dua sampel independen variansi berbeda (Welch’s t- test) Uji hipotesis dua rata-rata digunakan untuk mengetahui ada atau tidak adanya
perbedaan (signifikansi) rata-rata antara dua buah data. Welch's t-test adalah satu metode statistik uji dari pengujian perbedaan rata‐rata dua sampel saling bebas
39 (independent two sample) dengan varians yang diasumsikan berbeda (
).
Welch's t-testdapat dinyatakan sebagai berikut:
Untuk menentukan degree of freedom dapat menggunakan rumus sebagai berikut:
akan di-reject jika memenuhi syarat berikut:
(Walpole, Myers, Ye, 2007:347) 2.2.6
Performance Metrics for Biometric System Performance Metrics for Biometric System digunakan sebagai verifikasi
untuk mengukur performa dari sistem biometrik yang ada. Metrics akan menggunakan hasil evaluasi yang diperoleh dari berbagai kriteria parameter yang berbeda. Verifikasi (otentikasi) dalam Metrics adalah proses penegasan bahwa identifikasi adalah benar dengan satu atau lebih identitas yang telah terdaftar sebelumnya. Berikut ini adalah berbagai metrics yang terdapat dalam verifikasi tersebut: 1. False Rejection Rate atau False Non-Match Rate (FRR atau FNMR) adalah persentase banyaknya kejadian yang terjadi dimana sistem menolak suatu input yang sesuai.
40 2. False Acceptance Rate atau False Match Rate (FAR atau FMR) adalah persentase
banyaknya
kejadian
yang
terjadi
dimana
sistem
salah
mengidentifikasi suatu input yang tidak sesuai. 3. True Accept Rate (TAR) adalah persentase banyaknya kejadian yang terjadi dimana sistem dengan benar mengidentifikasi suatu input yang sesuai. 4. True Reject Rate (TRR) adalah persentase banyaknya kejadian yang terjadi dimana sistem dengan benar menolak suatu input yang tidak sesuai.
2.2.7
Fuzzy Logic Fuzzy Logic adalah suatu multi-value logic yang mengijinkan berbagai nilai
kebenaran (P) ditambahkan ke dalam dua kebenaran umum sehingga P dapat berkisar antara (
(Timothy J.Ross, 2010:132). Proporsi dari nilai kebenaran
) dapat dinyatakan sebagai berikut:
Pendekatan fuzzy memiliki kelebihan pada hasil yang terkait dengan pengenalan pola dan pengambilan keputusan dalam kondisi yang tidak pasti. Berikut ini adalah berbagai alasan mengenai penerapan Fuzzy Logic dalam kehidupan: 1. Konsep Fuzzy Logic mudah dimengerti. 2. Fuzzy Logic sangat fleksibel. 3. Fuzzy Logic memiliki toleransi terhadap data yang tidak tentu. 4. Fuzzy Logic mampu memodelkan berbagai fungsi nonlinear. 5. Fuzzy Logic dapat membangun pengalaman para pakar dalam aplikasi tanpa harusmelalui proses pelatihan. (Kusumadewi S, Purnomo H, 2010) 2.2.7.1 Himpunan Fuzzy Himpunan Fuzzy (Fuzzy Set) adalah sebuah himpunan yang memuat berbagai variasi derajat keanggotaan. Sebuah himpunan Fuzzy (A) dapat dinyatakan sebagai berikut:
41
(Timothy J.Ross, 2010:34)
Himpunan Fuzzy memiliki 2 atribut, yaitu: 1. Linguistik, yaitu penamaan suatu grup yang mewakili suatu keadaan atau kondisi tertentudengan menggunakan bahasa alami, seperti: senang dan sedih, 2. Numeris, yaitu suatu nilai (angka) yang menunjukkan ukuran dari suatu variabel seperti: 10, 20, dan 30. Berikut ini adalah contoh interpretasi dari himpunan Fuzzy dengan variabel berupa temperatur:
Gambar 2.46 Himpunan Fuzzy dengan variabel temperatur. (sumber : http://www.cs.bris.ac.uk/~kovacs/publications/gbml-survey/htmlversion/shadow-fuzzy-sets.png) 2.2.7.2 Fungsi Keanggotaan (Membership Function) Fungsi keanggotaan (Membership Function) adalah suatu kurva (
yang
menunjukkan pemetaan dari derajat keanggotaan dengan interval antara 0 sampai 1. Sebuah fungsi keanggotaan dapat terdiri dari bagian, yaitu: 1. Core adalah daerah tersebut
dari fungsi keanggotaan dimana elemen daerah
memiliki nilai derajat kenggotaan penuh (
).
2. Support adalah daerah dari fungsi keanggotaan dimana elemen daerah tersebut
memiliki nilai derajat kenggotaan yang lebih besar dari 0 (
).
42 3. Boundaries adalah daerah dari fungsi keanggotaan dimana elemen daerah tersebut
memiliki nilai derajat kenggotaan yang lebih besar dari 0 tetapi tidak
penuh (
).
Gambar 2.47 Fungsi Keanggotaan (Membership Function). (sumber : http://3.bp.blogspot.com/SH4AsnHWTDE/TlZ5M_rfSwI/AAAAAAAACRs/s2I9Re3W8dA/s400/coresupport-boundary-of-a-membership-function.png) Suatu himpunan Fuzzy disebut normal jika memiliki minimal 1 elemen yang memiliki nilai derajat kenggotaan penuh. Berikut ini adalah berbagai fungsi sederhana yang dapat digunakan sebagai pendekatan untuk mendapatkan derajat keanggotaan: 1. Representasi Linear Representasi linear memetakan derajat keanggotaannya sebagai suatu garis lurus sederhana (naik atau turun). Digunakan untuk suatu masalah yang belum tentu atau jelas. Fungsi keanggotaan dari representasi linear dinyatakan sebagai berikut: 1. Representasi Linear Naik, seperti pada gambar berikut:
43
Gambar 2.48 Representasi Linear Naik.
Fungsi keanggotaan:
2. Representasi Linear Turun, seperti pada gambar berikut:
Gambar 2.49 Representasi Linear Turun
Fungsi keanggotaan:
2. Representasi kurva segitiga Representasi linear memetakan derajat keanggotaannya sebagai suatu segitiga, seperti pada gambar berikut:
Gambar 2.50 Representasi Kurva Segitiga.
44
Fungsi keanggotaan:
3. Representasi Kurva Trapesium Representasi
linear
memetakan
derajat
keanggotaannya
sebagai
suatu
trapesium(beberapa titik memiliki nilai derajat keanggotaan penuh), seperti pada gambar berikut:
Gambar 2.51 Representasi Kurva Trapesium.
Fungsi keanggotaan:
2.2.7.3 Defuzzify Defuzzify adalah proses mendapatkan nilai tertentu dari himpunan Fuzzy dari berbagai komposisi aturan Fuzzy.
Gambar 2.52 Contoh Defuzzify (CoG).
45 Output
fuzzy diperoleh
melalui
eksekusi
dari
beberapa
fungsi
keanggotaan fuzzy. Terdapat beberapa metode yang dapat digunakan pada proses defuzziffy, diantaranya sebagai berikut: 1. CoG (Center of Gravity) Metode ini mengambil nilai tengah dari seluruh fungsi keanggotaan keluaran fuzzy yang ada. 2. Max Membership Principle Metode ini mengambil nilai fungsi keanggotaan terbesar dari keluaran fuzzy yang ada untuk dijadikan sebagai nilai output.
2.3
Penelitian Lainnya Adam Wyrembelski (2013) dengan paper berjudul “Detection of the selected,
basic emotions based on face expression using Kinect” telah mengembangkan sebuah sistem pengenalan ekspresi wajah pada Kinect. Penelitian ini menggunakan metode K-nearest neighbour dan dapat mengenali ekspresi senang, sedih, marah, dan terkejut. Penelitan ini meng gunakan data ekspresi wajah dalam training set. Vineetha GR & Sreeji C (2012) dengan paper berjudul “Face Expression Detection Using Microsoft Kinect with the Help of Artificial Neural Network” telah mengembangkan sistem pengenalan ekspresi wajah pada Kinect. Penelitian ini menggunakan metode back propagation untuk melatih neural network yang ada. Penelitian ini sulit mendefinisikan ekspresi sedih atau jijik secara spontan. Pangondian Marhutala Sinaga & Rully Soelaiman (2010) dengan paper berjudul “Pengenalan Ekspresi Wajah Berdasarkan Bentuk dan Tekstur” telah mengembangkan sistem pengenalan ekspresi wajah berdasarkan bentuk dan tesktur. Penelitian ini menggunakan metode Spatially Maximum Occurrence Model (SMOM) dan Elastic Shape-Texture Matching (ESTM) untuk mengolah ekspresi wajah dengan rata-rata waktu 1 menit. Penelitian ini dapat mengenali ekspresi wajah dengan tepat rata-rata dibawah 50 %.