TUGAS AKHIR DETEKSI WAJAH DENGAN METODE VIOLA … · ♽ Sistem deteksi wajah menggunakan Python...

15
TUGAS AKHIR DETEKSI WAJAH DENGAN METODE VIOLA JONES PADA OPENCV MENGGUNAKAN PEMROGRAMAN PYTHON Disusun untuk Memenuhi Tugas dan Syarat-syarat Guna Memperoleh Gelar Sarjana Strata Satu Jurusan Teknik Elektro Fakultas Teknik Universitas Muhammadiyah Surakarta Disusun Oleh: IMAM NURVIYANTO D 400 080 019 JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS MUHAMMADIYAH SURAKARTA 2012

Transcript of TUGAS AKHIR DETEKSI WAJAH DENGAN METODE VIOLA … · ♽ Sistem deteksi wajah menggunakan Python...

Page 1: TUGAS AKHIR DETEKSI WAJAH DENGAN METODE VIOLA … · ♽ Sistem deteksi wajah menggunakan Python ini tidak murni dari hasil pemikiran penulis sendiri, melainkan mereferensi dari beberapa

TUGAS AKHIR

DETEKSI WAJAH DENGAN METODE VIOLA JONES

PADA OPENCV

MENGGUNAKAN PEMROGRAMAN PYTHON

Disusun untuk Memenuhi Tugas dan Syarat-syarat Guna Memperoleh Gelar

Sarjana Strata Satu Jurusan Teknik Elektro Fakultas Teknik

Universitas Muhammadiyah Surakarta

Disusun Oleh:

IMAM NURVIYANTO

D 400 080 019

JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK

UNIVERSITAS MUHAMMADIYAH SURAKARTA

2012

Page 2: TUGAS AKHIR DETEKSI WAJAH DENGAN METODE VIOLA … · ♽ Sistem deteksi wajah menggunakan Python ini tidak murni dari hasil pemikiran penulis sendiri, melainkan mereferensi dari beberapa
Page 3: TUGAS AKHIR DETEKSI WAJAH DENGAN METODE VIOLA … · ♽ Sistem deteksi wajah menggunakan Python ini tidak murni dari hasil pemikiran penulis sendiri, melainkan mereferensi dari beberapa
Page 4: TUGAS AKHIR DETEKSI WAJAH DENGAN METODE VIOLA … · ♽ Sistem deteksi wajah menggunakan Python ini tidak murni dari hasil pemikiran penulis sendiri, melainkan mereferensi dari beberapa

KATA PENGANTAR

Alhamdulillah, segala puji syukur penulis panjatkan kehadirat Allah SWT

atas segala rahmat dan hidayah-Nya. Atas izin-Nya pula, maka penulis dapat

menyelesaikan Tugas Akhir yang berjudul “Deteksi Wajah Dengan Metode

Viola Jones Pada OpenCV Menggunakan Pemrograman Python”.

Tugas Akhir ini dibuat untuk memenuhi persyaratan mendapatkan gelar

Sarjana (S1) pada Jurusan Teknik Elektro Fakultas Teknik Universitas

Muhammadiyah Surakarta (UMS)\.

Penulisan Tugas Akhir ini tidak akan terwujud tanpa adanya bantuan dari

pihak lain\. Oleh karena itu, dalam kesempatan ini penulis menyampaikan rasa

terima kasih yang sangat dalam kepada pihak-pihak yang telah membantu dan

membimbing selama pelaksanaan dan penyelesaian Tugas Akhir ini, yaitu kepada:

1\. Ibu Ratnasari Nur R., S\.T., M\.T., selaku Dosen Pembimbing I yang telah

banyak memberikan pengarahan dan motivasi yang besar kepada penulis

sehingga dapat menyelesaikan Tugas Akhir ini.

2. Bapak Dedi Ary Prasetya, S\.T., selaku Dosen Pembimbing II atas segala

kesabaran dan waktu yang diluangkan untuk membimbing penulis dalam

menyelesaikan Tugas Akhir ini.

iv

