• Tidak ada hasil yang ditemukan

DETEKSI MOBIL MENGGUNAKAN OPERASI MORFOLOGI DAN KLASIFIKASI ADABOOST - ITS Repository

N/A
N/A
Protected

Academic year: 2019

Membagikan "DETEKSI MOBIL MENGGUNAKAN OPERASI MORFOLOGI DAN KLASIFIKASI ADABOOST - ITS Repository"

Copied!
104
0
0

Teks penuh

(1)

iii

TUGAS AKHIR – K141502

DETEKSI MOBIL MENGGUNAKAN OPERASI

MORFOLOGI DAN KLASIFIKASI ADABOOST

MUHAMMAD AUNORAFIQ MUSA NRP 5112 100 209

Dosen Pembimbing

Prof. Dr. Ir. Joko Lianto Buliali, M.Sc. Dr.Eng. Chastine Fatichah, S.Kom, M.Kom.

JURUSAN TEKNIK INFORMATIKA Fakultas Teknologi Informasi

(2)

v

FINAL PROJECT – K141502

VEHICLE DETECTION USING MORPHOLOGY

OPERATION AND ADABOOST CLASSIFICATION

MUHAMMAD AUNORAFIQ MUSA NRP 5112 100 209

Advisor

Prof. Dr. Ir. Joko Lianto Buliali, M.Sc. Dr.Eng. Chastine Fatichah, S.Kom, M.Kom.

(3)
(4)

ix

DETEKSI MOBIL MENGGUNAKAN OPERASI

MORFOLOGI DAN KLASIFIKASI ADABOOST

Nama Mahasiswa : Muhammad Aunorafiq Musa

NRP : 5112 100 209

Jurusan : Teknik Informatika FTIf-ITS

Dosen Pembimbing 1 : Prof. Dr. Ir. Joko Lianto Buliali, M.Sc. Dosen Pembimbing 2 : Dr.Eng. Chastine Fatichah, S.Kom,

M.Kom.

ABSTRAK

Pendeteksian mobil memiliki peranan penting dalam manajemen sistem lalu lintas yang dinamis. Hal ini sangat berkaitan dengan penanganan kemacetan di kota-kota besar. Agar penangangan manajemen lalu lintas kendaraan ini bisa optimal, tentu sangat berpengaruh dari informasi yang didapatkan dari sistem pendeteksi kendaraan ini. Hal ini yang menjadi tantangan dalam pendeteksian mobil pada jalan raya maupun jalan bebas hambatan.

Banyak metode yang dapat dilakukan untuk melakukan pendeteksian mobil, mulai dari menggunakan sensor hingga penggunaan kamera CCTV. Sebagai alat yang multifungsi dan lebih murah, pemerintah cenderung menerapkan kamera CCTV sebagai alat yang digunakan untuk memantau mobil di jalan raya maupun di jalan bebas hambatan. Oleh karena itu, diperlukan sebuah sistem deteksi mobil yang menggunakan citra CCTV yang akurat dan mempunyai proses yang cepat.

(5)

x

Otsu untuk mendapatkan citra biner yang kemudian citra ini dilakukan operasi opening dan closing untuk menghilangkan noise pada citra. Setelah itu dilakukan pencarian lokasi dimana kemungkinan terdapat objek lampu depan dengan menggunakan teknik Connected Component. Hasil dari layer pertama kemudian dilakukan klasifikasi dengan Haar feature based AdaBoost. Klasifikasi ini digunakan untuk mengurangi kejadian false alarm dan meningkatkan nilai precision. Hasil dari metode ini yaitu untuk nilai recall mencapai 91.5% dan untuk nilai precision yaitu 93.8%. Hal ini menandakan jumlah mobil yang tidak terdeteksi dan jumlah kesalahan deteksi pada penggunaan metode ini hanya sedikit.

(6)

xi

VEHICLE DETECTION USING MORPHOLOGY

OPERATION AND ADABOOST CLASSIFICATION

Name : Muhammad Aunorafiq Musa

NRP : 5112 100 209

Major : Teknik Informatika FTIf-ITS

Supervisor I : Prof. Dr. Ir. Joko Lianto Buliali, M.Sc. Supervisor II : Dr.Eng. Chastine Fatichah, S.Kom,

M.Kom.

ABSTRACT

Car detection has important role in dynamic traffic management system. It is closely related to the handling of traffic congestion in big cities. In order to optmize the handling of the congestion, the information obtained from this vehicle detection system will be very influential. And this has been the challenge in car detection on highways or freeways.

Many methods can be used to detect car object, starting from the use of sensor and also through CCTV camera. The goverment is likely to implement CCTV used to monitor cars on highways or freeways as multifunctional and cheaper tool. Therefore, a car detection system using CCTV image that is accurate and has rapid process is needed.

(7)

xii

result show that the method can obtain recall value up to 91.5% and the for the precision value up to 93.8%. This result indicate that the false alarm and missing rate only slightly.

(8)

xiii

KATA PENGANTAR

Puji syukur kepada Tuhan Yang Maha Esa atas segala karunia dan rahmat-Nya penulis dapat menyelesaikan Tugas Akhir yang berjudul:

DETEKSI MOBIL MENGGUNAKAN OPERASI MORFOLOGI DAN KLASIFIKASI ADABOOST

Melalui lembar ini, penulis ingin menyampaikan ucapan terimakasih dan penghormatan yang sebesar-besarnya kepada:

1. Bapak, Ibu, adik, kakak dan keluarga besar yang selalu memberikan dukungan penuh untuk menyelesaikan Tugas Akhir ini.

2. Bapak Prof. Dr. Ir. Joko Lianto Buliali, M.Sc. selaku dosen pembimbing tugas akhir pertama yang telah membimbing dan memberikan banyak masukan dalam pengerjaan tugas akhir ini.

3. Ibu Dr.Eng. Chastine Fatichah, S.Kom, M.Kom. selaku dosen pembimbing tugas akhir kedua yang selalu memberikan koreksi serta banyak masukan-masukan yang dapat penulis kembangkan dari tugas akhir ini

4. Bapak dan Ibu dosen Jurusan Teknik Informatika ITS yang telah banyak menyampaikan ilmu dan bimbingan yang tak ternilai harganya bagi penulis.

5. Sahabat-sahabatku selama kuliah di Jurusan Teknik Informatika ITS, mulai dari kelompok “Sang Pencerah”, administrator Laboratorium Pemrograman 2, dan juga Pengurus Harian HMTC Berkarya yang akan selalu dihati. 6. Teman-teman angkatan 2012 Jurusan Teknik Informatika ITS, khususnya C1C yang telah menjadi teman seperjuangan dalam suka dan duka selama 3 tahun penulis menjalani kuliah.

(9)

xiv

Bagaimanapun juga penulis telah berusaha sebaik-baiknya dalam menyusun Tugas Akhir ini, namun penulis mohon maaf apabila terdapat kekurangan yang penulis lakukan. Kritik dan saran yang membangun dapat disampaikan sebagai bahan perbaikan selanjutnya.

Surabaya, Januari 2016

(10)

xv

DAFTAR KODE SUMBER ... xxiii

BAB I PENDAHULUAN ...1

1.1. Latar Belakang ... 1

1.2. Tujuan ... 2

1.3. Rumusan Permasalahan ... 2

1.4. Batasan Permasalahan ... 3

1.5. Metodologi ... 3

1.6. Sistematika Penulisan ... 4

BAB II DASAR TEORI ...7

2.1. Morfologi Citra... 7

2.2. AdaBoost (Adaptive Boosting) ... 9

2.3. Integral Image... 10

2.4. Haar-like features ... 12

2.5. Metode Viola-Jones ... 13

2.6. Template Matching ... 14

2.7. Scale Factor ... 15

2.8. Perhitungan Kinerja Aplikasi ... 16

2.9. Haar Training OpenCV ... 17

BAB III ANALISIS DAN PERANCANGAN SISTEM ...21

3.1. Analisis Implementasi Metode Secara Umum ... 21

3.2. Perancangan Data ... 23

3.2.1. Data Training ... 23

3.2.2. Data Masukan ... 24

(11)

xvi

3.2.4. Data Keluaran ... 28

3.3. Perancangan Proses ... 28

3.3.1. Tahap Training ... 28

3.3.2. Tahap Deteksi Area Mobil ... 33

3.3.3. Tahap Klasifikasi Mobil ... 40

3.4. Perancangan Antarmuka Perangkat Lunak ... 42

BAB IV IMPLEMENTASI ... 45

4.1. Lingkungan Implementasi ... 45

4.2. Implementasi Proses ... 45

4.2.1. Implementasi Tahap Latihan ... 45

4.2.2. Implementasi Tahap Deteksi Area Mobil ... 48

4.2.3. Implementasi Tahap Klasifikasi Mobil ... 57

4.3. Implementasi Antarmuka Perangkat Lunak ... 58

BAB V PENGUJIAN DAN EVALUASI ... 63

5.1. Lingkungan Pengujian ... 63

