• Tidak ada hasil yang ditemukan

BAB 3 ANALISIS DAN PERANCANGAN. yaitu tangan. Akan tetapi ada sekelompok orang yang memilki ketidak-lengkapan

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 3 ANALISIS DAN PERANCANGAN. yaitu tangan. Akan tetapi ada sekelompok orang yang memilki ketidak-lengkapan"

Copied!
36
0
0

Teks penuh

(1)

55   

ANALISIS DAN PERANCANGAN

3.1 Analisis

3.1.1 Permasalahan

Penggunaan piranti penunjuk pada umumnya melibatkan anggota gerak tubuh yaitu tangan. Akan tetapi ada sekelompok orang yang memilki ketidak-lengkapan anggota tubuh ataupun memiliki gangguan dalam menggerakan tangan secara normal. Hal ini ditanggapi dengan melakukan penelitian untuk menciptakan piranti penunjuk baru yang tidak membutuhkan gerakan tangan dalam mengoperasikannya (gerakan tangan akan digantikan dengan gerakan anggota tubuh lain).

Pointing device yang menggunakan gerakan mata sebagai pengganti gerakan tangan menjadi sebuah pilihan baru yang cukup menjanjikan. Pemilihan mata ini didasarkan pada letak dan karakteristik mata itu sendiri. Mata terletak di wajah dan karakteristiknya dapat mudah dikenali dibandingkan dengan ciri-ciri fisik dari anggota wajah lainnya. Berdasarkan penelitian mata merupakan alat indra pertama yang merespon ketika pertama kali pengguna akan melakukan operasi pada komputer menggunakan kursor. Dengan pernyataan tersebut diharapkan penggunaan mata maka akan memberikan respon lebih cepat dalam penggerakan kursor.

Gerakan mata ini ditangkap web-camera sebagai citra secara real time. dengan penggunaan web-camera secara real time maka terdapat beberapa permasalahan yang dialami. Permasalahan ini antara lain terjadinya buffer overflow, waktu proses dan

(2)

keakuratan dalam proses pendeteksian serta penjejakan objek, tingkat keakurattan serta sensitivitas dalam menggunakan piranti penunjuk berbasis gerakan mata ini.

• Buffer overflow terjadi dikarenakan keterbatasan memory yang akan menampung input berupa citra real time secara terus menerus selama program ini dijalankan.

• Waktu proses dan keakuratan dalam melakukan pendeteksian serta penjejakan objek menjadi pertimbangan utama dalam pemilihan metode. Hal ini dikarenakan program berlangsung secara real time maka dibutuhkan waktu proses yang rendah, selain itu mengingat objek yang digunakan cukup kecil berupa mata maka tingkat keakuratan pun harus diperhatikan.

• Tingkat sensitivitas yang dibahas adalah mengenai respon gerakan pointer terhadap gerakan mata pengguna dalam pengoperasiannya.

• Tingkat akurasi yang dibahas adalah mengenai fungsi klik yang disediakan oleh program serta seberapa akurat dalam pemanfaatannya.

3.1.2 Solusi Permasalahan

Setiap permasalahan memegang peranan nilai dalam menentukan optimalitas program piranti penunjuk berbasis gerakan mata. Akan tetapi, setiap permasalahan ini memiliki point pembahasan yang berbeda, maka untuk mengatasi permasalah tersebut digunakan beberapa metode yang terpisah.

Metode-metode yang digunakan untuk mengatasi permasalahan tersebut antara lain:

(3)

• Menggunakan template sementara dalam menampung citra hasil tangkapan dari web-camera. Setelah citra selesai di proses dan tidak dibutuhkan lagi, maka citra tersebut dapat di hapus. Cara ini digunakan untuk mengatasi buffer overflow.

• Untuk mengatasi waktu proses serta keakuratan dalam mendeteksi dan menjejaki objek berupa mata, maka terlebih dahulu dilakukan pendeteksian pada wajah. Pendeteksian ini akan mempersempit ruang pendeteksian mata sehingga mempercepat waktu proses pendeteksian dengan tingkat keakuratan yang tinggi Untuk pendeteksian wajah digunakan metode viola-jones. Mengenai penjejakan objek (mata) digunakan metode lucas-kanade. Metode lucas-kanade melakukan penjejakan dengan membandingkan posisi objek dari frame awal dengan frame selanjutnya.

• Tingkat sensitivitas diatasi dengan mencari perbandingan terbaik antara gerakan mata dengan gerakan pointer pada komputer, dengan perbandingan ini maka respon gerakan pointer dapat diatur.

• Keakurasian klik dapat ditingkatkan dengan melakukan pemilihan tingkat sensitivitas yang sesuai serta pengaturan brightness yang tepat.

3.2 Gambaran Singkat Driver Piranti Penunjuk

Driver piranti penunjuk berbasis gerakan mata ini dibangun pada visual C++ 2005 dengan pustaka openCV dan menggunakan web cam sebagai sarana untuk mendapatkan masukan berupa citra. Citra ini akan diproses dengan teknik-teknik dasar dari pengolahan citra seperti RGB to Grayscale, Equalisasi Histogram, dan lainnya.

