解读Active Shape Model and Active Apperance Model

Face Alignment Summary文章中,暂时还没详细介绍Model Based Method。基于模型的对齐方法最为有名的是Cootes九几年提出的Active Shape Model和Active Apperance Model,后者是对前者的一种改进。结合这段时间所看论文、博文包括代码,记录相应算法的思想。

一. Active Shape Model

《An Introduction to Active Shape Models》:pdf

首先,ASM的先验假设外形相似的物体,如人脸、人手都可以通过若干关键特征点的坐标依次串联形成的形状向量S=(x_1…x_n,y_1…y_n)’来表示。若能通过训练样本能建立形状向量的统计模型,即用一组参数表示某样本的形状向量,那么,对于一张新样本,只要求出该样本最佳的参数,就能重构新样本的形状向量了。怎么建立形状向量的统计模型,以及怎么搜索出样本最佳的形状模型参数?

1.1 ASM的形状统计模型

假设2-D训练样本图像标注了n个特征点{(x_i,y_i)},其形状可以用向量表示为S=(x_1…x_n,y_1…y_n)’,m个训练样本就有m个向量S_i。

  • 形状归一化:在对m个形状向量统计建模前,确保消除由于位置、尺度、方向等非形状因素的影响,使得样本形状向量表示在同一坐标系下。通过对形状向量的旋转、平移、缩放实现形状向量的归一化操作,Procrustes方法等。

  • 形状模型:得到m个归一化后的形状向量。每个形状有n个特征点,每点由坐标x、y表示,那么最暴力的方式用n x 2个坐标值表示一个形状。若有n = 68特征点,参数可达68 x 2 = 136个,况且68个点之间存在相关性、冗余信息,所以ASM对对齐后的m个S_i进行PCA分析,可得s ≈ s_ + P_sb_s。任意一组原始形状向量可以看作是前t个主成分向量组成的空间中的一个坐标点,向量b用以控制形状向量的变化,可以作为形状模型参数,这样形状模型参数由n x 2减少到t。

那么,ASM搜索过程就通过调整形状模型参数b,一步一步逼近真实形状。

1.2 ASM的形状模型参数b的优化搜索过程

搜索过程从粗糙的形状开始迭代,为当前形状的每个特针点寻找新特征点的位置,根据新形状反过来调整参数b = P’*(x - x_)。新特征点位置一步步接近真实形状,b最终也收敛到真实形状的模型实例参数。

可以先为每个特征点建立局部特征模型,借助于这个“局部特征模型”搜索新特征点位置,再反过来调整参数b。

局部特征模型通过对特征点周围像素点采样完成。

对于第i=29个特征点,在第j个训练样本第i个特征点的两侧,沿着垂直于该点前后两个特征点连线的方向上分别采样m个像素构成2m + 1个向量。对向量的像素灰度值求导(像素差)得到特征点周围局部纹理g_ij。n个训练样本得到n个局部纹理g_i1,…,g_in。求取n个局部纹理的均值g_i_和方差s_i。同样的方法得到所有特征点的局部纹理。那么局部纹理最接近的特征点可以当作新特征点的位置。

搜索过程如下:对于第i=29个特征点,同样沿着垂直于前后两个特征点连线方向两边各选l(l » m)个像素点,得到2l + 1个局部特征,其包括2(l - m) + 1个子局部特征。计算子局部特征和训练样本的局部特征模型之间的马氏距离,选择马氏距离最小者作为新特征点位置。

不断重复新特征搜索过程,并更新b,直至收敛。

ASM利用PCA建立形状模型,考虑了特征点间的空间几何约束信息。搜索过程中充分利用了特征点周围区域的高判别局部特征。然而局部特征相比于全部特征,容易陷入局部最优解。如果初始形状便宜真是形状较远,ASM搜索不到最佳形状。

二. Active Apperance Model

《Active Apperance Model》:pdf

