www.gusucode.com > 人脸相似匹配源码程序 > 人脸相似匹配源码程序/FaceRec/test.m

    function test()
% 测试对于整个测试集的识别率
%
% 输出:accuracy --- 对于测试集合的识别率

global SVM;
global Adaboost;

display(' ');
display(' ');
display('测试开始...');

nFacesPerPerson = 5;
nPerson = 40;
bTest = 1;
% 读入测试集合
display('读入测试集合...');
[imgRow,imgCol,TestFace,testLabel] = ReadFaces(nFacesPerPerson, nPerson, bTest);
display('..............................');

% 读入相关训练结果
display('载入训练参数...');
if(get(SVM,'value')==1)
    load('Mat/PCA.mat');
    load('Mat/scaling.mat');
    load('Mat/trainData.mat');
    load('Mat/multiSVMTrain.mat');
    display('..............................');

    % PCA降维
    display('PCA降维处理...');
    [m n] = size(TestFace);
    TestFace = (TestFace-repmat(meanVec, m, 1))*V; % 经过pca变换降维
    TestFace = scaling(TestFace,1,A0,B0);
    display('..............................');

    % 多类 SVM 分类
    display('测试集识别中...');
    classes = multiSVMClassify(TestFace);
    display('..............................');

    % 计算识别率
    nError = sum(classes ~= testLabel);
    accuracy = 1 - nError/length(testLabel);
    display(['PCA+SVM对于测试集200个人脸样本的识别率为', num2str(accuracy*100), '%']);
else
    load('Mat/PCA.mat');
    load('Mat/scaling.mat');
    load('Mat/trainData.mat');
    load('Mat/multiAdaboostTrain.mat');
    display('..............................');

    % PCA降维
    display('PCA降维处理...');
    [m n] = size(TestFace);
    TestFace = (TestFace-repmat(meanVec, m, 1))*V; % 经过pca变换降维
    TestFace = scaling(TestFace,1,A0,B0);
    display('..............................');
    
     % 多类 AdaBoost 分类
    display('测试集识别中...');
    classes = multiAdaboostClassify(TestFace);
    display('..............................');
    
    % 计算识别率
    nError = sum(classes ~= testLabel);
    accuracy = 1 - nError/length(testLabel);
    display(['PCA+Adaboost对于测试集200个人脸样本的识别率为', num2str(accuracy*100), '%']);
end