• Tidak ada hasil yang ditemukan

Perangkat Lunak Untuk Mengendalikan Pointer Dengan Mata Menggunakan Metode Haar Cascade Dan Eye Tracking

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perangkat Lunak Untuk Mengendalikan Pointer Dengan Mata Menggunakan Metode Haar Cascade Dan Eye Tracking"

Copied!
127
0
0

Teks penuh

(1)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika

Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia

ADITYA EKA PRAMANA

10106367

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

BANDUNG

(2)

i

ABSTRAK

PERANGKAT LUNAK UNTUK MENGENDALIKAN POINTER DENGAN MATA MENGGUNAKAN METODE HAAR CASCADE

CLASSIFIER DAN EYE TRACKING

OLEH :

Aditya Eka Pramana 10106367

Perangkat lunak yang dibangun pada tugas akhir ini adalah sebuah pengendali pointer dengan menggunakan gerakan mata. Aplikasi ini merupakan salah satu bentuk aplikasi di bidang pengolahan citra (Image Processing) dan visi komputer (Computer Vision), dimana pengguna hanya menggerakkan matanya untuk mengendalikan pointer dan aplikasi akan mengikuti arah pandangan mata pengguna (Eye Tracking). Sehingga dengan adanya pengendali pointer ini dapat membantu mereka yang menyandang cacat fisik untuk berinteraksi dengan komputer.

Perangkat lunak pengendali pointer ini dibangun menggunakan bahasa pemrograman C#, dan menggunakan metode HaarCascade Classifier. Metode ini merupakan metode yang muncul pada tahun 2001 oleh Paul Viola dan Michael Jones. Metode ini menggunakan haar-like features dimana perlu dilakukan training terlebih dahulu untuk mendapatkan suatu pohon keputusan dengan nama cascade classifier sebagai penentu apakah ada obyek atau tidak dalam tiap frame yang di proses.

Perangkat lunak ini berjalan secara real time dan dinamis sehingga tiap informasi (cahaya,jarak maupun sudut antara mata pengguna dengan layar) yang didapat dari masing-masing pengguna sangat berpengaruh pada keberhasilan jalannya sistem. Tingkat keakuratan rata-rata aplikasi ini adalah sebesar 70% dengan pergerakan pointer dengan kecepatan antara 1-5 detik. Jarak optimal user terhadap kamera untuk pendeteksian object adalah sekitar 40 cm dari kamera.

(3)

ii

CASCADE AND EYE TRACKING METHOD

By :

Aditya Eka Pramana 10106367

Software that was built on this final project is software for controlling pointer using eye movement. This application is one form of application in the field of Image Processing and Computer Vision, where users only move their eyes to control pointer and then this application will follow the direction of the user’s eye view ( Eye Tracking ). So by having this software can help them who have physical disabilities to interaction with computer.

This software build using C# programming language, and use Haar Cascade Classifier method. This method is a method that pops up in 2001 by Paul Viola and Michael Jones. This method using Haar-like Features which need to be training first to get a decision three that called Cascade Classifier as a decider of whether there is an object or not in each frame which being procces.

This Software is running in realtime and dynamic so every information (such as : lighting, distance and angle between user’s eyes to screen) obtain from the respective users are very influential on the success of the course of system. The average level of this application accuration is about 70% with the pointer movement speed between 1-5 second. The optimal distance to the camera for object detection is about 40 cm from camera.

(4)

iii

Puji syukur penulis panjatkan kepada Tuhan Yang Maha Esa karena atas

berkat, rahmat dan karunia-Nyalah sehingga penulis dapat menyelesaikan skripsi

yang berjudul “Perangkat Lunak Untuk Mengendalikan Pointer Dengan Mata Menggunakan Metode Haar Cascade dan Eye Tracking”.

Penulis menyadari bahwa dalam penyusunan skripsi ini banyak

mengalami kesulitan dan hambatan, namun berkat bantuan dan bimbingan dari

berbagai pihak akhirnya skripsi ini dapat diselesaikan tepat pada waktunya.

Dengan penuh rasa syukur, ucapan terima kasih yang mendalam, serta

penghargaan yang tidak terhingga penulis sampaikan kepada :

1. Kedua orang tua saya, ayahanda Adi Samseri P. dan ibunda Sri Eka Lestari

yang tak lelah memberikan saya kasih sayang, dukungan, motivasi dan yang

terpenting adalah “doa” dari kalian. Terima kasih juga kepada kedua adik

saya Sandi dan Dimas yang telah menjaga papa dan mama di rumah.

2. Ibu Dian Dharmayanti S.T. selaku dosen pembimbing saya yang senantiasa

mendampingi saya selama penyusunan tugas akhir ini.

3. Ibu Mira Kania Sabariah S.T., M.T selaku ketua jurusan Teknik Informatika

dan juga dosen RPL saya. Karena beliau saya tahu banyak hal tentang

Pemodelan Sistem.

(5)

iv

ngasih support ke aku, trus bawain sarapan buat aku”.

7. Kepada teman-teman seperjuangan ( Jeri, Rekha, Jessy, Regal, Danyary, Nata

) dan semua anak IF-8 2006. Thanks all...!!!. Terima kasih juga kepada mas

Aji yang udah banyak membantu menurunkan berat badan.

8. Kepada Semua pihak yang tak dapat penulis sebutkan satu-persatu yang telah

memberikan bantuan, doa, dan dorongan dalam penyusunan skripsi ini. Tiada

kata yang pantas penulis ucapkan selain kata terima kasih yang

sebesar-besarnya kepada semua pihak yang telah membantu pembuatan skripsi ini,

semoga Allah SWT membalas kebaikan yang telah diberikan kepada penulis,

akhirnya penulis berharap semoga skripsi ini bermanfaat bagi kita semua.

Bandung, Agustus 2011

(6)

1

1.1 Latar Belakang Masalah

Penggunaan komputer yang membutuhkan interaksi antara manusia dan

komputer dewasa ini semakin banyak dikembangkan. Oleh karena itu saat ini

banyak sekali bermunculan perangkat komputer yang berguna untuk memudahkan

manusia dalam berinteraksi dengan komputer. Perangkat komputer yang umum

digunakan adalah keyboard, mouse, monitor, speaker, printer, kamera (webcam) dan lain sebagainya. Ada juga beberapa tambahan seperti joystick, pedal dan setir yang biasanya digunakan sebagai kendali game pada komputer. Kamera (webcam)

sebagai salah satu perangkat komputer, saat ini semakin banyak dipakai dan

dikembangkan. Terlebih lagi saat ini mulai berkembang sebuah teknologi yang

menginginkan agar komputer juga dapat melihat seperti halnya manusia dapat

melihat. Dengan adanya kamera maka alat ini bisa dijadikan sebagai mata bagi

komputer untuk dapat melihat lingkungan di sekitarnya.

Salah satu perangkat komputer yang sangat dibutuhkan manusia untuk

berinteraksi dengan komputer adalah mouse, yang digunakan untuk mengendalikan pointer. Pada umumnya mouse dikendalikan menggunakan tangan manusia. Untuk manusia normal (tidak menderita cacat fisik) mengendalikan

(7)

menggunakan mouse sangatlah sulit. Sehingga dibutuhkan teknologi sebagai pengganti mouse bagi orang yang menderita cacat fisik yang dapat digunakan untuk mengendalikan pointer.

Dua teknologi yang mengarah ke perkembangan itu dan sekaligus juga

mendukungnya adalah Computer Vision dan Image Processing. Computer Vision

mempunyai tujuan utama untuk membuat keputusan yang berguna tentang obyek

fisik nyata dan pemandangan berdasarkan image yang didapat dari sensor. Secara sederhana Computer Vision ingin membangun sebuah mesin pandai yang dapat melihat. Image Processing merupakan salah satu jenis teknologi untuk menyelesaikan masalah mengenai pemrosesan gambar. Dalam Image Processing

gambar yang ada diolah sedemikian rupa sehingga gambar tersebut lebih mudah

untuk diproses. Dalam tugas akhir ini obyek yang akan menjadi acuan pengendali

pointer ini adalah gerakan mata user yang sedang berinteraksi dengan komputer

dan alat yang digunakan sebagai sensor adalah kamera. Metode yang digunakan

untuk mendeteksi adanya obyek adalah Haar Cascade, yaitu metode deteksi objek yang membangun sebuah boosted rejection cascade, yang akan membuang data training negatif sehingga didapatkan suatu keputusan untuk menentukan data

positif. Haar Cascade adalah metode supervisied learning yaitu metode yang membutuhkan data training untuk dapat mendeteksi obyek-obyek tertentu. Untuk

itu, dilakukan training data terlebih dahulu sebelum akan menggunakan metode

