PERBANDINGAN METODE HARRIS CORNER DETECTION, EDGE BASED CORNER DETECTION DAN FAST CORNER DETECTION...

105
PERBANDINGAN METODE HARRIS CORNER DETECTION, EDGE BASED CORNER DETECTION DAN FAST CORNER DETECTION DALAM APLIKASI PENDETEKSI SENYUM PADA WAJAH MANUSIA Oleh Eduard Royce Siswanto NIM : 612009003 Skripsi Untuk melengkapi syarat-syarat memperoleh Ijasah Sarjana Teknik Fakultas Teknik Elektronika dan Komputer Program Studi Teknik Elektro 2013

Transcript of PERBANDINGAN METODE HARRIS CORNER DETECTION, EDGE BASED CORNER DETECTION DAN FAST CORNER DETECTION...

PERBANDINGAN METODE HARRIS CORNER DETECTION,

EDGE BASED CORNER DETECTION DAN FAST CORNER

DETECTION DALAM APLIKASI PENDETEKSI SENYUM PADA

WAJAH MANUSIA

Oleh

Eduard Royce Siswanto

NIM : 612009003

Skripsi

Untuk melengkapi syarat-syarat memperoleh

Ijasah Sarjana Teknik

Fakultas Teknik Elektronika dan Komputer

Program Studi Teknik Elektro

2013

v

DAFTAR ISI

INTISARI .............................................................................................................. i

ABSTRACT ........................................................................................................... ii

KATA PENGANTAR ............................................................................................ iii

DAFTAR ISI .......................................................................................................... v

DAFTAR GAMBAR ............................................................................................. viii

DAFTAR TABEL .................................................................................................. x

DAFTAR LAMBANG ........................................................................................... xi

DAFTAR SINGKATAN ........................................................................................ xiii

BAB I. PENDAHULUAN...................................................................................... 1

1.1 Latar Belakang Masalah ........................................................................ 1

1.2 Tujuan ................................................................................................... 3

1.3 Batasan Masalah ................................................................................... 3

1.4 Hipotesis Awal ...................................................................................... 4

1.5 Sistematika Pembahasan ....................................................................... 4

BAB II. LANDASAN TEORI ................................................................................ 5

2.1 Metode Viola Jones untuk Mendeteksi Wajah ....................................... 5

2.2 Konversi Citra RGB ke Grayscale......................................................... 5

2.3 Color Segmentation ............................................................................... 6

2.4 Harris Corner Detection ........................................................................ 6

2.5 Edge Based Corner Detection ............................................................... 11

2.6 FAST Corner Detection ........................................................................ 12

2.7 Deteksi Senyum .................................................................................... 14

2.8 Perhitungan Akurasi .............................................................................. 14

BAB III. PERANCANGAN PERANGKAT LUNAK ............................................ 16

3.1 Sistem Pendeteksi Senyum .................................................................... 16

3.2 Pemrosesan Data ................................................................................... 16

3.2.1 Konversi Citra RGB ke Grayscale .......................................... 16

3.2.2 Color Segmentation ................................................................ 17

3.3 Harris Corner Detection ........................................................................ 18

3.4 Edge Based Corner Detection ............................................................... 19

3.5 FAST Corner Detection ........................................................................ 20

3.6 Deteksi Senyum .................................................................................... 21

vi

3.7 Perhitungan Akurasi .............................................................................. 22

3.8 Pembuatan Dataset Skripsi .................................................................... 22

3.9 Graphical User Interface ...................................................................... 23

BAB IV. PENGUJIAN PERANGKAT LUNAK DAN ANALISIS HASIL

PENGUJIAN.......................................................................................................... 25

4.1 Pengambilan Data dan Metode Pengujian .............................................. 25

4.2 Hasil dan Analisis ................................................................................. 26

4.3 Perbandingan Ketiga Metode pada Percobaan Pertama .......................... 26

4.3.1 Harris Corner Detection .......................................................... 27

4.3.2 Edge Based Corner Detection ................................................. 29

4.3.3 FAST Corner Detection .......................................................... 31

4.4 Perbandingan Ketiga Metode pada Percobaan Kedua ............................ 33

4.4.1 Harris Corner Detection .......................................................... 33

4.4.2 Edge Based Corner Detection ................................................. 35

4.4.3 FAST Corner Detection .......................................................... 37

4.5 Perbandingan Ketiga Metode pada Percobaan Ketiga ............................ 37

4.5.1 Harris Corner Detection .......................................................... 39

4.5.2 Edge Based Corner Detection ................................................. 40

4.5.3 FAST Corner Detection .......................................................... 42

4.6 Pendeteksian Senyum pada Citra dengan Subyek Lebih Dari Satu ......... 44

BAB V. KESIMPULAN ........................................................................................ 46

5.1 Kesimpulan ........................................................................................... 46

5.2 Saran ..................................................................................................... 46

DAFTAR PUSTAKA ............................................................................................. 47

LAMPIRAN A. SOURCE CODE PEMROGRAMAN YANG DIBUAT DENGAN

MATLAB .............................................................................................................. 49

A.1 Source Code Color Segmentation ......................................................... 49

A.2 Source Code Harris Corner Detection .................................................. 49

A.3 Source Code Edge Based Corner Detection .......................................... 50

A.4 Source Code FAST Corner Detection ................................................... 51

A.5 Source Code Citra dengan Subyek Lebih Dari Satu .............................. 52

A.6 Source Code Graphical User Interface ................................................. 53

LAMPIRAN B. TABEL HASIL PENGUJIAN PERANGKAT LUNAK ................ 65

B.1 Tabel Hasil Percobaan Pertama............................................................. 65

vii

B.1.1 Metode Harris Corner Detection ............................................ 65

B.1.2 Metode Edge Based Corner Detection .................................... 67

B.1.3 Metode FAST Corner Detection ............................................. 69

B.2 Tabel Hasil Percobaan Kedua ............................................................... 70

B.2.1 Metode Harris Corner Detection ............................................ 70

B.2.2 Metode Edge Based Corner Detection .................................... 72

B.2.3 Metode FAST Corner Detection ............................................. 74

B.3 Tabel Hasil Percobaan Ketiga ............................................................... 75

B.3.1 Metode Harris Corner Detection ............................................ 75

B.3.2 Metode Edge Based Corner Detection .................................... 77

B.3.3 Metode FAST Corner Detection ............................................. 79

B.4 Tabel Hasil Penambahan Batas Nilai Rata-rata Metode FAST Corner

Detection ............................................................................................. 80

LAMPIRAN C. PENURUNAN HUBUNGAN DETERMINAN, TRACE DAN

METODE HARRIS CORNER DETECTION .......................................................... 81

LAMPIRAN D. CONTOH DATASET SISTEM PENDETEKSI SENYUM ............ 83

D.1 Dataset Pelatihan ................................................................................. 83

D.2 Dataset Pengujian Ekspresi Tersenyum Percobaan Pertama ................. 88

D.3 Dataset Pengujian Ekspresi Tersenyum Percobaan Ketiga .................... 90

D.4 Dataset Pengujian Ekspresi Bukan Tersenyum ..................................... 92

D.5 Dataset Pengujian Citra dengan Subyek Lebih Dari Satu ...................... 94

viii

DAFTAR GAMBAR

Gambar 2.1 Gradien Garis dari Suatu Piksel ....................................................... 7

Gambar 2.2 Pergeseran Jendela Gaussian ke arah (1,0) ....................................... 8

Gambar 2.3 Pergeseran Jendela Gaussian ke arah (0,1) ....................................... 8

Gambar 2.4 Hasil Harris Corner Detection ......................................................... 11

Gambar 2.5 Hasil Edge Detection Menggunakan Operator Sobel ........................ 12

Gambar 2.6 Jendela FAST Corner Detection ...................................................... 14

Gambar 3.1 Contoh Citra RGB Bibir yang Digunakan Dalam Skripsi ................. 16

Gambar 3.2 Contoh Citra Bibir yang Telah Dikonversi ke Citra Grayscale ......... 16

Gambar 3.3 Diagram Alir Pra Proses Color Segmentation .................................. 17

Gambar 3.4 Diagram Alir Metode Harris Corner Detection ................................ 18

Gambar 3.5 Diagram Alir Metode Edge Based Corner Detection ....................... 19

Gambar 3.6 Diagram Alir metode FAST Corner Detection ................................. 20

Gambar 3.7 Diagram Alir Proses Pendeteksian Senyum...................................... 21

Gambar 3.8 Contoh Dataset dengan Ekspresi Tersenyum Lebar ......................... 23

Gambar 3.9 Contoh Dataset dengan Ekspresi Tersenyum Tipis .......................... 23

Gambar 3.10 Contoh Dataset dengan Ekspresi Bukan Tersenyum ........................ 23

Gambar 3.11 Graphical User Interface Skripsi ..................................................... 24

Gambar 3.12 Contoh Eksekusi Graphical User Interface Skripsi .......................... 24

Gambar 4.1 Grafik Harris Corner Detection Percobaan Pertama ......................... 27

Gambar 4.2 Grafik Perbandingan Akurasi Terhadap Sigma Metode Harris Corner

Detection dengan k = 0.04 Percobaan Pertama................................. 27

Gambar 4.3 Grafik Perbandingan Akurasi Terhadap k Metode Harris Corner

Detection dengan Sigma = 2 Percobaan Pertama ............................. 28

Gambar 4.4 Perbandingan Hasil Penggunaan Nilai Sigma 1.5 dengan Sigma 5 ... 28

Gambar 4.5 Kesalahan Pendeteksian Titik Sudut Bibir pada Nilai Sigma yang

Terlalu Kecil .................................................................................... 29

Gambar 4.6 Grafik Edge Based Corner Detection Percobaan Pertama ................ 30

Gambar 4.7 Grafik Perbandingan Akurasi Terhadap Sigma Metode Edge Based

Corner Detection dengan k = 0.15 Percobaan Pertama..................... 30

Gambar 4.8 Grafik Perbandingan Akurasi Terhadap k Metode Edge Based Corner

Detection dengan Sigma = 1.5 Percobaan Pertama .......................... 31

ix

Gambar 4.9 Grafik FAST Corner Detection pada Percobaan Pertama ................. 32

Gambar 4.10 Hasil Penggunaan Nilai Batas Ambang yang Berbeda Pada Citra

Bibir ................................................................................................ 32

Gambar 4.11 Grafik Harris Corner Detection Percobaan Kedua ........................... 33

Gambar 4.12 Grafik Perbandingan Akurasi Terhadap Sigma Metode Harris Corner

Detection dengan k = 0.08 Percobaan Kedua ................................... 34

Gambar 4.13 Grafik Perbandingan Akurasi Terhadap k Metode Harris Corner

Detection dengan Sigma = 0.5 Percobaan Kedua ............................. 34

Gambar 4.14 Perbandingan Hasil Harris Corner Detection................................... 35

Gambar 4.15 Grafik Edge Based Corner Detection Percobaan Kedua ................... 35

Gambar 4.16 Grafik Perbandingan Akurasi Terhadap Sigma Metode Edge Based

Corner Detection dengan k = 0.04 Percobaan Kedua ....................... 36

Gambar 4.17 Grafik Perbandingan Akurasi Terhadap k Metode Edge Based Corner

Detection dengan Sigma = 1.5 Percobaan Kedua ............................. 36

Gambar 4.18 Grafik FAST Corner Detection Percobaan Kedua ............................ 37

Gambar 4.19 Sampel Data Uji Ekspresi Tersenyum yang Dideteksi Salah Oleh

Ketiga Metode ................................................................................. 38

Gambar 4.20 Grafik Harris Corner Detection pada Percobaan Ketiga ................... 38

Gambar 4.21 Grafik Perbandingan Akurasi Terhadap Sigma Metode Harris Corner

Detection dengan k = 0.08 Percobaan Ketiga ................................... 39

Gambar 4.22 Grafik Perbandingan Akurasi Terhadap k Metode Harris Corner

Detection dengan Sigma = 0.5 Percobaan Ketiga ............................. 39

Gambar 4.23 Grafik Edge Based Corner Detection pada Percobaan Ketiga .......... 40

Gambar 4.24 Grafik Perbandingan Akurasi Terhadap Sigma Metode Edge Based

Corner Detection dengan k = 0.04 Percobaan Ketiga ....................... 40

Gambar 4.25 Grafik Perbandingan Akurasi Terhadap k Metode Edge Based Corner

Detection dengan Sigma = 1.5 Percobaan Ketiga ............................. 41

Gambar 4.26 Grafik FAST Corner Detection pada Percobaan Ketiga ................... 41

Gambar 4.27 Perbandingan Hasil Pendeteksian Sudut Dengan Pra Proses Color

Segmentation Pada Subyek Dengan Warna Kulit Berbeda ............... 42

Gambar 4.28 Contoh Citra Dengan Subyek Lebih Dari Satu ................................. 43

Gambar 4.29 Hasil Pengujian Metode Harris Corner Detection Pada Citra Dengan

Subyek Lebih Dari Satu................................................................... 44

x

DAFTAR TABEL

Tabel 4.1 Akurasi dan Waktu Komputasi Sistem Pendeteksi Senyum ................ 42

Tabel B.1 Akurasi Metode Harris Corner Detection Percobaan Pertama ............ 63

Tabel B.2 Akurasi Metode Edge Based Corner Detection Percobaan Pertama .... 65

Tabel B.3 Akurasi Metode FAST Corner Detection Percobaan Pertama ............ 67

Tabel B.4 Akurasi Metode Harris Corner Detection Percobaan Kedua ............... 68

Tabel B.5 Akurasi Metode Edge Based Corner Detection Percobaan Kedua ...... 70

Tabel B.6 Akurasi Metode FAST Corner Detection Percobaan Kedua ............... 72

Tabel B.7 Akurasi Metode Harris Corner Detection Percobaan Ketiga ............... 73

Tabel B.8 Akurasi Metode Edge Based Corner Detection Percobaan Ketiga ...... 75

Tabel B.9 Akurasi Metode FAST Corner Detection Percobaan Ketiga ............... 77

Tabel B.10 Akurasi Metode FAST Corner Detection dengan Penambahan Batas

Nilai Rata-rata ................................................................................... 78

xi

DAFTAR LAMBANG

a konstanta variabel orde 2 dari persamaan kuadrat

b konstanta variabel orde 1 dari persamaan kuadrat

c konstanta variabel orde 0 dari persamaan kuadrat

d jendela pada metode FAST Corner Detection

( , ) fungsi citra digital dua dimensi ke arah sumbu x dan sumbu y

k konstanta sensitivitas dari Harris Corner Detection

l jumlah piksel dalam jendela yang tergeser di Harris Corner Detection

jumlah piksel di sekitar titik pusat p pada FAST Corner Detection

titik pusat pada metode FAST Corner Detection

batas ambang nilai intensitas yang ditoleransi

arah pergeseran jendela ke sumbu horisontal

arah pergeseran jendela ke sumbu vertikal

jumlah baris pada citra masukan

xmax koordinat x maksimum citra bibir pelatihan

xmax_u koordinat x maksimum citra bibir pengujian

xmin koordinat x minimum citra bibir pelatihan

xmin_u koordinat x minimum citra bibir pengujian

xp koordinat x dari titik pusat p

jumlah kolom pada citra masukan

yp koordinat y dari titik pusat p

yrat a rata-rata koordinat y citra bibir pelatihan

yrat a_u rata-rata koordinat y citra bibir pengujian

y1 koordinat y titik sudut bibir sebelah kiri citra bibir pelatihan

y1_u koordinat y titik sudut bibir sebelah kiri citra bibir pengujian

y2 koordinat y titik sudut bibir sebelah kanan citra bibir pelatihan

y2_u koordinat y titik sudut bibir sebelah kanan citra bibir pengujian

( , ) jendela biner, bernilai 1 di seluruh jendela dan 0 diluar jendela

nilai tiap elemen jendela Gaussian di posisi (u, v)

, posisi jendela di sumbu horisontal u dan sumbu vertikal v

gradien intensitas piksel ke arah sumbu horisontal

xii

gradien intensitas piksel ke-m dengan arah sumbu horisontal

gradien intensitas piksel ke arah sumbu vertikal

gradien intensitas piksel ke-m dengan arah sumbu vertikal

eigenvalue dari matriks M

σ standar deviasi distribusi Gaussian

komponen (1,1) dari matriks M

, nilai intensitas piksel di arah sumbu horisontal i dan sumbu vertikal j

nilai blue dalam color space RGB

komponen (2,2) dari matriks M

keputusan t it ik p sebagai sudut

komponen (1,2) dan (2,1) dari matriks M

, variasi intensitas citra yang tergeser ke arah (x,y)

nilai green dalam color space RGB

I citra bibir

nilai intensitas piksel ke-m

nilai intensitas piksel ke-n

nilai intensitas t i t ik p

, intensitas citra di posisi (u, v)

, intensitas citra yang tergeser ke arah (1,0), (1,1), (0,1), atau (-1,1)

matriks persamaan diferensial Harris Corner Detection

nilai red dalam color space RGB

nilai tanggapan detektor Harris citra

gradien gabungan dari operator Sobel vertikal dengan Sobel horisontal

matriks operator Sobel vertikal

matriks operator Sobel horisontal

nilai piksel hasil konversi citra RGB ke grayscale

xiii

DAFTAR SINGKATAN

FAST Features from Accelerated Segment Test

FP False Positive

FN False Negative

GUI Graphical User Interface

HSI Hue, Saturation, Intensity

RGB Red, Green, Blue

TP True Positive

TN True Negative

1

BAB I

PENDAHULUAN

1.1. Latar Belakang Masalah

Manusia mampu menunjukkan berbagai macam ekspresi: marah, sedih, kecewa,