AAM在ASM形状模型的基础上,又对全局表观纹理建模。将shape model和texture model混合而成Active Appearance Model。

形状模型同ASM一样,通过PCA得出。下面阐述texture model。

2.1 AAM的Texture Model

按照论文的说法:

To build a statistical model of the grey-level appearance we warp each example images so that its control points match the mean shape. We then sample the grey level information g_im from shape normalised image over the region covered by the mean shape.

建立纹理统计模型,需要消除形状的影响,和建立形状模型需要消除非形状因素思想影响一样。将每个样本都变形到平均形状,取平均形状覆盖区域的灰度像素值,形成向量g。怎么变形?

变形的本质是点一一映射的过程。样本原始形状和平均形状的变形通过特征点的映射关系完成,原始形状的每像素点肯定和平均形状的某个像素点对应,将原始形状该点的像素值复制给对应平均形状点。

如何完成所有原始形状点到平均形状点的映射?为了较好地拟合映射过程,我们将整块映射划分为分段映射。利用Delaunay三角剖分算法,将人脸原始形状区域划分为许许多多三角形,每个三角形对应平均形状中某个三角形,相应一对三角形形成自己的映射关系,有多少组三角形对就有多少种映射关系。

由于三点确定仿射变化参数,所有三角形p_1、p_2、p_3形成的三角形内部所有点的仿射变换由p_1、p_2、p_3求出。

变形完成,取出平均人脸形状区域所覆盖的所有像素点值组成向量g。论文提起为了消除光照影响,可以对像素向量g减均值除方差归一化。

AAM对所有样本的g作PCA处理,得到texture model:g = g_ + P_gb_g。

2.2 AAM:combine shape and texture model

至此,理论上我们通过改变形状模型参数b_s和纹理模型参数b_g可以生成任何样本实例。AAM论文为了进一步消除形状和纹理之间的相关性,对训练数据进一步PCA处理。

首先,将shape model和texture model参数组合,得向量AAM模型参数b。

W_s?:AAM论文中也有提到

The elements of b_s have units of distance, those of b_g have units of intensity, so the cannot be compared directly.

b_s控制距离,b_g控制灰度,两者不能简单地结合在一起。W_s的求法暂时没搞懂..这块代码没自己深究。我的理解就是b_s对纹理g有影响,在组合b_s和b_g时需要考虑这点影响。

AAM对所有样本的b进行PCA:b = b_ + Q*c,最终的AAM模型参数c出来了。

论文提及:Since the shape and grey-model parameters have zero mean, c does too.???实验结果b_每个元素e-16,很接近0。shape model均值似乎不是0啊..grey-model均值可以视为0,因为在消除光照影响时,做了减均值除方差操作。不解?

之后,可以利用AAM参数c表示形状和纹理

任何样本可以利用参数g生成灰度图像,然后用形状x变形。

2.3 AAM参数c搜索优化过程

和ASM的搜过类似,AAM将参数c的求解看作优化问题:最小化⊿I = I_i - I_m。I_i表示与那时图像的灰度像素向量,I_m是当前模型参数重构而成的灰度值向量。

因为appearance model可能存在很多参数c,那么c的优化过程成为较难的高纬优化问题。AAM提出了解决该问题的先验假设:⊿I和⊿c有一定的线性关系,⊿I包含有模型参数c应该怎么变换的信息。所以,AAM论文提出

learning the relationship between ⊿I and the error in the model parameters ⊿c, and using this knowledge in an iterative algorithm for minimising ⊿I.

如何学习⊿c = A⊿I的线性关系A ?

论文提出:人工地对参数c进行扰动⊿c,这时会产生⊿I,记录这些值,利用多元回归学习得A。除了对⊿c扰动外,论文提出可以对2-D图像position、scale、orientation进行扰动。

下面可以进入c的优化之旅了。

感谢田前辈的邮件交流- -

Kai Su /
Published under (CC) BY-NC-SA in categories Research  tagged with face alignment  paper