AAM论文翻译

文中图片出自原论文。
本文为和大家学习所发,文中有许多问题和错误,请大家不吝赐教,给与指出,感激不尽。
考虑文章描述不准确地方和错误较多,因此请勿转载,谢谢。

1、

基于模型的方法在解释对象图像方面引起了研究者们的极大兴趣。通过拟合模型的有效实例可以得到鲁棒的输出结果。此外,根据一组模型参数解释图像的能力为场景解释提供了基础。为了实现这些好处,对象外观模型应该尽可能的完整,且能够合成接近目标物体的任意图像。
尽管基于模型的方法以及被证明是有效的,而且也存在着一些合适的方法,但大都有着大量的参数,虽然也可以利用通用的方法进行优化求解,但是一般情况下会很慢。
本文中提出一种直接优化方法,方法不会每次都去求解一个一般的优化问题去将模型拟合一张新图片上。相反,我们对每一次的优化问题都很相似这个点进行扩展,而这些相似之处在离线的时候就学习到。这样即使在高维空间下也能快速收敛。
本文通过总结之前相关工作讨论了图像解释的概念。2中解释了如何构建对象外观紧凑模型,这个模型可以很好的生成与训练集中相似的通用模型。

1.1

【5】中虽然提取了灰度外表的3D模型,允许全部组合形状和外观,然而却没能给出合理的搜索算法来对新图像进行建模。
【6】中对形状和局部灰度外观进行建模,使用ASM模型灵活的定位新图像中的对象。
【8】中将ASM扩展,生成一个形状和灰度外观的联合模型,但依然依赖ASM去在新图像中定位脸部。本文新方法可以看做是【8】的延伸,其利用联合外观模型的全部信息去拟合图像。
本文新方法得益于早前的两篇文章。【7】中显示了本质特征模型的参数能被用来推导形状模型点到正确的位置。这里描述的AAM就是这个方法的一个扩展。【2】中用手工制作的模型去跟踪面部的特征点,但是没有尝试对整个脸部建模。AAM可以被归纳为:学习与每个模型参数的变化对应的图像差异模式,并用于修改模型估计。(学习与模型参数变化相一致的图像差异模式,并用之来修改模型估计)
[18]中在离线处理阶段使用不同的图像去跟踪、学习图像误差和参数补偿之间的关系(该方法大致是使用图像差异来驱动跟踪,在离线处理阶段中学习图像误差和参数偏移之间的关系。)。不同之处在于,【18】使用的单独一张图像,而AAM使用一个训练集。

2、

这一部分介绍外观模型是如何建立的。方法就像【8】中提到的那样,只是扩展了正规化和加权重步骤。首先需要一个标记了特征点的训练集。
给定一个训练集我们可以用6中的方法生成一个形状变化模型。标记点描述了对象的形状。将所有数据对齐到标准帧(ASM中,标准帧指的是所有帧的平均。这里指的是标准帧还是仅仅对齐到一个共同的框架上就可以?)—(不管怎样,这里的最终结果和ASM一样,所以每个步骤也和ASm一样)上并用向量x来表示,之后使用PCA,得到每个样本的形状变化模型的表示:
这里写图片描述
为了构建统计意义上的灰度外观模型我们扭曲每个样本图像,目的是为了使其控制点匹配到平均形状(使用三角化方法)。从对齐到标准形状后的图像中的由平均形状覆盖的区域部分采样灰度信息gim。(我们从平均形状覆盖的区域上的形状归一化图像中采样灰度信息gim。)(那么这里,意思是灰度信息gim是整个覆盖区域的像素点的灰度值?)为了最小化全局光照变化的影响,我们通过应用缩放a和偏移b来标准化示例样本:
这里写图片描述
选择a和b的值以使向量与归一化均值最佳匹配. 令g杠为归一化数据的均值(将所有脸对齐到X杠,采样灰度之后进行平均?),缩放和偏移使得元素之和为零,元素方差为1。然后给出标准化gim所需的a和b的值:
这里写图片描述
(以上,得到gim,将其与g杠匹配最佳,得到a和b,问题是g杠是什么)
当然,获得归一化数据的均值就是递归过程,因为归一化是根据均值来定义的。通过使用其中一个示例作为平均值的第一个估计,将其他示例与其重新估计均值和迭代,可以找到稳定的解决方案。
(以上,g杠递归求解,首先初始化其为某个样本的gim?之后,通过式子2和3将其他样本对齐到这个g杠,重新估计均值并迭代,这样就得到了最终的g杠?这里,重新估计均值是指什么)
应用PCA就得到:(应用PCA相当于将每个g组合成g杠和所有g的特征向量的线性组合,注意这里有g中非主成分的0.)
这里写图片描述
G杠是灰度向量的归一化均值。
将形状和外观参数求和,使用PCA,得到:
这里写图片描述
Ws是形状参数的权重对角矩阵,允许形状和灰度之间的单位差异?。
这里写图片描述
Q为特征矩阵,c是决定形状和灰度的模型外观参数。因为形状和外观参数是零均值,所以c也是零均值。
考虑到模型的线性性质,可以将形状和灰度直接描述为c的函数;
这里写图片描述
其中:
这里写图片描述
给定c,通过从向量g生成无形状灰度图,并用由x描述的控制点来warp它,可以生成示例图像。

