• Tidak ada hasil yang ditemukan

Pengenalan Gerakan Tangan Manusia Untuk Interaksi Manusia-Komputer

N/A
N/A
Protected

Academic year: 2016

Membagikan "Pengenalan Gerakan Tangan Manusia Untuk Interaksi Manusia-Komputer"

Copied!
120
0
0

Teks penuh

(1)

SKRIPSI

TENGKU CHAIRUNNISA 111402049

PROGRAM STUDI TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(2)

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi

TENGKU CHAIRUNNISA 111402049

PROGRAM STUDI S1 TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(3)

Judul : PENGENALAN GERAKAN TANGAN MANUSIA UNTUK INTERAKSI MANUSIA-KOMPUTER

Kategori : SKRIPSI

Nama : TENGKU CHAIRUNNISA

Nomor Induk Mahasiswa : 111402049

Program Studi : S1 TEKNOLOGI INFORMASI

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI UNIVERSITAS SUMATERA UTARA

Komisi Pembimbing :

Diketahui/ disetujui oleh

Program Studi S1 Teknologi Informasi Ketua,

Muhammad Anggia Muchtar, ST., MM.IT NIP. 19800110 200801 1 010

Pembimbing 2

Dani Gunawan, ST., M.T. NIP. 19820915 201212 1 002

Pembimbing 1

(4)

PENGENALAN GERAKAN TANGAN MANUSIA UNTUK INTERAKSI MANUSIA-KOMPUTER

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, 26 November 2015

(5)

Puji dan syukur penulis sampaikan ke hadirat Tuhan Yang Maha Esa yang telah memberikan rahmat serta restu-Nya sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Teknologi Informasi.

Pertama, penulis ingin mengucapkan terima kasih kepada Bapak Romi Fadillah Rahmat, B.Comp.Sc. M.Sc selaku pembimbing pertama dan Bapak Dani Gunawan, ST., M.T. selaku pembimbing kedua yang telah meluangkan waktu dan tenaganya untuk membimbing penulis dalam penelitian serta penulisan skripsi ini. Tanpa inspirasi serta motivasi yang diberikan dari kedua pembimbing, tentunya penulis tidak akan dapat menyelesaikan skripsi ini. Penulis juga mengucapkan terima kasih kepada Bapak Prof. Dr. Opim Salim Sitompul, M.Sc sebagai dosen pembanding pertama dan Ibu Dr. Erna Budhiarti Nababan, M.IT sebagai dosen pembanding kedua yang telah memberikan masukan serta kritik yang bermanfaat dalam penulisan skripsi ini. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Program Studi Teknologi Informasi, Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi, dan semua dosen serta pegawai di lingkungan program studi Teknologi Informasi, yang telah membantu serta membimbing penulis selama proses perkuliahan.

Penulis tentunya tidak lupa berterima kasih kepada kedua orang tua penulis, yaitu Bapak Tengku Syaiful Masudi dan Ibu Sri Banun yang telah membesarkan penulis dengan sabar dan penuh cinta, serta doa dari mereka yang selalu menyertai selama ini. Terima kasih juga penulis ucapkan kepada abang penulis Tengku Ahmad Fauzan dan adik penulis Tengku Muhammad Aulia Fitra, yang selalu memberikan dukungan kepada penulis. Penulis juga berterima kasih kepada seluruh anggota keluarga penulis yang namanya tidak dapat disebutkan satu persatu.

(6)

ABSTRAK

Gerakan tangan manusia memiliki peran yang penting dalam berinteraksi. Pengenalan gerakan tangan manusia saat ini merupakan area aktif dalam penelitian untuk interaksi manusia dan komputer. Pengenalan gerakan tangan manusia telah diteliti sebelumnya dengan berbagai teknik dan alat pendukung yang berbeda, seperti Kinect dan data glove. Adapun berbagai tantangan yang dihadapi dalam mengenali gerakan tangan manusia yaitu mencakup permasalahan kondisi iluminasi yang bervariasi, rotasi tangan, latar belakang (background), ukuran tangan, dan klasifikasi atau translasi tangan. Pada penelitian ini, peneliti menggunakan teknik-teknik Computer Vision untuk mengenali gerakan tangan sebagai alat interaksi manusia dan komputer untuk mengendalikan berbagai aplikasi, yaitu aplikasi pengolah presentasi, pemutar musik, pemutar video dan PDF reader dengan kondisi tangan kosong dan latar belakang yang kompleks melalui kamera web. Untuk menangani permasalahan kondisi tangan dan latar belakang tersebut juga dibutuhkan suatu metode tertentu. Metode yang diajukan oleh peneliti adalah penggunaan ruang warna campuran, yaitu HS-CbCr untuk pendeteksian warna kulit dan teknik average background untuk menangani masalah background. Hasil pengujian menunjukkan bahwa metode yang diajukan mampu mengenali gerakan tangan manusia dan menghasilkan tingkat akurasi mencapai 96.87% dalam kondisi pencahayaan yang baik. Keakuratan pengenalan gerakan tangan manusia dipengaruhi kondisi pencahayaan, semakin sedikit perubahan iluminasi yang terjadi, semakin tinggi tingkat akurasi yang dihasilkan.

(7)

HAND GESTURE RECOGNITION FOR HUMAN-COMPUTER INTERACTION

ABSTRACT

Hand gesture has a significant role in human’s interaction. Hand gesture recognition nowadays is an active research area for human-computer interaction. In previous research for hand gesture recognition, they used various techniques and tools such as Kinect and data glove. Hand gesture recognition systems confronts many challenges, such as variation of illumination conditions, rotation problem, background problem, scale problem, and classification or translation problem. In this research, we use computer vision techniques to recognize hand gesture for human-computer interaction in controlling various apps, such as slideshow presentation, music player, video player, and PDF reader app with bare hand and in complex background via web camera. Therefore, a method is required to cope with background and skin detection problem. In our proposed method, we combine two color spaces become HS-CbCr for skin detection and use averaging background for solving the background problem. The result shows that the proposed method is able to recognize hand gesture and get up to 96.87% correct results on good lighting condition. The accuracy of hand gesture recognition is influenced by lighting condition. The lower changing illumination on video occurs, the higher accuracy of hand gesture recognition is generated.

(8)

DAFTAR ISI

1.3 Tujuan Penelitian 3

1.4 Batasan Masalah 3

1.5 Manfaat Penelitian 4

1.6 Metodologi Penelitian 4

1.7 Sistematika Penulisan 5

BAB 2 LANDASAN TEORI 7

2.1 Computer Vision 7

2.2 Pengolah Citra Digital 7

2.2.1 Resizing 7

2.2.2 Color Space Conversion 8

2.2.2.1 RGB to Grayscale Conversion 8

2.2.2.2 Normalized RGB 8

2.2.2.3 RGB to HSV Conversion 9

2.2.2.4 RGB to YcbCr Conversion 10

2.2.3 Perbaikan Citra (Image Enhancement) 11

(9)

2.2.3.2 Dilation 13

2.2.3.3 Gaussian Blur 14

2.2.4 Thresholding 14

2.2.5 Inversi 18

2.3 Averaging Background 18

2.3.1 Background Subtraction 19

2.3.2 Frame Differencing 20

2.4 Ekstraksi Fitur 21

2.4.1 Contour 21

2.4.2 Convex-Hull 21

2.4.3 Convexity Defects 22

2.4.4 Moment 23

2.4.5 Center of Gravity 23

2.5 OpenCV 24

2.6 Penelitian Terdahulu 25

BAB 3 ANALISIS DAN PERANCANGAN SISTEM 28

3.1 Data yang Digunakan 28

3.2 Analisis Sistem 29

3.2.1 Skin Detection 30

3.2.1.1 Resizing 31

3.2.1.2 Normalisasi RGB 31

3.2.1.3 RGB to HSV Conversion 32

3.2.1.4 RGB to YCbCr Conversion 32

3.2.1.5 Skin Color Bounding Rules 33

3.2.1.6 Skin Segmentation 33

3.2.2 Average Background 34

3.2.2.1 RGB to Grayscale Conversion 34

3.2.2.2 Frame Differencing 36

3.2.2.3 Akumulasi Background 38

3.2.2.4 Thresholding 39

(10)

3.2.3 Perbaikan Citra (Image Enhancement) 41

3.2.3.1 Erosion 41

3.2.3.2 Dilation 42

3.2.3.3 Gaussian Blur 43

3.2.4 Ekstraksi Fitur 44

3.2.4.1 Contour 44

3.2.4.2 Convex-Hull 45

3.2.4.3 Convexity Defects 47

3.2.5 Klasifikasi 48

3.3 Perancangan Sistem 52

3.3.1 Perancangan Antarmuka 52

3.3.1.1 Rancangan Tampilan Halaman Splash 52 3.3.1.2 Rancangan Tampilan Halaman Menu 53 3.3.1.3 Rancangan Tampilan Halaman Utama 54 3.3.1.4 Rancangan Tampilan Halaman Minimized 55

BAB 4 IMPLEMENTASI DAN PENGUJIAN 57

4.1 Implementasi Sistem 57

4.1.1 Spesifikasi perangkat keras dan perangkat lunak yang digunakan

57

4.1.2 Implementasi perancangan antarmuka 58

4.2 Prosedur Operasional 62

4.2.1 Pengendalian Aplikasi Pengolah Presentasi 63

4.2.2 Pengendalian Aplikasi PDF Reader 64

4.2.3 Pengendalian Aplikasi Pemutar Musik 65

4.2.4 Pengendalian Aplikasi Pemutar Video 66

4.3 Pengujian Sistem 59

4.2.1 Pengujian Hasil Pendeteksian Warna Kulit 59

4.2.2 Pengujian Hasil Ekstraksi Fitur 68

(11)

BAB 5 KESIMPULAN DAN SARAN 97

5.1 Kesimpulan 97

5.2 Saran 98