tersenyum dan masih banyak lagi. Senyum merupakan salah satu ekspresi wajah

manusia yang paling sederhana namun mempunyai banyak manfaat. Dari segi

kesehatan, seperti dikutip dari tulisan Lee S. Berk yang dipresentasikan di sesi

American Physiological Society pada konferensi Experimental Biology tahun 2006,

senyum mampu menaikkan hormon endorphin, yaitu hormon yang menghilangkan

rasa sakit dan menjadi obat penenang dan menambah konsentrasi IgA, yaitu zat yang

berada di barisan pertahanan paling depan untuk melawan infeksi pernafasan bagian

atas (Upper Respiratory Infection) [1][2].

Senyum juga mampu menghindarkan wajah dari kerutan keriput karena aliran

darah di sekitar wajah menjadi lebih lancar dan ribuan syaraf di sekitar wajah

mengalami pergerakan secara konstan sehingga otot wajah akan tetap kencang. Dari

sisi psikologis, sebuah senyuman mampu memberikan semangat positif bagi diri

sendiri maupun orang lain. Dari segi artistik, sebuah lukisan ataupun foto manusia

yang menunjukkan ekspresi senyum memiliki nilai yang tinggi. Salah satu karya seni

ekspresi manusia tersenyum yang sangat terkenal adalah lukisan Mona Lisa karya

Leonardo Da Vinci.

Di kehidupan nyata, banyak orang berusaha mengabadikan ekspresi senyum

karena ekspresi ini dianggap paling mewakili momen atau kejadian yang

menyenangkan. Sistem yang mampu mendeteksi senyum akan membantu usaha orang

untuk mengabadikan ekspresi senyum ini. Sistem yang dibangun pada tulisan ini

bertujuan untuk mendeteksi ekspresi wajah manusia berdasarkan ekspresi tersenyum

atau bukan.

Sistem bekerja dengan masukan berupa citra wajah. Selanjutnya citra wajah

akan dideteksi bagian mata, hidung dan bibirnya menggunakan metode Viola Jones

[3]. Kemudian sistem akan memproses bagian bibir dengan tiga buah metode yaitu

Harris Corner Detection, Edge Based Corner Detection dan FAST Corner Detection

untuk menentukan posisi titik sudut bibir. Titik sudut inilah yang nantinya dijadikan

acuan untuk menentukan ekspresi wajah citra masukan termasuk ekspresi tersenyum

2

atau bukan.

Metode Harris Corner Detection, Edge Based Corner Detection dan FAST

Corner Detection dipilih untuk mendeteksi sudut bibir pada wajah manusia karena

sudut bibir manusia merupakan hal yang paling dasar untuk menentukan ekspresi

wajah manusia. Sebagai contoh, sudut bibir yang tinggi mendekat ke sumbu datar

hidung, dan melebar dapat didefinisikan sebagai ekspresi tersenyum. Sebaliknya,

sudut bibir yang tidak seimbang atau tidak simetris, menjauh dari sumbu datar hidung

atau saling mendekat satu sama lain dapat dikatakan bukan suatu ekspresi tersenyum.

Harris Corner Detection dinilai mampu menghasilkan nilai yang konsisten pada

citra yang mendapat gangguan maupun rotasi [4]. Kelebihan Harris Corner Detection

ini dapat dimanfaatkan sebagai pendeteksi senyum dimana tidak semua subyek foto

memandang kearah kamera secara tegak lurus.

Edge Based Corner Detection merupakan kombinasi deteksi tepian dari suatu

citra lalu dicari sudutnya dengan corner detection. Metode ini diharapkan mampu

menghilangkan fitur yang tidak diinginkan yang ada pada citra terlebih dahulu

sebelum dicari tepiannya. Secara tidak langsung edge detection juga mengurangi

jumlah titik yang akan dideteksi oleh sistem, sehingga nantinya Edge Based Corner

Detection hanya akan mendeteksi sudut yang sangat kuat saja dan meminimalisir

kesalahan pendeteksian sudut.

FAST Corner Detection merupakan pendeteksian sudut dengan

membandingkan titik yang dianggap sebagai sudut dengan 4 titik di sekitarnya [5].

FAST Corner Detection diharapkan mampu memberikan waktu komputasi paling

cepat dibandingkan kedua metode lainnya.

Pada skripsi ini telah dibandingkan tingkat akurasi dan waktu komputasi dari

masing-masing metode. Tingkat akurasi yang tinggi dan waktu komputasi yang kecil

memungkinkan sistem untuk melakukan deteksi senyum secara real time.

3

1.2. Tujuan

Skripsi ini bertujuan untuk membandingkan tiga buah metode yaitu Harris

Corner Detection, Edge Based Corner Detection dan FAST Corner Detection dalam

mendeteksi ekspresi senyum pada wajah manusia. Metode-metode ini diharapkan

dapat diaplikasikan sebagai salah satu metode pendeteksi senyum berdasarkan tingkat

akurasi dan waktu komputasi.

1.3. Batasan Masalah

Seluruh source code pengenalan gender dibuat menggunakan perangkat lunak

Matlab. Berdasarkan surat tugas skripsi nomor 17/I.3/FTEK/III/2013, berikut adalah

keseluruhan spesifikasi untuk skripsi ini:

1. Menjelaskan teori yang berkaitan dengan:

a. Pre-processing : Mengubah citra RGB ke grayscale

b. Deteksi Sudut : Harris Corner Detection, Edge Based Corner Detection, dan

FAST Corner Detection

2. Membuat program dengan MATLAB yang berkaitan dengan:

a. Pre-processing : Mengubah citra RGB ke grayscale

b. Deteksi Sudut : Harris Corner Detection, Edge Based Corner Detection, dan

FAST Corner Detection

3. Membuat dataset pelatihan dengan total 250 wajah, yaitu 125 berekspresi

tersenyum tipis dan 125 berekspresi tersenyum lebar. Masing-masing responden

akan diambil gambarnya dalam kondisi pencahayaan yang cukup dengan warna

latar belakang yang rata seragam. Ketentuan dalam pembuatan dataset:

a. Pengambilan gambar dilakukan dengan sebuah kamera digital

b. Jarak antara subyek dengan kamera disesuaikan agar seluruh bagian wajah

subyek dapat tertangkap oleh kamera. Posisi kamera akan berada tegak lurus

dari wajah subyek foto.

4. Membuat dataset pengujian terdiri dari 100 ekspresi tersenyum; 50 ekspresi

tersenyum tipis dan 50 ekspresi tersenyum lebar, dan 100 ekspresi selain

tersenyum.

5. Menghitung tingkat akurasi ketiga metode.

6. Menghitung waktu komputasi setiap metode.

4

7. Membandingkan tingkat akurasi ketiga metode dengan waktu komputasi yang

dibutuhkan masing-masing metode untuk mendeteksi senyum.

8. Menguji kemampuan sistem untuk mendeteksi citra dengan subyek lebih dari satu

dan menghitung tingkat akurasi serta waktu komputasinya.

9. Membuat kesimpulan dan membandingkan dengan hipotesis yang sudah dibuat.

1.4. Hipotesis Awal

Hipotesis awal skripsi ini adalah FAST Corner Detection akan memberikan

waktu komputasi paling kecil namun tingkat akurasi paling rendah, Edge-Based

Corner Detection akan memberikan tingkat akurasi paling tinggi namun waktu

komputasi paling besar, sedangkan Harris Corner Detection akan memberikan

tingkat akurasi dan waktu komputasi yang berada di antara kedua metode yang sudah

disebutkan sebelumnya.

1.5. Sistematika Pembahasan

Penulisan skripsi ini dibagi menjadi lima bab, yang terdiri dari Bab I

pendahuluan, Bab II landasan teori, Bab III perancangan perangkat lunak, Bab IV

pengujian perangkat lunak dan analisis hasil pengujian, Bab V kesimpulan.

Bab I membahas tentang tujuan dan latar belakang masalah dalam skripsi ini,

selain itu juga diberikan pembatasan masalah dan kajian mengenai hasil penelitian

yang bersangkutan.

Bab II berisi teori yang digunakan dalam skripsi ini. Teori yang dibahas antara

lain mengenai metode Viola Jones, konversi citra RGB ke grayscale, color

segmentation, perhitungan akurasi ketiga metode yang akan dibandingkan yaitu,

Harris Corner Detection, Edge Based Corner Detection, dan FAST Corner Detection.

Untuk mengetahui performa sistem digunakan perhitungan akurasi.

Bab III menjelaskan tentang perancangan perangkat lunak yang digambarkan

dalam diagram alir, pembuatan dataset, dan graphical user interfaces (GUI), serta

gambar-gambar hasil keluaran dari beberapa proses dalam sistem.

Bab IV berisi pengujian perangkat lunak dan analisis hasil pengujian yang

disajikan dalam bentuk tabel dan grafik.

Bab V merupakan penutup yang berisi kesimpulan dari bab-bab sebelumnya

dan saran untuk pengembangan skripsi ini.

5

BAB II

LANDASAN TEORI

Pada bab ini akan dibahas teori yang berkaitan dengan pemrosesan data untuk

sistem pendeteksi senyum pada skripsi ini, meliputi metode Viola Jones, konversi

citra RGB ke grayscale, color segmentation, ketiga metode yang akan dibandingkan,

yaitu Harris Corner Detection, Edge Based Corner Detection dan FAST Corner

Detection, dan metode perhitungan akurasi untuk menguji performa sistem.

2.1 Metode Viola Jones untuk Mendeteksi Wajah

Viola dan Jones memperkenalkan metode deteksi wajah yang mampu

mendeteksi wajah dalam suatu citra secara cepat dengan tingkat akurasi yang tinggi

pada tahun 2001 [1]. Metode yang kemudian lebih dikenal dengan nama Viola Jones

Detector ini menggunakan tiga komponen utama, komponen pertama adalah “Integral

Image” yang membuat fitur dari citra mampu dikomputasi secara cepat. Komponen

kedua adalah klasifier yang sederhana dan efisien berdasarkan pada algoritma Ada

Boost yang mampu memilih beberapa fitur penting dari sekumpulan fitur yang sangat

banyak. Komponen ketiga adalah menggabungkan klasifier dalam bentuk “Cascade”

atau bertingkat, hal ini mampu menghilangkan latar belakang citra pada daerah yang

memiliki kemiripan sangat besar dengan wajah manusia. Metode ini mampu

melakukan deteksi wajah dengan kecepatan 15 frames per detik.

2.2 Konversi Citra RGB ke Grayscale

Citra wajah yang telah yang diambil merupakan citra RGB (red, green, blue).

Citra tersebut akan dikonversi menjadi citra grayscale. Konversi citra dari RGB ke

grayscale dapat dilakukan dengan mengeliminasi informasi warna dan saturasi

dengan tetap mempertahankan pencahayan (luminance) [6]. Luminance merupakan

jumlah energi dari sumber yang ditangkap oleh pengamat, dinyatakan dalam lumen

[7].

Citra adalah gambar dua dimensi yang dihasilkan dari gambar analog dua

dimensi yang kontinu menjadi gambar diskrit melalui proses sampling. Citra digital

dapat didefinisikan sebagai fungsi dua variabel, f(x,y), dimana x dan y adalah

koordinat spasial sedangkan f(x,y) adalah nilai intensitas citra pada koordinat tersebut

[8]. Citra dalam komputer tersusun dari sekumpulan piksel, dimana setiap triplet

6

terdiri atas variasi tingkat keterangan (brightness) dari elemen red, green, dan blue.

Triplet terdiri dari 3 angka yang mengatur intensitas dari red (R), green (G), dan blue

(B). Angka-angka RGB ini yang seringkali disebut dengan color values.

Citra grayscale adalah citra yang terdiri atas beberapa aras keabuan. Warna

abu-abu pada citra jenis ini merupakan variasi dari warna hitam untuk bagian dengan

intensitas terlemah dan warna putih pada intensitas terkuat [9]. Citra grayscale

berbeda dengan citra hitam-putih, dimana citra hitam putih hanya terdiri atas 2 warna

saja yaitu hitam dan putih saja.

Citra grayscale disimpan dalam format 8 bit untuk setiap sampel piksel, yang

memungkinkan sebanyak 256 intensitas. Untuk mengubah citra berwarna yang

mempunyai nilai matriks masing-masing R, G, dan B menjadi citra grayscale dengan

nilai X, maka konversi dapat dilakukan dengan mengambil rata-rata dari nilai R, G,

dan B. Persamaan (1) merupakan persamaan untuk merepresentasikan hal tersebut. � = + +

3 (1)

2.3 Color Segmentation

Segmentasi adalah proses mempartisi citra menjadi beberapa daerah atau

region [4]. Proses segmentasi citra berwarna dapat dilakukan pada setiap lapisan

warna (HSI atau RGB). Segmentasi warna sederhana dilakukan menggunakan metode

thresholding. Pada skripsi ini, color segmentation dilakukan pada lapisan warna RGB

dengan batas nilai Red > 80, Blue < 80 dan Green < 100, nilai piksel diluar nilai

tersebut akan diubah menjadi 0 (hitam).

2.4 Harris Corner Detection

Harris Corner Detection adalah sistem pendeteksi sudut yang sering

digunakan karena mampu menghasilkan nilai yang konsisten pada citra yang

mengalami rotasi, penskalaan, variasi pencahayaan maupun memiliki banyak derau

pada gambar [4]. Deteksi sudut dengan metode Harris ini didasarkan pada variasi

intensitas sinyal. Variasi intensitas yang besar menunjukkan adanya sudut pada citra.

Pada pendeteksian sudut metode Harris, sudut didefinisikan sebagai

pertemuan dua tepian [4]. Oleh karena itu, titik sudut tidak bisa didefinisikan pada

piksel tunggal, karena disana hanya ada satu gradien setiap titik. Gradien adalah arah

perubahan intensitas kecerahan dalam suatu citra seperti yang ditunjukkan pada

7

Gambar 2.1. Gradien dari suatu citra dapat dikelompokkan menjadi:

a) konstan: jika hanya sedikit atau tidak ada perubahan kecerahan

b) sisi: jika ada perubahan intensitas kecerahan yang kuat pada satu arah

c) flow: garis yang paralel

d) tepi: Jika terjadi perubahan kecerahan yang kuat dalam arah saling tegak

lurus

(a) (b) (c)

Gambar 2.1. Gradien Garis dari Suatu Piksel

(a) adalah gradien garis horisontal, (b) adalah gradien garis vertikal, (c) adalah

gradien garis diagonal

Deteksi sudut metode Harris merupakan metode pendeteksian sudut hasil

pengembangan Moravec corner detection. Moravec membuat suatu metode

pendeteksian sudut dengan memperhitungan nilai variasi intensitas suatu citra pada

suatu jendela biner yang akan digeser ke arah sumbu (x, y) tertentu. Pada persamaan

skripsi ini, digunakan jendela biner berukuran 3×3 yang akan digeser ke arah (1,0),

(1,1), (0,1), atau (-1,1). Persamaan variasi intensitas Moravec diberikan oleh

Persamaan (3).

, = ( , ) + , + − , 2, (2)

dengan,

, = variasi intensitas citra yang tergeser ke arah (x,y)

( , ) = jendela biner, bernilai 1 di seluruh jendela dan 0 diluar jendela

+ , + = intensitas citra yang tergeser ke arah (1,0), (1,1), (0,1), atau (-1,1).

, = intensitas citra di posisi (u, v)

Deteksi sudut metode Harris mengganti jendela biner yang digunakan oleh

Moravec dengan jendela Gaussian yang bersifat menghaluskan hasil kuadrat selisih

intensitas yang diperoleh dari Persamaan (2). Secara matematis, pengaplikasian

jendela Gaussian pada citra sama halnya dengan mengalikan citra tersebut dengan

sebuah fungsi Gaussian 2 dimensi [7].

8

�( , ) = �− 2+ 2

2�2 (3)

dengan

� = nilai tiap elemen jendela Gaussian di posisi (u, v)

σ = standar deviasi distribusi Gaussian (sigma)

Persamaan (2) menunjukkan adanya proses pengurangan intensitas citra di

posisi akhir terhadap intensitas citra di posisi awal. Pergeseran dari jendela Gaussian

ini terjadi ke arah sumbu x dan ke arah sumbu y seperti yang ditunjukkan pada

Gambar 2.2 dan Gambar 2.3.

Gambar 2.2. Pergeseran Jendela Gaussian ke arah (1,0). Warna biru menunjukkan

posisi pergeseran, warna merah menunjukkan posisi awal jendela pada citra.

Gambar 2.3. Pergeseran Jendela Gaussian ke arah (0,1). Warna biru

menunjukkan posisi pergeseran, warna merah menunjukkan posisi awal jendela pada

citra.

9

Dari Gambar 2.2 dan Gambar 2.3, Harris menuliskan persamaan variasi

intensitas yang mengalami pergeseran ke arah sumbu x seperti yang ditunjukkan pada

Persamaan (4) berikut

1,0 = , +1 − , 2 ≈ �� 29

=13

=13=1 (4)

dengan, �� ≡ ∗ (−1,0,1) ≈ , +1 − ,

sedangkan persamaan variasi intensitas yang mengalami pergeseran ke arah sumbu y

ditunjukkan pada Persamaan (5)

0,1 = ( +1, − , )2 ≈ �� 29

=13

=13=1 (5)

dengan, �� ≡ ∗ (−1,0,1) ≈ +1, − ,

Pergeseran jendela yang ditunjukkan oleh Persamaan (4) dan (5) menunjukkan

bahwa variasi intensitas dapat ditulis ke dalam bentuk fungsi gradien citra di tiap titik.

Karena digunakan jendela berukuran 3×3, maka akan diperoleh fungsi gradien di 9

