⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 buildlocalmodel.m

📁 It is for Face Recognition
💻 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 + -