(12)

DAFTAR TABEL

Hal.

Tabel 2.1. Penelitian terdahulu 26

Tabel 3.1. Matriks citra warna (RGB) ukuran 5x5 piksel 34 Tabel 3.2. Hasil konversi citra warna menjadi citra keabuan 34

Tabel 3.3. Aturan arah & rata-rata derajat 50

Tabel 3.4. Gerakan tangan dan perintah aplikasi 50

Tabel 4.1. Fungsi keyboard dan gerakan tangan pada aplikasi pengolah

presentasi 64

Tabel 4.2. Fungsi keyboard dan gerakan tangan pada aplikasi PDF reader 65 Tabel 4.3. Fungsi keyboard dan gerakan tangan pada aplikasi pemutar musik 65 Tabel 4.4. Fungsi keyboard dan gerakan tangan pada aplikasi pemutar video 67

Tabel 4.5. Ukuran kinerja hasil pengujian 68

Tabel 4.6. Persentase hasil pengujian pendeteksian warna kulit menggunakan

HGR dataset kondisi I 68

Tabel 4.7. Persentase hasil pengujian pendeteksian warna kulit menggunakan

HGR dataset kondisi II 69

Tabel 4.8. Persentase hasil pengujian pendeteksian warna kulit menggunakan

HGR dataset kondisi III 70

Tabel 4.9. Rata-rata akurasi hasil pengujian 72

Tabel 4.10. Hasil pengujian waktu pendeteksian convexity defects 76

Tabel 4.11. Hasil pengujian untuk ruangan A 89

(13)

DAFTAR GAMBAR

Hal. Gambar 2.1. Erosion : mengambil nilai minimum daerah kernel B (Bradski &

Kaehler, 2008) 12

Gambar 2.2. Dilation : mengambil nilai maximum daerah kernel B (Bradski &

Kaehler, 2008) 13

Gambar 2.3. Threshold Binary (diambil dari www.docs.opencv.org) 15 Gambar 2.4. Threshold Inverted (diambil dari www.docs.opencv.org) 16 Gambar 2.5. Threshold Truncate (diambil dari www.docs.opencv.org) 17 Gambar 2.6. Threshold to Zero (diambil dari www.docs.opencv.org) 17 Gambar 2.7. Threshold to Zero Inverted (diambil dari www.docs.opencv.org) 18

Gambar 2.8. Contour (Dhawan & Honrao, 2013) 21

Gambar 2.9. Convex-Hull (Dhawan & Honrao, 2013) 22 Gambar 2.10.Convexity Defects (Dhawan & Honrao, 2013) 22

Gambar 3.1. Arsitektur umum 30

Gambar 3.2. Konversi ruang warna RGB-HSV 32

Gambar 3.3. Konversi ruang warna RGB-YCbCr 33

Gambar 3.4. Skin segmentation 34

Gambar 3.5. Proses konversi citra hasil segmentasi kulit menjadi citra keabuan

(grayscale) 36

Gambar 3.6. Proses frame differencing 38

Gambar 3.7. Hasil akumulasi background 39

Gambar 3.8. Proses thresholding 40

Gambar 3.9. Inversion 41

Gambar 3.10.Erosion 42

Gambar 3.11.Dilaton 43

Gambar 3.12.Gaussian blur 44

(14)

Gambar 3.14.Convex-hull 47

Gambar 3.15.Convexity defects 48

Gambar 3.16.Proses pendefinisian arah tangan 50

Gambar 3.17.Rancangan halaman splash 52

Gambar 3.18.Rancangan halaman menu 53

Gambar 3.19.Rancangan halaman utama 54

Gambar 3.20.Rancangan halaman minimized 56

Gambar 4.1. Tampilan halaman splash 58

Gambar 4.2. Tampilan halaman menu 59

Gambar 4.3. Tampilan halaman utama 59

Gambar 4.4. Tampilan opsi HSV 60

Gambar 4.5. Tampilan opsi thresholding 60

Gambar 4.6. Tampilan opsi dilation 61

Gambar 4.7. Tampilan opsi convex-hull 61

Gambar 4.8. Tampilan halaman minimized 62

Gambar 4.9. Tampilan saat tombol “Slideshow Presentation Controller” dipilih 63 Gambar 4.10. Tampilan saat tombol “PDF Reader Controller” dipilih 64 Gambar 4.11. Tampilan saat tombol “Video Player Controller” dipilih 66 Gambar 4.12. Hasil pengujian pendeteksian warna kulit menggunakan HGR

dataset kondisi I 69

Gambar 4.13. Hasil pengujian pendeteksian warna kulit menggunakan HGR

dataset kondisi II 70

Gambar 4.14. Hasil pengujian pendeteksian warna kulit menggunakan HGR

dataset kondisi III 71

Gambar 4.15. Perbandingan hasil pendeteksian warna kulit dengan kondisi

pencahayaan backlight dan downlight 73

(15)

Gambar 4.21. Gerakan tangan dengan jumlah jari 4 dan arah tangan atas 80 Gambar 4.22. Gerakan tangan dengan jumlah jari 5 dan arah tangan atas 80 Gambar 4.23. Gerakan tangan dengan jumlah jari 1 dan arah tangan kanan 81 Gambar 4.24. Gerakan tangan dengan jumlah jari 2 dan arah tangan kanan 81 Gambar 4.25. Gerakan tangan dengan jumlah jari 1 dan arah tangan kiri 82 Gambar 4.26. Gerakan tangan dengan jumlah jari 2 dan arah tangan kiri 82 Gambar 4.27. Hasil pengenalan gerakan tangan untuk jumlah jari 1 dan arah

tangan atas pada ruangan A 83

Gambar 4.28. Hasil pengenalan gerakan tangan untuk jumlah jari 2 dan arah

tangan atas pada ruangan A 84

Gambar 4.29. Hasil pengenalan gerakan tangan untuk jumlah jari 3 dan arah

tangan atas pada ruangan A 84

Gambar 4.30. Hasil pengenalan gerakan tangan untuk jumlah jari 4 dan arah

tangan atas pada ruangan A 85

Gambar 4.31. Hasil pengenalan gerakan tangan untuk jumlah jari 5 dan arah

tangan atas pada ruangan A 85

Gambar 4.32. Hasil pengenalan gerakan tangan untuk jumlah jari 1 dan arah

tangan kanan pada ruangan A 86

Gambar 4.33. Hasil pengenalan gerakan tangan untuk jumlah jari 2 dan arah

tangan kanan pada ruangan A 87

Gambar 4.34. Hasil pengenalan gerakan tangan untuk jumlah jari 1 dan arah

tangan kiri pada ruangan A 87

Gambar 4.35. Hasil pengenalan gerakan tangan untuk jumlah jari 2 dan arah

tangan kiri pada ruangan A 88

Gambar 4.36. Hasil pengenalan gerakan tangan untuk jumlah jari 1 dan arah

tangan atas pada ruangan B 89

Gambar 4.37. Hasil pengenalan gerakan tangan untuk jumlah jari 2 dan arah

tangan atas pada ruangan B 90

Gambar 4.38. Hasil pengenalan gerakan tangan untuk jumlah jari 3 dan arah

tangan atas pada ruangan B 91

Gambar 4.39. Hasil pengenalan gerakan tangan untuk jumlah jari 4 dan arah

tangan atas pada ruangan B 91

Gambar 4.40. Hasil pengenalan gerakan tangan untuk jumlah jari 5 dan arah

(16)

Gambar 4.41. Hasil pengenalan gerakan tangan untuk jumlah jari 1 dan arah

tangan kanan pada ruangan B 93

Gambar 4.42. Hasil pengenalan gerakan tangan untuk jumlah jari 2 dan arah

tangan kanan pada ruangan B 93

Gambar 4.43. Hasil pengenalan gerakan tangan untuk jumlah jari 1 dan arah

tangan kiri pada ruangan B 94

Gambar 4.44. Hasil pengenalan gerakan tangan untuk jumlah jari 2 dan arah

(17)

ABSTRAK

Gerakan tangan manusia memiliki peran yang penting dalam berinteraksi. Pengenalan gerakan tangan manusia saat ini merupakan area aktif dalam penelitian untuk interaksi manusia dan komputer. Pengenalan gerakan tangan manusia telah diteliti sebelumnya dengan berbagai teknik dan alat pendukung yang berbeda, seperti Kinect dan data glove. Adapun berbagai tantangan yang dihadapi dalam mengenali gerakan tangan manusia yaitu mencakup permasalahan kondisi iluminasi yang bervariasi, rotasi tangan, latar belakang (background), ukuran tangan, dan klasifikasi atau translasi tangan. Pada penelitian ini, peneliti menggunakan teknik-teknik Computer Vision untuk mengenali gerakan tangan sebagai alat interaksi manusia dan komputer untuk mengendalikan berbagai aplikasi, yaitu aplikasi pengolah presentasi, pemutar musik, pemutar video dan PDF reader dengan kondisi tangan kosong dan latar belakang yang kompleks melalui kamera web. Untuk menangani permasalahan kondisi tangan dan latar belakang tersebut juga dibutuhkan suatu metode tertentu. Metode yang diajukan oleh peneliti adalah penggunaan ruang warna campuran, yaitu HS-CbCr untuk pendeteksian warna kulit dan teknik average background untuk menangani masalah background. Hasil pengujian menunjukkan bahwa metode yang diajukan mampu mengenali gerakan tangan manusia dan menghasilkan tingkat akurasi mencapai 96.87% dalam kondisi pencahayaan yang baik. Keakuratan pengenalan gerakan tangan manusia dipengaruhi kondisi pencahayaan, semakin sedikit perubahan iluminasi yang terjadi, semakin tinggi tingkat akurasi yang dihasilkan.

(18)

HAND GESTURE RECOGNITION FOR HUMAN-COMPUTER INTERACTION

ABSTRACT

