📄 buildlocalmodel.m
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% function buildLocalModel()
% z.li, 05-25-2004
% build SVM models
% function dependency:
% - n/a
% input:
% x - sample to be classified, 1xd
% R - local model radius
% faces - face data, n1 x d
% nfaces - non face data: n2 x d
% method - 'quadratic'
% output:
% X - training data
% Y - training data label {+1:face, -1:nface}
% err - model error rate:
% -1: m1=m2=0; -2:m1,m2<0.25xd^2; -3:covar singular
% d1,d2 - distance vector that < R
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%function [X, Y, err, d1, d2]=buildLocalModel(x, R, faces, nfaces, method)
function [X, Y, err, d1, d2]=buildLocalModel(x, R,faces, nfaces, method)
[n1, dim]=size(faces);
[n2, dim]=size(nfaces);
% local face data
m1=0; m2=0; cnt=0;
for k=1:n1
dx = norm(x'-faces(k,:)', 2);
if dx <= R
m1=m1+1;cnt=cnt+1;
X(cnt,:)=faces(k,:);
d1(cnt) = dx;
Y(cnt)=1; % face
end
end
% local non face data
m2=0;
for k=1:n2
dx = norm(x'-nfaces(k,:)', 2);
if dx <= R
m2=m2+1;cnt=cnt+1;
X(cnt,:)=nfaces(k,:);
d2(cnt)=dx;
Y(cnt)=-1; % non face
end
end
% check number of samples
if m1 == 0 | m2 == 0 % no samples
err = -1;
X=[]; Y=[]; d1=[]; d2=[];
elseif m1 < 0.25*dim*dim | m2 < 0.25*dim*dim % not enough samples
err = -2;
else
[c, err]=mixedClassify(x, X, Y, method);
if isinf(err)==1
err = -3;
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -