http://blog.sina.com.cn/s/blog_6138c5b80101k8w3.html
人脸特征点定位的目的是在人脸检测的基础上 进一步确定脸部特征点 眼睛、眉毛、鼻子、嘴巴、脸部外轮廓 的位置。定位算法的基本思路是 人脸的纹理特征和各个特征点之间的位置约束结合。经典算法是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
am_tools 原作者提供的demo
Stasm
Face Research Toolkit
参考
Active Shape Models
Active Appearance Models
Statistical Models of Appearance for Computer Vision.
ASM Active Shape Model 算法介绍
AAM Active Appearance Model 算法介绍
几种关于ASM AAM 模型代码实现的对比
Active Shape Models with Stasm
(学习笔记)Stasm的接口和使用
本文链接: http://asmresearch.immuno-online.com/view-683723.html