Hand gesture has a significant role in human’s interaction. Hand gesture recognition nowadays is an active research area for human-computer interaction. In previous research for hand gesture recognition, they used various techniques and tools such as Kinect and data glove. Hand gesture recognition systems confronts many challenges, such as variation of illumination conditions, rotation problem, background problem, scale problem, and classification or translation problem. In this research, we use computer vision techniques to recognize hand gesture for human-computer interaction in controlling various apps, such as slideshow presentation, music player, video player, and PDF reader app with bare hand and in complex background via web camera. Therefore, a method is required to cope with background and skin detection problem. In our proposed method, we combine two color spaces become HS-CbCr for skin detection and use averaging background for solving the background problem. The result shows that the proposed method is able to recognize hand gesture and get up to 96.87% correct results on good lighting condition. The accuracy of hand gesture recognition is influenced by lighting condition. The lower changing illumination on video occurs, the higher accuracy of hand gesture recognition is generated.

(19)

BAB 4

PENDAHULUAN

4.4 Latar Belakang

Gerakan tangan manusia memiliki peran yang penting dalam berinteraksi. Pengenalan gerakan tangan manusia saat ini merupakan area aktif dalam penelitian untuk interaksi manusia dan komputer. Pengenalan gerakan tangan manusia ini bertujuan untuk mencegah munculnya penyakit-penyakit yang muncul, seperti trigger finger, gorilla arm, dll, akibat penggunaan mouse atau keyboard dalam waktu yang lama dan konstan (Bhatt et al., 2013).

Dalam penelitian sebelumnya, dibutuhkan alat-alat seperti Kinect, data glove ataupun kamera web yang berkualitas tinggi untuk menerapkan sistem pengenalan gerakan tangan ini. Selain itu, terdapat batasan dalam kondisi pencahayaan ataupun latar belakang (background) yang mengharuskan pengguna berada pada tempat yang memiliki latar belakang tertentu ketika menjalankan sistem tersebut. Pada penelitian ini, penulis akan menerapkan sistem pengenalan pergerakan tangan manusia sebagai alat interaksi manusia dan komputer untuk mengendalikan berbagai aplikasi, yaitu aplikasi pengolah presentasi, pemutar musik, pemutar video dan PDF reader dengan kondisi tangan kosong dan latar belakang yang kompleks melalui kamera web.

Pengenalan gerakan tangan manusia telah diteliti oleh beberapa peneliti sebelumnya. Pada umumnya pengenalan gerakan tangan ini diimplementasikan untuk bahasa isyarat (sign language), robotik, virtual reality, permainan, dan lain-lain. Pada umumnya, pengenalan gerakan tangan terbagi atas 2 jenis, yaitu (Ramjan, et al., 2014): 1. Pengenalan Gerakan Tangan Statis, yaitu pengenalan gerakan tangan yang

gerakannya telah ditetapkan dan dideteksi per frame dalam satu waktu

(20)

dinamis. Untuk pengenalan gerakan tangan statis telah diteliti sebelumnya oleh Jalab, A.H. pada tahun 2012 dengan menggunakan jaringan saraf tiruan. Metode ekstraksi fitur yang digunakan adalah algoritma Wavelet Network dan Artificial Neural Network (ANN). Adapun tingkat akurasi hasil uji coba tersebut yaitu 97%. Selanjutnya pada tahun 2013, Nagarajan & Subashini melakukan penelitian untuk mengenali bahasa isyarat huruf alphabet sesuai dengan American Sign Language dengan menggunakan metode Edge Oriented Histogram untuk ekstraksi fitur dan menggunakan algoritma Multiclass SVM untuk mengenali gerakan tangan statis. Pada penelitian ini didapat kesimpulan bahwa algoritma Multiclass SVM dapat memberikan akurasi yang baik sebesar 93.75% dalam mengklasifikasikan gerakan tangan statis.

Namun pada penelitian yang telah disebutkan sebelumnya, diperlukan banyak waktu dan kapasitas untuk melatih pengklasifikasian dalam pengenalan objek tertentu pada algoritma yang digunakan. Semakin banyak data pelatihan yang digunakan, semakin besar tingkat akurasi yang didapatkan (Williamson, 2014). Selanjutnya pada tahun 2014, Nayana & Kubakaddi menggunakan metode Finger Counting melalui ekstraksi fitur dari teknik computer vision yaitu contour, convex-hull dan convexity defects untuk pengenalan gerakan tangan statis. Dari penelitian tersebut dapat disimpulkan bahwa teknik computer vision sangat mudah dan cepat untuk diimplementasi dalam pengenalan gerakan tangan.

Penelitian lain tentang pengenalan gerakan tangan dilakukan oleh Yesugade, et al. pada tahun 2014 yang menggunakan metode sederhana yaitu Blob Detection untuk ekstraksi fitur untuk pengenalan gerakan tangan. Penelitian ini berfokus pada pemanfaatan pengenalan gerakan tangan dalam berbagai fungsionalitas, namun terdapat batasan dalam keadaan background dan kondisi pencahayaan.

(21)

4.2 Rumusan Masalah

Pengenalan gerakan tangan manusia saat ini merupakan area aktif dalam penelitian untuk interaksi manusia dan komputer. Salah satu implementasi sistem pengenalan gerakan tangan manusia pada penelitian sebelumnya, yaitu sebagai pengganti mouse atau keyboard untuk mengendalikan aplikasi seperti permainan (game), pengolah presentasi dan sebagainya. Dalam penelitian sebelumnya, digunakan berbagai teknik dan alat pendukung untuk mengenali gerakan tangan manusia, seperti Kinect, data glove dan kamera web. Adapun berbagai tantangan yang dihadapi dalam mengenali gerakan tangan manusia yaitu mencakup permasalahan kondisi iluminasi yang bervariasi, rotasi tangan, latar belakang (background), ukuran tangan, dan klasifikasi atau translasi tangan. Oleh karena itu, dibutuhkan suatu metode untuk mengenali gerakan tangan manusia untuk interaksi manusia-komputer dengan kondisi tangan kosong dan latar belakang yang kompleks melalui kamera web.

4.3 Tujuan Penelitian

Tujuan dari penelitian ini adalah untuk mengenali gerakan tangan manusia untuk interaksi manusia-komputer dengan kondisi tangan kosong dan latar belakang yang kompleks menggunakan teknik-teknik Computer Vision melalui kamera web.

4.4 Batasan Masalah

Untuk membatasi cakupan permasalahan yang akan dibahas dalam studi ini, penulis membuat batasan :

1. Pergerakan tangan yang dikenali/dideteksi hanya kombinasi antara jumlah jari dan arah tangan yang telah ditentukan oleh penulis.

2. Aplikasi yang dapat dikendalikan menggunakan gerakan tangan dalam penelitian ini adalah aplikasi pengolah presentasi, pemutar musik, pemutar video, dan PDF reader yang telah ditentukan oleh penulis.

3. Posisi kamera web tetap dan tidak terdapat objek bergerak yang memiliki warna yang mirip dengan warna kulit pada background.

(22)

komputer dapat melihat pantulan cahaya dengan baik, sehingga cahaya tidak boleh membelakangi telapak tangan atau di hadapan kamera web (backlight).

5. Posisi tangan lurus menghadap kamera dan jari tangan harus terbuka lebar.

4.5 Manfaat Penelitian

Manfaat yang diperoleh dari penelitian ini adalah :

1. Membantu pengguna dalam berinteraksi dengan komputer menggunakan gerakan tangan.

2. Mengetahui kemampuan teknik-teknik Computer Vision dalam proses pengenalan gerakan tangan manusia.

3. Menjadi referensi dalam pengembangan di bidang image processing dan computer vision.

4.6 Metodologi Penelitian

Tahapan-tahapan yang akan dilakukan pada pelaksanaan penelitian adalah sebagai berikut:

1. Studi Literatur

Pada tahap ini dilakukan pengumpulan bahan referensi yaitu mengenai pengolahan citra, pendeteksian warna kulit, pendeteksian background, pendeteksian tangan, dan Computer Vision dari beberapa jurnal, buku, artikel dan beberapa sumber referensi lainnya.

2. Analisis

Pada tahap ini dilakukan analisis terhadap studi literatur untuk mendapatkan pemahaman mengenai teknik-teknik Computer Vision untuk menyelesaikan masalah tentang pengenalan gerakan tangan manusia.

3. Perancangan

Pada tahap ini dilakukan perancangan arsitektur, pengumpulan data, dan perancangan antarmuka. Proses perancangan dilakukan berdasarkan hasil analisis studi literatur yang telah didapatkan.

4. Implementasi

(23)

5. Pengujian

Pada tahap ini dilakukan pengujian terhadap aplikasi yang telah dibangun dalam mengenali gerakan tangan manusia untuk memastikan hasil pengenalan sesuai dengan apa yang diharapkan.

6. Dokumentasi dan Penyusunan Laporan

Pada tahap ini dilakukan dokumentasi dan penyusunan laporan hasil analisis dan implementasi teknik-teknik Computer Vision dalam pengenalan gerakan tangan manusia.

4.7 Sistematika Penulisan

Sistematika penulisan dari skripsi ini terdiri dari lima bagian utama sebagai berikut. Bab 4 : Pendahuluan

Bab ini berisi latar belakang dari penelitian yang dilaksanakan, rumusan masalah, tujuan penelitian, batasan masalah, manfaat penelitian, metodologi penelitian, serta sistematika penulisan.

Bab 2 : Landasan Teori

Bab ini berisi teori-teori yang diperlukan untuk memahami permasalahan yang dibahas pada penelitian ini. Teori-teori yang berhubungan dengan citra, image processing, ekstraksi fitur dan teknik-teknik Computer Vision akan dibahas pada bab ini.

Bab 3 : Analisis dan Perancangan