2.1、选择形状参数权重Ws

Bs有距离单元,bg有强度单元,因此不可以直接就比较。因为Pg有正交列向量,所以将bg变化一个单位,g也将移动一个单位。为了使bs和bg相称,必须估计bs变化对样本g的影响。为此,对每个训练样本,我们系统地将bs的每个元素从其最佳值移位,并在给定移位形状的情况下对图像进行采样。形状参数bs中g的每单位RMS变化给出了权重Ws,即公式5中用到的参数。

2.2、例子:脸部外观模型

我们使用上面描述的方法创建一个脸部外观模型。使用一个有400张人脸图像的训练集,每个标签有122个点。从图像中生成一个有23个参数的形状模型,一个有114个参数的自由形状灰度模型,和一个仅仅用80个参数来说明98%的观察到的变化的联合外观模型。该模型使用大约10000个像素值来构成脸部补丁。
图2和图3显示了通过加减3标准偏差改变前两个形状和灰度模型参数的效果,如从训练集确定的。 第一个参数对应于协方差矩阵的最大特征值,其给出了整个训练集的方差。 图4显示了改变前四个外观模型参数的效果,显示了身份,姿势和表情的变化。

2.3、逼近新样本

给定一张带标记的新图像,我们可以生成模型的近似值。结合匹配样本的形状和灰度参数,按照之前步骤得到b。因为Q是正交的,结合外观模型参数,可以得到c:
这里写图片描述
然后通过应用等式7,反转灰度级归一化,将适当的姿势应用于点并将灰度级向量投影到图像中来给出完全重建。
例如,图5示出了先前未见到的图像以及面部补片的模型重建(覆盖在原始图像上)。

3、主动外观模型搜索

我们现在解决中心问题:我们有一个要解释的图像,一个如上所述的完整外观模型和一个合理的起始近似。 我们提出了一种用于有效地调整模型参数的方案,从而生成合成示例,其尽可能地匹配新图像。 在给出算法的细节之前,我们首先概述基本思想.

3.1、概述

我们希望将解释视为一种优化问题,其中我们最小化新图像与外观模型合成的图像之间的差异。 差异向量我可以定义:
这里写图片描述
其中,Ii是图像灰度向量,Im是当前参数模型灰度向量。
为了找到模型和图像之间的最佳匹配,我们希望通过改变模型参数c来最小化差矢量 这里写图片描述的幅度。 由于外观模型可以具有许多参数,因此首先出现这是一个困难的高维优化问题。 但是,我们注意到,每次尝试将模型与新图像匹配实际上都是类似的优化问题。 我们建议提前了解如何解决这类问题。 通过提供在图像搜索期间如何调整模型参数的先验知识,我们得到了一种有效的运行时算法。 特别地,δI中的空间模式编码关于应如何改变模型参数以便实现更好拟合的信息。 在采用这种方法时,问题有两个部分:学习δI和模型参数δc中的误差之间的关系,并在迭代算法中使用这些知识来最小化△。

3.2、学习纠正模型参数