5.2. Data Uji Coba ... 63

5.3. Skenario Uji Coba ... 64

5.4. Skenario Pengujian 1: Perhitungan nilai recall, precision dan running time dengan hanya menggunakan layer operasi morfologi ... 64

5.5. Skenario Pengujian 2: Perhitungan nilai recall, precision dan running time dengan hanya menggunakan layer cascade classifier ... 65

5.6. Skenario Pengujian 3: Perhitungan nilai recall, precision dan running time dengan menggunakan operasi morfologi sebagai layer pertama dan cascade classifier sebagai layer kedua 66 5.7. Skenario Pengujian 4: Perhitungan nilai recall, precision dan running time menggunakan data testing dari CCTV yang berbeda menggunakan layer operasi morfologi ... 68

5.8. Evaluasi ... 69

BAB VI KESIMPULAN DAN SARAN ... 72

(12)

xvii

6.2. Saran ... 74

DAFTAR PUSTAKA...75

Lampiran ...77

(13)

xix

DAFTAR GAMBAR

Gambar 2.1 Contoh operasi operasi morfologi ... 8

Gambar 2.2 Diagram alir metode Adaptive Boosting ... 10

Gambar 2.3 Contoh citra masukan dan citra integral ... 10

Gambar 2.4 Cara perhitungan integral image ... 11

Gambar 2.5 Contoh Integral image ... 11

Gambar 2.6 Contoh model fitur haar-like ... 13

Gambar 2.7 Visualisasi penerapan haar-like feature ... 13

Gambar 2.8 Visualisasi metode Viola and Jones ... 14

Gambar 2.9 Contoh penggunaan template matching ... 15

Gambar 2.10 Contoh penggunaan faktor skala pada dilasi bangun geometri ... 16

Gambar 2.11 Contoh sampel positif dan negatif ... 17

Gambar 2.12 Parameter pada utility creatsamples OpenCV ... 17

Gambar 2.13 Parameter pada utility haartraining OpenCV ... 18

Gambar 2.14 Contoh classifier hasil training ... 20

Gambar 3.1 Gambar diagram alir implementasi metode secara umum ... 22

Gambar 3.2 Contoh sampel positif dan negatif ... 24

Gambar 3.3 Citra CCTV sebagai data masukan ... 25

Gambar 3.4 Data keluaran ... 28

Gambar 3.5 Diagram alir tahap training classifier ... 29

Gambar 3.6 Hasil ekstraksi informasi sampel positif ... 30

Gambar 3.7 Diagram alir tahap deteksi area mobil ... 33

Gambar 3.8 Citra hasil operasi grayscale... 34

Gambar 3.9 Citra hasil operasi top hat transform pada citra grayscale ... 35

Gambar 3.10 Citra hasil operasi thresholding otsu pada citra hasil top hat sebelumnya ... 35

Gambar 3.11 Citra hasil operasi opening dan closing ... 36

Gambar 3.12 Hasil operasi connectedComponent ... 37

(14)

xx

Gambar 3.14 Pemberian batasan pencarian pada citra masukan . 38

Gambar 3.15 Diagram alir 1 tahap pencarian area mobil ... 39

Gambar 3.16 Diagram alir 2 tahap pencarian area mobil ... 40

Gambar 3.17 Diagram alir klasifikasi haarcascade dengan multi scaling ... 42

Gambar 3.18 Widget file chooser ... 43

Gambar 3.19 Rancangan halaman utama ... 43

Gambar 4.1 Implementasi halaman utama ... 62

Gambar 5.1 Data masukan uji coba ... 63

Gambar 5.2 Hasil operasi layer morfologi ... 65

Gambar 5.3 Hasil operasi cascade classifier ... 66

Gambar 5.4 Hasil operasi menggunakan layer morfologi dan layer cascade classifier. ... 67

Gambar 5.5 Data testing dengan sudut CCTV yang berbeda ... 68

Gambar 5.6 Contoh hasil keluaran uji coba dengan data testing dengan sudut CCTV yang berbeda ... 69

Gambar 5.7 Contoh data testing dengan tingkat kecerahan objek yang tinggi. ... 70

Gambar 5.8 Hasil operasi morfologi pada Gambar 5.7 ... 70

Gambar 5.9 Contoh kesalahan pendeteksian karena lampu depan mobil sangat terang ... 71

(15)

xxiii

DAFTAR KODE SUMBER

Kode Sumber 4.1 Kode untuk mengekstraksi informasi sampel

positif ... 46

Kode Sumber 4.2 Kode untuk membuat vec file ... 46

Kode Sumber 4.3 Kode program untuk mengeksekusi haartraining.exe ... 47

Kode Sumber 4.4 Kode program untuk menjalankan program haarconv.exe ... 47

Kode Sumber 4.5 Kode program untuk pengubahan gambar channel RGB ke grayscale ... 48

Kode Sumber 4.6 Kode program operasi Top Hat Transform .... 49

Kode Sumber 4.7 Kode program operasi Otsu Threshold ... 49

Kode Sumber 4.8 Kode program operasi opening dan closing dengan structuring element ellipse ... 50

Kode Sumber 4.9 Kode kelas DetailObj ... 51

Kode Sumber 4.10 Fungsi untuk mengisi kelas DetailObj ... 53

Kode Sumber 4.11 Fungsi pencarian objek mobil ... 57

Kode Sumber 4.12 Fungsi verifikasi kandidat ... 58

(16)

xxi

DAFTAR TABEL

(17)

1

1.

BAB I

PENDAHULUAN

Pada bab ini akan dipaparkan mengenai garis besar Tugas Akhir yang meliputi latar belakang, tujuan, rumusan dan batasan permasalahan, metodologi pembuatan Tugas Akhir, dan sistematika penulisan.

1.1.

Latar Belakang

Kemacetan saat ini menjadi masalah yang muncul dalam keseharian pada kota-kota besar di Indonesia. Dan hal ini berdampak pada kerusakan lingkungan karena membuat polusi yang banyak dan boros penggunaan energi. Penanganan untuk kemacetan ini adalah dengan membangun jalan alternatif maupun pelebaran jalan. Namun solusi ini sangat sulit untuk direalisasikan karena lahan untuk membangun jalan sangatlah minim, terutama pada kota-kota besar. Terdapat cara lain untuk menangani permasalahan kemacetan ini, yaitu dengan memaksimalkan penggunaan fasilitas CCTV atau kamera pada jalan raya. Melalui CCTV ini maka akan banyak informasi yang terkumpul mengenai kemacetan di setiap jalan yang kemudian dapat digunakan untuk memanajemen lalu lintas dengan baik.

Deteksi kendaraan melalui citra CCTV memiliki peranan yang sangat penting dalam memanajemen sistem lalu lintas yang dinamis. Hal ini sangat berkaitan dengan penanganan kemacetan di kota-kota besar. Penanganan yang cocok dalam manajemen lalu lintas ini tentu sangat berpengaruh dari informasi yang didapatkan dari sistem pendeteksi kendaraan ini.

(18)

mobil pada malam hari menjadi tantangan karena sulit untuk mengenali bagian dari mobil.

Ada kemudahan dalam pendeteksian kendaraan pada malam hari, yaitu dengan mendeteksi lampu depan kendaraan. Pendeteksian ini menggunakan operasi morfologi pada layer pertama, yang operasi ini dilakukan pada gambar yang kemudian diolah menjadi citra biner untuk menentukan lampu sebuah kendaraan. Kemudian, agar tingkat precision lebih tinggi, pada layer kedua dilakukan operasi Cascade Classifier dengan menggunakan AdaBoost sebagai machine learning dengan data training berupa objek mobil dan objek yang bukan mobil.

Hasil dari aplikasi ini diharapkan dapat menjadi bahan pertimbangan untuk memanajemen lalu lintas dengan cara pengaturan durasi lampu merah.

1.2.

Tujuan

Tujuan dari pembuatan tugas akhir ini yaitu membuat program yang mendeteksi kendaraan yang ada pada sebuah frame video (image) dengan melakukan operasi morfologi dan juga menggunakan AdaBoost sebagai machine learning untuk membangun classifier. Program dibangun menggunakan pemrograman Java berbasis dekstop.

1.3.

Rumusan Permasalahan

Rumusan masalah yang diangkat dalam tugas akhir ini antara lain:

1. Bagaimana cara mendeteksi kendaraan pada malam hari.

2. Bagaimana cara membedakan antara lampu depan mobil dengan lampu motor, lampu jalan, serta pantulan lampu pada jalan.

3. Bagaimana cara mengeliminasi objek yang dapat dikira mobil.

(19)

1.4.

Batasan Permasalahan

Permasalahan yang dibahas dalam tugas akhir ini memiliki beberapa batasan, antara lain:

1. Gambar masukan berekstensi jpg dan png.

2. Keluaran dari program ini adalah gambar masukan dengan sudah diberi label mobil.

3. Kendaraan yang dideteksi hanya mobil.