Bab ini menjabarkan arsitektur umum, tiap langkah pre-processing yang dilakukan, pendeteksian objek, serta analisis dan penerapan teknik-teknik Computer Vision dalam pengenalan gerakan tangan yang tertangkap oleh kamera web.

Bab 4 : Implementasi dan Pengujian

(24)

Bab 5 : Kesimpulan dan Saran

(25)

BAB 2

LANDASAN TEORI

2.1 Computer Vision

Computer Vision merupakan salah satu cabang ilmu pengetahuan yang bertujuan untuk membuat suatu keputusan yang berguna mengenai objek fisik nyata dan keadaan berdasarkan sebuah gambar atau citra (Shapiro & Stockman, 2001). Computer vision merupakan kombinasi antara :

a. Pengolahan Citra

Pengolahan Citra (Image Processing) merupakan bidang yang berhubungan dengan proses perubahan pada citra agar mendapatkan kualitas citra yang lebih baik. b. Pengenalan Pola

Pengenalan Pola (Pattern Recognition) merupakan bidang yang berhubungan dengan proses identifikasi objek pada citra atau interpretasi citra, yang bertujuan untuk mengekstrak informasi yang disampaikan oleh citra.

2.2 Pengolahan Citra Digital

Pengolahan citra digital (digital image processing) adalah metode yang digunakan untuk memanipulasi citra digital sehingga menghasilkan kualitas citra yang lebih baik. Pengolahan citra digital berfokus pada dua tugas utama, yaitu peningkatan informasi bergambar untuk interpretasi manusia dan pengolahan data citra untuk penyimpanan, transmisi dan representasi untuk persepsi mesin otonom (Annadurai & Shanmugalakshmi, 2007).

2.2.1 Resizing

(26)

ukuran yang sama dan mempercepat proses pengolahan citra ketika ukuran citra diperkecil.

2.2.2 Color Space Conversion

Konversi ruang warna (color space conversion) adalah proses pengubahan suatu ruang warna ke ruang warna lainnya dengan tranformasi matematis. Konversi ruang warna digunakan untuk mendapatkan channel warna yang mengandung informasi tertentu dalam suatu citra.

2.2.2.1 RGB to Grayscale Conversion

Salah satu proses konversi ruang warna yang paling sering dilakukan adalah grayscaling, yaitu proses pengubahan citra warna yang memiliki ruang warna RGB menjadi citra keabuan. Proses ini mengubah 3 channel red, green dan blue menjadi 1 channel gray (keabuan) dengan transformasi matematis seperti persamaan 2.1 (Bradski & Kaehler, 2008).

= 0.299. + 0.587. + 0.114.

Dimana : Y = citra hasil konversi RGB menjadi Grayscale R = nilai red channel pada piksel

G = nilai green channel pada piksel B = nilai blue channel pada piksel

2.2.2.2 Normalized RGB

Normalized RGB sering disebut dengan warna murni. Proses normalisasi RGB merupakan proses pengubahan nilai RGB dalam range 0 sampai 1 yang dibentuk secara independen dari berbagai tingkat pencahayaan. Jumlah dari nilai red, green dan blue channel yang telah dinormalisasi adalah 1. Ketiga channel yang telah dinormalisasi tersebut tidak memiliki informasi yang signifikan dan dapat diabaikan, sehingga dapat mengurangi dimensi ruang. Proses normalisasi RGB dilakukan dengan persamaan 2.2 sampai 2.4 (Ennehar, et al., 2010).

(27)

= + + = + + = + +

Dimana : R’ = nilai red channel yang telah dinormalisasi pada piksel G’ = nilai green channel yang telah dinormalisasi pada piksel B’ = nilai blue channel yang telah dinormalisasi pada piksel R = nilai red channel pada piksel

G = nilai green channel pada piksel B = nilai blue channel pada piksel

2.2.2.3 RGB to HSV Conversion

HSV (Hue, Saturation, Value) memiliki karakteristik utama dari warna tersebut, yaitu : 1. Hue, menyatakan warna yang sebenarnya, seperti merah, violet dan kuning, yang digunakan untuk menentukan kemerahan (redness), kehijauan (greeness) dan sebagainya.

2. Saturation, terkadang disebut chroma, mewakili tingkat intensitas warna.

3. Value, merupakan kecerahan dari warna. Nilainya berkisar antara 0-100%. Apabila nilainya 0 maka warnanya akan menjadi hitam. Semakin besar nilai value maka semakin cerah dan muncul variasi-variasi baru dari warna tersebut.

(28)

= max ( , , )

2.2.2.4 RGB to YCbCr Conversion

YCbCr merupakan suatu ruang warna yang sering digunakan pada studio televisi eropa dan untuk kompresi citra. Ruang warna ini memiliki 3 (tiga) channel, yaitu :

1. Y, merupakan komponen single yang menyimpan informasi luminance

2. Cb, merupakan komponen yang menyimpan informasi chrominance dan merepresentasikan perbedaan antara komponen blue channel dan nilai referensi 3. Cr, merupakan komponen yang menyimpan informasi chrominance dan

merepresentasikan perbedaan antara komponen red channel dan nilai referensi Dalam pendeteksian warna kulit yang bervariasi dan memiliki sensitivitas untuk beberapa faktor seperti kondisi pencahayaan, karakteristik individu, etnis, karakteristik kamera, dan sebagainya, pemilihan ruang warna sangatlah berpengaruh. Pada penelitian sebelumnya, Premal & Vinsley pada tahun 2014 mendeteksi adanya kebakaran hutan menggunakan ruang warna YCbCr dan menyimpulkan bahwa ruang warna ini sangat

(2.7)

(29)

baik mendeteksi warna walaupun dalam keadaan pencahayaan yang berubah-ubah, karena ruang warna ini memisahkan antara luminance dan chrominance.

Adapun persamaan yang digunakan untuk mengkonversi warna RGB ke YCbCr yaitu seperti ditunjukkan pada persamaan 2.9 sampai 2.11 dibawah ini (diambil dari www.docs.opencv.org) :

Y = nilai luminance channel pada piksel Cr = nilai chrominance red channel pada piksel Cb = nilai chrominance blue channel pada piksel R = nilai red channel pada piksel

G = nilai green channel pada piksel B = nilai blue channel pada piksel

2.2.3 Perbaikan Citra (Image Enhancement)

Tahap perbaikan citra dilakukan untuk meningkatkan kualitas citra agar lebih mudah diproses dan untuk menekankan karakteristik pada citra dengan cara memanipulasi parameter pada citra. Perbaikan citra memungkinkan informasi yang ingin ditampilkan atau diproses dari sebuah citra menjadi lebih baik dan jelas.

2.2.3.1 Erosion

(30)

sebuah citra. Kernel atau structuring element merupakan matriks berukuran m x n yang memiliki titik pusat.

Pada umumnya, proses erosi yang dilakukan pada sebuah citra menghasikan objek yang lebih kecil dan menghilangkan titik-titik objek menjadi bagian dari background berdasarkan kernel yang digunakan. Pada penelitian sebelumnya, Febriani, et al. pada tahun 2014 menggunakan proses erosi untuk menghilangkan objek lain diluar area optic disc dalam pengidentifikasian diabetic retinopathy melalui citra retina. Erosi dilakukan dengan persamaan 2.12 (Moeslund, 2012).

( , ) = ( , ) ⊖

Dimana : g(x,y) = citra hasil erosi dengan matriks x,y f(x,y) = citra asal dengan matriks x,y SE = Structuring Element atau kernel

Gambar 2.1. Erosion : Mengambil Nilai Minimum Daerah Kernel B (Bradski & Kaehler, 2008)

Gambar 2.1 menunjukkan bahwa proses erosi menghitung nilai minimum setiap piksel dari citra asal A yang berada di daerah kernel B dan menghasilkan gambar baru dengan cara menggantikan nilai titik pusat kernel dengan nilai minimum yang didapatkan. Perhitungan akan dilakukan pada setiap piksel citra asal A (Bradski & Kaehler, 2008).

(31)

2.2.3.2 Dilation

Dilation merupakan kebalikan dari proses erosi. Dilation atau dilasi merupakan salah satu operasi morfologi citra yang menghitung nilai maksimum lokal berdasarkan area kernel atau structuring element. Pada umumnya, proses dilasi yang dilakukan pada sebuah citra menghasikan objek yang lebih besar dan meleburkan titik-titik objek menjadi bagian dari objek berdasarkan kernel yang digunakan. Dilasi dilakukan dengan persamaan 2.13 dibawah ini (Moeslund, 2012).

( , ) = ( , ) ⊕

Dimana : g(x,y) = citra hasil erosi dengan matriks x,y f(x,y) = citra asal dengan matriks x,y SE = Structuring Element atau kernel

Gambar 2.2. Dilation : Mengambil Nilai Maximum Daerah Kernel B (Bradski & Kaehler, 2008)

Gambar 2.2 menunjukkan bahwa proses dilasi menghitung nilai maksimum setiap piksel dari citra asal A yang berada di daerah kernel B dan menghasilkan gambar baru dengan cara menggantikan nilai titik pusat kernel dengan nilai maksimum yang didapatkan. Perhitungan akan dilakukan pada setiap piksel citra asal A (Bradski & Kaehler, 2008).

(32)

2.2.3.3 Gaussian Blur

Blurring (pengaburan), sering juga disebut smoothing, merupakan pemerataan nilai piksel-piksel tetangga yang menghilangkan detail halus dari suatu citra. Pada penelitian ini, teknik blurring yang digunakan adalah Gaussian Blur. Gaussian Blur merupakan teknik pengaburan suatu citra menggunakan fungsi Gaussian, yang digunakan untuk mengurangi noise pada citra dan mengurangi detail (Nayakwadi & Pokale, 2014).

