发布时间:2022-10-09 20:30
OLPP_SVM测试集的人脸识别结果展示
在20世纪中叶,Bledsoe和Chan一起发表了有关面部识别的技术报告。随着这些年来的发展,面部识别技术已经走下坡路,技术发展迅猛,已发表的科学论文数量也在增加
保局投影(LPP)是一种线性流形学习的降维算法,反映人脸空间的本征流形结构。因此,LPP在人脸识别中可以很好的运用。然而单一地用 LPP 进行人脸识别,识别效果不能达到我们的预期。matlab能有效地提取人脸特征,但是它的特征向量维数太大,必须进行维数简化,利用LPP对matlab特征向量进行降维。所以我们提出融合 matlab 和LPP 的人脸识别,记为LGLPP,最终实验结果证实LGLPP的性能要比其他算法要好。
用拉普拉斯脸把人脸图像映射到2维空间里的结果
1图显示了在二维空间中绘制人脸图像的结果,将人脸图像分为两个部分,一个是封闭的嘴,另一个是通过比较图像的所有的对象都是在底部收集的点在右边的真实线
为了验证所提出的LGLPP算法的性能,本节在ORL,Yale和AR面部数据库上对PCA,LDA,LPP和LGLPP进行了测试和比较。
结果
olpp的部分代码
option = struct('disp',0);
[eigVec, eigv] = eigs(Q,1,'lr',option);
catch
eigvector = [];
eigvalue = [];
Y = [];
disp('Error!');
bSuccess = 0;
return;
end
if ~isreal(eigVec)
disp('Virtual part!');
bSuccess = 0;
break;
end
if eigv < 1e-14
break;
end
eigvector = [eigvector, eigVec];
eigvalue = [eigvalue;eigv];
Q = (eyenFea-invDPrime*eigvector*inv(eigvector'*invDPrime*eigvector)*eigvector')*invDPrime*LPrime;
if options.bDisp
disp([num2str(i),' eigenvector calculated!']);
end
end
eigvalue = ones(length(eigvalue),1) - eigvalue;
if bSuccess
eigvector = eigvector_PCA*eigvector;
else
if size(eigvector,1) == size(eigvector_PCA,2)
eigvector = eigvector_PCA*eigvector;
end
end
if nargout == 4
Y = old_X * eigvector;
end
代码
OLPP_SVM测试集OLPP-pca_SVM测试集的人脸识别的算法结果研究-机器学习文档类资源-CSDN文库