4. Pendeteksian kendaraan hanya berdasarkan pada lampu depan mobil.

1.5.

Metodologi

Langkah-langkah yang ditempuh dalam pengerjaan Tugas Akhir ini yaitu:

1. Studi literatur

Pada studi literatur ini, akan dipelajari sejumlah referensi yang diperlukan dalam pembuatan aplikasi yaitu mengenai Java (software platform), operasi Morfologi citra, Haar-Like Feature, Viola And Jones, dan AdaBoost sebagai machine learning.

2. Implementasi

Dalam tugas akhir ini nantinya akan menghasilkan jumlah kendaraan pada gambar CCTV. Masukan data berupa gambar CCTV jalan raya pada malam hari. Hasil perangkat lunak berupa gambar dengan label kendaraan (bukan sepeda motor) dalam keadaan malam hari. Berikut beberapa hal yang diperlukan dalam implementasi: a. IDE Netbeans 8.1

b. Kemampuan Bahasa Pemrograman Java c. Java Development Kit 8.

(20)

3. Pengujian dan evaluasi

Pengujian dari aplikasi ini akan dilakukan dalam cara yaitu :

1. Pengujian blackbox

Pengujian blackbox adalah pengujian yang berfokus pada spesifikasi fungsional dari perangkat lunak, tester dapat mendefinisikan kumpulan kondisi input dan melakukan pengetesan pada spesifikasi fungsional program. Pengujian ini dilakukan untuk menguji apakah posting terkelompokkan ke dalam kategori yang sesuai atau tidak.

4. Penyusunan buku Tugas Akhir

Pada tahap ini dilakukan proses dokumentasi dan pembuatan laporan dari seluruh konsep, dasar teori, implementasi, proses yang telah dilakukan, dan hasil-hasil yang telah didapatkan selama pengerjaan Tugas Akhir.

1.6.

Sistematika Penulisan

Buku Tugas Akhir ini bertujuan untuk mendapatkan gambaran dari pengerjaan Tugas Akhir ini. Selain itu, diharapkan dapat berguna untuk pembaca yang tertarik untuk melakukan pengembangan lebih lanjut. Secara garis besar, buku Tugas Akhir terdiri atas beberapa bagian seperti berikut ini.

Bab I Pendahuluan

Bab ini berisi latar belakang masalah, tujuan dan manfaat pembuatan Tugas Akhir, permasalahan, batasan masalah, metodologi yang digunakan, dan sistematika penyusunan Tugas Akhir.

Bab II Dasar Teori

Bab ini membahas beberapa teori penunjang yang berhubungan dengan pokok pembahasan dan mendasari pembuatan Tugas Akhir ini.

(21)

Bab ini membahas mengenai Metode yang digunakan untuk memecahkan masalah yang dipaparkan pada rumusan permasalahan.

Bab IV Analisis dan Perancangan Sistem

Bab ini membahas mengenai perancangan perangkat lunak. Perancangan perangkat lunak meliputi perancangan data, arsitektur, proses dan perancangan antarmuka aplikasi.

Bab V Implementasi

Bab ini berisi implementasi dari perancangan dan implementasi fitur-fitur penunjang aplikasi.

Bab VI Pengujian dan Evaluasi

Bab ini membahas pengujian dengan metode kotak hitam (black box testing) untuk mengetahui aspek nilai fungsionalitas dari perangkat lunak dan nilai kegunaan yang dibuat dengan juga memperhatikan ketertarikan pada calon partisipan untuk menggunakan aplikasi ini.

Bab VIIKesimpulan dan Saran

Bab ini berisi kesimpulan dari hasil pengujian yang dilakukan. Bab ini membahas saran-saran untuk pengembangan sistem lebih lanjut.

Daftar Pustaka

Merupakan daftar referensi yang digunakan untuk mengembangkan Tugas Akhir.

Lampiran

(22)

7

2.

BAB II

DASAR TEORI

Pada bab ini akan dibahas mengenai teori-teori yang menjadi dasar dari pembuatan Tugas Akhir. Teori-teori tersebut meliputi pengertian dan beberapa analisis terkait pendeteksian mobil pada malam hari.

2.1.

Morfologi Citra

Operasi morfologi adalah teknik pengolahan citra yang didasarkan pada bentuk segmen atau region dalam citra. Karena

difokuskan pada bentuk objek, maka operasi ini diterapkan pada citra biner. Biasanya segmentasi tadi didasarkan pada objek yang menjadi perhatian.

Segmentasi dilakukan dengan membedakan antara objek dan latar, antara lain dengan memanfaatkan operasi pengambangan yang mengubah citra warna dan skala keabuan menjadi citra biner. Nilai biner dari citra hasil merepresentasikan 2 keadaan: objek dan bukan objek (latar).

Hasil operasi morfologi dapat dimanfaatkan untuk pengambilan keputusan dengan analisis lebih lanjut. Operasi ini antara lain meliputi : Dilasi, Erosi, penutupan (closing) dan

pembukaan (opening).

Secara umum pemrosesan citra secara morfologi dilakukan dengan cara memberikan sebuah structuring element terhadap

sebuah citra. Structuring element dapat diibaratkan seperti mask

pada pemrosesan citra yang lain selain pemrosesan citra secara morfologi. Structuring Element dapat berukuran sembarang,

(23)

Gambar 2.1 Contoh operasi operasi morfologi

Pada Gambar 2.1, bagian (a) merupakan citra masukan, sedangkan bagian (b) merupakan structuring element yang

digunakan untuk mengatur sensitivitas operasi morfologi terhadap bentuk tertentu (spesifik) pada citra masukan. Operasi dasar dari morfologi yaitu dilasi dan erosi. Dilasi merupakan operasi yang akan menambahan piksel pada batasan dari objek dalam suatu citra sehingga nantinya apabila dilakukan operasi ini maka citra hasilnya lebih besar ukurannya dibandingkan dengan citra aslinya, hasil dari operasi dilasi dapat dilihat pada bagian (c). Sedangkan operasi erosi adalah kebalikan dari operasi dilasi, yaitu membuat ukuran sebuah citra menjadi lebih kecil, contoh hasil operasinya dapat dilihat pada bagian (d). Gabugan kedua operasi ini dapat menjadi operasi opening dan closing. Persamaan untuk operasi opening dan closing dapat dilihat pada Persamaan (2.1) dan Persamaan (2.2)

secara berurutan

𝐴 ∘ 𝐵 = (𝐴 ⊝ 𝐵) ⨁ 𝐵 (2.1)

𝐴 ∙ 𝐵 = (𝐴 ⨁𝐵) ⊝ 𝐵 (2.2)

Pada persamaan diatas, variabel 𝐴 merupakan citra masukan, dan variabel 𝐵 merupakan structuring element. Operator ⊝ merupakan operasi erosi sedangkan operator ⨁ merupakan operasi dilasi.

Operasi morfologi juga dapat diterapkan pada citra

grayscale. Salah satu kegunaan dari operasi ini yaitu untuk

perbaikan citra, atau disebut metode morphological contrast enhancement, contoh dari operasi ini yaitu top-hat transform. Top-Hat Transform atau Top-Hat by Opening didefinisikan sebagai

(24)

input tersebut oleh suatu Structuring Element [2]. Persamaan dari

operasi ini dapat dilihat pada Persamaan (2.3). Pada Persamaan tersebut, 𝑓 merupakan citra masukan, dan 𝑓 ∘ 𝑏 merupakan hasil

opening citra dengan structuring element 𝑏.

𝑇ℎ𝑎𝑡 (𝑓) = 𝑓 − (𝑓 ∘ 𝑏) (2.3)

2.2.

AdaBoost (Adaptive Boosting)

Meta-algoritma adalah algoritma yang menggunakan algoritma lain sebagai perwakilan, dan juga merupakan algoritma yang memiliki sub-algoritma sebagai peubah dan parameter yang dapat diganti. Contoh-contoh yang termasuk meta-algoritma adalah Boosting.

Boosting merupakan meta-algoritma dalam machine learning untuk melakukan supervised learning. Secara umum,

boosting terjadi dalam iterasi, secara incremental menambahkan weak learner ke dalam satu strong learner. Pada setiap iterasi, satu weak learner belajar dari suatu data latihan. Kemudian, weak learner itu ditambahkan ke dalam strong learner. Setelah weak learner ditambahkan, data-data kemudian diubah masing-masing

bobotnya. Data-data yang mengalami kesalahan klasifikasi akan mengalami penambahan bobot, dan data-data yang terklasifikasi dengan benar akan mengalami pengurangan bobot [2]. Oleh karena itu, weak learner pada iterasi selanjutnya akan lebih terfokus pada

data-data yang mengalami kesalahan klasifikasi oleh weak learner

(25)

Gambar 2.2 Diagram alir metode Adaptive Boosting

Pada Gambar 2.2, dapat dilihat pada setiap stages akan

menghasilkan nilai H dan berpengaruh pada bobot stages

selanjutnya.

2.3.

Integral Image

