OLPP_SVM测试集 OLPP-pca_SVM测试集的人脸识别的算法结果研究

OLPP_SVM测试集的人脸识别结果展示

20世纪中叶,BledsoeChan一起发表了有关面部识别的技术报告。随着这些年来的发展,面部识别技术已经走下坡路,技术发展迅猛,已发表的科学论文数量也在增加

保局投影(LPP)是一种线性流形学习的降维算法,反映人脸空间的本征流形结构。因此,LPP在人脸识别中可以很好的运用。然而单一地用 LPP 进行人脸识别,识别效果不能达到我们的预期。matlab能有效地提取人脸特征,但是它的特征向量维数太大,必须进行维数简化,利用LPPmatlab特征向量进行降维。所以我们提出融合 matlab LPP 的人脸识别,记为LGLPP,最终实验结果证实LGLPP的性能要比其他算法要好。

OLPP_SVM测试集 OLPP-pca_SVM测试集的人脸识别的算法结果研究_第1张图片

用拉普拉斯脸把人脸图像映射到2维空间里的结果

1图显示了在二维空间中绘制人脸图像的结果,将人脸图像分为两个部分,一个是封闭的嘴,另一个是通过比较图像的所有的对象都是在底部收集的点在右边的真实线

 为了验证所提出的LGLPP算法的性能,本节在ORLYaleAR面部数据库上对PCALDALPPLGLPP进行了测试和比较。

结果

OLPP_SVM测试集 OLPP-pca_SVM测试集的人脸识别的算法结果研究_第2张图片

 

OLPP_SVM测试集 OLPP-pca_SVM测试集的人脸识别的算法结果研究_第3张图片

OLPP_SVM测试集 OLPP-pca_SVM测试集的人脸识别的算法结果研究_第4张图片

 

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文库

你可能感兴趣的:(人脸识别,图像处理,算法,支持向量机,机器学习)