% 整个训练过程,包括读入图像,PCA降维以及多类 SVM 训练,各个阶段的处理结果分别保存至文件:
% 将 PCA 变换矩阵 W 保存至 Mat/PCA.mat
% 将 scaling 的各维上、下界信息保存至 Mat/scaling.mat
% 将 PCA 降维并且 scaling 后的数据保存至 Mat/trainData.mat
% 将多类 SVM 的训练信息保存至 Mat/multiSVMTrain.mat
disp(' ');
disp(' ');
disp('训练开始...');
disp('读入人脸数据...');
nPerson=40;
[FaceContainer,faceLabel]=ReadFaces(nPerson,0);
disp('读入人脸数据成功');
disp('..............................');
nFaces=size(FaceContainer,1);%样本(人脸)数目
disp('PCA降维...');
[pcaFaces, W] = fastPCA(FaceContainer, 20);% 主成分分析PCA
disp('PCA降维成功');
disp('..............................');
% pcaFaces是200*20的矩阵, 每一行代表一张主成分脸(共40人,每人5张),每个脸20个维特征
% W是分离变换矩阵, 10304*20 的矩阵
disp('Scaling...');
[scalingX,A0,B0] = scaling(pcaFaces);
% save('SVM/scaling.mat', 'A0', 'B0');
disp('Scaling成功');
disp('..............................');
% 保存 scaling 后的训练数据至 trainData.mat
TrainData =scalingX;
trainLabel = faceLabel;
V = W;
% save('SVM/trainData.mat', 'TrainData', 'trainLabel','W');
disp('SVM训练.....');
for iPerson = 1:nPerson
nSplPerClass(iPerson) = sum( (trainLabel == iPerson) );
end
multiSVMStruct = multiSVMTrain(TrainData, nSplPerClass, nPerson);
disp('..............................');
disp('训练结束');
disp(' ');
disp(' ');
disp('测试开始...');
% 读入测试集合
disp('读入测试集合...');
[FaceContainer_c,faceLabel_c]=ReadFaces(nPerson,1);
disp('..............................');
% 读入相关训练结果
% disp('载入训练参数...');
% load('Mat/PCA.mat');
% load('Mat/scaling.mat');
% load('Mat/trainData.mat');
% load('Mat/multiSVMTrain.mat');
% disp('..............................');
% PCA降维
disp('测试数据PCA降维、scaling处理...');
[m n] = size(FaceContainer_c);
meanVec=mean(FaceContainer_c);
TestFace = (FaceContainer_c-repmat(meanVec,m,1))*V; % 经过pca变换降维
TestFace = scaling(TestFace,1,A0,B0);
disp('测试数据PCA降维、scaling成功');
disp('..............................');
% 多类 SVM 分类
disp('测试集识别中...');
classes = multiSVMClassify(TestFace,multiSVMStruct);
disp('..............................');
% 计算识别率
nError = sum(classes ~= faceLabel_c);
accuracy = 1 - nError/length(faceLabel_c);
disp(['对于测试集200个人脸样本的识别率为', num2str(accuracy*100), '%']);
评论0
最新资源