Integral Image merupakan sebuah image yang nilai tiap

pikselnya merupakan akumulasi dari nilai piksel atas dan kirinya [4]. Contoh citra asli dan setelah dikonversi ke integral image

dapat dilihat pada Gambar 2.3 dan cara perhitungannya dapat dilihat pada Gambar 2.4

(26)

Gambar 2.4 Cara perhitungan integralimage

Rumus untuk mendapatkan nilai pada titik 𝑖𝑖𝑝dapat dilihat pada persamaan (2.4)

𝑖𝑖𝑝= 𝑖𝑖2+ 𝑖𝑖3− 𝑖𝑖1+ 𝑖𝑖𝑝 (2.4)

Sehingga untuk mengambil intensitas dari daerah tertentu pada suatu citra, maka akan digunakan rumus pada persamaan (2.5) sesuai dengan visualisasi pada Gambar 2.5

Gambar 2.5 Contoh Integral image

𝑆𝑢𝑚𝐷= 𝑖𝑖4+ 𝑖𝑖1− 𝑖𝑖2− 𝑖𝑖3 (2.5)

Nilai variable pada persamaan tersebut adalah:

𝑖𝑖1= 𝑠𝑢𝑚(𝐴)

(27)

𝑖𝑖3 = 𝑠𝑢𝑚(𝐴) + 𝑠𝑢𝑚(𝐶)

𝑖𝑖4 = 𝑠𝑢𝑚(𝐴) + 𝑠𝑢𝑚(𝐵) + 𝑠𝑢𝑚(𝐶) + 𝑠𝑢𝑚(𝐷)

2.4.

Haar-like features

Secara umum, Haar-Like Feature digunakan dalam

mendeteksi objek pada image digital. Nama Haar merujuk pada suatu fungsi matematika (Haar Wavelet) yang berbentuk kotak,

prinsipnya sama seperti pada fungsi Fourier. Awalnya pengolahan gambar hanya dengan melihat dari nilai RGB setiap pixel, namun metoda ini ternyata tidaklah efektif. Viola dan Jones kemudian mengembangkannya sehingga terbentuk Haar-Like Feature.

Haar-like Feature memproses gambar dalam kotak-kotak,

dimana dalam satu kotak terdapat beberapa pixel. Per kotak itu pun kemudian di-proses dan didapatkan perbedaan nilai (threshold) yang menandakan daerah gelap dan terang. Nilai – nilai inilah yang nantinya dijadikan dasar dalam image processing.

Lalu untuk gambar bergerak (video), perhitungan dan penjumlahan pixel terjadi secara terus-menerus dan membutuhkan waktu yang lama. Oleh karena itu, penjumlahan diganti dengan integral sehingga didapatkan hasil lebih cepat. Hasil deteksi dari

Haar-Like kurang akurat jika hanya menggunakan satu fungsi saja

sehingga biasanya digunakan beberapa fungsi sekaligus (massal). Semakin banyak fungsi yang digunakan maka hasilnya akan semakin akurat. Pemrosesan Haar-Like Feature yang banyak

tersebut diatur di dalam classifier cascade [3]. Contoh model yang

digunakan pada fitur haar ini dapat dilihat pada Gambar 2.6. Model

pada gambar ini kemudian dihitung nilai intensitas masing-masing kotak, kotak yang hitam maupun yang putih. Visualisasi penerapan kotak haar-like feature ini dapat dilihat pada Gambar 2.7 dan

(28)

Gambar 2.6 Contoh model fitur haar-like [4]

Gambar 2.7 Visualisasi penerapan haar-like feature [4]

𝐹𝐻𝑎𝑎𝑟 = 𝐸(𝑅𝑏𝑙𝑎𝑐𝑘) − 𝐸(𝑅𝑤ℎ𝑖𝑡𝑒) (2.6)

2.5.

Metode Viola-Jones

Fitur yang digunakan metode Viola dan Jones menggunakan bentuk Haar Wavelet. Bentuk Haar Wavelet ialah

sebuah gelombang kotak. Pada dua dimensi, gelombang kotak ialah pasangan persegi yang bersebelahan, 1 terang dan 1 gelap. Haar ditentukan oleh pengurangan pixel rata-rata daerah gelap dari pixel rata-rata daerah terang. Jika perbedeaan diatas threshold

(nilai diatur selama learning), fitur tersebut dikatakan ada. Untuk

menentukan ada atau tidaknya Haar-like feature di setiap lokasi

(29)

Integral Image. Umumnya integral menambahkan unit kecil secara

bersamaan. Dalam hal ini unit kecil ini disebut dengan nilai dari pixel. Nilai dari integral value pada masing-masing piksel

merupakan penjumlahan dari semua pixel di atasnya dan di sebelah kirinya. Dimulai dari kiri atas sampai kanan bawah, gambar dapat diintegrasikan sebagai operasi matematika per pixel.

Untuk memilih Haar-like feature yang digunakan dan

untuk mengubah nilai threshold, Viola dan Jones menggunakan

metode machine learning yang disebut AdaBoost. AdaBoost

menggabungkan banyak classifier untuk membuat satu classifier.

Masing-masing classifier menetapkan suatu bobot, dan gabungan

dari bobot inilah yang akan membentuk satu classifier yang kuat.

Viola dan Jones menggabungkan serangkaian AdaBoost classifier sebagai filter chain [4].

Metode Viola Jones ini menggunakan detector (detection window) mulai dari ujung kiri atas gambar, hingga paling kanan

bawah. Setelah selesai, selanjutnya detector akan diperbesar sesuai

dengan skala yang ditentukan. Visualisasi dapat dilihat pada Gambar 2.8

Gambar 2.8 Visualisasi metode Viola and Jones

2.6.

Template Matching

Template Matching adalah salah satu teknik yang

(30)

citra template sebagai T. Metode ini memiliki banyak aplikasi dan digunakan untuk hal seperti pengenalan pola, pengenalan wajah, dan pengolahan citra medis. Metode Template Matching akan

dilakukan dengan mencocokan citra template dengan ROI citra

sumber [5]. Salah satu contoh pengaplikasian pada template mata

pada ROI citra wajah dapat dilihat pada Gambar 2.9

Gambar 2.9 Contoh penggunaan template matching

2.7.

Scale Factor

Scale Factor adalah nilai perbandingan atau rasio dari 2

(31)

Gambar 2.10 Contoh penggunaan faktor skala pada dilasi bangun geometri

2.8.

Perhitungan Kinerja Aplikasi

Perhitungan kinerja aplikasi pada sistem ini adalah dengan menggunakan akurasi. Akurasi digunakan untuk mengukur tingkat kualitas deteksi mobil. Kategori uji coba dinyatakan benar jika hasil deteksi adalah mobil. Sedangkan kategori uji coba dinyatakan salah jika hasil deteksi bukanlah objek mobil. Persamaan untuk pengukuran akurasi dapat dilihat pada Persamaan (2.7) dan persamaan (2.8):

𝑅𝑒𝑐𝑎𝑙𝑙= 𝑇𝑟𝑢𝑒 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑒

𝑇𝑟𝑢𝑒 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑒 + 𝐹𝑎𝑙𝑠𝑒 𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑒

(2.7)

𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛= 𝑇𝑟𝑢𝑒 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑒

𝑇𝑟𝑢𝑒 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑒 + 𝐹𝑎𝑙𝑠𝑒 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑒

(2.8)

Pada persamaan diatas, true positive pada pengujian ini

adalah jumlah mobil yang ada pada citra, false negative adalah

jumlah kesalahan deteksi yang mobil tapi tidak terdeteksi (missing rate), dan false positive adalah jumlah kesalahan deteksi yang

(32)

2.9.

Haar Training OpenCV

Haar training merupakan pelatiha dengan model statistik haar menggunakan beberapa sampel, yaitu sampel positif dan

sampel negatif. Contoh dari sampel wajah dapat dilihat pada

Gambar 2.11 Contoh sampel positif dan negatif

Berikut parameter dapat dilihat pada Gambar 2.12 yang digunakan saat pemanggilan fungsi creatsamples.exe untuk

membuat file yang berekstensi vec yang akan dijadikan parameter

selanjutnya.

./createsamples

[-info <description_file_name>] [-img <image_file_name>]

[-vec <vec_file_name>] [-bg <background_file_name>] [-num <number_of_samples = 1000>] [-bgcolor <background_color = 0>] [-inv] [-randinv] [-bgthresh <background_color_threshold = 80>]

[-maxidev <max_intensity_deviation = 40>] [-maxxangle <max_x_rotation_angle = 1.100000>] [-maxyangle <max_y_rotation_angle = 1.100000>] [-maxzangle <max_z_rotation_angle = 0.500000>] [-show [<scale = 4.000000>]]

[-w <sample_width = 24>] [-h <sample_height = 24>]

(33)

Kedua jenis sampel dilatihkan bersamaan dan perbedaannya digunakan sebagai parameter klasifikasi objek terdeteksi wajah atau tidak.