(4)

Dalam pendeteksian objek wajah pada citra digunakan teknik viola-jones. Teknik ini dikembangkan oleh Paul-Viola dan Michael Jones, di dalam teknik ini mengandung fitur haar-like, algoritma adaboost serta metode cascade of classifier. Setelah wajah terdeteksi, maka akan dilanjutkan dengan pendeteksian area mata yang terletak pada wajah. Area mata ini telah diperkirakan dengan perbandingan tertentu dari luas wajah secara keseluruhan. Area mata yang telah terdeteksi ini akan menjadi dasar dari pekerjaan selanjutnya, yaitu proses penjejakan mata. Dalam proses penjejakan mata digunakan metode Lucas-Kanade. Sebelum menggunakan metode Lucas-Kanade maka terlebih dahulu ditentukan good corner dari area mata. Setelah itu Metode Lucas Kanade akan digunakan untuk menunjukkan perubahan yang terjadi pada objek (mata) antara frame awal dengan frame selanjutnya. Dengan diketahui perubahan yang terjadi maka dapat dilakukan penjejakan mata. Pergerakan mata akan dianalogikan sebagai gerakan kursor pada komputer.

     

(5)

Preprocessing citra Pendeteksian area mata Area titik penjejakan (ATP) Lucas kanade method Set penjejakan=1 Tukar gambar Pendeteksian wajah 1

Set koordinat titik penjejakan 0

Cari good corner

0 Set fiitur penjejakan on Penjejakan aktif? Analogi piranti penunjuk Set up ulang Set fiitur penjejakan off 1 ATP on FP on penjejakan off ATP on FP on Penjejakan on ATP on FP on Penjejakan off ATP off FP off Penjejakan off ATP on FP off Penjejakan off 0 Fitur penjejakan(FP) 1 Fitur di area mata? 1 1 0 0 Pengambilan input END Lanjut? 1 0                                                

(6)

Sistem ini dibangun pada visual C++ 2005 dengan pustaka openCV. Berikut ini merupakan rancangan use class diagram dan activity diagram.

Gambar 3.2 Use Case Sistem Deskripsi Use Case:

1. Mendeteksi wajah dan mata

Pada bagian ini bertujuan untuk mendeteksi wajah yang diikuti oleh pendeteksian mata.

Flow of Events:

1. User menyalakan web cam.

2. Sistem mengambil citra dari web cam. 3. Sistem mendeteksi wajah

(7)

Gambar 3.3 Activity Diagram Mendeteksi Wajah dan Mata

2. Penjejakan mata

Pada bagian ini ketika user menggerakan mata, naka sistem akan menjajakinya dan akan mengubah posisi kursor sesuai gerakan mata.

Flow of Events:

(8)

2. Sistem menjajaki gerakan mata. 3. Sistem menganalogikan gerakan mata. 4. Kursor pada layar komputer bergerak.

Layar Sistem Webcam User menggerakan mata menangkap citra penjejakan mata

analogi gerakan mata

gerakan kursor

*

-ada perubahan pada citra *

(9)

3.2.1 Piranti Penunjuk (Pointing Device)

Piranti penunjuk adalah salah satu jenis alat input pada komputer yang digunakan untuk berinteraksi dengan komputer, seperti untuk memilih dan menunjuk di layar komputer pada sistem manipulasi langsung. Piranti penunjuk memberikan kemudahan dan kenyamanan bagi pengguna dalam berinteraksi dengan komputer.

Piranti penunjuk dapat dikategorikan menjadi 2 yaitu piranti penunjuk langsung dan piranti penunjuk tidak langsung. Piranti penunjuk langsung merupakan alat kendali yang digunakan langsung di permukaan layar seperti light pen, touch screen dan stylus. Sedangkan piranti penunjuk tidak langsung merupakan alat kendali yang penggunaanya terpisah dari permukaan layar (tidak langsung). Alat–alat yang termasuk piranti penunjuk tidak langsung antara lain Mouse, Trackball, Joystick, Graphics tablet dan Touchpad.

Light pen merupakan alat input komputer dengan wujud tongkat yang sensitif terhadap cahaya yang memungkinkan pengguna untuk menunjuk atau menulis pada layar monitor dengan cara yang sama seperti layar sentuh tetapi dengan akurasi lebih baik. Light pen berfungsi pada monitor CRT tetapi tidak berfungsi pada layar LCD . Light pen pertama digunakan pada tahun 1057 untuk komputer Lincoln TX-0 di MIT Lincoln Laboratory. Light pen bekerja dengan mengidentifikasi sebagian kecil perubahan kecerahan pada titik di layar ketika electron gun dari layar melakukan refresh pada titik tersebut.

Touchscreen adalah layar tampilan komputer yang dapat mendeteksi kehadiran dan lokasi dari sentuhan yang dilakukan pada layar tersebut. Layar sentuh ini dapat mendeteksi sentuhan dari jari, tangan maupun dari stylus. Dengan layar sentuh

