LAMPIRAN A KODE PROGRAM · Universitas Kristen Maranatha A-2 %Program utama clc close all clear all...
Transcript of LAMPIRAN A KODE PROGRAM · Universitas Kristen Maranatha A-2 %Program utama clc close all clear all...
Universitas Kristen Maranatha A-1
LAMPIRAN A
KODE PROGRAM
Universitas Kristen Maranatha A-2
%Program utama
clc close all
clear all
load Yale_32x32.mat;
fea_awal=fea
indeks_masukan=input('Masukkan gambar yang mau dikenali (1 sd 165) = ');
%===========================================
[baris kolom]=size(fea);
temp=[];
for m=1:baris
if (mod(m,11)==0)
m=m+1;
else
% disp(m);
temp=[temp; fea(m,:)];
end;
if m>baris
break;
end;
end;
fea_baru=temp;
%===========================================
% Menampilkan citra dari Yale database
%===========================================
faceW = 32;
faceH = 32;
numPerLine = 10;
ShowLine = 4;
Y = reshape(fea(indeks_masukan,:),[faceH,faceW]);
imshow(uint8(Y));colormap(gray);
% title('Gambar masukan');
%===========================================
fea=fea_baru;
Universitas Kristen Maranatha A-3
%===========================================
% Memilih citra untuk di training
% trainIdx = (1:size(fea,1));
trainIdx = (1:40);
% Memisahkan feature
fea_Train = fea(trainIdx,:);
gnd_Train = gnd(trainIdx);
%% Pemilihan parameter kernel untuk inisialisasi OLPP
options = [];
options.Metric = 'Cosine';
options.NeighborMode = 'Supervised';
options.WeightMode = 'Cosine';
options.gnd = gnd_Train;
%% tambahan Luhur
% options = [];
% options.Metric = 'Euclidean';
% options.NeighborMode = 'Supervised';
% options.gnd = gnd_Train;
% options.WeightMode = 'HeatKernel';
% options.t = 1;
%-------------------------------------%
% Proses konstruksi kernel
W = constructW(fea_Train,options);
%% Pemilihan parameter tensor OLPP
options.Regu = 1;
options.ReguAlpha = 0.1;
options.ReguType = 'Custom';
load('TensorR_32x32.mat');
options.regularizerR = regularizerR;
% Menampilkan operasi OLPP
disp('Mulai perhitungan dengan OLPP');
[eigvector, eigvalue] = OLPP(W, options, fea_Train);
% Mencari eigen vector dan nilai eigen OLPP
newfea = fea*eigvector;
disp('Perhitungan OLPP telah selesai');
Universitas Kristen Maranatha A-4
% euclidean distance classifier
cek=fea_awal(indeks_masukan,:)*eigvector;
for i=1:size(newfea,1) % semula 10
D(i) = EuDist2(cek,newfea(i,:));
% D(i) = EuDist2(newfea(indeks_masukan,:),newfea(i,:));
end;
disp(D)
%===========================================
min_D=D(1);
indeks=1;
for m=2:length(D)
if D(m)<min_D
min_D=D(m);
indeks=m;
end;
end;
min_D,
indeks
%===========================================
figure;
imshow(uint8(reshape(fea(indeks,:),32,32)));
% title('Gambar yang paling mirip dengan masukan');
cek_masukan=ceil(indeks_masukan/11);
disp(['Gambar masukan adalah orang ke-',num2str(cek_masukan)]);
cek_keluaran=ceil(indeks/10);
disp(['Gambar keluaran adalah orang ke-',num2str(cek_keluaran)]);
if (cek_masukan == cek_keluaran)
disp(['Hasil pengenalan BENAR']);
else
disp(['Hasil pengenalan SALAH']);
end;
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
% Pembentukan Matriks Bobot
function W = constructW(fea,options)
Universitas Kristen Maranatha A-5
if (~exist('options','var'))
options = [];
else
if ~strcmpi(class(options),'struct')
error('parameter error!');
end
end
%=================================================
if ~isfield(options,'Metric')
options.Metric = 'Euclidean';
end
switch lower(options.Metric)
case {lower('Euclidean')}
;
case {lower('Cosine')}
if ~isfield(options,'bNormalized')
options.bNormalized = 0;
end
otherwise
error('Metric does not exist!');
end
%=================================================
if ~isfield(options,'NeighborMode')
options.NeighborMode = 'KNN';
end
switch lower(options.NeighborMode)
case {lower('KNN')}
if ~isfield(options,'k')
options.k = 5;
end
if options.k < 1
options.k = 1;
end
case {lower('epsilonNeighbor')}
if ~isfield(options,'epsilon')
options.epsilon = 0.5;
end
case {lower('Supervised')}
if ~isfield(options,'bLDA')
options.bLDA = 0;
end
if options.bLDA
Universitas Kristen Maranatha A-6
options.bSelfConnected = 1;
end
if ~isfield(options,'gnd')
error('Label(gnd) should be provided under ''Supervised'' NeighborMode!');
end
if length(options.gnd) ~= size(fea,1)
error('gnd doesn''t match with fea!');
end
otherwise
error('NeighborMode does not exist!');
end
%=================================================
if ~isfield(options,'WeightMode')
options.WeightMode = 'Binary';
end
switch lower(options.WeightMode)
case {lower('Binary')}
;
case {lower('HeatKernel')}
if ~strcmpi(options.Metric,'Euclidean')
warning('''HeatKernel'' WeightMode should be used under ''Euclidean'' Metric!');
options.Metric = 'Euclidean';
end
if ~isfield(options,'t')
options.t = 1;
end
case {lower('Cosine')}
if ~strcmpi(options.Metric,'Cosine')
warning('''Cosine'' WeightMode should be used under ''Cosine'' Metric!');
options.Metric = 'Cosine';
end
if ~isfield(options,'bNormalized')
options.bNormalized = 0;
end
otherwise
error('WeightMode does not exist!');
end
%=================================================
if ~isfield(options,'bSelfConnected')
options.bSelfConnected = 1;
end
Universitas Kristen Maranatha A-7
%=================================================
[nSmp, nFea] = size(fea);
if strcmpi(options.NeighborMode,'Supervised') & (options.bLDA |
strcmpi(options.WeightMode,'Binary'))
;
else
bDistance = 0;
if strcmpi(options.Metric,'Euclidean')
D = zeros(nSmp);
for i=1:nSmp-1
for j=i+1:nSmp
D(i,j) = norm(fea(i,:) - fea(j,:));
end
end
D = D+D';
bDistance = 1;
else
if options.bNormalized
D = fea * fea';
else
feaNorm = sum(fea.^2,2).^.5;
fea = fea ./ repmat(max(1e-10,feaNorm),1,size(fea,2));
D = fea * fea';
end
end
end
switch lower(options.NeighborMode)
case {lower('KNN')}
if options.k >= nSmp
G = ones(nSmp,nSmp);
else
G = zeros(nSmp,nSmp);
if bDistance
[dump idx] = sort(D, 2); % sort each row
else
[dump idx] = sort(-D, 2); % sort each row
end
for i=1:nSmp
G(i,idx(i,1:options.k+1)) = 1;
end
end
Universitas Kristen Maranatha A-8
case {lower('epsilonNeighbor')}
if bDistance
[i,j] = find(D < options.epsilon);
else
[i,j] = find(D > options.epsilon);
end
G = sparse(i,j,1);
case {lower('Supervised')}
G = zeros(nSmp,nSmp);
Label = unique(options.gnd);
nLabel = length(Label);
if options.bLDA
for idx=1:nLabel
classIdx = find(options.gnd==Label(idx));
G(classIdx,classIdx) = 1/length(classIdx);
end
W = sparse(G);
return;
else
for idx=1:nLabel
classIdx = find(options.gnd==Label(idx));
G(classIdx,classIdx) = 1;
end
end
if strcmpi(options.WeightMode,'Binary')
if ~options.bSelfConnected
G = G - diag(diag(G));
end
W = sparse(G);
return;
end
otherwise
error('NeighborMode does not exist!');
end
if ~options.bSelfConnected
G = G - diag(diag(G));
end
switch lower(options.WeightMode)
case {lower('Binary')}
W = max(G,G');
W = sparse(W);
case {lower('HeatKernel')}
Universitas Kristen Maranatha A-9
D = exp(-D.^2/options.t);
W = D.*G;
W = max(W,W');
W = sparse(W);
case {lower('Cosine')}
W = D.*G;
W = max(W,W');
W = sparse(W);
otherwise
error('WeightMode does not exist!');
end
----------------------------------------------------------------------------------------------------------------
% OLPP
function [eigvector, eigvalue, bSuccess, elapse] = OLPP(W, options, data)
bGlobal = 0;
if ~exist('data','var')
bGlobal = 1;
global data;
end
if (~exist('options','var'))
options = [];
end
[nSmp,nFea] = size(data);
if size(W,1) ~= nSmp
error('W and data mismatch!');
end
D = full(sum(W,2));
if isfield(options,'Regu') & options.Regu
options.ReguAlpha = options.ReguAlpha*sum(D)/length(D);
end
D = sparse(1:nSmp,1:nSmp,D,nSmp,nSmp);
%==========================
%==========================
Universitas Kristen Maranatha A-10
if isfield(options,'keepMean') & options.keepMean
;
else
if issparse(data)
data = full(data);
end
sampleMean = mean(data);
data = (data - repmat(sampleMean,nSmp,1));
end
%==========================
if bGlobal & isfield(options,'keepMean') & options.keepMean
[eigvector, eigvalue, bSuccess, elapse] = OLGE(W, D, options);
else
[eigvector, eigvalue, bSuccess, elapse] = OLGE(W, D, options, data);
end
eigIdx = find(eigvalue < 1e-3);
eigvalue (eigIdx) = [];
eigvector(:,eigIdx) = [];
=================================================================
% OLGE
function [eigvector, eigvalue, bSuccess, elapse] = OLGE(W, D, options, data)
if ~exist('data','var')
global data;
end
if (~exist('options','var'))
options = [];
end
if isfield(options,'ReducedDim')
Dim = options.ReducedDim;
else
Dim = 30;
end
if ~isfield(options,'Regu') | ~options.Regu
bPCA = 1;
if ~isfield(options,'PCARatio')
options.PCARatio = 1;
end
else
Universitas Kristen Maranatha A-11
bPCA = 0;
if ~isfield(options,'ReguType')
options.ReguType = 'Ridge';
end
if ~isfield(options,'ReguAlpha')
options.ReguAlpha = 0.1;
end
end
if ~isfield(options,'bDisp')
options.bDisp = 1;
end
bD = 1;
if ~exist('D','var') | isempty(D)
bD = 0;
end
[nSmp,nFea] = size(data);
if size(W,1) ~= nSmp
error('W and data mismatch!');
end
if bD & (size(D,1) ~= nSmp)
error('D and data mismatch!');
end
%======================================
% SVD
%======================================
tmp_T = cputime;
if bPCA
if nSmp > nFea
ddata = data'*data;
if issparse(ddata)
ddata = full(ddata);
end
ddata = max(ddata,ddata');
[eigvector_PCA, eigvalue_PCA] = eig(ddata);
eigvalue_PCA = diag(eigvalue_PCA);
clear ddata;
maxEigValue = max(abs(eigvalue_PCA));
Universitas Kristen Maranatha A-12
eigIdx = find(eigvalue_PCA/maxEigValue < 1e-12);
eigvalue_PCA(eigIdx) = [];
eigvector_PCA(:,eigIdx) = [];
[junk, index] = sort(-eigvalue_PCA);
eigvalue_PCA = eigvalue_PCA(index);
eigvector_PCA = eigvector_PCA(:, index);
%=======================================
if options.PCARatio > 1
idx = options.PCARatio;
if idx < length(eigvalue_PCA)
eigvalue_PCA = eigvalue_PCA(1:idx);
eigvector_PCA = eigvector_PCA(:,1:idx);
end
elseif options.PCARatio < 1
sumEig = sum(eigvalue_PCA);
sumEig = sumEig*options.PCARatio;
sumNow = 0;
for idx = 1:length(eigvalue_PCA)
sumNow = sumNow + eigvalue_PCA(idx);
if sumNow >= sumEig
break;
end
end
eigvalue_PCA = eigvalue_PCA(1:idx);
eigvector_PCA = eigvector_PCA(:,1:idx);
end
%=======================================
data = data*eigvector_PCA;
else
ddata = data*data';
if issparse(ddata)
ddata = full(ddata);
end
ddata = max(ddata,ddata');
[eigvector, eigvalue_PCA] = eig(ddata);
eigvalue_PCA = diag(eigvalue_PCA);
clear ddata;
maxEigValue = max(eigvalue_PCA);
eigIdx = find(eigvalue_PCA/maxEigValue < 1e-12);
eigvalue_PCA(eigIdx) = [];
eigvector(:,eigIdx) = [];
Universitas Kristen Maranatha A-13
[junk, index] = sort(-eigvalue_PCA);
eigvalue_PCA = eigvalue_PCA(index);
eigvector = eigvector(:, index);
%=======================================
if options.PCARatio > 1
idx = options.PCARatio;
if idx < length(eigvalue_PCA)
eigvalue_PCA = eigvalue_PCA(1:idx);
eigvector = eigvector(:,1:idx);
end
elseif options.PCARatio < 1
sumEig = sum(eigvalue_PCA);
sumEig = sumEig*options.PCARatio;
sumNow = 0;
for idx = 1:length(eigvalue_PCA)
sumNow = sumNow + eigvalue_PCA(idx);
if sumNow >= sumEig
break;
end
end
eigvalue_PCA = eigvalue_PCA(1:idx);
eigvector = eigvector(:,1:idx);
end
%=======================================
eigvalue_PCA = eigvalue_PCA.^.5;
eigvalue_PCAMinus = eigvalue_PCA.^-1;
eigvector_PCA = (data'*eigvector).*repmat(eigvalue_PCAMinus',nFea,1);
data = eigvector.*repmat(eigvalue_PCA',nSmp,1);
end
if bD
DPrime = data'*D*data;
DPrime = max(DPrime,DPrime');
else
DPrime = data'*data;
DPrime = max(DPrime,DPrime');
end
else
if bD
DPrime = data'*D*data;
else
DPrime = data'*data;
Universitas Kristen Maranatha A-14
end
switch lower(options.ReguType)
case {lower('Ridge')}
for i=1:size(DPrime,1)
DPrime(i,i) = DPrime(i,i) + options.ReguAlpha;
end
case {lower('Tensor')}
DPrime = DPrime + options.ReguAlpha*options.regularizerR;
case {lower('Custom')}
DPrime = DPrime + options.ReguAlpha*options.regularizerR;
otherwise
error('ReguType does not exist!');
end
DPrime = max(DPrime,DPrime');
end
WPrime = data'*W*data;
WPrime = max(WPrime,WPrime');
elapse.timePCA = cputime - tmp_T;
tmp_T = cputime;
%======================================
% Generalized Eigen with Orthogonal Constraint
%======================================
dimM = size(WPrime,2);
if Dim > dimM
Dim = dimM;
end
rDPrime = chol(DPrime);
lDPrime = rDPrime';
Q0 = rDPrime\(lDPrime\WPrime); % Q0 = inv(DPrime)*WPrime;
eigvector = [];
eigvalue = [];
tmpD = [];
Q = Q0;
Universitas Kristen Maranatha A-15
bSuccess = 1;
for i = 1:Dim,
try
option = struct('disp',0);
[eigVec, eigv] = eigs(Q,1,'lr',option);
catch
disp('eigs Error!');
bSuccess = 0;
elapse = 0;
return;
end
if ~isreal(eigVec)
disp('Virtual part!');
bSuccess = 0;
break;
end
if eigv < 1e-3
break;
end
eigvector = [eigvector, eigVec]; % Each col of D is a eigenvector
eigvalue = [eigvalue;eigv];
tmpD = [tmpD, rDPrime\(lDPrime\eigVec)]; % tmpD = inv(DPrime)*D;
DTran = eigvector';
tmptmpD = DTran*tmpD;
tmptmpD = max(tmptmpD,tmptmpD');
rtmptmpD = chol(tmptmpD);
tmptmpD = rtmptmpD\(rtmptmpD'\DTran); % tmptmpD = inv(D'*inv(DPrime)*D)*D'
Q = -tmpD*tmptmpD;
for j=1:dimM
Q(j,j) = Q(j,j) + 1;
end
Q = Q*Q0;
if (mod(i,10) == 0) & options.bDisp
disp([num2str(i),' eigenvector calculated!']);
end
end
if bPCA
Universitas Kristen Maranatha A-16
if bSuccess
eigvector = eigvector_PCA*eigvector;
elseif size(eigvector,1) == size(eigvector_PCA,2)
eigvector = eigvector_PCA*eigvector;
end
end
elapse.timeMethod = cputime - tmp_T;
elapse.timeAll = elapse.timePCA + elapse.timeMethod;
===================================================================
% Perhitungan jarak eucledian
function D = EuDist2(fea_a,fea_b,bSqrt)
if ~exist('bSqrt','var')
bSqrt = 1;
end
if (~exist('fea_b','var')) | isempty(fea_b)
[nSmp, nFea] = size(fea_a);
aa = sum(fea_a.*fea_a,2);
ab = fea_a*fea_a';
aa = full(aa);
ab = full(ab);
if bSqrt
D = sqrt(repmat(aa, 1, nSmp) + repmat(aa', nSmp, 1) - 2*ab);
D = real(D);
else
D = repmat(aa, 1, nSmp) + repmat(aa', nSmp, 1) - 2*ab;
end
D = max(D,D');
D = D - diag(diag(D));
D = abs(D);
else
[nSmp_a, nFea] = size(fea_a);
[nSmp_b, nFea] = size(fea_b);
aa = sum(fea_a.*fea_a,2);
Universitas Kristen Maranatha A-17
bb = sum(fea_b.*fea_b,2);
ab = fea_a*fea_b';
aa = full(aa);
bb = full(bb);
ab = full(ab);
if bSqrt
D = sqrt(repmat(aa, 1, nSmp_b) + repmat(bb', nSmp_a, 1) - 2*ab);
D = real(D);
else
D = repmat(aa, 1, nSmp_b) + repmat(bb', nSmp_a, 1) - 2*ab;
end
D = abs(D);
end
Universitas Kristen Maranatha B-1
LAMPIRAN B
DATA PENGAMATAN YALE DATABASE (GAMBAR MASUKAN TERDAPAT PADA TRAINING SET)
Universitas Kristen Maranatha B-2
23
√
24
√
25
√
26
√
27
√
28
√
Universitas Kristen Maranatha B-3
29
√
30
√
31
√
32
√
34
√
35
√
Universitas Kristen Maranatha B-4
36
√
37
√
38
√
39
√
40
√
41
√
Universitas Kristen Maranatha B-5
42
√
43
√
45
√
46
√
47
√
48
√
Universitas Kristen Maranatha B-6
49
√
50
√
51
√
52
√
53
√
54
√
Universitas Kristen Maranatha B-7
56
√
57
√
58
√
59
√
60
√
61
√
Universitas Kristen Maranatha B-8
62
√
63
√
64
√
65
√
67
√
68
√
Universitas Kristen Maranatha B-9
69
√
70
√
71
√
72
√
73
√
74
√
Universitas Kristen Maranatha B-10
75
√
76
√
78
√
79
√
80
√
81
√
Universitas Kristen Maranatha B-11
82
√
83
√
84
√
85
√
86
√
87
√
Universitas Kristen Maranatha B-12
89
√
90
√
91
√
92
√
93
√
94
√
Universitas Kristen Maranatha B-13
95
√
96
√
97
√
98
√
100
√
101
√
Universitas Kristen Maranatha B-14
102
√
103
√
104
√
105
√
106
√
107
√
Universitas Kristen Maranatha B-15
108
√
109
√
111
√
112
√
113
√
114
√
Universitas Kristen Maranatha B-16
115
√
116
√
117
√
118
√
119
√
120
√
Universitas Kristen Maranatha B-17
122
√
123
√
124
√
125
√
126
√
127
√
Universitas Kristen Maranatha B-18
128
√
129
√
130
√
131
√
133
√
134
√
Universitas Kristen Maranatha B-19
135
√
136
√
137
√
138
√
139
√
140
√
Universitas Kristen Maranatha B-20
141
√
142
√
144
√
145
√
146
√
147
√
Universitas Kristen Maranatha B-21
148
√
149
√
150
√
151
√
152
√
153
√
Universitas Kristen Maranatha B-22
155
√
156
√
157
√
158
√
159
√
160
√
Universitas Kristen Maranatha B-23
161
√
162
√
163
√
164
√
Universitas Kristen Maranatha C-1
LAMPIRAN C
DATA PENGAMATAN ORL DATABASE (GAMBAR MASUKAN TERDAPAT PADA TRAINING SET)
Universitas Kristen Maranatha C-2
21
√
22
√
23
√
24
√
25
√
Universitas Kristen Maranatha C-3
26
√
27
√
28
√
29
√
31
√
Universitas Kristen Maranatha C-4
32
√
33
√
34
√
35
√
36
√
Universitas Kristen Maranatha C-5
37
√
38
√
39
√
41
√
42
√
Universitas Kristen Maranatha C-6
43
√
44
√
45
√
46
√
47
√
Universitas Kristen Maranatha C-7
48
√
49
√
51
√
52
√
53
√
Universitas Kristen Maranatha C-8
54
√
55
√
56
√
57
√
58
√
Universitas Kristen Maranatha C-9
59
√
61
√
62
√
63
√
64
√
Universitas Kristen Maranatha C-10
65
√
66
√
67
√
68
√
69
√
Universitas Kristen Maranatha C-11
71
√
72
√
73
√
74
√
75
√
Universitas Kristen Maranatha C-12
76
√
77
√
78
√
79
√
81
√
Universitas Kristen Maranatha C-13
82
√
83
√
84
√
85
√
86
√
Universitas Kristen Maranatha C-14
87
√
88
√
89
√
91
√
92
√
Universitas Kristen Maranatha C-15
93
√
94
√
95
√
96
√
97
√
Universitas Kristen Maranatha C-16
98
√
99
√
101
√
102
√
103
√
Universitas Kristen Maranatha C-17
104
√
105
√
106
√
107
√
108
√
Universitas Kristen Maranatha C-18
109
√
111
√
112
√
113
√
114
√
Universitas Kristen Maranatha C-19
115
√
116
√
117
√
118
√
119
√
Universitas Kristen Maranatha C-20
121
√
122
√
123
√
124
√
125
√
Universitas Kristen Maranatha C-21
126
√
127
√
128
√
129
√
131
√
Universitas Kristen Maranatha C-22
132
√
133
√
134
√
135
√
136
√
Universitas Kristen Maranatha C-23
137
√
138
√
139
√
141
√
142
√
Universitas Kristen Maranatha C-24
143
√
144
√
145
√
146
√
147
√
Universitas Kristen Maranatha C-25
148
√
149
√
151
√
152
√
153
√
Universitas Kristen Maranatha C-26
154
√
155
√
156
√
157
√
158
√
Universitas Kristen Maranatha C-27
159
√
161
√
162
√
163
√
164
√
Universitas Kristen Maranatha C-28
165
√
166
√
167
√
168
√
169
√
Universitas Kristen Maranatha C-29
171
√
172
√
173
√
174
√
175
√
Universitas Kristen Maranatha C-30
176
√
177
√
178
√
179
√
181
√
Universitas Kristen Maranatha C-31
182
√
183
√
184
√
185
√
186
√
Universitas Kristen Maranatha C-32
187
√
188
√
189
√
191
√
192
√
Universitas Kristen Maranatha C-33
193
√
194
√
195
√
196
√
197
√
Universitas Kristen Maranatha C-34
198
√
199
√
201
√
202
√
203
√
Universitas Kristen Maranatha C-35
204
√
205
√
206
√
207
√
208
√
Universitas Kristen Maranatha C-36
209
√
211
√
212
√
213
√
214
√
Universitas Kristen Maranatha C-37
215
√
216
√
217
√
218
√
219
√
Universitas Kristen Maranatha C-38
221
√
222
√
223
√
224
√
225
√
Universitas Kristen Maranatha C-39
226
√
227
√
228
√
229
√
231
√
Universitas Kristen Maranatha C-40
232
√
233
√
234
√
235
√
236
√
Universitas Kristen Maranatha C-41
237
√
238
√
239
√
241
√
242
√
Universitas Kristen Maranatha C-42
243
√
244
√
245
√
246
√
247
√
Universitas Kristen Maranatha C-43
248
√
249
√
251
√
252
√
253
√
Universitas Kristen Maranatha C-44
254
√
255
√
256
√
257
√
258
√
Universitas Kristen Maranatha C-45
259
√
261
√
262
√
263
√
264
√
Universitas Kristen Maranatha C-46
265
√
266
√
267
√
268
√
269
√
Universitas Kristen Maranatha C-47
271
√
272
√
273
√
274
√
275
√
Universitas Kristen Maranatha C-48
276
√
277
√
278
√
279
√
281
√
Universitas Kristen Maranatha C-49
282
√
283
√
284
√
285
√
286
√
Universitas Kristen Maranatha C-50
287
√
288
√
289
√
291
√
292
√
Universitas Kristen Maranatha C-51
293
√
294
√
295
√
296
√
297
√
Universitas Kristen Maranatha C-52
298
√
299
√
301
√
302
√
303
√
Universitas Kristen Maranatha C-53
304
√
305
√
306
√
307
√
308
√
Universitas Kristen Maranatha C-54
309
√
311
√
312
√
313
√
314
√
Universitas Kristen Maranatha C-55
315
√
316
√
317
√
318
√
319
√
Universitas Kristen Maranatha C-56
321
√
322
√
323
√
324
√
325
√
Universitas Kristen Maranatha C-57
326
√
327
√
328
√
329
√
331
√
Universitas Kristen Maranatha C-58
332
√
333
√
334
√
335
√
336
√
Universitas Kristen Maranatha C-59
337
√
338
√
339
√
341
√
342
√
Universitas Kristen Maranatha C-60
343
√
344
√
345
√
346
√
347
√
Universitas Kristen Maranatha C-61
348
√
349
√
351
√
352
√
353
√
Universitas Kristen Maranatha C-62
354
√
355
√
356
√
357
√
358
√
Universitas Kristen Maranatha C-63
359
√
361
√
362
√
363
√
364
√
Universitas Kristen Maranatha C-64
365
√
366
√
367
√
368
√
369
√
Universitas Kristen Maranatha C-65
371
√
372
√
373
√
374
√
375
√
Universitas Kristen Maranatha C-66
376
√
377
√
378
√
379
√
381
√
Universitas Kristen Maranatha C-67
382
√
383
√
384
√
385
√
386
√
Universitas Kristen Maranatha C-68
387
√
388
√
389
√
391
√
392
√
Universitas Kristen Maranatha C-69
393
√
394
√
395
√
396
√
397
√
Universitas Kristen Maranatha C-70
398
√
399
√
Universitas Kristen Maranatha D-1
LAMPIRAN D
DATA PENGAMATAN ORL DATABASE (GAMBAR MASUKAN TIDAK TERDAPAT PADA TRAINING SET)
Universitas Kristen Maranatha D-2
210
√
220
√
230
√
240
√
250
√
Universitas Kristen Maranatha D-3
260
√
270
√
280
√
290
√
300
√
Universitas Kristen Maranatha D-4
310
√
320
√
330
√
340
√
350
√
Universitas Kristen Maranatha D-5
360
√
370
√
380
√
390
√
400
√
Universitas Kristen Maranatha E-1
LAMPIRAN E
DATA PENGAMATAN DATABASE SENDIRI (GAMBAR MASUKAN TERDAPAT PADA TRAINING SET)
Universitas Kristen Maranatha E-2
21
√
22
√
23
√
25
√
26
√
Universitas Kristen Maranatha E-3
27
√
29
√
30
√
31
√
33
√
Universitas Kristen Maranatha E-4
34
√
35
√
37
√
38
√
39
√