Gaussian blur telah banyak digunakan pada penelitian sebelumnya, seperti pada penelitian yang dilakukan oleh Zhaoxue, et al. pada tahun 2008 yang melakukan segmentasi bentuk hati secara otomatis pada CT (Computerized Tomography) Image berdasarkan Gaussian blurring pada citra biner. Dalam penelitian ini dapat disimpulkan bahwa Gaussian Blur cukup efisien sebagai langkah awal untuk digunakan perfusi hati berdasarkan citra CT abdomen.

Persamaan fungsi Gaussian untuk satu dimensi ditunjukkan pada persamaan 2.14.

( ) =

Maka untuk citra dua dimensi, persamaan fungsi Gaussian berubah menjadi seperti ditunjukkan pada persamaan 2.15.

( , ) =

Dimana : G(x) = citra hasil Gaussian Blur

2.2.4 Thresholding

Thresholding merupakan teknik binerisasi yang digunakan untuk mengubah citra keabuan menjadi citra biner. Thresholding dapat digunakan dalam proses segmentasi citra untuk mengidentifikasi dan memisahkan objek yang diinginkan dari background berdasarkan distribusi tingkat keabuan atau tekstur citra (Liao, et al.,

(2.14)

(33)

2001). Proses thresholding menggunakan nilai batas (threshold) untuk mengubah nilai piksel pada grayscale image menjadi hitam atau putih.

Teknik thresholding telah banyak dilakukan pada penelitian sebelumnya, seperti penelitian yang dilakukan oleh Du & Chang pada tahun 2002 yang melakukan proses thresholding pada video untuk mendeteksi teks. Pada penelitian ini disimpulkan bahwa teknik thresholding sudah umum digunakan untuk mendeteksi dokumen dan dapat mengatasi background yang kompleks pada citra keabuan. Adapun beberapa tipe thresholding yang dapat diimplementasikan pada sebuah citra keabuan, yaitu :

1. Threshold Binary

Pada jenis threshold ini, jika nilai piksel pada citra lebih besar dari nilai threshold, maka nilai piksel akan diganti dengan nilai maxval, sebaliknya jika nilai piksel citra keabuan lebih kecil dari threshold maka nilai piksel akan diganti dengan 0 (hitam). Operasi threshold binary dapat dilakukan dengan persamaan 2.16.

( , ) = , 0( , ) > ℎ ℎ

Dimana : src(x,y) = citra keabuan yang akan diproses dst(x,y) = citra hasil threshold binary thresh = nilai threshold

maxVal = nilai maksimum yang akan digunakan

Proses threshold binary dapat diilustrasikan pada Gambar 2.3.

Gambar 2.3. Threshold Binary (diambil dari www.docs.opencv.org)

2. Threshold Binary Inverted

Jenis threshold ini adalah kebalikan dari threshold binary. Threshold binary inverted akan mengganti nilai piksel menjadi nilai 0 jika nilai piksel citra keabuan lebih kecil dari threshold, sebaliknya jika nilai piksel pada citra keabuan lebih besar

(34)

dari nilai threshold maka nilai piksel akan diganti dengan nilai maxval. Operasi threshold binary inverted dapat dilakukan dengan persamaan 2.17.

( , ) = 0, ( , ) > ℎ ℎ

Dimana : src(x,y) = citra keabuan yang akan diproses dst(x,y) = citra hasil threshold binary inverted thresh = nilai threshold

maxVal = nilai maksimum yang akan digunakan

Proses threshold binary inverted dapat diilustrasikan pada Gambar 2.4.

Gambar 2.4. Threshold Binary Inverted (diambil dari www.docs.opencv.org)

3. Threshold Truncate

Pada jenis threshold ini, nilai maksimum pada piksel adalah nilai threshold. Jika nilai piksel pada citra keabuan lebih besar, maka nilai tersebut akan dipotong. Operasi threshold truncate dapat dilakukan dengan persamaan 2.18.

( , ) = ℎ ℎ , ( , )( , ) > ℎ ℎ

Dimana : src(x,y) = citra keabuan yang akan diproses dst(x,y) = citra hasil threshold binary inverted thresh = nilai threshold

Proses threshold binary truncate dapat diilustrasikan pada Gambar 2.5 .

(2.17)

(35)

Gambar 2.5. Threshold Truncate (diambil dari www.docs.opencv.org)

4. Threshold to Zero

Threshold to zero akan menggantikan nilai piksel menjadi 0 (hitam) jika nilai piksel pada citra keabuan lebih kecil daripada nilai threshold. Operasi threshold to zero dapat dilakukan dengan persamaan 2.19.

( , ) = ( , ), 0( , ) > ℎ ℎ

Dimana : src(x,y) = citra keabuan yang akan diproses dst(x,y) = citra hasil threshold binary inverted thresh = nilai threshold

Proses threshold binary truncate dapat diilustrasikan pada Gambar 2.6.

Gambar 2.6. Threshold to Zero (diambil dari www.docs.opencv.org)

5. Threshold to Zero Inverted

Jenis threshold ini merupakan kebalikan dari threshold to zero. Threshold to zero inverted akan menggantikan nilai piksel menjadi 0 (hitam) jika nilai piksel pada citra keabuan lebih besar daripada nilai threshold. Operasi threshold to zero dapat dilakukan dengan persamaan 2.20.

( , ) = 0, ( , ) > ℎ( , )

(2.19)

(36)

Dimana : src(x,y) = citra keabuan yang akan diproses dst(x,y) = citra hasil threshold binary inverted thresh = nilai threshold

Proses threshold binary truncate dapat diilustrasikan pada Gambar 2.7.

Gambar 2.7. Threshold to Zero Inverted (diambil dari www.docs.opencv.org)

2.2.5 Inversi

Inversi merupakan proses negatif pada citra, dimana setiap nilai piksel pada citra dibalik dengan acuan threshold yang diberikan (Febriani, 2014). Pada umumnya, proses inversi yang dilakukan pada sebuah citra untuk memperjelas warna putih atau abu-abu pada bagian gelap. Pada penelitian sebelumnya, Febriani, et al. pada tahun 2014 menggunakan proses inversi untuk melakukan proses perkalian citra dengan citra hasil proses contrast stretching agar menghasilkan citra optic disc yang tereliminasi dalam pengidentifikasian diabetic retinopathy melalui citra retina. Untuk citra 8 bit, proses inversi dilakukan dengan persamaan 2.21.

( , ) = 255 − ( , )

Dimana : src(x,y) = nilai piksel pada citra input

dst(x,y) = nilai piksel pada citra setelah proses inversi

2.3 Average Background

Metode average background pada dasarnya menghitung nilai rata-rata dan standard deviasi dari setiap piksel yang didefinisikan sebagai model background. Metode ini merupakan salah satu cara yang dapat mengatasi kelemahan pada proses background subtraction (Bradski & Kaehler, 2008). Average background telah digunakan sebelumnya pada penelitian sebelumnya, seperti pada tahun 2015, Goswami, et al.

(37)

melakukan penelitian untuk mendeteksi kejadian yang tidak biasa terjadi di sekitar mesin ATM, guna untuk meningkatkan keamanan ATM. Pada penelitian ini disimpulkan bahwa metode ini dapat membantu mempercepat performa sistem pendeteksi walaupun hanya menggunakan kamera yang memiliki resolusi yang rendah. Ada empat tahap yang dilakukan pada metode ini yaitu :

1. Mengakumulasikan atau mengumpulkan frame-frame video dengan jarak waktu tertentu

2. Melakukan proses frame differencing pada frame-frame video yang telah diakumulasikan, lalu mencari nilai rata-rata piksel yang berbeda diantara frame 3. Segmentasi citra background dengan proses thresholding

4. Inversi citra hasil thresholding

Seperti yang telah dijabarkan diatas, terdapat proses frame differencing dan background subtraction pada metode average background. Berikut ini adalah penjelasan tentang kedua teknik tersebut.

2.3.1 Background Subtraction

Background subtraction merupakan proses untuk mendeteksi pergerakan atau perbedaan signifikan yang terjadi pada frame video ketika dibandingkan dengan citra referensi. Tujuan dari background subtraction yaitu untuk memisahkan objek dan background sehingga gerakan dari sebuah objek dapat terdeteksi.

Teknik ini mendefinisikan frame video pertama sebagai background lalu mendeteksi perbedaan yang terjadi pada frame-frame selanjutnya, sehingga dapat didefinisikan sebagai pergerakan objek. Proses background subtraction dilakukan dengan persamaan 2.22 dan 2.23 dibawah ini (Alex & Wahi, 2014).

( , ) = ( , ) − ( , )

( , ) = 1 ∶0 ∶ ( , ) ≤ ( , ) >

Dimana : Rk (x,y) = citra hasil perbedaan frame fk (x,y) = citra frame

B (x,y) = citra background T = nilai threshold

(38)

Background subtraction memiliki kelebihan yaitu mudah untuk diimplementasi dan cepat, namun juga memiliki kekurangan ketika terjadi perubahan iluminasi atau pencahayaan pada video karena juga akan terdefinisi sebagai perbedaan piksel (Bradski & Kaehler, 2008). Teknik background subtraction telah digunakan pada penelitian sebelumnya, seperti penelitian yang dilakukan oleh Intachak & Kaewapichai pada tahun 2011, yang menggunakan teknik tersebut untuk video traffic monitoring.

2.3.2 Frame Differencing

Frame differencing adalah suatu teknik sederhana yang yang digunakan untuk mendeteksi perbedaan piksel antara dua frame video. Teknik ini biasanya digunakan untuk mendeteksi pergerakan objek berdasarkan perbedaan piksel yang terjadi pada dua frame video dengan interval waktu yang singkat. Untuk mengetahui perbedaan frame video yang terjadi dilakukan perhitungan matematis dengan persamaan 2.24 sampai 2.26 (Alex & Wahi, 2014).

Differential :

fk-1 = citra frame sebelumnya dengan interval waktu

