4.1 计算机视觉中的统计模型
计算机视觉的最终目的是对图像的理解[4.30][4.31],即不仅仅能够恢复出图像的结构特征,还要具有辨别图像所代表的含义的能力。
在过去的几十年中,基于模型的视觉分析[4.32]已经成功地被应用于一些人造物体的图像中,但是运用这种基于模型方法来解释一些复杂的和变化的结构特征,比如人脸或人体内的肉眼能观察到的器官来说通常会显得比较困难。这种情况下,如果没有一种能够很好的处理干扰和不完整图像信息的有效模型,那么可靠恢复图像结构就有问题了。可见,问题的关键是图像结构的可变性。在可变结构中,要使模型有效,需要模型具有特定性,即根据模型化的对象,要能够描绘出“合法”的实例。如果考虑到自然界的种种变化,想得到这样的模型还是相当困难的,但是近年的研究和发展基本解决了这个问题,研究表明,形状和灰度外观的某些特殊变化模式能够被统计模型所刻画,因此,统计模型可以直接应用于图像解释。
4.1.1 构造可变模型研究的必要性
在计算机视觉中,处理问题的关键在于需要一个自动的系统能够“理解”图像所代表的含义。也就是说,不仅能恢复图像的结构还要可以知道它所代表的意义。这当然就需要一种能够描述或者标识自然界中结构的模型。
在实际应用中,比较容易处理“刚性”物体的问题,但是也常常会遇到柔性物体对象。比如说人脸这样的目标物体实际是形状可变的,基于形状可变的物体模型也就必须具有典型的特征,能处理复杂和多变的结构。人们自然想到的是构造一种可以变化的模型。这种模型必须具有保持某类对象所表现出的重要特征的能力,模型的变化范围必须有一定的限制,只能适合于一个范围内的对象。这种模型实际上包含以下两个方面的主要特征。第一,模型必须具有通用性,即模型必须能产生出该类对象的一切近似的实例;第二,模型又必须具有特定性,即它应该只能产生出合法的对象实例。所谓合法,是指模型不能产生超越某一特定条件之外的实例。
基于模型的方法实际是用已有的图像构造出一个预处理的模型,然后用该模型对新的图像做试验,找到一个能最好匹配的途径。在得到匹配模型之后,可以将其与目标对象进行测量,看是不是确切的表达出了目标的内容。
对于这样的问题,基于统计模型的方法提供了可能的解决方案。对于柔性目标物体,适当运用图像的形状结构特征和空间相互关系,以及它们的灰度外观等先验知识得到描述这些特征的自动系统,并对该系统进行约束使其能对图像做出正确的解释。对于一个人脸模型,该系统可以产生出任何一个令人足够信服的图像,包括可以改变他们的面部表情等。运用这种模型,图像解释问题就可以简洁的被理解为一个匹配问题。对于给定待解释的图像,它的结构可以通过调整模型的参数来得到一个再生的图像,这个新生的图像可以足够的相似于真实的图像。
这种方法是一种“自顶而下”的策略,这和“自底而上”或者“数据驱动”的方法是有着本质的区别的。在后者中,图像数据在底层被检测,搜索出局部的结构特征,如边界等。这些特征被归类分组并用于对所感兴趣区域的判定和解释。没有一个宏观上的整体模型的支持,这种方法往往操作起来比较烦琐和困难,甚至常常会导致失败。
4.1.2 基于统计模型的特点
到目前为止,已经探索出许多基于模型的方案,其中主要的焦点集中在通过统计方法来实现基于模型的方案。这种统计模型是通过分析一个标定样本集的外观来建立的。在样本集中,图像的结构在形状、外观、纹理或者质地上有变化,从中可以学习到哪些是近似的变化,哪些不是。通过寻找模型对于图像数据的最佳匹配方案来完成统计模型对一幅新图像的解释。这种方法的优点主要体现在[4.33]:
① 具有广泛的适用性。同一套算法可以应用于许多不同的问题,区别仅仅在于提供不同的训练集。
② 系统中对训练集的标定可以参考专家的经验。
③ 模型给出了一个简洁的表达方式,它允许一定范围内的变化,但是有足够的能力排除不同于训练集得到的变化范围以外的任何变化。
④ 除了从训练集学习到的特征,系统不需要任何标定的对象特征的其他任何先验假设,比如模型中不需要类似边界光滑度的一些参数。
下面主要描述如何建立关于形状的统计模型,其次介绍这种模型是如何用来对一幅新图像进行解释的。
4.1.3 统计形状模型的理论基础和建立
下面介绍描述图像中对象形状的统计模型。
一个图像对象的形状通常用一个n点的集合来表示,这个点集合可以是任何维数空间中的点集合,通常涉及的问题主要集中在二维和三维情况。
形状定义:在相似变换下,一个点集合所构成的结构属性。
在二维或三维空间内的相似变换,如平移、旋转、放大或缩小是指一个物体的形状在平移、旋转或放大缩小时是不变的。
建立对象形状统计模型的目的是得到一种不仅能分析新的图像,还可以综合许多形状,使其相似于训练集中的目标模型。
训练集主要是通过手动标定一组图像来完成,之后通过对标定后的图像进行各种变化的分析建立模型。
下面的介绍主要是如何用相似变换T(·)建立这样的模型。所有的例子是二维的。
4.1.4 选择适当的标定点
选择好的标定点很重要,它们通常应该能对于每一幅图像是始终不变的。产生一个训练集最简单的方法就是将训练集中的每一幅图像用一系列相关的点来进行标定,这项工作通常是非常费时的,所以也可以用一些自动的或是半自动的方法来作标定工作[4.29]。
在二维图像中,标定点通常应该被放置在目标边界的拐角处,几个边界交接的“T”形连接处,或是一些很容易被定位的具有明显特征的位置。但是只依靠这些明显的标志点是远远不够的,这些点往往过于稀疏不足以描述目标对象的形状特征,所以要在这些点中间增加适当数量的点,并使它们平均分布于特征点之间从而构成描述图像形状的完善的标定点集。
如果在d维空间用n个点来标定形状,那么将这些点的位置向量相互连接便组成一个nd个元素组成的形状向量。例如,在一幅二维图像中,将n个标识点表示为{(xi,yi)},其中0 1≤ i≤n-,那么形状向量就是一个2n个元素的向量,表示为
如果给定N个训练样本,则可得到N个这样的向量x。这样就得到了所有训练样本的形状向量。在对这些向量进行进一步统计分析之前,有一项很重要的工作就是要使这些向量位于一个统一的坐标系下,即对这些向量进行标准化,这将在后续内容中进行详细介绍。
4.1.5 变化形状的建模
假设:已知N个形状向量{xi,i=1, 2, …,N}标准化到了统一的参考坐标系下,在二维欧式空间中统计这些向量的分布,则可以对这个分布进行建模,并可以用所建模型产生新的实例。这些实例相似于原始训练集中的图像,而且可以判断生成的新的实例是不是能够足够近似。建立一个带参数模型的表达形式如下[4.14]:
式中,b是模型的参数向量;M是建模的方案。这样的模型可以用来产生出所需要的形状向量x。如果能得到参数b的分布模型,就可以对其加以约束,使得到的x能足够相似于训练集中的图像。同样用这个模型还可以估计出形状向量的分布p(x)。
为了使问题简化,通常希望减小数据的维数,使处理简单易行。要达到这个目的一个最好的方法就是采用主成分分析(PCA)。假设一个nd维的空间里分布着一系列点,主成分分析法能够寻找出这组点分布的主轴,用少于nd个参数的模型来近似任何一个原始点。该方法的原理如下:
① 计算样本的均值向量
② 计算样本的协方差矩阵
③ 计算协方差矩阵的特征值和特征向量,并按特征值从大到小排序,在给定的待保留信息量的基础上,只保留前t个特征值和特征向量,并将前t个特征向量构造成投影矩阵
Φ=(φ1,φ2,…,φt),λ=(λ1,λ2,…,λt)
如果Φ包含t个最大的特征值对应的t个特征向量,就可以将任意训练集x近似的表示成
其中b是t维向量,可以相应的表示为
向量b是一个参数集合,用来描述可变形的模型。通过改变向量b中的参数就可以得到变化的形状向量x。第i个参数在训练集范围内的改变量是由λi控制的,将bi的变化限制在范围内,就能确保由可变化参数模型生成的形状向量能够足够相似于原始训练集中的样本。
举例来说,假设如图4.1所示,有一个二维点分布向量,其中画出了主轴。在这种情况下,样本点中的任何一个点都可以通过平均值和离该点最近的主轴上的点来共同表示。也就是说,,这里b是沿主轴方向从距离x最近的主轴上的点到平均值之间的距离。P 代表主轴。这样当已知主轴方程,则一个二维数据点集就可以用一个仅带一个参数b的模型来完全近似。同样道理,形状模型控制成千上万个点也仅仅靠较少的参数就可以完成,并通过改变这些参数达到近似出原始训练集中样本的目的。
图4.1 二维点分布向量和其中主轴的关系
这时有一个问题就是t是如何确定的,选择t的数目只要保证模型保留一定比例的数据变化量即可,这个比例比如说是98%,那么剩余的变化量可以看成是噪声干扰而忽略掉。实际上,t 参数大小的选择可以采用很多方式,其中最简单的方法就是上面讲到的保留一定比例的训练集样本变化量,这个比例通常是人为给定。λi是训练集形状向量方差阵的特征值,每个特征值给出了在相应的特征向量方向上数据对于平均值的变化量,训练集数据的总变化量就是所有这些特征值的总和,即VT=∑λi。那么选择t个最大的特征值使特征值满足下式:
这里定义了期望的变化量占训练集数据的总变化量的比例。如果干扰所带来的偏差记为,那么应该选择一个最大的t使,这里假设所有特征值是按照从大到小排列的。
4.1.6 统计模型的匹配
在一幅图像中,描述一个模型的实例,通常要适当的选择形状参数b,同时还要进行从模型坐标系到图像坐标系的变换。特别是要经过一个相似变换,其中的参数分别有位移量(Xt,Yt),旋转角度为θ,放大比例为S[4.33]。这样,模型中点的位置x的表达式为
这里,TX,Y,S,θ给出了旋转的参数θ、放大比例的参数S和平移参数(Xt,Yt)。例如对一个单独的点(x, y)应用上面的变换式,可以得到
现在希望在变换中找到最合适的位置参数和形状参数,使一个模型的实例X可以很好的匹配一个新的图像点集Y。使模型与相应图像的点之间的距离达到最小,也就是使下面的表达式取最小值:
要想使该式的值最小,下面是一个算法的迭代流程:
① 初始化形状参数向量b到0。
② 生成模型的实例。
③ 寻找位置参数(Xt,Yt,s,θ),使x最佳地映射到Y。
④ 通过位置参数的逆变换将Y映射回模型参考坐标系:
⑤ 将y映射到-的正切空间得。
⑥ 更新模型参数b,使其匹配y,
⑦ 将b进行约束使。
⑧ 如果不收敛,则返回第②步继续。
所谓收敛就是在迭代过程中位置参数和形状参数不再发生明显变化。这个方法通常仅需要少量迭代就可以收敛。
4.1.7 统计模型的测试
上述形状模型从一定意义上讲是训练集中图像的线性组合,为了使模型能够很好的匹配一个新的图像,训练集必须能展现被建模这类形状的所有期望变化。如果不是这样,模型就处于过约束状态,即它不能匹配某种新的样本。举例来讲,如果只对一组正方形进行建模,训练出来的模型是不能产生长方形的。
一种测试模型是否能很好产生新的样本的办法是对给定的N个样本的训练集,任意丢掉一个样本,对剩下的所有样本进行建模,然后把模型与丢掉的样本进行匹配,并记录下误差。然后依次丢掉剩下的任意样本,并重复上述的过程。如果对任何一个样本,误差超出规定的范围,则需要更多的训练样本。所有样本的很小的误差仅仅意味着对于每种形状的变化不止有一个样本,也就是说,没有包括所有的变化类型。
式(4.7)求出了所有点误差的平方和,这种方式可能会使某一两个误差很大的点被平均化,也就是说,它给出了从整体意义上判别两者误差的方法。以更有效或更提倡的方式对每一个点计算误差,并使任意一个点上的误差中的最大值足够小。
4.1.8 估计形状向量的分布
原始训练集一旦被标准化,就可以认为是由概率密度函数p(x)得到的一个样本集合,因此必须能够较准确地估计出这个概率密度函数的分布。任何一个形状都可以被近似认为是由特征向量φ构造的子空间中的一组最接近点的集合。子空间中的一点是通过形状参数向量b来定义的。
令,则它的最小方差近似估计可以表示为
x′=Φb
这里=bΦ-1dx。则残差为
r=dx-Φb,
计算残差能量有
r2=rTr=dxTdx - 2dxΦb +bTΦTΦb=dx2 -b2
运用主成分分析法将形状向量分解成两个相互正交的分量,它们的系数分别是向量b和r的元素,且认为它们是相互独立的,那么有
p(x)=p(r)p(b)
则
logp(x)=logp(r) + logp(b)
如果假设向量r的任意元素是相互独立的,并且遵循方差为的高斯分布,则
参数b的概率密度函数的分布表达式在前面已经提到过了,因此就可以估计出一个新的形状向量x的概率密度函数:
当训练集中只有少量样本时,由它们建立的模型是过约束的,这样的模型只能表现出训练集中的、仅有的少数形状的变化形式。在这种情况下,可以人为地添加一些额外的变化信息,让模型具有更强的柔韧性。