ASM和AAM:这两种方法都是基于训练集建立的统计模型方法,通过对某一类特定图像进行建模,来进行特征提取。在主动形状模型中,通过训练集中大量描述的物体样本形状实例进行统计,建立起反应目标形状变化规律的形状统计模型一点分布模型,同时利用标定点所在轮廓线方向上的灰度信息建立起反映灰度分布规律的局部灰度模型。在搜索过程中首先利用训练得到的局部灰度模型进行搜索,之后利用形状模型来搜索到的形状进行近似表达,同时对其合理性进行判断,对不合理的图像进行调整以保证形状在统计意义上的合理性。通过循环迭代,得到理想的匹配结果。
主动表观模型(AAM)不仅建立了反映形状变化的形状统计模型,同时建立了反映全局纹理变化的全局灰度模型,以充分利用全局的纹理信息。即:Appreance = Shape + Texture。并对形状模型及灰度模型结合起来建立表观模型。得到的表观模型去处了形状和纹理之间的相关性,可以准确地生成形状及纹理变化的目标图像。在主动表观模型的搜索过程中,利用训练得到的图像灰度差值与表观参数变化的线性关系,不断变化表观模型参数以及二维几何位置和尺度等参数,直至得到理想的匹配效果。其搜索方法的主要思想是基于模型纹理和形状所包围区域纹理的差值与参数变化之间的线性关系的假设,而该假设只是在一定的偏差范围内才较为合理,并且其覆盖范围对于训练集的依赖性很强,因此在搜索中该方法的鲁棒性受到一定的限制。
两者之间的区别:ASM是对某一类特定物体的特征建立其形状统计模型。在搜索过程中先依据灰度变化规律判断再利用形状模型来判断目标物体的合理性。AAM是针对全局的纹理信息建立形状和灰度结合的模型的表观模型,主要是基于模型纹理和形状所包围区域纹理的差值与参数变化之间的线性关系假设在某一偏差范围内进行搜索。与AAM相比,ASM的优点是能根据训练形状数据对参数的调节加以限制,以期在一个合理的范围内。
人脸特征点定位的目的是在人脸检测的基础上,进一步确定脸部特征点(眼睛、眉毛、鼻子、嘴巴、脸部外轮廓)的位置。定位算法的基本思路是:人脸的纹理特征和各个特征点之间的位置约束结合。经典算法是ASM和AAM。
1. ASM(Active Shape Model):分为训练和搜索两步。训练时,建立各个特征点的位置约束,构建各个特定点的局部特征。搜索时,迭代的匹配。
第一步:训练:
首先,构建形状模型:
搜集n个训练样本(n=400);
手动标记脸部特征点;
将训练集中特征点的坐标串成特征向量;
对形状进行归一化和对齐(对齐采用Procrustes方法);
对对齐后的形状特征做PCA处理。
接着,为每个特征点构建局部特征。目的是在每次迭代搜索过程中每个特征点可以寻找新的位置。局部特征一般用梯度特征,以防光照变化。有的方法沿着边缘的法线方向提取,有的方法在特征点附近的矩形区域提取。
第二步:搜索:
首先:计算眼睛(或者眼睛和嘴巴)的位置,做简单的尺度和旋转变化,对齐人脸;
接着:匹配每个局部特征点(常采用马氏距离),计算新的位置;
得到仿射变换的参数,迭代直到收敛。
另外,常采用多尺度的方法加速。搜索的过程最终收敛到高分辨率的原图像上。
2. AAM(Active Appreance Model):ASM只用了形状约束(加上特征点附近的特征),AAM又加入了整个脸部区域的纹理特征。即:Appreance = Shape + Texture。
在对形状和纹理特征统一量纲后,建模和搜索过程和ASM基本相同。
有个区别是纹理特征的搜索过程:由于纹理特征维数较高,搜索过程是一个高维的优化问题。解决方法是事先学习出纹理预测需要的线性模型,根据该模型调整参数,提高搜索效率。
其中矩阵A就是先验。
下面是随着迭代次数增加,模型收敛情况示例:
3. 开源库和SDK
参考:
Statistical Models of Appearance for Computer Vision.
AAM(Active Appearance Model)算法介绍