Sampel data yang telah dibuat dilatih menggunakan

haartraining utility. Berikut ini pada Gambar 2.13 adalah

parameter pelatihan data dengan haartraining utility

Usage: ./haartraining -data <dir_name> -vec <vec_file_name> -bg <background_file_name>

[-npos <number_of_positive_samples = 2000>] [-nneg <number_of_negative_samples = 2000>] [-nstages <number_of_stages = 14>]

[-nsplits <number_of_splits = 1>] [-mem <memory_in_MB = 200>] [-sym (default)] [-nonsym]

[-minhitrate <min_hit_rate = 0.995000>]

[-maxfalsealarm <max_false_alarm_rate = 0.500000>] [-weighttrimming <weight_trimming = 0.950000>] [-eqw]

[-mode <BASIC (default) | CORE | ALL>] [-w <sample_width = 24>]

[-h <sample_height = 24>]

[-bt <DAB | RAB | LB | GAB (default)>] [-err <misclass (default) | gini | entropy>] [-maxtreesplits

<max_number_of_splits_in_tree_cascade = 0>] [-minpos

<min_number_of_positive_samples_per_cluster = 500>]

Gambar 2.13 Parameter pada utility haartraining OpenCV

Ketika proses training sudah selesai makan haartraining

akan menghasilkan file berekstensi XML dan file tersebut adalah

haarcascade_frontalface_alt.xml. Haarcascade_frontalface_alt

adalah training yang dikhususkan untuk pelacakan wajah dengan

posisi geometris lurus ke depan. Berikut ini pada Gambar 2.14 adalah file berekstensi XML hasil training

(34)
(35)

<!-- stage 21 -->

Gambar 2.14 Contoh classifier hasil training

Training memiliki isi yang berbeda baik dari segi jumlah stage, jumlah tree, model segi empat dari fitur (rectangle) maupun

nilai treshold-nya. Stage melambangkan banyaknya tingkatan

dalam cascade of classifier, dalam training ini digunakan 22

tingkatan (stage 0 sampai stage 21). Tingkatan ini digunakan untuk mengurangi jumlah sub window citra yang perlu diperiksa. Di

tingkatan pertama dilakukan pengklasifikasian terhadap seluruh sub window citra, lalu di tingkatan kedua dilakukan pengklasifikasian terhadap sub window yang berasal dari hasil pengklarifikasian tingkatan pertama. Maka semakin tinggi tingkatanya semakin sedikiit jumlah sub window yang harus diperiksa. Di tiap tingkatan terdiri dari beberapa tree, biasanya semakin tinggi tingkatan maka tree yang terdapat di dalamnya pun semakin banyak. Pada stage 0 terdapat 2 tree dan pada stage 21 terdapat 212 tree [8]. Setelah proses pendeteksian wajah berhasil

(36)

21

3.

BAB III

ANALISIS DAN PERANCANGAN SISTEM

Pada Bab 3 ini akan dijelaskan mengenai analisis dan perancangan perangkat lunak untuk mencapai tujuan dari tugas akhir. Perancangan ini meliputi perancangan data, perancangan proses, dan perancangan antar muka, serta juga akan dijelaskan tentang analisis implementasi metode secara umum pada sistem.

3.1.

Analisis Implementasi Metode Secara Umum

Pada tugas akhir ini akan dibangun sebuah sistem untuk melakukan pendeteksian mobil pada sebuah citra CCTV dengan menggunakan pustaka OpenCV. Proses-proses yang terlibat di dalam implementasi sistem ini meliputi tahap training, tahap deteksi area mobil, dan tahap klasifikasi mobil.

(37)

metode otsu masih terdapat banyak noise yang kemudian dilakukan operasi opening dan closing untuk meminimalisir noise tersebut. Sehingga hasil pada operasi opening dan closing adalah citra biner dengan sedikit noise.

Ditahap selanjutnya, dilakukan proses klasifikasi citra menggunakan Haar Cascade dengan classifier yang sudah dilakukan pada tahap training sebelumnya. Tahap ini akan mengeliminasi kandidat yang bukan mobil yang telah dihasilkan pada tahap sebelumnya. Diagram alir dari keseluruhan proses sistem ditunjukkan oleh Gambar 3.1

(38)

3.2.

Perancangan Data

Pada subbab ini akan dibahas mengenai perancangan data yang merupakan bagian penting karena data sebagai objek yang akan diolah oleh perangkat lunak dalam tugas akhir ini dan menghasilkan sebuah informasi. Data yang akan digunakan pada sistem ini adalah data training, data masukan (input), data proses, dan data keluaran (output) yang memberikan hasil pengolahan sistem ini untuk pengguna.

3.2.1.

Data Training

Data training yang digunakan berupa sampel positif dan juga sampel negatif. Sampel positif berupa citra bagian depan mobil dengan ukuran 24x24 piksel. Sedangkan untuk sampel negatif berupa citra background dengan ukuran 24x24, background dapat berupa citra yang bukan mobil, bisa seperti jalanan, motor, pohon dsb. Contoh dapat dilihat pada Gambar 3.2

Pembuatan sampel ini dilakukan secara manual dengan cara memotong gambar CCTV yang terdapat bagian depan mobil. Data training ini yang kemudian digunakan dalam pencarian fitur Haar pada tahap Training menggunakan machine learning AdaBoost (Adaptive Boosting).

(39)

Gambar 3.2 Contoh sampel positif dan negatif

3.2.2.

Data Masukan

(40)

channel bisa berupa RGB maupun dalam grayscale. Contoh citra masukan yang digunakan sebagai data masukan ditunjukkan oleh Gambar 3.3

Gambar 3.3 Citra CCTV sebagai data masukan

3.2.3.

Data Proses

Data proses adalah data yang digunakan selama proses berjalannya sistem yang merupakan hasil pengolahan dari data masukan untuk diproses kembali menjadi data keluaran di tahap selanjutnya. Data proses yang digunakan dalam proses ini ditunjukkan oleh Tabel 3.1 Data Proses

Tabel 3.1 Data Proses

No. Nama Data Keterangan

1 fileName Nama berkas gambar CCTV yang akan dijadikan data masukan. 2 fileCascade Nama berkas XML yang akan

dijadikan sebagai cascade classifier.

3 kernelTophat Ukuran kernel yang akan

(41)

No. Nama Data Keterangan 4 strelMorfologi Ukuran kernel yang akan

digunakan pada operasi opening

dan closing pada citra masukan. 5 DetailObj Berupa kelas yang berisi atribut

detail objek.

6 centroidX Merupakan atribut dari kelas DetailObj sebagai nilai koordinat sumbu x centroid objek.

7 centroidY Merupakan atribut dari kelas DetailObj sebagai nilai koordinat sumbu y centroid objek.

8 mostLeftX Merupakan atribut dari kelas DetailObj sebagai nilai koordinat sumbu x dari ujung paling kiri atas objek.

9 mostTopY Merupakan atribut dari kelas DetailObj sebagai nilai koordinat sumbu y dari ujung paling kiri atas objek.

10 width Merupakan atribut dari kelas DetailObj sebagai nilai lebar dari objek.

11 height Merupakan atribut dari kelas DetailObj sebagai nilai tinggi dari objek.

12 area Merupakan atribut dari kelas DetailObj sebagai nilai luas area objek.

13 mOri Matriks citra masukan awal seperti pada Gambar 3. 2

14 mGrayscale Matriks citra masukan awal yang telah dikonversi ke channel grayscale.

15 mTophat Matriks citra yang telah dilakukan operasi White Top Hat Transform

(42)

No. Nama Data Keterangan

16 mOtsu Matriks citra yang telah dilakukan operasi opening dan closing

kemudian dilakukan thresholding

untuk mendapatkan objek. 17 arrRectCrop Merupakan array dari daerah yang

dianggap sebagai kandidat mobil. 18 carDetector Matriks haar cascade sebagai

cascade classifier yang telah dilakukan training sebelumnya. 19 kernelTopHat Ukuran structuring element pada

operasi Top Hat.

20 jumlahObj Jumlah objek yang ditemukan pada citra biner hasil operasi opening

dan dilasi

21 minLebarDuaLampu Nilai threshold dari lebar ukuran lampu yang menyatu antar lampu kiri dan kanan.

22 maksTinggiDuaLampu Nilai threshold dari tinggi ukuran lampu yang menyatu antar lampu kiri dan kanan.

23 maksUkuranObj Nilai threshold dari maksimal ukuran objek lampu depan. 24 minUkuranObj Nilai threshold dari minimal

ukuran objek lampu depan. 25 maksJarakX Nilai maksimal dari jarak antar

lampu pada koordinat x. 26 maksJarakY Nilai maksimal dari jarak antar

lampu pada koordinat y. 27 batasKiri Nilai batas kiri pada pencarian

objek pada citra.

28 batasAtas Nilai batas atas pada pencarian objek pada citra.

29 carDetector Classifier yang digunakan pada pencarian layer kedua. Variabel ini diisi dengan berkas XML hasil