Teknik frame differencing juga telah digunakan dalam penelitian sebelumnya seperti penelitian yang dilakukan oleh Kang & Hayes pada tahun 2015. Pada penelitian ini, teknik frame differencing digunakan dalam pengenalan wajah untuk personalisasi kendaraan.

(2.24)

(2.25)

(39)

2.4 Ekstraksi Fitur

Ekstraksi fitur merupakan proses yang menonjolkan ciri atau karakteristik pada suatu citra yang mengandung informasi penting untuk proses pengklasifikasian ataupun analisa data citra. Tujuan dari proses ekstraksi fitur adalah untuk meningkatkan efektivitas dan efisiensi dari proses analisa ataupun pengklasifikasian. Salah satu teknik computer vision untuk mengekstraksi fitur adalah dengan teknik pendeteksian contour, convex-hull dan convexity defects.

Pada penelitian sebelumnya, Youssef, et al. pada tahun 2010 menggunakan teknik tersebut untuk mengekstraksi fitur yang terdapat pada citra yang tertangkap oleh kamera dalam pengenalan aktifitas manusia yang dapat digunakan untuk pengawasan ataupun analisa medis. Berikut ini adalah penjelasan tentang ekstraksi fitur menggunakan contour, convex-hull dan convexity defects.

2.4.1 Contour

Kontur (contour) dapat didefinisikan sebagai suatu keadaan yang terjadi karena adanya perubahan intensitas pada piksel-piksel yang bertetangga. Dengan adanya perubahan intensitas ini, maka titik-titik tepi (edge) pada citra dapat terdeteksi. Kontur juga dapat didefinisikan sebagai urutan titik yang dapat menguraikan bentuk atau region (Williamson, A, 2014). Gambaran contour dapat dilihat pada Gambar 2.8.

Gambar 2.8. Contour (Dhawan & Honrao, 2013)

2.4.2 Convex-Hull

(40)

Gambar 2.9. Convex-Hull (Dhawan & Honrao, 2013)

2.4.3 Convexity Defects

Convexity defects merupakan titik atau vector yang diperoleh dari titik contour dan garis convex-hull. Convexity defects direpresentasikan dengan 4 (empat) elemen titik atau vector, yaitu :

1. Start_index, yaitu titik kontur yang mendefinisikan permulaan dari defects 2. End_index, yaitu titik kontur yang mendefinisikan akhir dari defects 3. Farthest_index, yaitu titik terjauh dari garis convex-hull ke titik kontur 4. Fix_depth, yaitu perkiraan fixed-point dari jarak antara titik terjauh dari garis

convex-hull ke titik kontur.

Gambaran convexity defects dapat dilihat pada Gambar 2.10.

(41)

2.4.4 Moment

Moment merupakan karakteristik dari titik kontur yang dihitung dengan mengintegrasikan seluruh piksel dari titik kontur. Momen biasanya digunakan untuk memandingkan dua titik kontur. Pada umumnya, moment dari sebuah titik kontur didefinisikan sebagai persamaan 2.27 sebagai berikut (Bradski & Kaehler, 2008).

,

= ∑

( , )

Dimana : m = moment p = x-order q = y-order n = batas kontur

I(x,y) = citra hasil ekstraksi fitur

2.4.5 Center of Gravity

Center of Gravity (CoG) adalah titik tengah dari sebuah objek yang terdeteksi dari citra hasil ekstraksi fitur. Pada penelitian sebelumnya, Ling, et al. pada tahun 2013 memanfaatkan informasi dari titik center of gravity untuk menilai kemampuan keseimbangan tubuh manusia pada postur statis dan disimpulkan bahwa titik center of gravity pada tubuh manusia sangat baik dalam memberikan informasi tentang keseimbangan tubuh.

Titik CoG dapat diperoleh dari momen setiap titik kontur yang terdeteksi. Untuk menghitung titik center of gravity dapat dilakukan dengan persamaan 2.28 sebagai berikut (diambil dari www.docs.opencv.org) :

=

, =

Dimana : x = koordinat x titik center of gravity y = koordinat y titik center of gravity m10 = moment dengan x-order 1 dan y-order 0 m01 = moment dengan x-order 0 dan y-order 1 m00 = panjang piksel dari kontur

(2.27)

(42)

2.5 OpenCV

OpenCV (Open Source Computer Vision Library) adalah sebuah API (Application Programming Interface) library yang menyediakan struktur data dan algoritma yang cepat dan efisien serta dapat digunakan untuk pengolahan citra dan real-time computer vision (Bradski & Kaehler, 2008).

Adapun 5 library yang terdapat pada OpenCV, yaitu :

1. CV, merupakan komponen yang berisikan algoritma dasar pengolahan citra digital dan computer vision yang lebih tinggi.

2. ML, merupakan komponen yang berisikan pustaka dari machine learning untuk pengklasifikasian statistical dan clustering tools yang mencakup algoritma seperti berikut :

3. HighGUI, berisi fungsi-fungsi I/O untuk penyimpanan dan pembacaan video atau gambar.

4. CXCORE, berisi struktur data, support XML dan fungsi-fungsi grafis. 5. CvAux, berisi both defunct areas dan algoritma eksperimental.

(43)

2.6 Penelitian Terdahulu

Penelitian tentang pengenalan gerakan tangan (hand gesture recognition) dalam interaksi manusia-komputer telah banyak dilakukan dengan beberapa metode. Pada umumnya pengenalan gerakan tangan ini diimplementasikan untuk bahasa isyarat (sign language), robotik, virtual reality, permainan, dan lain-lain. Seperti yang telah dijelaskan sebelumnya, pengenalan gerakan tangan terbagi atas dua jenis yaitu pengenalan gerakan tangan statis dan pengenalan gerakan tangan dinamis.

Pada tahun 2014, Ramjan, et al. menggunakan algoritma Blob Detection COG untuk ekstraksi fitur dan Template/Pattern Matching untuk mengenali gerakan tangan dinamis. Penelitian ini diimplementasikan untuk menulis pada notepad menggunakan gerakan tangan dengan fasilitas ekstra dengan berbagai bahasa seperti bahasa Jepang, Gujarati, Tamil, Kanada, dsb.

Pada penelitian lainnya juga telah dilakukan untuk pengenalan gerakan tangan statis. Jalab, A. H. pada tahun 2012 menggunakan jaringan saraf tiruan untuk mengenali gerakan tangan secara statis. Metode ekstraksi fitur yang digunakan adalah algoritma Wavelet Network dan Artificial Neural Network (ANN). Dalam tahap uji coba, dilakukan pengujian 60 citra gerakan tangan dengan jumlah noise Gaussian yang berbeda-beda dan dibagi menjadi 6 kelas. Adapun tingkat akurasi hasil uji coba tersebut yaitu 97%. Selanjutnya pada tahun 2013, Nagarajan & Subashini melakukan penelitian untuk mengenali bahasa isyarat huruf alphabet sesuai dengan American Sign Language dengan menggunakan metode Edge Oriented Histogram untuk ekstraksi fitur dan menggunakan algoritma Multiclass SVM untuk mengenali gerakan tangan statis. Pada penelitian ini didapat kesimpulan bahwa algoritma Multiclass SVM dapat memberikan akurasi yang baik sebesar 93.75% dalam mengklasifikasikan gerakan tangan statis.

(44)

tersebut dapat disimpulkan bahwa teknik computer vision sangat mudah dan cepat untuk diimplementasi dalam pengenalan gerakan tangan.

Yesugade, et al. pada tahun 2014 juga meneliti tentang pengenalan gerakan tangan dengan menggunakan metode sederhana yaitu Blob Detection untuk ekstraksi fitur untuk pengenalan gerakan tangan. Penelitian ini berfokus pada pemanfaatan pengenalan gerakan tangan dalam berbagai fungsionalitas seperti mouse control, kalibrasi single-pointer, kalibrasi multi-pointer, winamp control dan gaming control. Namun pada penelitian ini terdapat batasan dalam keadaan background dan kondisi pencahayaan.

Penelitian terkait lainnya dilakukan oleh Yi & Liangzhong pada tahun 2010, yaitu mendeteksi objek yang bergerak dengan menggunakan metode average background. Pada penelitian ini disimpulkan bahwa metode tersebut dapat mendeteksi background dengan tingkat kompleksitas dalam komputasi yang rendah. Rangkuman dari penelitian terdahulu dapat dilihat pada Tabel 2.1.

Tabel 2.1 Penelitian Terdahulu

No. (Tahun) Peneliti Metode Keterangan

1 Ramjan, et al

(2014) Ekstraksi Fitur : Blob Detection COG Recognition :

Template/Pattern Matching

 Pengenalan gerakan tangan dinamis

 Fungsi : untuk menulis pada notepad menggunakan gerakan waktu yang cukup lama dalam proses training

 Fungsi : untuk mengenali bahasa isyarat huruf alphabet sesuai dengan American Sign Language

(45)

Tabel 2.1 Penelitian Terdahulu (lanjutan)

No. (Tahun) Peneliti Metode Keterangan

 Semakin besar tingkat pembelajaran SVM, semakin besar pula tingkat akurasi yang dihasilkan. Namun hal ini

dan convexity defects  Pengenalan gerakan tangan statis  Fingertips Counting merupakan

metode yang sederhana, cepat dan mudah untuk

diimplementasi 5 Yesugade, et al

(2014) Blob Detection  Pengenalan gerakan tangan statis  Berfokus pada pemanfaatan

Average Background  Pendeteksian background  Berfokus pada penggunaan

metode yang memiliki

kompleksitas dalam komputasi yang rendah

Perbedaan penelitian yang dilakukan dengan penelitian terdahulu adalah penelitian ini berfokus pada kesederhanaan metode dan kemudahan pengguna dalam kebebasan penggunaan. Berikut ini adalah metode beserta alasan penggunaan metode yang akan diterapkan pada penelitian ini.

 Menggunakan kombinasi ruang warna HSV dan YCbCr, yaitu HSCbCr untuk mendeteksi warna kulit, sehingga pengguna tidak perlu menggunakan alat seperti Kinect ataupun data glove.

 Menggunakan metode average background untuk menangani kondisi background yang tidak diperlukan, sehingga dapat mempercepat proses pengenalan gerakan tangan.

