Anda di halaman 1dari 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
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
v
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
vi
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

vii
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

viii
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

ix
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

x
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 ditoler ansi
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
yr at a rata-rata koordinat y citra bibir pelatihan
yr at 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

xi
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 titik 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 titik 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

xii
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

xiii
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

1
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.

2
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.

3
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.

4
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

5
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

6
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].

7
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.

8
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
2 � 2
1,0 = 3
=1
3
=1 , +1 − , ≈ 9
=1 (4)

dengan,

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

sedangkan persamaan variasi intensitas yang mengalami pergeseran ke arah sumbu y
ditunjukkan pada Persamaan (5)
� 2
0,1 = 3
=1
3
=1( +1, − , )2 ≈ 9
=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,
� 2
A = ∗

� 2
D = ∗

� �
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

9
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.

10
(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.

11
1 0 1  1 2 1
Sv   2 0 2  Sh   0 0 0  (11)
1 0 1  1 2 1 

= ( ∗ )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

12
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, < − > +
= (13)
0, ℎ� �
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

13
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

14
�+
= �+ �+ +
(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

15
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

16
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.

Mulai

Masukan
dir = citra bibir yang
dideteksi dengan
metode Viola Jones

y=imread(dir)

pic=y
mm=1
nn=1

pic(mm,nn,1)<80
pic(mm,nn,2)>80
pic(mm,nn,3)>100

Ya
Tidak

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

nn=nn+1

nn=size(pic,2)?

Ya

mm=mm+1

Tidak

mm=size(pic,1)?

Ya

Selesai

Gambar 3.3. Diagram Alir Pra Proses Color Segmentation

17
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

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

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

level=graythresh(pic) Ixy=conv2(Ix.*Iy,g,’same’)
bw=im2bw(pic,level)
im=double(bw(:,:,1))

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

sigma=1
k=0.09
dx=[-1 0 1; -1 0 1; -1 0 1] [r,c,max_local]=findLocalMaximum(cim,3*sigma)
dy=dx’

thres=0.01*max(max_local(:))
Ix=conv2(im,dx,’same’)

[r,c]=find(max_local>=thres)
Iy=conv2(im,dy,’same’)

points=[r,c]
g=fspecial(‘gaussian’,max
(1,fix(6*sigma+1)),sigma)

Selesai

Gambar 3.4. Diagram Alir Metode Harris Corner Detection

18
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 2
dir=direktori citra
bibir yang telah
diekstrak

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

pic=imread(dir)

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

level=graythresh(pic)
bw=im2bw(pic,level)
bw3=edge(bw,’sobel’) Ixy=conv2(Ix.*Iy,g,’same’)
im=double(bw3(:,:,1))

cim=(Ix2.*Iy2-Ixy.^2)-k*(Ix2+Iy2).^2
sigma=1
k=0.09
dx=[-1 0 1; -1 0 1; -1 0 1]
dy=dx’
[r,c,max_local]=findLocalMaximum(cim,3*sigma)

Ix=conv2(im,dx,’same’)
thres=0.01*max(max_local(:))

Iy=conv2(im,dy,’same’)
[r,c]=find(max_local>=thres)

g=fspecial(‘gaussian’,max points=[r,c]
(1,fix(6*sigma+1)),sigma)

Selesai
2

Gambar 3.5. Diagram Alir Metode Edge Based Corner Detection

19
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

Masukan
dir=citra bibir

pic(j,i-3)>bts1 ctr=ctr+1

pic=imread(dir)

pic(j,i-3)<bts2 ctr=ctr+1
pic=rgb2gray(pic)

thres=11
ctr=0 pic(j,i+3)>bts1 ctr=ctr+1
kk=0
[yy xx]=size(pic)

i=4
j=4 pic(j,i+3)<bts2 ctr=ctr+1

bts1=pic(j,i)+thres
bts2=pic(j,i)-thres
Ctr>=4?

Ya
ctr=ctr+1 Ya pic(j-3,i)>bts1 4
kk=kk+1

Tidak

ctr=ctr+1 Ya pic(j-3,i)<bts2
j=j+1 Tidak j=yy-3?

4
Tidak Ya

ctr=ctr+1 Ya pic(j+3,i)>bts1 i=i+1 Tidak i=xx-3?

Tidak
Ya

ctr=ctr+1 Ya pic(j+3,i)<bts2 3
Selesai

Gambar 3.6. Diagram Alir metode FAST Corner Detection

20
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 Bukan Tersenyum

Ya

Ekspresi
Tersenyum

Selesai

Gambar 3.7. Diagram Alir Proses Pendeteksian Senyum

21
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.

22
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.

23
Gambar 3.11. Graphical User Interface Skripsi

Gambar 3.12. Contoh Eksekusi Graphical User Interface Skripsi.

24
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.

25
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.

26
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.
100
90
80
70
Akurasi (%)

60
Sigma 0.5
50
40 Sigma 1
30 29% Sigma 1.5
20 Sigma 2
10
0
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
Konstanta Sensitivitas (k)

Gambar 4.1. Grafik Harris Corner Detection Percobaan Pertama

100
90
80
70
Akurasi (%)

60
50
40
30 29%
20
10
0
0.5 1 1.5 2
Sigma

Gambar 4.2. Grafik Perbandingan Akurasi Terhadap Sigma Metode Harris


Corner Detection dengan k = 0.04 Percobaan Pertama

27
100
90
80
70
Akurasi (%) 60
50
40
30
29%
20
10
0
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
Konstanta Sensitvitas (k)

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.

28
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.

29
100
90
80
70
Akurasi (%)

60
Sigma 0.5
50
42% Sigma 1
40
30 Sigma 1.5
20 Sigma 2
10
0
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
Konstanta Sensitivitas (k)

Gambar 4.6. Grafik Edge Based Corner Detection Percobaan Pertama

100
90
80
70
Akurasi (%)

60
50
42%
40
30
20
10
0
0.5 1 1.5 2
Sigma

Gambar 4.7. Grafik Perbandingan Akurasi Terhadap Sigma Metode Edge Based
Corner Detection dengan k = 0.15 Percobaan Pertama

30
100
90
80
70
Akurasi (%)
60
50
42%
40
30
20
10
0
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
Konstanta Sensitivitas (k)

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.

31
100
90
80
70
Akurasi (%)

60 59.5%
50
40
30
20
10
0
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
Batas Ambang

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.

32
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.

100
90
80
70 69%
Akurasi (%)

60
Sigma 0.5
50
40 Sigma 1
30 Sigma 1.5
20 Sigma 2
10
0
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
Konstanta Sensitivitas (k)

Gambar 4.11. Grafik Harris Corner Detection Percobaan Kedua

33
100
90
80
70 69%
Akurasi (%) 60
50
40
30
20
10
0
0.5 1 1.5 2
Sigma

Gambar 4.12. Grafik Perbandingan Akurasi Terhadap Sigma Metode Harris


Corner Detection Dengan k = 0.08 Percobaan Kedua

100
90
80
70 69%
Akurasi (%)

60
50
40
30
20
10
0
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
Konstanta Sensitivitas (k)

Gambar 4.13. Grafik Perbandingan Akurasi Terhadap k Metode Harris Corner


Detection Dengan Sigma = 0.5 Percobaan Kedua

34
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.

35
100
90
80
70
63.5%
Akurasi (%)

60
Sigma 0.5
50
40 Sigma 1
30 Sigma 1.5
20 Sigma 2
10
0
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
Konstanta Sensitivitas (k)

Gambar 4.15. Grafik Edge Based Corner Detection Percobaan Kedua

100
90
80
70 63.5%
Akurasi (%)

60
50
40
30
20
10
0
0.5 1 1.5 2
Sigma

Gambar 4.16. Grafik Perbandingan Akurasi Terhadap Sigma Metode Edge Based
Corner Detection dengan k = 0.04 Percobaan Kedua

36
100
90
80
70
Akurasi (%) 63.5%
60
50
40
30
20
10
0
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
Konstanta Sensitivitas (k)

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.

100
90
80
70 66%
Akurasi (%)

60
50
40
30
20
10
0
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
Batas Ambang

Gambar 4.18. Grafik FAST Corner Detection Percobaan Kedua

37
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

38
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.

100
90
80 77.5%
70
Akurasi (%)

60
Sigma 0.5
50
40 Sigma 1
30 Sigma 1.5
20 Sigma 2
10
0
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
Konstanta Sensitivitas (k)

Gambar 4.20. Grafik Harris Corner Detection pada Percobaan Ketiga

39
100
90
80 77.5%
70
Akurasi (%)
60
50
40
30
20
10
0
0.5 1 1.5 2
Sigma

Gambar 4.21. Grafik Perbandingan Akurasi Terhadap Sigma Metode Harris Corner
Detection dengan k = 0.08 Percobaan Ketiga

100
90
80 77.5%
70
Akurasi (%)

60
50
40
30
20
10
0
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
Konstanta Sensitivitas (k)

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

40
Detection pada percobaan ketiga dapat dilihat pada Gambar 4.23, Gambar 4.24 dan
Gambar 4.25.

100
90
80
70 70%
Akurasi (%)

60
Sigma 0.5
50
40 Sigma 1
30 Sigma 1.5
20 Sigma 2
10
0
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
Konstanta Sensitivitas (k)

Gambar 4.23. Grafik Edge Based Corner Detection pada Percobaan Ketiga

100
90
80
70
70%
Akurasi (%)

60
50
40
30
20
10
0
0.5 1 1.5 2
Sigma

Gambar 4.24. Grafik Perbandingan Akurasi Terhadap Sigma Metode Edge Based
Corner Detection dengan k = 0.04 Percobaan Ketiga

41
100

80
70%
Akurasi (%)
60

40

20

0
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
Konstanta Sensitivitas (k)

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.

100
90
80
72.5%
70
Akurasi (%)

60
50
40
30
20
10
0
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
Batas Ambang

Gambar 4.26. Grafik FAST Corner Detection pada Percobaan Ketiga

42
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)


Harris Corner Detection 29 70.6
Percobaan 1 Edge Based Corner Detection 42 50.9
FAST Corner Detection 59.5 13.1
Harris Corner Detection 69 48.8
Percobaan 2 Edge Based Corner Detection 63.5 91.1
FAST Corner Detection 66 47.8
Harris Corner Detection 77.5 49.2
Percobaan 3 Edge Based Corner Detection 70 90.1
FAST Corner Detection 72.5 46.6

43
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

44
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.

45
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.

46
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.

47
[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

48
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(:));

49
%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(:));

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_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

51
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);

52
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);

53
%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

54
% --- 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)

55
% 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];

56
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

57
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

58
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');

59
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);

60
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);

61
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

62
%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;

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

64
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

65
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

66
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

67
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

68
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

69
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

70
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

71
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

72
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

73
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

74
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

75
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

76
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

77
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

78
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

79
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

80
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)

81
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)
− ± 2 −4
�1,2 = (22)
2

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

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

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

sehingga
+ + 2 −2 + 2 +4 2
�1 = 2
(23)
+ − 2 −2 + 2 +4 2
�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 + 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)

82
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.

83
LAMPIRAN D
CONTOH DATASET SISTEM PENDETEKSI SENYUM

D.1 Dataset Pelatihan

84
85
86
87
D.2 Dataset Pengujian Ekspresi Tersenyum Percobaan Pertama

88
89
D.3 Dataset Pengujian Ekspresi Tersenyum Percobaan Ketiga

90
91
D.4 Dataset Pengujian Ekspresi Bukan Tersenyum

92
93
D.5 Dataset Pengujian Citra dengan Subyek Lebih Dari Satu

94
95