ANALYSIS DAN SUPPORT VECTOR MACHINE
SKRIPSI
Diajukan Oleh :
FIRMAN ISNANDI S.
NPM. 0634010273
JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”
Syukur Alhamdulillaahi rabbil „alamin terucap ke hadirat Allah SWT atas segala limpahan Kekuatan-Nya sehingga dengan segala keterbatasan waktu, tenaga, pikiran dan keberuntungan yang dimiliki penyusun, akhirnya penyusun dapat menyelesaikan Skripsi yang berjudul “Deteksi Obyek Pejalan Kaki Menggunakan Metode Principal Component Analysis dan Support Vector Machine” tepat pada waktunya.
Tugas Akhir dengan beban 4 SKS ini disusun guna diajukan sebagai salah satu syarat untuk menyelesaikan program Strata Satu (S1) pada program studi Teknik Informatika, Fakultas Teknologi Industri, UPN ”VETERAN” Jawa Timur.
Terwujudnya Tugas Akhir ini adalah berkat usaha, kerja keras serta dukungan dari berbagai pihak. Dan tanpa menghilangkan rasa hormat, penulis mengucapkan banyak terima kasih kepada pihak-pihak yang telah membantu penulis antara lain:
1. Bapak Nur Cahyo Wibowo, S.Kom., M.Kom. selaku Dosen Pembimbing I penulis yang telah memberikan banyak nasehat, arahan, bantuan, ide-ide, perhatian, serta dukungan motivasi yang sangat berguna bagi penulis. 2. Ibu Fetty Tri Anggraeni, S.Kom. Selaku Dosen Pembimbing II sekaligus
dan Adikku yang sangat saya sayangi, terima kasih atas semuanya, aku tidak akan bisa seperti ini tanpa keluargaku. Aku beruntung terlahir dikeluarga ini.
4. Calon Istriku, Yuyun. Terima kasih sudah meminjami printer, memberikan semangat dan doa.
5. Teman-teman kuliah khususnya Geng Ceria (Aryo, Nanang, Tio, Doni, Irul, Fefe), Asrofi, Aziz, Bagus, Hanif, Husen, Andre, Hartatik, Sena, Mamik, dan Yulisah terimakasih banyak atas bantuan kalian selama ini baik secara materi maupun non materi sehingga penulis dapat menyelesaikan skripsi ini dengan sebaik – baiknya,
6. Teman- teman mahasiswa dan teman-teman diluar kampus yang tidak bisa saya sebutkan satu persatu, terimakasih atas semua dukungan dan do’anya
selama ini dan terimakasih atas pertemanannya.
Penulis menyadari bahwa penulisan skripsi ini masih jauh dari kesempurnaan, Oleh sebab itu, penulis mengharapkan kritik dan saran yang bersifat membangun guna terciptanya kesempurnaan penulisan ini selanjutnya. Semoga penulisan ini dapat menambah wawasan serta ilmu pengetahuan bagi siapa saja yang membacanya.
Surabaya, Mei 2011
ABSTRAK ...i
KATA PENGANTAR ...ii
DAFTAR ISI ...iv
DAFTAR GAMBAR ...vii
DAFTAR TABEL ...ix
BAB I PENDAHULUAN 1.1Latar Belakang ...1
1.2Rumusan Masalah ...1
1.3Batasan Masalah ...2
1.4Tujuan ...3
1.5Manfaat ...3
1.6Metodologi Penulisan ...4
1.7Sistematika Penulisan ...5
BAB II TINJAUAN PUSTAKA 2.1 Definisi Citra ...7
2.1.1 Definisi Citra Analog ...7
2.1.2 Definisi Citra Digital ...8
2.1.2.1 Jenis-Jenis Citra Digital ...8
2.2 Principal Component Analysis ...9
2.3 Support Vector Machine ...12
2.4 Matlab 7.1 ...20
3.3.1 Proses Reduksi Dimensi ...33
3.3.2 Proses Klasifikasi ...35
3.3.2.1 Proses Training ...35
3.3.2.2 Proses Testing ...36
3.3.3 Proses Pengenalan Citra ...37
3.3.3.1 Overlapping Crop Citra ...38
3.3.3.2 multiscaling Citra ...39
3.3.4 Proses Mengurangi Kesalahan Deteksi ...41
3.3.4.1 Metode Heuristik ...41
BAB IV IMPLEMENTASI DAN EVALUASI 4.1 Lingkungan Implementasi ...43
4.2 Implementasi Pada Program Utama ...43
4.3 Implementasi Pengubahan Citra ke Matriks ...47
4.4 Implementasi Proses Reduksi ...48
4.5 Implementasi Proses Klasifikasi ...50
4.5.1 Implementasi Proses Training SVM ...51
4.5.2 Implementasi Proses Testing SVM ...53
4.6 Implementasi Proses Pengenalan Citra ...55
Pengurutan Nilai Eigen (bagian 1) ... 11
Gambar 2.2. Kode Implementasi Pencarian Nilai Eigen dan Vector Eigen Serta Pengurutan Nilai Eigen (bagian 2) ... 11
Gambar 2.3. Transformasi dari Input Space ke Feature Space ... 14
Gambar 2.4. Kode Implementasi dari Perhitungan Kernel Polynomial ... 14
Gambar 2.5. Kode Implementasi Transformasi dari Data Training ... 15
Gambar 2.6. Visualisasi Transformasi dari Input Space ke Feature Space dari Data Training ... 15
Gambar 2.7. Kode Implementasi dari Perhitungan α ... 18
Gambar 2.8. Implementasi dari Perhitungan Margin dan Support Vector ... 19
Gambar 2.9. Kode Implementasi dari Fungsi Klasifikasi (bagian 1) ... 19
Gambar 2.10. Kode Implementasi dari Fungsi Klasifikasi (bagian 2) ... 20
Gambar 2.11. Visualisasi dari Fungsi Klasifier/Hyperplane pada Feature Space 20 Gambar 2.12. Tampilan Jendela Utama Matlab ... 22
Gambar 2.13. Tampilan Jendela Utama Workspace ... 22
Gambar 2.14. Tampilan Current Directory ... 23
Gambar 2.15. Tampilan Command History ... 23
Gambar 2.16. Tampilan Command Window ... 24
Gambar 2.17. Tampilan Matlab Editor ... 24
Gambar 2.18. Tampilan Help ... 25
Gambar 3.1. Diagram Alir Model Sistem Secara Umum ... 27
Gambar 3.2. Diagram Alir Model Sistem Secara Umum (Testing) ... 28
Gambar 3.3. Pedestrian64x32 ... 29
Gambar 3.4. Nonpedestrian64x32 ... 30
Gambar 3.5. Data Testing ... 30
Gambar 3.6. Data Output ... 32
Gambar 3.7. Diagram Alir Reduksi Dimensi ... 34
Gambar 3.12. Diagram Alir Proses Multiscaling ... 40
Gambar 3.13. Diagram Alir Metode Heuristik ... 42
Gambar 4.1. Kode Implementasi Utama.m (bagian 1) ... 44
Gambar 4.2. Kode Implementasi Utama.m (bagian 2) ... 45
Gambar 4.3. Kode Implementasi Utama.m (bagian 3) ... 46
Gambar 4.4. Kode Implementasi Createdatabase.m (bagian 1) ... 47
Gambar 4.5. Kode Implementasi Createdatabase.m (bagian 2) ... 48
Gambar 4.6. Kode Implementasi pca.m (bagian 1) ... 49
Gambar 4.7. Kode Implementasi pca.m (bagian 2) ... 50
Gambar 4.8. Kode Implementasi Proses Training svc.m (bagian 1) ... 51
Gambar 4.9. Kode Implementasi Proses Training svc.m (bagian 2) ... 52
Gambar 4.10. Kode Implementasi Proses Training svc.m (bagian 3) ... 53
Gambar 4.11. Kode Implementasi Proses Testing SVM ... 54
Gambar 4.12. Kode Implementasi Kernel SVM ... 55
Gambar 4.13. Kode Implementasi Proses Pengenalan Citra (bagian 1) ... 56
Gambar 4.14. Kode Implementasi Proses Pengenalan Citra (bagian 2) ... 57
Tabel 4.1. Lingkungan Implementasi Sistem ... 43 Tabel 5.1. Lingkungan Uji Coba ... 58 Tabel 5.2. Spesifikasi Data Pada Skenario Satu ... 59 Tabel 5.3. Tingkat Akurasi Data Testing Pedestrian1.jpg Terhadap Penambahan Jumlah Data Training Pejalan Kaki dan Bukan Pejalan Kaki ... 60 Tabel 5.4. Tingkat Akurasi Data Testing Pedestrian2.jpg Terhadap Penambahan Jumlah Data Training Pejalan Kaki dan Bukan Pejalan Kaki ... 60 Tabel 5.5. Hasil Uji Coba Terhadap Data Testing Pedestrian1.jpg dan
Pedestrian2.jpg (bagian1) ... 61 Tabel 5.6. Hasil Uji Coba Terhadap Data Testing Pedestrian1.jpg dan
Pedestrian2.jpg (bagian2) ... 62 Tabel 5.7. Hasil Uji Coba Terhadap Data Testing Pedestrian1.jpg dan
Pedestrian2.jpg (bagian3) ... 63 Tabel 5.8. Hasil Uji Coba Terhadap Data Testing Pedestrian1.jpg dan Pedestrian2.jpg (bagian4) ... 64 Tabel 5.9. Spesifikasi Data Pada Skenario Dua ... 65 Tabel 5.10. Hasil Uji Coba Tingkat Akurasi Terhadap Penambahan Nilai Pangkat Kernel Poynomial ... 65 Tabel 5.11. Hasil Uji Coba Data Testing Pedestrian1.jpg dan Pedestrian2.jpg
Terhadap Penambahan Nilai Pangkat Kernel Polynomial (bagian 1) 66 Tabel 5.12. Hasil Uji Coba Data Testing Pedestrian1.jpg dan Pedestrian2.jpg
Terhadap Penambahan Nilai Pangkat Kernel Polynomial (bagian 2) 67 Tabel 5.13. Hasil Uji Coba Data Testing Pedestrian1.jpg dan Pedestrian2.jpg
Terhadap Penambahan Nilai Pangkat Kernel Polynomial (bagian 3) 68 Tabel 5.14. Hasil Uji Coba Data Testing Pedestrian1.jpg dan Pedestrian2.jpg
Terhadap Penambahan Nilai Pangkat Kernel Polynomial (bagian 4) 69 Tabel 5.16. Hasil Uji Coba Data Testing Pedestrian1.jpg dan Pedestrian2.jpg
ABSTRAK
Deteksi obyek pejalan kaki lebih sulit daripada mendeteksi obyek lain
karena pejalan kaki dapat menunjukkan gerak yang bervariasi. Selain itu pejalan
kaki juga memakai berbagai jenis dan warna pakaian yang berbeda. Oleh karena
itu diperlukan suatu metode yang robust yang dapat mendeteksi variabilitas yang tinggi tersebut.
Dalam tugas akhir ini sistem deteksi obyek pejalan kaki yang diusulkan
menggunakan Principal Component Analysis (PCA) yang digunakan untuk mereduksi dimensi dan klasifikasi menggunakan Support Vector Machine (SVM). Reduksi dimensi data ini dapat meningkatkan akurasi dan performa sistem. Sistem
ini dapat mendeteksi pejalan kaki dari depan dan belakang.
Dari Hasil uji coba dengan variasi setting jumlah data training dan nilai
pangkat kernel polynomial terhadap metode yang dibuat ini memiliki tingkat akurasi hingga mencapai 88,43%.
Dalam bab ini dijelaskan beberapa hal dasar yang meliputi latar belakang,
rumusan masalah, batasan masalah, tujuan, manfaat, metodologi skripsi serta
sistematika penulisan skripsi. Dari uraian tersebut diharapkan, gambaran umum
permasalahan dan pemecahan yang diambil dapat dipahami dengan baik.
1.1. Latar Belakang
Masalah deteksi obyek dapat dilihat seperti masalah klasifikasi, bagaimana
membedakan obyek yang ingin dideteksi dengan obyek yang lain. Deteksi obyek
pejalan kaki lebih sulit daripada mendeteksi obyek lain karena pejalan kaki dapat
menunjukkan gerak yang bervariasi. Selain itu pejalan kaki juga memakai
berbagai jenis dan warna pakaian yang berbeda. Oleh karena itu diperlukan suatu
metode yang robust yang dapat mendeteksi variabilitas yang tinggi tersebut. Oleh
karena itu, dalam tugas akhir ini diusulkan pembuatan sistem deteksi obyek
pejalan kaki menggunakan PCA (Principal Component Analysis) sebagai metode
untuk mereduksi dimensi dan SVM (Support Vector Machine) sebagai metode
untuk klasifikasi pada citra statis.
1.2. Rumusan Masalah
lain.
b. Bagaimana melakukan reduksi dimensi menggunakan Principal Component
Anlaysis.
c. Bagaimana melakukan klasifikasi menggunakan metode Support Vector
Machine.
1.3. Batasan Masalah
Adapun batasan ruang lingkup permasalahan dari pengerjaan tugas akhir ini
adalah sebagai berikut:
a. Hanya mendeteksi obyek pejalan kaki pada citra statis.
b. Mendeteksi citra pejalan kaki yang dilihat dari sisi muka dan belakang.
c. Menggunakan kernel polynomial pada proses klasifikasi menggunakan
support vector machine.
d. Batas akurasi yang di toleransi dalam penelitian ini adalah sebesar 55%. Jika
tingkat penyimpangan dalam deteksi masih di bawah 45%, berarti hasil
deteksi dapat dipercaya. Sebaliknya, jika kesalahan dalam hasil deteksi
1.4. Tujuan
Tujuan dari pembuatan tugas akhir ini adalah untuk membuat aplikasi
pendeteksi obyek pejalan kaki yang terdapat pada citra statis dengan
menggunakan metode principal component analysis dan support vector machine.
1.5. Manfaat
Manfaat yang diperoleh dari Tugas Akhir ini antara lain sebagai berikut:
a. Dapat memberikan pemahaman serta pengetahuan mengenai berbagai
macam algoritma pengolahan citra yang digunakan untuk mendeteksi
obyek pejalan kaki pada citra statis.
b. Program aplikasi yang dibuat juga dapat dijadikan bahan untuk
penelitian lebih lanjut di bidang yang berkaitan.
c. Hasil penelitian ini diharapkan dapat digunakan sebagai langkah awal untuk membangun sistem deteksi pejalan kaki yang menyeluruh.
Program aplikasi yang dibuat juga dapat dijadikan bahan untuk
penelitian lebih lanjut di bidang yang berkaitan.
d. Dengan penyesuaian tertentu, metode yang digunakan mungkin dapat juga dimanfaatkan untuk sistem deteksi objek secara umum yang tidak
hanya terbatas pada deteksi pejalan kaki, misalnya deteksi kendaraan,
wajah, bahan produksi, dan sebagainya.
e. Dari hasil penelitian ini juga diharapkan dapat diperoleh pemahaman
jaringan syaraf tiruan.
1.6. Metodologi Penulisan
Pembuatan tugas akhir ini dilakukan dengan menggunakan metodologi
sebagai berikut :
a. Studi Literatur
Pada tahap ini dilakukan pencarian dan pemahaman literature yang
diperlukan untuk pengumpulan data dan perancangan sistem yang akan
dibuat. Literatur yang didapat berasal dari buku, jurnal, materi kuliah, dan
materi-materi lain yang berhubungan dengan PCA (Principal Component
Analysis) dan SVM (Support Vector Machine).
b. Perumusan Masalah dan Penyelesaiannya
Tahap ini meliputi perumusan masalah, batasan-batasan masalah dan
penyelesaiannya serta penentuan parameter untuk mengukur hasilnya.
c. Perancangan Perangkat Lunak
Pada tahap ini diawali dengan melakukan analisis awal terhadap permasalahan
utama yang muncul pada topik tugas akhir ini kemudian dilakukan
Pada tahap ini dilakukan implementasi metode yang diusulkan dari rancangan
yang telah dibuat pada tahap sebelumnya dengan menggunakan MATLAB.
e. Uji Coba dan Evaluasi
Pada tahap ini dilakukan uji coba dengan menggunakan bermacam data
masukan yang bervariasi untuk mencoba jalannya aplikasi telah sesuai dengan
rancangan dan desain implementasi yang dibuat juga untuk mencari kesalahan
program yang mungkin terjadi untuk selanjutnya dapat dilakukan
penyempurnaan. Tingkat penyimpangan yang ditoleransi sebesar
f. Penyusunan Laporan Tugas Akhir
Pada tahap ini dilakukan penyusunan laporan yang berisi dasar teori,
dokumentasi dari perangkat lunak, dan hasil-hasil yang diperoleh selama
pengerjaan tugas akhir.
1.7. Sistematika Penulisan
Sistematika penulisan buku tugas akhir dibagi menjadi beberapa bab sebagai
berikut:
Bab I Pendahuluan
Berisi latar belakang, rumusan masalah, batasan masalah, tujuan,
Berisi landasan teori yang terkait dengan skripsi ini, Yaitu tentang
definisi citra, penjelasan metode principal component analysis, dan
penjelasan metode support vector machine.
Bab III Analisis dan Perancangan Sistem
Akan dibahas deskripsi umum sistem, perancangan data, serta
pemodelan proses yang digunakan pada tugas akhir ini dengan
menggunakan diagram alir.
Bab IV Implementasi dan Evaluasi
Akan dilakukan pembuatan aplikasi yang dibangun dengan MATLAB
sesuai dengan permasalahan dan batasannya yang telah dijabarkan pada
bab pertama.
Bab V Evaluasi dan Uji Coba
Akan dilakukan uji coba dari aplikasi yang dibuat dengan melihat data
keluaran yang dihasilkan oleh aplikasi. Dari data keluaran tersebut
dapat dilakukan analisis hasil untuk mengetahui kemampuan dari sistem
yang dibuat serta membandingkan hasil penyelesaian permasalahan dari
skenario uji coba yang dilakukan.
Bab VI Penutup
Berisi kesimpulan yang dapat diambil dari tugas akhir ini beserta saran
Pada bab ini akan dibahas beberapa teori dasar untuk menunjang
penyelesaian tugas akhir ini, yaitu beberapa pengertian umum, konsep, dan teori
yang berhubungan dengan pembuatan aplikasi Deteksi Pejalan Kaki
Menggunakan Metode Principal Component Analysis dan Support Vector
Machine, antara lain: definisi citra, teori mengenai metode PCA meliputi proses perhitungan mean, standart deviasi, covarian, eigenvector, eigenvalue dan reduksi
dimensi. Teori SVM yang meliputi proses training klasifikasi dan testing.
2.1 DefinisiBCitra
Citra adalah suatu representasi (Gambaran), kemiripan, atau imitasi dari
suatu objek. Citra sebagai keluaran suatu sistem perekaman data dapat bersifat
optik berupa foto, bersifat analog berupa sinyal-sinyal video seperti Gambar pada
monitor televisi, atau bersifat digital yang dapat langsung disimpan pada suatu
media penyimpanan.
2.1.1 DefinisiBCitraBAnalog
Citra analog tidak direpresentasikan dalam komputer dan bersifat
kontinyu, semua merupakan fakta, contoh : Gambar pada monitor televisi, foto
2.1.2 DefinisiBCitraBDigital
Citra digital direpresentasikan dalam komputer berbentuk kode seperti
biner, desimal. Contoh citra digital : WAV, MP3, MID, RMI, BMP, JPG, GIK
2.1.2.1 Jenis-jenisBCitraBDigital
Ada banyak cara untuk menyimpan citra digital di dalam memori. Cara
penyimpanan menentukan jenis citra digital yang terbentuk. Beberapa jenis citra
digital yang sering digunakan adalah citra biner,citra grayscale,dan citra warna.
a. Citra Biner (Monokrom)
Banyaknya warna ada 2, yaitu hitam dan putih. Dibutuhkan 1 bit di memori
untuk menyimpan kedua warna ini.
b. Citra Grayscale (Skala Keabuan)
Citra grayscale adalah citra yang hanya menggunakan warna pada tingkatan
warna abu-abu. Warna abu-abu adalah satu-satunya warna pada ruang RGB
dengan komponen merah, hijau, dan biru mempunyai intensitas yang sama.
Pada citra grayscale hanya perlu menyatakan nilai intensitas untuk tiap piksel
sebagai nilai tunggal
c. Citra Warna (True Color)
Setiap piksel pada citra warna mewakili warna yang merupakan kombinasi
dari tiga warna dasar (RGB = Red Green Blue). Setiap warna dasar
sebabnya format ini dinamakan true color, karena mempunyai jumlah warna
yang cukup besar sehingga bisa dikatakan hampir mencakup semua warna di
alam.
2.2 PCAB(Principal Component Analysis)
Salah satu metode yang digunakan pada deteksi obyek pejalan kaki ini
menggunakan metode Principal Component Analysis. Di dalam analisis data
terdapat beberapa masalah dimana obyek data memiliki fitur dalam jumlah besar
sehingga reduksi fitur menjadi salah satu solusi dalam menyelesaikan masalah
tersebut. Reduksi fitur dapat meningkatkan efisiensi dan akurasi dari analysis
data. Salah satu metode yang digunakan untuk mereduksi fitur atai dimensi adalah
PCA. PCA menghasilkan sejumlah vektor berbasis orthonormal dalam bentuk
kumpulan vektor eigen dari suatu matriks kovarian tertentu, yang dapat secara
optimal mempresentasikan distribusi data. Kumpulan vektor basis tersebut
digunakan untuk membentuk suatu sub ruang baru diperoleh dari proses pencarian
vektor eigen (eigenvector) dan nilai eigen (eigenvalue) dari suatu matriks
kovarians dibentuk dari sejumlah vektor data Zn yang memiliki dimensi sebanyak
d yang memiliki bentuk:
Dengan Z1 hingga Zd merupakan dimensi dari vektor data Zn. Untuk sejumlah M
vektor rata-rata (mean) dapat diketahui dengan menggunakan persamaan:
∑
= = M n n z z M 1 1 µ (2-2)Selanjutnya setelah ditemukan nilai rata-rata (mean) proses yang harus dilakukan
mengurangi data awal dengan mean atau rata-rata. Untuk menghitung nilai
tersebut dari data dapat menggunakan rumus (2-3).
z n
Z
s = − µ (2-3)
Sehingga matriks konvarian Cz dari sekumpulan data dapat menggunakan
persamaan:
(
)(
)
∑
= − − = M n T z n z nz z z
C 1
µ
µ (2-4)
Tujuan dari perhitungan kovarians disini digunakan untuk mengukur hubungan
antara dua dimensi. Jadi jika terdapat data set tiga dimensi (x, y, z), dapat
dilakukkan pengukuran kovarians antara dimensi x dan y, dimensi x dan z, dan
dimensi y dan z. Pengukuran kovarians terhadap x dan x, atau y dan y atau z dan z
akan menghasilkan pengukuran varians. Kovarians hanya merupakan pengukuran
antara dua dimensi. Jika data terdiri dari lebih dari dua dimensi dapat
menggunakan kovarians matriks.
Setelah kovarians matriks ditemukan proses selanjutnya perhitungan vektor eigen
= n Z λ λ λ λ ... 2 1 (2-5)
dengan λ1hingga λn adalah elemen dari vektor nilai eigen λZ
= nn n n n n Z e e e e e e e e e e ... ... ... ... ... ... ... 2 1 2 22 21 1 12 11 (2-6)
dengan e11 hingga enn adalah elemen dari matriks vektor eigen eZ.
kemudian vektor-vektor eigen dalam matriks eZ disusun terurut mengecil
berdasakan nilai eigennya. Jadi vektor kolom pertama dari matriks eZ akan
mempunyai nilai eigen yang lebih besar dari pada nilai eigen untuk vektor kolom
berikutnya. Pengurutan ini bertujuan untuk memudahkan proses reduksi dimensi
matriks transformasi. Matriks eZ merupakan matriks transformasi yang akan
memetakan kumpulan vektor Zn menjadi kumpulan vektor P didalam ruang eigen.
Implementasi dari proses pencarian nilai eigen dan vektor eigen serta pengurutan
nilai eigen untuk mendapatkan matriks reduksi dimensi dapat dilihat pada Gambar
21-22.
1 [V D] = eig(C);
2 eigenVector = [];
3 eigenValue = [];
4 for i = 1 : size(V,2)
5 if(D(i,i) > 1e-4)
6 eigenVector = [eigenVector V(:,i)];
7 eigenValue = [eigenValue D(i,i)];
8 end
9 end
10 [B index] = sort(eigenValue,'descend');
11 eigenValue = eigenValue(index);
12 eigenVector = eigenVector (:,index);
13 reduceSpace = std_dev'*eigenVector;
GambarB2.2BTodeBimplementasiBpencarianBnilaiBeigenBdanBvektorBeigenBsertaB pengurutanBnilaiBeigenB(bagianB2)
Kumpulan vektor p dapat dihitung dengan menggunakan persamaan :
(
n z)
z z
e
p= − µ (2-7)
dengan menggunakan kumpulan p yang bersesuaian, untuk merekonstruksi vector
Zn dapat dihitung dengan menggunakan persamaan :
µ + = e p
zn Tz (2-8)
kumpulan vektor p merupakan matriks reduksi dimensi yang akan
digunakan untuk mengurangi dimensi dari data asal zn. implementasi dari
pembentukan matriks reduksi dapat dilihat pada Gambar 2.2 pada baris ke 13.
Data asal zn diproyeksikan ke vektor p sehingga data asal tersebut akan berkurang
dimensinya.
2.3 SVMB(SupportBVectorBMachine)
Metode berikutnya yang digunakan pada deteksi obyek pejalan kaki ini
menggunakan metode SVM atau Support Vector Machine. SVM atau Support
Vector Machine adalah suatu teknik yang relative baru (1995) untuk melakukan prediksi dalam kasus klasifikasi. SVM masuk dalam kelas supervised learning.
testing (menguji). SVM dapat menemukan solusi yang global optimal. Global optimal selalu mencapai solusi yang sama dalam setiap running.
Di dalam teknik SVM ini berusaha menemukan fungsi pemisah
(klasifier/hyperplan) terbaik diantara fungsi yang tidak terbatas jumlahnya untuk
memisahkan dua macam obyek. Hyperplane terbaik adalah hyperplane yang
terletak di tengah-tengah antara dua set obyek dari dua kelas. Mencari hyperplane
terbaik ekuivalen dengan memaksimalkan margin atau jarak antar dua set obyek
dari kelas yang berbeda.
Margin merupakan jarak antara dua bidang pembatas, w merupakan
normal bidang sedangkan b merupakan posisi relatif terhadap original. Terdapat
beberapa data yang tidak dapat dipisahkan secara linier atau non linearly
separable data. Sehingga perlu dilakukan perubahan pada metode SVM yang biasa. Metode ini mentransformasikan data ke dalam dimensi ruang fitur (feature
space) sehingga dapat dipisahkan secar linier pada feature space. Pada Gambar 2.3 menunjukkan bagimana data yang tidak dapat dipisahkan secara linier pada
input space bias di pisahkan secara linier pada feature space.
Feature space dalam prakteknya biasanya memiliki dimensi yang lebih tinggi dari vektor input (input space). Hal ini mengakibatkan komputasi pada
feature space mungkin sangat besar, karena ada kemungkinan feature space dapat
memiliki jumlah feature yang tidak terhingga. Selain itu, sulit mengetahui fungsi
transformasi yang tepat. Untuk mengatasi masalah ini, pada SVM digunakan
“kernel trick”. Untuk menyelesaikan masalah pada non linearly separable data
GambarB2.3BTransformasiBdariBInput Space ke Feature Space
Metode yang popular digunakan untuk memetakan dari input space ke feature
space yaitu metode kernel polynomial. Kungsi kernel polynomial memiliki bentuk persamaan.
(
) (
(
)
)
nx x x
x
K 1, 2 = 1, 2 + 1 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB(2-9)
implementasi dari persamaan (2-1) dapat dilihat pada Gambar 2.4
1 function k = svkernel(u,v)
2 global p1 p2;
3 k = (u*v' + 1)^p1;
4 End
GambarB2.4BTodeBImplementasiBdariBPerhitunganBTernelBPolynomial Sehingga implementasi dari proses transformasi dari data training dapat
1 n = size (X ,1);
2 epsilon = svtol(C);
3 H = zeros(n,n);
4 for i=1:n
5 for j=1:n
6 H(i,j)=Y(i)*Y(j)*svkernel(ker,X(i,:),X(j,:));
7 end
8 end
GambarB2.5BTodeBImplementasiBTransformasiBdariBDataBTraining
Visualisasi dari data yang tidak dapat dipisahkan secara linear pada input space
tetapi dapat dipisahkan secara linier pada feture space dapat dilihat pada Gambar
2.6.
GambarB2.6BVisualisasiBTransformasiBdariBInputBSpaceBkeBFeatureBSpaceBdariB DataBTraining.
Setelah dilakukan transformasi dari input space ke feature space dilakukan.
Pencarian hyperplane/klasifier dapat dilakukan pada feature space. Proses
pencarian hyperplane/klasifier pada feature space sama dengan pencarian
(
)
w b x w x b wd = +
1 , ;
, (2-10)
hyperplane optimal diperoleh dari memaksimalkan margin, ρ, berdasarkan batasan
yang diberikan persamaan berikut ini.
l i i b x w
y1 , 1 + ≥ 1, = 1,... = (2-11)
untuk menghitung nilai margin (jarak) antara bidang pembatas diperoleh
menggunakan persamaan berikut ini,
(
)
(
i)
y x i y x x b w d x b w d b w i i i
i , ; min , ;
min ) , ( 1 1 = − = + = ρ
( )
( )
w b x w w b x w i y x i yxi i i i
+ + + = = − = , min , min 1 1 + + + = = −
= w x b w x b
w i i i i
y x i y x 1 1 1 , min , min 1 (2-12) w 2 = karena memaksimalkan w 2
sama dengan meminimumkan w2. Oleh karena itu hyperplane yang memisahkan data secara optimal dapat diminimalkan menjadi,
Φ(w) 2 2 1
w
= (2-13)
Dengan batasan persamaan (2-11). Agar lebih mudah untuk diselesaikan,
persamaan (2-13) diubah ke dalam persamaan Legrage (Lagrangian) yang
Φ(w,b,a)
∑
(
[
]
)
= − + − = 1 1 1 1 2 1 , 2 1 i b x w y a w (2-14)Dimana a merupakan Lagrange multipliers. Lagrangian harus diminimalkan
terhadap w,b dan memaksimalkan terhadap a ≥ 0. Primal Lagragian klasik
memungkinkan untuk diubah ke dual agar lebih mudah dalam penyelesaiannya,
persamaan (2-14) dapat diubah ke dual, dual problem dari persamaan (2-14) dapat
dilihat pada persamaan (2-15),
(
)
Φ
= w b a
a W
b w a
a ( ) max min , ,
max
, (2-15)
meminimalkan terhadap w dan b dari lagrangian, Φ, diberikan oleh,
∑
∑
= = = ⇒ = ∂ Φ ∂ = ⇒ = ∂ Φ ∂ l l i i i i l l i i i x y a w b y a b 0 0 0 (2-16)oleh karena itu dari persamaan (2-14), (2-15) dan (2-16), didapatkan persamaan
dual seperti yang terdapat pada persamaan dibawah,
∑
∑
∑
= = = + − = l i l k k j i j i l j j i aa W a aa y y x x a
1 1 1
, 2 1 max ) ( max (2-17)
dan oleh karena itu solusi dari masalah diatas diberikan persamaan,
∑
∑
∑
= = = − = l i l k k j i j i l j j ia aa y y x x a
a
1 1 1
∑
= = = ≥ l j j j i y a l l i o a 1 0 ,... , (2-19)dengan demikian, dapat diperoleh nilai ai yang nantinya digunakan untuk
menemukan w. terdapat nilai ai untuk setiap data pelatihan. Data pelatihan yang
memiliki nilai ai> 0 adalah support vector sedangkan sisanya memiliki nilai ai
=0. Dengan demikian fungsi keputusan yang dihasilkan hanya dipengaruhi oleh
support vector.
Proses penghitungan nilai ai dapat dilakukan menggunakan quadratic
programming problem dan di selesaikan dengan library yang banyak tersedia dalam analisa numeric. Implementasi dari proses penghitungan nilai alpha dapat
dilihat pada Gambar 2.7.
1 vlb = zero(n,1);
2 vub = C*ones(n,1);
3 x0 = zero(n,1);
4 neqcstr = nobias(ker);
5 if neqcstr
6 A = Y'; b = 0;
7 else
8 A = [];, b = [];
9 end
10 st = cputime;
11 [alpha lambda how] = qp(H, c, A, b, vlb, vub, x0, neqcstr);
GambarB2.7BTodeBImplementasiBdariBPerhitunganBa
harus ditambahkan fungsi kernel K(x,xi) yang melakukan pemetaan dari non-linear
ke feature space. Sehingga persamaan (2-18) berubah menjadi :
∑
∑
∑
= = = − = l i l k k j i j i l j j ia a a y y K x x a
a
1 1 1
* ,
2 1 min
arg (2-20)
tetapi constraint yang digunakan tetap seperti yang ada pada persamaan (2-18).
Sehingga implementasi penghitungan nilai margin dapat dilihat pada Gambar 2.8.
1 w2 = alpha'*H*alpha;
2 fprintf('Margin : %f\n',2/sqrt(w2));
3 svi = find (alpha > epsilon);
4 nsv = lenght (svi);
GambarB2.8BImplementasiBdariBPerhitunganBMarginBdanBSupport vector
Sehingga fungsi klasifikasi pada non linearly separable data dapat
dirumuskan menjadi :
( )
∑
(
)
= + = ns i d i i id a y K x x b
x f
1
, (2-21)
dimana xi adalah support vector, ns merupakan jumlah support vector dan xd
adalah data yang akan diklasifikasikan. Implementasi dari fungsi klasifikasi pada
non linerly separable data dapat dilihat pada Gambar 2.9.
1 n = size(trnX,1);
2 m = size(tstX,1);
3 H = zeros(m,n);
4 for i=1:m 5 for j=1:n
6 H(i,j)trnY(j)*svkernel(ker,tstX(i,:),trnX(j,:));
7 end 8 end
9 if (actfunc)
10 predictedY = softmargin(H*alpha + bias); 11 Else
12 predictedY = sign(H*alpha + bias);
13 End
GambarB2.10BTodeBImplementasiBdariBFungsiBTlasifikasiB(bagianB2) Dari perhitungan persamaan-persamaan diatas didapatkan suatu
klasifier/hyperplane pada feature space yang dapat dilihat pada Gambar 2.11.
GambarB2.11BVisualisasiBdariBFungsiBTlasifier/HyperplaneBpadaBFeature Space
2.4 MatlabB7.1
Matlab (Matrix Laboratory) merupakan salah satu bahasa pemrograman
yang dikembangkan oleh MathWorks. Matlab tidak hanya berfungsi sebagai
bahasa pemrograman, tetapi sekaligus sebagai alat visualisasi, yang berhubungan
langsung dengan ilmu Matematika. Oleh karena itu, matlab semakin banyak
digunakan oleh para programmer yang menghendaki kepraktisan dalam membuat
program.Penggunaan matlab, yaitu :
d. Analisis data, eksplorasi dan visualisasi
e. Grafik untuk sains dan teknik
f. Pengembangan aplikasi, termasuk pembuatan antarmuka grafis untuk
pengguna (Graphical User Interface)
Versi Matlab terbaru adalah Matlab 7. Namun, Matlab 7 hanya dapat
dijalankan pada Windows XP, sedangkan untuk Windows 98 atau Windows ME
digunakan Matlab 7 ke bawah.
Tampilan jendela matlab dapat dibagi menjadi beberapa bagian, yaitu :
1) Jendela Utama
Berikut adalah penjelasan fungsi ikon – ikon pada toolbar :
a. New , untuk membuka lembar kerja Matlab editor baru.
b. Open , untuk membuka file – file yang sudah tersimpan.
c. Cut , untuk menghapus suatu teks yang diketikkan supaya dapat disalin kembali.
d. Copy , untuk mengkopi suatu teks.
e. Paste , untuk menyalin kembali teks yang sudah dihapus atau dikopi.
f. Undo , untuk mengembalikan suatu perintah yang dilakukan
sebelumnya.
g. Redo , untuk mengembalikan suatu perintah yang dilakukan sesudahnya.
[image:31.595.117.514.310.739.2]i. Help , untuk mengakses Help yang berfungsi sebagai bantuan pula.
j. Current Directory ,
untuk memilih lembar kerja aktif yang digunakan selama Matlab
berlangsung.
Tampilan jendela utama adalah :
GambarB2.12BBBTampilanBJendelaBUtamaBMatlab 2) Workspace
Tampilan workspace dalam Matlab adalah :
Kungsi workspace adalah menginformasikan kepada pengguna tentang
variable-variabel yang dipakai selama penggunaan Matlab berlangsung.
3) Current Directory
Tampilan current directory dalam Matlab adalah :
BBBBBBBBBGambarB2.14BBBTampilanBCurrent Directory
Kungsi current directory adalah memilih direktori yang aktif dan akan
digunakan selama penggunaan Matlab berlangsung.
4) Command History
Tampilan command history dalam Matlab adalah :
Kungsi command history adalah menyimpan perintah – perintah yang pernah
ditulis pada command window.
5) Command Window
Tampilan command window dalam matlab adalah :
GambarB2.16BBBTampilanBCommand Window
Kungsi command window adalah menjalankan seluruh fungsi yang
disediakan Matlab. Command Window merupakan tempat pengguna
berinteraksi dengan Matlab.
6) Matlab Editor
Kungsi Matlab editor adalah membuat script program pada Matlab. Untuk
memunculkan Matlab editor, kita menggunakan perintah Kile – New –
M-Kile atau dengan mengetikkan >>edit pada command window.
7) Help
Tampilan help dalam Matlab :
Pada bab ini akan dibahas mengenai perancangan perangkat lunak yang
digunakan untuk menyelesaikan tugas akhir ini. Pembahasan perancangan
perangkat lunak akan diawali dengan penjelasan tentang Gambaran system deteksi
obyek pejalan kaki secara umum, dan kemudian akan dijelaskan juga mengenai
perancangan data. Selanjutnya akan dijelaskan mengenai proses-proses yang ada
dalam tugas akhir ini secara lebih mendetail, seperti: proses principal component analysis (PCA), klasifikasi menggunakan metode support vector machine (SVM, overlapping crop, multiscaling, dan pencocokan citra dengan template.
Perancangan system pada bagian ini meliputi dua bagian penting yaitu
perancangan data yang akan dipakai dalam sistem, dan algoritma yang digunakan
dalam system yang diGambarkan dengan diagram alir (flowchart).
3.1 Desain Secara Umum
Secara umum proses-proses yang ada pada sistem deteksi obyek pejalan
kaki menggunakan metode SVM dan PCA ini tidak jauh berbeda dengan
proses-proses yang ada pada sistem pengenalan obyek yang lain. Sistem diawali dengan
teradapat dua jenis data yaitu data yang merupakan pejalan kaki dan data yang
merupakan bukan pejalan kaki. Selanjutnya data template yang dihasilkan dari proses training disimpan ke dalam database. Tahap selanjutnya yang harus
dikerjakan dari sistem deteksi obyek ini adalah dengan melakukan testing
terhadap system yang telah di training sebelumnya. Testing dilakukan dengan menggunakan data testing. Gambaran proses dari sistem deteksi obyek yang akan dibuat dapat dilihat pada Gambar 3.1 dan Gambar 3.2.
MULAI
Data Training
Reduksi Dimensi Menggunakan PCA
Klasifikasi menggunakan SVM
Data Template
[image:37.595.183.437.295.674.2]SELESAI
MULAI
Data Testing
Reduksi Dimensi Menggunakan PCA
Klasifikasi Data Test menggunakan SVM
Prediksi Data Testing
[image:38.595.115.449.93.548.2]SELESAI Data Template
Gambar 3.2 Diagram Alir Model Sistem Secara Umum (Testing)
3.2 Perancangan Data
Perancangan data merupakan hal penting untuk diperhatikan karena
diperlukan data yang tepat agar perangkat lunak beroperasi dapat secara benar.
Data yang diperlukan dalam pengoperasian perangkat lunak yaitu data masukan
3.2.1 Data Masukan
Data masukan merupakan data yang dimasukkan oleh pengguna perangkat
lunak sebagai trigger system deteksi obyek menggunakan metode PCA dan SVM. Data ini berupa data training pedestrian128x64 piksel dan nonpedestrian128x64
piksel. Karena keterbatasan sistem yang dimiliki maka dalam pengerjaan tugas
akhir ini ukuran dari data masukan diperkecil menjadi pedestrian64x32 piksel dan
nonpedestrian64x32 piksel data dapat diunduh di situs MIT. Adapun contoh citra yang digunakan sebagai data masukan dapat dilihat pada Gambar 3.3 untuk
pedestrian sedangkan Gambar 3.4 untuk nonpedestrian.
[image:39.595.144.468.346.579.2]
Gambar 3.4 Nonpedestian64x32
Selain dataset pedestrian64x32 piksel dan nonpedestrian64x32 piksel terdapat juga data masukan yang dipergunakan untuk data testing. Data testing ini berukuran 128x128 piksel, data testing ini juga diunduh dari situs MIT. Tetapi
sebelum digunakan untuk proses testing, data ini harus dikecilkan ukurannya.
[image:40.595.114.510.325.708.2]Adapun contoh citra yang digunakan sebagai data testing dapat dilihat pada
3.2.2 Data Proses
Pada sub bab ini dijelaskan data proses yang digunakan dalam perangkat
lunak yang meliputi nama data, tipe data, dan keterangannya. Data proses
[image:41.595.107.519.281.666.2]disajikan dalam table 3.1.
Tabel 3.1 Data Proses
No Nama Data Tipe Data Keterangan
1. Data koordinat Double Koordinat dari citra yang mengandung pedestrian
2. Data koordinat mapping
Double Koordinat dari citra yang mengandung pedestrian yang telah di mapping ke citra asal.
3. A Double Alpha ini merupakan parameter output dari
lagrange multipliers yang digunakan untuk menentukan jumlah support vector
3. C Double C merupakan kovarians matriks
5. E Double E merupakan eigenvector dari kovarians matriks
6. Λ Double λmerupakan eigenvalue dari kovarians matriks
3.2.3 Data Keluaran
Data keluaran dari sistem ini adalah sebuah citra testing yang telah
ditandai bagian yang merupakan pedestrian. Ukuran data keluaran ini sama dengan ukuran data yang dimasukkan. Adapun contoh citra yang merupakan hasil
[image:42.595.181.443.283.538.2]keluaran dari system dapat dilihat pada Gambar 3.6.
Gambar 3.6 Data Output
3.3 Algoritma dan Diagram Alir
Pada bagian ini akan dijelaskan mengenai algoritma sistem melalui
diagram alir. Dengan menggunakan diagram alir, dapat diketahui dinamisasi data
3.3.1 Proses Reduksi Dimensi
Langkah pertama pada proses deteksi obyek pejalan kaki ini yaitu proses
reduksi dimensi data berbasis principal component analysis (PCA). Proses pada PCA ini terdiri dari beberapa proses. Proses-proses yang terdapat pada PCA yaitu
proses penghitungan rata-rata (mean), kovarians matriks, eigenvector, eigenvalue
dan matriks reduksi dimensi. Sebelum melakukan proses PCA harus dilakukan
perubahan data citra training input ke matriks. Citra masukkan untuk sejumlah m, yang memiliki ukuran masing-masing r x c. masing-masing citra Ii yang direpresentasikan dengan vektor Zn yang memiliki panjang rc.
Setelah proses pengubahan citra ke matriks selanjutnya matriks tersebut
diolah dengan PCA. Proses PCA yang pertama yaitu proses perhitungan mean
dari data. Nilai yang perlu dicari adalah µ. Proses perhitungan mean dari data ini menggunakan rumus (2-2). Hasil perhitungan mean ini selanjutnya digunakan
untuk mengurangi data dengan mean (rata). Pengurangan data dengan rata-ratanya ini dapat dihitung menggunakan rumus (2-3). Setelah itu proses
selanjutnya yaitu perhitungan kovarians matriks dari data. Kovarians matriks ini
dapat dihitung menggunakan rumus (2-4). Kovarians ini bertujuan untuk
mengukur hubungan antara dimensi yang satu dengan dimensi yang lain.
untuk mendapatkan principal component, karena principal component terbaik ini didapatkan dari eigenvector yang memiliki nilai eigenvalue terbesar.
Selanjutnya proses yang harus dilakukan yaitu penghitungan matriks
reduksi dimensi yang meruoakan hasil perkalian dari eigenvector yang merupakan
principal component dengan data awal yang telah dikurangi dengan mean atau rataan. Setelah proses penghitungan ruang reduksi ini dilakukan proyeksi data dari
data asal ke ruang reduksi. Hasil proyeksi ini akan digunakan untuk masukkan
pada proses selanjutnya. Diagram alir digunakan untuk masukan pada proses
selanjutnya. Digram alir proses reduksi dimensi dapat dilihat pada Gambar 3.7.
MULAI
Data Training Sejumlah m memiliki
ukuran r x c
Pengurangan data awal mean menggunakan rumus:
z n
Z s
Penghitungan mean dengan rumus: M n n Z M 1 1
Penghitungan matriks reduksi dimensi dengan rumus:
n z
z z
e p
Memproyeksikan citra input ke matriks Reduksi Dimensi
Data yang telah direduksi Dimensinya:
prjimage
SELESAI
Penghitungan Eigenvalue
dan Eigenvector
z z,e
Penghitungan matriks kovarian dengan rumus:
M n T n n
z Z Z
C
1
[image:44.595.155.491.352.683.2]3.3.2 Proses Klasifikasi
Setelah dilakukan proses reduksi dimensi proses yang harus dilakukan
selanjutnya adalah proses klasifikasi. Dalam tugas akhir ini menggunakan metode
support vector machine (SVM). Proses klasifikasi ini dibagi menjadi dua proses. Proses pertama adalah proses training dari dataset yang telah direduksi dimensinya dan proses kedua adalah proses testing data.
3.3.2.1Proses Training
Proses ini merupakan proses dimana harus dilakukan training dataset. Training dataset ini bertujuan untuk menemukan fungsi pemisah, margin, jumlah
MULAI
Input data training Prjimage dengan definisi
Yi
Mengubah iinput data training dengan mapping ke ruang multidimensional
(Fungsi Kernel Polynomial)
Menghitung jarak dari setiap elemen, Xi, ke kelas yang berbeda Yi ≠ Yj
Menentukan parameter dari optimal hyperplane pada multidimensi
Output: alpha, bias, jumlah support vector
SELESAI
nj i j
i x x x
x
[image:46.595.180.432.109.535.2]K , , 1
Gambar 3.8 Diagram Alir Training SVM
3.3.2.2Proses Testing
Pada sebelumnya yaitu proses testing di dapatkan nilai-nilai alpha, bias,
parameter-parameter yang harus diinputkan adalah proyeksi citra, kernel, alpha,
bias dan Y (menentukan suatu citra termasuk pejalan kaki atau bukan pejalan kaki). Sedangkan parameter yang dicari adalah parameter Y. jika suatu citra yang diprediksi menghasilkan keluaran satu maka citra tesebut merupakan pejalan kaki.
Sedangkan jika citra tersebut menghasilkan output minus satu maka citra tersebut
[image:47.595.182.436.291.620.2]tidak mengandung pejalan kaki. Diagram alir proses testing dapat dilihat pada
Gambar 3.9.
MULAI
Input data Testing, Prjimage, alpha, bias,
kernel
Mentransformasikan input data dengan mapping ke ruang multidimensional menggunakan support vector dan parameter kernel
Mengklasifikasi data testing
Hasil klasifikasi data testing termasuk kelas pejalan kaki atau bukan
pejalan kaki
SELESAI
Gambar 3.9 Diagram Alir Testing SVM
3.3.3 Proses Pengenalan Citra
Pada tahap-tahap sebelumnya telah dijelaskan mengenai proses reduksi
pengenalan citra. Sebelum citra dicocokkan dengan template atau database citra harus diolah agar memiliki ukuran yang sesuai dengan template. Dalam proses pengenalan citra ini tahap-tahap yang harus dilakukan yaitu overlapping crop dan
scaling. Proses ini bertujuan agar tidak terlalu banyak kehilangan informasi dari citra testing.
3.3.3.1Overlapping Crop Citra
Overlapping crop disini bertujuan untuk menyesuaikan ukuran citra testing
dengan citra template. Proses cropping ini dilakukan pada seluruh bagaian citra
input yang memiliki ukuran r x c dengan ukuran jendela-jendela h x w. jendela yang berukuran h x w akan bergeser pada setiap 4 piksel. Pergeseran 4 piksel ini bertujuan agar jendela-jendela tesebut mengurangi informasi yang terbuang dan
dari citra input. Proses overlapping crop ini dapat dilihat pula pada Gambar 3.10.
w
h r
[image:48.595.107.514.338.726.2]3.3.3.2Multiscaling Citra
Proses selanjutnya yaitu proses multiscaling citra. Pada proses sebelumnya, overlapping crop memungkinkan hasil crop mengandung citra pejalan kaki yang tidak sempurna. Misalnya citra pejalan kaki hanya bagian
pinggang ke atas sehingga ketika dicocokkan dengan template hasilnya akan
terdeteksi sebagai bukan pejalan kaki. Karena alasan diatas diperlukan proses
multiscaling dari ukuran citra sebenarnya. Proses multiscaling dilakukan pada beberapa ukuran yang telah ditentukan. Sehingga ketika pada ukuran r x c tidak ditemukan citra pejalan kaki memungkinkan ditemukan citra yang mengandung
[image:49.595.113.507.354.711.2]pejalan kaki pada ukuran r’ x c’. Proses multiscaling ini dapat dilihat pada Gambar 3.11.
Pada proses overlapping crop dan multiscaling ini sekalligus dilakukan
pengecekan apakah citra hasil overlapping dan cropping ini termasuk pejalan kaki
atau bukan pejalan kaki. Ketika melakukan proses cropping pada Gambar yang
sesuai dengan ukuran Gambar template dilakukan proses testing menggunakan
SVM yang telah dijelaskan pada sub bab sebelumnya yaitu sub bab 3.3.2.2. untuk
mengetahui diagram alir gabungan proses dari overlapping, multiscaling dan
testing menggunakan SVM dapat dilihat pada Gambar 3.12.
MULAI
Citra testing ukuran r x c
Multiscaling r’ xc’
Pencocokan citra dengan template: testing SVM Overlapping crop jendela w x h
Output testing SVM Y, dan koordinat citra
3.3.4 Proses Mengurangi Kesalahan Deteksi
Proses selanjutnya yaitu proses mengurangi kesalahan deteksi, pada proses
sebelumnya menghasilkan keluaran berupa koordinat-koordinat citra yang
mengandung pejalan kaki. Hasil deteksi ini memerlukan pengurangan kesalahan
deteksi karena citra pejalan kaki memungkinkan dideteksi beberapa kali. Pada
tugas akhir ini proses mengurangi kesalahan deteksi menggunakan metode
heuristik.
3.3.4.1Metode Heuristik
Pada sub bab ini akan dijelaskan mengenai bagaimana proses mereduksi
kesalahan deteksi menggunakan metode heuristik. Langkah-langkah yang harus
dilakukan pada metode ini yaitu, mengambil titik-titik yang memiliki jarak
terdekat antara satu titik dengan titik yang lain. Sehingga titik-titik yang tersisa
adalah titik yang merupakan pejalan kaki saja. Alasan mengapa dipilih
titik-titik yang memiliki jarak terdekat karena beberapa titik-titik hasil deteksi yang benar
akan memiliki kesamaan dengan titik yang lain. Perhitungan jarak antara titik-titik
menggunakan Euclidean distance.
Hasil titik-titik putih merupakan deteksi secara keseluruhan menggunakan
SVM dan PCA, masih terdapat kesalahan deteksi. Tetapi dapat diketahui
tittik-titik hasil deteksi yang benar terpusat dan memiliki jarak yang terkecil. Hasil-hasil
deteksi yang salah dapat dieliminasi dengan cara mengambil titik-titik yang
Setelah hasil deteksi tersebut dieliminasi dapat diketahui titik-titik tersebut
merupakan hasil yang benar. Diagram alir dari metode heuristik ini dapat dilihat
pada Gambar 3.13
MULAI
Koordinat hasil deteksi
Mengambil titik-titik yang memiliki jarak terdekat
Pencocokan citra dengan template: testing SVM Menghitung jarak antara tiap titik
Koordinat hasil deteksi yang benar
Setelah melalui proses perancangan, dilakukan pembuatan sistem.
Tahap-tahap implementasi mencakup lingkungan implementasi dan program dalam
script matlab yang akan dijelaskan dalam sub bab berikut.
4.1 Lingkungan Implementasi
Spesifikasi perangkat keras dan perangkat lunak yang digunakan dalam
deteksi obyek pejalan kaki menggunakan metode SVM dan PCA ini ditampilkan
pada tabel 4.1.
Tabel 5.1 Lingkungan Implementasi Sistem
Perangkat keras Prosesor : Intel® CoreTM 2 Duo Processor T6600 (2.2 GHz)
Memori : 4 GB
Perangkat lunak Sistem Operasi : Microsoft Windows XP Professional SP3
Perangkat Pengembang : MATLAB 7.1
4.2 Implementasi pada Program Utama
Pada program utama ini terdiri dari beberapa proses yaitu mengubah citra
memanggil beberapa fungsi lain yaitu createdatabase, pca, svc dan
recognition. createdatabase Fungsi digunakan untuk mengubah citra
masukan menjadi matriks. Input pada proses ini terdiri dari 3 jenis data yaitu citra
training pejalan kaki, citra training bukan pejalan kaki, dan citra testing. Data
training pedestrian terletak pada folder pedestrian dan data training bukan
pedestrian terletak pada folder nonpedestrian. Listing kode program utama dapat
dilihat pada Gambar 4.1 sampai 4.3.
1 %mengubah citra training menjadi matriks dan menghitung
matriks reduksi dimensi citra training
2 pedestrian = createdatabase ('pedestrian\');
3 [mp,std_devp,Cp,eigenVectorp,eigenValuep,reduceSpacep] =
pca(pedestrian);
4 nonpedestrian = createdatabase ('nonpedestrian\');
5 [mn,std_devn,Cn,eigenVectorn,eigenValuen,reduceSpacen] =
pca(nonpedestrian);
6 %menggabungkan citra training pedestrian dengan citra
nonpedestrian
7 datagab = [pedestrian nonpedestrian];
8 %menggabungkan matriks reduksi dimensi pedestrian dengan
nonpedestrian
9 reduceSpace = [reduceSpacep reduceSpacen];
10 for i = 1 : size(reduceSpace,2)
11 temp = reduceSpace*datagab(:,i);
12 ProjectedImages = [];
13 ProjectedImages = [ProjectedImages temp];
14 if(i <= size(eigenVectorp,2))
Y = [Y 1];
15 else
16 Y = [Y -1];
17 end
18 end
19 fprintf('PCA Completed');
20 [nsv, alpha, bias] =
svc(ProjectedImages(1:end,:)',Y(1,:)','poly',Inf);
21 img = im2double(imread('...\data_testing\pedestrian1.jpg'));
22 [hasilawal,I,imageAsal,predictedY] =
recognition(img,ProjectedImages,Y,alpha,bias,reduceSpace);
23 hasilmaping = [];
24 for i =1 : size(hasilawal,1) 25 hasilmapping =
[hasilmapping;hasilawal(i,1)/hasilawal(i,5),hasilawal(i,2)/ha silawal(i,5),hasilawal(1,3)/hasilawal(i,5),hasilawal(i,4)/has ilawal(1,5),hasilawal(1,5)];
26 end
27 X1 = [floor(hasilmapping(:,1))
28 floor(hasilmapping(:,2))
29 floor(hasilmapping(:,3))
30 floor(hasilmapping(:,4))];
31 X1 = sortrows (X1);
32 X2 = sortrows (hasilmapping);
33 alld = [];
34 X = 0;
35 Y = 0;
36 tampung = [];
37 x = 1 + min(pdist ([X1(:,1) X1(:,2)]));
38 %mengeliminasi deteksi yang salah dan menggabungkan deteksi
39 for i = 1:size (X1,1)
40 for j = i+1:size (X1,1)
41 d = sqrt(power(X1(j,2)-X1(i,2),2)+power(X1(j,1)-X1(i,1),2));
42 alld = [alld d]
43 if(d <= x)
44 tampung = [tampung;X1(i,1) X1(i,2) X2(i,3) X2(i,4)];
45 tampung = [tampung;X1(j,1) X1(j,2) X2(i,3) X3(i,4)];
46 end
47 end
48 end
49 tampung = sortrows(tampung);
50 XX = 0;
51 YY = 0;
52 tampung2 = [];
53 tampung4 = [];
54 for i = 1 : size(tampung,1)
55 if(tampung(i,1) == XX && tampung (i,2) == YY &&
tampung(i,1) ~= 0 && tampung(i,2) ~=0)
56 tampung2 = [tampung2;tampung(i,1) tampung(i,2)
tampung(i,3) tampung(i,4)];
57 i = i+1;
58 Else
59 XX = tampung (i,1);
60 YY = tampung (i,2);
61 tampung4 = [tampung4;tampung(i,1) tampung(i,2)
tampung(i,3) tampung(i,4)];
62 End
63 End
64 X = 0;
65 Y = 0;
66 tampung3 = [];
67 for i = 1 : size(tampung2,1) 68 if(tampung2(i,1) == X) 69 i = i+1;
70 Else
71 X = tampung2(i,1);
72 [r,c,v] = find(X == tampung2(:,1));
73 n = numel(find(X == tampung2(:,1)));
74 tampung3 = [tampung3;X sum(tampung2(r,2))/n
sum(tampung2(r,3))/n sum(tampung2(r,4))/n];
75 End
76 End
77 for i = 1 : size(tampung3,1) 78 c =
[tampung3(i,1),tampung3(i,2),tampung3(i,3),tampung3(i,4)];
79 retangle('Potition', c, 'EdgeColor', [1,0,0],
'linewidth',1);
80 End
Gambar 4.3 Kode Implementasi Program Utama.m (bagian 3)
sub bab 3.3.1. Selanjutnya pada baris 20 memanggil fungsi SVC yang merupakan
implementasi training menggunakan SVM pada sub bab 3.3.2.1 dilanjutkan
dengan baris 22 yaitu fungsi recognition yang merupakan implementasi dari
sub bab 3.3.3. Selain memanggil fungsi-fungsi yang lain, di dalam fungsi utama
ini juga terdapat implementasi proses mengurangi kesalahan deteksi yang
merupakan implementasi dari sub bab 3.3.4. Implementasi proses mengurangi
kesalahan deteksi terdapat pada baris 38 – 80. Penjelasan mengenai fungsi-fungsi
yang dipanggil dalam fungsi utama diatas dapat dijelaskan melaui sub bab berikut.
4.3 Implementasi Pengubahan Citra ke Matriks
Pada sub bab ini akan dibahas mengenai implementasi dari fungsi
createdatabase yang merupakan fungsi untuk mengubah sejumlah m citra
training masukkan menjadi matriks. Fungsi ini terdapat pada
createpedestrian.m. listing kode implementasi pengubahan citra matriks
dapat dilihat pada Gambar 4.4 – 4.5.
1 function data = createdatabase(X)
2 fileFolder = fullfile('',X);
3 dirOutput = dir(fullfile(fileFolder,'*.pgm'))
4 fileNames = {dirOutput.name}';
5 filenum = numel(fileNames);
6 %mengubah image input dari 2 dimensi menjadi matriks
7 graymatrix = [];
8 for i = 1 : filenum
[image:57.595.111.514.319.696.2]9 str = strcat(fileFolder,fileNames{i});
11 [irow icol] = size(img);
12 temping = reshape(img',irow*icol,1);
13 graymatrix = [graymatrix temping];
14 end
15 %mengubah uint8 ke double
16 data = [];
17 for i = 1 : filenum
18 temp = double(graymatrix(:,i));
19 data = [data temp];
20 end
Gambar 4.5 Kode Implementasi Createdatabase.m (bagian 2)
Fungsi utama di atas pertama kali membaca folder data training yang
ditunjukkan pada baris 2. Setelah itu pada baris 3 menunjukkan bagaimana
mengambil seluruh data yang berekstensi *.pgm pada sebuah folder. *.pgm
merupakan ekstensi yang digunakan untuk penyimpanan Gambar. Pada baris ke
12 menunjukkan bagaimana mengubah matriks r x c menjadi matriks kolom yang
memiliki panjang rc. Selanjutnya pada baris ke 17-20 menunjukkan pengubahan
dari data matriks uint8 menjadi tipe data menjadi tipe data double.
4.4 Implementasi Proses Reduksi
Proses reduksi dimensi berbasis principal component analysis (PCA)
terdiri dari berbagai proses. Proses-proses tersebut diimplementasikan pada fungsi
pca. Proses ini merupakan tahapan untuk menemukan matrik reduksi dimensi.
Pada proses ini data yang digunakan sebagai masukkan adalah data pejalan kaki
reducespace.
Proses awal dari tahapan ini adalah perhitungan mean dengan
menggunakan persamaan (2-2) yang dapat anda lihat pada listing kode baris 3.
setelah perhitungan mean, proses selanjutnya yaitu proses perhitungan data awal
yang dikurangi dengan mean dari matriks sesuai yang ada pada persamaan (2-3).
Setelah mengimplementasikan kedua proses tersebut, proses selanjutnya yaitu
mengimplementasikan pencarian kovarians yang dapat dilihat pada listing kode
baris 12. tahapan selanjutnya yaitu perhitungan nilai eigenvalue dan eigenvector.
Penghitungan nilai eigenvalue dan eigenvector menggunakan fungsi yang telah
disediakan oleh matlab yaitu eig. Listing kode perhitungan nilai eigenvalue dan
eigenvector serta pengurutannya dapat dilihat pada listing kode baris 14-25.
setelah penghitungan dan pemilihan eigenvalue dan eigenvector proses
selanjutnya yaitu penghitungan ruang reduksi atau reduce space. Listing kode
keseluruhan dari implementasi proses reduksi atau reduce space. Listing kode
keseluruhan dari implementasi proses reduksi dimensi menggunakan principal
component analysis dapat dilihat pada Gambar 4.6.
1 function[m, std_dev, C, eigenVector, eigenValue, reduceSpace]
= pca(data,n)
2 %1.menghitung mean
3 m = mean(data,2);
4 train_num = size(data,2);
5 %2.menghitung standart deviasi
6 std_dev = [];
8 temp = double(data(:,i))-m;
9 std_dev = [std_dev temp];
10 end
11 %3.menghitung covariance matriks
12 C = std_dev*std_dev';
13 %4.menghitung eigenvalue dan eigenvector
14 [V D] = eig(C);
15 eigenVector = [];
16 eigenValue = [];
17 for i = 1 : size(V,2) 18 if(D(i,i) > 1e-4) 19
eigenVector = [eigenVector V(:,i)];
20 eigenValue = [eigenValue D(i,i)];
21 end
22 end
23 %5. Mengurutkan eigenValue dan eigenVector
24 [B index] = sort(eigenValue,'descend');
25 eigenValue = eigenValue(index);
26 eigenVector = eigenVector (:,index);
27
28 %6 Menghitung matriks reduksi dimensi
29 reduceSpace = [std_dev'*eigenVector]';
[image:60.595.110.511.82.542.2]30
Gambar 4.7 Kode Implementasi pca.m (bagian 2)
4.5 Implementasi Proses Klasifikasi
Pada langkah ini akan dilakukan implementasi proses klasifikasi
menggunakan support vector machine (SVM). Proses klasifikasi ini dibagi
menjadi dua bua proses yaitu proses pertama training SVM dan proses testing.
Proses training ini dilakukan dengan pemanggilan fungsi svc sedangkan proses
Implementasi pada tahap training menggunakan fungsi svc. Di dalam
proses training svm ini juga memanggil fungsi lain yaitu fungsi yaitu fungsi
svkernel yang merupakan implementasi dari sub bab 3.3.2.1 di dalam proses
training ini terdapat mengubah dari input space ke feature space yang memiliki
dimensi lebih tinggi sehingga dapat dipisahkan secara linier. Fungsi kernel yang
digunakan yaitu polynomial. Implementasi dari metode kernel ini dapat dilihat
pada listing kode baris 8-14. Hyperplane yang optimal dalam SVM dapat
ditemukan dengan merumuskannya ke dalam QP problem yang diselesaikan
dengan library yang banyak tersedia dalam analisa numeric. QP problem ini dapat
dilihat pada baris ke 30. Output dari proses QP problem ini berupa nilai alpha
yang dapat juga digunakan untuk menentukan apakah suatu data terletak pada
hyperplane atau tidak. Proses penghitungan support vector dapat dilihat pada baris
38-39. selain nilai alpha dan jumlah support vector di dalam fungsi svc juga
dilakukan perhitungan nilai bias yang juga digunakan untuk proses selanjutnya.
Perhitungan nilai bias terdapat pada listing kode baris ke 52-57. listing kode dari
proses training yang diimplementasikan pada svc.m dapat dilihat pada Gambar
5.7 sampai 5.9.
1 function [H, c, nsv, alpha, b0] = svc(X,Y,ker,C)
2 n = size (X,1);
3 %untuk mengeset toleransi pada proses deteksi
4 epsilon = svtol(C);
5
%mengubah inputspace menjadi featurespace dengan menggunakan metode kernel
6
if (nargin <2 | nargin >4) % check correct number of arguments
7 help svc
8 else
9 fprintf ('Support Vector Classification \n')
10 fprintf ('_______________________________\n')
11 n = size (X ,1);
12 if (nargin<4) C= Inf ;, end
13 if (nargin<3) ker ='linear ';, end
14 % Construct the Kernel matrix
15 fprintf ('Constructing ...\ n');
16 H = zeros(n,n);
17 for i=1:n
18 for j=1:n
19 H(i,j)=Y(i)*Y(j)*svkernel(ker,X(i,:),X(j,:));
20 end
21 end
22 c = -ones (n,1);
23 H = H+1e-10*eye(size(H));
24 %setting parameter untuk optimasi
25 vlb = zeros(n,1);
26 vub = C'*ones(n,1);
27 x0 = zeros(n,1);
28 neqcstr = nobias(ker);
29 if neqcstr
30 A = Y';, b = 0;
31 else
32 A = [];, b = [];
33 end
34 %menyelesaikan problem optimasi
35 fprintf('Optimising ... \n');
36 st = cputime;
37 [alpha lambda how] = qp(H, c, A, b, vlb, vub, x0, neqcstr);
38 fprintf ('Execution time: %4.1f second\n',cputime - st);
39 fprintf ('Status : %s\n',how);
40 w2 = alpha'*H*alpha;
[image:62.595.111.517.95.693.2]41 fprintf('|w0|^2 : %f\n',w2);
42 fprintf('Mar