titik yang dilewati oleh jendela, sehingga Persamaan (2) dapat ditulis menjadi

, = , �� + �� 2

,

= , 2 �� 2

+ 2�� �� + 2 �� 2 , (6)

Persamaan (6) menunjukkan adanya proses perkalian antara gradien suatu

citra dengan jendela yang tergeser ke seluruh bagian citra. Proses ini sama halnya

seperti konvolusi pada citra, sehingga dapat didefinisikan,

A = �� 2 ∗

D = �� 2 ∗

C = �� �� ∗

dari permisalan di atas, maka Persamaan (5) dapat disederhanakan menjadi

, = 2 + 2 + 2 (7)

Persamaan (6) inilah yang kemudian dikenal dengan istilah ekspansi analitis

yang digunakan pada deteksi sudut metode Harris. Harris menyadari bahwa pada

10

pergeseran yang sangat kecil ke arah (x,y), Persamaan (6) dapat ditulis ke dalam

bentuk matriks seperti yang ditunjukkan oleh Persamaan (7)

, = (8)

dengan nilai

= (9)

Persamaan (9) ini unik karena mengandung semua persamaan diferensial.

Harris menggunakan persamaan ini untuk mencari persamaan tanggapan detektor

Harris yang dimanfaatkan untuk menentukan apakah suatu titik merupakan sudut atau

bukan. Persamaan tanggapan detektor Harris dapat diperoleh dengan cara mengurangi

determinan M dengan suatu konstanta sensitivitas dikalikan kuadrat trace M. seperti

yang ditunjukkan pada Persamaan (10)

= det − × �2( ) (10)

dengan

= nilai tanggapan detektor Harris citra

k = konstanta sensitivitas dari corner detection metode Harris

Jika nilai >0 menunjukkan bahwa titik pada citra merupakan suatu sudut,

nilai <0 menunjukkan bahwa titik pada citra merupakan suatu tepian [10].

Penurunan hubungan persamaan tanggapan detektor Harris terhadap determinan dan

trace nya dapat dilihat pada Lampiran C.

Nilai k pada perhitungan nilai sudut ini merupakan konstanta sensitivitas yang

besarnya bisa diubah-ubah. Berdasarkan penelitian dan percobaan yang dilakukan

oleh Neil Bruce dan Pierre Kornprobst, nilai k yang memberikan hasil yang baik

berkisar antara 0.04 - 0.15 [11]. Titik biru pada Gambar 2.4 (a) dan (b) menunjukkan

sudut dari citra setelah diproses menggunakan Harris corner detection.

11

(a) (b)

Gambar 2.4. Hasil Harris Corner Detection

(a) adalah hasil Harris Corner Detection pada citra wajah, (b) adalah hasil Harris

Corner Detection pada citra bibir

2.5 Edge Based Corner Detection

Edge detection adalah salah satu proses ekstraksi fitur yang mengidentifikasi

tepian citra, yaitu posisi dimana terjadi perubahan intensitas piksel secara tajam.

Tepian dari suatu citra mengandung informasi penting dan mampu merepresentasikan

objek-objek yang terkandung dalam citra tersebut meliputi bentuk, ukuran serta

tekstur [12].

Pada penelitian kali ini digunakan operator Sobel karena mampu

menghasilkan hasil ekstraksi paling halus dan memberikan kinerja paling baik

dibandingkan operator Prewitt maupun operator Roberts [7][13]. Operator Sobel

sensitif terhadap tepian diagonal daripada tepian vertikal dan horisontal, sehingga

operator Sobel harus diterapkan secara terpisah untuk mendapatkan gradien horisontal

dan gradien vertikalnya [7]. Operator Sobel diberikan oleh Persamaan (11). Untuk

mencari gradien gabungan dari operator Sobel digunakan Persamaan (12). Contoh

hasil edge detection menggunakan operator Sobel diberikan oleh Gambar 2.5.

12

1 0 1

2 0 2

1 0 1

vS

1 2 1

0 0 0

1 2 1

hS

(11)

= ( ∗ )2 + ( ∗ ℎ)2 (12)

dengan

Sv = matriks operator Sobel vertikal

Sh = matriks operator Sobel horisontal

S = gradien gabungan dari operator Sobel vertikal dengan Sobel

horisontal

I = citra bibir

Gambar 2.5. Hasil Edge Detection Menggunakan Operator Sobel

Setelah citra masukan dipra proses dengan edge detection operator Sobel, citra

akan dideteksi sudutnya menggunakan Harris Corner Detection. Titik sudut hasil

Harris Corner Detection nantinya yang akan menentukan ekspresi wajah citra

masukan termasuk tersenyum atau bukan.

2.6 FAST Corner Detection

FAST (Features from Accelerated Segment Test) adalah suatu algoritma yang

dikembangkan oleh Edward Rosten, Reid Porter, and Tom Drummond. FAST corner

detection ini dibuat dengan tujuan mempercepat waktu komputasi secara real-time

dengan konsekuensi menurunkan tingkat akurasi pendeteksian sudut [14].

FAST corner detection dimulai dengan menentukan suatu titik p pada

koordinat (xp , yp) pada citra dan membandingkan intensitas titik p dengan 4 titik di

13

sekitarnya. Titik pertama terletak pada koordinat (x, yp-3), titik kedua terletak pada

koordinat (xp+3, y), titik ketiga terletak pada koordinat (x, yp+3), dan titik keempat

terletak pada koordinat (xp-3, yp).

Jika nilai intensitas di titik p bernilai lebih besar atau lebih kecil daripada

intensitas sedikitnya tiga titik disekitarnya ditambah dengan suatu intensitas batas

ambang, maka dapat dikatakan bahwa titik p adalah suatu sudut. Setelah itu titik p

akan digeser ke posisi( +1, ) dan melakukan perbandingan intensitas di keempat

titik di sekitarnya lagi. Iterasi ini terus dilakukan sampai semua titik pada citra sudah

dibandingkan.

FAST corner detection bekerja pada suatu citra sebagai berikut:

1. Tentukan sebuah titik p pada citra dengan posisi awal ( , )

2. Tentukan lokasi keempat titik. Titik pertama (n=1) terletak pada koordinat

( , −3), titik kedua (n=2) terletak pada koordinat +3, , titik ketiga

(n=3) terletak pada koordinat ( , +3), titik keempat (n=4) terletak pada

koordinat ( −3, )

3. Bandingkan intensitas titik pusat p dengan keempat titik di sekitar. Jika

terdapat paling sedikit 3 titik yang memenuhi syarat berikut, maka titik

pusat p adalah sudut

= 1, < − > +

0, ℎ� � (13)

dengan

= keputusan titik p sebagai sudut, nilai 1 menunjukkan bahwa

titik merupakan suatu sudut, dan nilai 0 menunjukkan bahwa

titik bukanlah sudut

= nilai intensitas piksel ke-n

= nilai intensitas titik p

= batas ambang nilai intensitas yang ditoleransi

4. Ulangi proses sampai seluruh titik pada citra sudah dibandingkan

intensitasnya

14

Gambar 2.6. Jendela FAST Corner Detection. Jendela d dengan titik pusat p

yang akan dibandingkan intensitasnya dengan intensitas 4 titik di sekitarnya.

2.7 Deteksi Senyum

Ketiga metode yang digunakan pada skripsi ini menghasilkan beberapa titik

sudut pada citra bibir ekspresi tersenyum. Selanjutnya dipilih dua buah titik sudut

pada koordinat x terbesar (xmax, y1) dan koordinat x terkecil (xmin, y2) yang diharapkan

merupakan tepi bibir sebelah kiri dan tepi bibir sebelah kanan. Selanjutnya kedua

koordinat ini dirata-rata untuk mendapatkan koordinat tengah-tengah dari bibir (yrata).

Koordinat ini dirata-rata untuk mentoleransi kemiringan bibir yang tidak sama pada

tiap obyek foto. Titik koordinat rata-rata ini kemudian disimpan dan dijadikan sebagai

batas minimum koordinat bibir ekspresi tersenyum. Proses ini diulang untuk seluruh

citra pelatihan yang terdiri dari citra dengan ekspresi tersenyum saja, sehingga dapat

diperoleh koordinat rata-rata ekspresi tersenyum.

Untuk proses pengujian dilakukan hal yang sama. Ketiga metode akan

menghasilkan beberapa titik sudut pada citra bibir uji. Kemudian dipilih dua buah titik

sudut pada koordinat x terbesar (xmax_u, y1_u) dan koordinat x terkecil (xmin_u, y2_u), lalu

nilai koordinat titik sudut citra bibir uji ini akan dirata-rata (yrata_u). Jika nilai

koordinat rata-rata citra uji (yrata_u) lebih besar dari batas minimum yang sudah

disimpan (yrata), maka citra dianggap bukan ekspresi tersenyum, begitu juga

sebaliknya, nilai koordinat titik sudut citra bibir uji (yrata_u) yang lebih kecil atau sama

dengan batas minimum yang sudah disimpan (yrata) dianggap ekspresi tersenyum.

2.8 Perhitungan Akurasi

Akurasi untuk klasifikasi dua kelas dan banyak kelas dapat dihitung

menggunakan persamaan (14) berikut

15

= �+�+ �+ +

(14)

dengan, � = True Positive, jumlah citra senyum yang dideteksi tersenyum oleh sistem

= True Negative, jumlah citra bukan tersenyum yang dideteksi bukan

tersenyum oleh sistem � = False Positive, jumlah citra tersenyum yang dideteksi bukan tersenyum oleh

sistem

= False Negative, jumlah citra bukan tersenyum yang dideteksi tersenyum

oleh sistem

16

BAB III

PERANCANGAN PERANGKAT LUNAK

3.1. Sistem Pendeteksi Senyum

Sistem pendeteksi senyum dalam skripsi ini dibuat dengan membandingkan tiga

buah metode, yaitu Harris Corner Detection, Edge Based Corner Detection, dan

FAST Corner Detection. Sistem pendeteksi senyum ini bertujuan untuk mendeteksi

citra masukan merupakan ekspresi tersenyum atau bukan.

Perancangan perangkat lunak sistem pendeteksi senyum ini dibuat dengan

menggunakan Matlab 2012b. Source code pemrograman ditulis dengan Matlab dan

telah dibuat untuk sistem pendeteksi senyum ini mencakup source code pra proses

color segmentation, ketiga metode pendeteksi senyum, yaitu Harris Corner Detection,

Edge Based Corner Detection, dan FAST Corner Detection.

3.2. Pemrosesan Data

Dalam skripsi ini, pada bagian pemrosesan data akan dilakukan proses konversi

citra RGB ke grayscale, serta pra proses color segmentation.

3.2.1. Konversi Citra RGB ke Grayscale

Dalam skripsi ini, citra masukan yang masih berupa citra RGB seperti

ditunjukkan pada Gambar 3.1, yang akan di konversi ke citra grayscale seperti

ditunjukkan pada Gambar 3.2.

Gambar 3.1. Contoh Citra RGB Bibir yang Digunakan Dalam Skripsi

Gambar 3.2. Contoh Citra Bibir yang Telah Dikonversi ke Citra Grayscale

17

3.2.2. Color Segmentation

Pada skripsi ini, metode pra proses color segmentation menjadi kombinasi untuk

membandingkan hasil akurasinya terhadap metode lain yang tidak di pra proses

dengan color segmentation terlebih dahulu. Untuk mengekstraksi warna merah pada

daerah bibir, digunakan metode thresholding pada citra RGB. Sistem akan

mempertahankan warna asli pada citra yang memiliki nilai Red yang lebih dari 80,

nilai Green yang kurang dari 80 dan nilai Blue yang kurang dari 100. Selain batas

nilai ini, sistem akan mengubahnya menjadi warna hitam atau mengubah nilainya

menjadi 0. Diagram alir color segmentation dapat dilihat pada Gambar 3.3. Source

code pra proses color segmentation dapat dilihat pada Lampiran A.1.

Gambar 3.3. Diagram Alir Pra Proses Color Segmentation

Masukan

dir = citra bibir yang

dideteksi dengan

metode Viola Jones

y=imread(dir)

pic(mm,nn,:)=[0,0,0]

nn=nn+1

pic(mm,nn,1)<80

pic(mm,nn,2)>80

pic(mm,nn,3)>100

nn=size(pic,2)?

Selesai

Mulai

Ya

pic=y

mm=1nn=1

Tidak

Tidak

mm=size(pic,1)?

Ya

Tidak

mm=mm+1

Ya

18

3.3. Harris Corner Detection

Pada metode Harris Corner Detection, citra masukan yang tidak di pra proses

maupun yang sudah di pra proses akan dihitung nilai kesudutannya menggunakan

parameter sigma dan konstanta sensitivitas yang diubah-ubah. Diagram alir metode

Harris Corner Detection dapat dilihat pada Gambar 3.4. Source code metode Harris

Corner Detection dapat dilihat pada Lampiran A.2.

Mulai

Masukan

dir= citra bibir

pic=imread(dir)

level=graythresh(pic)bw=im2bw(pic,level)im=double(bw(:,:,1))

sigma=1k=0.09

dx=[-1 0 1; -1 0 1; -1 0 1]dy=dx’

Ix=conv2(im,dx,’same’)

Iy=conv2(im,dy,’same’)

g=fspecial(‘gaussian’,max(1,fix(6*sigma+1)),sigma)

Ix2=conv2(Ix.^2,g,’same’)

Iy2=conv2(Iy.^2,g,’same’)

Ixy=conv2(Ix.*Iy,g,’same’)

1

1

cim=(Ix2.*Iy2-Ixy.^2)-k*(Ix2+Iy2).^2

[r,c,max_local]=findLocalMaximum(cim,3*sigma)

thres=0.01*max(max_local(:))

[r,c]=find(max_local>=thres)

points=[r,c]

Selesai

Gambar 3.4. Diagram Alir Metode Harris Corner Detection

19

3.4. Edge Based Corner Detection

Pada metode ini, citra masukan akan dideteksi tepiannya terlebih dahulu

menggunakan Sobel edge detection terlebih dahulu sebelum citra dideteksi sudutnya

menggunakan Harris Corner Detection. Diagram alir metode Edge Based Corner

Detection dapat dilihat pada Gambar 3.5. Source code metode Edge Based Corner

Detection dapat dilihat pada Lampiran A.3.

Mulai

Masukan

dir=direktori citra

bibir yang telah

diekstrak

pic=imread(dir)

level=graythresh(pic)bw=im2bw(pic,level)

bw3=edge(bw,’sobel’)im=double(bw3(:,:,1))

sigma=1k=0.09

dx=[-1 0 1; -1 0 1; -1 0 1]dy=dx’

Ix=conv2(im,dx,’same’)

Iy=conv2(im,dy,’same’)

g=fspecial(‘gaussian’,max(1,fix(6*sigma+1)),sigma)

Ix2=conv2(Ix.^2,g,’same’)

Iy2=conv2(Iy.^2,g,’same’)

Ixy=conv2(Ix.*Iy,g,’same’)

2

2

cim=(Ix2.*Iy2-Ixy.^2)-k*(Ix2+Iy2).^2

[r,c,max_local]=findLocalMaximum(cim,3*sigma)

thres=0.01*max(max_local(:))

[r,c]=find(max_local>=thres)

points=[r,c]

Selesai

Gambar 3.5. Diagram Alir Metode Edge Based Corner Detection

20

3.5. FAST Corner Detection

Metode FAST Corner Detection terkenal dengan waktu komputasinya yang

sangat cepat karena “hanya” membandingkan nilai satu titik terhadap empat titik di

sekitarnya. Jika tidak ada minimal tiga buah titik yang memenuhi syarat, maka titik

tersebut bukanlah titik sudut. Kemudian sistem akan bergeser ke titik baru untuk

dibandingkan lagi nilainya. Kecepatan deteksi FAST Corner Detection jauh diatas

Harris Corner Detection dan Edge Based Corner Detection. Diagram alir metode

FAST Corner Detection dapat dilihat pada Gambar 3.6. Source code metode FAST

Corner Detection dapat dilihat pada Lampiran A.4.

Mulai

Masukandir=citra bibir

pic=imread(dir)

pic=rgb2gray(pic)

thres=11ctr=0kk=0

[yy xx]=size(pic)

i=4j=4

pic(j-3,i)>bts1

bts1=pic(j,i)+thresbts2=pic(j,i)-thres

Tidak

pic(j-3,i)<bts2

ctr=ctr+1 Ya

ctr=ctr+1 Ya

pic(j+3,i)>bts1

pic(j+3,i)<bts2

Tidak

Tidak

ctr=ctr+1 Ya

ctr=ctr+1 Ya

pic(j,i-3)<bts2

pic(j,i-3)>bts1

ctr=ctr+1

ctr=ctr+1

pic(j,i+3)>bts1

pic(j,i+3)<bts2

ctr=ctr+1

ctr=ctr+1

Ctr>=4?

kk=kk+1

j=yy-3?j=j+1

i=xx-3?i=i+1

Selesai3

Ya

Ya

3

Tidak

Tidak

Ya

4

4

Gambar 3.6. Diagram Alir metode FAST Corner Detection

21

3.6. Deteksi Senyum

Metode-metode pendeteksi sudut yang sudah disebutkan sebelumnya akan

berusaha menemukan titik sudut pada citra dengan ekspresi tersenyum. Titik sudut ini

akan dirata-rata koordinat sumbu y nya untuk mendapatkan satu koordinat rata-rata

ekspresi tersenyum. Proses diulang untuk kesemua dataset pelatihan untuk kemudian

diperoleh koordinat rata-rata seluruh ekspresi tersenyum.

Proses pendeteksian dilakukan dengan melakukan rata-rata koordinat citra uji.

