选取N幅同类目标物体的二维图像,并用上一篇博文的方法标注轮廓点,这样就得到训练样本集:
由于图像中目标物体的形状和位置存在较大偏差,因此所得到的数据并不具有仿射不变性,需要对其进行归一化处理。这里采用Procrustes分析方法对样本集中的所有形状集合进行归一化。形状和位置的载体还是样本点的空间坐标。
普氏分析法是一种用来分析形状分布的方法。数学上来讲,就是不断迭代,寻找标准形状(canonical shape),并利用最小二乘法寻找每个样本形状到这个标准形状的仿射变化方式。(可参照维基百科的GPA算法)
本书中,两个形状的归一化过程(一个形状为canonical shape,另一个为样本形状):
(1) 求每个样本点i(i=1,2..,n)在N幅图像中的均值
(2) 对所有形状的大小进行归一化,即将每个样本点减去其对应均值
(3) 根据去中心化数据,计算每幅图像中形状的重心,对于第i幅图像,其重心为:
(4) 根据重心和角度,将标准和样本形状对齐在一起,使得两个形状的普氏距离最小,下式为普氏距离定义:
这个第(4)步的具体做法,不断迭代以下过程:
(a)通过计算每幅图像中所有归一化样本点的平均值得到每个图像的标准形状canonical shape。
(b)利用最小二乘法求每个图像中样本形状到标准形状的旋转角度。根据普氏距离的定义,也就是求:
其中的a和b表示仿射变换里旋转变化的参数:
对上式求偏导数,可以得到所求的a和b:
(c)根据旋转参数,对样本形状做旋转变化,得到和标准形状对齐的新的形状
(d)重复以上步骤,直到达到指定循环次数或者前后两次迭代之间canonical shape的绝对范数满足一定阈值
Procrustesanalysis的作用可以看作是一种对原始数据的预处理,目的是为了获取更好的局部变化模型作为后续模型学习的基础。如下图所示,每一个人脸特征点可以用一种单独的颜色表示;经过归一化变化,人脸的结构越来越明显,即脸部特征簇的位置越来越接近他们的平均位置;经过一系列迭代,尺度和旋转的归一化操作&