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