(8)

penggunaan mata sebagai pengendali pointer disini diharapkan dapat

memudahkan user khususnya para penyandang cacat fisik (pada bagian tubuh

motorik) untuk berinteraksi dengan komputer.

Berdasarkan uraian di atas, penulis ingin membangun perangkat lunak

yang dapat memudahkan user khususnya para penyandang cacat fisik (pada

bagian tubuh motorik) untuk berinteraksi dengan komputer. Oleh karena itu, penulis mengambil tugas akhir dengan judul “Perangkat Lunak Untuk

Mengendalikan Pointer Dengan Mata Menggunakan Metode Haar Cascader Dan

Eye Tracking”.

1.2 Perumusan masalah

Berdasarkan latar belakang masalah yang telah diuraikan diatas, maka

yang menjadi permasalahan adalah bagaimana membangun perangkat lunak yang

dapat memudahkan user khususnya para penyandang cacat fisik (pada bagian

tubuh motorik) untuk berinteraksi dengan komputer.

1.3 Maksud dan Tujuan 1.3.1 Maksud

Maksud dari penulisan tugas akhir ini adalah untuk membangun perangkat

lunak untuk mengendalikan pointer dengan mata.

1.3.2 Tujuan

Adapun tujuan dari penulisan tugas akhir ini adalah sebagai alat bantu

