基于PCA和LDA融合算法的性别鉴别

分享到:

 

    随着社会发展,快速有效的自动身份验证应用广泛。生物特征是人类的内在属性,具有很强的自身稳定性和个体差异性,所以它是身份验证最理想的依据。其中,人脸相比其他的人体生物特征具有直接、方便、友好等特点,所以利用人脸特征进行身份验证是最自然直接的手段,并易于为用户所接受。性别鉴别作为其中特殊的一部分,可以加强人机交互系统的灵活性,而且可以对特殊环境下与性别相关的地方出入进行限制,收集有价值的统计信息(如每天出入的男性、女性数量,对酒吧、商场、零售业提供有价值的服务)等。

1 性别分类算法
   
性别分类是一个典型的二类问题,一般方法是通过输入一副人脸图像X,通过预处理,特征提取,分类器等过程后来决定X的类别。这里的性别分类算法如图1所示,它是由预处理、特征提取、分类器3个部分组成。


    其中预处理主要是几何变换和区域直方图处理。通过这些工作保障了人脸几何(方向,大小)的不变性。基本消除了背景的影响和部分光照影响,提高了识别的精度。然后再预处理的基础上进行主元分析提取特征,获得主元分析PAC(Principal components Analysis)主元子空间和线性鉴别分析LDA(Linear Discriminant Analysis)特征子空间,最后利用分离器(人脸样本训练获得)进行分类。
1.1 预处理
   
该性别分类算法主要采用,几何处理+整体直方图处理(HG),几何处理+区域直方图处理(RHG)2种方法进行预处理,并进行比较。
1.1.1 几何处理
   
1)图像的缩放
    MATLAB图像处理工具箱中的函数imresize可对图像进行缩放操作,常用的格式为:
   
    B是缩放后图片;A是原始图片;m表示缩放倍数(m>1时图片放大;m<1时图片缩小);method是缩放的插值方法(默认为最近邻插值法);[mrows,ncols]指输出图片大小为mrowsxncols。
    2)图像的旋转处理
    有些待分类的图像,人脸是歪斜的,这时要对图像进行旋转处理如图2所示。但旋转时各像素的坐标会发生变化,使得旋转之后不能正好落在整数坐标处,需要进行插值,工具箱中函数imrotate方法可以对图像进行插值旋转(默认方法是最近邻插值法)。常用的语法格式为:
   
    其方法中对应的参数意义为:angle为图像A按照逆时针旋转的角度,method是选择的插值方法。


    3)图像的剪切
    当只需要图像中的一部分时,如实验中只需要人脸图片,就要对图像进行剪切处理,在MATLAB图像处理工具箱中提供函数imcrop用于剪切图像中的一个矩形子图,用户可以根据这个矩形顶点的坐标,也可以用鼠标指针选取这个矩形。该函数常用的格式如下:
   
    其中前3种格式为交互式地对灰度图像、索引色图像和真彩色图像进行剪切。后3种方式是按指定的矩形框rect剪切图像,rect是一个四元向量[xmin,ymin width heigth],分别表示矩形的左上角坐标、宽度和高度。
1.1. 2 整体直方图处理(HG)
   
直方图方法是建立在概率论的基础上,是通过改变直方图的形状来达到增强图像对比度的效果。常用的方法有直方图均衡化和直方图规定化。直方图均衡化又称直方图平坦化,是将一已知灰度概率密度分布的图像,经过某种变换成一幅具有均匀灰度概率密度分布的新图像,其结果是扩展了像元取值的动态范围,从而达到增强整体对比度的目的。采用MATLAB工具箱中histeq方法对图像进行直方图处理。
    常用B=histeq(A)。
1.1.3 区域直方图处理(RHG)
   
直方图处理是探讨了亮度标准化方法的一般计算模型,为了解决偏光问题,又提出了亮度标准化的分块策略,采用将图片等分4份,对偏光严重的人脸图片进行区域直方图处理后再合成原始大小图片。针对图像整体直方图和分块区域化后直方图取得的效果进行比较,如图3所示。


1.2 PCA算法的基本原理
   
主成分分析法PCA(Principal Component Analysis)其目的是在数据空间中找到一组向量以尽可能地解释数据的方差,从而用降维后的低维向量保存原数据中的主要信息,使数据更易于处理。主要原理就是基于对原始数据进行统计分析,利用线性变换,对高维数据进行分析与压缩。由于人脸结构的相似性,当把人脸图像样本进行规一化并抽成一个高维向量后,这些图像在高维空间中不是随机或散乱地分布的,
而是存在某种规律。通过主元变换进行人脸识别的方法被称为“特征脸”方法。
    主成分分析是将分散在一组变量上的信息集中到某几个综合指标(主成分)上的探索性统计分析方法,以便利用主成分描述数据集的内部结构,实际上起着数据降维的作用。
    假设有一幅大小为N1xN2的灰度图像P(x,y),其中x∈[1,N1],y∈[1,N2],且像素值P(x,y)满足P(x,y)∈[0,1],x为行索引值,y为列索引值。为了应用PCA技术,首先要将该人脸从二维矩阵转化为一维向量,这可以通过如下操作达到要求。
    将kxl的矩阵C的第1行转置,然后将C的第2行转置拼接于其后,如此类推,直到最后将第k行转置并拼接起来。例如,矩阵在经过上述操作以后,就变为(a11 a12 a13 a21 a22 a23)T。一幅大小为N1xN2的灰度图像可以被转换为N1xN2维的向量,因此可以将一幅人脸图像视为高维空间中的一个点,并用PCA技术使用少数特征来近似描述人脸图像在高维空间中的分布。
    考虑n(N1xN2)维空间中的m个向量x1,x2,…,xm为了降低维数,需要用一个m维的向量x’来近似模拟,其中m<<n,也就是寻找一个变换。PCA技术使用变换:
   
    通常假设随机向量(x-μ)为零均值,即μ取值为随机向量x的期望
   
    WT=(w1,w2,…,wm)为一个mxn的变换矩阵。(x-μ)是一个(nxl)n维的向量。y是m维的向量。这是一个线性的变换,式(1)是个内积,引述内积的定义:
   
    图4为式(3)的物理意义。

 

论坛已做迁移,有相关技术资料和问题讨论可以到电路城对应版块(“模拟/电源”)
X