Jika koordinat rata-rata citra uji lebih besar daripada koordinat rata-rata ekspresi

tersenyum, maka citra tersebut bukan ekspresi tersenyum. Sebaliknya, jika koordinat

rata-rata citra uji lebih kecil atau sama dengan koordinat rata-rata ekspresi tersenyum,

maka citra merupakan ekspresi tersenyum. Diagram alir proses pendeteksian senyum

dapat dilihat pada gambar 3.7.

Mulai

load nilai rata-rata ekspresi tersenyum

Deteksi titik sudut citra bibir

points = seluruh titik sudut yang terdeteksi oleh

sistem

[xkiri, k] = max(points(:,2));

[i, j] = ind2sub(size(points), k);

ykiri = points(i,1);

[xkanan, k] = min(points(:,2));

[ii, jj] = ind2sub(size(points), k);

ykanan = points(ii,1);

rata=(ykiri+ykanan)/2;

rata < tengah? Tidak

Ya

Bukan Tersenyum

Ekspresi Tersenyum

Selesai

Gambar 3.7. Diagram Alir Proses Pendeteksian Senyum

22

3.7. Perhitungan Akurasi

Perhitungan akurasi dilakukan dengan menghitung jumlah citra uji dengan

ekspresi tersenyum yang dideteksi tersenyum oleh sistem dan menghitung jumlah

citra uji dengan ekspresi bukan tersenyum yang dideteksi bukan tersenyum oleh

sistem. Citra dengan ekspresi tersenyum yang dideteksi benar oleh sistem disebut

True Positive (TP) dan citra dengan ekspresi bukan tersenyum yang dideteksi benar

oleh sistem disebut True Negative (TN). Kedua parameter ini yang digunakan untuk

menghitung. Tabel hasil TN dan TP dari setiap metode serta kombinasi parameternya

dapat dilihat pada Lampiran B.

3.8. Pembuatan Dataset Skripsi

Dataset yang digunakan pada skripsi berupa citra bibir dengan ekspresi

tersenyum dan ekspresi bukan tersenyum. Dataset diperoleh dengan menggunakan

kamera digital dengan image quality small dan diambil dalam kondisi pencahayaan

yang cukup dengan warna latar belakang yang rata seragam. Jarak antara kamera

dengan subyek disesuaikan agar seluruh bagian wajah dapat tertangkap oleh kamera.

Posisi kamera akan berada tegak lurus dari wajah subyek. Dataset ini kemudian akan

diekstraksi bagian bibirnya saja dengan menggunakan bantuan metode Viola Jones

dan diresize menjadi berukuran 260×100 piksel.

Dataset yang telah diperoleh dapat digunakan dalam proses pendeteksian

senyum, baik sebagai dataset pelatihan maupun sebagai dataset pengujian. Dataset

pelatihan akan terdiri dari 125 citra dengan ekspresi tersenyum lebar dan 125 citra

dengan ekspresi tersenyum tipis.

Dataset pengujian True Positive terdiri dari 100 ekspresi tersenyum; 50 ekspresi

tersenyum tipis dan 50 ekspresi tersenyum lebar, dan dataset pengujian True Negative

terdiri dari 100 ekspresi selain tersenyum. Gambar 3.8 adalah dataset untuk ekspresi

tersenyum lebar, Gambar 3.9 adalah dataset untuk ekspresi tersenyum tipis, dan

Gambar 3.10 adalah dataset untuk ekspresi bukan tersenyum.

23

Gambar 3.8. Contoh Dataset dengan Ekspresi Tersenyum Lebar

Gambar 3.9. Contoh Dataset dengan Ekspresi Tersenyum Tipis

Gambar 3.10. Contoh Dataset dengan Ekspresi Bukan Tersenyum

3.9. Graphical User Interface

Pada skripsi ini juga dibuat fasilitas Graphical User Interface (GUI) pada

Matlab untuk mendemokan sistem pendeteksi senyum. Fasilitas GUI dibuat agar

pengguna lebih mudah mengoperasikan program yang telah dibuat pada skripsi ini.

Selain itu, GUI juga dibuat untuk melakukan pengujian kualitas sistem pada sebuah

citra. Fasilitas GUI ini meliputi tombol browse untuk memilih citra yang akan diuji,

text untuk menampilkan direktori dari citra yang dipilih, dan sebuah axes untuk

menampilkan citra yang dipilih. Terdapat sebuah popup menu yang berisi pilihan

ketiga metode pendeteksi senyum yang akan digunakan dan radio button untuk

pilihan penggunaan pra proses color segmentation.

Sebelum citra dideteksi, pengguna diwajibkan menekan tombol “DETECT”

terlebih dahulu. Hasil pendeteksian senyum akan ditampilkan di sebuah kolom, dan

sebuah kolom lainnya untuk menampilkan waktu komputasi dari metode yang dipilih.

Gambar 3.11 adalah contoh GUI yang akan digunakan pada skripsi ini. Gambar 3.12

adalah contoh GUI yang menampilkan hasil pendeteksian ekspresi wajah dan waktu

komputasinya. Source code Graphical User Interface dapat dilihat pada Lampiran

A.6.

24

Gambar 3.11. Graphical User Interface Skripsi

Gambar 3.12. Contoh Eksekusi Graphical User Interface Skripsi.

25

BAB IV

PENGUJIAN PERANGKAT LUNAK DAN ANALISIS HASIL PENGUJIAN

Pada skripsi ini, telah dilakukan pengujian terhadap perangkat lunak sistem

pendeteksi senyum yang telah dibuat sebelumnya dan akan dihasilkan data berupa

tingkat akurasi dari setiap metode melalui pengujian True Positive (TP) dan True

Negative (TN). Selain itu, dilakukan juga pengujian waktu komputasi untuk masing-

masing metode.

Pengujian dilakukan menggunakan dataset citra bibir dengan ekspresi

tersenyum dan citra bibir dengan ekspresi bukan tersenyum. Jumlah citra bibir dengan

ekspresi tersenyum yang dideteksi dengan benar oleh sistem disebut True Positive,

sedangkan jumlah citra bibir dengan ekspresi bukan tersenyum yang dideteksi benar

oleh sistem disebut True Negative.

Pengujian akurasi dilakukan dengan mengkombinasikan nilai parameter yang

berbeda dari setiap metode.

4.1 Pengambilan Data dan Metode Pengujian

Pada skripsi ini telah dilakukan percobaan untuk melakukan uji akurasi dan

perhitungan akurasi. Percobaan dilakukan menggunakan dataset berupa citra bibir.

Citra bibir ini diekstraksi menggunakan bantuan metode Viola Jones. Pelatihan

dilakukan menggunakan 250 citra bibir dengan ekspresi tersenyum; 125 citra

berekspresi tersenyum tipis dan 125 citra berekspresi tersenyum lebar.

Pengujian akurasi dilakukan dengan melakukan uji True Positive dan True

Negative. Pengujian True Negative dilakukan dengan menggunakan 100 citra bibir

dengan ekspresi selain tersenyum. Pengujian True Positive dilakukan dengan

menggunakan 100 citra bibir dengan ekspresi tersenyum, 50 citra berekspresi

tersenyum tipis dan 50 citra berekspresi tersenyum lebar.

Pada skripsi ini dilakukan tiga kali percobaan. Percobaan pertama dilakukan

tanpa menggunakan pra proses color segmentation, percobaan kedua dilakukan

dengan menggunakan pra proses color segmentation dan percobaan ketiga dilakukan

dengan menggunakan dataset uji ekspresi tersenyum yang baru.

26

4.2 Hasil dan Analisis

Percobaan pertama dilakukan tanpa menggunakan pra proses color

segmentation, dihasilkan akurasi yang rendah, yaitu 29% untuk metode Harris Corner

Detection, 42% untuk metode Edge Based Corner Detection, dan 59.5% untuk

metode FAST Corner Detection.

Karena tingkat akurasi yang rendah, dilakukan percobaan kedua dengan

menggunakan pra proses color segmentation pada citra sebelum dideteksi titik

sudutnya. Percobaan kedua ini mampu meningkatkan akurasi ketiga metode. Harris

Corner Detection menghasilkan akurasi sebesar 69%, Edge Based Corner Detection

menghasilkan akurasi sebesar 63.5%, dan FAST Corner Detection

menghasilkan.akurasi sebesar 66%.

Akurasi pada percobaan kedua ini masih rendah dan setelah diamati, memiliki

tingkat True Positive yang sangat rendah namun tingkat True Negative yang tinggi.

Maka dari itu dilakukan percobaan ketiga dengan membuat dataset ekspresi

tersenyum yang baru.

Penggantian data uji ekspresi tersenyum pada percobaan ketiga dilakukan

pada citra yang dideteksi salah oleh sistem menggunakan ketiga metode. Total

terdapat 17 data salah deteksi yang merupakan citra dengan ekspresi tersenyum

kurang tegas, yaitu menunjukkan ekspresi tersenyum namun bibirnya lebih cenderung

kurva ke bawah. Hal ini menyebabkan hasil uji True Positive sangat rendah dan

dilakukan percobaan ketiga dengan dataset uji ekspresi tersenyum yang baru.

Pada percobaan ketiga, akurasi ketiga metode meningkat. Harris Corner

Detection menghasilkan akurasi sebesar 77.5%, Edge Based Corner Detection

menghasilkan akurasi sebesar 70%, dan FAST Corner Detection menghasilkan

akurasi sebesar 72.5%. Akurasi dari ketiga percobaan ini merupakan akurasi terbaik

dari kombinasi parameter ketiga metode. Kombinasi parameter yang digunakan akan

dibahas lebih detil pada sub bab 4.3, 4.4 dan 4.5.

4.3. Perbandingan Ketiga Metode pada Percobaan Pertama

Pembahasan pada bagian ini menggunakan dataset percobaan pertama,

dimana tidak ada dataset pengujian yang diganti.

27

4.3.1 Harris Corner Detection

Pada metode Harris Corner Detection diperoleh tingkat akurasi sebesar 29%

dengan parameter sigma (�) sebesar 2, konstanta sensitivitas k sebesar 0.04 dan waktu

komputasi 70.6 mili detik. Kombinasi nilai sigma dimulai dari 0.5, 1, 1.5, dan 2 dan

kombinasi nilai konstanta sensitivitas k mulai dari 0.03, 0.04, 0.05, 0.06, 0.07, 0.08,

0.09, 0.1, 0.11, 0.12, 0.13, 0.14 dan 0.15. Grafik akurasi terhadap kombinasi

parameter Harris Corner Detection dapat dilihat pada Gambar 4.1, Gambar 4.2 dan

Gambar 4.3.

Gambar 4.1. Grafik Harris Corner Detection Percobaan Pertama

Gambar 4.2. Grafik Perbandingan Akurasi Terhadap Sigma Metode Harris

Corner Detection dengan k = 0.04 Percobaan Pertama

0

10

20

30

40

50

60

70

80

90

100

0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14 0.15

Ak

ura

si (

%)

Konstanta Sensitivitas (k)

Sigma 0.5

Sigma 1

Sigma 1.5

Sigma 2

0

10

20

30

40

50

60

70

80

90

100

0.5 1 1.5 2

Ak

ura

si (

%)

Sigma

29%

29%

28

Gambar 4.3. Grafik Perbandingan Akurasi Terhadap k Metode Harris Corner

Detection dengan Sigma = 2 Percobaan Pertama

Besar kecilnya nilai sigma pada Harris Corner Detection akan berpengaruh

pada jumlah titik sudut yang di deteksi oleh sistem. Hasil penggunaan nilai sigma 1

dengan nilai sigma 5 dapat dilihat pada Gambar 4.4.

(a) (b)

Gambar 4.4. Perbandingan Hasil Penggunaan Nilai Sigma 1.5 dengan Sigma 5.

(a) Hasil penggunaan nilai sigma 1, (b) Hasil penggunaan nilai sigma 5.

Nilai sigma pada Harris Corner Detection berpengaruh pada lebar sempitnya

rentang low pass filter yang memberikan efek blurring pada citra. Karena itulah nilai

sigma berpengaruh pada proses pendeteksian titik sudut. Semakin besar nilai sigma,

semakin blur citra dan semakin sedikit titik sudut yang terdeteksi.

Nilai sigma juga mempengaruhi waktu komputasi sistem. Semakin besar nilai

sigma, semakin lama juga waktu komputasi yang dibutuhkan oleh sistem. Pada

percobaan pertama, dilakukan penggunaan maksimal nilai sigma 2 dan menghasilkan

akurasi yang lebih baik daripada penggunaan nilai sigma 1, namun memakan waktu

komputasi yang lebih besar, yaitu mencapai 70.6 mili detik.

0

10

20

30

40

50

60

70

80

90

100

0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14 0.15

Ak

ura

si

(%)

Konstanta Sensitvitas (k)

29%

29

Penggunaan sigma yang terlalu kecil akan meningkatkan jumlah titik yang

dianggap sudut oleh sistem dan mengganggu pendeteksian senyum. Skripsi ini

mendeteksi titik sudut bibir hanya dengan memilih koordinat titik sudut yang paling

kiri dan paling kanan saja, sehingga jika menghasilkan terlalu banyak titik sudut,

sistem akan salah menentukan titik sudut bibir seperti bisa dilihat pada Gambar 4.5.

(a) (b)

Gambar 4.5. Kesalahan Pendeteksian Titik Sudut Bibir pada Nilai Sigma yang Terlalu

Kecil. (a) Hasil Penggunaan Sigma 0.5, (b) Hasil Penggunaan Sigma 5.

Pada Gambar 4.5 dapat dilihat bahwa terjadi kesalahan menentukan titik sudut

bibir. Pada Gambar 4.5 (a), titik sudut bibir sebelah kanan dideteksi oleh sistem pada

posisi agak terlalu jauh dari posisi seharusnya. Sedangkan pada Gambar 4.5 (b), sudut

bibir sebelah kanan di deteksi oleh sistem secara tepat. Hal ini terjadi karena

penggunaan nilai sigma yang terlalu kecil.

Pemilihan nilai konstanta sensitivitas tidak terlalu mempengaruhi jumlah titik

sudut yang dideteksi pada skripsi ini. Berdasarkan percobaan sebelumnya, nilai

konstanta sensitivitas yang memberikan hasil terbaik adalah 0.04-0.15 [11] dan pada

skripsi ini nilai konstanta 0.04 yang memberikan akurasi terbaik.

4.3.2 Edge Based Corner Detection

Pada Edge Based Corner Detection, sistem akan melakukan deteksi tepi

dengan operator Sobel. Pada metode ini, diperoleh tingkat akurasi sebesar 42%

dengan waktu komputasi sebesar 50.9 mili detik. Kombinasi yang digunakan adalah

sigma sebesar 1.5 dan konstanta sensitivitas k sebesar 0.15. Kombinasi parameter

sigma dari nilai 0.5, 1, 1.5, dan 2 dan kombinasi nilai konstanta sensitivitas k mulai

dari 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14 dan 0.15.

Grafik akurasi terhadap kombinasi parameter Edge Based Corner Detection dapat

dilihat pada Gambar 4.6, Gambar 4.7, dan Gambar 4.8.

30

Gambar 4.6. Grafik Edge Based Corner Detection Percobaan Pertama

Gambar 4.7. Grafik Perbandingan Akurasi Terhadap Sigma Metode Edge Based

Corner Detection dengan k = 0.15 Percobaan Pertama

0

10

20

30

40

50

60

70

80

90

100

0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14 0.15

Ak

ura

si

(%)

Konstanta Sensitivitas (k)

Sigma 0.5

Sigma 1

Sigma 1.5

Sigma 2

0

10

20

30

40

50

60

70

80

90

100

0.5 1 1.5 2

Ak

ura

si (

%)

Sigma

42%

42%

31

Gambar 4.8. Grafik Perbandingan Akurasi Terhadap k Metode Edge Based Corner

Detection dengan Sigma = 1.5 Percobaan Pertama

Berdasarkan hipotesis, waktu komputasi Edge Based Corner Detection akan

lebih lama dibandingkan Harris Corner Detection. Berdasarkan percobaan,

penggunaan nilai parameter yang sama seperti yang digunakan pada Harris Corner

Detection (sigma bernilai 2 dan konstanta sensitivitas 0.04) waktu komputasi yang

dibutuhkan untuk metode Edge Based Corner Detection adalah sebesar 79.9 mili

detik. Sedikit lebih lama dibandingkan metode Harris Corner Detection.

Karena skripsi bertujuan untuk mencari akurasi terbaik, maka dipilih

parameter yang menghasilkan akurasi terbaik dari tiap metode.

4.3.3 FAST Corner Detection

Pada metode FAST Corner Detection, akurasi yang diperoleh adalah sebesar

59.5% dengan batas ambang 18 dan waktu komputasi 13.1 mili detik. Nilai batas

ambang yang digunakan pada skripsi ini dimulai dari 1 sampai 25. Grafik akurasi

terhadap kombinasi parameter FAST Corner Detection dapat dilihat pada Gambar

4.9.

0

10

20

30

40

50

60

70

80

90

100

0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14 0.15

Ak

ura

si

(%)

Konstanta Sensitivitas (k)

42%

32

Gambar 4.9. Grafik FAST Corner Detection pada Percobaan Pertama

Nilai batas ambang akan mempengaruhi jumlah titik yang dideteksi. Semakin

besar nilai batas ambang, semakin sedikit titik sudut yang terdeteksi, sebaliknya,

semakin kecil nilai batas ambang, semakin banyak titik sudut yang terdeteksi. Dapat

dilihat pada Gambar 4.10 adalah hasil penggunaan batas ambang 1 dan batas ambang

20.

(a) (b)

