Implementasi Proses Training SVM

4.5.1 Implementasi Proses Training SVM

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] = svcX,Y,ker,C 2 n = size X,1; 3 untuk mengeset toleransi pada proses deteksi 4 epsilon = svtolC; Gambar 4.8 Kode Implementasi Proses Training svc.m bagian 1 Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. 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 nargin4 C= Inf ;, end 13 if nargin3 ker = linear ;, end 14 Construct the Kernel matrix 15 fprintf Constructing ...\ n ; 16 H = zerosn,n; 17 for i=1:n 18 for j=1:n 19 Hi,j=YiYjsvkernelker,Xi,:,Xj,:; 20 end 21 end 22 c = -ones n,1; 23 H = H+1e-10eyesizeH; 24 setting parameter untuk optimasi 25 vlb = zerosn,1; 26 vub = Conesn,1; 27 x0 = zerosn,1; 28 neqcstr = nobiasker; 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] = qpH, 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 = alphaHalpha; 41 fprintf |w0|2 : f\n ,w2; Gambar 4.9 Kode Implementasi Proses Training svc.m bagian 2 Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. 42 fprintf Margin : f\n ,2sqrtw2; 43 fprintf Sum alpha : f\n ,sumalpha; 44 menghitung jumlah support vector 45 epsilon = svtolalpha; 46 svi = find alpha epsilon; 47 nsv = length svi; 48 fprintf Support Vectors : d3.1f\n ,nsv,100nsvn; 49 implicit bias, b0 50 b0 = 0; 51 explicit bias, b0 52 if nobiasker ~=0 53 svii = findalpha epsilon alpha C - epsilon; 54 if lenghtsvii 0 55 b0 = 1lengthsviisumYsvii - Hsvii,svialphasvi.Ysvii; 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 Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. pejalan kaki atau bukan pejalan kaki. Kernel merupakan parameter yang 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]=svcoutputtrnX,trnY,tstX,ker ,alpha,bias,actfunc 2 If nargin == 6 3 actfunc = 0; 4 End 5 n = sizetrnX,1; 6 m = sizetstX,1; 7 H = zerosm,n; 8 for i=1:m 9 for j=1:n 10 Hi,jtrnYjsvkernelker,tstXi,:,trnXj,:; 11 end 12 end 13 if actfunc 14 predictedY = softmarginHalpha + bias; 15 else 16 predictedY = signHalpha + bias; 17 predictedX = Halpha + 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 Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. 1 function k = svkernelker,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 lowerker 8 case linear 9 k = uv; 10 case poly 11 k = uv + 1p1; 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. Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. 1 function [koordinat,I,imageAsal,predictedY] = recognitionimage,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 = rgb2grayI; 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 = int2strurutan; 18 str = strcat I ,str; 19 str = imresizeI,i; 20 r = sizestr,1; 21 c = sizestr,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 = strtepiAtas : tepiBawah, tepiKiri : tepiKanan; 30 [irow icol] = sizehasilCrop; 31 temp = reshapehasilCrop,irowicol,1; 32 tempImage = doubletemp; 33 tempImage = reduceSpacedoubletemp; 34 tempY = svcoutputprojectImages1:end,:,Y1,:,tempImage, poly ,a lpha,b0,0 35 predictedY = [predictedY;tempY]; 36 if tempY == 1 37 namaFile = strcatint2strurutan2, .pgm ; Gambar 4.13 Kode Implementasi Proses Pengenalan Citra bagian 1 Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. 38 imwrite hasilCrop,[ new3\ ,namaFile]; 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. Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. 58

BAB V EVALUASI DAN UJI COBA