untuk mengendalikan pointer bagi pengguna yang menyandang cacat fisik (pada

(9)

1.4 Batasan Masalah

Adapun batasan - batasan masalah dalam pembangunan perangkat lunak

yang akan dibangun adalah sebagai berikut:

1. Data yang diambil dari obyek yang ditangkap ialah berupa citra digital.

2. Sistem hanya mampu mengendalikan pointer.

3. Sistem hanya mampu melakukan pergerakan pointer, klik kanan dan klik

kiri.

4. Sistem hanya mampu menangkap mata dengan posisi tegak lurus.

5. Sistem operasi yang digunakan adalah Microsoft Windows XP

Professional.

6. Sistem dibangun menggunakan Microsoft Visual Studio 2010.

7. Sistem bisa berjalan sebagai background, serta dapat juga berjalan diatas

aplikasi lainnya.

8. Metode yang digunakan adalah Haar Cascade Classifier. 9. Sistem menggunakan library OpenCV 2.2

1.5 Metode Penelitian

Metodologi penelitian yang digunakan untuk membangun perangkat lunak

ini menggunakan metode analisis deskriptif yaitu suatu metode yang bertujuan

untuk mendapatkan gambaran yang jelas tentang hal-hal yang diperlukan, melalui

(10)

1.5.1 Pengumpulan Data

Metode pengumpulan data merupakan suatu metode atau cara untuk

mendapatkan data-data yang dibutuhkan. Metode yang digunakan adalah :

1. Studi Pustaka

Studi pustaka adalah pencarian referensi – referensi yang berhubungan

dengan penyusunan tugas akhir, baik melalui internet ataupun buku – buku

referensi yang meliputi image processing, maupun computer vision. Berdasarkan referensi yang telah terkumpul, dapat diambil kesimpulan mengenai

perancangan sistem, teknik pengerjaan, maupun metode – metode apa saja yang

akan digunakan dalam penyelesaian tugas akhir ini. Pada tahap ini dilakukan

pendalaman buku-buku literature yang berhubungan dengan eye tracking, blink detection dan object detection menggunakan haar cascade classifier. Serta berbagai macam materi tentang konsep pemrograman C# dan OpenCV.

2. Studi Dokumentasi

Studi dokumentasi adalah mempelajari dokumentasi yang disusun dalam

pembuatan suatu aplikasi. Pada umumnya, dokumentasi membahas fungsi dari

masing-masing elemen aplikasi untuk mempermudah pengguna dalam pemakaian

aplikasi atau membahas tentang langkah-langkah pembuatan suatu aplikasi

beserta catatan-catatan yang disertakan. Studi dokumentasi lebih banyak

(11)

1.5.2 Pembangunan Perangkat Lunak

Metode penelitian yang digunakan adalah model Sequensial Linear.

Secara umum, tahap-tahap penelitian dalam model Sequensial Linearadalah :

1. Analisis kebutuhan

Analisis kebutuhan meliputi penentuan perangkat lunak, penentuan

perangkat keras yang sesuai dengan perangkat lunak dan aplikasi yang hendak

dibuat, dan data-data yang diperlukan untuk membuat aplikasi.

2. Desain sistem dan perangkat lunak

Pada tahap ini, langkah awal yang dilakukan adalah membuat rancangan

sistem secara keseluruhan. Setelah itu setiap item akan diperjelas dengan

detail-detail proses, beserta target yang akan dicapai pada tiap-tiap prosesnya. Pada

tahap ini juga akan dilakukan pengambilan sampel untuk selanjutnya dilakukan

training sehinnga sistem dapat mengenali obyek yang akan di tracking.

3. Implementasi

Sistematika pembuatan perangkat lunak, disesuaikan dengan desain yang

telah ditentukan pada tahap perancangan. Tahapan ini meliputi, coding, implementasi algoritma, serta implementasi terhadap hasil-hasil yang diperoleh

dari referensi. Pembuatan perangkat lunak ini akan dikerjakan menggunakan

bahasa pemrograman C# dan OpenCV, serta menggunakan sistem operasi

(12)

4. Pengujian

Pada tahap ini penulis melakukan pengujian terhadap sistem yang telah

dibuat dan melakukan analisa dengan mempertimbangkan kemungkinan

kesalahan yang terjadi baik dari pendeteksian objek, pendeteksian gerakan

maupun pendeteksian kedipan.

1.5.3 Sistematika Penulisan BAB I PENDAHULUAN

Bab ini berisi latar belakang, perumusan masalah, maksud dan tujuan,

batasan masalah, metodologi penelitian dan sistematika penulisan.

BAB II TINJAUAN PUSTAKA

Berisi konsep dasar seperti deteksi objek, deteksi gerakan, deteksi kedipan

dan teori – teori pendukung yang digunakan untuk tahap analisis, perangkat lunak

dan perangkat keras yang digunakan dalam pembangunan perangkat lunak.

(13)

BAB III ANALISIS DAN PERANCANGAN

Berisi tentang analisis kebutuhan perangkat lunak untuk menganalisis

masalah yang ada dalam pembangunan perangkat lunak, pemodelan terstruktur

untuk memperlihatkan keterkaitan antar fungsi yang terdapat dalam perangkat

lunak serta perancangan antarmuka perangkat lunak.

BAB 1V IMPLEMENTASI DAN PENGUJIAN

Berisi implementasi dari hasil analisis dan perancangan, serta hasil

pengujian perangkat lunak.

BAB IV KESIMPULAN DAN SARAN

Berisi tentang kesimpulan yang dapat ditarik dan saran-saran yang dapat

(14)

9

2.1 Mata

Mata adalah indra terbaik yang dimiliki oleh manusia sehingga citra

(gambar) memegang peranan penting dalam perspektif manusia. Namun mata

manusia memeliki keterbatasan dalam menangkap sinyal elektromagnetik. [5]

Mengedipkan mata adalah suatu proses penutupan dan pembukaan dari

kelopak mata dalam waktu yang cepat. Proses tersebut merupakan suatu fungsi

yang penting untuk memberikan air mata pada bagian-bagian mata dan untuk

memindahkan benda yang tidak diinginkan dari permukaan kornea mata dan

selaput mata.

2.2 Pengolahan Citra ( Image Processing )

Pengolahan citra (image processing) adalah pengolahan suatu citra (gambar) dengan menggunakan komputer secara khusus, untuk menghasilkan

suatu citra yang lain. [9]

Sesuai dengan perkembangan komputer itu sendiri, pengolahan citra

mempunyai dua tujuan utama, yaitu sebagai berikut:

1. Memperbaiki kualitas citra, dimana citra yang dihasilkan dapat menampilkan

informasi secara jelas. Hal ini berarti manusia sebagai pengolah informasi

(15)

2. Mengekstraksi informasi ciri yang menonjol pada suatu citra, dimana hasilnya

adalah informasi citra dimana manusia mendapatkan informasi ciri dari citra

secara numerik atau dengan kata lain computer (mesin) melakukan interprestasi terhadap informasi yang ada pada citra melalui besaran-besaran

data yang dapat dibedakan secara jelas (berupa besaran numerik).

Dalam perkembangan lebih lanjut, image processing dan computer vision

digunakan sebagai pengganti mata manusia dengan perangkat input image capture

seperti kamera dan scanner dijadikan sebagai mata dan mesin komputer dijadikan

sebagai otak yang mengolah informasi. Sehingga muncul beberapa pecahan

bidang yang menjadi penting dalam computer vision antara lain: pattern recognition (pengenalan pola), biometric (pengenalan identifikasi manusia berdasarkan ciri-ciri biologis yang tampak pada badan manusia), content based image and video retrieval (mendapatkan kembali citra atau video dengan informasi tertentu), video editing dan lain-lain.

2.2.1 Dasar – Dasar Pengolahan Citra Digital

Citra digital diasumsikan dengan persamaan f(x,y) dimana x menyatakan

nomor baris, y menyatakan nomor kolom, dan f menyatakan nilai derajat keabuan

dari citra. Sehingga (x,y) adalah posisi dari piksel dan f adalah nilai derajat

keabuan pada titik (x,y). Kecerahan setiap citra disimpan dengan cara pemberian

nomor pada setiap piksel. Makin tinggi nomor piksel maka makin gelap (hitam)

(16)

makin terang. Sistem yang umum memiliki 256 tingkat kecerahan untuk setiap

piksel, yang paling terang adalah 255 dan yang paling gelap adalah 0.

Citra atau gambar terbagi dalam tiga tipe adalah sebagai berikut: [5]

a. Gambar Grayscale

Citra yang terdiri dari satu layer warna dengann derajat keabuan tertentu.

Dinyatakan dalam suatu fungsi :

f y Σ [ … ]

……….. .

b. Gambar Biner

Citra yang hanya memiliki dua nilai yaitu 1 dan 0. Dinyatakan dalam suatu

fungsi :

f y Σ { }

……….. .

y

0,0 x

. f(x1,y1)

y1

x1

(17)

c. Gambar berwarna

Citra yang terdiri dari tiga layer warna yaitu RGB (Red-Green-Blue) dimana R-layer adalah matrik yang menyatakan derajat kecerahan untuk warna merah, G-layer adalah matrik yang menyatakan derajat kecerahan untuk warna hijau, dan B-layer adalah matrik yang menyatakan derajat kecerahan untuk warna biru. Representasi dalam citra digital dinyatakan

dalam persamaan :

f

R

(x,

y Σ [ … ]

f

G

y Σ [ … ]

……….. .

f

B

y Σ [ … ]

Proses pengolahan citra digital dengan menggunakan komputer digital

adalah terlebih dahulu mentransformasikan citra ke dalam bentuk besaran-besaran

diskrit dari nilai tingkat keabuan pada titik-titik elemen citra. Bentuk citra ini

disebut citra digital. Elemen-elemen citra digital apabila ditampilkan dalam layar

monitor akan menempati sebuah ruang yang disebut dengan piksel (picture elemen/pixel).

2.2.2 Model Citra Digital

Citra ada dua macam yaitu citra kontinu dan citra diskrit(citra digital).Citra

kontinu dihasilkan sistem optik yang menerima sinyal analog, misalnya mata

manusia dan kamera analog. Sedangkan citra diskrit dihasilkan melalui proses

digitalisasi sehingga mampu menghasilkan citra diskrit (citra digital) misalnya

(18)

(x, y) : koordinat pada bidang dua dimensi

f(x, y) : intensitas cahaya (brightness) pada titik (x, y), besarnya 0 < f(x,y)< ∞

Intensitas cahaya, f(x, y), sebenarnya merupakan hasil kali antara jumlah cahaya yang berasal dari sumbernya (illumination) dengan derajat kemampuan obyek memantulkan cahaya (reflectance), dinyatakan dalam bentuk persamaan berikut :

dimana :

i(x, y) : illumination, besarnya 0 < i(x, y) < ∞ r(x, y) : reflectance, besarnya 0 < r(x, y) < 1

Nilai i(x, y) ditentukan oleh sumber cahaya. Contoh nilai i(x, y) : 1. Pada hari cerah, matahari menghasilkan i(x, y) ≈ 9000 foot candles

2. Pada hari mendung, matahari menghasilkan i(x, y) ≈ 1000 foot candles

3. Pada malam bulan purnama, sinar bulan menghasilkan i(x, y) ≈ 0.01 foot candles

Nilai r(x, y) ditentukan oleh karakteristik obyek di dalam gambar. Contoh nilai r(x, y) :

1. Benda hitam mempunyai r(x, y) = 0.01 2. Dinding putih mempunyai r(x, y) = 0.8

3. Benda logam stainless steel mempunyai r(x, y) = 0.65

……… .

(19)

2.2.3 Model Warna RGB

Dasar dari pengolahan citra adalah pengolahan warna RGB pada posisi

tertentu. Dalam pengolahan citra, warna dipresentasikan dengan nilai hexadesimal

dari 0x00000000 sampai 0x00ffffff. Warna hitam adalah 0x00000000 dan warna

putih adalah 0x00ffffff. Definisi nilai 8 warna di atas seperti Gambar 2.2, variabel 0x00 menyatakan angka dibelakangnya adalah hexadesimal.

Pengkodean warna RGB dapat ditulis dalam angka hexadesimal (basis 16)

untuk masing-masing komponen R, G atau B. Misalkan:

1. Untuk Hitam murni akan ditulis dengan kode #000000 (R=00, G=00, B=00)

2. Untuk Putih sempurna akan ditulis dengan kode #FFFFFF (R=FF, G=FF,

B=FF)

3. Untuk Biru murni akan ditulis dengan kode #0000FF (R=00, G=00, B=FF)

Model Warna RGB adalah sebuah model warna additif dimana pancaran warna red (merah), green (hijau), dan blue (biru) ditambahkan bersama dengan cara yang bervariasi untuk mereproduksi susunan warna yang lebar. Warna additif

digunakan untuk lighting, video, dan monitor. Monitor sebagai contoh,

(20)

menciptakan warna dengan memancarkan cahaya melalui merah, hijau dan biru

fosfor.

Tujuan utama dari model warna RGB adalah untuk mempresentasikan

ulang, dan menampilkan gambar dalam sistem elektronik, misalnya dalam televisi

dan komputer. Model warna RGB juga digunakan dalam fotografi konvensional.

RGB adalah sebuah ruang warna yang sifatnya bergantung kepada

perangkat. Perangkat yang berbeda akan mendeteksi atau mereproduksi nilai RGB

secara berbeda. Untuk membentuk warna dengan RGB, tiga cahaya berwarna

balok (satu merah, satu hijau, dan satu biru) harus ditumpangkan (misalnya

dengan emisi dari layar hitam, atau dengan refleksi dari layar putih).

Masing-masing dari tiga balok disebut sebagai komponen warna, dan Masing-masing-Masing-masing

dapat memiliki intensitas yang berbeda.

RGB sering digunakan dalam perangkat input seperti: TV berwarna dan

kamera video, scanner, dan kamera digital. Perangkat output seperti: TV dalam berbagai teknologi (CRT, LCD, plasma, dll), komputer dan layar HP, video

proyektor, layar LED multiwarna, dan layar lebar seperti JumboTron dan

lain-lain.

RGB juga umumnya digunakan dalam pembuatan desain sebuah website.

Awalnya kedalaman warna yang terbatas pada sebagian besar perangkat keras

video memicu keterbatasan palet warna menjadi 216 warna RGB, hal itu

(21)

24-bit, penggunaan penuh dari 16.7 juta warna dari kode warna RGB HTML tidak

lagi menimbulkan masalah bagi sebagian besar pengunjung website.

2.2.4 Pengenalan Pola ( Pattern Recognition )

Pengenalan pola (Pattern Recognition) adalah suatu ilmu untuk mengklasifikasikan atau menggambarkan sesuatu berdasarkan pengukuran

kuantitatif fitur (ciri) atau sifat utama dari suatu objek. [5]

Pengenalan pola mengelompokkan data numeric dan simbolik (termasuk

citra) secara otomatis oleh mesin (dalam hal ini computer). Tujuan

pengelompokan adalah untuk mengenali suatu objek di dalam citra. Manusia bisa

mengenali objek yang dilihatnya karena otak manusia telah belajar

mengklasifikasi objek-objek di alam sehingga mampu membedakan suatu objek

dengan objek lainnya. Kemampuan sistem visual manusia inilah yang dicoba

ditiru oleh mesin. Komputer menerima masukan berupa citra objek yang akan

diidentifikasi, memproses citra tersebut, dan memberikan keluaran berupa

deskripsi objek didalam citra.

(22)

Contoh pengenalan pola misalnya citra pada Gambar 2.5 adalah citra mata yang digunakan sebagai data masukan untuk mengenali mata. Dengan

menggunakan suatu algoritma pengenalan pola, diharapkan komputer dapat

mengenali bahwa citra tersebut adalah mata.

2.2.5 Penskalaan Citra ( Scaling )

Penskalaan citra (scaling) adalah sebuah operasi geometri yang memberikan efek memperbesar atau memperkecil ukuran citra input sesuai dengan variabel penskalaan citranya.

Citra Pengenalan

Pola

Deskripsi Objek

Gambar 0.4 Pengenalan Pola

(23)

Penskalaan citra (scaling) digunakan untuk memperbesar (zoom-in) atau memperkecil (zoom-out) citra. Rumus yang digunakan untuk penskalaan citra adalah :

Keterangan :

Sh = faktor skala horizontal

Sv = faktor skala vertikal

Gambar Asli Gambar Hasil Scaling

400 x 200 pixel

200 x 100 pixel

Gambar 0.6 Penskalaan Citra

……..………… . ) ’ Sh

(24)

2.2.6 Grayscale

Citra Grayscale adalah citra yang hanya memiliki satu nilai kanal pada setiap pixelnya, dengan kata lain nilai bagian Red = Green = Blue. Nilai tersebut digunakan untuk menunjukkan tingkat intensitas. Warna yang dimiliki adalah

warna dari hitam, keabuan dan putih. Tingkat keabuan di sini merupakan warna

abu dengan berbagai tingkatan dari hitam hingga mendekati putih. [5]

Pengubahan dari citra berwarna ke bentuk grayscale mengikuti aturan sebagai berikut :

Contoh gambar hasil grayscale :

2.2.7 Tresholding

Tresholding digunakan untuk mengatur jumlah derajat keabuan yang ada pada citra.. Proses tresholding ini pada dasarnya adalah proses pengubahan kuantisasi pada citra, sehingga untuk melakukan tresholding dengan derajat keabuan dapat digunakan rumus:

Gambar asli Gambar grayscale

Gambar 0.7 Citra Grayscale

………..…… .6)

(25)

Keterangan :

w = Nilai derajat keabuan sebelum thresholding

b = Jumlah keabuan { b = (256)}

x = Nilai derajat keabuan setelah thresholding

Proses tresholding akan menghasilkan citra biner, yaitu citra yang memiliki dia nilai tingkat keabuan yaitu hitam dan putih. Secara umum proses

tresholding citra grayscale untuk menghasilkan citra biner adalah sebagai berikut:

Berikut ini contoh thresholding untuk mengubah citra grayscale menjadi 2

warna yaitu hitam dan putih :

Gambar 0.8 Citra Tresholding

……..……..……… . )

……… . )

{ 1

if f(x,y)

T }

{ 0

if f(x,y)

< T }

(26)

2.3 Sistem Real Time

Sistem real time merupakan suatu sistem yang menangkap citra, memindahkan bingkai ke dalam memori computer, melakukan analisis dan

perhitungan, dan menghasilkan citra lain atau lebih lagi sering digunakan untuk

melakukan aksi, misalnya memberi predikat pada obyek yang diambil citranya

seperti pada sistem sortasi, atau menggerakkan manipulator untuk memetik buah

pada robot pemanen buah, dan sebagainya. [10]

Menurut kamus “Oxford Dictionary of Computing”, Real-time system dapat didefinisikan sebagai: “Sistem apapun dalam hal waktu dimana suatu

keluaran dihasilkan adalah penting. Hal ini biasanya dikarenakan suatu masukan

yang berhubungan dengan suatu pergerakan dalam dunia fisik, dan keluarannya

harus tetap memiliki hubungan dengan pergerakan tersebut. Keterlambatan dari

waktu masuk sampai waktu keluar harus cukup kecil dan memenuhi batasan

waktu yang dapat diterima”.

Secara umum sistem real time merupakan suatu ukuran kinerja suatu sistem tertentu yang mana menyangkut batasan kinerja sistem dan tahapan

perancangan sistem. Dalam sebuah sistem real time yang mana memiliki permasalahan waktu harus nyata, maksudnya harus memiliki persyaratan

pewaktuan yang sesuai dengan keadaan nyata yang dijadikan parameter dalam

(27)

1. Mengidentifikasi sejumlah titik acuan atau reference points, dengan syarat koordinat titik – titik citra pada kamera diketahui dan koordinat-koordinat

pada citra realtime juga diketahui, sehingga :

Dimana : (U,V)  koordinat – koordinat bidang citra

(u, v, t)  koordinat – koordinat homogenus

2. Konversi koordinat – koordinat citra ke dalam dunia nyata dengan matriks 3 x

4 berikut :

Jika dilanjutkan maka akan diperoleh :

Bila keempat titik ini dikumpulkan, nilai – nilai di dalam matriks

dapat diselesaikan menggunakan persamaan simultan. x.a1 + y.a2 + z.a3 + a4 = u

x.b1 + y.b2 + z.b3 + b4 = v x.c1 + y.c2 + z.c3 + c4 = t

U = u/t

V= v/t

……… . )

……… . )

……… . )

(28)

2.4 Computer Vision

Terminologi lain yang berkaitan erat dengan pengolahan citra digital

adalah computer vision atau machine computer. Pada hakikatnya, computer vision

mencoba meniru cara kerja visual manusia (Human Vision). Human Vision

sesungguhnya sangat kompleks, manusia melihat obyek dengan indera

penglihatan (mata) lalu obyek citra diteruskan ke otak untuk diinterpretasi

sehingga manusia mengerti obyek apa yang tampak dalam pandangan matanya.

Hasil interpretasi ini mungkin digunakan untuk mengambil suatu keputusan.

Sebagaimana layaknya mata dan otak, computer vision adalah suatu sistem yang mempunyai kemampuan untuk menganalisis obyek secara visual, setelah

data obyek yang bersangkutan dimasukkan dalam bentuk citra (image). [10] Proses-proses dalam computer vision dibagi dalam 3 (tiga) aktifitas : 1. Memperoleh atau mengakuisisi citra digital.

2. Melakukan teknik komputasi untuk memproses atau memodifikasi data citra.

3. Menganalisis dan menginterpretasi citra menggunakan hasil pemrosesan

untuk tujuan tertentu, misalnya memandu robot, mengontrol peralatan,

memantau manufaktur dan lain-lain.

Pengolahan citra merupakan proses awal (preprocessing) pada computer vision, sedangkan pengenalan pola merupakan proses untuk menginterpretasi citra. Teknik-teknik di dalam pengenalan pola memainkan peranan penting dalam

(29)

2.4.1 Elemen-Elemen Computer Vision

Gambar 2.9 di bawah ini adalah struktur yang mendasari elemen-elemen suatu mesin vision.

Keterangan gambar di atas adalah sebagai berikut :

a. Light sources, merupakan sumber cahaya yang digunakan sebagai sumber untuk aplikasi seperti layar laser, sistem robotika dan sebagainya.

b. Scence, merupakan kumpulan objek.

(30)

c. Image Device, merupakan alat yang digunakan untuk mengubah gambar menjadi suatu yang dimengerti oleh mesin.

d. Image, merupakan gambar dari suatu objek yang merupakan representasi dari keadaan sesungguhnya.

e. Machine vision, merupakan mesin yang menginterpretasikan gambar yang berkenaan dengan cirri-ciri pola maupun objek yang dapat ditelusuri oleh

sistem.

f. Symbolic description, merupakan sistem yang dapat digunakan untuk menganalogikan struktur kerja sistem ke simbol-simbol tertentu yang dapat

mimengerti oleh sistem.

g. Aplication feedback, merupakan suatu keadaan yang dapat memberikan respon untuk menerima gambar dari suatu sistem penglihatan.

2.5 Deteksi Mata (Eye Detection)

Untuk deteksi mata, pada penelitian ini menggunakan metode yang

dibangun oleh OpenCV yaitu cvHaar. cvHaar adalah teknik modern yang mem-verifikasi roman wajah atau obyek yang lainnya. Selain untuk mendeteksi wajah,

metode ini juga bisa digunakan untuk mendeteksi lokasi mata. Deteksi obyek oleh

OpenCV diajukan oleh Paul Viola dan dikembangkan oleh Rainer Lienhart.

(31)

(dalam penelitian ini mata atau bukan mata). Klasifikasi dilakukan dengan

menggunakan data yang disimpan dalam file XML, dimana berfungsi untuk

memutuskan klasifikasi tiap lokasi gambar. Instaler OpenCV sudah termasuk didalamnya data XML, untuk deteksi wajah atau mata. Dalam aplikasinya cukup

memberitahu software, dimana dapat menemukan file data yang ingin digunakan.

2.5.1 Integral Proyeksi

Integral proyeksi adalah suatu metode yang digunakan untuk mencari

daerah lokasi dari obyek. Metode ini dapat kita gunakan untuk mendeteksi batas

dari daerah gambar yang berbeda sehingga kita bisa mencari daerah lokasi kepala,

tangan, kaki dan fitur – fitur lainnya. Integral ini juga di sebut dengan integral

baris dan kolom dari pixel, karena integral ini menjumlahkan pixel per baris dan

pixel per kolom. Dari metode ini akan dengan mudah untuk menemukan daerah

lokasi objek yang diperlukan.

Rumus dari Integral Proyeksi adalah sebagai berikut :

(32)

Contoh penggunaan integral proyeksi dalam pengolahan image :

Contoh Penghitungan dalam integral proyeksi :

2.5.2 Metode Haar Cascade Classifier

Proses deteksi adanya citra mata dalam sebuah gambar pada OpenCV,

menggunakan sebuah metode yang dipublikasikan oleh Paul Viola dan Michael

Jones tahun 2001. Umumnya disebut metode Haar Classifier. Metode ini

merupakan metode yang menggunakan statistical model (classifier). Pendekatan untuk mendeteksi objek dalam gambar menggabungkan empat konsep utama :

Gambar 0.10 Contoh Integral Proyeksi

(33)

1. Training data

2. Fitur segi empat sederhana yang disebut fitur Haar.

3. Integral image untuk pendeteksian fitur secara cepat.

4. Pengklasifikasi bertingkat (Cascade classifier) untuk menghubungkan banyak

fitur secara efisien.

2.5.2.1 Training data pada Haar

Metode ini memerlukan 2 tipe gambar objek dalam proses training yang dilakukan, yaitu :

1. Positive samples

Berisi gambar obyek yang ingin di deteksi, apabila ingin mendeteksi mata

maka positive samples ini berisi gambar mata, begitu juga obyek lain yang ingin dikenali.

2. Negative samples

Berisi gambar obyek selain obyek yang ingin dikenali, umumnya berupa

gambar background (tembok, pemandangan, lantai, dan gambar lainnya). Resolusi untuk sampel negatif disarankan untuk memiliki resolusi yang sama

dengan resolusi kamera.

(34)

2.5.2.2 Sistem Kerja Algoritma Haar Cascade Classifier

Algoritma Haar menggunakan metode statistikal dalam melakukan

pengenalan mata. Metode ini menggunakan simple haar-like features dan juga a cascade of boosted tree classifier. Classifier ini menggunakan gambar berukuran tetap. Cara kerja dari haar dalam mendeteksi mata adalah menggunakan teknik

sliding window pada keseluruhan gambar dan mencari apakah terdapat bagian dari gambar yang berbentuk seperti mata atau tidak. Haar juga memiliki kemampuan

untuk melakukan scalling sehingga dapat mendeteksi adanya mata yang berukuran lebih besar ataupun lebih kecil dari gambar pada classifier.

Tiap feature dari haar-like feature didefinisikan pada bentuk dari feature, diantaranya koordinat dari feature dan juga ukuran dari feature tersebut.

2.5.2.3 Haar Feature

Haar Feature adalah fitur yang digunakan oleh Viola dan Jones didasarkan pada Wavelet Haar. Wavelet Haar adalah gelombang tunggal bujur sangkar (satu interval tinggi dan satu interval rendah). Untuk dua dimensi, satu

terang dan satu gelap. Selanjutnya kombinasi-kombinasi kotak yang digunakan

(35)

Setiap Haar-like feature terdiri dari gabungan kotak - kotak hitam dan putih

3 tipe kotak(rectangular) feature:

Tipe two-rectangle feature (horisontal/vertikal) Tipe three-rectangle feature

Tipe four-rectangle feature

Adanya fitur Haar ditentukan dengan cara mengurangi rata-rata piksel

pada daerah gelap dari rata-rata piksel pada daerah terang. Jika nilai perbedaannya

itu diatas nilai ambang atau treshold, maka dapat dikatakan bahwa fitur tersebut

ada.

Nilai dari Haar-like feature adalah perbedaan antara jumlah nilai-nilai piksel graylevel dalam daerah kotak hitam dan daerah kotak putih:

(36)

Kotak Haar-like feature dapat dihitung secara cepat menggunakan “integral image

2.5.2.4 Integral Image

Integral Image digunakan untuk menentukan ada atau tidaknya dari ratusan fitur Haar pada sebuah gambar dan pada skala yang berbeda secara

efisien. Pada umumnya, pengintegrasian tersebut berarti menambahkan unit-unit

kecil secara bersamaan. Dalam hal ini unit-unit kecil tersebut adalah nilai-nilai

piksel. Nilai integral untuk masing-masing piksel adalah jumlah dari semua

piksel-piksel dari atas sampai bawah. Dimulai dari kiri atas sampai kanan bawah,

keseluruhan gambar itu dapat dijumlahkan dengan beberapa operasi bilangan

bulat per piksel.

(a)

(b)

Gambar 0.13 Integral Image

(37)

Seperti yang ditunjukkan oleh gambar 2.13(a) di atas setelah pengintegrasian, nilai pada lokasi piksel (x,y) berisi jumlah dari semua piksel di

dalam daerah segiempat dari kiri atas sampai pada lokasi (x,y) atau daerah yang

diarsir. Untuk menentukan nilai rata-rata piksel pada area segiempat (daerah yang

diarsir) ini dapat dilakukan hanya dengan membagi nilai pada (x,y) oleh area

segiempat.

Untuk mengetahui nilai piksel untuk beberapa segiempat yang lain missal,

seperti segiempat D pada gambar 2.13(b) di atas dapat dilakukan dengan cara menggabungkan jumlah piksel pada area segiempat A+B+C+D, dikurangi jumlah

dalam segiempat A+B dan A+C, ditambah jumlah piksel di dalam A. Dengan,

A+B+C+D adalah nilai dari integral image pada lokasi 4, A+B adalah nilai pada

lokasi 2, A+C adalah nilai pada lokasi 3, dan A pada lokasi 1. Sehingga hasil dari

D dapat dikomputasikan :

Contoh Integral Image :

P(x, y)

∑ i ’ y’

D = (A+B+C+D)-(A+B)-(A+C)+A

0 8 6 1

1 5 9 0

0 7 5 0

2 8 9 2

0 8 14 15

1 14 29 30

1 21 41 42

3 31 60 63

Image

Integral Image

……… . 4)

……….…… . 5)

(38)

2.5.2.5 Cascade Classifier

Cascade classifier adalah sebuah rantai stage classifier, dimana setiap

stage classifier digunakan untuk mendeteksi apakah didalam image sub window

terdapat obyek yang diinginkan (object of interest).

Stage classifier dibangun dengan menggunakan algoritma adaptive-boost

(AdaBoost). Algoritma tersebut mengkombinasikan performance banyak weak classifier untuk menghasilkan strong classifier. Weak classifier dalam hal ini adalah nilai dari haar-like feature. Jenis AdaBoost yang digunakan adalah Gentle AdaBoost.

2.6 Tracking Mata (Eye Tracking)

Tracking mata dilakukan menggunakan metode Eye Tracking. Sistem akan mencari koordinat pointer , kemudian nilai koordinat tersebut akan dijumlahkan dengan titik tengah koordinat mata. Untuk menentukan koordinat titik tengah

mata dapat dilakukan dengan aturan sebagai berikut :

(39)

Kemudian untuk menentukan posisi pointer untuk melakukan pergerakan

pointer menggunakan aturan sebagai berikut :

Dimana Xm-1,Ym-1 adalah 0,0.

2.7 Deteksi Kedipan (Blink Detection)

Berdasarkan konstren geometri wajah, mata terletak pada setengah bagian

atas wajah. Karena pada umumnya, ketika seseorang berkedip kedua matanya

bergerak bersamaan, maka dalam deteksi kedipan mata ini, sistem megidentifikasi

kedipan masing – masing mata, baik mata sebelah kiri ataupun kanan.

Dari hasil segmentasi daerah mata yang diperoleh pada tahap sebelumnya,

dapat diketahui posisi mata. Untuk itu citra warna pada daerah mata diubah

menjadi citra keabuan (grayscale), yaitu dengan menghitung nilai keabuan tiap piksel (x,y). Dimana gray (x,y) adalah nilai intensitas keabuan pada piksel (x,y),

sedangkan RGB adalah komponen citra warna. Proses selanjutnya adalah

melakukan equalisasi histogram pada citra yang bertujuan untuk mengatasi masalah pencahayaan.

Tahap berikutnya yang penting adalah operasi morfologi. Dalam

penelitian ini operasi morfologi digunakan untuk menghilangkan noise yang ada. Sebelum dilakukan operasi morfologi, dipilih daerah tertentu saja (daerah yang

di-bounding) yang diproses atau biasa disebut ROI (Region of Interest) untuk mempercepat proses komputasi. Setelah menetapkan daerah ROI (pada penelitian

ini ROI adalah daerah mata), pada daerah tersebut dilakukan proses tresholding,

……….…… . 7)

(40)

dalam penelitian ini dipilih nilai ambang batas 5. Bila nilai intensitas keabuan

piksel dibawah atau sama dengan 5, hasil deteksinya ditandai dengan warna putih,

sedangkan bila nilai intensitas keabuannya di atas 5, hasil deteksinya ditandai

dengan warna hitam.

2.7.1 Morfologi

Morfologi merupakan ilmu yang mengkaji bentuk dan struktur. Di dalam

computer vision, bidang ini mengkaji tentang region – region atau bentuk, bagaimana mereka diubah dan dihitung, dan bagaimana area – area tersebut

dievaluasi [8]

Secara umum tujuan dari operasi morfologi pada citra biner adalah untuk

memperbaiki bentuk obyek agar dapat menghasilkan fitur – fitur yang lebih akurat

ketika analisis dilakukan terhadap obyek. [9]

Operasi morfologi merupakan teknik pengolahan citra yang didasarkan

pada bentuk segmen atau region dalam citra. Karena difokuskan pada bentuk

obyek, maka operasi ini biasanya diterapkan pada citra biner. Biasanya segmen

tersebut didasarkan pada obyek yang menjadi perhatian. Segmentasi dilakukan

dengan membedakan antara obyek dan latar, antara lain dengan memanfaatkan

operasi pengambangan yang mengubah citra warna dan skala keabuan menjadi

citra biner. Nilai biner dari citra hasil merepresentasikan dua keadaan: obyek dan

bukan obyek (latar). Meskipun lebih banyak dipakai pada citra biner, operasi

morfologi sering pula digunakan pada citra skala keabuan dan warna. Hasil

(41)

analisis lebih lanjut. Operasi ini antara lain meliputi pencarian batas/kontur, dilasi,

erosi, penutupan (closing), pembukaan (opening), pengisian (filling), pelabelan, dan pengerangkaan (skeletonization).

2.7.1.1Erosi

Erosi merupakan proses penghapusan titik-titik batas objek menjadi bagian

dari latar, berdasarkan structuring element yang digunakan. Pada operasi ini, ukuran obyek diperkecil dengan mengikis sekeliling objek. Ada 2 cara yang dapat

dilakukan untuk proses erosi, yaitu :

1. Dengan mengubah semua titik batas menjadi titik latar

2. Dengan menset semua titik di sekeliling titik latar menjadi titik latar

Contoh gambar proses erosi :

2.7.1.2Dilasi

Dilasi merupakan proses penggabungan titik-titik latar menjadi bagian dari

objek, berdasarkan structuring element yang digunakan. Proses ini adalah kebalikan dari erosi, yaitu merubah latar disekeliling objek menjadi bagian dari

objek tersebut. Ada 2 cara untuk melakukan operasi ini, yaitu :

(42)

1. Dengan cara mengubah semua titik latar yang bertetangga dengan titik batas

menjadi titik obyek, atau lebih mudahnya set setiap titik yang tetangganya

adalah titik obyek menjadi titik obyek.

2. Dengan mengubah semua titik di sekeliling titik batas menjadi titik obyek,

atau lebih mudahnya set semua titik tetangga sebuah titik obyek menjadi titik

obyek.

Contoh gambar proses dilasi :

2.8 ROI (Region of Interest)

Region of Interest (ROI) merupakan salah satu fitur yang tersedia dalam JPEG2000. ROI memungkinkan dilakukannya pengkodean secara berbeda pada

area tertentu dari citra dijital, sehingga mempunyai kualitas yang lebih baik dari

area sekitarnya (background). Fitur ini menjadi sangat penting, bila terdapat bagian tertentu dari citra dijital yang dirasakan lebih penting dari bagian yang

lainnya.

(43)

2.9 DFD (Data Flow Diagram)

Data Flow Diagram (DFD) adalah sebuah diagram yang menggunakan notasi untuk menggambarkan arus data dari sistem. Penggunaan notasi ini sangat

membantu dalam komunikasi dengan pemakai sistem untuk memahami sistem

secara logika.

Penggunaan DFD sebagai modelling tools dipopulerkan oleh Tom De

Marco (1978) dan Gane & Sarson (1979) dengan menggunakan pendekatan

metoda analisis sistem terstruktur (structured system analysis methode).

2.9.1 Simbol-Simbol Pada DFD

Berikut ini merupakan beberapa simbol yang digunakan untuk pemodelan

menggunakan DFD :

1. Eksternal Entity

Entity bisa berupa orang atau organisasi yang berada diluar sistem yang

memberikan data kepada sistem atau yang menerima informasi dari sistem.

Berikut ini adalah gambar eksternal entity pada DFD :

2. Proses

Menggambarkan apa yang dilakukan oleh sistem. Berfungsi

mentransformasikan satu atau beberapa data masukan menjadi satu atau beberapa

(44)

data keluaran sesuai dengan spesifikasi yang diinginkan. Berikut ini adalah

gambar proses pada DFD :

3. Data Flow

Data Flow menggambarkan aliran data dari suatu entity ke entity lainnya. Arah panah menggambarkan aliran data. Aliran data bisa terjadi antara :

a. Dua proses yang berurutan

b. Dari data store ke proses dan sebaliknya.

c. Dari source ke proses

d. Dari proses ke link.

Berikut ini adalah gambar data flow pada DFD :

4. Data Store

Menggambarkan tempat penyimpanan data. Proses dapat mengambil data

dari atau memberi data ke store. Berikut ini adalah gambar data store pada DFD :

Gambar 0.19 Proses

Gambar 0.20 Data Flow

(45)

2.10 Bahasa Pemrograman C#

2.10.1 Sejarah Bahasa C#

Salah satu bahasa pemrograman terdini adalah bahasaassembly, di mana

pemrogram membuat programnya dengan menuliskan instruksi- instruksi prosesor

tertentu (biasa disebut low level programming). Karena segala seluk-beluk

program berada 100% di tangan pemrogram, maka pemrogram yang handal

mampu menciptakan program yang efisiensi dan kecepatannya sangat tinggi.

Ada beberapa kelemahan yang dimiliki bahasaassembly. Keharusan untuk

hardware-hardware lain menyebabkan bahasa ini susah dipelajari dan dipakai.

Kelemahan lain dari bahasaassemblyadalah produktifitas pemrogram yang

sangat rendah dan susahnya mengelola program berskala menengah ke atas.

Untuk melakukan hal yang paling sederhana sekalipun diperlukan berbaris-baris

kode dalam bahasaassembly. Semakin besar ukuran program kita, kesulitan untuk

mengelolanya akan meningkat secara eksponen. Karena itulah muncul

bahasa-bahasa pemrograman lain yang tingkat abstraksinya lebih tinggi.

Selain itu, kebutuhan akan penggunaan program tidak lagi hanya terbatas

pada peralatan berupa personal computer, program juga digunakan

padaconsumer-electronic devices (cell phones dan PDA) sehingga menciptakan

persoalan dan kebutuhan yang baru. Integrasi komponen software yang berbeda

bahasa juga semakin sulit. Kebutuhan pengembangan aplikasi berbasis Web yang

(46)

sadar bahwa mereka membutuhkan software yang dapat digunakan siapa saja dan

dapat digunakan pada semua perangkat yang ada (PC,cell phones, PDA, dll).

Untuk menjawab semua permasalahan dan kebutuhan diatas pada tahun

2000 Microsoft meluncurkan bahasa pemrograman baru yang diberi namaC#

Programming Language. C# dikembangkan oleh Microsoft oleh tim yang

dipimpin oleh Anders Hejlsberg dan Scott Wiltamuth. C#

2.10.2 Pengertian Bahasa C#

Bahasa C# adalah sebuah bahasa pemrograman modern yang bersifat

general-purpose, berorientasi objek, yang dapat digunakan untuk membuat

program di atas arsitektur Microsoft .NET Framework. Bahasa C# ini memiliki

kemiripan dengan bahasa Java, C dan C++ .

Bahasa pemrograman ini dikembangkan oleh sebuah tim pengembang di

Microsoft yang dipimpin oleh Anders Hejlsberg, seorang yang telah lama malang melintang di dunia pengembangan bahasa pemrograman karena memang

ialah yang membuat Borland Turbo Pascal, Borland Delphi, dan juga Microsoft

J++.

Kini, C# telah distandarisasi oleh European Computer Manufacturer

Association (ECMA) dan juga International Organization for Standardization

(ISO) yang mendukung beberapa fitur baru semacam Language Integrated Query

(47)

2.11 Software Pendukung