(46)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

Bab ini akan membahas tentang implementasi metode yang digunakan untuk mengenali gerakan tangan manusia untuk interaksi manusia-komputer. Adapun 2 (dua) tahap yang akan dibahas pada bab ini, yaitu tahap analisis dan tahap perancangan sistem. Pada tahap analisis akan dilakukan analisis terhadap data yang akan digunakan untuk diproses dan analisis terhadap teknik yang digunakan pada setiap langkah pemrosesan data. Pada tahap perancangan sistem akan dibahas mengenai perancangan tampilan antarmuka sistem.

3.1 Data yang Digunakan

Data yang digunakan dalam penelitian ini berupa citra yang diambil secara real-time melalui kamera web. Adapun beberapa aspek yang berhubungan dengan data yang digunakan yaitu kualitas kamera web, pencahayaan (lighting) dan jarak pengambilan gambar.

Dalam penelitian ini, penulis menggunakan kamera web eksternal yang memiliki spesifikasi 8 megapixel dengan resolusi gambar 1280 x 720 piksel. Pengambilan gambar dilakukan di dalam ruangan dengan kuat pencahayaannya ±200 lux dan jarak ≤ 0.5 meter dari tangan pengguna. Hal ini dilakukan agar sistem dapat menangkap objek yang akan dikenali dengan baik.

Adapun data benchmark yang digunakan untuk mengukur tingkat akurasi metode yang digunakan peneliti untuk pendeteksian warna kulit, yaitu Hand Gesture Recognition (HGR) Dataset (diambil dari http://sun.aei.polsl.pl/~mkawulok/gestures/). Dataset ini terdiri atas 3 macam data untuk pengenalan gerakan isyarat tangan dengan kondisi yang berbeda, yaitu :

1. Kondisi I

 Jumlah citra : 61 citra

(47)

 Pencahayaan : Tidak tertentu

 Pencahayaan : menggunakan efek flash

 Ukuran citra : max. 512 x340 piksel

 Pencahayaan : menggunakan efek flash

 Ukuran citra : max. 339 x512 piksel

3.2Analisis Sistem

(48)

dengan lebih terperinci pada bagian-bagian selanjutnya. Adapun arsitektur umum yang menggambarkan metode pada penelitian ini ditunjukkan pada Gambar 3.1.

Gambar 3.1. Arsitektur umum

3.2.1 Skin Detection

Tahap awal dalam pengenalan gerakan tangan pada penelitian ini adalah pendeteksian warna kulit. Tahap ini dilakukan untuk mempercepat proses pendeteksian objek tangan manusia pada citra yang tertangkap oleh kamera web. Selain itu, dengan adanya pendeteksian objek tangan berdasarkan warna kulit manusia, maka pengguna tidak perlu menggunakan alat bantu lainnya seperti Kinect ataupun data glove.

(49)

Langkah 1 : Resize ukuran citra yang tertangkap kamera web menjadi 400 x 300 (RGB(400,300))

Langkah 2 : Normalisasi RGB dari citra warna yang telah diresize menggunakan persamaan 2.2 sampai 2.4

Langkah 3 : Konversi nilai RGB yang telah melalui proses normalisasi ke HSV dengan menggunakan persamaan 2.5 sampai 2.8.

Langkah 4 : Konversi citra RGB ke YCbCr dengan menggunakan persamaan 2.9 sampai 2.11.

Langkah 5 : Pengecekan nilai channel H (hue) dan S (saturation) pada setiap piksel citra HSV dan channel Cb blue) dan Cr (chrominance-red) citra YCrCb

FOR setiap nilai piksel RGB (x,y)

IF NOT ( (H >= 0) AND (H <= 50) ) AND

Langkah 6 : Tampilkan citra RGB

3.2.1.1 Resizing

Proses resizing merupakan proses normalisasi ukuran citra digital sehingga ukuran seluruh data citra yang akan diproses memiliki ukuran yang sama dan dapat mempercepat pemrosesan data citra digital. Pada penelitian ini, citra yang ditangkap oleh kamera web memiliki ukuran 1280 x 720 piksel dan akan diperkecil menjadi 400 x 300 piksel.

3.2.1.2 Normalisasi RGB

(50)

channel RGB (red, green, dan blue) akan dinormalisasi terlebih dahulu dengan menggunakan persamaan 2.2 sampai 2.4 sehingga nilai RGB berada dalam range 0 sampai 1.

3.2.1.3 RGB to HSV Conversion

Citra yang telah di resize yang memiliki ruang warna RGB kemudian akan dikonversi ke ruang warna HSV. Nilai layer hue dan saturation pada ruang warna HSV tidak akan mengalami perubahan saat kondisi pencahayaan berubah-ubah, sehingga dapat mendeteksi warna kulit walaupun dalam kondisi pencahayaan yang berubah-ubah pada citra yang tertangkap oleh kamera web (Chitra & Balakrishman, 2012). Proses konversi citra warna (RGB) menjadi HSV yaitu dilakukan dengan transformasi matematis menggunakan persamaan 2.5 hingga 2.8. Konversi citra warna (RGB) menjadi citra HSV ditunjukkan pada Gambar 3.2.

Gambar 3.2 Konversi Ruang Warna RGB - HSV

3.2.1.4 RGB to YCbCr Conversion

(51)

Proses konversi citra warna (RGB) menjadi YCbCr dapat dilakukan dengan menggunakan persamaan 2.5 hingga 2.7. Konversi warna citra RGB ke YCbCr dapat dilihat pada Gambar 3.3.

Gambar 3.3 Konversi Ruang Warna RGB – YCbCr

3.2.1.5 Skin Color Bounding Rules

Pada penelitian ini, digunakan kombinasi ruang warna HSV dan YCbCr untuk mendeteksi warna kulit, yaitu HSCbCr. Setelah citra dikonversi ke ruang warna yang dibutuhkan, maka setiap komponen ruang warna yaitu H, S, Cb dan Cr akan di filter dengan nilai threshold yang didefinisikan sebagai warna kulit. Range nilai yang didefinisikan sebagai warna kulit untuk ruang warna HSCbCr dapat dilihat pada persamaan 3.1 hingga 3.8.

Aturan Hue & Saturation (Phung, et al., 2005).:

0 ≤ ≤ 50 0.23 ≤ ≤ 0.68

Aturan Chrominance Blue (Cb) & Chrominance Red (Cr) (Phung, et al., 2005).:

77 ≤ ≤ 127 133 ≤ ≤ 173

3.2.1.6 Skin Segmentation

Tahap ini merupakan tahap akhir pada perdeteksian warna kulit. Pada tahap ini, seluruh piksel yang tidak terdefinisi sebagai warna kulit akan diubah nilainya menjadi 0 (hitam). Sehingga yang terlihat pada citra hanya piksel yang terdefinisi sebagai warna kulit. Citra

(3.1) (3.2)

(52)

hasil proses skin segmentation ini merupakan citra RGB. Hasil proses skin segmentation dapat dilihat pada Gambar 3.4.

Gambar 3.4 Skin Segmentation

3.2.2 Average Background

Setelah pendeteksian warna kulit dilakukan, maka proses selanjutnya adalah penghilangan background yang memiliki warna yang sama dengan warna kulit. Pada penelitian ini akan digunakan metode average background. Adapun beberapa langkah pada metode average background, yaitu grayscaling, frame differencing, akumulasi background, thresholding, dan inversion. Berikut ini adalah penjelasan berserta pseudocode setiap langkah pada metode average background.

3.2.2.1 RGB to Grayscale Conversion

Setelah melakukan segmentasi berdasarkan warna kulit, diperlukan adanya suatu metode untuk menghilangkan background yang memiliki warna yang sama dengan warna kulit. Untuk menghilangkan background tersebut pada citra yang tertangkap oleh kamera web, diperlukan adanya proses perbandingan antara frame awal dengan frame selanjutnya pada video. Sebelum melalui proses tersebut, citra dikonversi menjadi citra keabuan (grayscale) agar pengolahan lebih mudah dan cepat dengan citra 8 bit. Adapun proses konversi citra warna (RGB) menjadi citra keabuan yaitu dilakukan dengan transformasi matematis menggunakan persamaan 2.1.

(53)

Tabel 3.1 Matriks Citra Warna (RGB) Ukuran 5x5 piksel

Maka proses perhitungan konversi nilai matriks (0,0) citra warna menjadi citra keabuan adalah seperti berikut :

Y = 0.299(R) + 0.588(G) + 0.114(B) = 0.299(31) + 0.588(32) + 0.114(22) = 9.269 + 19.371 + 2.508

= 31.148

Dengan melakukan cara perhitungan yang sama pada semua piksel citra warna, maka didapatkan hasil seperti Tabel 3.2.

Tabel 3.2 Hasil Konversi Citra Warna Menjadi Citra Keabuan

(54)

Proses konversi citra hasil segmentasi kulit pada citra yang tertangkap oleh kamera web, yang memiliki ruang warna RGB, menjadi citra keabuan pada penelitian ini ditunjukkan pada Gambar 3.5.

Gambar 3.5 Proses Konversi Citra Hasil Segmentasi Kulit Menjadi Citra Keabuan (Grayscale)

3.2.2.2 Frame Differencing

Citra hasil konversi warna grayscale selanjutnya akan dibandingkan antara citra frame awal dan frame selanjutnya. Pada OpenCV terdapat fungsi untuk melakukan frame differencing yaitu absdiff(). Fungsi ini menghitung perbedaan mutlak antara dua array atau matriks ketika kedua matriks tersebut memiliki ukuran dan jenis yang sama. Perhitungan yang dilakukan pada proses frame differencing adalah persamaan 2.26. Berikut ini adalah penjelasan tentang fungsi absdiff().

