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
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.
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.
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.
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
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
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
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
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
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
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
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.
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
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
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)
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
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
(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
……… .
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,
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
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.
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
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
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)
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 }
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
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
……… . )……… . )
……… . )
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
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.
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.
(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 :
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
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.
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
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:
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
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)
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 :
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)
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
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 :
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.
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
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
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
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
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
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
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.
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
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
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.
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
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
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
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
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
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
End Start
Citra Sampel
File .XML Persiapan DataSet
Membuat Sample Positif dan Sample Negatif
Haar Training
Membuat File .xml
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
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>]
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>]