2.11.1 Microsoft Visual Studio 2010

Merupakan sebuah perangkat lunak lengkap (suite) yang dapat digunakan

untuk melakukan pengembangan aplikasi, baik itu aplikasi bisnis, aplikasi

personal, ataupun komponen aplikasinya, dalam bentuk aplikasi console, aplikasi

Windows, ataupun aplikasi Web. Visual Studio mencakup kompiler, SDK,

Integrated Development Environment (IDE), dan dokumentasi (umumnya berupa

MSDN Library). Kompiler yang dimasukkan ke dalam paket Visual Studio antara

lain Visual C++, Visual C#, Visual Basic, Visual Basic .NET, Visual InterDev,

Visual J++, Visual J#, Visual FoxPro, dan Visual SourceSafe.

Microsoft Visual Studio dapat digunakan untuk mengembangkan aplikasi

dalam native code (dalam bentuk bahasa mesin yang berjalan di atas Windows)

ataupun managed code (dalam bentuk Microsoft Intermediate Language di atas

.NET Framework). Selain itu, Visual Studio juga dapat digunakan untuk

mengembangkan aplikasi Silverlight, aplikasi Windows Mobile (yang berjalan di

atas .NET Compact Framework).

Microsoft kini merilis Microsoft Visual Studio 2010 dan Microsoft .NET

Framework 4.0. Dua tool yang paling banyak digunakan untuk mengembangkan

program di atas Windows, Windows Mobile, Web (ASP.NET), Silverlight, dan

(48)

2.11.2 OpenCV 2.2

OpenCV 2.2 adalah suatu library gratis yang dikembangkan oleh Intel Corporation. Library ini terdiri fungsi-fungsi computer vision dan image processing tingkat tinggi. OpenCV diusulkan kepada para programmer untuk dapat menciptakan aplikasi yang handal, kuat dibidang digital vision. Karena

library ini bersifat cuma-cuma dan terbuka, OpenCV tidak dipesan khusus untuk pengguna arsitektur Intel, tetapi dapat dibangun hampir semua arsitektur.

Semua kode program ditulis dalam C/C++/C# bahasa dan di-compile

dengan gcc/g++/gsharp. Suatu pengetahuan yang umum tentang C programming

adalah penting untuk memahami metoda programming digunakan di OpenCV.

Kita harus mempunyai suatu pemahaman yang baik tentang bahasa program C

sebab OpenCV semua aplikasinya ditulis dalam bahasa C.

Opencv menggunakan struktur Iplimage untuk menciptakan dan menangani gambar. Sebagai contoh :

.width. adalah lebar dari Image

.height adalah tinggi dari Image

.nChannels. jumlah channel

Masing – masing fungsi di OpenCV dimulai dengan .cv., sebagai contoh

.cvCreateImage., . cvSobel., . cvAdd.. . .

Anda harus menambahkan .cv. untuk menggunakan fungsi apapun dari

OpenCV. OpenCV juga menyediakan fungsi-fungsi GUI yang disebut highGUI

(49)

2.12 Hardware Pendukung

2.12.1 Web Camera (Webcam)

Kamera digital digunakan sebagai sarana masukan untuk memberikan data

objek gambar ke komputer. Sebuah kamera digital dapat menjangkau hingga

resolusi yang cukup. Biasanya resolusi yang mendukung mencapai 320x460

sampai 768x1024 pixel. Kemampuan suatu kamera untuk mengambil banyak

gambar utuh (frame) dalam satu detiknya menjadi penting.

Untuk menghasilkan video yang memiliki pergerakan yang lancar, suatu

kamera setidaknya harus memiliki kemampuan mengambil gambar utuh sebanyak

30 frame setiap detiknya. Semakin banyak gambar utuh yang diambil setiap

detiknya makin mulus gambar yang dihasilkan. Ada dua jenis kamera yang bisa

digunakan, pertama adalah tipe WebCam yang dihubungkan melalui USB untuk

tipe ini, citra yang dihasilkan kurang bagus. Tipe kedua adalah tipe VCR (Video

Camera Recorder) atau kamera video digital yang dihubungkan melalui port

fireware. Untuk jenis kedua, citra yang dihasilkan baik, dengan resolusi tinggi.

(50)

45

3.1 Deskripsi Umum Sistem

Proses pengendalian pointer dengan mata dapat dijelaskan sebagai berikut

pertama kamera akan mengkalibrasi gambar dari user yang sedang berinteraksi dengan komputer, kemudian gambar tersebut akan diproses untuk dilakukan

pengenalan apakah pada gambar tersebut terdapat mata atau tidak. Apabila pada

gambar tersebut terdapat mata maka kemudian akan dilakukan deteksi pergerakan

wajah dan deteksi pergerakan bola mata. Deteksi pergerakan bola mata ini akan

digunakan untuk proses pergerakan pointer. Kemudian dilakukan deteksi kedipan pada kedua mata untuk proses klik pada pointer. Apabila yang berkedip adalah mata sebelah kiri, maka sistem akan melakukan proses klik kiri. Dan apabila yang

berkedip adalah mata sebelah kanan, maka sistem akan melakukan proses klik

kanan. Proses pengendalian pointer dengan mata digambarkan sebagai berikut :

User Webcam

Citra Digital

Tracking Wajah Tracking Mata

Proses penggerakan pointer Deteksi Kedipan

(Blink Detection)

Proses klik pada pointer

Deteksi Objek (Object Detection)

Pre-processing

(51)

Tahap – tahap pengendalian pointer dengan mata : 1. Tahap Kalibrasi

Tahap awal posisi user harus tegak lurus dengan kamera. Kemudian kamera akan mengkalibrasi gambar dari user secara real time dan akan diubah menjadi gambar digital. Gambar tersebut akan digunakan untuk

tahap selanjutnya.

2. Tahap Pre-processing Image

Pada tahap pre-processing image dilakukan proses grayscaling, tresholding dan scaling untuk dilakukan pengenalan pola.

3. Tahap Deteksi Objek

Pada tahap ini akan dilakukan pendeteksian objek wajah dan mata. Untuk

mendeteksi objek wajah dan mata digunakan metode Haar Cascade Classifier.

4. Tahap Tracking Wajah

Tahap berikutnya adalah tracking wajah. Output dari deteksi dan tracking

wajah akan digunakan untuk tahap tracking mata. 5. Tahap Tracking Mata

Tahap tracking mata dilakukan untuk menemukan lokasi dari mata. Untuk

(52)

6. Tahap Deteksi Kedipan

Pada tahap ini mata yang sedang di-tracking pada tahap sebelumnya akan dilakukan deteksi kedipan dengan menggunakan operasi morfologi yang

akan digunakan untuk proses klik pada pointer.

3.2 Analisis Sistem

Analisis sistem dapat didefinisikan sebagai penguraian dari suatu sistem

yang utuh kedalam bagian-bagian komponennnya dengan maksud untuk

mengidentifikasi dan mengevaluasi permasalahan-permasalahan,

hambatan-hambatan yang terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga dapat

diusulkan perbaikan-perbaikannya.

3.2.1 Analisis Deteksi Objek

Analisis deteksi Objek ini dibagi menjadi 4 tahap, yaitu :

1. Tahap pertama adalah tahap kalibrasi yaitu proses pengambilan citra

secara real time yang kemudian akan di ubah menjadi citra digital.

2. Tahap kedua adalah tahap pengenalan pola mata yang terdiri dari proses

penskalaan (scaling), grayscale dan tresholding.

3. Tahap ketiga adalah integral proyeksi untuk mencari daerah lokasi dari

mata.

(53)

3.2.1.1Kalibrasi

Pada analisis ini inputan yang digunakan adalah citra langsung yang

dikalibrasi oleh webcam secara real time dan hasilnya berupa citra digital yang akan digunakan untuk tahap berikutnya. Berikut ini adalah proses kalibrasi citra

realtime :

Misalkan koordinat citra A(3,2,1), kemudian konversi koordinat-koordinat

citra ke dalam dunia nyata dengan matriks 3 x 4 seperti berikut :

= (u, v, t) y

3

0,0

2

A(3,2,1)

x

(54)

Jika dilanjutkan maka akan diperoleh :

u = 3.1 + 2.0 + 1.0 + 1 = 4 v = 3.0 + 2.1 + 1.3 + 1 = 6 t = 3.0 + 2.0 + 1.1 + 1 = 2

Maka koordinat citra adalah : (U,V) dimana U = 4/2 = 2 , V = 6/2 = 3, jadi

koordinat citra pada computer yaitu (2,3).

3.2.1.2Analisis Pengenalan Pola Mata

Dalam analisis processing image ini dibagi menjadi 3 tahap, tahap pertama

