bab iii analisa dan perancangan...
TRANSCRIPT
21
BAB III
ANALISA DAN PERANCANGAN SISTEM
3.1 Analisis
Analisis dilakukan untuk mengurai secara mendalam terhadap
perancangan yang akan dilakukan. Pada perancangan klasifikasi kendaraan
menggunakan haar cascade classifier.
3.1.1 Analisa Masalah
Pemanfaatan video lalu lintas sebagai input untuk menghitung
kendaraan secara otomatis yang diharapkan membantu peneliti untuk melakukan
perhitungan yang sebelumnya dilakukan secara manual dengan melihat dan
mengamati secara langsung di jalan.
3.1.2 Algoritma
Pada proses pendeteksian objek dengan menggunakan metode haar
cascade classifier yang diusulkan oleh Viola-Jones, ada beberapa proses yang
dilakukan sebelum akhirnya akan menghasilkan sebuah output objek yang
terdeteksi pada sebuah citra. Dalam deteksi objek dengan metode ini, proses-
proses tersebut yaitu Haar-Like Feature, Integral image, Adaboost (Adaptive
Boosting), dan Cascade Classifier. Skema proses dari tiap-tiap tahap yang dilalui
oleh sebuah citra untuk memperoleh hasil pendeteksian objek kendaraan dapat
dilihat pada Gambar 3.1.
Gambar 3. 1 Skema Deteksi Metode Haar Cascade Classifier
22
Untuk detail dari tiap tahap yang dilalui oleh sebuah image pada saat
proses pendeteksian objek kendaraan seperti pada Gambar 3.1 diatas adalah
sebagai berikut:
3.2 Pemilihan Fitur
3.2.1 Haar-like feature
Untuk mendeteksi adanya fitur mobil pada sebuah citra, proses
pertama yang dilakukan dalam metode haar cascade classifier adalah dengan
merubah citra tersebut menjadi citra grayscale.
Gambar 3. 2 Skema Deteksi Metode Haar cascade classifier
Setelah citra warna diubah menjadi citra grayscale, proses selanjutnya
yaitu mendapatkan nilai fitur dengan cara melakukan pemindaian pada citra
grayscale tersebut dengan menggunakan detector yang dalam algoritma Viola-
Jones disebut dengan Haar-Like feature. Teknik yang dilakukan yaitu memindai
bagian citra dengan Haar-Like feature setiap daerah pada image dari mulai ujung
kiri atas sampai kanan bawah. Proses ini dilakukan untuk mencari nilai fitur yang
menyatakan objek kendaraan.
23
Gambar 3. 3 Skema Deteksi Metode Haar cascade classifier
3.2.2 Integral Image
Integral image digunakan pada algoritma untuk pendeteksian objek
dimana proses perhitungan dengan menggunakan integral image memerlukan waktu
yang cepat dan hasil yang akurat. Integral image digunakan untuk menghitung hasil
nilai pada daerah yang dideteksi oleh detector Haar-like feature.
Nilai-nilai piksel yang akan dihitung merupakan nilai-nilai piksel dari
sebuah citra masukan yang dilalui oleh fitur haar pada saat pemindaian yang
bertujuan untuk mendapatkan nilai fitur yang menerangkan objek mobil. Pada setiap
jenis fitur yang digunakan, pada setiap kotak-kotaknya terdiri dari beberapa piksel.
Gambar 3. 4 Nilai Piksel Pada Sebuah Fitur
Dari nilai-nilai piksel yang didapatkan pada fitur tersebut, maka akan
dihitung nilai integral image pada fitur tersebut dengan rumus berikut:
. . . .(1)
24
1 2 3 4
1 3 7 7 3
2 1 3 3 1
3 5 9 9 5
4 3 6 6 3
1 2 3 4
1 (x+1,y+1) (x,y+1) (x-1,y+1) (x-2,y+1)
2 (x+1,y) (x,y) (x-1,y) (x-2,y)
3 (x+1,y-1) (x,y-1) (x-1,y-1) (x-2,y-1)
4 (x+1,y-2) (x,y-2) (x-1,y-2) (x-2,y-2)
(a)
(b)
Gambar 3. 5 (a) Arah Perhitungan Integral Image (b) Nilai Posisi dalam Arah
Perhitungan Integral Image
Sebagai contoh untuk melakukan perhitungan integral image digunakan
citra masukan 2 x 2 pada Gambar 3.5(a) pada indeks (1,1) ,(1,2),(2,1), dan (2,2)
akan dijelaskan pada Tabel 3.1.
(y)
(x)
(x)
(y)
25
Tabel 3. 1 Perhitungan Integral Image
Nilai Piksel Keterangan
i(x,y)
=3 0
0 0
Nilai intensitas piksel (1,1) adalah 3 atau i(x,y) =3
i(x,y) =3
s(x+1,y) = 0 (di luar batas matrik)
s(x,y+1) = 0 (di luar batas matrik)
s(x+1,y+1) = 0 (di luar batas matrik)
s(x,y) = i(x,y) + s(x,y+1) + s(x+1,y) - s(x+1,y+1),
maka diapatkan nilai untuk piksel (1,1) adalah :
s(x,y) = 3 + 0 + 0 – 0 = 3
s(x+1,y)
=3
i(x,y)
=7
0 0
Nilai intensitas piksel (2,1) adalah 7 atau i(x,y) =7
i(x,y) =7
s(x+1,y) = 3
s(x,y+1) = 0 (di luar batas matrik)
s(x+1,y+1) = 0 (di luar batas matrik)
s(x,y) = i(x,y) + s(x,y+1) + s(x+1,y) - s(x+1,y+1),
maka diapatkan nilai untuk piksel (1,2) adalah :
s(x,y) = 7 + 3 + 0 – 0 = 10
26
s(x,y+1)
=3
s(x-1,y)
=10
i(x,y)
=1 0
Nilai intensitas piksel (1,2) adalah 1 atau i(x,y) =1
i(x,y) =1
s(x+1,y) = 0 (di luar batas matrik)
s(x,y+1) = 3
s(x+1,y+1) = 0 (di luar batas matrik)
s(x,y) = i(x,y) + s(x,y+1) + s(x+1,y) - s(x+1,y+1),
maka diapatkan nilai untuk piksel (2,1) adalah :
s(x,y) = 1 + 0 + 3 – 0 = 4
s(x+1,y+1
)=3
s(x,y+1)=
10
s(x+1,y)
=4
i(x,y)
=3
Nilai intensitas piksel (2,2) adalah 3 atau i(x,y) =3
i(x,y) =3
s(x+1,y) = 4
s(x,y+1) = 10
s(x+1,y+1) = 3
s(x,y) = i(x,y) + s(x,y+1) + s(x+1,y) - s(x+1,y+1),
maka diapatkan nilai untuk piksel (2,2) adalah :
s(x,y) = 3 + 10 + 4 – 3 = 14
3 10
4 14
Hasil citra integral yang terbetuk.
Setelah dilakukan perhitungan semua piksel yang terdapat dalam kotak
fitur pada Gambar 3.5 maka akan didapatkan hasil perhitungan dari integral image
pada Gambar 3.6.
27
1 2 3 4
1 3 10 17 20
2 4 14 24 28
3 9 28 47 56
4 12 37 62 74
Integral Image
Gambar 3. 6 Hasil Perhitungan Integral Image
Setelah didapatkan hasil dari perhitungan integral image, selanjutnya akan
dilakukan perhitungan untuk wilayah tertentu.
Gambar 3. 7 Pembagian Integral Image pada menjadi beberapa wilayah
Gambar 3. 8 Wilayah “F” pada Integral image dari Gambar 3.7
1 2 3 4
1 3 10 17 20
2 4 14 24 28
3 9 28 47 55
4 12 37 62 74
1 2 3 4
1 A B C D
2 E F G H
3 H J K L
4 M N O P
1 2 3 4
1 A B C D
2 E F G H
3 I J K L
4 M N O P
W3
W1 W2
W4
1 2 3 4
1 3 10 17 20
2 4 14 24 28
3 9 28 47 55
4 12 37 62 74
W3
W1 W2
W4
28
1 2 3 4
1 3 10 17 20
2 4 14 24 28
3 9 28 47 55
4 12 37 62 74
Untuk menghitung jumlah piksel pada wilayah “F” seperti pada Gambar
3.8, akan dijelaskan pada Tabel 3.2 dengan menggunakan persamaan sebagai
berikut:
Tabel 3. 2 Perhitungan Nilai Piksel pada suatu wilayah dalam Integral Image
Diketahui :
W1=3, W2=10
W3=4 W4=14
maka nilai piksel pada daerah F adalah :
F = W1 + W4 – (W2+W3)
F = 3 + 14 – ( 10 + 4)
F = 3
maka didapatkan total nilai piksel pada citra inputan pada wilayah “F” sebesar 3
Setelah didapatkan hasil nilai integral image pada wilayah tertentu, untuk
mempercepat komputasi, integral image juga dapat digunakan menghitung nilai
piksel pada beberapa wilayah tertentu.
Gambar 3. 9 Wilayah “K L O P” pada Integral image dari Gambar 3.7
. . . .(2)
1 2 3 4
1 A B C D
2 E F G H
3 I J K L
4 M N O P
W2 W1
W3 W4
W2 W1
W3 W4
29
Untuk menghitung jumlah piksel pada wilayah “K L O P” seperti pada Gambar
3.9, akan dijelaskan pada Tabel 3.3 dengan menggunakan persamaan sebagai
berikut:
Tabel 3. 3 Perhitungan Nilai Piksel pada beberapa wilayah dalam Integral
Image
Diketahui :
W1=14, W2=28, W3=37,W4=74
maka nilai piksel pada daerah “K L O P” adalah :
KLOP = W1 + W4 – (W2+W3)
KLOP = 14 + 74 – ( 28 + 37)
KLOP = 23
maka didapatkan total nilai piksel pada citra inputan pada wilayah “K L O P”
sebesar 23
Apabila sudah didapatkan nilai integral image dari sebuah citra masukan
dan nilai jumlah piksel pada daerah tertentu, maka hasil tersebut akan
dibandingkan antara nilai piksel pada daerah terang dan daerah gelap. Jika selisih
nilai piksel pada daerah terang dengan nilai piksel pada derah gelap di atas nilai
ambang (threshold) maka daerah tersebut dinyatakan memiliki fitur.
3.3 Klasifikasi Bertingkat
3.3.1 Algoritma Boosting
Metode haar cascade classifier menggunakan algoritma boosting
untuk membentuk classifier kuat dengan menentukan beberapa fitur dari banyak
fitur, adapun fitur yang ditentukan disebut dengan weak classifier yang akan
diberikan penambahan bobot dan gabungkan dengan weak classifier lainnya
untuk membentuk strong classifier yang akan memberikan prediksi pendeteksian
. . . .(3)
30
yang lebih baik, Adaboost membangun strong classifier dengan tahapan sebagai
berikut:
Diberikan citra ( , ),…,( , ) dimana =0,1 untuk data negatif dan
positif secara berturut turut.
Untuk setiap citra training, diberi koordinat (x,y) dengan y = 0 untuk
citra yang tidak mengandung objek mobil (citra negatif), dan y = 1 untuk citra
berisi mobil (citra positif).
Inisialissasikan bobot = untuk =0,1 berturut-turur, dimana m dan l
adalah jumlah negative dan positif berturut-turut.
Setiap citra diberi bobot awal yang sama, untuk citra negatif, dan
untuk citra positif. Dimana adalah jumlah total citra negatif, dan adalah
jumlah total citra positif yang digunakan dalam proses training.
Untuk t =1, …,T:
1. Normalisasikan bobot,
sehingga adalah distribusi probabilitas.
2. Untuk setiap fitur, , latih sebuah classifier yang dibatasi agar
menggunakan sebuah fitur tunggal, dan kesalahan dievaluasi dengan
3. Pilih classifier, , dengan kesalahan terendah
4. Perbaharui bobot:
31
Dimana =0 jika data diklasifikasi dengan benar, = 1 jika
sebaliknya, dan
Untuk setiap tahapan t:
1. Normalisasikan bobot untuk mendapatkan distribusi probabilitas atau
kandidat classifier lemah.
2. Evaluasi setiap kandidat classifier lemah tersebut.
3. Pilih kandidat classifier lemah dengan kesalahan yang paling sedikit,
tetapkan sebagai classifier lemah.
4. Klasifikasi semua data training menggunakan classifier lemah yang
telah didapatkan, dan lakukan pemberian bobot ulang terhadap data-
data tersebut. Perbesar bobot semua data yang mengalami kesalahan
klasifikasi, dan kurangi bobot (kembalikan ke bobot awal) semua data
yang telah diklasifikasi dengan benar. Hal ini ditujukan agar setiap
kesalahan klasifikasi yang terjadi dapat terlihat dan diatasi oleh weak
classifier yang terpilih pada tahapan selanjutnya.
Ulangi algoritma di atas, hingga data-data dapat diklasifikasi dengan benar.
Classifier kuat yang terbentuk adalah:
dimana
Classifier akhir yang didapatkan merupakan gabungan dari semua
classifier lemah yang didapatkan dari setiap tahapan boosting.
32
3.3.2 Cascade Classifier
Cascade classifier melakukan proses penyaringan subcitra dengan
membentuk tingkatan penyaringan berdasarkan banyak fitur yang ditentukan oleh
adaboost. Terdapat beberapa tingakatan klasifikasi untuk menentukan apakah
benar atau tidak ada fitur objek kendaraan pada fitur yang sudah dipilih. Pada saat
klasifikasi bagian subcitra akan melalui beberapa tahapan penyaringan dimana
pada tahap awal subcitra yang tidak menggandung objek kendaraan akan ditolak
dan sedangkan untuk subcitra yang menggandung objek positif akan dijadikan
inputan pada tahapan penyaringan berikutnya hingga didapatkan sub-citra yang
diyakini sebagai objek mobil.
Gambar 3. 10 Cascade Classifier
Setelah dilakukan serangkain proses seperti pemilihan fitur dan
klasifikasi bertingkat maka akan didapatkan sebuah hasil pendeteksian. Hasil
pendeteksian bisa berupa objek mobil atau bukan objek mobil. Pada saat proses
klasifikasi bertingkat dilakukan maka, pada bagian subcitra tersebut akan ditandai
dengan sebuah detector yang ditentukan pada daerah subwindow objek mobil
yang terdeteksi dan apabila tidak ada objek kendaraan tedeteksi maka, image
tersebut tidak akan ditandai oleh sebuah detector.
33
3.4 Perancangan Classifier
3.4.1 Data Train
Dalam membuat data train memerlukan dua jenis gambar citra positif
dan negatif. Pada sistem yang akan dibuat menggunakan 1000 citra berupa
gambar yang memuat objek mobil (gambar positif) dan 200 citra berupa gambar
yang tidak memuat objek mobil (gambar negatif). Tools yang digunakan untuk
membuat data train diantara objectmarker.exe createsamples.exe, haartraining.exe
dan haarconv.exe yang akan dijelaskan proses pembuatan data train sebagai
berikut:
Gambar 3. 11 Alur Pembangunan Classifier
34
3.4.2 Citra Negatif
Pada tahap awal dikumpulkan 200 gambar negatif dengan format .jpg
kedalam satu direktori “negative” dan kemudian dibuat file .txt yang memuat
daftar nama semua file gambar negative tersebut. Berikut langkah-langkahnya:
a. Buka Command Prompt
b. Arahkan ke direktori tempat gambar negative di simpan
c. Masukan perintah [dir /b> bg.txt]
3.4.3 Citra Positif
Pada tahap awal dikumpulkan 1000 gambar positif dengan format
.bmp yang didapatkan dengan melakukan tangkapan layar pada video kondisi lalu
lintas dan disimpan kedalam satu direktori “rawdata”. Kemudian untuk menandai
objek pada bagian gambar tertentu digunakan objectmarker.exe (tools untuk
melakukan marking terhadap gambar objek yang dikehendaki). Berikut langkah-
langkahnya:
a. Masukan gambar positif ke direktori rawdata
b. Jalankan objectmarker.exe dan tandai objek yang dikehendaki yang
akan digunakan sebagai data positif.
Tools tersebut akan menyimpan informasi objek yang dikehendaki
dalam info.txt yang meliputi nama file, jumlah objek yang ditandai, koordinat
objek yang dihendaki.
c. Merubah info.txt menjadi file vector dengan ektensi .vec yang
bertujuan untuk mengubah ukuran gambar positif dengan cara
melakukan resize agar semua ukuran gambar menjadi sama.
Mengubah file info menjadi file vector .vec digunakan
opencv_createsamples.exe dengan menjalankan perintah .bat file
dengan sintaks sebagai berikut :
d. createsamples.exe -info positive/info.txt -vec vector/vectormobil.vec -
num 513 -w 24 –h 24
35
e. Setelah perintah tersebut dijalankan makan akan menghasilkan output
file vectormobil.vec
3.4.4 Haar Training
Untuk membangun haar classifier maka perlu dilakukan tahapan haar
training dengan mengujikan gambar positif terhadap gambar negatif yang akan
dilakukan oleh tools HaarTraining.exe
Gambar 3. 12 Alur pengolahan haar training
Berikut tahap pembuatan cascade classifier .xml:
a. Menjalankan haartraining.exe untuk membuat cascade classifier
menggunakan file .bat [haartraining.exe -data cascades -vec
vector/vectormobil.vec -bg negative/bg.txt -npos 513 -nneg 200 -
nstages 15 -mem 1024 -mode ALL -w 24 -h 24].
-data : Lokasi penyimpanan output haartrainning.exe
36
-vec : Data citra positif
-bg : Data citra negative
-npos : Jumlah citra positif
-nneg : Jumlah citra negative
-nstages : Jumlah tahap cascade
-mem : Alokasi memori untuk menjalankan haartraining.exe
-w : Ukuran lebar
-h : Ukuran tinggi
b. Setelah menjalankan haartraining.exe mendapatkan output berupas
fitur haar like berupa AdaBoostCARTHaarClassifier.txt 0-n (n
=number of stages)
c. Konversi stages dari beberapa file AdaBoostCARTHaarClassifier.txt
menjadi file tunggal dengan format .xml menggunakan tool
Haarconv.exe
3.5 Perancangan Aplikasi
Dalam melakukan implementasi dari classifier yang akan dibuat
diujikan kedalam sebuah aplikasi dimana dalam aplikasi ditambahkan beberapa
fitur yang meliputi object detection, object tracking, dan object counting.
Gambar 3. 13 Alur Aplikasi
37
3.5.1 Input
Pada tahapan ini diperlukan untuk melakukan input data untuk
diproses yang berupa video kondisi lalu lintas dengan posisi pengambilan video
menghadap 30o derajat sampai 50o derajat kebawah dan menghadap bagian depan
mobil.
(a)
(b)
Gambar 3. 14 (a) Posisi pengambilan video (b) Contoh pengambilan video
3.5.2 Preprocessing
Pada tahapan ini video yang dimasukan akan dikonversi dari warna
asal RGB menjadi Grayscale menggunakan fungsi cv2.cvtcolor yang disediakan
oleh pustaka OpenCV dan kemudian dilakukan proses untuk mengambil bagian
dari video grayscale sebagai Region Of Interest (ROI), pada proses preprocessing
menghasilkan output yang berupa Region of Interest subcitra grayscale.
38
Gambar 3. 15 Flowchart Preprocessing
3.5.3 Processing
Pada tahapan ini fungsi deteksi akan melakukan pemindaian terhadap
bagian citra untuk mencari fitur haar pada objek kendaraan dan hitung
menggunakan integral image dan dinyatakan objek kendaraan atau bukan objek
kendaraan berdasarkan cascade classifier yang diurutkan tingkat penyaringannya
menggunakan metode Adaboost, dalam tahapan ini digunakan fungsi
cv2.detectMultiScale yang disediakan oleh pustaka OpenCV.
39
Gambar 3. 16 Flowchart Processing
Mulanya seluruh bagian subcitra ROI (Region of Interest) dilakukan
proses pemindaian fitur haar yang telah ditentukan, dan nilainya dihitung
menggunakan integral image, dan apabila memenuhi nilai threshold maka
dinyatakan subcitra tersebut memiliki objek yang di deteksi, dan apabila dibawah
nilai threshold maka subcitra tersebut dinyatakan tidak memiliki fitur dan subcitra
ini akan ditolak, berbeda dengan subcitra yang tidak mengandung objek untuk
subcitra yang memiliki objek deteksi yang mana dalam kasus ini adalah objek
mobil maka subcitra ini akan diproses secara bertingkat hingga dipisahkan seluruh
subcitra selain subcitra objek mobil yang menyisahkan subcitra yang diyakini
sebagai objek mobil yang dikehendaki.
3.5.4 Tracking
Pada tahapan ini pada bagian gambar yang diketahui sebagai objek
akan diambil nilai posisinya (x,y) untuk dibandingkan kedalam list yang berisi
daftar posisi terakhir dari objek tracking yang telah dideteksi, jika nilai posisi
tersebut tidak termasuk di dalam list maka posisi tersebut di identifikasi sebagai
40
objek baru dan nilai posisinya akan dimasukan kedalam list sebagai objek baru.
Jika posisi objek termasuk dalam posisi terakhir dari objek tracking dalam list,
maka nilai posisi terakhir yang berada dalam list tersebut akan diperbarui dengan
nilai posisi terbaru dari objek tersebut.
Gambar 3. 17 Flowchart Tracking
3.5.5 Counting
Pada tahapan ini kendaraan yang melintas kedalam area hitung ROI
(Region Of Interest) akan diambil nilai posisinya (x,y) kemudian nilai posisi ini
akan dibandingkan terhadap nilai posisi objek dalam list objek tracking, jika
termasuk dalam nilai posisi dalam list tracking menandakan bahwa posisi tersebut
adalah objek yang telah di hitung, dan apabila nilai dari posisi tidak termasuk
jangkauan nilai posisi objek tracking maka nilai posisi tersebut menandakan objek
kendaraan baru dan akan dilakukan operasi hitung dengan menambahkan nilai
jumlah mobil yang telah terhitung sebelumnya.
41
Gambar 3. 18 Flowchart Counting