(a) Citra yang tertangkap oleh kamera web (b) Citra hasil segmentasi warna kulit

(55)

( 1, 2, )

Parameter :

 src1 : input frame awal yang akan dibandingkan  src2 : input frame selanjutnya yang akan dibandingkan  dst : hasil keluaran perbandingan frame berupa matriks citra

Berikut ini adalah pseudocode proses frame differencing pada penelitian ini.

Inisialisasi frame awal, frame selanjutnya dan frame perbedaan Inisialisasi jumlah frame = 0

IF (jumlah frame = 0) THEN

SET Frame perbedaan = frame selanjutnya ELSE

SET Absdiff(frame awal, frame selanjutnya, frame perbedaan) Jumlah frame = jumlah frame + 1

ENDIF

Frame awal = frame selanjutnya

Proses frame differencing dapat dilihat pada Gambar 3.6.

(56)

Gambar 3.6. Proses Frame Differencing

3.2.2.3 Akumulasi Background

Setelah citra yang ditangkap dikonversi warna menjadi citra keabuan, maka selanjutnya frame-frame tersebut akan diakumulasikan atau dikumpulkan lalu untuk menentukan frame yang didefinisikan sebagai background. Untuk mendefinisikan citra tersebut adalah background atau tidak, pada penelitian ini digunakan fungsi accumulateWeighted() yang tersedia pada OpenCV. Berikut ini adalah penjelasan tentang fungsi tersebut.

ℎ ( , , ℎ )

Parameter :

 src : citra masukan

 dst : citra keluaran berupa background yang terdeteksi. Parameter ini juga berperan sebagai akumulator

 alpha : bobot dari citra masukan. Parameter ini mengatur kecepatan pembaruan (seberapa cepat akumulator memperbarui background sebelumnya). Semakin kecil bobot yang dimasukkan, semakin cepat proses pembelajaran background

(57)

Gambar 3.7. Hasil Akumulasi Background

3.2.2.4 Thresholding

Proses thresholding yang mengubah citra keabuan menjadi citra biner pada tahap ini juga digunakan untuk memisahkan objek dari piksel-piksel noise hasil perbandingan frame pada tahap sebelumnya. Adapun jenis dan nilai threshold yang digunakan pada penelitian ini yaitu Threshold Binary Inverted dengan nilai 10 – 255 dan dimasukkan ke dalam persamaan 2.17. Berikut ini adalah pseudocode dari proses thresholding pada penelitian ini.

Inisialisasi nilai threshold = 10 Inisialisasi nilai maxVal = 255

Inisialisasi frame foreground : dst(x,y) FOR setiap nilai piksel src (x,y)

IF (src(x,y) > threshold) THEN

SET dst(x,y) = maxVal ELSE

THEN

SET dst(x,y) = 0 ENDIF

(58)

Proses thresholding pada penelitian ini dapat dilihat pada Gambar 3.8

Gambar 3.8. Proses Thresholding

3.2.2.5 Pembentukan Citra Negatif (Inversion)

Tahap inversion ini merupakan tahap akhir dalam penghilangan background pada citra yang tertangkap oleh kamera web. Tahap ini dilakukan untuk mendapatkan daerah (region) yang didefinisikan sebagai objek yang bergerak, yaitu tangan manusia. Proses inversion dapat dilakukan dengan persamaan 2.21 yang termasuk dalam fungsi bitwise_not() pada library OpenCV. Berikut ini adalah penjelasan tentang fungsi bitwise_not().

_ ( , )

Parameter :

 src : citra masukan berupa citra biner.

 dst : citra keluaran berupa citra biner yang telah diinversi

(59)

Gambar 3.9 Inversion

3.2.3 Perbaikan Citra (Image Enhancement)

Citra biner yang dihasilkan setelah proses penghilangan background pada citra yang tertangkap oleh kamera web masih memiliki banyak noise. Untuk menghilangkan noise-noise pada citra, maka akan dilakukan proses perbaikan citra (image enhancement). Proses ini sangat berguna untuk pendeteksian objek yang diperlukan sebelum diproses pada tahap selanjutnya. Tahap ini meliputi 3 (tiga) proses, yaitu erosion, dilation, dan Gaussian Blur. Berikut ini adalah penjelasan ketiga proses tersebut.

3.2.3.1 Erosion

Proses erosion dilakukan untuk menipiskan atau menghilangkan objek yang tidak diperlukan. Pada penelitian ini, proses erosi dilakukan dengan persamaan 2.12 yang sudah termasuk dalam fungsi erode() pada library OpenCV. Berikut ini adalah penjelasan tentang penggunaan fungsi tersebut pada penelitian ini.

( , , , ℎ , )

Parameter :

(60)

 kernel : structure element yang digunakan pada penelitian ini, yaitu sebuah kernel berbentuk ellipse yang berukuran 3 x 3 piksel  anchor : posisi titik acuan pada kernel. Pada penelitian ini digunakan

nilai (-1,-1) yaitu nilai default yang berarti menggunakan titik tengah pada kernel

 iteration : banyaknya perulangan proses erosi yang dilakukan. Pada penelitian ini, proses erosi dilakukan berulang sebanyak 2 kali.

Proses erosion pada penelitian ini dapat dilihat pada Gambar 3.10.

Gambar 3.10 Erosion

3.2.3.2 Dilation

Setelah objek yang tidak diperlukan hilang dengan proses erosion, maka selanjutnya objek akan ditebalkan dengan proses dilation. Pada penelitian ini, proses dilasi dilakukan dengan persamaan 2.13 yang sudah termasuk dalam fungsi dilate() pada library OpenCV. Berikut ini adalah penjelasan tentang penggunaan fungsi tersebut pada penelitian ini.

( , , , ℎ , )

Parameter :

 src : citra masukan, yaitu citra hasil proses erosi  dst : citra keluaran, yaitu citra hasil proses dilasi

(61)

 anchor : posisi titik acuan pada kernel. Pada penelitian ini digunakan nilai (-1,-1) yaitu nilai default yang berarti menggunakan titik tengah pada kernel

 iteration : banyaknya perulangan proses erosi yang dilakukan. Pada penelitian ini, proses erosi dilakukan berulang sebanyak 4 kali.

Proses erosion pada penelitian ini dapat dilihat pada Gambar 3.11.

Gambar 3.11 Dilation

3.2.3.3 Gaussian Blur

Proses Gaussian blur dilakukan untuk menghilangkan noise yang masih terdapat pada citra setelah proses dilasi, agar tidak terdefinisi sebagai titik objek. Gaussian Blur dapat dilakukan dengan persamaan fungsi Gaussian untuk citra dua dimensi yaitu persamaan 2.15 yang sudah termasuk dalam fungsi GaussianBlur() pada library OpenCV. Berikut ini adalah penjelasan tentang penggunaan fungsi tersebut pada penelitian ini.

( , , , )

Parameter :

 src : citra masukan, yaitu citra hasil proses dilasi  dst : citra keluaran, yaitu citra hasil Gaussian Blur

(62)

 sigmaX : nilai standar deviasi kernel Gaussian

Proses Gaussian blur pada penelitian ini dapat dilihat pada Gambar 3.12.

Gambar 3.12 Gaussian Blur

3.2.4 Ekstraksi Fitur

Setelah melalui proses perbaikan citra (image enhancement), selanjutnya akan dilakukan proses ekstraksi fitur dengan cara mendeteksi contour, convex-hull dan convexity defects pada objek. Tahap ini dilakukan agar dapat mengambil informasi dari objek untuk proses pengklasifikasian ataupun analisis data citra. Berikut ini adalah penjelasan tentang pendeteksian ketiga fitur tersebut.

3.2.4.1 Contour

Dari citra hasil proses enhancement akan dideteksi titik-titik kontur sebagai fitur awal dari pengklasifikasian objek yang terdeteksi. Pada penelitian ini, digunakan fungsi findContours() yang tersedia pada library OpenCV untuk mendeteksi titik-titik kontur pada citra biner hasil perbaikan citra (image enhancement) pada tahap sebelumnya. Berikut ini adalah penjelasan tentang fungsi tersebut.

( , , ℎ ℎ , , ℎ )

Parameter :

Gambar

Gambar 2.8. Contour (Dhawan & Honrao,  2013)
Gambar 2.10. Convexity Defects (Dhawan & Honrao, 2013)
gambar (image acquisition) melalui kamera web; resizing citra; konversi ruang warna
Gambar 3.1. Arsitektur umum
+7

Referensi

Dokumen terkait

As we mentioned before, this holds true especially for the sculptures made out of a quite flat stone block (fig. Missing points on the lateral parts and on the top. For

[r]

Kejadian sibling rivalry terbanyak pada kategori cukup dengan jarak kelahiran anak pada kategori cukup sebanyak 19 anak (64%), kemudian kejadian sibling rivalry

It could be concluded that dpw-umb T 3 were dried of poultry waste contained sufficient levels of gross energy, crude protein, crude fibre, ash, and fat it could be

Sistem pgelapgoran manajemen bertujuan untuk mengumpgulkan data yang kemudian dipgroses untuk menghasilkan informasi atau lapgoran yang dipgerlukan oleh manajer dalam menentukan

Dalam The Giver , nilai tanggung jawab muncul secara intens terutama pada diri tokoh utama (Jonas) yang memiliki niat untuk mengubah cara pandang masyarakatnya.. yang ia

Adapun kesimpulan dalam penelitian ini adalah bahwa metode yang diusulkan mampu meminimalkan total biaya minimum lebih baik dibandingkan metode sebelumnya pada kasus sistem

Mengingat hal demikian maka di ciptakanlah sebuah sistem yang mampu membantu user dalam menerima informasi mengenai data penduduk ataupun aktifitas kependudukan pada