您的位置:首页 > 其它

人脸识别之ASM模型-Active Shape Models - 'Smart Snakes'

2018-03-04 16:05 260 查看
       因为想要看懂openface论文所使用的算法,就打算把看openface论文所涉及到的主要的论文看一遍,大概需要看5篇论文。最先看了PDM模型的论文,翻译之后加了一些自己的理解。http://blog.csdn.net/u013263891/article/details/79408688,因为ASM模型是基于PDM模型的,所以想要真正的理解ASM还是需要仔细理解一下PDM模型。
       这是所看的这方面的第2篇论文,一样也是T.F.Cootes, C.J.Taylor两位大神的,我也看了一些其他人写的关于ASM模型的论文,比如http://blog.csdn.net/carson2005/article/details/8194317,这篇博客不知道博主看的是谁的论文,与我这篇论文的大致思路是一样的,但是主要的不同会是对每个点的进行调整的计算。
        因为PDM模型是通过对b向量参数的调整,对形状的整体进行调整,并没有详细到每一个点,所以它的精确度有待提高,而ASM则是对形状中的每一点进行了调整。
1 点分布模型
       


        首先我们得到PDM模型,这个模型主要由这些点的平均形状和主要的变化模式组成


       通过选择b的值我们可以在得到一个新的形状,然后我们可以通过定义位置,方向,比例来在图像框架中创建实例X




       M(s,θ)[ ] 是旋转θ 缩放s     (Xc,Yc)表示的是图像中模型中心的位置2 对PDM优化       我们反复的使用下面看两步
2.1 计算模型中的每一点的建议位移

      给定初始估计的一组模型的边界点,我们试图拟合一个图像对象的轮廓(图2),我们需要估计一个调整位移,已将每一个边界点移动到图像的边缘。我们使用沿着模型边界的法线调整到边缘强度最大的位置,也即是图像的边缘点(如图3)。
     (图像最基本的特征是边缘。所谓边缘是指其周围象素灰度有阶跃变化的那些象素的集合。边缘点是指它两边象素的灰度值有显著的不同。边           缘点存在于这样一对邻点之间,即一个在较亮的区域内部,另一个在外部。边缘强度,实质上是边缘点梯度的幅值。定义数字图像第 i 行第 j           列的x、y方向的一阶差分为:


                                                        


       对数字图象

 的每个象素取它的梯度值,f(i,j)表示点(i,j)的像素值
                                                        


        取 Th 作为阈值进行判断,若

 ,则点

 为边缘点,

 称为梯度算子的边缘图象,也称为边缘强度。)


      图2 模型的边界接近于一个图像对象的边缘


  图3 点的建议的移动位移方向沿着边界法线,与法线上的最大边缘强度成正比      可以计算一组调整值,可以计算形状的每一个点(图4)。 我们将这样一个集合表示为一个向量dX,




图4 一系列点的调整      我们的目的是通过对整个形状进行平移,缩放,旋转,将整个形状从当前的X位置移动到尽可能接近X+dX处,同时仍然满足模型对形状的约束。一种方式是找到当前点集X映射到X+dX点集的最佳位移(dXc,dYc),旋转dθ和缩放因子(1+ds)。求解过程如下:    

     消除平移的影响


     (17)(18)之所以这么写我的理解是我们需要计算的是4个变量,希望通过一定的旋转和缩放先使得X'达到一定的位置,之后再进行平移。看下面的式(4)就可以理解这一块了。因为论文上计算这4个变量的方法是写在附录中的,所以这里看起来标记的很乱。     然后问题就变成了寻找旋转dθ和缩放因子ds来使得X’映射到(X’+dX’)上     假设i点  我们希望移动它到i’点 如图7,i点的坐标是(Xi',Yi')


图7估计角度和缩放的变化去匹配一个点到新的位置      相应可以容易的看出


      式(19)是通过投影的方式计算dXir向量,相应的根据向量的三角计算方式(20)可以得到dXia向量,式(21)则是通过比例的方式求得dsi


      式(22)我的理解是因为dθ 非常的小,dXir也很小,近似的dθ 可以以这种比例的方式计算。      图像中的初始的点的位置:



(3)  代入(4)








        等式(5)给出了一种在局部模型坐标框架中对点x的建议移动的方法。这些运动与我们的形状模型不一致。为了应用形状约束,我们将dx转换为模型参数空间给出db,模型参数的变化需要将模型点调整为模型允许的dx





       P为正交阵,具体的原因PDM模型里有写到,这个地方其实应该是P的逆可以看出,公式7相当于使用最小二乘逼近来计算形状参数调整db。2.2 更新位置和形状参数      迭代的更新下面的参数:




      wt, ws和wθ是标量权重,Wb是每个模式的权值对角线矩阵。3个标量权重我还不太理解他们是怎么赋值的。有知道的大佬请给我评论      反复的使用2.1,2.2直到5个参数没有显著的变化。      为了确保新的形状是合理的,有必要对b参数应用限制。如果关于训练集上第i个参数的原点的方差是λi,则如果马氏距离D m小于适当的常数,则形状可以被认为是可接受的,设这个适当的常数是Dmax,一般情况下为3.0。(马氏距离表示的是数据的协方差之间的距离,它是一种有效的计算两个位置样本集的相似度的方法)


      如果不满足这样的条件,则如果使用式(12)更新b会导致不合理的形状,使用以下方式进行更新:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: