• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2017

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

Copied!
83
0
0

Teks penuh

(1)

ANALYSIS DAN SUPPORT VECTOR MACHINE

SKRIPSI

Diajukan Oleh :

FIRMAN ISNANDI S.

NPM. 0634010273

JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”

(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

(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

(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

(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%.

(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

(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

(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

(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,

(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

(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

(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

(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:

(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

(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

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

(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

(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

(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

(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

(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

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

[image:31.595.117.514.310.739.2]
(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

(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

[image:37.595.183.437.295.674.2]

SELESAI

(38)

MULAI

Data Testing

Reduksi Dimensi Menggunakan PCA

Klasifikasi Data Test menggunakan SVM

Prediksi Data Testing

[image:38.595.115.449.93.548.2]

SELESAI Data Template

Gambar 3.2 Diagram Alir Model Sistem Secara Umum (Testing)

3.2 Perancangan Data

Perancangan data merupakan hal penting untuk diperhatikan karena

diperlukan data yang tepat agar perangkat lunak beroperasi dapat secara benar.

Data yang diperlukan dalam pengoperasian perangkat lunak yaitu data masukan

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

[image:39.595.144.468.346.579.2]

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

[image:40.595.114.510.325.708.2]

Adapun contoh citra yang digunakan sebagai data testing dapat dilihat pada

(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

[image:41.595.107.519.281.666.2]

disajikan dalam table 3.1.

Tabel 3.1 Data Proses

No Nama Data Tipe Data Keterangan

1. Data koordinat Double Koordinat dari citra yang mengandung pedestrian

2. Data koordinat mapping

Double Koordinat dari citra yang mengandung pedestrian yang telah di mapping ke citra asal.

3. A Double Alpha ini merupakan parameter output dari

lagrange multipliers yang digunakan untuk menentukan jumlah support vector

3. C Double C merupakan kovarians matriks

5. E Double E merupakan eigenvector dari kovarians matriks

6. Λ Double λmerupakan eigenvalue dari kovarians matriks

(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

[image:42.595.181.443.283.538.2]

keluaran dari system dapat dilihat pada Gambar 3.6.

Gambar 3.6 Data Output

3.3 Algoritma dan Diagram Alir

Pada bagian ini akan dijelaskan mengenai algoritma sistem melalui

diagram alir. Dengan menggunakan diagram alir, dapat diketahui dinamisasi data

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

(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

[image:44.595.155.491.352.683.2]
(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

(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

[image:46.595.180.432.109.535.2]

K ,  , 1

Gambar 3.8 Diagram Alir Training SVM

3.3.2.2Proses Testing

Pada sebelumnya yaitu proses testing di dapatkan nilai-nilai alpha, bias,

(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

[image:47.595.182.436.291.620.2]

tidak mengandung pejalan kaki. Diagram alir proses testing dapat dilihat pada

Gambar 3.9.

MULAI

Input data Testing, Prjimage, alpha, bias,

kernel

Mentransformasikan input data dengan mapping ke ruang multidimensional menggunakan support vector dan parameter kernel

Mengklasifikasi data testing

Hasil klasifikasi data testing termasuk kelas pejalan kaki atau bukan

pejalan kaki

SELESAI

Gambar 3.9 Diagram Alir Testing SVM

3.3.3 Proses Pengenalan Citra

Pada tahap-tahap sebelumnya telah dijelaskan mengenai proses reduksi

(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

[image:48.595.107.514.338.726.2]
(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

[image:49.595.113.507.354.711.2]

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

(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

(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

[image:57.595.111.514.319.696.2]

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

(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]';

[image:60.595.110.511.82.542.2]

30

Gambar 4.7 Kode Implementasi pca.m (bagian 2)

4.5 Implementasi Proses Klasifikasi

Pada langkah ini akan dilakukan implementasi proses klasifikasi

menggunakan support vector machine (SVM). Proses klasifikasi ini dibagi

menjadi dua bua proses yaitu proses pertama training SVM dan proses testing.

Proses training ini dilakukan dengan pemanggilan fungsi svc sedangkan proses

(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;

[image:62.595.111.517.95.693.2]

41 fprintf('|w0|^2 : %f\n',w2);

(63)

42 fprintf('Mar

Gambar

Grafik untuk sains dan teknik
Gambar 3.1 Diagram Alir Model Sistem Secara Umum (Training)
Gambar 3.2 Diagram Alir Model Sistem Secara Umum (Testing)
Gambar 3.3 Pedestrian64x32
+7

Referensi

Dokumen terkait

Dapatan kajian ini juga selari dengan dapatan penyelidikan Hassan (2018) yang menyatakan bahawa individu yang mempunyai tekanan semasa berada di tempat kerja akan

Bantuan atau subsidi yang berjumlah kecil berskala nasional ditiadakan lalu diganti dengan program bantuan yang jumlahnya besar meskipun hanya baru beberapa madrasah

kehidupannya, dia memilih untuk tetap mengucap syukur di tengah pergumulan yang dihadapi. Dalam keadaan yang Rasul Paulus alami ketika di penjara di Roma, di mana ia

Hasil penelitian ini, yakni: (1) Sistem permodalan budidaya ikan menggunaka penyertaan modal dalam bentuk Musyarakah hal ini berdasarakan modal yang sama-sama

Penelitian ini bertujuan untuk meningkatkan minat belajar matematika siswa dengan pemanfaatan media pembelajaran berbasis Teknologi Informasi dan Komunikasi melalui program

, (b) item kuesioner yang valid dan dapat dipercaya, dan (c) instrumen standar untuk mengukur disiplin siswa di SMA Negeri 2 Bantul, dan (3) mendeskripsikan nilai disiplin

Alhamdulillahirobbila’alamin, segala puji bagi ALLAh SWT yang banyak memberikan rahmadnya baik itu rahmad kesehatan, mental, kepercayaan diri, dan kesabaran yang

Dengan hasil yang belum konsisten tersebut, penelitian ini berupaya untuk menguji kembali bagaimana pengaruh corporate governance dengan mekanismenya yang terdiri