Gambar 4.10. Hasil Penggunaan Nilai Batas Ambang yang Berbeda Pada Citra Bibir.

(a) Hasil Penggunaan Nilai Batas Ambang 1, (b) Hasil Penggunaan Nilai Batas

Ambang 20.

Berdasarkan hipotesis, FAST Corner Detection memerlukan waktu komputasi

paling cepat namun akurasi paling rendah dibanding ketiga metode lainnya.

Berdasarkan hasil percobaan pertama, FAST Corner Detection terbukti memerlukan

waktu komputasi paling cepat tetapi juga memberikan tingkat akurasi paling baik. Ini

membuktikan bahwa titik sudut pada bibir manusia memiliki nilai intensitas yang

sangat berbeda dibanding intensitas daerah di sekitarnya sehingga lebih mudah

ditemukan dengan membandingkan nilai intensitas di sekelilingnya.

0

10

20

30

40

50

60

70

80

90

100

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Ak

ura

si

(%)

Batas Ambang

59.5%

33

4.4 Perbandingan Ketiga Metode pada Percobaan Kedua

Pada bagian ini dibandingkan akurasi dan waktu komputasi yang dihasilkan

oleh ketiga metode setelah citra masukan di pra proses menggunakan color

segmentation terlebih dahulu. Pada skripsi ini, segmentasi dilakukan pada ranah RGB.

Citra dengan nilai piksel Red < 80, Green > 80 dan Blue > 100 akan diubah nilainya

menjadi hitam (0), selain itu akan dipertahankan nilainya.

Tujuan dilakukannya color segmentation adalah memperkecil area deteksi

ketiga metode dan diharapkan mampu memperkecil kesalahan penentuan titik sudut

bibir. Dataset pengujian yang digunakan masih menggunakan dataset uji percobaan

pertama.

4.4.1 Harris Corner Detection

Kombinasi pra proses color segmentation dan Harris Corner Detection

mampu menghasilkan akurasi sebesar 69% dengan penggunaan nilai parameter sigma

sebesar 0.5 dan konstanta sensitivitas sebesar 0.08. Waktu komputasi yang

dibutuhkan adalah 48.8 mili detik. Grafik akurasi terhadap kombinasi parameter

Harris Corner Detection percobaan kedua dapat dilihat pada Gambar 4.11, Gambar

4.12, dan Gambar 4.13.

Gambar 4.11. Grafik Harris Corner Detection Percobaan Kedua

0

10

20

30

40

50

60

70

80

90

100

0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14 0.15

Ak

ura

si (

%)

Konstanta Sensitivitas (k)

Sigma 0.5

Sigma 1

Sigma 1.5

Sigma 2

69%

34

Gambar 4.12. Grafik Perbandingan Akurasi Terhadap Sigma Metode Harris

Corner Detection Dengan k = 0.08 Percobaan Kedua

Gambar 4.13. Grafik Perbandingan Akurasi Terhadap k Metode Harris Corner

Detection Dengan Sigma = 0.5 Percobaan Kedua

0

10

20

30

40

50

60

70

80

90

100

0.5 1 1.5 2

Ak

ura

si

(%)

Sigma

0

10

20

30

40

50

60

70

80

90

100

0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14 0.15

Ak

ura

si (

%)

Konstanta Sensitivitas (k)

69%

69%

35

Hasil Harris Corner Detection yang dikombinasikan dengan pra proses color

segmentation dapat dilihat pada Gambar 4.14.

(a)

(b)

Gambar 4.14. Perbandingan Hasil Harris Corner Detection. (a) Hasil Harris Corner

Detection tanpa Color Segmentation, (b) Hasil Harris Corner Detection dengan Color

Segmentation.

4.4.2 Edge Based Corner Detection

Pra proses color segmentation dan Edge Based Corner Detection mampu

menghasilkan akurasi sebesar 63.5% dengan penggunaan nilai parameter sigma

sebesar 1.5 dan konstanta sensitivitas sebesar 0.04. Waktu komputasi yang

dibutuhkan adalah 91.1 mili detik. Grafik akurasi terhadap kombinasi parameter Edge

Based Corner Detection pada Percobaan Kedua dapat dilihat pada Gambar 4.15,

Gambar 4.16 dan Gambar 4.17.

36

Gambar 4.15. Grafik Edge Based Corner Detection Percobaan Kedua

Gambar 4.16. Grafik Perbandingan Akurasi Terhadap Sigma Metode Edge Based

Corner Detection dengan k = 0.04 Percobaan Kedua

0

10

20

30

40

50

60

70

80

90

100

0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14 0.15

Ak

ura

si

(%)

Konstanta Sensitivitas (k)

Sigma 0.5

Sigma 1

Sigma 1.5

Sigma 2

0

10

20

30

40

50

60

70

80

90

100

0.5 1 1.5 2

Ak

ura

si (

%)

Sigma

63.5%

63.5%

37

Gambar 4.17. Grafik Perbandingan Akurasi Terhadap k Metode Edge Based Corner

Detection dengan Sigma = 1.5 Percobaan Kedua

4.4.3 FAST Corner Detection

Kombinasi pra proses color segmentation dan FAST Corner Detection

menghasilkan akurasi sebesar 66% dengan penggunaan nilai batas ambang sebesar 1

dan waktu komputasi yang dibutuhkan adalah 47.8 mili detik. Grafik kombinasi

parameter FAST Corner Detection pada percobaan kedua dapat dilihat pada Gambar

4.18.

Gambar 4.18. Grafik FAST Corner Detection Percobaan Kedua

0

10

20

30

40

50

60

70

80

90

100

0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14 0.15

Ak

ura

si

(%)

Konstanta Sensitivitas (k)

0

10

20

30

40

50

60

70

80

90

100

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Ak

ura

si (

%)

Batas Ambang

66%

63.5%

38

Dari ketiga percobaan diatas, terbukti color segmentation mampu

meningkatkan akurasi dengan konsekuensi menambah waktu komputasi. Sesuai

hipotesis, FAST Corner Detection memberikan waktu komputasi tercepat, Harris

Corner Detection di posisi kedua dan Edge Based Corner Detection memberikan

waktu komputasi paling lama. Berdasarkan tingkat akurasi, Harris Corner Detection

memberikan akurasi terbaik, FAST Corner Detection di posisi kedua dan Edge Based

Detection memberikan akurasi paling rendah.

Percobaan kedua ini membuktikan kombinasi edge detection dan color

segmentation kurang baik dalam menentukan titik sudut pada bibir. Percobaan ini

juga menunjukkan hasil yang berbeda dengan hipotesis, dimana Harris Corner

Detection akan memberikan akurasi terbaik.

4.5 Perbandingan Ketiga Metode pada Percobaan Ketiga

Pada percobaan ketiga ini dilakukan penggantian sebanyak 17 data pengujian

ekspresi tersenyum yang menghasilkan kesalahan deteksi menggunakan ketiga

metode dari percobaan kedua. Penggantian dilakukan karena rendahnya tingkat True

Positive dan tingginya tingkat True Negative. Hal ini biasanya disebabkan karena

dataset pengujian yang digunakan kurang baik, maka dari itu dipilih data yang

dideteksi salah oleh sistem menggunakan ketiga metode.

Dari total 17 data uji ekspresi tersenyum yang akan diganti, 16 diantaranya

merupakan ekspresi tersenyum tipis. Dari sini dapat disimpulkan bahwa ekspresi

tersenyum tipis masih sulit dideteksi walaupun sistem sudah mampu menemukan titik

sudut pada bibir. Gambar 4.19 merupakan sampel dari data uji ekspresi tersenyum

yang dideteksi salah oleh ketiga metode.

Gambar 4.19. Sampel Data Uji Ekspresi Tersenyum yang Dideteksi Salah Oleh

Ketiga Metode

Penggantian data uji ekspresi tersenyum untuk percobaan ketiga ini

disesuaikan dengan ekspresi yang berkaitan. Total 16 data uji dengan ekspresi

tersenyum tipis dari percobaan kedua diganti menjadi 16 data uji baru dengan

ekspresi tersenyum tipis juga, dan 1 data uji dengan ekspresi tersenyum lebar dari

39

percobaan kedua, diganti 1 data uji baru dengan ekspresi tersenyum lebar juga.

Dengan begini, komposisi data uji tetap seimbang, yaitu 50 data uji dengan ekspresi

tersenyum tipis dan 50 data uji dengan ekspresi tersenyum lebar. Percobaan ketiga ini

menggunakan pra proses color segmentation.

4.5.1 Harris Corner Detection

Terjadi peningkatan akurasi yang sangat signifikan pada metode Harris

Corner Detection, yaitu menjadi sebesar 77.5% dengan kombinasi parameter yang

sama, yaitu nilai sigma 0.5 dan konstanta sensitivitas sebesar 0.08 sedangkan waktu

komputasinya sebesar 49.2 mili detik. Grafik akurasi terhadap kombinasi parameter

Harris Corner Detection pada percobaan ketiga dapat dilihat pada Gambar 4.20,

Gambar 4.21, dan Gambar 4.22.

Gambar 4.20. Grafik Harris Corner Detection pada Percobaan Ketiga

0

10

20

30

40

50

60

70

80

90

100

0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14 0.15

Ak

ura

si (

%)

Konstanta Sensitivitas (k)

Sigma 0.5

Sigma 1

Sigma 1.5

Sigma 2

77.5%

40

Gambar 4.21. Grafik Perbandingan Akurasi Terhadap Sigma Metode Harris Corner

Detection dengan k = 0.08 Percobaan Ketiga

Gambar 4.22. Grafik Perbandingan Akurasi Terhadap k Metode Harris Corner

Detection dengan Sigma = 0.5 Percobaan Ketiga

4.5.2 Edge Based Corner Detection

Terjadi peningkatan akurasi pada metode Edge Based Corner Detection, yaitu

menjadi sebesar 70% dengan kombinasi parameter yang sama, yaitu nilai sigma 1.5

dan konstanta sensitivitas sebesar 0.04 sedangkan waktu komputasinya sebesar 90.1

mili detik. Grafik akurasi terhadap kombinasi parameter Edge Based Corner

0

10

20

30

40

50

60

70

80

90

100

0.5 1 1.5 2

Ak

ura

si

(%)

Sigma

0

10

20

30

40

50

60

70

80

90

100

0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14 0.15

Ak

ura

si (

%)

Konstanta Sensitivitas (k)

77.5%

77.5%

41

Detection pada percobaan ketiga dapat dilihat pada Gambar 4.23, Gambar 4.24 dan

Gambar 4.25.

Gambar 4.23. Grafik Edge Based Corner Detection pada Percobaan Ketiga

Gambar 4.24. Grafik Perbandingan Akurasi Terhadap Sigma Metode Edge Based

Corner Detection dengan k = 0.04 Percobaan Ketiga

0

10

20

30

40

50

60

70

80

90

100

0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14 0.15

Ak

ura

si

(%)

Konstanta Sensitivitas (k)

Sigma 0.5

Sigma 1

Sigma 1.5

Sigma 2

0

10

20

30

40

50

60

70

80

90

100

0.5 1 1.5 2

Ak

ura

si (

%)

Sigma

70%

70%

42

Gambar 4.25. Grafik Perbandingan Akurasi Terhadap k Metode Edge Based Corner

Detection dengan Sigma = 1.5 Percobaan Ketiga

4.5.3 FAST Corner Detection

Terjadi peningkatan akurasi pada metode FAST Corner Detection, yaitu

menjadi sebesar 72.5% dengan kombinasi nilai batas ambang sebesar 3 dan waktu

komputasi sebesar 46.6 mili detik. Grafik akurasi terhadap kombinasi parameter

FAST Corner Detection pada percobaan ketiga dapat dilihat pada Gambar 4.26.

Gambar 4.26. Grafik FAST Corner Detection pada Percobaan Ketiga

0

20

40

60

80

100

0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14 0.15

Ak

ura

si

(%)

Konstanta Sensitivitas (k)

0

10

20

30

40

50

60

70

80

90

100

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Ak

ura

si (

%)

Batas Ambang

70%

72.5%

43

Skripsi ini menggunakan variasi dataset subyek dengan warna kulit cerah

hingga sawo matang. Titik sudut yang dihasilkan setelah citra melalui pra proses

color segmentation tidak terpengaruh oleh variasi warna kulit subyek yang digunakan.

Seperti dapat dilihat pada Gambar 4.27 adalah perbandingan hasil pendeteksian sudut

pada subyek dengan warna kulit cerah dan subyek orang India yang memiliki warna

kulit sawo matang.

(a) (b)

Gambar 4.27. Perbandingan Hasil Pendeteksian Sudut Dengan Pra Proses Color

Segmentation Pada Subyek Dengan Warna Kulit Berbeda. (a) Hasil Pendeteksian

Sudut Pada Subyek Dengan Warna Kulit Cerah, (b) Hasil Pendeteksian Sudut Pada

Subyek Dengan Warna Kulit Sawo Matang.

Dari Gambar 4.27 (a) dan (b) dapat dilihat bahwa sistem mampu mendeteksi

titik sudut kedua citra dengan baik dan terbukti color segmentation tidak

mempengaruhi pendeteksian titik sudut pada subyek berkulit sawo matang. Gambar

4.27 (b) merupakan dataset yang diunduh dari database online wajah orang India

[15].

Dari ketiga percobaan yang telah dilakukan menggunakan metode Harris

Corner Detection, Edge Based Corner Detection dan FAST Corner Detection, tingkat

akurasi terbaik dan waktu komputasi untuk setiap metode dapat dilihat pada Tabel

4.1.

Tabel 4.1. Akurasi dan Waktu Komputasi Sistem Pendeteksi Senyum

Metode Akurasi (%) Waktu Komputasi (mili detik)

Percobaan 1

Harris Corner Detection 29 70.6

Edge Based Corner Detection 42 50.9

FAST Corner Detection 59.5 13.1

Percobaan 2

Harris Corner Detection 69 48.8

Edge Based Corner Detection 63.5 91.1

FAST Corner Detection 66 47.8

Percobaan 3

Harris Corner Detection 77.5 49.2

Edge Based Corner Detection 70 90.1

FAST Corner Detection 72.5 46.6

44

Telah dilakukan percobaan tambahan yaitu dengan menambahkan batas

ambang pada nilai rata-rata koordinat bibir ekspresi tersenyum sebanyak 3.5,

sehingga nilai rata-ratanya berubah dari 19.5 menjadi 23. Dari percobaan ini hanya

FAST Corner Detection yang mengalami peningkatan akurasi menjadi 81%. Tabel

kombinasi parameter FAST Corner Detection untuk penambahan batas nilai rata-rata

dapat dilihat pada Lampiran B.4.

4.6 Pendeteksian Senyum pada Citra dengan Subyek Lebih Dari Satu

Pada skripsi ini, juga dilakukan percobaan untuk mendeteksi senyum pada

citra dengan jumlah subyek lebih dari satu seperti dapat dilihat pada Gambar 4.28.

Bagian wajah setiap subyek akan dideteksi menggunakan metode Viola Jones, lalu

bibir setiap subyek akan dideteksi sudutnya menggunakan metode Harris Corner

Detection dengan pra proses color segmentation. Pemilihan metode Harris Corner

Detection karena berdasarkan percobaan mampu menghasilkan tingkat akurasi

tertinggi.

Gambar 4.28. Contoh Citra Dengan Subyek Lebih Dari Satu

Hasil pendeteksian akan dimunculkan pada command window MATLAB.

Pengujian dilakukan pada subyek berjumlah 2 hingga 6 pada satu citra. Berdasarkan

percobaan, citra yang dideteksi minimal berukuran 1500×1000 piksel dan wajah

subyek berada cukup dekat dengan kamera sehingga setelah dideteksi bagian

wajahnya dengan metode Viola Jones, ukuran bibir tidak terlalu kecil untuk dideteksi

45

sudutnya. Dari percobaan yang dilakukan, seluruh subyek pada citra berekspresi

tersenyum.

Dari hasil percobaan, metode Harris Corner Detection mampu mendeteksi

senyum pada subyek lebih dari satu dengan tingkat akurasi sebesar 75% pada setiap

citra nya. Tingkat akurasi ini diperoleh dengan menghitung jumlah subyek yang

dideteksi benar ekspresinya oleh sistem. Hasil pengujian sistem menggunakan metode

Harris Corner Detection dapat dilihat pada gambar 4.29.

Gambar 4.29. Hasil Pengujian Metode Harris Corner Detection Pada Citra Dengan

Subyek Lebih Dari Satu

Urutan penomoran subyek di sistem ini dimulai dari kiri atas, kanan atas, kiri

bawah, dan kanan bawah. Urutan ini sesuai dengan proses pendeteksian metode Viola

Jones yang mendeteksi wajah subyek dimulai dari sudut kiri atas citra dan berakhir di

sudut kanan bawah citra.

Berdasarkan percobaan, waktu yang dibutuhkan oleh sistem dalam mendeteksi

ekspresi tersenyum pada citra dengan subyek lebih dari satu berbanding lurus dengan

jumlah subyek pada citra tersebut. Semakin banyak subyek pada citra, semakin lama

waktu yang dibutuhkan untuk mendeteksi senyum. Source code deteksi senyum pada

citra dengan subyek lebih dari satu dapat dilihat pada Lampiran A.5.

46

BAB V

KESIMPULAN

5.1 Kesimpulan

Pada skripsi ini telah dilakukan penelitian terhadap perbandingan metode

Harris Corner Detection, Edge Based Corner Detection dan FAST Corner Detection

dalam aplikasi sistem pendeteksi senyum. Dari hasil pengujian sistem pendeteksi

senyum yang telah dilakukan, dapat disimpulkan sebagai berikut:

1. Harris Corner Detection memberikan tingkat akurasi tertinggi dibandingkan kedua

metode lainnya untuk mendeteksi senyum pada citra yang di pra proses color

segmentation, yaitu sebesar 77.5%.

2. FAST Corner Detection membutuhkan waktu komputasi paling cepat untuk

mendeteksi senyum pada citra yang di pra proses dengan color segmentation, yaitu

sebesar 46.6 mili detik, maupun tanpa pra proses color segmentation, yaitu sebesar

13.1 mili detik.

3. FAST Corner Detection memberikan akurasi tertinggi untuk mendeteksi citra tanpa

pra proses color segmentation, yaitu sebesar 59.5%.

4. Penggunaan pra proses color segmentation mampu meningkatkan akurasi ketiga

metode hingga 22% untuk mendeteksi senyum.

5. Peningkatan nilai sigma pada Harris Corner Detection memperlambat waktu

komputasi.

6. Parameter sigma yang menghasilkan akurasi yang baik berkisar antara 0.5-2,

sedangkan konstanta sensitivitas k yang menghasilkan akurasi yang baik berkisar

antara 0.04-0.15.

7. Warna kulit tidak berpengaruh pada proses pendeteksian senyum dan segmentasi

warna.

8. Edge Detection tidak mampu meningkatkan akurasi pendeteksian senyum karena

menghilangkan fitur-fitur utama yang mungkin adalah titik sudut bibir.

5.2 Saran

Pada bagian ini penulis menyarankan untuk dilakukan percobaan penambahan

atau pengurangan batas ambang pada nilai koordinat rata-rata ekspresi tersenyum

yang diperoleh dari dataset pelatihan sehingga bisa didapatkan akurasi pendeteksian

senyum yang lebih akurat.

47

DAFTAR PUSTAKA

[1] “Live Life in the Positive! Scientific Studies: Positive Healing of Laughter”,

[Online], http://laughingrx.com/15.html, diakses pada tanggal 20 Oktober

2012.

[2] Davidson, Karina, “Don’t worry, be happy: positive affect and reduced 10-

year incident coronary heart disease: The Canadian Nova Scotia Health

Survey”, European Heart Journal, 2010, London.

[3] Face Parts Detection oleh Masayuki Tanaka, [Online],

http://like.silk.to/matlab/ detectFaceParts.html, diakses pada tanggal 20

Januari 2013

[4] Chris Harris dan Mike Stephens, “A Combined Corner and Edge Detector”,

Plessey Research Roke Manor, United Kingdom, 1988.

[5] Edward Rosten, Reid Porter dan Tom Drummond, “FASTER and Better: A

Machine Learning Approach to Corner Detection”, IEEE Trans. Pattern

Analysis and Machine Intelligence 2010 no 32, pp 105-119.

[6] Farida Asriani dan Hesti Susilawati , “Pengenalan Isyarat Tangan Statis Pada

Sistem Isyarat Bahasa Indonesia Berbasis Jaringan Syaraf Tiruan Perambatan

Balik”, Makara Teknologi, vol. 14, no. 2. 2010.

[7] Gonzales, R. C. dan R. E. Woods, Digital Image Processing, 3rd edition,

Prentice Hall, 2008.

[8] Pengolahan Citra Digital [Online], http://digilib.ittelkom.ac.id/index.php?

view=article&catid=15%3Apemrosesan-sinyal&id=573%3Apengolahan-citra-

digital&tmpl=component&print=1&page=&option=com_content&Itemid=14,

diakses pada tanggal 3 Februari 2013

[9] Teori Dasar Citra Digital [Online], http://repository.usu.ac.id/bitstream/

123456789/29726/4/Chapter%20II.pdf , diakses tanggal 24 Februari 2012.

[10] Harris/Plessey Operator [Online],

http://kiwi.cs.dal.ca/~dparks/CornerDetection/harris.htm, diakses pada tanggal

31 Januari 2013.

[11] Neil Bruce dan Pierre Kornprobst, “Harris Corner in Real World: A Principled

Selection Criterion for Interest Points Based on Ecological Statistics”, INRIA-

00343449 version 1, diterbitkan 1 December 2008.

[12] Darma Putra, “Pengolahan Citra Digital”, ANDI Jogjakarta, 2010.

48

[13] Iwan Setyawan, “Dasar-dasar Machine Vision”, Widya Sari, 2012.

[14] Edward Rosten and Tom Drummond, “Fusing Points and Lines For High

Performance Tracking”, IEEE International Conference on Computer Vision

no 2, October 2005, pp 1508-1511.

[15] Indian Face [Online], http://www.face-rec.org/databases/, diakses pada tanggal

20 Oktober 2012

49

LAMPIRAN A

SOURCE CODE PEMROGRAMAN YANG DIBUAT DENGAN MATLAB

A.1 Source Code Pra Proses Color Segmentation

clear all; clc; ctr = 0; kk = 1; dir='/Users/edoroyce/Documents/MATLAB/3/'; y = imread('/Users/edoroyce/Documents/MATLAB/senyum/1.jpg'); pic = y; for mm = 1:size(pic,1) for nn = 1:size(pic,2) if pic(mm,nn,1) < 80 || pic(mm,nn,2) > 80 || pic(mm,nn,3) > 100 gsc = 0; pic(mm,nn,:) = [gsc gsc gsc]; end end end

A.2 Source Code Metode Harris Corner Detection

level = graythresh(pic); bw = im2bw(pic,level); im = double(bw(:,:,1)); sigma = 2; % masking derivatif dx = [-1 0 1; -1 0 1; -1 0 1]; dy = dx'; % citra derivatif Ix = conv2(im, dx, 'same'); Iy = conv2(im, dy, 'same'); s_I = sigma; g = fspecial('gaussian',max(1,fix(6*s_I+1)), s_I); Ix2 = conv2(Ix.^2, g, 'same'); Iy2 = conv2(Iy.^2, g, 'same'); Ixy = conv2(Ix.*Iy, g, 'same'); %hitung nilai interest point k = 0.04; cim = (Ix2.*Iy2 - Ixy.^2) - k*(Ix2 + Iy2).^2; % metode Harris %cari nilai maksimal [r,c,max_local] = findLocalMaximum(cim,3*s_I); %threshold = 1% dari max value t = 0.01*max(max_local(:));

50

%cari nilai yg lebih besar dr threshold [r,c] = find(max_local>=t); %buat interest point points = [r,c]; %cari koordinat x kiri [xkiri, k] = max(points(:,2)); [i, j] = ind2sub(size(points), k); ykiri = points(i,1); %cari koordinat x kanan [xkanan, k] = min(points(:,2)); [ii, jj] = ind2sub(size(points), k); ykanan = points(ii,1); point = [ykanan,xkanan ; ykiri,xkiri]; rata=(ykiri+ykanan)/2; save skripsi_harris_nocol tengah

A.3 Source Code Metode Edge Based Corner Detection

level = graythresh(pic); bw = im2bw(pic,level); bw3 = edge(bw,'sobel',0.5); % sobel edge detection im = double(bw3(:,:,1)); sigma = 2; % masking derivatif dx = [-1 0 1; -1 0 1; -1 0 1]; dy = dx'; % citra derivatif Ix = conv2(im, dx, 'same'); Iy = conv2(im, dy, 'same'); s_I = sigma; g = fspecial('gaussian',max(1,fix(6*s_I+1)), s_I); Ix2 = conv2(Ix.^2, g, 'same'); Iy2 = conv2(Iy.^2, g, 'same'); Ixy = conv2(Ix.*Iy, g, 'same'); %hitung nilai interest point k = 0.04; cim = (Ix2.*Iy2 - Ixy.^2) - k*(Ix2 + Iy2).^2; % metode Harris %cari nilai maksimal [r,c,max_local] = findLocalMaximum(cim,3*s_I); %threshold = 1% dari max value t = 0.01*max(max_local(:));

51

%cari nilai yg lebih besar dr threshold [r,c] = find(max_local>=t); %buat interest point points = [r,c]; %cari koordinat x kiri [xkiri, k] = max(points(:,2)); [i, j] = ind2sub(size(points), k); ykiri = points(i,1); %cari koordinat x kanan [xkanan, k] = min(points(:,2)); [ii, jj] = ind2sub(size(points), k); ykanan = points(ii,1); point = [ykanan,xkanan ; ykiri,xkiri]; rata=(ykiri+ykanan)/2; save skripsi_edge_nocol tengah

A.4 Source Code Metode FAST Corner Detection

pic = rgb2gray(pic); [yy xx]=size(pic); ttl=yy.*xx; thres = 11; for i=4:xx-3 for j=4:yy-3 ctr=0; bts1 = y(j,i) + thres; bts2 = y(j,i) - thres; if y(j-3,i) > bts1 ctr=ctr+1; elseif y(j-3,i) < bts2 ctr=ctr+1; end if y(j+3,i) > bts1 ctr=ctr+1; elseif y(j+3,i) < bts2 ctr=ctr+1; end if y(j,i+3) > bts1 ctr=ctr+1; elseif y(j,i+3) < bts2 ctr=ctr+1; end if y(j,i-3) > bts1 ctr=ctr+1; elseif y(j,i-3) < bts2 ctr=ctr+1; end if ctr>=3

52

spn(kk,1) = i; spn(kk,2) = j; kk=kk+1; end end end %cari koordinat x kiri [xkiri, k] = min(spn(:,1)); [ii, jj] = ind2sub(size(spn), k); ykiri = spn(ii,2); fast_ykiri(1,1)=ykiri; %cari koordinat x kanan [xkanan, k] = max(spn(:,1)); [iii, jjj] = ind2sub(size(spn), k); ykanan = spn(iii,2); fast_ykanan(1,1)=ykanan; point = [ykanan,xkanan ; ykiri,xkiri]; tengah=(fast_ykiri+fast_ykanan)/2; save skripsi_edge_nocol tengah

A.5 Source Code Citra dengan Subyek Lebih Dari Satu

clear all; close all; clc; load skripsi_harris_col tengah img=imread('/Users/edoroyce/Downloads/FaceDetect/tes3.jpg'); detector = buildDetector(); [bbox bbimg faces bbfaces] = detectFaceParts(detector,img); for j=1:size(bbfaces,1) for l=1:3 img_crop(:,:,l)=img(bbox(j,14)+12:bbox(j,14)+bbox(j,16)-5,bbox(j,13)+5:bbox(j,13)+bbox(j,15)-5,l); %ymin:ymax,xmin:xmax,L menunjuk ke layer R/G/B %bbox(2,14) <<< 2 nya menunjuk ke faces ke n end a{j}=img_crop; pic = img_crop; for mm = 1:size(pic,1) for nn = 1:size(pic,2) if pic(mm,nn,1)<80||pic(mm,nn,2)>80||pic(mm,nn,3)>100 gsc = 0; pic(mm,nn,:) = [gsc gsc gsc]; end end end %===================HARRIS=========================== level = graythresh(pic); bw = im2bw(pic,level);

53

im = double(bw(:,:,1)); sigma = 0.5; % derivatif mask dx = [-1 0 1; -1 0 1; -1 0 1]; dy = dx'; % citra derivatif Ix = conv2(im, dx, 'same'); Iy = conv2(im, dy, 'same'); s_I = sigma; g = fspecial('gaussian',max(1,fix(6*s_I+1)), s_I); Ix2 = conv2(Ix.^2, g, 'same'); Iy2 = conv2(Iy.^2, g, 'same'); Ixy = conv2(Ix.*Iy, g, 'same'); %hitung nilai interest point k = 0.08; cim = (Ix2.*Iy2 - Ixy.^2) - k*(Ix2 + Iy2).^2; % metode Harris %cari nilai maksimal [r,c,max_local] = findLocalMaximum(cim,3*s_I); %threshold = 1% dari max value t = 0.01*max(max_local(:)); %cari nilai yg lebih besar dr threshold [r,c] = find(max_local>=t); %buat interest point points = [r,c]; %cari koordinat x kiri [xkiri, k] = max(points(:,2)); [iii, jjj] = ind2sub(size(points), k); ykiri = points(iii,1); %cari koordinat x kanan [xkanan, k] = min(points(:,2)); [ii, jj] = ind2sub(size(points), k); ykanan = points(ii,1); point = [ykanan,xkanan ; ykiri,xkiri]; rata=(ykiri+ykanan)/2; if rata<tengah tpl = ['subyek ', num2str(j),' tersenyum']; disp(tpl); else tpl = ['subyek ', num2str(j),' tidak tersenyum']; disp(tpl); end %draw(img_crop,point);

54

%figure;imshow(img_crop); clear img_crop; end figure; imshow(bbimg);

A.6 Source Code Graphical User Interface

function varargout = GUI_SKRIPSI_EDO(varargin) % GUI_SKRIPSI_EDO MATLAB code for GUI_SKRIPSI_EDO.fig % GUI_SKRIPSI_EDO, by itself, creates a new GUI_SKRIPSI_EDO or raises the existing % singleton*. % % H = GUI_SKRIPSI_EDO returns the handle to a new GUI_SKRIPSI_EDO or the handle to % the existing singleton*. % % GUI_SKRIPSI_EDO('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in GUI_SKRIPSI_EDO.M with the given input arguments. % % GUI_SKRIPSI_EDO('Property','Value',...) creates a new GUI_SKRIPSI_EDO or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before GUI_SKRIPSI_EDO_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to GUI_SKRIPSI_EDO_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help GUI_SKRIPSI_EDO % Last Modified by GUIDE v2.5 12-Sep-2013 21:36:05 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @GUI_SKRIPSI_EDO_OpeningFcn, ... 'gui_OutputFcn', @GUI_SKRIPSI_EDO_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT

55

% --- Executes just before GUI_SKRIPSI_EDO is made visible. function GUI_SKRIPSI_EDO_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to GUI_SKRIPSI_EDO (see VARARGIN) % Choose default command line output for GUI_SKRIPSI_EDO handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes GUI_SKRIPSI_EDO wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = GUI_SKRIPSI_EDO_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [filename,pathname] = uigetfile('/Users/edoroyce/Documents/MATLAB/SUBJECT SMILE DETECTOR/uji/*.JPG'); if isequal(filename,0) disp('User Canceled') else disp(['User Selected ', fullfile(pathname, filename)]) end a=strcat(pathname,filename); pict=imread(a); y = imresize(pict,[1000 1500]); detector = buildDetector(); [bbox bbimg faces bbfaces] = detectFaceParts(detector,y,2); for l=1:3 img_crop(:,:,l)=y(bbox(1,14)+27:bbox(1,14)+bbox(1,16)-27,bbox(1,13):bbox(1,13)+bbox(1,15),l); end handles.gambar = img_crop; guidata(hObject,handles); set(handles.text2, 'String',a); axes(handles.axes1);imshow(pict); % --- Executes on selection change in listbox1. function listbox1_Callback(hObject, eventdata, handles) % hObject handle to listbox1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

56

% Hints: contents = cellstr(get(hObject,'String')) returns listbox1 contents as cell array % contents{get(hObject,'Value')} returns selected item from listbox1 % --- Executes during object creation, after setting all properties. function listbox1_CreateFcn(hObject, eventdata, handles) % hObject handle to listbox1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: listbox controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in radiobutton1. function radiobutton1_Callback(hObject, eventdata, handles) % hObject handle to radiobutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of radiobutton1 % --- Executes on button press in radiobutton2. function radiobutton2_Callback(hObject, eventdata, handles) % hObject handle to radiobutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of radiobutton2 % --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) aa = get(handles.listbox1,'value'); tic; y = handles.gambar; bbb = handles.bb; if aa == 1 if bbb == 1 load skripsi_harris_col tengah %======Color Segmentation=================== pic = y; for mm = 1:size(pic,1) for nn = 1:size(pic,2) if pic(mm,nn,1)<80||pic(mm,nn,2)>80||pic(mm,nn,3)>100 gsc = 0; pic(mm,nn,:) = [gsc gsc gsc]; end end end %=======Harris Corner Detection============= coba = rgb2gray(pic); level = graythresh(coba); bw = im2bw(pic,level); im = double(bw(:,:,1)); sigma = 0.5; % derivatif mask dx = [-1 0 1; -1 0 1; -1 0 1];

57

dy = dx'; % citra derivatif Ix = conv2(im, dx, 'same'); Iy = conv2(im, dy, 'same'); s_I = sigma; g = fspecial('gaussian',max(1,fix(6*s_I+1)), s_I); Ix2 = conv2(Ix.^2, g, 'same'); Iy2 = conv2(Iy.^2, g, 'same'); Ixy = conv2(Ix.*Iy, g, 'same'); %hitung nilai interest point k = 0.08; cim = (Ix2.*Iy2 - Ixy.^2) - k*(Ix2 + Iy2).^2; % metode Harris %cari nilai maksimal [r,c,max_local] = findLocalMaximum(cim,3*s_I); %threshold = 1% dari max value t = 0.01*max(max_local(:)); %cari nilai yg lebih besar dr threshold [r,c] = find(max_local>=t); %buat interest point points = [r,c]; %cari koordinat x kiri [xkiri, k] = max(points(:,2)); [i, j] = ind2sub(size(points), k); ykiri = points(i,1); %cari koordinat x kanan [xkanan, k] = min(points(:,2)); [ii, jj] = ind2sub(size(points), k); ykanan = points(ii,1); point = [ykanan,xkanan ; ykiri,xkiri]; rata=(ykiri+ykanan)/2; if rata<tengah set(handles.text7, 'String', 'Senyum'); else set(handles.text7, 'String', 'Bukan Senyum'); end waktu=toc; set(handles.text9,'String',waktu); else %===============NO COLOR SEGMENTATION==============