(43)

3.2.4.

Data Keluaran

Data keluaran dari sistem ini berupa citra masukan dengan tambahan informasi berupa tag mobil. Data keluaran dari hasil implementasi sistem ini ditunjukkan pada Gambar 3.4

Gambar 3.4 Data keluaran

3.3.

Perancangan Proses

Pada subbab ini akan dibahas mengenai perancangan proses yang dilakukan untuk memberikan gambaran secara rinci pada setiap alur implementasi metode pada sistem deteksi mobil. Alur tersebut nantinya akan digunakan dalam tahap implementasi sistem deteksi mobil.

3.3.1.

Tahap Training

(44)

Gambar 3.5 Diagram alir tahap trainingclassifier

3.3.1.1. Pembuatan Sampel

Pembuatan sampel dilakukan dengan cara melakukan pemotongan gambar (cropping) untuk sampel yang positif maupun yang negatif. Sampel memiliki ukuran yaitu 24x24. Ukuran sampel dibuat seragam agar dalam training nanti akan dicari haar-like feature yang paling berpengaruh pada ukuran sampel 24x24. Pemilihan ukuran sampel ini dipilih karena ukuran ini sudah bisa memuat fitur-fitur pada bagian depan mobil, seperti lampu depan dan kap depan mobil. Contoh sampel bisa dilihat pada Gambar 3.2.

3.3.1.2. Ekstraksi Informasi Sampel

(45)

ekstraksi informasi pada sampel positif seperti pada Gambar 3.6. Sedangkan pada sampel negatif hanya dibutuhkan informasi nama berkas gambar. Hasil dari ekstraksi informasi ini digunakan untuk dijadikan parameter pada fungsi Haar Training.

Gambar 3.6 Hasil ekstraksi informasi sampel positif

Pada Gambar 3.6, parameter pertama adalah nama file citra dari sampel positif, parameter kedua adalah jumlah objek pada citra, parameter ketiga titik paling kiri dari objek, parameter keempat meruapakan titik paling atas objek, dan parameter kelima dan keenam adalah lebar dan tinggi secara berurutan.

3.3.1.3.Penerapan Algoritma Adaptive Boosting pada Haar

Training

Sebelum dilakukan training, dilakukan konversi citra dengan channel RGB ke channel grayscale yang kemudian dilakukan ekstraksi fitur haar-like dari citra sampel positif dan negatif. Perhitungan fitur haar ini menggunakan integral image [3] untuk mempercepat perhitungan nilainya. Rumus integral image dapat dilihat pada Persamaan (2.5) untuk mendapatkan nilai Haar-like Feature, lebih lengkapnya dapat dilihat pada subbab 2.4.

(46)

Untuk masing-masing fitur weak learner menentukan threshold klasifikasi fungsi yang optimal, sehingga jumlah minimum kesalahan sebuah weak learner yang lemah (ℎ𝑗(𝑥)) [5]. Algoritma dari AdaBoost yang diterapan dapat dilihat seperti berikut:

urut, dimana m dan l adalah jumlah sampel negatif dan sampel positif secara urut. Variabel 𝑤1,𝑖 dimana angka 1 merupakan bobot awal, dan variabel 𝑖 yang menandakan bobot untuk negatif atau positif.

3. For 𝑡 = 1, … , 𝑇 probabilitas untuk setiap stage 𝑡.

b. Untuk setiap fitur, j, dilatih sebuah classifier ℎ𝑗 yang terbatas hanya menggunakan satu

(47)

4. Sehingga Final strong classifier adalah:

Dan berikut algoritma dari haar training cascade classifier yang menggunakan algoritma AdaBoost diatas:

1. Pengguna memilih nilai untuk f, yaitu nilai deteksi maksimum yang dapat diterima pertahap, dan nilai d sebagai nilai deteksi minimun yang dapat diterima pertahap.

2. Pengguna memilih target keseluruhan dari tingkat kesalahan positif (false alarm), 𝐹𝑡𝑎𝑟𝑔𝑒𝑡

3. P = berupa semua sampel positif untuk training 4. N = berupa sampel negatif untuk training 5. 𝐹0= tingkat false alarm awal

ii. Kurangi threshold untuk classifier ke i sampai cascade classifier yang sedang berjalan memiliki tingkat deteksi minimal.

d. 𝑁 ← ∅

(48)

negatif, dan menempatkan setiap deteksi kesalahan kedalam N.

3.3.2.

Tahap Deteksi Area Mobil

Di dalam tahap deteksi area mobil, lampu depan mobil menjadi objek yang dicari, terdapat beberapa proses pada tahap ini, yaitu mengubah citra masukan menjadi grayscale, penerapan White Top Hat Transform, penerapan Otsu Thresholding, penerapan operasi morfologi Opening dan Closing dan pencarian objek lampu depan mobil. Diagram alir mengenai tahap ini dapat dilihat pada Gambar 3.7

Gambar 3.7 Diagram alir tahap deteksi area mobil

3.3.2.1. Pengubahan Citra ke Grayscale Channel

(49)

yaitu lapisan gray, sehingga dalam melakukan operasi morfologi akan lebih mudah. Selain itu, alasan penggunaan citra grayscale karena pada operasi morfologi selanjutnya tidak membutuhkan nilai dari citra yang berwarna. Contoh hasil dari operasi ini dapat dilihat pada Gambar 3.8

Gambar 3.8 Citra hasil operasi grayscale

3.3.2.2.Penerapan White Top Hat Transform

(50)

Gambar 3.9 Citra hasil operasi top hat transform pada citra grayscale

3.3.2.3. Penerapan Threshold

Operasi Thresholding citra merupakan proses mengubah citra grayscale menjadi citra biner atau hitam putih. Proses ini akan diketahui daerah yang akan menjadi background maupun yang menjadi objek. Hasil dari operasi ini dapat diliha pada Gambar 3.10

(51)

3.3.2.4.Penerapan Operasi Opening dan Closing

Setelah mendapatkan citra biner dari operasi thresholding, maka dapat dilihat jika banyak objek noise yang muncul. Objek noise ini dapat diminimalisir dengan melakukan operasi opening kemudian dilanjutkan dengan closing. Celah (gap) yang terdapat setelah hasil thresholding akan hilang sesuai dengan ukuran kernel (structuring element). Semakin besar ukuran kernel, maka semua objek akan dikikis dengan objek yang lebih besar. Jika objek lebih kecil dari ukuran kernel, maka objek tersebut akan hilang. Contoh dari operasi ini dapat dilihat pada Gambar 3.11

Gambar 3.11 Citra hasil operasi opening dan closing

3.3.2.5.Pencarian Objek Mobil

Pada tahap ini, dilakukan pencarian objek dengan menggunakan fungsi connected component yang disediakan oleh OpenCV [9]. Fungsi ini hanya dapat dilakukan pada citra biner seperti pada Gambar 3.11 dan fungsi ini dapat dilihat pada persamaan (3.1)

𝑆 = 𝑐𝑜𝑛𝑛𝑒𝑐𝑡𝑒𝑑𝐶𝑜𝑚𝑝𝑜𝑛𝑒𝑛𝑡𝑊𝑖𝑡ℎ𝑆𝑡𝑎𝑡𝑠 (𝑠𝑟𝑐, 𝑑𝑠𝑡, 𝑠𝑡𝑎𝑡𝑠[ ], 𝑐𝑒𝑛𝑡𝑟𝑜𝑖𝑑𝑠[ ])

(52)

Penjelasan dari tiap variabel adalah sebagai berikut:  S: jumlah objek pada citra biner

Src: citra biner masukan

dst: citra keluaran, dapat dilihat pada Gambar 3.12 𝑠𝑡𝑎𝑡𝑠[ ]: array dengan isi

- Koordinat x dari titik paling kiri objek - Koordinat y dari titik paling atas objek - Lebar sebuah objek

- Tinggi sebuah objek - Luas area sebuah objek  𝑐𝑒𝑛𝑡𝑟𝑜𝑖𝑑𝑠[ ]: array dengan isi

- Koordinat x dari centroid objek - Koordinat y dari centroid objek

Gambar 3.12 Hasil operasi connected Component

Gambar 3.13 Contoh lampu depan mobil setelah operasi morfologi

Setelah dilakukan fungsi connected component, semua variabel 𝑠𝑡𝑎𝑡𝑠[ ] dan 𝑐𝑒𝑛𝑡𝑟𝑜𝑖𝑑𝑠[ ] ditampung pada kelas

𝐷𝑒𝑡𝑎𝑖𝑙𝑂𝑏𝑗 yang digunakan untuk mencari lampu depan mobil.

(53)

depan mobil setelah operasi morfologi dapat dilihat pada Gambar 3.13. Kriteria threshold yang bisa diambil yaitu:

1. Minimal lebar dua lampu 2. Maksimal lebar dua lampu 3. Minimal tinggi dua lampu 4. Maksimal tinggi dua lampu 5. Minimal ukuran lampu 6. Maksimal ukuran lampu 7. Minimal jarak antar lampu 8. Maksimal jarak antar lampu 9. Batas kiri pencarian

10. Batas atas pencarian

Pada threhold poin satu hingga empat, digunakan untuk lampu depan yang menyatu antar lampu kiri dan kanan, contoh dapat dilihat pada Gambar 3.13 pada bagian (f). Untuk poin sembilan dan sepuluh digunakan untuk memberikan batasan untuk menghindari daerah yang tidak perlu dilakukan pencarian objek. Daerah pencarian dapat dilihat pada Gambar 3.14

Gambar 3.14 Pemberian batasan pencarian pada citra masukan

(54)
(55)

Gambar 3.16 Diagram alir 2 tahap pencarian area mobil

3.3.3.

Tahap Klasifikasi Mobil

Pada tahap ini, area mobil yang dihasilnya pada tahap sebelumnya kemudian dilakukan klasifikasi dengan Haar Cascade.

3.3.3.1.Klasifikasi menggunakan Haar Cascade

(56)

kebenaran kendaraan tersebut. Proses deteksi objek berupa mobil dapat dilihat pada persamaan (3.2):

𝑅𝑓[ ] = 𝑑𝑒𝑡𝑒𝑐𝑡𝑀𝑢𝑙𝑡𝑖𝑆𝑐𝑎𝑙𝑒(𝑓𝑔, 𝑐𝑓) (3.2)

Variabel

𝑓𝑔 adalah citra masukan dan kemudian dilakukan klasifikasi Haar Cascade dengan metode multi scaling dan menggunakan cascade template 𝑐𝑓 [9]. Hasil dari operasi ini adalah sebuah array lokasi objek yang ditemukan. Klasifikasi Haar Cascade secara multi scaling adalah proses identifikasi objek yang menggunakan template berdasarkan proses training sebelumnya.

Terdapat beberapa parameter yang dapat diatur dalam proses pencarian objek menggunakan klasifikasi Haar Cascade ini, yaitu:

scale faktor yang menentukan seberapa besar reduksi terhadap citra asli di setiap tingkatan skalanya, karena citra template atau sampel training tidak selalu memiliki dimensi skala yang sama dengan citra objek pada data testing.

 Ukuran minimal detector.

 Ukuran maksimal detector dari citra objek yang dicari.  Minimal tetangga yaitu jumlah minimal objek pada

daerah tertentu yang terdeteksi benar.

(57)

Gambar 3.17 Diagram alir klasifikasi haarcascade dengan multi scaling

3.4.

Perancangan Antarmuka Perangkat Lunak

(58)

mempermudah interaksi antara perangkat lunak dengan pengguna. Sistem ini hanya memiliki satu halaman yaitu halaman utama.

Halaman utama ini merupakan halaman satu-satunya pada sistem ini. Pada halaman ini pengguna memilih gambar yang akan diproses, proses pemilihan akan menampilkan widget seperti pada Gambar 3.18. Setelah tombol proses ditekan, akan ditampilkan enam gambar pada setiap widget label yang ada pada Gambar 3.19. Selain itu terdapat juga widget text area untuk menampilkan lama proses per metode. Penjelasan mengenai atribut-atribut yang terdapat pada halaman ini dapat dilihat pada Tabel 3.2

Gambar 3.18 Widgetfile chooser

(59)

Tabel 3.2 Spesifikasi atribut antarmuka halaman utama menampilkan widget file chooser

Button action

2 prosesButton Button Pilihan aksi untuk melakukan proses deteksi mobil

Button action

3 fileName Text area

Menampilkan nama file yang akan diproses

Nama file

4 textMorfologi Text area

Menampilkan durasi proses pada operasi morfologi

Durasi proses 5 textCascade Text

area

Menampilkan durasi proses pada operasi cascade classfier

Durasi proses

6 textDuaLayer Text area

Menampilkan durasi proses pada operasi morfologi dan cascade classifier

Durasi proses

7 jLabel1 Label Menampilkan gambar masukan yang orisinil

Image

10 jLabel4 Label Menampilkan hasil proses cascade classifier

Image

11 jLabel5 Label Menampilkan hasil proses hingga tahap opening dan closing

Image

12 jLabel6 Label Menampilkan hasil proses operasi morfologi dan cascade classifier

(60)

4.

BAB IV

IMPLEMENTASI

Bab ini membahas implementasi dari perancangan sistem sesuai dengan perancangan yang telah dibuat. Bahasa pemrograman yang digunakan untuk implementasi sistem adalah bahasa pemrograman Java dengan pustaka OpenCV 3.0.

4.1.

Lingkungan Implementasi

Lingkungan implementasi sistem yang digunakan untuk mengembangkan tugas akhir memiliki spesifikasi perangkat keras dan perangkat lunak seperti ditampilkan pada Tabel 4.1

Tabel 4.1 Lingkungan Implementasi Sistem

Perangkat Spesifikasi Perangkat

keras Prosesor: Intel® Core™ i7-3517U CPU @ 1.90GHz (4 CPUs) , ~2.4GHz Memori: 4096 MB

Perangkat

lunak Sistem Operasi: Microsoft Windows 10 64-bit Perangkat Pengembang:

Netbeans 8.0.2

Perangkat Pembantu: Notepad++, Microsoft Excel 2013, Microsoft Word 2013

4.2.

Implementasi Proses

Implementasi proses dilakukan berdasarkan perancangan proses yang sudah dijelaskan pada bab analisis dan perancangan.

4.2.1.

Implementasi Tahap Latihan

Subbab ini membahas mengenai implementasi tahap

(61)

tahap ini adalah berkas XML yang merupakan hasil training yang akan digunakan sebagai classifier. Pada tahap ekstraksi informasi sampel diperlukan fungsi untuk mendapatkan lebar maupun tinggi dari citra, berikut Kode Sumber 4.1 untuk ekstraksi informasi

listOfFiles[sum].getAbsolutePath();

10 Mat m = Imgcodecs.imread(fileName);

Kode Sumber 4.1 Kode untuk mengekstraksi informasi sampel positif

Setelah mendapatkan informasi sampel, maka dilakukan pembuatan berkas vec yang akan digunakan pada training. Kode untuk pembuatan berkas vec dapat dilihat pada Kode Sumber 4.2

1 createsamples.exe -info positive/info.txt -vec vector/carvector.vec -num 532 -w 24 -h 24

(62)

Parameter pada kode program diatas adalah –info sebagai

path berkas informasi, -vec sebagai lokasi file keluaran, -num

sebagai jumlah data positif, -w dan –h sebagai lebar dan tinggi dari objek. Untuk menjalankan kode program diatas, maka diperlukan file creatsamples.exe, berkas cv097.dll, cxcore097.dll,

highui097.dll, dan libguide40.dll dalam satu folder.

Selanjutnya adalah tahap training sekaligus ekstraksi fitur menggunakan program haartraining.exe, kode program untuk menjalankan program ini dapat dilihat pada Kode Sumber 4.3

1 haartraining.exe -data cascades -vec

vector/carvector.vec -bg negative/bg.txt -npos 532 nneg 1100 nstages 13 minhitrate 0.999 -maxfalsealarm 0.3 -mem 1024 -mode ALL -w 24 -h 24 -nonsym

Kode Sumber 4.3 Kode program untuk mengeksekusi haartraining.exe

Parameter pada kode program diatas yaitu –data sebagai lokasi berkas dari classifier, -vec sebagai lokasi berkas vektor, -bg

sebagai lokasi berkas negatif sampel, -npos sebagai jumlah data positif, -nneg sebagai jumlah data negatif, -nstages sebagai banyaknya stage yang diharapkan, -minhitrate sebagai minimal jumlah hit rate yang setiap stage dapatkan, -maxfalsealaram

sebagai jumlah maksimum dari false alarm, -mem sebagai jumlah RAM yang dapat digunakan oleh program. Untuk menjalankan kode program diatas membutuhkan berkas cv097.dll,

cxcore097.dll, dan highui097.dll. Untuk informasi lebih detail, dapat dapat dilihat pada subbab 2.9.

Pada tahap selanjutnya adalah mengubah hasil iterasi per

stage kedalam berkas XML, berikut Kode Sumber 4.4 untuk menjalankan program haarconv.exe

1 haarconv.exe data mynewcardetector16.xml 24 24

(63)

Kode program diatas menghasilkan berkas XML yang akan digunakan sebagai classifier. Parameter haarconv.exe merupakan program yang akan mengkonversi hasil iterasi kedalam berkas

XML, kemudian data merupakan nama folder hasil iterasi yang akan dilanjutkan dengan string nama berkas keluaran, dan angka 24 24 merupakan ukuran objek pada saat tahap training. Untuk dapat menjalankan perintah ini diperlukan folder yang berisikan hasil iterasi Adaptive Boosting yang berupa berkas berekstensi txt, berkas cv097.dll, cxcore097.dll, dan haarconv.exe.

4.2.2.

Implementasi Tahap Deteksi Area Mobil