(10)

seseorang dapat mengoperasikan komputer dengan cara menyentuh gambar atau tulisan yang terpampang pada layar komputer. Layar sentuh sering dipakai pada kios informasi ditempat-tempat umum, misalnya di bandara dan rumah sakit serta pada perangkat pelatihan berbasis komputer. Sistem layar sentuh tersedia dalam bentuk monitor yang sudah memiliki kemampuan layar sensitif sentuhan dan ada juga kit touchscreen yang lebih ekonomis yang dapat dipasang pada monitor yang sudah ada.

Stylus adalah alat yang digunakan untuk menyentuh layar sentuh pada palmtop Mouse merupakan salah satu piranti penunjuk yang bekerja dengan menangkap gerakan menggunakan bola yang menyentuh permukaan keras dan rata. Mouse yang lebih modern sudah tidak menggunakan bola lagi, tetapi menggunakan sinar optikal untuk mendeteksi gerakan. Selain itu, ada pula yang sudah menggunakan teknologi nirkabel, baik yang berbasis radio, sinar inframerah, maupun bluetooth. Saat ini, teknologi terbaru sudah memungkinkan mouse memakai sistem laser sehingga resolusinya dapat mencapai 2.000 titik per inci (dpi), bahkan ada yang bisa mencapai 4.800 titik per inci.

Trackball terdiri dari sebuah bola dan tempat meletakan bola yang dilengkapi dengan sensor untuk mengindetifikasi gerakan rotasi bola. Cara kerja trackball mirip dengan mouse akan tetapi yang digerakan adalah bolanya. Bola digerakan secara rotasi untuk menggerakan kursor pada komputer. Trackball ini tidak membutuhkan tempat yang besar untuk mengoperasikannya sehingga banyak digunakan pada laptop

Joystick adalah piranti penunjuk yang berwujud tuas dan dapat bergerak ke segala arah. Alat ini dapat mentransmisikan arah sebesar dua atau tiga dimensi ke komputer. Alat ini umumnya digunakan sebagai pelengkap untuk memainkan

(11)

permainan video yang dilengkapi lebih dari satu tombol. Selain untuk mengontrol permainan video, tuas kontrol juga banyak diimplementasikan pada mesin lain, seperti pada kursi roda bermotor dan truk.

Touchpad atau trackpad adalah piranti penunjuk yang terdiri dari sebuah papan dengan permukaan yang dapat mentranslasi gerakan dan posisi dari jari pengguna menuju sebuah posisi relatif terhadap layar Touchpad bekerja dalam beberapa cara, termasuk pengindraan kapasitansi dan kondusi. Cara yang paling sering digunakan adalah pengindraan kapasitansi dari jari, atau kapasitansi yang ada diantar sensor. Karena objek yang dideteksi sudah jelas, touchpad yang berbasiskan kapasitansi tidak akan merasakan ujung dari objek lain seperti pensil atau sejenisnya. Tetapi selain kapasitansi ada yang berbasiskan konduksi elektrik. Ada dua prinsip bagaimana touchpad bekerja dalam pendekatan matrix, sejumlah konduktur disusun dalam sebuah array dari garis paralel dalam dua lapis, yang dipisahkan oleh sebuah insulator dan saling menyilangi di sudut kanan untuk membentuk sebuah grid. Frekuensi signal yang tinggi digunakan secara sekuensial diantara pasangan array grid dua dimensi, arus yang melewati noda-noda mempunyai ukuran yang proposional terhadap kapasitansi. Ketika sebuah virtual ground seperti ujung jari, ditempatkan diatas salah satu pertemuaan (intersection) antara lapisan konduktif, beberapa dari medan elektrik ke point pada titik ini, yang akan menghasilkan perubahan penampilan kapasitansi di lokasi tersebut.

3.2.2 Driver

Perangkat keras komputer pada umumnya membutuhkan konfigurasi awal dengan sistem operasi yang ada agar dapat berjalan dengan semestinya. Konfigurasi

(12)

yang dibutuhkan ini umumnya berbeda, bahkan untuk perangkat yang sama. Selain itu para pembuat perangkat keras merilis model-model baru yang menyediakan reliabilitas yang lebih baik atau performa yang lebih tinggi. Model baru tersebut seringnya dikontrol secara berbeda dari model yang sebelumnya sehingga dibutuhkan konfigurasi yang berbeda. Komputer dan sistem operasi tidak dapat diharapkan untuk mengetahui setiap konfigurasi dari perangkat keras yang ada.

Untuk menyelesaikan masalah seperti ini dibuat driver untuk setiap perangkat. Driver adalah program komputer yang memungkinkan agar program komputer yang memiliki tingkatan lebih tinggi dapat berinteraksi dengan perangkat kerasnya. Driver ini akan mentranslasikan fungsi-fungsi sistem operasi ke dalam perintah yang dimiliki oleh perangkat yang bersangkutan. Secara teoritis, sebuah perangkat yang baru, yang umumnya dikontrol dengan menggunakan cara yang baru dapat bekerja dengan normal jika memang terdapat device driver yang cocok. Driver yang baru ini akan menjamin bahwa perangkat yang bersangkutan dapat beroperasi seperti biasa dari sudut pandang sistem operasi.

