aihot  2017-05-18 01:46:58  图像处理 |   查看评论   

 ASM(active shape models)算法介绍

 

ASM是基于统计学习模型的特征点提取的一种方法。这个方法是95年就提出来的,不过至今仍是我认为比较好的人脸特征点提取的方案。方法的提出人Tim Cootes后来还提出了aam,也很有名,但如果简单是特征点的定位的话,我认为asm的效果可能更好一些。ASM跟大多数统计学习方法一样,也包括train和test(or fit)两部分,也就是形状建模build和形状匹配fit。这个算法其实很简单,可以用来做实时性的检测,但我还是看了很久,而且还有理解有问题的地方,肯定有很多不对的地方,希望大家多多指正。

一、模型的建立(build)

1.选择合适的特征点

特征点的选取很重要啊,这点不用我多说啦。好的特征点大概应该或多或少满足如下几点:边缘点、曲率大的、T型连接点和以上这些点的连线上的等分点。(如下图)

 


记录好这些特征点的顺序,以便于后面确定图形的边界和连线等等。这也是asm方法的优点,得到的特征点是有序的。这样得到一组特征点集X


我们这里把它看做是一个2n维的向量

 

2.形状统计模型

刚刚得到的2n维向量维数很高(因为图像中我们选择的特征点往往很多),但这2n维彼此是有很强的相关性的,彼此的位置距离是大致不变的。这里作者使用最最常用的PCA来进行降维,提取出主成分,这里作者叫它modes。于是任意一组特征点集可以看做是主成分向量空间的一个坐标点,而这个坐标原点就认为是这些点集的平均,这样任意点就是坐标原点加上一个向量。即:


这里P是包含了前t个主成分的协方差矩阵,b是一个t维的向量,用来控制特征点形状的变化,当b为0时,x即坐标原点(平均形状),其实是很好理解哈。但这里b不要太大,如果太大,会导致整个形状变化超出人脸的变化范围,会使人变得异常狰狞,大家懂的。。。所以作者这里做了约束

 

这步还有个问题,就是PCA中主成分个数t的选取,有两种方法:1)选择前s个;2)选择前k%的分量,这里作者推荐使用第二种方法。

3.把模型和新点集进行匹配

这个过程是asm方法的核心所在了,贯穿始终。说来也简单,无非就是把刚得到的模型进行旋转,放缩,平移。


其中T为旋转放缩平移矩阵


我们的目的就是是模型X和图像特征点集Y最接近,这里目标函数选择是其各点欧氏距离和最小

 

具体的匹配过程就是,先初始化b向量为0,得到模型X,用其他方法找到变换矩阵T,这个很简单,可以用其他方法(haar人脸检测器,光流法,kalman滤波等等等等)大致找到目标的位置和大小以及方向。求的Y,再利用Y反求b,并且更新b,直到收敛。这里比较容易陷入局部最小,也是该方法的一个缺点。

 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自ASM(active shape models)算法介绍

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]