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