DETEKSI OBYEK PEJALAN KAKI DENGAN MENGGUNAKAN METODE PRINCIPAL COMPONENT ANALYSIS DAN SUPPORT VECTOR MACHINE.
ANALYSIS DAN SUPPORT VECTOR MACHINE
SKRIPSI
Diajukan Oleh :
FIRMAN ISNANDI S.
NPM. 0634010273
JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”
JAWA TIMUR 2011
(2)
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
Dosen Wali penulis yang dengan sabar telah meluangkan banyak waktu, pikiran dan tenaga di antara kesibukan beban-beban kegiatan akademik
(3)
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
(4)
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
BAB III ANALISA PERANCANGAN SISTEM 3.1 Desain Secara Umum ...26
(5)
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
BAB V EVALUASI DAN UJI COBA 5.1 Lingkungan Implementasi 5.2 Skenario Uji Coba 5.2.1 Uji Coba Terhadap Penambahan Jumlah Data Training .59 5.2.2 Uji Coba Terhadap Penambahan Nilai Pangkat Kernel Polynomial ...65
(6)
(7)
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
(8)
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
(9)
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
(10)
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%.
Kata kunci: Principal Component Analysis ,Support Vector Machine, Deteksi Obyek, Pejalan Kaki
(11)
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
(12)
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 melebihi dari batas toleransi, maka hasil deteksi tidak dapat dipercaya.
(13)
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 yang lebih baik terhadap jaringan syaraf tiruan, dan pengaruh berbagai
(14)
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 perancangan perangkat lunak yang meliputi penentuan data yang akan
(15)
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, manfaat, metodologi penulisan, dan sistematika penulisan.
(16)
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 untuk pengembangan selanjutnya.
(17)
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 sinar X, hasil CT scan, dll. Citra analog tersimpan dalam pita kaset.
(18)
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 menggunakan penyimpanan 8 bit = 1 byte, yang berarti setiap warna
(19)
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:
= d n z z z z z ... 3 2 1 (2-1)
(20)
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 (eigenvector) dan nilai eigen (eigenvalue). Representasi dari vektor eigen dan nilai eigen adalah sebagai berikut:
(21)
= 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
GambarB2.1BTodeBimplementasiBpencarianBnilaiBeigenBdanBvektorBeigenBsertaB pengurutanBnilaiBeigenB(bagianB1)
(22)
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. Supervised learning adalah metode yang memerlukan training (melatih) dan
(23)
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 harus melakukan modifikasi pada beberapa fungsi yang ada.
(24)
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 dilihat pada Gambar 2.5
(25)
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 hyperplane pada data yang dipisahkan secara linier pada input space. Perhitungn jarak d(w,b;x) titik x dari hyperplane (w,b) adalah,
(26)
(
)
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 ditunjukkan pada persamaan berikut ini,
(27)
Φ(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
* , 2 1 min arg (2-18) dengan batasan,
(28)
∑
= = = ≥ 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
(29)
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)
(30)
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 :
(31)
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.
h. Simulink , untuk mengakses Simulink Library Browser yang berfungsi sebagai bantuan.
(32)
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 :
(33)
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 :
(34)
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
(35)
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 :
(36)
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 proses pembentukan data template, dalam pembentukan data template ini
(37)
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
SELESAI
(38)
MULAI
Data Testing
Reduksi Dimensi Menggunakan PCA
Klasifikasi Data Test menggunakan SVM
Prediksi Data Testing
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 (input) yang didapatkan dari pengguna, data proses yang dibutuhkan dan dihasilkan selama proses eksekusi perangkat lunak, dan data keluaran (output)
(39)
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.
(40)
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. Adapun contoh citra yang digunakan sebagai data testing dapat dilihat pada Gambar 3.5
(41)
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 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
(42)
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 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 yang diolah dan dihasilkan oleh suatu proses, dengan ini maka data mulai awal
(43)
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.
Setelah melakukan proses-proses sebelumnya didapatkan nilai µ dan Cnxn. Proses selanjutnya yaitu perhitungan nilai eigenvalue dan eigenvector. Setelah didapat eigenvalue dan eigenvector, dilakukan pengurutan eigenvalue dari nilai terbesar ke nilai terkecil atau descending. Pengurutan eigenvalue ini bertujuan
(44)
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
(45)
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
support vector, Lagrange Multiplier (Lagrangian) dan bias. Parameter-parameter yang dicari adalah a,b, dan nsv. Sedangkan parameter yang harus diinputkan adalah proyeksi citra Y (menentukan suatu citra termasuk pejalan kaki atau bukan pejalan kaki), kernel, dan parameter kernel. Parameter a disini digunakan untuk menentukan jumlah dari support vector. Support vector merupakan suatu data yang terletak pada hyperplane, untuk menentukan support vector dapat dapat dilihat dari nilai alpha yang melebihi nilai toleransi. Selain nilai a dalam proses ini juga dicari nilai margin dan bias (b). nilai margin ini merupakan adalah jarak antara hyperplane tersebut dengan pattern terdekat dari masing-masing class. Diagram alir proses training dapat dilihat pada Gambar 3.8.
(46)
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
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, dan jumlah support. Proses selanjutnya yaitu proses prediksi apakah suatu citra
(47)
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 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 dimensi dan klasifikasi. Tahap yang akan dijelaskan selanjutnya yaitu tahap
(48)
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
(49)
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 pejalan kaki pada ukuran r’ x c’. Proses multiscaling ini dapat dilihat pada Gambar 3.11.
(50)
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
(51)
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 memiliki jarak yang dekat saja.
(52)
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
(53)
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 masukan menjadi matriks, proses reduksi dimensi menggunakan PCA, training
(54)
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');
(55)
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;
(56)
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)
(57)
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
9 str = strcat(fileFolder,fileNames{i});
(58)
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 maupun bukan pejalan kaki yang digunakan sebagai data training. Sedangkan data
(59)
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 = [];
(60)
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]'; 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 testing dengan memanggil svcoutput.
(61)
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);
(62)
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;
41 fprintf('|w0|^2 : %f\n',w2);
(63)
42 fprintf('Margin : %f\n',2/sqrt(w2));
43 fprintf('Sum alpha : %f\n',sum(alpha));
44 %menghitung jumlah support vector
45 epsilon = svtol(alpha);
46 svi = find (alpha > epsilon);
47 nsv = length (svi);
48 fprintf('Support Vectors : %d(%3.1f%%)\n',nsv,100*nsv/n);
49 %implicit bias, b0
50 b0 = 0;
51 %explicit bias, b0
52 if nobias(ker) ~=0
53 svii = find(alpha > epsilon & alpha < (C - epsilon));
54 if lenght(svii) > 0
55
b0 = (1/length(svii))*sum(Y(svii) - H(svii,svi)*alpha(svi).*Y(svii));
56 else
57
fprintf('No support vectors on margin - cannot compute bias.\n');
58 end
59 end
60 end
Gambar 4.10 Kode Implementasi Proses Training svc.m (bagian 3)
4.5.2 Implementasi Proses Testing SVM
Setelah dilakukan implementasi proses training, tahap selanjutnya yaitu implementasi proses testing SVM. Pada tahap ini nilai-nilai yang digunakan sebagai masukkan merupakan nilai dari keluaran dari proses sebelumnya. Nilai-nilai inputnya meliputi trnX, trnY, tstX, ker, alpha dan bias. trnX merupakan sekumpulan data yang digunakan untuk training. Sedangkan trnY merupakan data yang terdiri dari 1 dan -1 yang menandakan jika 1 merupakan data training pejalan kaki sedangkan -1 merupakan data training yang bukan pejalan kaki. tstX merupakan input data yang akan diprediksi apakah data tersebut merupakan
(64)
menandakan parameter kernel apa yang digunakan. Alpha merupakan nilai lagrange multipliers dan bias yang dihasilkan dari proses training SVM. Listing kode dari implementasi proses testing SVM terdapat pada Gambar 4.11.
1 Function[predictedY,predictedX]=svcoutput(trnX,trnY,tstX,ker
,alpha,bias,actfunc)
2 If (nargin == 6)
3 actfunc = 0;
4 End
5 n = size(trnX,1);
6 m = size(tstX,1);
7 H = zeros(m,n);
8 for i=1:m 9 for j=1:n
10 H(i,j)trnY(j)*svkernel(ker,tstX(i,:),trnX(j,:));
11 end
12 end
13 if (actfunc)
14 predictedY = softmargin(H*alpha + bias);
15 else
16 predictedY = sign(H*alpha + bias); 17 predictedX = H*alpha + bias;
18 end
19 end
Gambar 4.11 Kode Implementasi Proses Testing SVM
Selain kedua proses yaitu proses training dan proses testing terdapat juga fungsi svkernel, di dalam fungsi kernel ini kernel yang digunakan adalah kenel polynomial. Implementasi dari kernel polynomial dapat dilihat dari listing kode baris ke 10-11. listing kode baris svkernel dapat dilihat pada Gambar 4.12
(65)
1 function k = svkernel(ker,u,v)
2 if (nargin < 1) % check correct number of arguments 3 help svkernel
4 else
5 % global p1 p2;
6 p1=2;
7 switch lower(ker)
8 case 'linear'
9 k = u*v'; 10 case 'poly'
11 k = (u*v' + 1)^p1;
12 end
13 end
14
Gambar 4.12 Kode Implementasi Kernel SVM
4.6 Implementasi Proses Pengenalan Citra
Pada proses implementasi pengenalan citra ini merupakan implementasi dari sub bab 3.3.3. Implementasi sub bab tersebut terdapat dalam fungsi recognition. Di dalam fungsi recognition ini juga memanggil fungsi lain yaitu svcoutput. Pada fungsi ini sekaligus dilakukan proses testing dari SVM yang dijelaskan pada sub bab 3.3.2.2 dan di Implementasikan pada sub bab 4.5.2.
Input pada proses recognition ini terdiri dari 6 jenis yaitu data image yang merupakan citra asal, projectedimages yang merupakan matiks data training yang telah dilakukan proses reduksi dimensi, Y merupakan nilai yang menentukan data training tersebut masuk ke data pejalan kaki atau bukan pejalan kaki, alpha dan bias merupakan parameter yang digunakan sebagai input svcoutput, reduceSpace yang meruapakan matriks untuk mereduksi dimensi dari citra testing.
(66)
recognition(image,ProjectedImages,Y,alpha,b0,reduceSpace,m);
2 clear dt; 3 dr = 4; 4 dc = 4; 5 ccrop = 32; 6 rcrop = 64; 8 I = image;
9 imageAsal = rgb2gray(I); 10 r = size (I,1);
11 c = size (I,2); 12 urutan = 1; 13 urutan2 = 1; 14 koordinat = []; 15 predictedY = [];
16 for i = 0.5 : 0.2 : 1.3 17 str = int2str(urutan); 18 str = strcat('I',str); 19 str = imresize(I,i); 20 r = size(str,1); 21 c = size(str,2); 22 for j = 1 : dr : r 23 tepiAtas = j;
24 tepiBawah = j+rcrop-1; 25 for k = 1 : dc : c 26 tepiKiri = k;
27 tepiKanan = k + ccrop-1;
28 if tepiAtas >= 1 && tepiKiri >= 1 && tepiBawah <= r && tepiKanan <= c
29 hasilCrop = str(tepiAtas : tepiBawah, tepiKiri : tepiKanan);
30 [irow icol] = size(hasilCrop);
31 temp = reshape(hasilCrop',irow*icol,1); 32 tempImage = double(temp);
33 tempImage = reduceSpace'*double(temp); 34 tempY =
svcoutput(projectImages(1:end,:)',Y(1,:)',tempImage','poly',a lpha,b0,0)
35 predictedY = [predictedY;tempY]; 36 if(tempY == 1)
37 namaFile = strcat(int2str(urutan2),'.pgm');
(67)
39 [koordinat;tepiKiri,tepiAtas,tepiKanan-tepiKiri,tepiBawah - tepiAtas,i,urutan2];
40 End
41 urutan2 = urutan2 + 1; 42 end
43 End
44 End
46 urutan = urutan + 1;
47 End
48 I = str;
Gambar 4.14 Kode Implementasi Proses Pengenalan Citra (bagian 2)
Pada listing kode baris ke 19 merupakan implementasi dari proses multiscaling citra. Setelah dilakukan multiscaling citra dilakukan proses overlapping crop pada citra hasil scaling yang baru. Proses overlapping crop citra ini di implementasikan pada baris 22-44. pada proses overlapping citra ini sekaligus dilakukan pencocokan citra dengan template yang telah di training pada sub bab 3.3.2.2 yang merupakan proses testing SVM. Listing kode baris ke 39. dalam proses ini juga dilakukan penyimpanan koordinat dan ukuran scaling dari hasil cropping yang merupakan citra yang mengandung pejalan kaki. Proses penyimpanan koordinat tersebut dapat dilihat pada listing kode 36-40.
(68)
EVALUASI DAN UJI COBA
Pada bab ini akan djelaskan mengenai rangkaian ujicoba dan evaluasi yang dilakukan. Pembahasan meliputi lingkungan uji coba, skenario uji coba, hasil uji coba, dan evaluasi.
5.1 Lingkungan Implementasi
Lingkungan ujicoba merupakan komputer tempat uji coba sistem. Berikut adalah lingkungan uji coba yang digunakan pada tugas akhir ini.
Tabel 5.1 Lingkungan Uji Coba
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
5.2 Skenario Uji Coba
Pada bagian ini dijelaskan mengenai skenario uji coba yang telah dilakukan. Terdapat dua skenario, pertama adalah penambahan jumlah data training pejalan kaki dan bukan pejalan kaki, sedangkan yang kedua adalah
(69)
128 piksel dan pedestrian2.jpg berukuran 128 piksel x 128 piksel. Kedua data testing tersebut dapat dilihat pada Gambar 5.1.
Gambar 5.1 Data Testing pedestrian1.jpg dan pedestrian2.jpg
5.2.1 Uji Coba Terhadap Penambahan Jumlah Data Training
Pada skenario pertama ini dilakukan penambahan jumlah data training baik data traning pejalan kaki maupun data training bukan pejalan kaki. Kemudian dilakukan analisis pengaruhnya terhadap tingkat akurasi dalam uji coba terhadap
suatu data testing pedestrian1.jpg yang berukuran 128 piksel x 128 piksel dan
pedestrian2.jpg berukuran 128 piksel x 128 piksel. Spesifikasi data yang digunakan pada skenario ini dapat dilihat pada Tabel 5.2.
Tabel 5.2 Spesifikasi Data Pada Skenario Satu Jumlah Pejalan
Kaki
Jumlah bukan Pejalan Kaki
Ukuran Citra
Data Training 100, 225, 400, 600 200, 450, 200,
300
64 x 32 piksel
Data testing :
pedestrian1.jpg dan
pedestrian 2.jpg
(70)
Dalam skenario satu ini kernel yang digunakan merupakan kernel polynomial, nilai pangkat kernel polynomial adalah dua. Hasil keluaran uji coba terhadap penambahan jumlah data training pejalan kaki dan data training bukan
pejalan kaki dapat dilihat pada Tabel 5.3. untuk data testing pedestrian1.jpg dan
Tabel 5.4 untuk data testing pedestrian2.jpg. Spesifikasi yang digunakan pada uji
coba ini sesuai dengan pada Tabel 5.2 dan data testing yang digunakan tidak sama dengan data training.
Tabel 5.3 Tingkat Akurasi Data Testing pedestrian1.jpg Terhadap Penambahan Jumlah Data Training Pejalan Kaki Dan Bukan Pejalan Kaki
Jumlah data
training pejalan kaki
Jumlah data training bukan pejalan kaki
Tingkat akurasi (%)
1. 100 200 50,95
2. 225 450 49,20
3. 400 200 60,40
4. 600 300 72,60
Tabel 5.4 Tingkat Akurasi Data Testing pedestrian2.jpg Terhadap Penambahan Jumlah Data Training Pejalan Kaki Dan Bukan Pejalan Kaki
Jumlah data
training pejalan kaki
Jumlah data training bukan pejalan kaki
Tingkat akurasi (%)
1. 100 200 62,95
2. 225 450 59,10
3. 400 200 72,53
4. 600 300 78,49
Dari hasil yang terlihat pada Tabel 5.3 dan Tabel 5.4 tersebut dapat dianalisis bahwa penambahan jumlah data training pejalan kaki maupun bukan
(71)
pada Tabel 5.5 - 5.8.
Tabel 5.5 Hasil Uji Coba Terhadap Data Testing
pedestrian1.jpg dan pedestrian2.jpg (bagian 1)
Jumlah Data Training Pejalan Kaki
Jumlah Data Training
Bukan Pejalan Kaki
Hasil Uji Coba
(72)
pedestrian1.jpg dan pedestrian2.jpg (bagian 2)
Jumlah Data Training Pejalan Kaki
Jumlah Data Training
Bukan Pejalan Kaki
Hasil Uji Coba
(73)
pedestrian1.jpg dan pedestrian2.jpg (bagian 3)
Jumlah Data Training Pejalan Kaki
Jumlah Data Training
Bukan Pejalan Kaki
Hasil Uji Coba
(74)
pedestrian1.jpg dan pedestrian2.jpg (bagian 4)
Jumlah Data Training Pejalan Kaki
Jumlah Data Training Bukan Pejalan
Kaki
Hasil Uji Coba
(1)
68
Tabel 5.13 Hasil Uji Coba Data Testing pedestrian1.jpg dan pedestrian2.jpg Terhadap Penambahan Nilai Pangkat Kernel Polynomial (bagian 3)
Nilai Pangkat
Kernel Polynomial
Hasil uji coba
(2)
69
Tabel 5.14 Hasil Uji Coba Data Testing pedestrian1.jpg dan pedestrian2.jpg Terhadap Penambahan Nilai Pangkat Kernel Polynomial (bagian 4)
Nilai Pangkat
Kernel Polynomial
Hasil uji coba
4. 4
(3)
70
Tabel 5.15 Hasil Uji Coba Data Testing pedestrian1.jpg dan pedestrian2.jpg Terhadap Penambahan Nilai Pangkat Kernel Polynomial (bagian 5)
Dari hasil uji coba yang dilakukan terhadap data testing pedestrian1.jpg dan pedestrian2.jpg yang memiliki keluaran pada Tabel 5.11 - 5.15 dapat dianalisis bahwa penambahan nilai pangkat kernel polynomial mempengaruhi tingkat akurasi yang dihasilkan.
Nilai Pangkat
Kernel Polynomial
(4)
71
BAB VI
PENUTUP
Pada bab ini dijelaskan mengenai kesimpulan yang didapat setelah melakukan serangkaian uji coba. Dalam bab ini dijelaskan pula mengenai saran pengembangan perangkat lunak lebih lanjut.
6.1 Kesimpulan
Dari uji coba yang telah dilakukan dan setelah menganalisis hasil pengujian terhadap deteksi obyek pejalan kaki menggunakan metode SVM dan PCA ini dapat diambil beberapa kesimpulan antara lain:
a. Deteksi obyek pejalan kaki dapat menggunakan metode PCA (Principal Component Analysis) dan SVM (Support Vector Machine).
b. PCA sangat baik digunakan untuk mereduksi dimensi citra sehingga mengurangi kompleksitas citra tetapi tidak mengurangi informasi penting yang ada pada setiap citra.
c. Dari hasil uji coba yang telah dilakukan, tingkat akurasi dari proses deteksi pejalan kaki tidak hanya dipengaruhi oleh penambahan jumlah data training tetapi juga penambahan nilai pangkat kernel polynomial.
d. Dari hasil uji coba yang dilakukan tingkat akurasi terbaik ketika menggunakan 600 data training pejalan kaki dan 300 data training bukan pejalan kaki, dengan menambah nilai pangkat kernel polynomial menjadi 4, tingkat akurasinya sebesar 89.43 %.
(5)
72
6.2 Saran
Saran untuk pengembangan lebih lanjut dari tugas akhir ini antara lain:
a. Untuk memudahkan user dalam penggunaan perangkat lunak ini diperlukan GUI (Graphic User Interface).
b. Untuk memperbaiki tingkat akurasi sistem diperlukan penambahan jumlah data training baik data training pejalan kaki maupun bukan pejalan kaki. c. Dilakukan penambahan informasi edge dalam proses deteksi obyek.
(6)
73
DAFTAR PUSTAKA
[1]
Malago´n-Borja, Luis., Fuentes, Olac.2007.Object detection using image
reconstruction with PCA. Image and Vision Computing.
[2]
R. Gunn, Steve.1998. Support Vector Machines for Classification and
Regression. Southampton
[3]
Sembiring, Krisantus. 2007. Penerapan Teknik Support Vector Machine untuk
Pendeteksian Intrusi pada Jaringan. Bandung:Indonesia
[4]
Smith, Lindsay I. 2002. A tutorial on Principal Components Analysis.
[5]
Paulus, Erick & Yessica Nataliani. 2007. Cepat Mahir GUI MATLAB.
Yogyakarta: ANDI OFFSET.