人脸识别算法与案例分析
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1.1 人脸图像分割算法

1.基于人脸组件的分割

基于人脸组件的分割,顾名思义,是指将人脸按照各个组件进行分割。根据人脸生物结构将这些组件划分为:一对眼睛、一个鼻子、一张嘴巴、一对眉毛、一幅轮廓,具体的组件分割示意图如图 2.1 所示。本方法主要是通过不同尺度的矩形框进行组件的选取。

图2.1 人脸组件分割示意图

作用于实际光学人脸照片,首先利用ASM(Active Shape Model)或者AAM (Active Appearance Model)[1]等目标定位算法进行一系列的面部标记,如图2.2 (a)所示,然后用每一个小矩形来覆盖特征部位区域,共5个小矩形,如图2.2 (b)所示。其中,矩形的宽度用左右两端的距离(ASM等定位算法得到的矢量位置)来表示,高度则可以按照固定的比例来实现,当然也可以使用矢量位置行表示。

图2.2 矩形框组件选取

分割得到各个组件之后需要进行特征提取,匹配分析等过程。以鼻子部位为例,采用尺度不变的LBP[2-4]特征来进行局部特征提取,把相应的光学面部组件和相应的素描面部组件分成多块,分别计算各块的相似度,然后把各块相加,得到该组件的相似度,其余人脸的所有组件均按照这个过程进行计算。组件分块的相似度计算示意图如图2.3所示。

图2.3 组件分块的相似度计算示意图

图2.3中光学人脸照片和素描人脸图像的相似度计算公式如下:

式中, Si表示相似度,分别表示各小块的 LBP 直方图特征,D 表示多尺度LBP的维度。最后,把所有计算好的各个组件进行相似度的相加获得最终的匹配值。

另外,还有另外一种方法可用于实现识别过程,在以上ASM或AAM分点及矩形分块选取的基础上对人脸特征进行建模分析,通过纹理走向及相对应的方位角度进行相似度的计算,主要过程如下:

(1)对选择好的样本进行手工特征点标定,手工标定按照以下规则进行:

眼眉部分:每条眼眉各4个点,共8个点。

眼睛部分:每只眼睛8个点,上下各4个点,共16个点。

鼻子部分:用4个点标定,左右各1个点,下端2个点,共8个点。

嘴巴部分:分为上下两层,每层4个点,共8个点。

脸部轮廓:左右各3个点,下巴2个点,共8个点。

需要注意的是,上述标定规则并非一成不变,可以随意调整标定点数量,以满足不同部件复杂度的需要,只是不同的人脸同一部位标定点数目和位置要相同。从上述标定过程得到形状SS由一副人脸的48个特征点构成。

(2)对形状S归一化,并进行PCA变换,求得训练集中的平均人脸形状S0和前m个特征值对应的形状特征向量,这样任意形状S就可以用一个线性方程进行表达

(3)按照上述标定方式得到所有图像的人脸特征点的标定,对各标定点按照特定顺序进行编号,上述规则共标定48个点,故编号表示为1~48。

具体的方位角度向量及相似度的计算过程如下:

(1)按照上述标定规则,以眉毛为例,在任一标定点所在的小邻域内用曲线拟合眉毛走向,再以标定点为中心点作水平线及切线,如图2.4所示。

图2.4 标定点角度方位示例

求得拟合曲线的切线和水平线之间的一个角度值,这里使用单侧角度,因为拟合线的另一个角度可以由上一个标定点决定,将该角度值命名为方位角度,由这些角度组成一个方位角度向量θ

(2)按照上述过程实现对所有标定点纹理走向的角度标定,可以用这些标定的角度值完整表示一个人的面部部位特征,再将五大部位进行组合,最后得到由所有点组成的标定点角度的人脸五官数阵Fnn为总数阵数,以数阵Fn来表征整个人脸。

由于各部位标定点数量可以根据需要进行随意调整,因此构成的人脸数阵并不是完整意义上的矩阵,上述数阵的每一行代表一个人脸部位。

(3)按照部位计算cos相似度关系。

以眉毛为例,设待检测图像眉毛部位为y,库中素描人脸眉毛部位为xnn为库中人脸数。按照上述标定规则,每一张人脸眉毛部位(包括光学人脸照片和素描人脸图像)都应该得到一个 8 维的方位向量i=1,2,…,8,包括光学图像的眉部向量和所有库中的素描图像的眉部向量。对于单幅图像,计算每个相对应点的 cos 值,最终眼眉部分可以得到 8 个 0~1 的值xii=1,2,…,8。很明显,两角度差的cos值Value越大,越接近于1,效果就越好。

根据相似度i=1,2,…,8的 8 个数值Value,得到待检测人脸和库中所有素描人脸眉毛变化的几个总余弦值序列,并以此方式计算其余部位的余弦值序列。

(4)计算各部位序列的波动特征值,该特征越小相似度越高。

波动特征的求法:数值 1 减去某序列的每一个数值,然后求和,得到n个波动特征值。

对上述波动特征值序列Sum[n]进行排序,得到最优序列顺序Optimal[n],以识别出匹配度较高的素描人脸图像

(5)部件融合。

为了得到更为优秀的识别图像,可采用部件融合的方式。所谓部件融合,就是对上述五大部件中的其中几个(2~5个)求总的波动特征,验证识别效果,得出最终由几个部位参加时识别效果最好。

2.基于尺度块的分割

在预处理阶段,对全部训练集及测试集的光学人脸照片和素描人脸图像已进行几何归一化。以人的双眼为基准,即把全部的人脸眼部都放置在固定位置,这里的训练集是由若干光学素描人脸对组成的,测试集则只有光学人脸照片。另外,若是彩色人脸,还需要进行灰度图的转化,把彩色人脸转化为灰度人脸。之后,对训练集和测试集的所有照片进行分块处理,这里假设测试集某一人脸的某光学块与训练集中某人脸相应位置的光学块相似度较为理想,则认为它也与该人脸相对应的素描块相似度较为符合。常用的分块组合为3×3、4×4或者5×5。对于素描人脸合成技术来说,为了避免人脸马赛克现象,常采用更为精细的分块组合,但也要考虑合成的速度,若分块过为精细则显得没有实际意义,这里以5×5分块为例,对Feret[13]数据库中的人脸进行分块,效果如图2.5所示。

另外,上述所论皆为单一尺度的分块,这种分块在某些情况下具有一定的局限性。例如,要单独研究人脸的某一部位时就需要对该部位进行更为精细的分块,以保证获取更为详细的信息,这时经常采用金字塔式[6,14]的多尺度分块方法。3层金字塔结构表示如图2.6所示,分层组合从上至下依次是1×1、2×2及4×4,即最后一层为16块。

图2.5 普通5×5分块效果展示

图2.6 3层金字塔结构

图2.6所展示的情况,以人脸的面颊块及人眼部块为例进行分析。很显然,人的眼部特征较为复杂,需要进行极为细致的分块;然而,人脸的面颊部位几乎不存在特定的纹理信息,仍然进行细致分块则显得冗余。为此,可以使用自适应的分块组合,即对复杂部位自动进行细致再分块,对于简单部位则保留原块,无须再细分,这种分块方式称为自适应的金字塔分块。