DETEKSI OBYEK PEJALAN KAKI DENGAN MENGGUNAKAN METODE PRINCIPAL COMPONENT ANALYSIS DAN SUPPORT VECTOR MACHINE.

(1)

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 n

z 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.

(

) (

(

)

)

n

x 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 w

d = +

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 y

xi 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 a

a 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 i

a 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 i

a 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 i

d 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

   

n

j 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.