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
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.
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".
( A l - Q u r ' a n , S u ra t I br a h i m : 7 )
"Dan bahwasanya seorang manusia tiada memperoleh selain dari apa yang telah
diusahakannya".
( A l - Q u r ' a n , S ur a t A n - Na j m : 3 9 )
“Raihlah ilmu, dan untuk meraih ilmu belajarlah untuk tenang dan sabar".
( K h a l i f a h ‘ U m a r )
“Berusahalah untuk tidak menjadi manusia yang berhasil tapi berusahalah menjadi
manusia yang berguna".
( A l b e r t E i n st e i n )
“Tekad, tanggung jawab dan keseriusan akan mengubah derajat mereka dari nobody
menjadi somebody”.
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
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
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
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
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. FlowchartViola 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 ResizeSub-window Menjadi 20x20...54
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
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 pendeteksiansemakin diperhitungkan. Banyak dari beberapa sistem pendeteksian wajah menggunakan metode Viola Jones sebagai metode pendeteksi objek. 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.