3.3 Perancangan Driver Piranti Penunjuk 3.3.1 Proses inisialisasi dan Pengambilan input

Pada proses ini dilakukan inisialisasi pada nilai koordinat titik penjejakan, fitur penjejakan dan penjejakan menjadi off.

Driver ini menggunakan input device berupa web-camera yang akan menangkap citra secara real time. Web-camera yang digunakan memiliki standar minimum 320x240 piksel.dengan tingkatan minimum 15 fps (frame per second).

(13)

Cek device (web cam) Cek hasil capture Cek pengambilan frame Simpan frame Inisialisai variabel START END

Gambar 3.5 Diagram alir pengambilan input

Proses pengambilan input citra diawali dengan menyediakan variabel template matriks yang berukuran 320x240. Setelah berhasil menciptakan variabel tersebut, maka lakukan pengecekan pada input device yaitu web-camera. Lakukan pengecekan capture apakah frame berhasil ditangkap, bila web cam telah berhasil melakukan proses capture maka proses pengambilan input template dapat dilakukan. Pengambilan input template menunjukkan bahwa web cam telah beroperasi dengan baik. Frame ini yang nantinya akan menjadi input dalam sistem.

3.3.2 Tahap Preprocessing pada Citra

Tahap preprocessing citra adalah urutan langkah awal yang dilakukan terhadap frame input sebelum masuk ke dalam proses pendeteksian objek. Preprocessing ini akan mengatur spesifikasi frame yang masuk agar sesuai dengan syarat proses pendeteksian objek pada frame. Urutan langkah yang dilakukan dalam proses preprocessing ini dimulai dari penerimaan frame sampai equalisasi histogram.

(14)

Inisialisasi variabel Pencerminan citra Konversi BGR2Gray Equalisasi histogram Pengambilan input START END

Gambar 3.6 Diagram alir preprocessing citra

3.3.2.1 Inisialisasi variabel

Menyiapkan variable yang akan digunakan untuk menampung tahap-tahap dari proses pengolahan citra ini. Variabel yang dibuat memiliki ukuran lebih kecil dari citra asli dengan skala tertentu. Hal ini bertujuan agar ukuran input pada proses pendeteksian wajah lebih kecil sehingga akan memperingan proses pendeteksian.

3.3.2.2 Pengambilan frame

Hasil tangkapan frame dari web camera ini akan menjadi input dari sistem piranti penunjuk berbasis gerakan mata.

3.3.2.3 Pencerminan citra

Salah satu sifat dari web camera dalam mencapture frame adalah frame yang dihasilkan merupakan pencerminan dari objek aslinya. Sisi kanan objek akan menjadi sisi kiri pada frame, begitu pula sebaliknya. Untuk menanggulangi masalah tersebut

(15)

maka dilakukan operasi flip. Operasi yang digunakan pada tahap ini adalah operasi pencerminan vertikal, sehingga operasi dilakukan dengan menyalin nilai warna dari citra asli secara verikal dan berlawanan. Berikut adalah Pseudocode untuk penjelasan lebih lanjut mengenai operasi pencerminan.

PSEUDOCODE

Flip-> Inisialisasi variabel template matrix frame Height -> set nilai tinggi frame

Width -> set nilai lebar frame

For i=0 to (nilai height frame – 1)

For j= 0 to (nilai width frame – 1)

For k =0 to (nilai channel frame – 1) Begin

Flip[i*step+(width-j)*channelframe+k] =

frame [i*step+(j)

_* channelframe+k]

End

Set frame = flip Æmengembalikan nilai frame hasil pencerminan kepada variabel frame.

Operasi untuk mengakses nilai pada citra dilakukan dengan menggunakan Direct Access dengan sebuah pointer.

(16)

Gambar 3.7 Sebelum operasi flip

Gambar 3.8 Sesudah operasi flip

3.3.2.4 Konversi RGB To Gray

Input citra yang di terima dari web cam berupa gambar BGR (Blue Green Red). Untuk mempermudah proses pendeteksian lakukan konversi RGB to Gray. Pengkoversian dilakukan karena pada template yang digunakan adalah grayscale template.

(17)

Konversi RGB To Gray melakukan transformasi dari sebuah image berwarna 24bit dengan 3 channel menjadi sebuah image grayscale 8 bit dengan single channel. Konversi ini dilakukan dengan melakukan penjumlahan nilai bobot dari warna merah, biru dan hijau dari citra berwarna. Rumus yang digunakan adalah:

Y=0.114B+0.587G+0.299R.

Hasil ini juga disebut luminansi. Alasan penggunaan nilai bobot tersebut adalah karena pada kenyataannya untuk nilai yang sama, mata paling sensitif dengan warna hijau, kemudian merah dan biru.