Page 5: TUGAS AKHIR DETEKSI WAJAH DENGAN METODE VIOLA … · ♽ Sistem deteksi wajah menggunakan Python ini tidak murni dari hasil pemikiran penulis sendiri, melainkan mereferensi dari beberapa
Page 6: TUGAS AKHIR DETEKSI WAJAH DENGAN METODE VIOLA … · ♽ Sistem deteksi wajah menggunakan Python ini tidak murni dari hasil pemikiran penulis sendiri, melainkan mereferensi dari beberapa

MOTTO

“Dan  (ingatlah)  di  waktu Tuhan kalian  memperingatkan.  Jika  kalian  bersyukur, 

niscaya   Aku   akan   menambah   nikmati­Ku   kepada   kalian;   dan   jika   kalian 

mengingkarinya, maka azab­Ku amat berat sekali".

(Al ­Qur 'an ,  Surat  Ibrahim:  7 )

"Dan bahwasanya seorang manusia  tiada memperoleh  selain dari  apa yang telah 

diusahakannya".

(Al ­Qur 'an ,  Surat  An­Najm:  39 )

“Raihlah ilmu, dan untuk meraih ilmu belajarlah untuk tenang dan sabar".

(Khal i fah   ‘Umar )

“Berusahalah untuk tidak menjadi manusia yang berhasil tapi berusahalah menjadi 

manusia yang berguna".

(Albe r t  Einste in )

“Tekad, tanggung jawab dan keseriusan akan mengubah derajat mereka dari nobody 

menjadi somebody”.

(anonym)

vi

Page 7: TUGAS AKHIR DETEKSI WAJAH DENGAN METODE VIOLA … · ♽ Sistem deteksi wajah menggunakan Python ini tidak murni dari hasil pemikiran penulis sendiri, melainkan mereferensi dari beberapa

PERSEMBAHAN

Maha Suci Allah, Tiada Tuhan Selain Allah, Tiada daya upaya dan tiada

kekuatan kecuali dengan pertolongan Allah. Alhamdulillah, dengan Rahmat dan

KemurahanMu ya Allah, akhirnya penulis bisa menyelesaikan Tugas Akhir ini.

Tawa dan tangis, sedih dan gembira, kecewa dan bahagia, datang dan pergi, silih

berganti, semuanya terangkum bab demi bab dalam empat tahun terakhir.

Tugas Akhir ini penulis persembahkan kepada:

1. Ayah dan Ibu tersayang, yang telah membesarkanku, mendidik dan

mengajariku, bersabar atas sikapku dan banyak hal yang hanya Allah SWT

yang bisa membalasnya. Semoga Allah SWT senantiasa melimpahkan Rahmat,

Karunia dan HidayahNya kepada Ayah dan Ibuku tersayang.

2. Adik dan ponakanku tersayang, akhirnya aku lulus juga.

3. Rekan-rekan ”Purwoko, Ari, Dedy, Rizqianto, Nurruzzaman, Sandyarjo, Coco”

dan semuanya yang belum kesebut. You’ll never walk alone, kisah kita tak akan

pernah lekang oleh waktu.

4. Teman-teman Elektro angkatan 2008, kakak dan adik tingkat dimanapun kalian

berada, tanggung jawab pada orang tua sudah kita penuhi, inilah awal dari

segalanya, saatnya kita berkarya untuk orang-orang yang ada di sekitar kita.

Bagi yang belum lulus, cepet nyusul ya, Semoga apa yang kita lakukan

senantiasa diberkahi Allah SWT. AMIN

vii

Page 8: TUGAS AKHIR DETEKSI WAJAH DENGAN METODE VIOLA … · ♽ Sistem deteksi wajah menggunakan Python ini tidak murni dari hasil pemikiran penulis sendiri, melainkan mereferensi dari beberapa

DAFTAR KONTRIBUSI

♽ Judul Tugas Akhir ini didapat setelah konsultasi dengan Bp. Dedi Ary

Prasetya, S.T. Awalnya, penulis mengajukan bahwa ingin membuat aplikasi

sederhana dengan menggunakan bahasa Python, namun beliau memberi saran

kalau ingin membuat Tugas Akhir dengan bahasa Python, sebaiknya

berhubungan dengan computer vision. Kemudian penulis mencari referensi di

internet dengan kata kunci “Python” dan “computer vision”. Muncullah

beberapa hasil antara lain yang berhubungan dengan: game, deteksi objek, dan

pengenalan objek. Akhirnya, penulis mengerucutkan untuk memilih deteksi

objek. Sudah banyak peneliti yang mengangkat tema ini, namun bahasa

pemrograman yang mereka gunakan bukanlah Python, sehingga jelas

perbedaan antara yang diangkat penulis dengan peneliti sebelumnya.

♽ Sistem deteksi wajah menggunakan Python ini tidak murni dari hasil

pemikiran penulis sendiri, melainkan mereferensi dari beberapa sumber yang

didapat dari internet. Kemudian penulis pelajari, analisis, dan modifikasi

sendiri, sehingga jadilah sistem deteksi wajah yang berbeda dari sumbernya.

♽ Pendeteksian wajah ini membutuhkan librari Open Computer Vision

(OpenCV) sebagai pengolah citra, dan penulis menginstallnya sendiri di sistem

operasi Slackware yang sudah di-bundle dengan bahasa pemrograman Python.

viii

Page 9: TUGAS AKHIR DETEKSI WAJAH DENGAN METODE VIOLA … · ♽ Sistem deteksi wajah menggunakan Python ini tidak murni dari hasil pemikiran penulis sendiri, melainkan mereferensi dari beberapa
Page 10: TUGAS AKHIR DETEKSI WAJAH DENGAN METODE VIOLA … · ♽ Sistem deteksi wajah menggunakan Python ini tidak murni dari hasil pemikiran penulis sendiri, melainkan mereferensi dari beberapa

DAFTAR ISI

HALAMAN SAMPUL.............................................................................................i

HALAMAN PERSETUJUAN.................................................................................ii

HALAMAN PENGESAHAN................................................................................iii

KATA PENGANTAR..............................................................................................iv

MOTTO...................................................................................................................vi

PERSEMBAHAN..................................................................................................vii

DAFTAR KONTRIBUSI......................................................................................viii

DAFTAR ISI............................................................................................................x

DAFTAR TABEL..................................................................................................xii

DAFTAR GAMBAR............................................................................................xiii

ABSTRAKSI..........................................................................................................xv

BAB 1 PENDAHULUAN.......................................................................................1

1.1. Latar Belakang Masalah...............................................................................1

1.2. Perumusan Masalah......................................................................................2

1.3. Batasan Masalah...........................................................................................3

1.4. Tujuan Penelitian..........................................................................................3

1.5. Manfaat Penelitian........................................................................................4

BAB 2 TINJAUAN PUSTAKA...............................................................................5

2.1. Telaah Penelitian..........................................................................................5

2.2. Landasan Teori.............................................................................................7

BAB 3 METODE PENELITIAN...........................................................................42

3.1. Waktu dan Tempat......................................................................................42

3.2. Peralatan.....................................................................................................43

3.3. Alur Penelitian............................................................................................43

x

Page 11: TUGAS AKHIR DETEKSI WAJAH DENGAN METODE VIOLA … · ♽ Sistem deteksi wajah menggunakan Python ini tidak murni dari hasil pemikiran penulis sendiri, melainkan mereferensi dari beberapa

BAB 4 HASIL DAN PEMBAHASAN..................................................................50

4.1. Hasil dan Pembahasan Sistem Deteksi Wajah................................................50

4.2. Hasil dan Pembahasan Pengujian Sistem Deteksi Wajah...............................58

BAB 5 KESIMPULAN DAN SARAN..................................................................65

5.1. Kesimpulan.....................................................................................................65

5.2. Saran................................................................................................................66

DAFTAR PUSTAKA.............................................................................................67

LAMPIRAN...........................................................................................................68

xi

Page 12: TUGAS AKHIR DETEKSI WAJAH DENGAN METODE VIOLA … · ♽ Sistem deteksi wajah menggunakan Python ini tidak murni dari hasil pemikiran penulis sendiri, melainkan mereferensi dari beberapa

DAFTAR TABEL

Tabel 2.1. Operator Bilangan.................................................................................31

Tabel 2.2. Fungsi Bilangan.....................................................................................31

Tabel 2.3. Operator String......................................................................................32

Tabel 2.4. Fungsi String.........................................................................................32

Tabel 2.5. Operator List..........................................................................................34

Tabel 2.6. Fungsi List.............................................................................................34

Tabel 2.7. Method Untuk Manipulasi List..............................................................35

Tabel 2.8. Operator Tuple.......................................................................................37

Tabel 2.9. Fungsi Tuple..........................................................................................37

Tabel 2.10. Operator Dictionary............................................................................38

Tabel 2.11. Fungsi Dictionary................................................................................39

Tabel 2.12. Method Dictionary..............................................................................39

Tabel 3.1. Jadwal Pelaksaan Penelitian..................................................................42

Tabel 4.1. Hasil Pengujian......................................................................................64

xii

Page 13: TUGAS AKHIR DETEKSI WAJAH DENGAN METODE VIOLA … · ♽ Sistem deteksi wajah menggunakan Python ini tidak murni dari hasil pemikiran penulis sendiri, melainkan mereferensi dari beberapa

DAFTAR GAMBAR

Gambar 2.1. Proses Akuisisi Citra ..........................................................................7

Gambar 2.2. Proses Pengolahan Citra......................................................................8

Gambar 2.3. Proses Pengenalan Pola.....................................................................11

Gambar 2.4. Proses Analisis Citra..........................................................................11

Gambar 2.5. Macam-macam Fitur Haar................................................................13

Gambar 2.6. Citra Integral.....................................................................................14

Gambar 2.7. Contoh Membuat Citra Integral........................................................15

Gambar 2.8. Contoh Menghitung Citra Integral....................................................15

Gambar 2.9. Perbandingan Perhitungan Nilai Fitur Haar.....................................16

Gambar 2.10. Diagram Proses Cascade Classifier................................................18

Gambar 2.11. Fitur Haar Pertama Dalam Template...............................................25

Gambar 2.12. Pohon Keputusan Dalam Template.................................................25

Gambar 2.13. Fitur Haar Dalam Haarcascade_frontalface_alt.xml.....................26

Gambar 2.14. Stage 0 Pada Haarcascade_frontalface_alt.xml..............................26

Gambar 2.15. Stage 5 Pada Haarcascade_frontalface_alt.xml..............................27

Gambar 2.16. Boa Constructor V0.6.1..................................................................41

Gambar 3.1. Flowchart Penelitian.........................................................................43

Gambar 3.2. Flowchart Viola Jones.......................................................................46

Gambar 3.3. Flowchart Sistem Deteksi Wajah......................................................46

Gambar 3.4. Perancangan Antarmuka Menu Utama..............................................47

Gambar 3.5. Perancangan Antarmuka Deteksi Wajah...........................................48

Gambar 4.1. Contoh Akuisisi Citra........................................................................50

Gambar 4.2. Contoh Grayscaling..........................................................................51

Gambar 4.3. Contoh Resizing Untuk Memperkecil Citra......................................52

Gambar 4.4. Contoh Ekualisasi Histogram............................................................53

Gambar 4.5. Contoh Scan Per-sub-window...........................................................53

Gambar 4.6. Contoh Resize Sub-window Menjadi 20x20......................................54

xiii

Page 14: TUGAS AKHIR DETEKSI WAJAH DENGAN METODE VIOLA … · ♽ Sistem deteksi wajah menggunakan Python ini tidak murni dari hasil pemikiran penulis sendiri, melainkan mereferensi dari beberapa

Gambar 4.7. Contoh Representasi Fitur Haar Pertama Dalam Template..............54

Gambar 4.8. Seleksi Fitur Untuk Menyeleksi Sub-window...................................55

Gambar 4.9. Contoh Deskripsi Citra......................................................................56

Gambar 4.10. Contoh Pemberian Garis Pada Wajah..............................................57

Gambar 4.11. Pengujian Berdasarkan Pencahayaan..............................................58

Gambar 4.12. Pengujian Berdasarkan Jarak Wajah...............................................59

Gambar 4.13. Pengujian Berdasarkan Kemiringan 0° (Frontal)...........................59

Gambar 4.14. Pengujian Berdasarkan Kemiringan................................................60

Gambar 4.15. Pengujian Berdasarkan Kemiringan................................................61

Gambar 4.16. Pengujian Berdasarkan Wajah Terhalang Objek Lain.....................61

Gambar 4.17. Pengujian Berdasarkan Wajah Terhalang Objek Lain.....................62

Gambar 4.18. Pengujian Berdasarkan Beberapa Wajah.........................................63

Gambar 4.19. Pengujian Berdasarkan Objek Yang Menyerupai Wajah.................63

Gambar 4.20. Pengujian Berdasarkan Objek Yang Menyerupai Wajah.................64

xiv

Page 15: TUGAS AKHIR DETEKSI WAJAH DENGAN METODE VIOLA … · ♽ Sistem deteksi wajah menggunakan Python ini tidak murni dari hasil pemikiran penulis sendiri, melainkan mereferensi dari beberapa

ABSTRAKSI

Sistem pendeteksian dan pengenalan wajah semakin banyak. Walaupun semakin banyak, bukan berarti penelitian mengenai hal ini sudah selesai. Tuntutan akan efektifitas, baik kecepatan maupun tingkat keakuratan dalam sebuah sistem pendeteksian semakin diperhitungkan. Banyak dari beberapa sistem pendeteksian wajah menggunakan metode Viola Jones sebagai metode pendeteksi objek. Metode Viola Jones dikenal memiliki kecepatan dan keakuratan yang tinggi karena menggabungkan beberapa konsep (Haar Features, Integral Image, AdaBoost, dan Cascade Classifier) menjadi sebuah metode utama untuk mendeteksi objek.

Banyak dari sistem deteksi tersebut menggunakan C atau C++ sebagai bahasa pemrograman, dan OpenCV sebagai librari deteksi objek. Hal ini dikarenakan librari OpenCV menerapkan metode Viola Jones kedalam sistem librari deteksinya, sehingga memudahkan dalam pembuatan sistem.

Dalam Tugas Akhir ini, dibahas mengenai proses pendeteksian wajah dengan metode Viola Jones pada OpenCV, serta mengaplikasikannya kedalam sistem deteksi wajah sederhana dengan memanfaatkan OpenCV dan Python. Python dipilih karena mempunyai struktur lebih sederhana dibanding pemrograman lain. Setelah sistem selesai dibuat, dilakukan pengujian terhadap karakteristik wajah yang dapat dideteksi oleh sistem.

Setelah pengujian sistem, batasan jarak wajah yang dapat dideteksi antara ± 134 dan ± 21 cm dari kamera, batasan kecerahan antara ± 50 nilai mean maksimal gelap dan ± 200 nilai mean maksimal terang. Ketika dilakukan pengujian wajah manusia dalam keadaan frontal, sistem mampu mendeteksi dengan akurasi 100% dan waktu deteksi kurang dari 0.5 detik. Sedangkan ketika pengujian wajah manusia dalam keadaan non-frontal, kemiringan maksimal wajah yang dapat dideteksi sebesar ± 74°. Sistem dapat mendeteksi adanya beberapa wajah dalam suatu citra. Sistem juga dapat mendeteksi objek yang menyerupai wajah ketika objek tersebut memilki kontur yang sama dengan kontur wajah manusia (kontur wajah pada template), misalnya, wajah boneka dan topeng Hulk.

Kata Kunci: Deteksi Wajah, Viola Jones, Integral Image, Haar Features, AdaBoost, Cascade Classifier, OpenCV, Python.

xv