我们可以选择δI和模型参数中的误差之间的关系的最简单模型(以及需要进行的修正)是线性的:
这里写图片描述
结果证明这是一个足够好的近似值,可以获得可接受的结果。 为了找到A,我们对已知模型位移δc的样本和相应的差分图像δI执行多元多元线性回归。我们可以通过扰动已知模型的真实模型参数来生成这些随机位移集。这些可以是原始训练图像或使用外观模型生成的合成图像。 在后一种情况下,我们准确地知道参数,并且图像不会被噪声破坏。
除了模型参数的扰动外,我们还在2D位置,比例和方向上模拟小位移。 这四个额外参数包含在回归中; 为简单起见,它们可以简单地视为向量δc的额外元素。 为了保持线性,我们使用(Sx,Sy,Tx,ty,其中Sx=s*cos(Θ),sy=s*sin(Θ))表示姿势。 为了获得良好的关系,重要的是仔细选择计算图像差异的参照系。 最合适的参考框架是第2节中描述的形状标准化补丁。
我们计算一个差异:让c0成为当前图像的已知外观模型参数。 我们将参数置换已知量δc,以获得新参数c=δc+c0。 对于这些参数,我们使用7生成形状x和标准化灰度级gm。我们从图像中采样,使用点x进行扭曲,以获得标准化的样本gs。 然后样本误差为δg = gs-gm。
然后,训练算法简单地随机移动每个训练图像中的模型参数,记录c和g。 然后,我们执行多变量回归以获得关系:
这里写图片描述
在训练期间使用的δc的最佳值范围是通过实验确定的。 理想情况下,我们寻求建立一种关系,该关系可以保持尽可能大的范围误差δg。 然而,发现实际关系仅在有限的值范围内是线性的。 我们在人脸模型上的实验表明,对于每个模型参数,最佳扰动大约为0.5个标准偏差(在训练集上),大约10%的比例和2个像素的平移。
脸部建模结果:
我们将上述算法应用于2.2节中描述的人脸模型。 在执行线性回归之后,我们可以计算每个参数扰动的R2统计量,ci来测量误差向量δg“预测”位移的程度。 80个参数的平均R2值为0.82,最大值为0.98(第1个参数),最小值为0.48。
我们可以将扰动的影响可视化如下。 如果ai是回归矩阵A的第i行,则第i个参数ci的预测变化由下式给出
这里写图片描述
并且ai在估计位移时给出附加到采样贴片的不同区域的权重。 图6显示了与姿势参数变化相对应的权重(Sx,Sy,Tx,ty)。 明亮区域是正权重,暗区域是负区域。 正如人们所预料的那样,x和y位移权重类似于x和y导数图像。 对于对应于外观模型参数的权重获得类似的结果。
扰乱面部模型:
为了检验预测的性能,我们系统地将面部模型从一组10个测试图像上的真实位置移位,并使用该模型来预测给定采样误差矢量的位移。 图7和图8显示了针对实际翻译的预测翻译。 在零的约4个像素内存在良好的线性关系。 虽然这会因较大的位移而中断,但只要预测与实际误差具有相同的符号,并且不会过度预测,迭代更新方案就会收敛。 在这种情况下,x中最多20个像素位移,y中约10个像素位移应该是可校正的。
这里写图片描述
但是,我们可以通过构建对象外观的多分辨率模型来扩展此范围。 我们为每个训练图像生成高斯金字塔,并为金字塔的每个级别生成外观模型。 图9显示了在三个分辨率下以x换算的模型的预测。 L0是基本模型,大约10000像素。 L1具有大约2500个像素,L2具有大约600个像素。
这里写图片描述
曲线的线性区域在较粗糙的分辨率上延伸较大范围,但不如最精细的分辨率精确。 对于其他姿势参数和模型参数的变化,获得了类似的结果。

3.3、迭代模型改进

给定一种预测模型参数中需要进行校正的方法,我们可以构造一个迭代方法来解决我们的优化问题。 给定当前估计的模型参数c0和当前估计的归一化图像样本gs,迭代过程的一个步骤如下:
这里写图片描述
重复此过程,直到没有对错误g进行改进,并声明收敛。 我们使用多分辨率实现,在将当前解决方案投影到模型的下一级之前,我们迭代到每个级别的收敛。 这更有效,并且可以从远离单一分辨率的搜索收敛到正确的解决方案。
例子:
我们使用面部AAM在以前看不见的图像中搜索面部。 图10显示了模型的最佳拟合,给出了三个面用手标记的图像点。 图11显示了来自AAM搜索每个面部的帧,每个帧从从真实面部中心移位的平均模型开始。
这里写图片描述
作为将该方法应用于医学图像的示例,我们构建了膝部的一部分的外观模型,如通过MR图像的切片中所见。 该模型在30个实例上进行了训练,每个实例都标有42个标志点。
图12显示了改变前两个外观模型参数的效果。 图13显示了模型与新图像的最佳拟合,给定了手标记的标记点。 图14显示了来自移位位置的AAM搜索的帧。

小结:

这里写图片描述

AAM不仅可以用来提取特征(包括形状和外观灰度特征),还可以根据AAM参数来合成图像。准确的说,AAM是一个统计模型,包括了形状(ASM)和灰度纹理模型。我们选择带标记的训练集图像(这里可以是68点,可以是100点,又可以是单纯的嘴部点),使用AAM算法(论文里描述的),创建出基于这些训练图像的AAM模型,得到模型参数。使用训练好的模型,就可以对新的测试图像进行特征提取,同样包括形状和灰度纹理特征,另外,如果直接有这些AAM特征,可以合成一个人脸图像。

参考资料:

1、ASM和AAM资料汇总:https://blog.csdn.net/holybin/article/details/28596169
2、AAM算法介绍:https://blog.csdn.net/carson2005/article/details/8196996
3、AAM算法简介:https://blog.csdn.net/yangtrees/article/details/8710734
4、AAM和ASM的matlab工具包
5、一个相关的github项目:menpo project

猜你喜欢

转载自blog.csdn.net/sinat_28704977/article/details/82425287