load skripsi_harris_nocol tengah pic = y; coba = rgb2gray(pic); level = graythresh(coba); bw = im2bw(pic,level); im = double(bw(:,:,1)); sigma = 2; % derivatif mask

58

dx = [-1 0 1; -1 0 1; -1 0 1]; dy = dx'; % citra derivatif Ix = conv2(im, dx, 'same'); Iy = conv2(im, dy, 'same'); s_I = sigma; g = fspecial('gaussian',max(1,fix(6*s_I+1)), s_I); Ix2 = conv2(Ix.^2, g, 'same'); Iy2 = conv2(Iy.^2, g, 'same'); Ixy = conv2(Ix.*Iy, g, 'same'); %hitung nilai interest point k = 0.04; cim = (Ix2.*Iy2 - Ixy.^2) - k*(Ix2 + Iy2).^2; % metode Harris %cari nilai maksimal [r,c,max_local] = findLocalMaximum(cim,3*s_I); %threshold = 1% dari max value t = 0.01*max(max_local(:)); %cari nilai yg lebih besar dr threshold [r,c] = find(max_local>=t); %buat interest point points = [r,c]; %cari koordinat x kiri [xkiri, k] = max(points(:,2)); [i, j] = ind2sub(size(points), k); ykiri = points(i,1); %cari koordinat x kanan [xkanan, k] = min(points(:,2)); [ii, jj] = ind2sub(size(points), k); ykanan = points(ii,1); point = [ykanan,xkanan ; ykiri,xkiri]; rata=(ykiri+ykanan)/2; if rata<tengah set(handles.text7, 'String', 'Senyum'); else set(handles.text7, 'String', 'Bukan Senyum'); end waktu=toc; set(handles.text9,'String',waktu); end else if aa == 2 if bbb == 1

load skripsi_edge_col tengah %======Color Segmentation=================== pic = y; for mm = 1:size(pic,1) for nn = 1:size(pic,2) if pic(mm,nn,1)<80||pic(mm,nn,2)>80||pic(mm,nn,3)>100 gsc = 0; pic(mm,nn,:) = [gsc gsc gsc]; end

59

end end %=======Edge Based Corner Detection============= coba = rgb2gray(pic); level = graythresh(coba); bw = im2bw(pic,level); bw3 = edge(bw,'sobel',0.5); im = double(bw3(:,:,1)); sigma = 1.5; % derivatif mask dx = [-1 0 1; -1 0 1; -1 0 1]; dy = dx'; % citra derivatif Ix = conv2(im, dx, 'same'); Iy = conv2(im, dy, 'same'); s_I = sigma; g = fspecial('gaussian',max(1,fix(6*s_I+1)), s_I); Ix2 = conv2(Ix.^2, g, 'same'); Iy2 = conv2(Iy.^2, g, 'same'); Ixy = conv2(Ix.*Iy, g, 'same'); %hitung nilai interest point k = 0.03; cim = (Ix2.*Iy2 - Ixy.^2) - k*(Ix2 + Iy2).^2; % metode Harris %cari nilai maksimal [r,c,max_local] = findLocalMaximum(cim,3*s_I); %threshold = 1% dari max value t = 0.01*max(max_local(:)); %cari nilai yg lebih besar dr threshold [r,c] = find(max_local>=t); %buat interest point points = [r,c]; %cari koordinat x kiri [xkiri, k] = max(points(:,2)); [i, j] = ind2sub(size(points), k); ykiri = points(i,1); %cari koordinat x kanan [xkanan, k] = min(points(:,2)); [ii, jj] = ind2sub(size(points), k); ykanan = points(ii,1); point = [ykanan,xkanan ; ykiri,xkiri]; rata=(ykiri+ykanan)/2; if rata<tengah set(handles.text7, 'String', 'Senyum'); else set(handles.text7, 'String', 'Bukan Senyum'); end waktu=toc; set(handles.text9,'String',waktu); else %set(handles.text9,'String','No');

60

load skripsi_edge_nocol tengah %========Edge Based Corner Detection============ coba = rgb2gray(y); level = graythresh(coba); bw = im2bw(y,level); bw3 = edge(bw,'sobel',0.5); im = double(bw3(:,:,1)); sigma = 1.5; % derivatif mask dx = [-1 0 1; -1 0 1; -1 0 1]; dy = dx'; % citra derivatif Ix = conv2(im, dx, 'same'); Iy = conv2(im, dy, 'same'); s_I = sigma; g = fspecial('gaussian',max(1,fix(6*s_I+1)), s_I); Ix2 = conv2(Ix.^2, g, 'same'); Iy2 = conv2(Iy.^2, g, 'same'); Ixy = conv2(Ix.*Iy, g, 'same'); %hitung nilai interest point k = 0.15; cim = (Ix2.*Iy2 - Ixy.^2) - k*(Ix2 + Iy2).^2; % metode Harris %cari nilai maksimal [r,c,max_local] = findLocalMaximum(cim,3*s_I); %threshold = 1% dari max value t = 0.01*max(max_local(:)); %cari nilai yg lebih besar dr threshold [r,c] = find(max_local>=t); %buat interest point points = [r,c]; %cari koordinat x kiri [xkiri, k] = max(points(:,2)); [i, j] = ind2sub(size(points), k); ykiri = points(i,1); %cari koordinat x kanan [xkanan, k] = min(points(:,2)); [ii, jj] = ind2sub(size(points), k); ykanan = points(ii,1); point = [ykanan,xkanan ; ykiri,xkiri]; rata=(ykiri+ykanan)/2; if rata<tengah set(handles.text7, 'String', 'Senyum'); else set(handles.text7, 'String', 'Bukan Senyum'); end waktu=toc; set(handles.text9,'String',waktu);

61

end else if bbb == 1 load skripsi_fast_col tengah kk=1; %============Color Segmentation============= pic=y; for mm = 1:size(pic,1) for nn = 1:size(pic,2) if pic(mm,nn,1)<80||pic(mm,nn,2)>80||pic(mm,nn,3)>100 gsc = 0; pic(mm,nn,:) = [gsc gsc gsc]; end end end %============FAST Corner Detection=========== y=rgb2gray(pic); [yy xx]=size(y); ttl=yy.*xx; thres = 3; for i=4:xx-3 for j=4:yy-3 ctr=0; bts1 = y(j,i) + thres; bts2 = y(j,i) - thres; if y(j-3,i) > bts1 ctr=ctr+1; elseif y(j-3,i) < bts2 ctr=ctr+1; end if y(j+3,i) > bts1 ctr=ctr+1; elseif y(j+3,i) < bts2 ctr=ctr+1; end if y(j,i+3) > bts1 ctr=ctr+1; elseif y(j,i+3) < bts2 ctr=ctr+1; end if y(j,i-3) > bts1 ctr=ctr+1; elseif y(j,i-3) < bts2 ctr=ctr+1; end if ctr>=3 spn(kk,1) = i; spn(kk,2) = j; kk=kk+1; end end end %cari koordinat x kiri [xkiri, k] = min(spn(:,1)); [ii, jj] = ind2sub(size(spn), k); ykiri = spn(ii,2);

62

fast_ykiri(1,1)=ykiri; %cari koordinat x kanan [xkanan, k] = max(spn(:,1)); [iii, jjj] = ind2sub(size(spn), k); ykanan = spn(iii,2); fast_ykanan(1,1)=ykanan; point = [ykanan,xkanan ; ykiri,xkiri]; rata=(ykiri+ykanan)/2; if rata<tengah set(handles.text7, 'String', 'Senyum'); else set(handles.text7, 'String', 'Bukan Senyum'); end waktu=toc; set(handles.text9,'String',waktu); else %=========FAST Corner Detection========= kk=1; pic=y; load skripsi_fast_nocol tengah y=rgb2gray(pic); [yy xx]=size(y); ttl=yy.*xx; thres = 18; for i=4:xx-3 for j=4:yy-3 ctr=0; bts1 = y(j,i) + thres; bts2 = y(j,i) - thres; if y(j-3,i) > bts1 ctr=ctr+1; elseif y(j-3,i) < bts2 ctr=ctr+1; end if y(j+3,i) > bts1 ctr=ctr+1; elseif y(j+3,i) < bts2 ctr=ctr+1; end if y(j,i+3) > bts1 ctr=ctr+1; elseif y(j,i+3) < bts2 ctr=ctr+1; end if y(j,i-3) > bts1 ctr=ctr+1; elseif y(j,i-3) < bts2 ctr=ctr+1; end if ctr>=3 spn(kk,1) = i; spn(kk,2) = j; kk=kk+1; end end end

63

