捋了捋,将自己对主动形状模型(Active Shape Model)的理解从下面这三个方面介绍
建模
首先是ASM的建模部分,建模部分较繁琐,我又从下面俩方面介绍
点分布模型
ASM是在点分布模型(Point DIstribution Model)的基础上继承发展而来,点分布模型是这样定义的:对于一些外形相似的物体,比如人脸,手,心脏等几何形状的物体通过若干关键特征点的坐标一次串联成一个向量,用该向量来表示这个物体。如图,我们用一系列的点描述出手部的形状。用这个形状向量来表示这个手。同理,对于右边的人脸 我们也可以用一系列特征点标示出人脸的大致轮廓,借此向量来表示人脸。
那么我们如何选择合适的额标定点呢?
根据Tim中原论文给出建议,一般选择在高曲率处和T型连接处,如在手部中的指尖处和俩个手指间隙,在选定这些明显的点后,那么剩下的点可以在这些点之间等距选取。
我们在标记按上面规则再细分标志点为三类:
- 标记点描述部分对某种应用有意义,如眼 睛的中心或边界的尖角。
- 与应用无关的标记点,如物体在某方向上的最高点。
- 在1、2类标记点之间等距插入点
重要的:如果我们标记多幅图片,那么每幅图片的标记点顺序都应该一样
在ASM中形状的定义:是指某个物体所有的几何信息,这种信息在滤除了位置、尺度大小以及旋转等因素的影响之后是保持不变。
如下图是在欧几里得转换下的四个相同的形状:
对齐形状
对齐操作的目的是为了滤除位置偏移、尺度大小以及旋转所带来的影响。主要是用普式分析法(Procrustes Analysics)操作对齐。
- 训练集中所有的人脸对齐到第一个人脸特征形状向量
- 计算平均人脸形状向量 x¯¯¯=1n∑ni=1xi x ¯ = 1 n ∑ i = 1 n x i
- 再将所有的人脸形状向量对齐到平均向量 x¯¯¯ x ¯
- 重复2、3直到收敛
以俩个形状间的对齐为例,当通过普式分析法使俩者间的普式距离最小时,就说俩个形状2已经与形状1对齐。具体公式如下:
通过调整旋转角度,缩放尺度,位移距离使与俩个形状之间的普氏距离最小,所以要计算旋转角度,缩放尺度,位移距离三个参数。
W是每个标记点的权值对角矩阵,权重大小取决于标记点的稳定性,稳定性指的是在不同形状中一个点相对于其他点距离变化的大小。距离变化越小,稳定性就越强,权值越大;如果距离变化越大,越不稳定,对应的权值越小。
计算标记点的权值,如计算
k
k
点权值,首先计算在同一形状中点与点L间的距离
Rkl
R
k
l
,
VRkl
V
R
k
l
表示整个训练集中不同图像间
Rkl
R
k
l
的方差。
利用公式能求的旋转角度
θ
θ
,尺度大小
s
s
以及位移
t
t
的值。
形状统计分析
对齐算法剔除了形状间因角度、尺度和位移等因素带来的差异,剩下的是形状本身固有的差别。统计分析阶段主要是分析这种形状间的变化,建立形状模型。
因为每个样本是一个
2n
2
n
维向量表示,则可以将每个样本看做
2n
2
n
维空间内的一个点。当样本数增多时,在
2n
2
n
维空间内计算显得尤为复杂。可以采用PCA降维。提取形状变化的主相关和规律。
P
P
和分别表示矩阵
S
S
的特征向量和特征值,
λt
λ
t
为特征值总和
取前
t
t
个特征向量,将形状向量由维降到t维。
在此范围内改变
b
b
会得到不同的形状。
搜索
建模结束后,便利用生成的形状模型在图像中定位和匹配目标轮廓。
- 使模型尽可能靠近目标轮廓,实现模型的初始定位。
- 初始定位结束后,在一个迭代过程中搜索各个标记点的最佳匹配位置,然后在形状约束条件下调整形状参数,使模型尽可能与目标轮廓吻合。
搜索流程
- 以得到的模型在新图像上搜索,找到新图像上 X X 中每个点的位置。
- 更新,找到最佳匹配位置。
- 确保 b b 在合适范围内更新。
- 重复直到收敛。
匹配
匹配模型有俩种方法,公式有点多,我就直接从做好的ppt中截图了。
局部灰度模型
一般采用每个标志点的局部灰度模型来进行匹配。局部灰度模型是通过局部特征点建立起来的局部特征,通过比较新位置与原来特征点位置的马氏距离,找到每个特征点该移动的位置。
具体实施过程如下图,对每个样本重复这个过程,对每个标记点都会得到一个灰度模型。
更新模型参数:
多分辨率搜索策略
在搜索标志点最佳匹配位置的过程中,搜索路径的长度是影响搜索结果的重要因素,一方面,搜索路径须足够长,才能保证目标点在搜索的范围内;另一方面,希望搜索路径尽可能的短以减少计算量,同时如果模型靠近目标轮廓,而搜索路径过长会导致搜索越过目标延伸到较远的地方,错过邻近的正确目标点。这两个互相矛盾的要求,可以通过多分辨搜索来满足。
- 首先获得同一图像的不同分辨率等级,搜索先在较低分辨率图像上进行,然后用先前的输出在较高分辨率图像上继续搜索,重复这个过程直至到原始图像上。
为获得多分辨率图像,采用5 × 5的高斯核对分辨率较高的图像进行平滑处理,并按每两个像素取一个的采样方法获得分辨率较低的图像。对得到的 n 层图像金字塔,将原始图像定义为 Level 0,经过一次平滑和采样得到的图像定义为 Level 1,其长宽尺寸均为 Level 0 的 1/2。以此类推,得到更高的 Level 2、Level 3、…、Level n。
下面是一个简图
后记
以上是ASM的大体过程,与ASM相似的算法相似的还有主动外观模型(Active Apperance Model),因为ASM只利用位置信息,AAM在此基础上加入了纹理信息。也相对比ASM复杂一点。
ASM算法在人脸识别,特征点跟踪方面有较广泛的应用,提出的时间很早了,当初也是基于人脸特征点定位找的,现在来看有点老了,现在的paper动不动就是深度学习搞一波,唉,当初还是短视了,先mark一下吧。相关资料
ASM算法介绍
主动形状模型(ASM)和主动外观模型(AAM)资源汇总
人脸器官精确定位/人脸特征点的跟踪(经典方法:ASM,活动形状模型)
人脸特征点定位——ASM和AAM算法
几种关于ASM & AAM 模型代码实现的对比
Active Shape Models —Their Training and Application对作者论文比较详解
opencv中文网站上关于AAM的资源