PSEUDOCODE

GrayImg-> Inisialisasi variabel template matrix untuk citra grayscale

Height -> set nilai tinggi frame Width -> set nilai lebar frame For i=0 to (nilai height frame – 1) For j= 0 to (nilai width frame – 1) GrayImg[i][j]=frame[i][j].b*0.114+ frame[i][j].r*0.299 + frame[i][j].g*0.587

3.3.2.5 Equalisasi Histogram

Equalisasi histogram bertujuan untuk meningkatan detail dan kontras pada citra, terutama ketika data pada gambar dipresentasikan dengan nilai kontras yang sangat dekat. Melalui penyesuaian, intensitas warna pada citra dapat didistribusikan secara

(18)

lebih baik pada histrogram. Equalisasi ini membuat area dengan nilai kontras yang kecil mendapatkan nilai kontras yang tinggi tanpa mempengaruhi kontras secara keseluruhan. Hal ini dilakukan dengan melakukan penyebaran secara efektif dari nilai intensitas yang paling banyak.

3.3.3 Proses Pendeteksian Wajah

Proses pendeteksian wajah merupakan salah satu bentuk pengenalan pola pada citra. Dimana citra yang digunakan dalam tahap ini adalah citra yang telah berhasil di capture ke dalam frame oleh web cam dan telah mengalami tahap prossesing awal. Proses pendeteksian wajah ini menggunakan teknik yang dikembangkan oleh viola-jones. Di dalam teknik ini terdapat metode cascade of classifier, haar-like feature classifier serta algoritma adaboost.

Cascade of classifier adalah suatu metode klasifikasi yang menggunakan beberapa tingkatan dalam melakukan klasifikasi. Di tiap tingkatan dilakukan pendeteksian menggunakan fitur haar-like yang jenis dan jumlahnya beragam ( semakin tinggi tingkatan, semakin banyak jumlah fitur yang digunakan). Di dalam tiap tingkatan terdapat pohon keputusan, pohon keputusan ini digunakan untuk training algoritma adaboost dengan berdasarkan fitur haar-like yang ada.

(19)

Load template wajah pendeteksian wajah Menghitung waktu pendeteksian Pemberian lingkaran pada wajah Negative object Positive Object berhasil

gagal Coba Masukkan

template lain Tidak terdeksi wajah hasil Input citra hasil preprocessing START END

(20)

Proses diawali dengan mengambil citra dari hasil preprocessing. Setelah itu dilakukan pengambilan template wajah yang telah di sediakan oleh openCV. Template yang tersedia merupakan hasil training, ada beberapa template yang disediakan oleh openCV untuk mendeteksi wajah antar lain haarcascade_frontalface_alt2.xml, haarcascade_frontalface_alt.xml,haarcascade_frontalface_alt_tree.xml,haarcascade_fr ontalface_default.xml,haarcascade_profileface.xml. Setiap template memiliki isi yang berbeda baik dari segi jumlah stage, jumlah tree, model segi empat dari fitur (rectangle) maupun nilai thresholdnya. Dengan memilih salah satu dari kelima template itu, pendeteksian wajah pun dapat dilakukan. Template yang digunakan dalam sistem ini adalah haarcascade_frontalface_alt2.xml. Template ini merupakan template model yang terbaik untuk saat ini, selain template lain dalam hal pendeteksian wajah secara frontal.

Setelah berhasil mengambil template dari openCV, maka proses pendeteksian wajah dapat dilanjutkan dengan menggunakan fungsi cvHaarDetectObjects. Fungsi ini akan melakukan proses klasifikasi berdasarkan dari template yang ada terhadapa citra input. Pengklasifikasian akan membagi antara sub window yang berupa citra wajah ( positif objek ) dengan citra selain wajah (negatif objek).

Bagian dari isi template

"haarcascade_frontalface_alt2.xml" adalah <stages> <_> <!-- stage 0 --> <trees> <_>

(21)

<!-- tree 0 --> <_> <!-- root node --> <feature> <rects> <_>2 7 16 4 -1.</_> <_>2 9 16 2 2.</_></rects> <tilted>0</tilted></feature> <threshold>4.3272329494357109e-003</threshold> <left_val>0.0383819006383419</left_val> <right_node>1</right_node></_> <_> <!-- node 1 --> <feature> <rects> <_>8 4 3 14 -1.</_> <_>8 11 3 7 2.</_></rects> <tilted>0</tilted></feature> <threshold>0.0130761601030827</threshold> <left_val>0.8965256810188294</left_val> <right_val>0.2629314064979553</right_val></_></_> <_>

(22)

<!-- tree 2 --> ... <stage_threshold>0.3506923019886017</stage_threshold> <parent>-1</parent> <next>-1</next></_> <_> <!-- stage 1 --> ... <!-- stage 19 --> <trees> <_> <!-- tree 0 --> ... <!-- tree 108 --> <stage_threshold>53.7555694580078130</stage_threshold> <parent>18</parent> <next>-1</next></_></stages></haarcascade_frontalface_alt2>