%cari koordinat x kiri [xkiri, k] = min(spn(:,1)); [ii, jj] = ind2sub(size(spn), k); ykiri = spn(ii,2); fast_ykiri(1,1)=ykiri; %cari koordinat x kanan [xkanan, k] = max(spn(:,1)); [iii, jjj] = ind2sub(size(spn), k); ykanan = spn(iii,2); fast_ykanan(1,1)=ykanan; point = [ykanan,xkanan ; ykiri,xkiri]; rata=(ykiri+ykanan)/2; if rata<tengah set(handles.text7, 'String', 'Senyum'); else set(handles.text7, 'String', 'Bukan Senyum'); end waktu=toc; set(handles.text9,'String',waktu); end end end % --- Executes during object creation, after setting all properties. function pushbutton1_CreateFcn(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % --- Executes on button press in radiobutton5. function radiobutton5_Callback(hObject, eventdata, handles) % hObject handle to radiobutton5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of radiobutton5 % --- Executes when selected object is changed in uipanel1. function uipanel1_SelectionChangeFcn(hObject, eventdata, handles) % hObject handle to the selected object in uipanel1 % eventdata structure with the following fields (see UIBUTTONGROUP) % EventName: string 'SelectionChanged' (read only) % OldValue: handle of the previously selected object or empty if none was selected % NewValue: handle of the currently selected object % handles structure with handles and user data (see GUIDATA) if hObject == handles.radiobutton1 colorr = 1; else colorr = 2;

64

end handles.bb=colorr; guidata(hObject,handles);

65

LAMPIRAN B

TABEL HASIL PENGUJIAN PERANGKAT LUNAK

B.1 Tabel Hasil Percobaan Pertama

B.1.1 Metode Harris Corner Detection

Tabel akurasi dan kombinasi parameter yang digunakan pada metode Harris

Corner Detection percobaan pertama dapat dilihat pada Tabel B.1.

Tabel B.1. Akurasi Metode Harris Corner Detection Percobaan Pertama

Sigma k (sensitivitas) TN TP Akurasi (%) Waktu Komputasi (mili detik)

0.5 0.03 5 40 22.5 13.2

0.5 0.04 5 40 22.5 13.2

0.5 0.05 5 40 22.5 13.0

0.5 0.06 4 41 22.5 13.3

0.5 0.07 4 41 22.5 13.0

0.5 0.08 4 41 22.5 12.6

0.5 0.09 5 38 21.5 13.1

0.5 0.1 7 38 22.5 12.6

0.5 0.11 7 39 23 13.8

0.5 0.12 7 39 23 14.9

0.5 0.13 9 36 22.5 14.4

0.5 0.14 7 39 23 14.3

0.5 0.15 8 40 24 14.1

1 0.03 7 42 24.5 30.3

1 0.04 8 41 24.5 23.6

1 0.05 7 42 24.5 29.8

1 0.06 8 42 25 29.9

1 0.07 12 42 27 30.2

1 0.08 14 40 27 29.0

1 0.09 11 40 25.5 29.4

1 0.1 10 40 25 29.9

1 0.11 10 40 25 31.3

1 0.12 11 40 25.5 31.3

1 0.13 11 42 26.5 31.1

1 0.14 13 38 25.5 31.2

1 0.15 12 38 25 31.0

1.5 0.03 8 41 24.5 45.8

1.5 0.04 8 42 25 45.8

1.5 0.05 7 40 23.5 45.5

1.5 0.06 6 41 23.5 45.2

1.5 0.07 8 37 22.5 45.5

66

1.5 0.08 8 37 22.5 45.0

1.5 0.09 8 37 22.5 45.5

1.5 0.1 8 39 23.5 45.4

1.5 0.11 7 40 23.5 46.3

1.5 0.12 8 40 24 45.4

1.5 0.13 8 40 24 44.7

1.5 0.14 7 42 24.5 45.4

1.5 0.15 7 40 23.5 45.5

2 0.03 9 49 29 71.4

2 0.04 9 49 29 70.6

2 0.05 9 48 28.5 70.9

2 0.06 9 49 29 70.6

2 0.07 9 47 28 70.5

2 0.08 10 47 28.5 70.4

2 0.09 10 44 27 70.7

2 0.1 10 43 26.5 70.6

2 0.11 10 45 27.5 69.9

2 0.12 10 45 27.5 7.04

2 0.13 13 44 28.5 71.9

2 0.14 14 41 27.5 70.4

2 0.15 13 35 24 70.7

67

B.1.2 Metode Edge Based Corner Detection

Tabel akurasi dan kombinasi parameter yang digunakan pada metode Edge

Based Corner Detection percobaan pertama dapat dilihat pada Tabel B.2.

Tabel B.2. Akurasi Metode Edge Based Corner Detection Percobaan Pertama

Sigma k (sensitivitas) TN TP Akurasi (%) Waktu Komputasi (mili detik)

0.5 0.03 38 36 37 15.4

0.5 0.04 38 36 37 15.6

0.5 0.05 37 36 36.5 15.7

0.5 0.06 39 36 37.5 15.3

0.5 0.07 37 36 36.5 16.1

0.5 0.08 38 33 35.5 16.0

0.5 0.09 36 34 35 16.6

0.5 0.1 37 39 38 15.1

0.5 0.11 40 37 38.5 19.4

0.5 0.12 40 37 38.5 20.3

0.5 0.13 39 37 38 19.8

0.5 0.14 39 38 38.5 20.0

0.5 0.15 39 37 38 15.7

1 0.03 35 40 37.5 32.7

1 0.04 35 39 37 31.6

1 0.05 33 41 37 32.0

1 0.06 33 41 37 32.7

1 0.07 33 41 37 32.0

1 0.08 33 41 37 32.1

1 0.09 33 41 37 31.9

1 0.1 36 40 38 31.7

1 0.11 33 41 37 36.0

1 0.12 33 42 37.5 36.1

1 0.13 34 40 37 36.9

1 0.14 38 40 39 36.3

1 0.15 35 40 37.5 33.6

1.5 0.03 38 42 40 48.0

1.5 0.04 38 41 39.5 47.8

1.5 0.05 41 42 41.5 48.4

1.5 0.06 41 42 41.5 47.7

1.5 0.07 40 41 40.5 48.1

1.5 0.08 40 43 41.5 47.7

1.5 0.09 40 42 41 47.0

1.5 0.1 40 41 40.5 48.2

1.5 0.11 41 40 40.5 51.1

1.5 0.12 42 38 40 50.9

1.5 0.13 40 36 38 51.5

68

1.5 0.14 41 38 39.5 50.9

1.5 0.15 42 42 42 50.9

2 0.03 41 39 40 71.3

2 0.04 40 38 39 79.9

2 0.05 41 36 38.5 70.1

2 0.06 40 37 38.5 70.4

2 0.07 40 37 38.5 71.4

2 0.08 40 37 38.5 70.7

2 0.09 42 38 40 71.2

2 0.1 43 38 40.5 70.3

2 0.11 43 39 41 75.7

2 0.12 43 38 40.5 76.4

2 0.13 43 38 40.5 75.1

2 0.14 43 39 41 76.3

2 0.15 43 39 41 75.2

69

B.1.3 Metode FAST Corner Detection

Tabel akurasi dan kombinasi parameter yang digunakan pada metode FAST

Corner Detection percobaan pertama dapat dilihat pada Tabel B.3.

Tabel B.3. Akurasi Metode FAST Corner Detection Percobaan Pertama

Threshold TN TP Akurasi (%) Waktu Komputasi (mili detik)

1 38 76 57 21.4

2 45 64 54.5 20.5

3 49 65 57 19.1

4 48 55 51.5 17.6

5 49 47 48 17.2

6 58 50 54 16.6

7 60 51 55.5 14.5

8 64 49 56.5 14.1

9 72 41 56.5 14.1

10 70 48 59 13.9

11 72 41 56.5 14.4

12 67 31 49 13.3

13 70 30 50 13.7

14 72 33 52.5 13.1

15 70 32 51 13.6

16 74 32 53 12.9

17 77 39 58 13.2

18 80 39 59.5 13.1

19 86 30 58 13.1

20 90 23 56.5 13.1

21 79 30 54.5 13.0

22 82 29 55.5 13.0

23 83 33 58 13.0

24 79 28 53.5 13.2

25 60 27 43.5 12.9

70

B.2 Tabel Hasil Percobaan Kedua

B.2.1 Metode Harris Corner Detection

Tabel akurasi dan kombinasi parameter yang digunakan pada metode Harris

Corner Detection percobaan kedua dapat dilihat pada Tabel B.4.

Tabel B.4. Akurasi Metode Harris Corner Detection Percobaan Kedua

Sigma k (sensitivitas) TN TP Akurasi (%) Waktu Komputasi (mili detik)

0.5 0.03 85 46 65.5 45.1

0.5 0.04 86 49 67.5 51.6

0.5 0.05 86 49 67.5 50.6

0.5 0.06 87 49 68 49.4

0.5 0.07 88 49 68.5 44.7

0.5 0.08 88 50 69 48.8

0.5 0.09 88 49 68.5 47.3

0.5 0.1 88 49 68.5 50.2

0.5 0.11 88 49 68.5 50.1

0.5 0.12 85 49 67 49.9

0.5 0.13 86 46 66 49.6

0.5 0.14 86 46 66 50.4

0.5 0.15 86 46 66 48.5

1 0.03 84 41 62.5 65.1

1 0.04 84 44 64 66.6

1 0.05 83 43 63 64.9

1 0.06 84 43 63.5 66.5

1 0.07 84 42 63 62.1

1 0.08 86 41 63.5 64.6

1 0.09 84 43 63.5 59.1

1 0.1 84 41 62.5 65.8

1 0.11 83 42 62.5 66.0

1 0.12 83 44 63.5 67.0

1 0.13 83 43 63 65.2

1 0.14 84 43 63.5 65.5

1 0.15 84 40 62 69.2

1.5 0.03 88 44 66 80.1

1.5 0.04 88 44 66 79.9

1.5 0.05 89 45 67 80.0

1.5 0.06 89 45 67 80.4

1.5 0.07 89 44 66.5 75.6

1.5 0.08 89 44 66.5 81.2

1.5 0.09 88 44 66 80.1

1.5 0.1 88 45 66.5 79.5

1.5 0.11 88 45 66.5 78.4

71

1.5 0.12 89 44 66.5 79.8

1.5 0.13 89 45 67 80.0

1.5 0.14 89 45 67 80.1

1.5 0.15 89 46 67.5 80.6

2 0.03 84 42 63 103.9

2 0.04 83 40 61.5 104.6

2 0.05 84 40 62 103.2

2 0.06 84 41 62.5 105.0

2 0.07 84 41 62.5 103.6

2 0.08 85 40 62.5 104.5

2 0.09 84 40 62 103.4

2 0.1 84 40 62 103.3

2 0.11 84 39 61.5 103.5

2 0.12 85 40 62.5 104.8

2 0.13 85 40 62.5 104.5

2 0.14 84 39 61.5 103.8

2 0.15 82 39 60.5 103.3

72

B.2.2 Metode Edge Based Corner Detection

Tabel akurasi dan kombinasi parameter yang digunakan pada metode Edge

Based Corner Detection percobaan kedua dapat dilihat pada Tabel B.5.

Tabel B.5. Akurasi Metode Edge Based Corner Detection Percobaan Kedua

Sigma k (sensitivitas) TN TP Akurasi (%) Waktu Komputasi (mili detik)

0.5 0.03 81 40 60.5 64.9

0.5 0.04 81 38 59.5 64.0

0.5 0.05 82 40 61 64.9

0.5 0.06 82 38 60 62.8

0.5 0.07 82 38 60 51.3

0.5 0.08 82 38 60 61.6

0.5 0.09 82 37 59.5 63.8

0.5 0.1 82 37 59.5 63.3

0.5 0.11 81 37 59 62.3

0.5 0.12 81 37 59 59.4

0.5 0.13 80 37 58.5 62.6

0.5 0.14 80 37 58.5 65.1

0.5 0.15 80 41 60.5 63.9

1 0.03 81 35 58 78.2

1 0.04 81 36 58.5 78.1

1 0.05 81 36 58.5 78.6

1 0.06 82 36 59 80.0

1 0.07 82 36 59 75.2

1 0.08 82 38 60 75.5

1 0.09 82 38 60 77.7

1 0.1 82 38 60 77.6

1 0.11 82 38 60 77.5

1 0.12 82 39 60.5 78.9

1 0.13 82 39 60.5 77.5

1 0.14 81 41 61 80.0

1 0.15 81 41 61 79.4

1.5 0.03 80 46 63 92.0

1.5 0.04 80 47 63.5 91.1

1.5 0.05 78 47 62.5 89.4

1.5 0.06 77 46 61.5 91.4

1.5 0.07 78 44 61 91.4

1.5 0.08 77 45 61 90.7

1.5 0.09 79 45 62 94.5

1.5 0.1 79 45 62 102.9

1.5 0.11 79 45 62 92.5

1.5 0.12 79 44 61.5 93.0

1.5 0.13 78 44 61 89.5

73

1.5 0.14 78 43 60.5 90.0

1.5 0.15 79 42 60.5 92.7

2 0.03 80 38 59 117.8

2 0.04 81 37 59 115.7

2 0.05 80 38 59 115.7

2 0.06 81 36 58.5 115.5

2 0.07 80 36 58 114.9

2 0.08 80 38 59 115.8

2 0.09 79 37 58 114..2

2 0.1 79 38 58.5 118.6

2 0.11 79 37 58 115.8

2 0.12 82 36 59 115.8

2 0.13 81 38 59.5 114.3

2 0.14 82 38 60 116.9

2 0.15 82 36 59 114.7

74

B.2.3 Metode FAST Corner Detection

Tabel akurasi dan kombinasi parameter yang digunakan pada metode FAST

Corner Detection percobaan kedua dapat dilihat pada Tabel B.6.

Tabel B.6. Akurasi Metode FAST Corner Detection Percobaan Kedua

Threshold TN TP Akurasi (%) Waktu Komputasi (mili detik)

1 91 41 66 47.8

2 91 39 65 47.6

3 91 40 65.5 46.6

4 88 39 63.5 46.8

5 91 36 63.5 47.3

6 88 35 61.5 47.1

7 88 35 61.5 47.3

8 91 36 63.5 47.1

9 91 35 63 47.0

10 91 32 61.5 47.0

11 91 35 63 46.2

12 91 32 61.5 47.0

13 91 30 60.5 46.9

14 91 28 59.5 46.5

15 90 29 59.5 46.4

16 90 27 58.5 47.0

17 90 28 59 46.7

18 90 27 58.5 47.1

19 90 25 57.5 46.5

20 90 25 57.5 46.6

21 89 25 57 47.0

22 88 25 56.5 46.7

23 87 25 56 48.1

24 84 25 54.5 46.5

25 85 23 54 46.8

75

B.3 Tabel Hasil Percobaan Ketiga

B.3.1 Metode Harris Corner Detection

Tabel akurasi dan kombinasi parameter yang digunakan pada metode Harris

Corner Detection percobaan ketiga dapat dilihat pada Tabel B.7.

Tabel B.7. Akurasi Metode Harris Corner Detection Percobaan Ketiga

Sigma k (sensitivitas) TN TP Akurasi (%) Waktu Komputasi (mili detik)

0.5 0.03 85 61 73 45.1

0.5 0.04 86 61 73.5 51.6

0.5 0.05 86 66 76 50.6

0.5 0.06 87 66 76.5 49.4

0.5 0.07 88 66 77 44.7

0.5 0.08 88 67 77.5 49.2

0.5 0.09 88 66 77 47.3

0.5 0.1 88 66 77 50.2

0.5 0.11 88 66 77 50.1

0.5 0.12 85 66 75.5 49.9

0.5 0.13 86 62 74 49.6

0.5 0.14 86 62 74 50.4

0.5 0.15 86 62 74 48.5

1 0.03 84 54 69 65.1

1 0.04 84 59 71.5 66.6

1 0.05 83 57 70 64.9

1 0.06 84 56 70 66.5

1 0.07 84 55 69.5 62.1

1 0.08 86 55 70.5 64.6

1 0.09 84 56 70 59.1

1 0.1 84 54 69 65.8

1 0.11 83 55 69 66.0

1 0.12 83 58 70.5 67.0

1 0.13 83 57 70 65.2

1 0.14 84 57 70.5 65.5

1 0.15 84 53 68.5 69.2

1.5 0.03 88 61 74.5 80.1

1.5 0.04 88 61 74.5 79.9

1.5 0.05 89 62 75.5 80.0

1.5 0.06 89 62 75.5 80.4

1.5 0.07 89 61 75 75.6

1.5 0.08 89 61 75 81.2

1.5 0.09 88 61 74.5 80.1

1.5 0.1 88 62 75 79.5

1.5 0.11 88 62 75 78.4

76

1.5 0.12 89 59 74 79.8

1.5 0.13 89 59 74 80.0

1.5 0.14 89 59 74 80.1

1.5 0.15 89 60 74.5 80.6

2 0.03 84 58 71 103.2

2 0.04 83 56 69.5 104.6

2 0.05 84 57 70.5 103.2

2 0.06 84 57 70.5 105.0

2 0.07 84 57 70.5 103.6

2 0.08 85 56 70.5 104.5

2 0.09 84 55 69.5 103.4

2 0.1 84 55 69.5 103.3

2 0.11 84 54 69 103.5

2 0.12 85 55 70 104.8

2 0.13 85 54 69.5 104.5

2 0.14 84 53 68.5 103.8

2 0.15 82 54 68 103.3

77

B.3.2 Metode Edge Based Corner Detection

Tabel akurasi dan kombinasi parameter yang digunakan pada metode Edge

Based Corner Detection percobaan ketiga dapat dilihat pada Tabel B.8.

Tabel B.8. Akurasi Metode Edge Based Corner Detection Percobaan Ketiga

Sigma k (sensitivitas) TN TP Akurasi (%) Waktu Komputasi (mili detik)

0.5 0.03 81 54 67.5 64.9

0.5 0.04 81 51 66 64.6

0.5 0.05 82 54 68 64.9

0.5 0.06 82 51 66.5 62.8

0.5 0.07 82 51 66.5 51.3

0.5 0.08 82 51 66.5 61.6

0.5 0.09 82 51 66.5 63.8

0.5 0.1 82 51 66.5 63.3

0.5 0.11 81 50 65.5 62.3

0.5 0.12 81 51 66 59.4

0.5 0.13 80 51 65.5 62.6

0.5 0.14 80 51 65.5 65.1

0.5 0.15 80 55 67.5 63.9

1 0.03 81 50 65.5 78.2

1 0.04 81 50 65.5 78.1

1 0.05 81 49 65 78.6

1 0.06 82 49 65.5 80.0

1 0.07 82 49 65.5 75.2

1 0.08 82 52 67 75.5

1 0.09 82 51 66.5 77.7

1 0.1 82 51 66.5 77.6

1 0.11 82 51 66.5 77.5

1 0.12 82 52 67 78.9

1 0.13 82 52 67 77.5

1 0.14 81 54 67.5 80.0

1 0.15 81 55 68 79.4

1.5 0.03 80 59 69.5 91.0

1.5 0.04 80 60 70 90.1

1.5 0.05 78 60 69 89.4

1.5 0.06 77 59 68 91.4

1.5 0.07 78 57 67.5 91.4

1.5 0.08 77 58 67.5 90.7

1.5 0.09 79 58 68.5 94.5

1.5 0.1 79 58 68.5 102.9

1.5 0.11 79 58 68.5 92.5

1.5 0.12 79 57 68 93.0

1.5 0.13 78 58 68 89.5

78

1.5 0.14 78 56 67 90.0

1.5 0.15 79 56 67.5 92.7

2 0.03 80 53 66.5 117.8

2 0.04 81 53 67 115.7

2 0.05 80 54 67 115.7

2 0.06 81 52 66.5 115.5

2 0.07 80 52 66 114.9

2 0.08 80 54 67 115.8

2 0.09 79 53 66 114.2

2 0.1 79 54 66.5 118.6

2 0.11 79 52 65.5 115.8

2 0.12 82 51 66.5 115.8

2 0.13 81 53 67 114.3

2 0.14 82 52 67 116.9

2 0.15 82 50 66 114.7

79

B.3.3 Metode FAST Corner Detection

Tabel akurasi dan kombinasi parameter yang digunakan pada metode FAST

Corner Detection percobaan ketiga dapat dilihat pada Tabel B.9.

Tabel B.9. Akurasi Metode FAST Corner Detection Percobaan Ketiga

Threshold TN TP Akurasi (%) Waktu Komputasi (mili detik)

1 91 54 72.5 47.7

2 91 52 71.5 47.5

3 91 54 72.5 46.6

4 88 53 70.5 46.7

5 91 50 70.5 47.3

6 88 49 68.5 47.0

7 88 50 69 47.2

8 91 51 71 47.1

9 91 50 70.5 47.0

10 91 47 69 46.9

11 91 51 71 46.2

12 91 47 69 46.9

13 91 46 68.5 46.9

14 91 43 67 46.5

15 90 44 67 46.3

16 90 41 65.5 47.0

17 90 43 66.5 46.6

18 90 41 65.5 47.0

19 90 40 65 46.4

20 90 40 65 46.6

21 89 40 64.5 46.9

22 88 40 64 46.7

23 87 40 63.5 48.1

24 84 41 62.5 46.5

25 85 39 62 46.8

80

B.4 Tabel Hasil Penambahan Batas Nilai Rata-rata Metode FAST Corner

Detection

Tabel akurasi dan kombinasi parameter yang digunakan pada metode FAST

Corner Detection dengan penambahan nilai koordinat x rata-rata ekspresi tersenyum

sebanyak 2 piksel dapat dilihat pada Tabel B.10.

Tabel B.10. Akurasi Metode FAST Corner Detection dengan Penambahan

Batas Nilai Rata-rata

Threshold TN TP Akurasi (%) Waktu Komputasi (mili detik)

1 94 66 80 45.7

2 94 62 78 44.8

3 94 64 79 45.0

4 94 68 81 44.4

5 96 64 80 43.6

6 94 58 76 44.0

7 92 56 74 44.5

8 98 58 78 44.2

9 98 58 78 42.9

10 98 58 78 46.2

11 98 54 76 43.8

12 98 54 76 43.1

13 98 50 74 43.0

14 98 46 72 42.2

15 98 46 72 44.7

16 98 46 72 48.4

17 98 46 72 46.9

18 98 46 72 44.7

19 98 44 71 46.4

20 98 46 72 44.7

21 98 46 72 46.9

22 94 44 69 45.7

23 94 44 69 46.8

24 88 46 67 46.9

25 88 46 67 46.4

81

LAMPIRAN C

PENURUNAN HUBUNGAN DETERMINAN, TRACE DAN �� METODE

HARRIS CORNER DETECTION

Persamaan tanggapan sudut Harris dapat dihitung dengan mengurangkan

determinan dari matriks M dengan trace kuadratnya, dimana � = (15)

dan persamaan tanggapan sudut Harris dapat ditulis seperti persamaan (16) �� = � � − � × �� 2(�) (16)

Pada tulisannya, Harris menyebutkan untuk mengetahui suatu titik sudut atau

bukan adalah dengan menghitung eigenvalue dari matriks M, dengan syarat sebagai

berikut:

1. �1 dan �2 bernilai 0, maka tidak ada perubahan intensitas di titik tersebut.

2. �1 ≫ 0 � �2 ≈ 0 atau sebaliknya, maka titik merupakan tepian.

3. �1 � �2 bernilai ≫ 0, maka titik merupakan sudut.

Akan tetapi menghitung eigenvalue akan memakan waktu komputasi yang

sangat panjang, maka Harris membuat persamaan baru yang bisa merepresentasikan

eigenvalue tanpa harus memperhitungkan nilai eigenvalue itu sendiri. Secara

matematis terdapat hubungan antara eigenvalue dengan determinan dan trace suatu

matriks seperti dapat dilihat pada persamaan (17) dan persamaan (18) � � = �1 × �2 (17) �� � = �1 + �2 (18)

Sehingga persamaan tanggapan detektor Harris dapat dituliskan menjadi

persamaan (19) �� = �1 × �2 − � × (�1 + �2)2 (19)

Penurunan persamaan �� dengan memperhitungkan determinan matriks M dan trace-

nya dapat dilihat pada persamaan (20) �� = � � − � × �� 2 �

= − 2 − � × ( + )2

= − 2 − � × ( 2 + 2 + 2)

= − 2 − � 2 − 2� − � 2 (20)

82

Persamaan (21) merupakan perhitungan eigenvalue dari matriks M � = − � − � � � = 0 (21)

− � − � − 2 = 0 − + � + �2 − 2 = 0 �2 − + � + − 2 = 0

Nilai eigenvalue �1 dan �2 dapat dihitung menggunakan persamaan (22) �1,2 =− ± 2−4

2 (22)

dengan mensubstitusi

= 1

= −( + )

= ( − 2)

diperoleh � 1,2 =+ ± (− − )2−4(1)( − 2)

2(1)

=+ ± 2+2 + 2−4 +4 2

2

=+ ± 2−2 + 2+4 2

2

sehingga �1 =+ + 2−2 + 2+4 2

2 (23) �2 =

+ − 2−2 + 2+4 2

2 (24)

Substitusi persamaan (23) dan (24) ke persamaan (19) �� = �1 × �2 − � × (�1 + �2)2

=+ + 2−2 + 2+4 2

+ − 2−2 + 2+4 2

2−

� × (+

2+

+

2)2

=( + )2−( 2−2 + 2+4 2)

4− �( + )2

=2+2 + 2− 2+2 − 2−4 2

4− �( 2 + 2 + 2)

=4 −4 2

4− � 2 − 2� − � 2

= − 2 − � 2 − 2� − � 2 (25)

83

Dapat dilihat bahwa persamaan (25) yang merupakan penurunan dari

perhitungan eigenvalue �1 dan �2 menghasilkan nilai yang sama dengan persamaan

(20) yang merupakan perhitungan determinan dan trace dari matriks M. Dari

penurunan persamaan diatas juga dapat disimpulkan perhitungan tanggapan sudut

Harris memerlukan waktu komputasi yang lebih singkat dibandingkan menghitung

eigenvalue terlebih dahulu.

84

LAMPIRAN D

CONTOH DATASET SISTEM PENDETEKSI SENYUM

D.1 Dataset Pelatihan

85

86

87

88

D.2 Dataset Pengujian Ekspresi Tersenyum Percobaan Pertama

89

90

D.3 Dataset Pengujian Ekspresi Tersenyum Percobaan Ketiga

91

92

D.4 Dataset Pengujian Ekspresi Bukan Tersenyum

93

94

D.5 Dataset Pengujian Citra dengan Subyek Lebih Dari Satu

95