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

(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 Haar Cascade 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.

Kata Kunci : Image Processing, Computer Vision, Eye tracking, Haar cascade classifier, haar-like feature, real time


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

Key Word : Image Processing, Computer Vision, Eye tracking, Haar cascade classifier, haar-like feature


(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 pointer dengan mouse sangat mudah, namun untuk sebagian orang yang menderita cacat fisik khususnya pada bagian tubuh motorik, mengendalikan pointer


(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 ini. Untuk mengendalikan Pointer dilakukan secara real time oleh mata user dengan mengikuti arah pandang/gerakan mata (eye tracking) dan untuk proses klik akan dilakukan dengan kedipan mata kanan maupun kiri, sehingga dengan


(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 bagian tubuh motorik) untuk berinteraksi dengan komputer.


(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 tahapan sebagai berikut:


(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 digunakan dalam implementasi.


(11)

1.5.2 Pembangunan Perangkat Lunak

Metode penelitian yang digunakan adalah model Sequensial Linear. Secara umum, tahap-tahap penelitian dalam model Sequensial Linear adalah :

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 Windows XP, sedangkan untuk implementasinya menggunakan Microsoft Visual Studio 2010.


(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 diberikan untuk pengembangan perangkat lunak lebih lanjut.


(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 (human perception).


(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) piksel tersebut. Begitu juga sebaliknya makin rendah nilai piksel tersebut maka


(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 kamera digital dan scanner. Citra merupakan fungsi kontinu dari intensitas cahaya pada bidang dua dimensi, dinyatakan dalam bentuk fungsi f(x ,y) dimana :[3]


(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

……… .

f

(

x, y

) =

i

(

x, y

) .

r

(

x, y

)


(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 ditetapkan oleh Netscape Color Cube. Namun, dengan keunggulan menampilkan


(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 y’ = Sv y


(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 sistem itu. Untuk mengkalibrasi citra real time ke dalam computer ialah dengan cara :


(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 computer vision untuk mengenali objek.


(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. OpenCV menggunakan tipe deteksi wajah disebut Haar Cascade Classifier. Dengan memberikan gambar yang berasal dari file maupun live video, detector ini menguji tiap lokasi gambar dan mengklasifikasi sebagai wajah atau bukan wajah


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

Training dari Haar menggunakan dua tipe sampel diatas. Informasi dari hasil training ini lalu dikonversi menjadi sebuah parameter model statistik.


(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 untuk pendeteksian objek visual yang lebih baik.


(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 gray level 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 :

T F F

F F

T T

… ...

T T

Image Eyes

Non Eyes

filter 1 filter 2 filter n

……….…… . 6)

Gambar 0.15 Cascade Classifier


(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 operasi morfologi dapat dimanfaatkan untuk pengambilan keputusan dengan


(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 bahasa assembly, 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 bahasa assembly. Keharusan untuk hardware-hardware lain menyebabkan bahasa ini susah dipelajari dan dipakai. Kelemahan lain dari bahasa assembly adalah 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 bahasa assembly. 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

pada consumer-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 terkoneksi dengan Internet juga sudah semakin banyak. Pengembang software


(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 nama C#

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 (LINQ) dan lain-lainnya.


(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 beberapa platform lainnya.


(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 (high graphical user interface).


(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 tracking mata digunakan metode template machine, yang akan digunakan untuk proses menggerakkan pointer. Hasil dari tracking mata akan digunakan pada tahap deteksi kedipan (blink detection).


(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 (205+88+67+54) / 4 93,375 (71+103+81+92) / 4 86,75 (231+134+233+146) / 4 186 (183+246+98+72) / 4 132 (199+56+45+153) / 4 113,25 (61+191+215+123) / 4 147,5 (211+113+222+100) / 4 161,5 (123+111+186+191) / 4 152,75 (232+152+124+45) / 4 138,25 (63+44+111+100) / 4 79,75 (119+211+206+99) / 4 158,75

133,81 93,375 86,75 186 132 113,25 147,5 161,5 152,75 138,25 79,75 158,75

Interpolasi

121 159 205 88 71 103 231 134

211 177 67 54 81 92 233 146 183 246 199 56 61 191 211 113

98 72 45 153 215 123 222 100 123 111 232 152 63 44 119 211

186 191 124 45 111 100 206 99

Citra asli

Citra hasil

Tabel 3-1 Perhitungan nilai piksel hasil interpolasi Gambar 3.4 Metode interpolasi untuk memperkecil gambar


(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

121 159 205 88 71 103 231 134 211 177 67 54 81 92 233 146 183 246 199 56 61 191 211 113 98 72 45 153 215 123 222 100 123 111 232 152 63 44 119 211 186 191 124 45 111 100 206 99

0 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 0

Citra biner


(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 sampel negatif pada file negatif.txt.


(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>]


(63)

e. Membuat file *.xml

Setelah melakukan pelatihan data kemudian membuat file *.xml. Berikut ini adalah file .xml hasil training pada citra mata :

2. Mendeteksi adanya wajah atau tidak pada gambar

Fungsi utama untuk mendeteksi wajah cukup sederhana, yaitu dengan menginisialisasi beberapa variabel, memasukkan gambar, mengubah gambar

<opencv_storage> <haarcascade_lefteye type_id="opencv-haar-classifier"> <size> 20 20</size> <stages> <_>

<!-- stage 0 --> <trees>

<_>

<!-- tree 0 --> <_>

<!-- root node --> <feature>

<rects> <_>

8 12 3 8 -1.</_> <_>

8 16 3 4 2.</_></rects> <tilted>0</tilted></feature>

<threshold>0.0273259896785021</threshold> <left_val>-0.9060062170028687</left_val> <right_node>1</right_node></_>

<_>

<!-- node 1 --> <feature>

<rects> <_>

5 11 8 9 -1.</_> <_>

7 11 4 9 2.</_></rects> <tilted>0</tilted></feature>

<threshold>-7.0568458177149296e-03</threshold> <left_val>0.9338570833206177</left_val>

<right_val>-0.4585995972156525</right_val></_></_>


(64)

menjadi grayscale, membuat fungsi deteksi wajah dan menampilkan rectangle di sekitar area citra wajah.

Gambar masukan diubah menjadi gambar grayscale seperti gambar dibawah ini :

Berikut ini adalah algoritma untuk mendeteksi wajah : procedure deteksi wajah

{I.S : Citra realtime }

{F.S : Rectangle pada citra wajah }

kamus

img, face : Iplimage ScaleFactor : double MinNeighbors : integer Minsize : integer

algoritma

for face -> total == 0

begin

face <- CvHaarClassifierCascade.FromFile("face.xml");

if (faces->total == 0) then

img.Rectangle(face.Rect, CvColor.Red, 2, LineType.AntiAlias);

endif

end endfor endprocedure

Citra Masukan Citra Grayscale Gambar 3.12 Proses Grayscale pada citra wajah


(65)

3. Menentukan Region Of Interest

Region Of Interest adalah daerah persegi panjang pada gambar untuk memproses gambar lebih lanjut.

Berikut ini adalah algoritma untuk menentukan ROI pada citra wajah : Gambar 3.13 Menentukan Region Of Interest

Image Sub Image

procedure Region Of Interest

{I.S : Rectangle pada citra yang terdeteksi } {F.S : Citra di dalam rectangle }

kamus

faceroi, img, faces : IplImage

x : integer y : integer

algoritma

if (img.Rectangle == face.Rect )then

faceroi <- Cv.SetImageROI(face.Rect); faceroi.CvtColor(lefteye,ColorConversion.Rg bToGray);

face.Threshold(lefteye, x, y, ThresholdType.Binary);

endif


(66)

4. Sistem kerja metode Haar Cascade Classifier

Alur cara kerja metode Haar Cascade Classifier untuk mendeteksi mata adalah sebagai berikut :

Start

End Citra Sub Image

Deskripsi Citra Integral Proyeksi

Menetukan Haar Feature

Membuat Cascade Classifier

Menghitung Nilai Haar Feature Dengan Integral

Image


(67)

a. Integral Proyeksi

Setelah wajah terdeteksi, kemudian dilakukan proses integral proyeksi untuk menentukan daerah lokasi dari mata. Di sini diperkirakan lokasi mata 1/3 dari puncak wajah (beberapa pikel dari atas). Pencarian obyek dimulai pada sub window dengan ukuran skala 24x24 pada seluruh daerah gambar grayscale. Pencarian obyek diulangi kembali dengan ukuran sub window yang telah diskala ulang.

b. Haar Fitur

Setelah menentukan daerah lokasi dari mata kemudian dilakukan pencarian obyek mata. yaitu dengan cara mencari fitur-fitur yang memiliki tingkat pembeda yang tinggi. Hal ini dilakukan dengan mengevaluasi setiap fitur terhadap data latih dengan menggunakan nilai dari fitur tersebut. Fitur yang memiliki batas terbesar antara mata dan bukan mata dianggap sebagai fitur terbaik.

c. Membuat Cascade Classifier

Gambar Grayscale Perkiraan Daerah Lokasi Mata

Gambar 3.15 Perkiraan Daerah Lokasi Mata


(68)

Berikut ini adalah cara kerja algoritma haar cascade classifier :

Pada klasifikasi tingkat pertama (filter 1), tiap subcitra akan diklasifikasi menggunakan satu fitur. Klasifikasi ini kira-kira akan menyisakan 50% subcitra untuk diklasifikasi di tahap kedua (filter 2). Seiring dengan bertambahnya tingkatan klasifikasi, maka diperlukan syarat yang lebih spesifik sehingga fitur yang digunakan menjadi lebih banyak. Jumlah subcitra yang lolos klasifikasi pun akan berkurang hingga mendekati citra yang ada pada sample (data .xml) atau hingga klasifikasi menyisakan 2% subcitra.

T

F F

F F

T T

… ...

T T

Image Eyes

Non Eyes

filter 1 filter 2 filter n

Gambar 3.17 Cascade Classifier

Gambar 3.18 Pencarian haar feature


(69)

d. Integral Image

Kotak Haar feature dapat dihitung menggunakan “integral image”. Nilai dari feature dihitung menggunakan integral image pada gambar dibawah ini :

Dari perhitungan integral image diatas, maka diperolah nilai integral fitur hitam = { 5,22,38,53 }dan nilai integral fitur putih = { 3,17,29,38 }.

Maka nilai haar fitur tersebut adalah :

f(x) = (5 + 22 + 38 + 53) – (3 + 17 + 29 + 38) = 31

3.2.2 Analisis Tracking Mata

Tracking mata dilakukan untuk proses pergerakan pointer mouse. Tracking mata dilakukan menggunakan metode eye tracking. Sistem akan mencari koordinat pointer , kemudian nilai koordinat tersebut akan dijumlahkan dengan titik tengah koordinat mata. Titik tengah mata diambil dari citra yang ada di dalam region of interest di area mata. Berikut ini adalah citra mata yang dijadikan sebagai acuan untuk menentukan lokasi titik tengah mata :

Gambar 3.19 Penghitungan Nilai Haar Feature

1 4 7 9

2 9 16 23

3 17 29 38 5 22 38 53

6 26 44 60

7 30 53 77

8 33 59 84

11 41 70 96

1 3 3 2

1 4 4 5

1 7 5 2 2 3 4 6

1 3 2 1

1 3 5 8

1 2 3 1


(70)

Berikut ini adalah gambar koordinat titik tengah mata :

Kemudian untuk posisi pointer dihitung menggunakan persamaan 2-17.

Perhitungan posisi pointer dapat dijabarkan seperti di bawah ini :

Misalkan koordinat titik tengah mata (300,500) , maka posisi pointer adalah (300 + 0,500 + 0) = 300 , 500.

Gambar 3.20 citra mata yang digunakan sebagai acuan

y

0,0 x

Xn, Yn

Xe(n-1),Ye(n-1)

Xen,Yen


(71)

3.2.3 Analisis Deteksi Kedipan

Pada tahap ini sistem akan mendeteksi kedipan mata pengguna untuk digunakan sebagai proses klik pada pointer. Deteksi kedipan dilakukan dengan cara memberikan nilai grayscale dari gambar mata dari tahap sebelumnya, kemudian dilakukan proses tresholding untuk mendapatkan citra biner, sehingga dapat membedakan perubahan piksel yang terjadi pada gambar.

Tahap berikutnya yang penting adalah operasi morfologi. Operasi morfologi digunakan untuk menghilangkan noise yang ada. Operasi morfologi yang digunakan adalah operasi erosi dan dilasi.

1. Erosi

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.

Contoh operasi Erosi pada citra mata :

1 1 0 0 0 0 1 1 1 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1

Citra asli

1 1 1 1

Dierosi dengan 1 1 1 0 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 1

Hasil erosi


(72)

2. Dilasi

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.

3.3 Deskripsi Kebutuhan Sistem

Sebelum membangun sebuah sistem perlu dilakukan analisis kebutuhan sistem untuk menjamin bahwa sistem yang dibuat sesuai dengan kebutuhan pengguna dan layak untuk dikembangkan. Tahapan analisis kebutuhan sistem dapat dirinci menjadi beberapa tahap guna mempermudah proses analisis secara keseluruhan. Tahapan-tahapan ini sangat penting untuk menjamin keberhasilan pengembangan sistem secara keseluruhan.

3.3.1 Deskripsi Kebutuhan Data Eksternal

Kebutuhan data eksternal akan diuraikan secara rinci untuk keperluan perancangan perangkat lunak. Data eksternal yang digunakan pada perangkat lunak pengendali pointer yang akan dibangun yaitu :

Citra asli

1 1 1 1

Didilasi dengan

Hasil dilasi

1 1 1 0 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 1

1 1 0 0 0 0 1 1 1 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1


(1)

117

3. Kesimpulan Pengujian Beta

Berdasarkan hasil pengujian performansi diatas, maka diambil kesimpulan bahwa perangkat lunak pengendali pointer ini memiliki tingkat keakuratan sekitar 70 % dan waktu eksekusi perintah sekitar 0-3 detik.


(2)

(3)

118

1

BAB V

2

KESIMPULAN DAN SARAN

Pada bab ini dikemukakan kesimpulan dari “Perangkat Lunak Pengendali Pointer Dengan Mata Menggunakan Metode Haar Cascade” dan saran yang bersifat membangun.

5.1 Kesimpulan

Berdasarkan dari hasil penelitian, analisis sistem, perancangan sistem, implementasi sistem, dan pengujian sistem, maka penulis dapat mengambil kesimpulan sebagai berikut :

1. Algoritma Haar Cascade Classifier dapat diimplementasikan untuk pendeteksian mata.

2. Perangkat lunak pengendali pointer ini bisa dijalankan sebagai latar maupun diatas aplikasi lainnya.

3. Perangkat lunak pengendali pointer sangat berguna untuk mereka yang menyandang cacat fisik pada bagian tangan.


(4)

119

a. Jarak pengguna ke kamera, apabila jarak pengguna lebih darai 40 cm dari kamera maka akurasi dari pendeteksian wajah maupun mata berkurang.

b. Kondisi cahaya, pada ruangan dengan pencahayaan yang baik,tingkat akurasi dari pendeteksian kedipan sangat baik, namun pada ruangan gelap tingkat akurasinya sangat rendah.

5.2 Saran

Agar perangkat lunak pengendali pointer ini dapat dikembangkan lebih lanjut, maka penulis menyarankan beberapa perbaikan pada sistem sebagai berikut :

1. Tampilan pada aplikasi diperbaiki agar lebih menarik.

2. Aplikasi ditambahkan fungsional yaitu menambahkan perintah suara untuk mempermudah user berinteraksi tanpa harus menggunakan mouse sama sekali.

3. Aplikasi ditambah autorun agar aplikasi otomatis terbuka ketika komputer pertama kali dinyalakan.


(5)

120

DAFTAR PUSTAKA

[1] http://power.lecture.ub.ac.id/files/2011/04/DFD.pdf terakhir diakses pada tanggal 25 juli 2011.

[2] http://www.cs.toronto.edu/~jm/2507S/Notes04/SADT.pdf terakhir diakses pada tanggal 25 juli 2011.

[3]

http://journal.mercubuana.ac.id/data/8%20Olah%20Citra-Konsep%20Dasar.pdf terakhir diakses pada tanggal 30 Oktober 2010. [4] http://gazeinteraction.blogspot.com/2008/06/open-source-eye-tracking.html

terakhir diakses pada tanggal 22 Oktober 2010.

[5] Putra, Darma, ‘Pengolahan Citra Digital’. Yogyakarta, Penerbit Andi. 2010.

[6] Ricky, Michael Yoseph dan Michael, ‘Pengenalan Computer Vision menggunakan OpenCV dan FLTK’, Jakarta, Mitra Wacana Media dan BINUS University. 2009.

[7] David Geronimo, ‘Haar-Like Features and Integral Image Representation’. Universitat Autonoma de Barcelona. 2009.

[8] Rafael C Gonzalez and Richard Eugene Woods, ‘Digital Image Processing’. Prentice Hall. 2008.

[9] Fadilsyah, ‘Computer Vision dan Pengolahan Citra’, Yogyakarta, Penerbit Andi. 2007.

[10] Ahmad, Usman, ‘Pengolahan Citra Digital & Teknik Pemrogramannya’. Yogyakarta, Graha Ilmu. 2005.

[11] Pressman, Roger S., ‘Rekayasa Perangkat Lunak Pendekatan Praktisi’ (Buku Satu), Penerbit Andi dan Mcgrown Hills Book Co. 2002.

[12] Paul Viola and Michaels J. Jones, ‘Rapid Object Detection using boosted Cascade of Simple Features’, IEEE CVPR. 2001


(6)

BIODATA PENULIS

Nama : Aditya Eka Pramana

NIM : 10106367

Jurusan : Teknik Informatika

Fakultas : Teknik dan Ilmu Komputer

Tempat / Tanggal lahir : LHOKSEUMAWE / 21 Januari 1989

Alamat : Jl. Sei Kera Gg.Saring No.5a Medan 20223

No. Telp : 081396770877

E-mail : adhiet_1989@yahoo.co.id

Riwayat Pendidikan : 1.SD Negeri 1 Lhokseumawe ( tahun 1994 – 1999 ) 2.SD Negeri 060877 Medan, ( tahun 1999 – 2000 ) 3.SLTP Negeri 12 Medan ( tahun 2000 – 2003 ) 4.SMA Negeri 8 Medan ( tahun 2003 – 2006 )