Pada subbab ini akan dilakukan beberapa tahap operasi morfologi, yaitu tahap pengubahan citra ke grayscale channel, kemudian penerapan white top hat transform, kemudian operasi

threshold, dilanjutkan operasi opening dan closing.

Kode program implementasi grayscale dapat dilihat pada Kode Sumber 4.5

Kode Sumber 4.5 Kode program untuk pengubahan gambar channel RGB ke grayscale

Setelah menjadi citra grayscale, maka dilanjutkan operasi

White Top Hat Transform dengan kode program yang dapat dilihat pada Kode Sumber 4.6

1 public Mat tophatProc(Mat m){

(64)

3

Mat kernel = Mat.ones(kernelTopHat, kernelTopHat, CvType.CV_8UC1);

4

Imgproc.morphologyEx(m, tophat, Imgproc.MORPH_TOPHAT, kernel);

5 return tophat;

6 }

Kode Sumber 4.6 Kode program operasi Top Hat Transform

Setelah dilakukan Top HatTransform, maka dilanjutkan operasi Threshold Otsu dengan Kode Sumber 4.7

1 public Mat thresholdProc(Mat m){

Kode Sumber 4.7 Kode program operasi Otsu Threshold

Setelah operasi Otsu Threshold, dilakukan opening serta

closing dengan ukuran structuring element 5x5 dengan bentuk ellipse. Bentuk ellipse dipilih agar bentuk lampu depan tidak hilang. Kode program yang dapat dilihat pada Kode Sumber 4.8

1 public Mat openCloseProc(Mat m){

2 Mat ret = new Mat(); 3 Size size = new

Size(kernelDilasi,kernelDilasi); 4 Mat kernelEllipse =

(65)

8 }

Kode Sumber 4.8 Kode program operasi opening dan closing dengan structuring element ellipse

Selanjutnya dilakukan perhitungan objek setelah citra keluaran dari operasi opening dan closing. Seperti yang dapat dilihat pada Gambar 2.1, objek yang berwarna putih kemudian dicari informasi detailnya mulai dari koordinat centroid, koordinat titik awal, lebar, tinggi, dan luas area objek. Informasi detail objek tersebut disimpan pada kelas DetailObj yang dapat dilihat pada Kode Sumber 4.9

1 public class DetailObj{

2 public int centroidX=0, centroidY=0, 11 public int getCentroidX(){ return centroidX;

}

12 public int getCentroidY(){ return centroidY; }

13 public int getTopLeftX(){ return topLeftX; }

(66)

16 public int getHeight(){ return height; } 17 public int getArea(){ return area; } 18 }

Kode Sumber 4.9 Kode kelas DetailObj

Untuk mengisi nilai kelas ini dibuat fungsi getDetailObj dengan parameter masukan citra biner pada operasi sebelumnya. Fungsi ini dapat dilihat pada

1 public DetailObj[] getDetailObj(Mat m){

2 Mat labelling = m; 3 Mat stats = new Mat(); 4 Mat centroids = new Mat();

(67)

19 data_centroids[i] );

25 }

int[size_stats/5][size_stats];

(68)

45 case 4:

Kode Sumber 4.10 Fungsi untuk mengisi kelas DetailObj

Setelah mendapatkan informasi detail dari objek, kemudian dilakukan pencarian objek yang memungkinkan merupakan mobil. Fungsi pencarian objek mobil ini dapat dilihat pada Kode Sumber 4.11

(69)

14 }

15 if(detailObj[i].getTopLeftX() < batasKiri || detailObj[i].getTopLeftY() < batasAtas) continue;

16 if(detailObj[i].getWidth() >=

thresholdDuaLampu && detailObj[i].getHeight()

<= maksTinggiDuaLampu){ (widthRoi*persentase/100); 28 int yRoi2 = yRoi

-(widthRoi*persentase/100);

29 int widthRoi2 = widthRoi + ( (widthRoi*persentase/100) * 2); 30 int heightRoi2 = heightRoi + (

(widthRoi*persentase/100) * 2);

31 if(xRoi2 < 0 && yRoi2 < 0 && widthRoi2 <

(70)

38 } widthRoi2, heightRoi2);

47 arrRectCrop[jlhKandidat] = tempCrop; detailObj[j].getCentroidX()

55 || detailObj[i].getArea() >

(71)

61 int titikTerendahI = detailObj[i].getTopLeftY() + detailObj[i].getHeight();

62 int titikTerendahJ =

detailObj[j].getTopLeftY() + detailObj[j].getHeight();

63 batasBawah = min(titikTerendahI, titikTerendahJ);

64 batasKanan =

detailObj[j].getTopLeftX() + detailObj[j].getWidth(); 65

66 widthRoi = batasKanan -detailObj[i].getTopLeftX(); 67 heightRoi = widthRoi ; (widthRoi*persentase/100); 75 int yRoi2 = yRoi -(widthRoi*persentase/100);

(72)

83 if(yRoi2 < 0){ widthRoi2, heightRoi2);

94 arrRectCrop[jlhKandidat] = tempCrop;

ImageIcon(toBufferedImage(m))); 100 return arrRectCrop;

101 }

Kode Sumber 4.11 Fungsi pencarian objek mobil

Fungsi kandidatLayer1 ini memiliki return value berupa tipe data array dari Rect yang merupakan area yand diduga ada objek mobil. Area ini yang kemudian menjadi masukan pada tahap klasifikasi mobil selanjutnya.

4.2.3.

Implementasi Tahap Klasifikasi Mobil

(73)

tahap sebelumnya. Proses verifikasi menggunakan haar cascade

dengan multi scaling yang telah disediakan pada pustaka OpenCV. Implementasi proses ini pada sistem dapat dilihat pada Kode Sumber 4.12

1 public boolean verifikasiKandidat(Mat m){

2 CascadeClassifier carDetector = new

CascadeClassifier(fileCascade);

3 MatOfRect carDetections = new MatOfRect(); 4 carDetector.detectMultiScale(m, carDetections,

1.1, 1, 0, new Size(30,30), new Size(50,50) );

Kode Sumber 4.12 Fungsi verifikasi kandidat

4.3.

Implementasi Antarmuka Perangkat Lunak

Implementasi tampilan antarmuka pengguna pada perangkat lunak berbasis dekstop dan berjalan pada sistem operasi Windows 10. Implementasi menggunakan GUI Editor bawaan dari IDE Netbeans 8.0.2. Hanya terdapat satu halaman untuk Sistem Deteksi ini, yaitu halaman utama.

(74)

1 private void

prosesButtonActionPerformed(java.awt.event.Act

ionEvent evt) {

2 filenameTextField.setText(fileName); 3 jumlahObj = 0;

4 jlhKandidat = 0;

5

6 Mat mOri = Imgcodecs.imread(fileName); 7 jLabel1.setIcon(new

ImageIcon(toBufferedImage(mOri)));

8

ImageIcon(toBufferedImage(mTophat)));

14

15 Mat mOtsu = otsuProc(mTophat); 16 jLabel5.setIcon(new

ImageIcon(toBufferedImage(mOtsu)));

(75)

27 Rect[] arrRectCrop = kandidatLayer1(detailObj, m);

28 long endTimeMorfologi = System.nanoTime(); 29 long durationMorfologi = (endTimeMorfologi

Gambar

Tabel 3.1 Data Proses .................................................................
Gambar 2.1 Contoh operasi operasi morfologi
Gambar 2.2 Diagram alir metode Adaptive Boosting
Gambar 2.4 Cara perhitungan integral image
+7

Referensi

Dokumen terkait

Penambahan arang ke dalam tanah mengakibatkan semakin banyak ruang pori yang terdapat di dalam tanah sehingga perakaran tanaman dapat tumbuh dengan lebih baik, selain itu

Camat mempunyai tugas menyelenggarakan tugas umum pemerintahan dan melaksanakan kewenangan pemerintahan yang dilimpahkan oleh Bupati untuk menangani sebagian

Terkadang proses kredit atau leasing yang dipilih pihak lessee mengalihkan kendaraan yang menjadi objek perjanjian, maka pihak leasing akan memberikan surat

Dari hasil penelitian klasifikasi bahan pustaka berdasarkan DDC dengan menggunakan metode Naïve Bayes Classifier dapat disimpulkan bahwa metode Naïve Bayes

Biaya pengobatan gigi DARURAT sebagai akibat dari kecelakaan saja) dan biaya transportasi darurat ke institusi medis terdaftar. Biaya untuk pengobatan oleh Tabib

Berdasarkan analisis data dapat disimpulkan bahwa peningkatan kemampuan penalaran matematis siswa yang memperoleh pembelajaran dengan model pembelajaran kooperatif

Tambun Selatan 100.000.000 APBD Pengadaan Langsung Pembangunan Saluran Pembuang

Setinggi puji sedalam syukur penulis ucapkan kehadirat Allah SWT karena hingga pada saat ini penulis masih diberi nikmat berupa iman, islam,kesehatan dan motivasi