Stage melambangkan banyaknya tingkatan dalam cascade of classifier, dalam template ini digunakan 20 tingkatan (stage 0 sampai stage 19). Tingkatan ini digunakan untuk mengurangi jumlah sub window citra yang perlu dicek. Di tingkatan pertama dilakukan pengklasifikasian terhadap seluruh sub window citra, lalu di tingkatan kedua

(23)

dilakukan pengklasifikasian terhadap sub window yang berasal dari hasil pengklasifikasian tingkatan pertama. Maka semakin tinggi tingkatannya semakin sedikit jumlah sub-window yang harus dicek. Di tiap tiangkatan terdiri dari beberapa tree, biasanya semakin tinggi tingkatan maka tree yang terdapat di dalam nya pun semakin banyak. Pada stage 0 terdapat 3 tree, stage 1 terdapat 9 tree dan pada stage 19 terdapat 109 tree. Di dalam tree ini terdapat haar-like feature dan adaboost algorithm. Model haar-like feature di tampilkan dalam koordiant segi empatnya (rects) sedangkan adaboost algorithm digunakan untuk pembobotan ulang weight agar diperoleh strong algortihm, proses adaboost ini terjadi di dalam tree.

(24)

Gambar 3.11 Pohon Keputusan

Semakin tinggi stage maka jumlah sub window yang di cek semakin sedikit akan tetapi jumlah tree yang berfungsi untuk melakukan pengecekkan semakin banyak. Hal ini yang memberikan keseimbangan antara waktu proses dan tingkat kompleksitas pada cascade of classifier, sehingga metode ini akan memperoleh hasil dengan nilai error rendah pada waktu yang relatif singkat.

Setelah proses pendeteksian wajah berhasil dilakukan, maka sistem akan menentukan sub-window mana yang mengandung gambar wajah dan tidak. Pada citra yang mengandung gambar wajah dilakukan proses pemberian kotak disekitar wajah. Hal ini untuk mencek apakah proses pendeteksian wajah ini telah berhasil mengenali wajah pada citra dengan tepat dan menentukan letak wajah pada citra.

Dengan mempertimbangkan tujuan utama dari sistem yaitu untuk menciptakan sebuah driver piranti penunjuk berbasis gerakan mata dengan satu orang pengguna yang

(25)

mengoperasikan komputer, maka pada sistem ini wajah yang deteksi hanyalah wajah pengguna. Driver ini mengasumsikan bahwa wajah pengguna adalah wajah yang pertama kali terdeteksi.

Gambar 3.12 Hasil Pendeteksian Area Wajah

3.3.4 Proses Penentuan Area Mata

Proses penentuan mata merupakan kelanjutan dari proses pendeteksian wajah pada citra. Dimana citra input yang digunakan dalam tahap ini adalah sub window yang telah berhasil dideteksi sebagai wajah. Proses penentuan area mata ini menggunakan sebuah nilai perbandingan dari luas area wajah, nilai perbandingan ini telah teruji dan luas area wajah diperoleh dari hasil pendeteksian wajah.

(26)

Pada parameter b window yan Peng mempercep Dari dari posisi y mata dengan a pendeteks berupa koor ng berisi citr ggunaan per at proses pen i perhitungan yang belum p n mengguna Gamba sian wajah rdinat titik s ra wajah. rbandingan u ncarian. n ini akan d pasti ini aka akan bantuan ar 3.13 Hasil ketika waja sebelah kiri untuk menen dapat diperki an dilakukan n metode Luk Pendeteksia ah terdeteks atas serta ntukan area irakan posis pencarian m kas Kanade. an Area Waj si maka aka panjang dan mata pada i dari bola m mengenai let ah dan Mata an dikemba n lebar dari citra wajah mata, selanju ak pasti dari a alikan i sub akan utnya i bola

(27)

Pendeteksian area mata Area titik penjejakan (ATP) Lucas kanade method Set penjejakan=1 Tukar gambar

Set koordinat titik penjejakan 0

Cari good corner

0 Set fiitur penjejakan on Set up ulang ATP on FP on Penjejakan off Fitur penjejakan(FP) 1 Fitur di area mata? 1 1 0 Pengambilan input START END

3.3.5 Proses Penjejakan Mata

(28)

Proses penjejakan mata akan diawali dengan mempersempit ruang lingkup dari hasil deteksi area mata sebelumnya. Ruang lingkup yang telah dipersempit ini disebut sebagai area titik penjejakan, setelah ditentukan area titik penjejakan maka akan dilakukan pencarian good corner. Pencarian good corner akan dilakukan dengan menggunakan fungsi built in OpenCv yaitu CvGoodFeaturesToTrack().

Dengan mendapatkan good corner maka fitur penjejakan dapat ditentukan. Fitur penjejakan ini yang akan menjadi inputan pada metode lucas kanade.

