NIM : 10109116
Tempat tanggal lahir : Dabo Singkep, 09 Juli 1991
Alamat : Jl Garuda , Dabo Singkep Kepulauan Riau
Almat Bandung : Jl Kebon Bibit Barat No 27 Taman Sari Bandung
Jenis Kelamin : laki-laki
Agama : Islam
No Hp : 081222644440
Email : Randy_kuswara@yahoo.com
Judul Skripsi : Aplikasi pendeteksi mata mengantuk berbasis citra digital
menggunakan metode haar classifier secara real time
Jurusan : Teknik Informatika
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana Program Studi Teknik Informatika Fakultas Teknik dan Ilmu komputer
RANDY KUSWARA
10109116
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
iii
Assalamu’alaikum, Wr.,Wb.
Puji dan syukur penulis panjatkan ke hadirat Allah SWT, atas rahmat dan
karunia-Nya penyusunan skripsi dengan judul “APLIKASI PENDETEKSI
MATA MENGANTUK BERBASIS CITRA DIGITAL MENGGUNAKAN
METODE HAAR CLASSIFIER SECARA REAL TIME ” dapat diselesaikan
tepat pada waktunya. Skripsi ini diajukan untuk memenuhi syarat dalam
menempuh ujian akhir sarjana program strata satu (S1) Jurusan Teknik
Informatika Universitas Komputer Indonesia.
Penyusunan skripsi ini tidak akan terwujud tanpa mendapat dukungan,
buatan dan masukan dari berbagai pihak. Untuk itu , penulis ingin menyampaikan
terimakasih yang sebesar-besarnya kepada :
1. Orang tua dan keluarga yang senantiasa mendoakan dan memberikan
dukungan moril maupun materil.
2. Ibu Nelly Indriani W.,S.Si.,M.T selaku dosen pembimbing yang telah
memberikan arahan dan waktuya.
3. Bapak Galih Hermawan, S.Kom., M.T. selaku dosen reviewer seminar
yang telah memberikan arahan dan mengeluarkan waktunya dalam
bimbingan penyusunan skripsi.
4. Bapak Adam Mukharil Bachtiar, S.Kom., M.T. selaku dosen penguji III
iv Teknik Informatika UNIKOM.
7. Rekan-rekan kelas IF-3 angkatan 2009 serta rekan satu bimbingan yang
selama ini menjadi teman berbagi ilmu, tawa dan cerita.
8. Itsa Asvita, Gyan aryadi yang telah menyemangati selama ini dalam
peyusunan skripsi ini.
9. Semua pihak yang telah membantu yang tidak bisa penulis sebutkan
satupersatu.
Penulis menyadari bahwa dalam penyusunan skripsi ini masih terdapat
banyak kekurangan dan jauh dari predikat sempurna, maka untuk itu kritik dan
saran yang membangun sangat penulis harapkan dari para pembaca.
Terlepas dari kekurangan yang ada semoga skripsi ini dapat bermanfaat
bagi penulis khususnya dan bagi para pembaca pada umumnya dalam upaya
meningkatkan pengetahuan kita semua. Amin. Wassalamu alaikum, Wr., Wb.
Bandung, Agustus 2013
v
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... ix
DAFTAR TABEL ... xi
DAFTAR SIMBOL ... xii
DAFTAR PERSAMAAN ... xiv
DAFTAR LAMPIRAN ... xv
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang Masalah ... 1
1.2 Rumusan Masalah ... 2
1.3 Maksud dan Tujuan... 2
1.3.1 Maksud ... 2
1.3.2 Tujuan ... 2
1.4 Batasan Masalah ... 3
1.5 Metodelogi Penelitian ... 3
1.6 Sistematika Penulisan ... 5
BAB 2 TINJAUAN PUSTAKA ... 7
2.1 Mata Mengantuk ... 7
2.2 Parameter Mengantuk ... 8
vi
2.7 Deteksi Mata ... 15
2.8 Haar Cascade Classifier ... 15
2.8.1 Training Data pada Haar ... 16
2.8.2 Sistem Kerja Algoritma Haar Cascade Classifier ... 16
2.9 DFD (Data Flow Diagram)... 16
2.9.1 Simbol-simbol Pada DFD ... 17
2.10 Software Pendukung ... 19
2.10.1 Bahasa Pemograman C#... 19
2.10.2 Microsoft Visual Studio 2010 ... 20
2.10.3 OpenCV 2.3.1 ... 20
BAB 3 ANALISIS DAN PERANCANGAN ... 20
3.1 Analisis Sistem ... 22
3.1.1 Analisis Masalah ... 22
3.1.2 Analisis mata mengantuk ... 21
3.1.3 Analisis lingkungan ... 24
3.1.4 Analisis Proses Pngenalan Pola Mata Pada Haar ... 24
3.1.5 Tahap Deteksi Mata ... 28
3.1.6 Algoritma AdaBoost ... 36
3.1.7 Analisis Kebutuhan Non Fungsional ... 47
vii
3.1.9.1 Diagram Konteks ... 50
3.1.9.2 Data Flow Diagram ( DFD ) ... 50
3.1.10 Spesifikasi Proses ... 52
3.1.11 Perancangan Antar Muka ... 54
3.1.12 Perancangan Antarmuka Form MenuUtama ... 55
3.1.12.1 Desain Form MenuUtama ... 55
3.1.12.2 Deskripsi Objek Form Menu Utama... 55
3.1.12.3 Desain Form Deteksi ... 56
3.1.12.3 Deskripsi Objek Form Deteksi ... 56
3.1.13 Jaringan Semantik ... 57
BAB 4 IMPLEMENTASI DAN PENGUJIAN... 58
4.1 Implementasi sistem ... 58
4.1.1 Implementasi perangkat lunak ... 58
4.1.2 Implementasi perangkat keras ... 59
4.1.3 Implementasi aplikasi ... 59
4.1.4 Implementasi antarmuka ... 61
4.2 Pengujian ... 64
4.2.1 pengujian performansi ... 65
4.2.1.1 Pengujian lama kedipan mata ... 65
viii
4.2.2.1 Kesimpulan hasil pengujian alpha ... 73
4.2.3 pengujian beta ... 74
4.2.3.1 Kesimpulan pengujian beta ... 78
BAB 5 KESIMPULAN DAN SARAN ... 79
5.1 Kesimpulan ... 79
5.2 Saran ... 79
DAFTAR PUSTAKA ... 80
76
[1]
http://metro.sindonews.com/read/2012/12/30/88/702019/catatan-kecelakaan-tahun-z2012 terakhir diakses pada tanggal 01 April 2013.
[2]
http://en.bisnis.com/articles/lebaran-2012-mayoritas-kecelakaan-lantas-gara-gara-ngantuk terakhir diakses pada tanggal 01 April 2013.
[3] Paul Viola and Michaels J. Jones. 2001. Rapid Object Detection using
boosted Cascade of Simple Features.IEEE CVPR.
[4] Marcus, T. 2007. Rekayasa Perangkat Lunak.Jakarta. Elex Media
Komputindo.
[5] Putra, Darma. 2010. Pengolahan Citra Digita.Yogyakarta. Penerbit Andi.
[6] Fadilsyah. 2007. Computer Vision dan Pengolahan Citra.Yogyakarta.
Penerbit Andi.
[7] http://www.kit.nl/library/documents/query.ashx?RecordID=430241 terkhir diakses pada tanggal 10 April 2013
[8] Andreassi, J. L, 2006.Psychophysiology.New York. human behavior and physiological response.
[9] P.P. Caffier, U. Erdmann and P. Ullsperger, 2005. The spontaneous
eye-blink as sleepiness indicator in patients with obstructive sleep apnoea
syndrome - a pilot study. Sleep Medicin.
[10] Sugiyono, 2010. Metode Penelitian Kuantitatif Kualitatif dan R&D.
1
kota besar seperti Jakarta. Kecelakaan lalu lintas saat ini merupakan salah satu
penyebab terbesar dalam peningkatan angka kematian di suatu daerah. Sebagai
sampel, di wilayah Jakarta, kecelakaan lalu lintas karena kesalahan pengemudi
mencapai 7.817 kasus pada tahun 2012, dan korban yang tewas mencapai 901
orang [1].
Penyebab terbesar kecelakaan terjadi karena pengemudi mengantuk.
Berdasarkan data laporan rekapitulasi Operasi Ketupat Jaya 2012 ada 134
kecelakaan lalu lintas yang menyebabkan 13 korban meninggal dunia, 41 korban
luka berat, dan 139 korban luka ringan. Sebagian besar kecelakaan terjadi di
kawasan perbelanjaan yang memang ramai ketika menjelang Lebaran dan hari
Lebaran. 133 kecelakaan disebabkan oleh faktor manusia, yakni faktor
lelah/mengantuk [2]. Mengantuk banyak mengakibatkan kecelakaan lalu lintas
yang meyebabkan korban cedera, kerugian materi dan bahkan kematian.
Berdasarkan latar belakang yang telah dijelaskan, akan dibuat aplikasi
untuk mendeteksi kantuk dengan mengamati pergerakan mata seseorang ketika
menutup. Adapun teknologi yang mendukungnya adalah Computer Vision. Tujuan
utamanya adalah untuk membuat keputusan yang berguna tentang objek fisik
nyata dan pemandangan berdasarkan image yang didapat dari sensor. Penerapan
Computer Vision cukup banyak digunakan dalam sistem keamanan maupun
proteksi. Salah satunya pengenalan pola pada objek mata. Sistem pendeteksi
kantuk ini memanfaatkan webcam camera sebagai sensornya. Selanjutnya data
kamera diproses dengan menggunakan CPU (Central Processing Unit) untuk
mengolah dan mengeksekusi data yang telah ditangkap. Metode yang digunakan
untuk mendeteksi mata mengantuk adalah Haar Cascade classifier, yaitu metode
yang dapat melihat dari adanya mata seseorang tertutup dan metode ini memiliki
“Aplikasi Pendeteksi Mata Mengantuk Berbasis Citra Digital Menggunakan Metode Haar Classifier Secara Real Time”.
1.2 Rumusan masalah
Bagaimana membangun sebuah aplikasi pendeteksi mata berbasis citra
digital mengunakan metode Haar Classifier Secara Real Time.
1.3Maksud dan Tujuan
1.3.1 Maksud
Maksud dari penulisan tugas akhir ini adalah membangun Aplikasi
Deteksi Mata Mengantuk Berbasis Citra Digital Menggunakan Metode Haar
Classifier secara Real Time.
1.3.2 Tujuan
Adapun tujuan dari penulisan tugas akhir ini adalah untuk mendeteksi
mata seseorang yang mengantuk.
1.4 Batasan Masalah
Adapun batasan masalah tersebut adalah sebagai berikut :
1. Aplikasi ini mendeteksi mata manusia secara real time.
2 Metode yang digunakan adalah Metode Haar Cascade Classifier.
3 Jika mata mengantuk, keluaran yang dihasilkan berupa informasi mengantuk.
4 Sistem ini tidak berfungsi jika tidak ada cahaya.
5 Citra training adalah citra mata dengan menggunakan format BMP dan citra uji
adalah mata seseorang di depan webcam.
6 Sistem operasi yang digunakan adalah Microsoft Windows 7 Starter.
7 Pembuatan software menggunakan C# dengan IDE Visual Studio 2010.
8 Sistem yang dibangun berbasis Dekstop.
9 Sistem menggunakan library EmguCV dan OpenCV
10Aplikasi ini mencangkup simulasi untuk sistem keamanan didalam mobil.
1.5 Metodologi Penelitian
Metodologi yang dilakukan dalam penelitian ini terdiri atas:
1. Studi Kepustakaan, yaitu mempelajari literature, konsep serta
sumber-sumber dari buku-buku ataupun mengakses situs-situs yang berkaitan
dengan materi yang dibahas.
2. Diskusi dan konsultasi/wawancara, yaitu metode yang dilakukan dengan
cara melakukan diskusi dengan pihak-pihak yang dapat memberikan
sebuah masukan atau saran dalam pembuatan aplikasi ini khususnya para
pengemudi.
b. Tahapan Pembangunan Aplikasi
Model yang digunakan untuk proses pembangunan aplikasi ini adalah model
waterfall.
Gambar 1.1 Model WaterFall [4]
1. Requirement Information System Engineering : tahap ini merupakan
kegiatan pengumpulan data sebagai pendukung pembangunan sistem serta
menentukan ke arah mana aplikasi ini akan dibangun.
2. Analysis : Mengumpulkan kebutuhan secara lengkap kemudian dianalisis
dan didefinisikan kebutuhan yang harus dipenuhi oleh aplikasi yang akan
dibangun. Tahap ini harus dikerjakan secara lengkap untuk bisa
menghasilkan desain yang lengkap.
Requirement sistem informasi engineering
Analisis
Desain
Coding
Implementation and testing
3. Design : perancangan antarmuka dari hasil analisis kebutuhan yang telah
selesai dikumpulkan secara lengkap.
4. Coding : hasil perancangan sistem diterjemahkan ke dalam kode-kode
dengan
menggunakan bahasa pemrograman yang sudah ditentukan. Aplikasi yang
dibangun langsung diuji baik secara unit.
5. Implementation and Testing : penyatuan unit-unit program kemudian diuji
secara keseluruhan.
6. Maintenance : mengoperasikan aplikasi dilingkungannya dan melakukan
pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi dengan
situasi yang sebenarnya.
1.6 Sistematika Penulisan
Sistematika dari penulisan tugas akhir ini adalah sebagai berikut:
BAB I PENDAHULUAN
Bab ini berisi mengenai latar belakang masalah, identifikasi masalah, maksud dan
tujuan, batasan masalah, metodologi penelitian, dan sistematika penulisan.
BAB II LANDASAN TEORI
Bab ini berisi konsep dasar seperti citra digital, pengolahan citra ( Image
Processing ), deteksi mengantuk, Haar Classifier 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, analisis fungsional dan non
fungsional dan pemodelan terstruktur untuk memperlihatkan keterkaitan antar
fungsi yang terdapat dalam perangkat lunak serta perancangan antarmuka
perangkat lunak.
BAB IV IMPLEMENTASI DAN PENGUJIAN
Dalam bab ini diperlihatkan software yang dibangun dan hasil penelitian yang
kedipan mata, deteksi posisi wajah, jaraj wajah terhadap webcam, pengaruh
cahaya terhadap deteksi mata mengantuk, dan pengujian alpha.
BAB V KESIMPULAN DAN SARAN
Pada bab ini dijelaskan kesimpulan dari penelitian yang telah dibahas pada bab-
7 BAB 2
TINJAUAN PUSTAKA
2.1 Mata Mengantuk
Mengantuk merupakan kondisi ketika tubuh membutuhkan istirahat atau
tidur dan didefinisikan sebagai kecenderungan untuk tidur. Mengantuk dapat
disebabkan oleh kelelahan melakukan pekerjaan yang berulang-ulang seperti
survey monitor ataupun mengendarai kendaraan ketika dalam perjalanan jauh.
Kantuk dan lelah memiliki banyak efek yang sama. Pada kejadian ini, pada saat
ketika kelopak mata mulai terasa berat dan seketika menutup 100%, pandangan
mulai kabur dan tiba-tiba saja kelopak mata tersebut sudah menutup 100%
,sehingga mata tanpa bisa diajak kompromi lagi. Padahal dalam pikiran, merasa
masih terjaga. Hal itulah yang menjadi tanda akan seseorang tersebut mengantuk.
Oleh karena itu dalam penelitian kali ini akan mendeteksi mata mengantuk,
menggunakan objek mata dalam keadaan tertutup 100% [9]. Mata dalam keadaan
terbuka dapat dilihat pada Gambar 2.1 dan mata dalam keadaan tertutup dapat
dilihat pada Gambar 2.2
Gambar 2.1 Mata dalam keadaan terbuka
2.2 Parameter Mengantuk
Menurut penelitian Tecce (1992) [9], frekuensi kedipan dapat dipengaruhi
faktor yang berbeda seperti : kondisi dan perintah. Dalam keadaan normal atau
bebas dari stres rata-rata kedipan mata adalah 15 sampai 20 kali permenit.
Frekuensi ini menurun sampai 3 kali permenit ketika membaca. Frekuensi
tersebut meningkat dalam keaadaan stress, tertekan ataupun ketika menutupnya
mata saat dibutuhkan.
Indikator untuk mengetahui seseorang sedang mengantuk dapat
dideskripsikan ketika kondisi normal (tidak mengantuk) posisi kelopak mata
membuka lebar sebelum menutup. Ketika menutupmemiliki interfal waktu yang
cepat (kurang dari satu detik). Ketika seseorang mulai lelah dan mengantuk, jarak
antara kedua kelopak mata semakin menyempit dan frekuensi kedipan semakin
menurun hingga tertidur.
Untuk memodelkan pengemudi yang sedang mengantuk dapat
diindikasikan bahwa terdapat parameter-parameter sebagai berikut:
1. Menurunnya interest interest terhadap lingkungan .
2. Meningkatnya kantuk atau kecenderungan untuk tidur, yaitu ditandai dengan
meningkatnya durasi kedipan mata untuk menutup.
Menurut studi yang dilakukan oleh Phillip .P. Caffier [10],
mengelompokkan tingkatan kantuk berdasarkan durasi kedipan mata. Umumnya
durasi kedipan rata-rata adalah kurang dari 400 Ms dan 75 Ms untuk minimum.
Berdasarkan alasan ini, maka digunakan 400 Ms sebagai waktu kantuk (T_kantuk)
dan 800 Ms sebagai waktu telah tertidur (T_tidur).
Tabel 2.1 Deteksi kantuk berdasarkan durasi kedipan
Level Kantuk Deskripsi
Normal (Terbangun) Durasi kedipan < T_kantuk
Mengantuk Durasi kedipan > T_kantuk dan Durasi
kedipan < T_tidur
Tidur Durasu kedipan >= T_tidur
Macam – macam gambar mata mengantuk
Gambar 2.3 Mengantuk 1 Gambar 2.4 Mengantuk 2
Gambar 2.5 Mengantuk 3
2.3 Pengolahan Citra ( Image Processing )
Pengolahan citra (image processing) adalah pengolahan suatu citra (gambar)
dengan menggunakan komputer secara khusus, untuk menghasilkan suatu citra
yang lain. Sesuai dengan perkembangan komputer itu sendiri, pengolahan citra
mempunyai dua tujuan utama[6], 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).
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. Oleh sebab itu uncul 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
2.4 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
makin terang. Sistem yang umum memiliki 256 tingkat kecerahan untuk setiap
piksel, yang paling terang adalah 255 dan yang paling gelap adalah 0.
Gambar 2.6 Citra Digital
Citra atau gambar terbagi dalam tiga tipe adalah sebagai berikut: [6]
Gambar 2.6 Citra Digital
a. Gambar Grayscale
Citra yang terdiri dari satu layer warna dengann derajat keabuan tertentu.
Dinyatakan dalam suatu fungsi : ... (2.1)
b. Gambar Biner
Citra yang hanya memiliki dua nilai yaitu 1 dan 0. Dinyatakan dalam suatu fungsi
:
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 :
...(2.3)
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.5 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 objek dengan indera penglihatan
(mata) kemudian objek citra diteruskan ke otak untuk diinterpretasi sehingga
manusia mengerti objek apa yang tampak dalam pandangan matanya. Hasil
interpretasi ini mungkin digunakan untuk mengambil suatu keputusan [6].
Sebagaimana layaknya mata dan otak, computer vision adalah merupakan proses otomatis yang mengintegrasikan sejumlah besar proses untuk persepsi
visual, seperti akuisisi citra, pengolahan citra, pengenalan dan membuat
keputusan. Computer vision mencoba meniru cara kerja sistem visual manusia
(human vision) yang sesungguhnya sangat kompleks, setelah data objek yang
Manusia melihat dengan objek dengan indera penglihatan (mata), lalu citra
objek diteruskan ke otak untuk diinterpretasi sehingga manusia mengerti objek
apa yang tampak dalam pandangan mata. Hasil interpretasi ini digunakan untuk
pengambilan keputusan (misal ketika mata pengemudi mengantuk, alarm system
bekerja).
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.
Pengolahan citra merupakan proses awal pada computer vision, pengenalan
pola merupakan proses untuk menginterpretasi citra.
2.6 Pengenalan Pola
Pengenalan pola adalah mengelompokkan data numerik dan simbolik
(termasuk citra) secara otomatis oleh mesin (komputer).Tujuan pengelompokkan
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 yang dicoba ditiru oleh mesin.
Komputer menerima masukan berupa citra objek yang akan diidentifikasi,
memproses citra tersebut dan memberikan keluaran berupa informasi/deskripsi
Gambar 2.7 Pola pengenalan[5]
Contoh pengenalan pola misalnya citra pada Gambar 5adalah citra mata yang
digunakansebagai data masukan untuk mengenali mata. Dengan menggunakan
suatu algoritmapengenalan pola, diharapkan komputer dapat mengenali bahwa
citra tersebut adalah mata.
2.7 Deteksi Mata (Eye Detection)
Untuk deteksi mata, pada penelitian ini menggunakan metode yang
dibangun oleh EmguCV. Deteksi objek oleh EmguCV diajukan oleh Paul Viola
dan dikembangkan oleh Rainer Lienhart.EmguCV menggunakan tipe deteksi
objek yang disebut Haar Cascade Classifier. Dengan memberikan gambar yang
berasal dari file maupun live video, detector ini menguji tiap lokasi gambar dan
mengklasifikasi sebagai objek atau bukan objek (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 EmguCV sudah termasuk didalamnya data XML, untuk deteksi
objek.Dalam aplikasinya cukup memberitahu software, dimana dapat menemukan
file data yang ingin digunakan [3].
2.8 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)[7].
Pendekatan untuk mendeteksi objek dalam gambar menggabungkan empat konsep
utama:
1. Training data
2. Fitur segi empat sederhana yang disebut fitur Haar
4. Pengklasifikasi bertingkat (Cascade classifier) untuk menghubungkan
banyak fitur secara efisien
2.8.1 Training Data pada Haar
Metode ini memerlukan 2 tipe gambar objek dalam proses training yang
dilakukan[7], yaitu :
1. Positive samples
Berisi gambar objek yang ingin di deteksi, apabila ingin mendeteksi mata maka
positive samples ini berisi gambar mata, begitu juga objek lain yang ingin
dikenali.
2. Negative samples
Berisi gambar objek selain objek 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.
2.8.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
AdaBoost Classifier. Classifier ini menggunakan gambar berukuran tetap. Cara
kerja dari Haar dalam mendeteksi mata adalah menggunakan teknik resize pada
gambar dan mencari apakah terdapat bagian dari gambar yang berbentuk seperti
mata atau tidak. Haar juga memiliki kemampuan untuk melakukan scaling
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.9 Persiapan DataSet data training
Dataset terdiri dari 2 buah sample. Sample positif adalah gambar yang
mengandung obyek yang akan dideteksi. Jika kita menginginkan mata mengantuk
Sample negatif adalah gambar yang tidak mengandung obyek yang akan
dideteksi. Seperti gambar pegunungan, mobil dsb. Masukkan sample positif pada
1 direktori, misalnya positiveSample/rawdata. Sedangkan sample negatif,
dimasukkan pada /negativeSample. Catatan: file gambar harus file *.bmp.
2.9.1 Membuat infofile.txt untuk Sample Negative
Gunakan create_list.bat pada folder /negativeSample untuk mencatatkan
nama file sample negative pada infofile.txt.
2.9.2 Membuat info.txt untuk Sample Positive
Kemudian jalankan program objectmarker.exe pada folder positiveSample.
Ketika program ini dijalankan, maka akan muncul satu per satu file dari sample
positiveSample. Kemudian tandai obyek yang dimaksud dari gambar tersebut
dengan menggerakkan kursor mouse membentuk sebuah box persegi panjang.
Kemudian tekan spasi untuk menambahkan box tersebut, lalu tekan enter untuk
beralih pada file gambar berikutnya. Kalau berhasil, maka info.txt akan berisi data
gambar
Gambar 2.8 Objectmarker.exe
2.9.3 Membuat file vector.vec dari Sample Positive
Lalu kita gunakan tool createsamples.exe untuk mengubah obyek gambar
Gambar 2.9 tool createsamples.exe pada dos command
Tabel 2.2 Keterangan parameter:
Parameter Explanation
Info<collection of filename> Lokasi tempat image berada
Num<sample_width> Jumlah positive image yang di training
W<sample_width> Panjang image
H<sample_height> Lebar dari image
Vec<vec_file_name> Binary file yang menampung hasil
olahan dari positive image
Maka bila hal ini telah berhasil dijalankan maka akan muncul pada folder /data,
file vector.vec
2.9.4 Memulai HaarTraining
Setelah kita punya file vector.vec maka kita mulai haartraining. Jalankan
Gambar 2.10 Haartraining.exe di dos command
Tabel 2.3 Keterangan parameter:
Parameter Explanation
Data <dir_name> Tempat folder cascade of classifier
akan disimpan
Voo <voo_filename> Informasi nama image
Bg <background_filename> Mengandung informasi negatif image
Nneg <number_negativ_samples> Menunjukan banyaknya jumlah negatif
image>
Npos <number_positive_samples> Menunjukan banyaknya positive image
Men <memory_in_MB> Banyaknya memory yang dipakai
selama proses pembuatan cascade of
classifier
Nonsym Untuk memastikan datanya bukan
simetrik
Mode ALL Untuk memastikan parameter tidak
ditulis dalam kondisi default
W <sample_width> Tinggi dan lebar image
[image:31.595.107.519.377.738.2]lalu pada folder tools/temp/data/cascade maka akan muncul folder mulai
dari 0 sampai N. Kemudian copy semua folder tersebut pada
tools/cascade2xml/data.
2.9.5 Membuat file *.xml
Jalankan haarconv.exe pada folder /cascade2xml di dos command sebagai berikut:
Jika berhasil, maka akan muncul file output.xml pada folder /cascade2xml.
<opencv_storage> <haarcascade_eye type_id="opencv-haar-classifier"> <size> 24 24</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>
Tabel 2.4 Keterangan
Threshold Merupakan nilai amabang batas suatu
objek apakah objek mata tertutup
(mengantuk) atau tidak
Left_val Nilai dari ambang batas sebelah kiri
(atas)
Right_val Nilai dari ambang batas sebelah kanan
(bawah)
Stage_threshold Nilai yang dipilih untuk ambang batas
mata tertutup
Size Dengan size untuk image 24x24
2.10 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) [3].
2.9.1 Simbol-Simbol Pada DFD
Berikut ini merupakan beberapa simbol yang digunakan untuk pemodelan
menggunakan DFD [3]:
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 :
Gambar 2.11 Eksternal Entity
Menggambarkan apa yang dilakukan oleh sistem. Berfungsi
mentransformasikan satu atau beberapa data masukan menjadi satu atau
beberapadata keluaran sesuai dengan spesifikasi yang diinginkan. Berikut ini
adalah gambar proses pada DFD :
Gambar 2.12 Proses
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 :
Gambar 2.13 Data Flow
4. Data Store
Menggambarkan tempat penyimpanan data. Proses dapat mengambil data
Gambar 2.14 Data Store
2.11 Pengujian
Ada dua macam pengujian yang akan dilakukan, yaitu pengujian
performansi dan black box testing. Pengujian performansi yaitu dengan
melakukan percobaan-percobaan dalam kondisi-kondisi tertentu seperti pengaruh
posisi wajah pada saat pendeteksian, jarak wajah terhadap webcam, dan pengaruh
pencahayaan terhadap deteksi mata. Pengujian pada black box testing yaitu
menemukan kesalahan yang terdapat pada program.
2.11.1 Pengujian Performansi
Pengujian performansi dilakukan dengan serangkaian
percobaan-percobaan dalam kondisi-kondisi tertentu yang dapat mempengaruhi keefektifan
kinerja sistem pendeteksian mata mengantuk.
2.11.2 Pengujian Black Box
Black Box Testing ini bertujuan untuk menunjukkan fungsi perangkat
lunak tentang cara beroperasinya, apakah pemasukan data keluaran telah berjalan
sebagaimana yang diharapkan dan apakah informasi yang disimpan secara
eksternal selalu dijaga kemutakhirannya. Tehnik pengujian black-box berfokus
pada domain informasi dari perangkat lunak, dengan melakukan test case dengan
menpartisi domain input dari suatu program dengan cara yang memberikan
cakupan pengujian yang mendalam. Metode pengujian graph-based
mengeksplorasi hubungan antara dan tingkah laku objek-objek program. Partisi
ekivalensi membagi domain input ke dalam kelas data yang mungkin untuk
melakukan fungsi perangkat lunak tertentu. Analisis nilai batas memeriksaa
kemampuan program untuk menangani data pada batas yang dapat diterima.
Metode pengujian yang terspesialisasi meliputi sejumlah luas kemampuan
fasilitas help dan sistem real time masing-masing membutuhkan pedoman dan
tehnik khusus untuk pengujian perangkat lunak [9].
2.12 Software Pendukung
2.12.1 Bahasa Pemrograman 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.
2.12.2 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
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.
2.12.3 OpenCV 2.3.1
OpenCV 2.3.1 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
25
sederhana, sehingga struktur logisnya menjadi lebih jelas. Analisis sistem terdiri
dari beberapa tahapan, diantaranya analisis masalah,analisis proses, analisis
metode, analisis kebutuhan non-fungsional, dan analisis kebutuhan fungsional.
3.1.1 Analisis Masalah
Mengantuk banyak mengakibatkan kecelakaan lalu lintas yang
meyebabkan korban cedera, kerugian materi dan bahkan kematian. Oleh karena
itu dibuat aplikasi simulasi keselamatan aktif untuk mendeteksi kantuk dengan
mengamati pergerakan mata seseorang. Tujuan utaman,ya adalah untuk membuat
keputusan yang berguna tentang kondisi mata berdasarkan image yang didapat
dari sensor. Penerapan Computer Vision cukup banyak digunakan dalam sistem
keamanan maupun proteksi. Salah satunya pengenalan pola pada objek mata.
Misalnya, penerapan pengenalan pola pada objek mata ini dapat digunakan
sebagai sistem proteksi dengan menjadikan mata sebagai objek scanning untuk
sistem sensor. Sistem pendeteksi kantuk ini memanfaatkan webcam camera
sebagai sensornya. Selanjutnya data kamera diproses dengan menggunakan CPU
(Central Processing Unit) untuk mengolah dan mengeksekusi data yang telah
ditangkap. Metode yang digunakan untuk mendeteksi mata mengantuk adalah
Haar Cascade classifier, yaitu metode yang dapat melihat dari adanya mata
seseorang tertutup dan metode ini memiliki keakuratan yang tinggi dalam
mendeteksi suatu objek.
3.1.2 Analisis mata mengantuk
Prangkat lunak ini menggunakan mata sebagai objek observasi. Pemilihan
mata sebagai objek observasi dikarenakan mata merupakan faktor yang sangat
penting untuk mendeteksi keadaan pengemudi, apakah pengemudi dalam keadaan
mengantuk atau tidak. Citra mata diambil dengan menggunakan webcam sebagai
menyebabkan masalah seperti waktu proses dan keakuratan dalam proses
pendeteksian objek.
Penelitian kali ini menggunakan mata dalam keadaan tertutup 100%
sebagai objek penelitiannya. Menurut Mark A.W. Andrews, profesor fisiologi dari
Seton Hill University, Greensburg, Pennsylvania, kelopak mata bisa menutup
sendiri sering disebabkan oleh mata yang sudah terlalu lelah. Andrews
menjelaskan bahwa saat terlalu lama berkendara, membaca atau bekerja dengan
komputer, kekuatan otot di area kelopak mata bisa menurun, Andrews
membandingkan hal tersebut seperti ketika seseorang berjalan kaki seharian tanpa
berhenti.
Kelopak mata bisa terasa sangat berat dan tertutup 100% ketika seseorang
mengerahkan konsentrasi dan memaksa mata tetap terbuka dalam jangka waktu
yang lama. Apalagi bila seseorang bekerja di lingkungan yang agak gelap, seperti
halnya berkendara di malam hari.
Menurut studi yang dilakukan oleh Phillip .P. Caffier [10],
mengelompokkan tingkatan kantuk berdasarkan durasi kedipan mata. Umumnya
durasi kedipan rata-rata adalah kurang dari 400 Ms dan 75 Ms untuk minimum.
Berdasarkan alasan ini, maka digunakan 400 Ms sebagai waktu kantuk (T_kantuk)
dan 800 Ms sebagai waktu telah tertidur (T_tidur).
3.1.3 Analisis Lingkungan
Citra mata diambil dengan menggunakan webcam sebagai citra real time.
Dengan penggunaan webcam sebagai input secara real time dapat menyebabkan
beberapa masalah seperti kondisi lingkungan, serta waktu proses dan keakuratan
dalam proses pendeteksian objek.
Kondisi lingkungan dan keakuratan dalam melakukan pendeteksian objek
menjadi pertimbangan utama dalam pemilihan metode. Hal ini dikarenakan
program berlangsung secara real time maka dibutuhkan lingkungan yang memiliki
intisitas cahaya yang cukup, selain itu mengingat objek yang akan dideteksi cukup
3.1.4 Analisis Proses Pengenalan Pola Mata pada Haar Classifier
Dalam analisis processing image (Pengenalan pola mata) ini dibagi
menjadi 3 tahap[5]:
1. penskalaan(scaling)
2. grayscaling
[image:41.595.168.380.253.539.2]3. tresholding
Gambar 3.1 Alur proses pengenalan pola mata
1. Tahap Penskalaan (Scaling)
Citra digital yang diambil secara real time oleh webcam akan diperkecil
dengan menggunakan metode interpolasi. Metode ini menggunakan nilai rata –
Citra asli
124 122 126 233 97 34 23 64
135 101 179 245 141 123 121 119
167 143 108 243 148 67 134 130
211 124 203 222 248 120 156 78
112 167 225 123 223 34 45 45
189 190 221 189 156 88 99 23
Citra Hasil
120,5 195,75 98,75 81,75
161,25 194 145,75 124,5
[image:42.595.85.430.114.377.2]164,5 189,5 125,25 53
Gambar 3.2 Metode interpolasi untuk memperkecil gambar
Nilai piksel pada koordinat pada citra hasil interpolasi diperoleh dengan
menghitung nilai rata – rata dari 4 nilai piksel pada citra asli, yaitu :
Tabel 3.1 Rata-rata dari 4 piksel pada citra
Nilai Piksel Citra Asli Nilai Piksel Citra Hasil Interpolasi
124+122+135+101/4 120,5
126+233+175+145/4 195,75
97+34+141+123/4 98,75
23+64+121+119/4 81,75
167+143+211+124/4 161,25
108+234+203+222/4 194
148+67+248+120/4 145,75
134+130+156+78/4 124,5
112+167+189+190/4 164,5
225+123+221+189/4 189,5
223+34+156+88/4 125,25
[image:42.595.83.421.471.750.2]2. Tahap Grayscaling
Representasi nilai RGB (Red, Green, Blue) diubah menjadi gambar yang
terdiri dari warna putih dan gradiasi warna hitam yang biasa
disebut greyscale. Untuk mengubah RGB menjadi greyscale dapat digunakan
rumus sebagai berikut:
...(3.1)
Misalkan R=124,8 G=145,8 B=109,3
Greyscal: (0.299x124,8) + (0.587x145.8) + (0.114x109.3) = 135.36
Berikut ini adalah citra hasil grayscaling :
Citra Asli Cirtra grayscaling
Gambar 3.3 Proses pengubahan citra RGB menjadi citra 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
deraja keabuan (0 sampai 255 = 256) dibagi dengan 256 (nilai derajat keabuan
yang diinginkan). Proses penghitungan nilai treshold untuk citra mata adalah
sebagai berikut :
X= = = 135.36 ...(3.2)
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 :
Gambar 3.4 Citra Hasil
0 0 0 1 0 0 0 0
1 0 1 1 1 0 0 0
1 1 0 1 1 0 0 0
1 0 1 1 1 0 1 0
0 1 1 0 0 0 0 0
1 1 1 1 1 0 0 0
Gambar 3.5 Citra Biner
Berikut ini adalah gambar hasil pengubahan citra grayscale menjadi citra
biner :
[image:44.595.154.413.236.528.2]Gambar Grayscale Gambar Biner
Gambar 3.6 Proses pengubahan citra Grayscale ke Citra Biner
Ketiga tahapan ini merupakan tahapan pengenalan pola mata yang
digunakan oleh aplikasi pendeteksi mata mengantuk. Ketiga tahapan ini dibangun
124 122 126 233 97 34 23 64
135 101 179 245 141 123 121 119
167 143 108 243 148 67 134 130
211 124 203 222 248 120 156 78
112 167 225 123 223 34 45 45
dengan mengunakan emgu cv. Emgu cv telah mempasilitasi proses ini sehinga
dengan mudah dapat direalisasikan di aplikasi mata mengantuk ini.
3.1.5 Tahap Deteksi Mata
Dalam skema penelitian ini akan diperlihatkan urutan dari saat training
data hingga dapat terdeteksi, penelitian yang dilakukan adalah untuk membuat
sebuah perangkat lunak yang dapat digunakan untuk mendeteksi mata yang
mengantuk secara real time dengan menggunakan Haar Cascade Classifier,
daerah mata yang terdeteksi dapat digunakan untuk mengetahui apakah seseorang
dalam keadaan mata tertutup atau tidak, secara cepat dan efisien. Skema deteksi
mata tertutup pada penelitian ini dapat dilihat pada Gambar 3.1.
[image:45.595.201.421.328.682.2]Haar Cascade Classifier
1. Create Samples
Pada bagian ini diperlukan 2 tipe gambar objek dalam proses training yang akan
dilakukan, yaitu :
a. Positive samples merupakan gambar objek yang ingin dideteksi, apabila ingin
mendeteksi wajah mengantuk maka positive samples ini berisi dengan gambar
wajah dengan kondisi mata mengantuk, begitu pula dengan objek lain yang
[image:46.595.100.525.224.440.2]ingin dikenali. Contoh gambar positive samples pada Gambar 3.8
Gambar 3.8 Contoh gambar positif
b. Negative samples merupakan gambar selain objek, umunya berupa gambar background (tembok, pemandangan, lantai, dan gambar lainnya). Contoh
gambar negative samples dapat dilihat pada Gambar 3.9
Resolusi untuk positive samples dan negative samples bernilai sama
dengan resolusi kamera yaitu 320x240 piksel. Ini dilakukan untuk mengurangi
error dalam proses pengklasifikasiannya.
2. Cropping Image
Proses cropping ini adalah untuk menentukan objek-objek yang akan
digunakan dalam proses Haar training. Dari sekumpulan gambar positif tersebut
akan dilakukan cropping secara manual terhadap objek spesifik yang akan
dideteksi. Pada proses Haar training, objek yang telah di cropping tersebut akan
dikonversikan ukurannya menggunakan teknik resize (umumnya menggunakan
citra berukuran 24x24 piksel) pada keseluruhan objek dan mencari apakah
terdapat bagian dari gambar yang berbentuk seperti mata mengantuk atau tidak.
Teknik resize ini menunjukkan bahwa setiap citra yang akan diklasifikasi, berapapun ukurannya, akan diubah terlebih dahulu ke dalam ukuran 24x24. Misal,
terdapat gambar berukuran 40x40, maka gambar tersebut akan dikonversi menjadi
berukuran 24x24. Demikian pula, jika terdapat gambar yang lebih kecil dari
24x24, misalnya 10x10, maka gambar tersebut akan diubah ke dalam ukuran
24x24 [3]. Seperti pada gambar 3.10:
Gambar 3.10 Cropping Manual
3. Cascaded Classifier
Cascaded classifier merupakan suatu metode pengklasifikasian bertingkat,
dimana input dari setiap tingkatan merupakan output dari tingkatan sebelumnya.
Pada classifier tingkat pertama, yang menjadi inputan adalah seluruh citra. Semua
citra yang berhasil melewati classifier pertama akan dilanjutkan ke classifer ke
classifier, maka citra tersebut dinyatakan sebagai objek. Sedangkan untuk citra
yang gagal melewati suatu classifier akan langsung dieliminasi dan dinyatakan
sebagai bukan objek (tidak akan diproses lagi). Hal ini sangat mempercepat proses
pengklasifikasian, karena jumlah inputan yang diterima di setiap classifier akan
semakin berkurang [3].
Cascaded classifier dirancang sedemikian rupa untuk meningkatkan
tingkat pendeteksian dan mengurangi jumlah false positive (citra negatif
yangdianggap sebagai citra positif). Setiap tingkatan classifier merupakan
representasi hasil dari algoritma boosting. Jadi, disetiap tingkat classifer memiliki
sejumlah weak classifiers. Setiap weak classifier merupakan nilai-nilai fitur Haar
yang digunakan (jenis, ukuran, dan lokasi), nilai threshold terbaik untuk setiap
fitur, serta nilai batasan setiap fitur tersebut.
Semakin tinggi tingkat classifer, semakin banyak pula jumlah weak
classifier yang ada. Hal ini mengakibatkan semakin sulitnya suatu citra untuk
berhasil melewati tingkatan classifier tersebut, sehingga jumlah citra yang
dieliminasi akan semakin banyak,dan jumlah citra yang berhasil lolos ke classifier
tingkat selanjutnya akan semakin sedikit.
Oleh karena semakin sedikit citra yang berhasil lolos ke classifier
selanjutnya, maka semakin sedikit pula jumlah false positive yang berhasil lolos.
Dengan berkurangnya false positive,tingkat keakuratan pendeteksian pun
meningkat. Jadi, semakin banyak tingkat classifier didalam suatu cascaded
classifier, maka semakin akurat hasil yang akan didapatkan.
4. Haar Like Features
Algoritma Haar menggunakan metode statistikal dalam melakukan
pendeteksian objek. Tiap feature dari Haar-like feature didefinisikan pada bentuk
dari feature, diantaranya koordinat dari feature dan juga ukuran dari feature
haar_x2 haar_y2 tilted_haar_x2 tilted_haar_y2
haar_x3 haar_y3 tilted_haar_x3 tilted_haar_y3
haar_x4 haar_y4 tilted_haar_x4 tilted_haar_y4
[image:49.595.155.514.101.445.2]
haar_point tilted_haar_point
Gambar 3.11 Haar like feature
Tiap feature terbagi atas dua bagian, yaitu bagian berwarna putih dan
bagian berwarna hitam. Penggunaan fitur dilakukan karena pemrosesan fitur
berlangsung lebih cepat dibandingkan pemrosesan citra perpiksel sehingga cocok
untuk diterapkan pada proses pendeteksian objek secara real time. Pada penelitian
ini untuk menghitung nilai fitur Haar pada sebuah citra dan pada skala yang
berbeda secara cepat menggunakan satu teknik yang disebut integral image.
Secara umum integrating berarti menggabungkan unit-unit kecil menjadi
satu. Dalam hal ini unit-unit kecil adalah nilai piksel. Nilai integral suatu piksel
adalah jumlah dari semua piksel diatas dan di kiri piksel tersebut. Seluruh citra
dapat digabungkan dengan operasi nilai yang lebih sedikit tiap pikselnya. Integral
image sangat membantu dalam perhitungan fitur Haar-like. Dengan menggunakan
Rumus integral image :
' '
' '
,
( , )
( ,
)
x x y y
P x y
i x y
[image:50.595.116.443.131.366.2]...(3.3)
Gambar 3.12 Integral image[3]
1 , 2 , 3 , 4
P A P A B P A C P A B C D
1 4 2 3
P P P P A A B C D A B A C D
Contoh perhitungan nilai fitur menggunakan integral image adalah sebagai
berikut:
Diberikan sebuah citra A =
Gambar 3.13 contoh citra 3x3
Jumlah nilai piksel pada daerah hitam = F+A-(C+D) = 26+3-(17+9) = 3
Contoh perhitungan nilai fitur 2x4 dalam sebuh citra 5x5 menggunakan integral
Gambar 3.14 contoh citra 5x5
Nilai fitur = | (total piksel hitam) – (total piksel putih) |
= | [20+0-(0+0)] – [45+0-(20+0)] |
= | 20 – 25 |
= 5
Gambar 3.15 contoh citra 5x5
Nilai fitur = | (total piksel hitam) – (total piksel putih) |
= | [73+3-(26+18)] – [128+18-(73+33)] |
= | 32 – 40 |
= 8
3.1.6 Algoritma AdaBoost
Metode machine learning yang disebut AdaBoost digunakan dalam
memilih fitur Haar yang spesifik. Hal ini dilakukan dengan cara mengevaluasi
setiap fitur terhadap data latih dengan menggunakan nilai dari fitur tersebut.
Algoritma Adaboost adalah algoritma yang berusaha membangun strong
linier. Stage classifier dibangun dengan menggunakan algoritma adaptive-boost
(AdaBoost). Di dalam stage classifier terdapat proses pengklasifikasian fitur
objek menggunakan algoritma AdaBoost. Algoritma AdaBoost digunakan untuk
meningkatkan performa pengklasifikasian fitur. Algoritma tersebut
mengkombinasikan performance banyak weak classifier untuk menghasilkan
strong classifier. Weak classifier dalam hal ini adalah nilai dari haar-like feature.
Alur proses pendeteksian pada Haar cascade classifier dapat dilihat pada Gambar
3.16
Gambar 3.16 Alur proses Haar cascade classifier
Algoritma AdaBoost yang dipakai untuk pengklasifikasian adalah sebagai
berikut:
Bobot awal 1,
1
,
2
i yw
m
1,1
,
2
i yw
l
...(3.4)dengan m = jumlah gambar negatif dengan yi0 untuk gambar negatif
dengan l = jumlah gambar positif denganyi 1untuk gambar positif.
Contoh : l = 5, m = 10
1,0 1,1
1
1
0.05,
0.1
2
10
2
5
w
w
...(3.5)Untuk t = 1,2,3…T , dimana t adalah iterasi ke t untuk gambar positif.
Untuk j = 1,2,3…J , dimana j adalah iterasi ke j untuk gambar negatif.
( )
t
h x merupakan nilai fitur gambar positif.
( )
j
h x merupakan nilai fitur gambar negatif.
Objek Stage 0
Buang Gambar Bukan Objek
50%
Stage 1
Stage n
30% 10%
……. Gambar
Untuk mendapatkan nilai error rate setiap weak classifier. Maka untuk setiap fitur
dilakukan proses sebagai berikut:
Untuk gambar positif :
(
,) |
( )
|
T
t t i t i
t
w
h x
y
...(3.6)
Untuk gambar negatif :
(
,) |
( )
|
J
j j i j i
j
w
h
x
y
...(3.7)
Misal diberikan citra positif (24x24)piksel yang memiliki nilai-nilai sebagai
berikut:
1. Citra positif ke-1
Nilai positif pada gambar tersebut akan dihitung nilai fiturnya.
Nilai fitur = | (total piksel hitam) – (total piksel biru) |
( )
t
h x = | (26+21-23-18)-(31+18-26-22) |
= 5
Maka nilai error rate yang didapatkan adalah sebagai berikut :
(0,1) | 5 1| 0, 4
t
2. Citra positif ke-2
Nilai positif pada gambar tersebut akan dihitung nilai fiturnya.
Nilai fitur = | (total piksel hitam) – (total piksel biru) |
( )
t
h x = (88+95-100-76)-(94+76-88-103)
= 28
Maka nilai error rate yang didapatkan adalah sebagai berikut :
(0,1) | 28 1| 2, 7
t
3. Citra positif ke-3
Nilai positif pada gambar tersebut akan dihitung nilai fiturnya.
Nilai fitur = | (total piksel hitam) – (total piksel biru) |
( )
t
h x = (105+69-98-45)-(56+45-105-32)
= 67
(0,1) | 67 1| 6, 6
t
4. Citra positif ke-4
Nilai positif pada gambar tersebut akan dihitung nilai fiturnya.
Nilai fitur = | (total piksel hitam) – (total piksel biru) |
( )
t
h x = | (35+72-58-57)-(35+57-35-58) ||
= 7
Maka nilai error rate yang didapatkan adalah sebagai berikut :
(0,1) | 7 1| 0, 6
t
5. Citra positif ke-5
Nilai positif pada gambar tersebut akan dihitung nilai fiturnya.
Nilai fitur = | (total piksel hitam) – (total piksel biru) |
( )
t
Maka t (0,1) | 4 1| 0,3
Jadi:
Error rate masing-masing citra adalah 0,4; 2,7; 6,6; dan 0,3. Sehingga untuk
memudahkan pemilihan fitur yang terbaik digunakan klasifikasi data training
menggunakan error rate terkecil yang telah didapatkan yaitu 0,3 dimana
1
t t
t
t 10, 30, 3 0, 428
Update bobot: wt1,i wt i,.
tMaka bobot setelah iterasi 1 : w2,10,1 0, 428 0, 0428
(0,1 0, 0428) | 4 1| 0, 4284
t
0, 4284
0, 7494 1 0, 4284
t
Maka bobot setelah iterasi 2 : w3,10, 0428 0, 7494 0, 032
(0,1 0, 0428 0, 032) | 4 1| 0,5244
t 0,5244 1,1026 1 0,5244 t
Maka bobot setelah iterasi 3: w4,10, 032 1,1026 0, 035
(0,1 0, 0428 0, 032 0, 035) | 4 1| 0, 6294
t
0, 6294
1, 67 1 0, 6294
t
Maka bobot setelah iterasi 4: w5,10, 035 1, 67 0, 058
(0,1 0, 0428 0, 032 0, 035 0, 058) | 4 1| 0,8033
Maka bobot setelah iterasi 5: w6,10, 058 4, 076 0, 236
(0,1 0, 0428 0, 032 0, 035 0, 058 0, 236) | 4 1| 1,511
t ; 1, 511 2, 957 1 1.511 t
Maka bobot setelah iterasi 6: w7,10, 236 ( 2,957) 0, 697
Hasil akhir klasifikasi yang diharapkan pada citra positif adalah sebagai berikut :
...(3.8) Dimana: 1 log j j
t log 1
t
...(3.9)
Jika posisi H(x) = Ketentuan 1 maka citra tersebut merupakan objek
Jika posisi H(x) = Ketentuan 0 maka citra tersebut merupakn bukan objek
H(x) = Strong Classifier atau kelasifikasi yang menyatakan objek atau bukan
αj = Tingkat pembelajaran gambar positif. αt = Tingkat pembelajaran gambar negatif.
βj=Nilai bobot setelah error rate pada gambar negatif βt= Nilai bobot setelah error rate pada gambar positif
Hj= weak atau basic classifiers (awal dari klasifikasi) gambar negatif.
Ht = weak atau basic classifiers (awal dari klasifikasi) gambar positif.
Sehingga untuk citra negatif (24x24)piksel yang memiliki nilai-nilai sebagai
1. Citra negatif ke-1
Dengan nilai fitur :
( )
j
h x = (120+77-162-25)-(100+25-120-52) = 57
Maka j (0, 05) | 57 0 | 2,8
1
j j
j
Maka
2,85
1, 54 1 2,85
j
Perbaharui bobot: wt1,i wt i,.
jMaka bobot setelah iterasi 1 : w2,10, 05 ( 1,54) 0, 077
jika bobot stelah intersi ke n jumlahnya < 0 maka iterasi berhenti. βj yang
digunakan untuk mencari H(x) mengunakan pada citra negatif yang nilai βj<0
Untuk salah bernilai = 0
Maka: ( ) log 1 57 1log 1 2,85 2 0, 428
H x
25,99 0,184
Citra negatif ke-2
Dengan nilai fitur :
( )
j
h x = (101+119-104-115)-(93+115-101-100) = 6
Maka j (0, 05) | 6 0 | 0,3
1 j j j Maka 0, 3 0, 428 1 0, 3
j
Update bobot: wt1,i wt i, .
jMaka bobot setelah iterasi 1 : w2,10, 05 (0, 428) 0, 021
(0, 05 0, 021) | 6 0 | 0, 426
t
; 0, 426 0,742
1 0, 426
t
Maka bobot setelah iterasi 2 : w3,10, 021 0, 742 0, 0155
(0, 05 0, 021 0, 0155) | 6 0 | 0,519
t ; 0,519 1, 079 1 0,519 t
Maka bobot setelah iterasi 3: w4,10, 0155 1, 079 0, 0167
(0, 05 0, 021 0, 0155 0, 0167) | 6 0 | 0, 619
t
;
0, 619
1, 624 1 0, 619
t
Maka bobot setelah iterasi 4: w5,10, 0167 1, 624 0, 0271
(0, 05 0, 021 0, 0155 0, 0167 0, 0271) | 6 0 | 0, 7818
Maka bobot setelah iterasi 5: w6,10, 0271 3,582 0, 0971
(0, 05 0, 021 0, 0155 0, 0167 0, 0271 0, 0970) | 6 0 | 1,364
t ; 1,364 3,747 1 1.364 t
Maka bobot setelah iterasi 6: w7,10, 0971 ( 3, 747) 0,363
Maka:
...(3.10)
1 1 1 1 1
( ) (log log log log log ) 6 0, 428 0, 742 1, 079 1, 624 3,582
1 1 1 1 1 1
(log log log log log )
2 0, 428 0, 749 1,1026 1, 67 4, 076
H x
0, 368 0,129 0, 033 0, 210 0, 554 1
(0, 368 0,125 0, 042 0, 223 0, 610) 2
0, 3 0,191
Maka citra tersebut bukan berupa gambar positif.
Jadi semakain banyak interasi yang bisa dilakukan oleh sebuah gambar positif dan
negatif maka semakain besak kemungkinan untuk objek ditemukan. Dari analisa
diatas dapat diambil kesimpulan, bahwa tiga faktor yang mempegaruhi kecepatan
dan tingkat akurasi dalam pendeteksian, faktor - faktor tersebut antara lain:
1. jumlah dari tahapan classifier.
2. Jumlah semakin banyak gambar positif dimasukan semakin akurat
pendeteksianya.
3. Jumlah dari data latih yang dimasukan.
3.1.7 Analisis Kebutuhan Non Fungsional
Analisis kebutuhan non fungsional adalah sebuah langkah untuk
menganalisis sumber daya manusia yang akan menggunakan perangkat lunak
yang dibangun, perangkat keras dan perangkat lunak yang dimiliki sesuai dengan
kebutuhan atau permintaan, sehingga dapat ditentukan kompabilitas perangkat
3.1.7.1 Analisis Perangkat Keras
Analisis perangkat keras dimaksudkan untuk mengetahui spesifikasi
perangkat keras yang akan digunakan oleh Aplikasi ini. Perangkat keras yang
dianjurkan untuk menggunakan aplikasi ini adalah sebagai berikut :
1. Processor 2,27 GHz
2. Hard Disk 320 GB
3. Memory 2 GB
4. Monitor
5. Webcame, tipe VCR (Video Camera Recorder)
6. Mouse
7. Keyboard
3.1.7.2 Analisis Perangkat Lunak
Sebelum menggunakan perangkat lunak pendeteksikantukini user harus
terlebih dahulu menginstalasi aplikasi pendukung untuk mengaktifkan webcam.
Adapun perangkat lunak pendukung pembangunan perangkat lunak pendeteksi
kantuk ini antara lain :
1. Sistem Operasi Windows XP Profesional.
2. Microsoft Visual Visual Studio 2010, digunakan untuk pengkodean sistem.
3. OpenCV 2.2, digunakan sebagai library tambahan untuk pengkodean sistem.
3.1.8 Deskripsi Kebutuhan Data Eksternal
Kebutuhan data eksternal akan diuraikan secara rinci untuk keperluan
perancangan perangkat lunak. Data eksternal yang digunakan pada perangkat
lunak pendeteksian mata mengantuk yang akan dibangun yaitu :
File mengantukfix.xml berisi data hasil dari training mata mengantuk yang
digunakan untuk mendeteksi mata mengantuk. Adapun isi dari file
3.1.9 Analisis Fungsional
Kebutuhan fungsional dianalisis dengan memodelkan sistem. Pemodelan
yang digunakan untuk memodelkan perangkat lunak pengendali pointer ini adalah
pemodelan terstruktur. Perangkat lunak ini dimodelkan menggunakan DFD (Data
Flow Diagram).Tools yang digunakan adalah Diagram Konteks, Data Flow
Diagram dan Spesifikasi Proses yang dibuat menggunakan Microsoft Visio 2007
3.1.8.1Diagram Konteks
Diagram konteks adalah diagram yang menggambarkan masukan, proses
dan keluaran secara umum yang