yaitu penskalaan(scaling), tahap kedua proses grayscaling, dan tahap ketiga proses tresholding.

fR(x,y) = ∑ [0...1]

End Start

fR(x,y) = ∑ [0...255] fG(x,y) = ∑ [0...255] fB(x,y) = ∑ [0...255]

Scaling

Grayscaling

Thresholding

(55)

1. Tahap Penskalaan (Scaling)

Citra digital yang telah dikalibrasi secara real time oleh webcam akan diperkecil dengan menggunakan metode interpolasi. Metode ini menggunakan

nilai rata – rata suatu region untuk mewakili region tersebut.

Nilai piksel pada koordinat pada citra hasil interpolasi diperoleh dengan

menghitung nilai rata – rata dari 4 nilai piksel pada citra asli, yaitu :

Nilai Piksel Citra Asli Nilai Piksel Citra Hasil Interpolasi

(121+159+211+177) / 4 133,81 (123+111+186+191) / 4 152,75

(232+152+124+45) / 4 138,25

(56)

Berikut ini adalah citra hasil interpolasi :

2. Tahap Grayscaling

Citra digital yang telah melalui proses penskalaan kemudian diubah

menjadi citra dua warna dengan proses grayscaling. Proses pengubahan citra RGB menjadi citra grayscale adalah sebagai berikut :

Misalkan suatu citra mata memiliki nilai : R = 152,75 G = 132 B = 133,81

Maka nilai grayscale dari citra tersebut dapat dihitung seperti di bawah ini :

Berikut ini adalah citra hasil grayscaling :

Gambar Asli Gambar Hasil Scaling

400 x 200 pixel

200 x 100 pixel

Gambar 3.5 Penskalaan Citra Menggunakan Metode Interpolasi

Gambar Asli Gambar Grayscale

(57)

3. Tahap Tresholding

Selanjutnya adalah tahap tresholding yang digunakan untuk mengubah gambar hasil grayscale menjadi gambar biner. Nilai Treshold dihitung dengan membagi nilai hasil grayscaling pada tahap sebelumnya dengan nilai jumlah derajat keabuan (0 sampai 255 = 256) dibagi dengan 256 (nilai derajat keabuan

yang diinginkan). Proses penghitungan nilai treshold untuk citra mata adalah sebagai berikut :

Dimana :

x = nilai pembanding threshold

w = nilai hasil grayscaling

b = 256/a ( a = 256)

Untuk mengubah citra RGB menjadi citra biner menggunakan aturan

sebagai berikut :

1. Jika nilai piksel citra ≥ x maka nilai piksel menjadi 1 2. Jika nilai piksel citra ≤ x maka nilai piksel menjadi 0

Berikut ini adalah proses pengubahan citra RGB menjadi citra biner :

Citra asli

(58)

Berikut ini adalah gambar hasil pengubahan citra grayscale menjadi citra biner :

3.2.1.3Deteksi Mata

Metode yang digunakan untuk mendeteksi mata adalah metode Haar

Cascade Classifier. Metode ini merupakan metode yang menggunakan statistical model (classifier). Adapun tahapan-tahapan pada proses deteksi mata adalah sebagai berikut :

1. Training Data Pada Haar

File xml dibuat dengan suatu training yang dikenal dengan Haar Training. Proses training secara garis besar dapat dilihat dengan melalui bagan pada gambar di bawah. Folder aplikasi berada secara default di Program Files/OpenCV/bin/.

Gambar Grayscale Gambar Biner

(59)

End Start

Citra Sampel

File .XML Persiapan DataSet

Membuat Sample Positif dan Sample Negatif

Haar Training

Membuat File .xml

(60)

Penjelasan alur dapat dijelaskan sebagai berikut :

a. Persiapan Data Set

Data Set terdiri dari 2 buah sample, yaitu :

1. Sample positif, yaitu gambar yang mengandung obyek yang akan dideteksi. Jika kita menginginkan mata untuk dideteksi maka sample

positif berisi gambar – gambar mata.

2. Sample negatif yaitu gambar yang tidak mengandung obyek yang akan dideteksi. Seperti gambar latar belakang, wajah dan sebagainya. Masukkan

sample positif pada 1 direktori, misalnya positiveSample/rawd.

ataSedangkan sample negatif, dimasukkan pada /negativeSample. Sample minimal 10 buah untuk mata dalam berbagai posisi. File gambar berupa

file *.jpg.

b. Membuat Sample Negatif

Sampel negatif berisi gambar obyek selain obyek yang ingin dikenali.

Resolusi untuk sampel negatif memiliki resolusi yang sama dengan resolusi

kamera. Sampel negative berupa file text yang dibuat menggunakan

create_list.bat pada folder /negativeSample untuk mencatatkan nama file

(61)

Contoh pencatatan nama file sampel negative pada file negative.txt :

c. Membuat Sample Positif

Sampel positif berisi gambar obyek mata yang dibuat menggunakan

createsample utility, data gambar dimasukkan ke dalam file positif.txt. Berikut ini adalah berbagai pilihan createsample utility :

Usage: ./createsamples

[-info <collection_file_name>] [-img <image_file_name>]

[-vec <vec_file_name>]

[-bg <background_file_name>] [-num <number_of_samples = 10>] [-bgcolor <background_color = 0>] [-inv] [-randinv] [-bgthresh

<background_color_threshold = 70>]

[-maxidev <max_intensity_deviation = 40>] [-maxxangle <max_x_rotation_angle = 1.100000>] [-maxyangle <max_y_rotation_angle = 1.100000>] [-maxzangle <max_z_rotation_angle = 0.500000>] [-show [<scale = 4.000000>]]

[-w <sample_width = 24>] [-h <sample_height = 24>]

(62)

Contoh pencatatan nama file sampel positif pada file positif.txt :

d. Haar Training

Sampel data yang telah dibuat dilatih menggunakan haartraining utility. Berikut ini adalah listing program pelatihan data dengan haartraining utility :

Usage: haartraining -data <dir_name> -vec <vec_file_name>

-bg <background_file_name>

[-npos <number_of_positive_samples = 10>] [-nneg <number_of_negative_samples = 20>] [-nstages <number_of_stages = 14>]

[-nsplits <number_of_splits = 1>] [-mem <memory_in_MB = 200>]

[-minhitrate <min_hit_rate = 0.995000>]

[-maxfalsealarm <max_false_alarm_rate = 0.500000>] [-weighttrimming <weight_trimming = 0.950000>] [-mode <BASIC (default) | CORE | ALL>]

[-w <sample_width = 24>] [-h <sample_height = 24>]

[-bt <DAB | RAB | LB | GAB (default)>]

[-err <misclass (default) | gini | entropy>]

[-maxtreesplits <max_number_of_splits_in_tree_cascade = 0>] [-minpos <min_number_of_positive_samples_per_cluster = 500>]

Gambar

Gambar 0.11 Contoh Penghitungan Integral Proyeksi
Gambar 0.12 Haar Feature
Gambar 0.13 Integral Image
Gambar 0.15 Cascade Classifier
+7

Referensi

Dokumen terkait

Hasil penelitian ini terdiri atas dua bagian yaitu hasil pra pelaksanaan tindakan dan pelaksanaan tindakan. Kegiatan pada pra pelaksanaan tindakan peneliti memberikan

Didactical Obstacle terjadi karena ketergantungan guru menggunakan pendekatan hanya pada satu pilihan didaktis. Hambatan ini dilihat dari pendekatan pembelajaran, metafora

Serta Limpahan rahmat dan salam semoga tetap tercurahkan kepada junjungan Nabi besar Muhammad SAW yang telah membimbing kita semua menuju arah kebenaran dan

Berkait dengan hal tersebut proses sketsa dalam kontek komunikasi Intrapersonal adalah keasyikan dialog diri, bertanya dan dijawab oleh dirinya sendiri, maka denganitu pula di

Karena banyaknya pihak yang berkepentingan dengan profesi akuntan publik, maka diharapkan dalam RUU ini juga mengakomodasi kepentingan pihak-pihak lainnya, oleh karena itu

Tugas Akhir Penciptaan karya seni patung yang berjudul Visualisasi Lagu Efek Rumah Kaca Album “Sinestesia” Dalam Karya Patung , disadari bukan hanya sekedar syarat

LSP - FPSB Indonesia akan menjaga kerahasiaan data pribadi setiap calon, namun dalam melaksanakan tugasnya LSP - FPSB Indonesia dapat—sepanjang tidak bertentangan

Nilai Ekivalen Tetap (NET) dari suatu kejadian tak pasti adalah suatu nilai tertentu dimana pembuat keputusan merasa tidak berbeda antara menerima hasil yang dicerminkan