Proses penjejakan selanjutnya menggunakan metode Lucas-Kanade. Metode ini akan membandingkan titik centroid mata pada frame awal dengan frame selanjutnya. Dengan proses ini maka akan diperoleh perubahan posisi dari titik centroid mata yang berlangsung dalam selang waktu yang singkat ( .

Proses matematis dari metode Lucas Kanade:

Persamaan perubahan posisi dalam selang waktu yang singkat

, , ,

Diasumsikan perubahan posisi yang terjadi sangat sedikit, digunakan deret taylor menjadi :

, ,  =  , , . .  

H.O.T adalah Higher Order Terms, H.O.T ini memiliki nilai yang kecil sehingga dapat diabaikan. Maka persamaan baru dapat ditulis seperti ini :

, ,  =  , ,  

 

(29)

  0                         

Dengan 2 peubah variable dalam 1 persamaan maka persamaan ini tidak dapat diselesaikan (nilai dari variable tidak bisa ditentukan).

 

Dianggap velocity (Vx,Vy) bernilai konstan.

.   1 1 1  2 2 2       

Persamaan tersebut di rubah kebentuk gauss.  

1 1

2 2

   =     

(30)

1 1 2 2 1 2 A U= -b AT A U= AT (-b) U = (AT A)-1 AT (-b)

3.3.6 Analogi Piranti Penunjuk

3.3.6.1 Analogi Gerakan Mata Terhadap Kursor

Untuk mengemulasikan gerakan pointer komputer dilakukan dengan menghitung perbedaan jarak point fitur traking frame sebelumnya dengan frame yang sedang berjalan.

Variabel-variabel yang digunakan • X = Posisi kordinat kursor pada sumbu x • Y = Posisi kordinat kursor pada sumbu y

• Prev_ftp_x = Posisi kordinat tracking feature point di sumbu x pada frame sebelumnya (menyimpan data kordinat tracking feature point pada frame sebelumnya).

• Prev_ftp_y = Posisi kordinat tracking feature point di sumbu x pada frame sebelumnya (menyimpan data kordinat tracking feature point pada frame sebelumnya).

(31)

• ftp_y = Posisi kordinat tracking feature point di sumbu x pada frame aktif

Untuk nilai X akan diisi secara default setiap melalui proses pengesetan feature tracking point sebesar ½ * lebar resolusi layar. Untuk nilai Y akan diisi secara default setiap melalui proses pengesetan feature tracking point sebesar ½ * tinggi resolusi layar.

Pada saat pengesetan variable ftp_x dan prev_ftp_x akan diisi dengan nilai kordinat feature tracking point di sumbu x pada frame aktif. Pada saat pengesetan variable ftp_y dan prev_ftp_y akan diisi dengan nilai kordinat feature tracking point di sumbu y pada frame aktif

Cara kerja selama proses penjejakan berlangsung adalah dengan menggunakan rumus sebagai berikut :

X=X - (ftp_x-prev_ftp_x) * (( Lebar resolusi layar/2) / 25) Y=Y + (ftp_y-prev_ftp_y) * (( Tinggi resolusi layar/2) / 20)

Catatan: nilai pembagian 25 dan pembagian 20 dimaksudkan untuk mendapatkan jangkauan pointer maksimum ke 4 arah utama dengan gerakan yang paling nyaman. Kemudian nilai X dan Y akan ditranslasikan pada posisi kursor di layar.

3.3.6.2 Deteksi Kedipan (Blink Detection)

Deteksi kedipan dipergunakan untuk mengemulasikan fungsi klik kanan seperti klik kanan pada mouse. Proses yang dilakukan untuk memperoleh deteksi ini pertama

(32)

kali adalah dengan meningkatkan nilai Contrast sebanyak 50 dan meningkatkan nilai brightness sebanyak 100 pada citra grayscale. Kemudian dilakukan fungsi untuk menghaluskan gambar dengan tujuan menghilangkan noise-noise yang ada pada gambar dengan melakukan fungsi konvolusi menggunakan filter Gaussian.

3.3.6.3 Peningkatan Contrast

Peningkatan contrast digunakan untuk mempertinggi perbedaan detail warna pada citra sehingga perbedaan antara daerah mata dan kulit semakin jelas.

Rumus F(s) = (((s/255)-0.5*contrast)+0.5)*255 Jika F(s)>255 -> F(s) = 255;

Jika F(s)<0 -> F(s)= 0;

Ket : s = Nilai tingkat grayscale pada pixel Contrast = nilai contrast (±120)

Pseudocode

Set n -> nilai contrast (-120 sd 120)

For X dari 0 sampai tinggi area mata terdeteksi For y dari 0 sampai lebar area mata terdeteksi Begin

Pixel = getPixel(x,y)

Pixel = ((((pixel/255)-0.5)*n)+0.5)*255 If Pixel > 255 then Pixel = 255

(33)

SetPixel(x,y) = pixel End

3.3.6.4 Peningkatan Brightness

Peningkatan brightness dilakukan untuk memisahkan antara objek gelap dan objek terang pada wajah, dengan landasan bahwa warna bola mata cenderung mempunyai warna yang gelap dibandingkan bagian wajah lainnya (selain rambut).

Teori utama dari brightness adalah menambahkan nilai intensitas warna sebanyak nilai yang kita tentukan agar warna cenderung menjadi lebih terang.

Rumus F(s)= s+b;

If f(s) > 255 then f(s) = 255 If f(s) < 0 then f(s) = 0;

Ket : s = Nilai tingkat grayscale pada pixel b = Nilai brightness (-254 sampai 254)

Pseudocode

Set n -> nilai brightness (-255 sd 255)

For X dari 0 sampai tinggi area mata terdeteksi For y dari 0 sampai lebar area mata terdeteksi Begin

Pixel = getPixel(x,y) Pixel = pixel+n

(34)

If Pixel > 255 then Pixel = 255 If Pixel < 0 then pixel = 0 SetPixel(x,y) = pixel

End

3.3.6.5 Penerapan Deteksi Kedipan

Setelah dilakukan peningkatan detail dengan menaikkan kontras dan pemisahan area gelap dan terang dengan peningkatan brightness maka sudah dapat dideteksi apakah mata sedang berkedip atau tidak, pada saat mata terbuka, di daerah sekitar mata masih terdapat piksel hitam yang merupakan bagian dari bola mata. Dengan menghitung jumlah piksel hitam dan membandingkan dengan batas tertentu dapat ditentukan apakah mata sedang berkedip atau tidak.

(35)

Gambar 3.16 Hasil proses citra (sampel mata tertutup)

Gambar 3.15 dan 3.16 menunjukkan hasil proses citra berintensitas warna gray scale setelah dilakukan peningkatan kontras dan brightness, didapatkan ketika mata terbuka didaerah mata masih terdapat pixel hitam yang merupakan bagian bola mata, sedangkan ketika mata tertutup daerah mata hampir tidak mempunyai nilai pixal hitam. Penentuan dilakukan dengan menentukan jumlah titik hitam yang terdapat pada area mata, apabila jumlah pixel hitam lebih kecil dari nilai batas maka dipastikan bahwa user sedang berkedip sedangkan bila jumlah pixel hitam lebih besar dari nilai batas maka dipastikan bahwa user sedang melihat.

Untuk mengurangi kesalahan pendeteksian kedipan, sebelum dipastikan bahwa kedipan yang dilakukan adalah untuk mengirim signal klik kanan maka proses

(36)

pendeteksian dilakukan selama 10 frame (kurang dari 1 detik) , apabila kedipan hanya sebentar atau sekejap saja maka efek dari kedipan akan ditiadakan. Selain itu karena manusia mempunyai kecenderungan untuk berkedip dengan dua mata setiap beberapa waktu maka apabila terdeteksi kedua mata berkedip bersamaan maka efek kedipan kedua mata ini juga akan ditiadakan.

Apabila mata berkedip, maka akan dikirimkan signal untuk klik kanan pada posisi kursor saat ini.

Gambar

Gambar 3.1 Diagram alir proses kerja driver
Gambar 3.2 Use Case Sistem  Deskripsi Use Case:
Gambar 3.3 Activity Diagram Mendeteksi Wajah dan Mata
Gambar 3.4 Activity Diagram Penjejakan Mata
+7

Referensi

Dokumen terkait

Jika handphone, blackberry atau mungkin Motorola Milestrone / Droid anda telah dilengkapi dengan fitur GPS, maka anda bisa melihat posisi anda berada saat ini di maps (Google

Terdapat sebuah paribasan yang mengajarkan hal ini yaitu paribasan ”kacang mangsa ninggala lanjaran”. Paribasan Jawa ini hampir serupa dengan peribahasa Indonesia

Saat ini kerap terjadi pelanggaran privasi di media sosial berbasis ojek online, timbulnya pelanggaran privasi pada ojek online ini karena aplikasi

Pemohon memahami proses asesmen untuk skema Klaster Perawatan Pencegahan ( Preventive Maintenance ) Alat Berat Big Bulldozer yang mencakup persyaratan dan ruang

• Bahwa saksi mengetahui pemohon dan termohon adalah suami istri yang telah menikah sekitar bulan Desember 2006 di Kabupaten Lombok Barat karena saksi turut

Judul Tesis : HUBUNGAN SOSIAL EKONOMI DAN INTAKE ZAT GIZI DENGAN TINGGI BADAN ANAK BARU MASUK SEKOLAH (TBABS) PADA DAERAH ENDEMIS GAKY DI KECAMATAN PARBULUAN

Communication Objective Dari riset penyelenggara pasca event yang dilakukan melalui 60 responden yang mengetahui Klub sepatu roda kota Semarang, sebanyak 43, yang berminat gabung

Serat Wedhatama, yang merupakan karya besar Sri Mangkunegara IV dapat dijadikan rujukan utama dalam pembelajaran muatan lokal Bahasa, Sastra, dan Budaya Jawa,