1、基于 ASM 的人脸定位 系统设计本科毕业论文(科研训练、毕业设计)题 目:基于 ASM 的人脸定位系统设计姓 名:学 院:软件学院系:软件工程专 业:软件工程年 级:学 号:指导教师(校内): 职称: 年 月基于 ASM 的人脸定位 系统设计II基于 ASM 的人脸定位系统设计摘 要 本文介绍了一个基于 ASM(Active Shape Model 主动形状模型) 1人脸定位系统的设计过程。本系统设计的目的是对人脸的轮廓进行几何对齐 2实现人脸轮廓定位目标。在该系统中我们事先采集了 M 个不同身份人的不同姿态免冠照片共S 张作为训练样本集合,对训练样本采用 ASM 进行特征点定位,根据标定的
2、 N 个特征点坐标组成的向量空间进行 PCA 3 (Principal Component Analysis 独立主元分析)建模,得到一个降维的模型作为人脸几何结构的统计模型 4。之后对用户给定的正面人脸照片,通过 ASM 算法训练好的人脸结构的统计模型,移动到当前图片中各特征位置沿法线方向的邻域内最佳匹配的位置,同时通过训练样本计算出它的平均轮廓 5,以及相应的几何平均轮廓上出现的变化;然后对图像经过几次几何变化后得到最佳匹配对齐的人脸轮廓线条模型。这个系统,可以基本消除人脸几何差异性的影响对轮廓实现几何对齐,生成高质量的正面人脸轮廓模型,实现人脸定位。通过系统的设计目的本文将详细介绍本系统
3、的设计过程和程序实现过程。关键词 ASM(Active Shape Model) 几何对齐 主元分析(PCA) 统计模型 平均轮廓基于 ASM 的人脸定位 系统设计IIIASM -based Face Positioning System Design ProcessAbstract This paper is about ASM -based (Active Shape Model) 1 Face Positioning System design process. The purposes of the system design are to draw the outline of a
4、human face and to achieve face position. In the system we collect some photos with different pose from different people as a training sample collection, we use ASM algorithm to posit characteristic points of training samples, according to the characteristic demarcation point coordinates of the vecto
5、r space Independent PCA 3 model, with a drop-dimensional model of the human face as a geometric structure of the statistical model 4. After the user inputs image and searches result of ASM, training human face of the statistical model, moving to the current picture in the direction of the normal the
6、 facial feature points along the neighborhood of matching the best location, at the same time, through training sample calculation The Mean Shape 5, and the corresponding profile on the geometric mean of a change, then the image after several geometric changes after matching the best alignment face
7、contour lines of the model. This system can basically eliminate differences in facial geometry of the impact of geometric contours to achieve alignment, generating high-quality positive face contour model, and face positioning. Through this system is designed to introduce the system in detail the de
8、sign, implementation of the procedures. Keywords ASM (Active Shape Model); geometric alignment; statistical model; PCA (principal component analysis); Mean Shape基于 ASM 的人脸定位系统设计IV目录第一章 引言 .8第二章 ASM 算法详细介绍 .92.1 ASM 算 法思想综述 92.2 ASM 算法的数学背景 102.2.1 ASM 算法用到的线性代数知识 .102.2.2 ASM 算法用到的概率与统计知识 .112.3 PCA
9、 分析 .122.3.1 PCA 原理在人脸建模上的应用 132.3.2 用 PCA 人脸建模的步骤 .152.4 本章小结 16第三章 基于 ASM 人脸定位系统的总体设计 173.1 系统开发的 环境 173.1.1 MFC 简介 .173.2 系统设计的目的 183.3 系统总体设计过程 183.3.1 样本采集工具 .193.3.2 样本数据计算与处理 .193.3.3 样本数据验 证 .203.3.4 系统集成 .203.3.5 待定位的人脸照片输入 .203.3.6 图像搜索与匹配 .203.3.7 搜索匹配后结果输出 .213.4 本章小结 21第四章 基于 ASM 人脸定位系统
10、的详细设计 224.1 系统详细构架 224.2 工具集合 234.2.1 样本取点器 .23基于 ASM 的人脸定位系统设计V4.2.2 线条连接设计器 .254.2.3 矩阵浏览器 .264.2.4 模型浏览器 .264.2.5 图像处理模 块 .294.2.6 代数运算模块 .294.3 本章小结 30第五章 基于 ASM 人脸定位系统程序实现 315.1 系统界面 315.1.1 工具菜单 .325.2 程序主要类的说明 345.2.1 CSignalStudioDoc 类 355.2.2 CSignalStudioView 类 365.2.3 CAmplifyRateManager
11、类 365.2.4 CMagicRect 类 375.2.5 其它类 .385.3 完成一次实例搜索定位 39第六章 总结 .42致谢语 .43参考文献 .44基于 ASM 的人脸定位系统设计VIContentsChapter 1 Introduction .8Chapter 2 ASM algorithm detailed 92.1 Summary of ASM algorithm .92.2 ASM mathematical algorithm background 102.2.1 ASM algorithm used linear algebra knowledge102.2.2 ASM
12、 algorithm used probability and statistics .112.3 PCA Introduction .122.3.1 PCA principles in the face modeling 132.3.2 The steps of PCA modeling face.152.4 Summary of chapter .16Chapter 3 The total design of ASM-based Face Positioning System 173.1 System development environment .173.1.1 MFC Introdu
13、ction173.2 The purpose of system design 183.3 System design process183.3.1 Sampling tool 193.3.2 Sample data calculation and processing193.3.3 Sample data verification203.3.4 System Integration 203.3.5 Photos of to be targeted Face the importation.203.3.6 Image search and match 203.3.7 Search result
14、s output after matches.213.4 Summary of chapter .21Chapter 4 The detailed design of ASM-based Face Positioning System.224.1 Detailed framework224.2 Tool collection .23基于 ASM 的人脸定位系统设计VII4.2.1 Samples from point .234.2.2 Lines connecting Designer .254.2.3 Matrix browser 264.2.4 Model browser 264.2.5
15、Image processing module294.2.6 Algebraic operations module 294.3 Summary of chapter .30Chapter 5 ASM -based Face Positioning System program315.1 System interface .315.1.1 Tools menu325.2 Major classes of procedures .345.2.1 CSignalStudioDoc class 355.2.2 CSignalStudioView class 365.2.3 CAmplifyRateM
16、anager class 365.2.4 CMagicRect class375.2.5 Other class.385.3 Complete example of a targeted search .39Chapter 6 Conclusion.42Acknowledgement.43References .44基于 ASM 的人脸定位系统设计VIII第一章 引言本文介绍了基于 ASM 人脸定位系统,人脸面部特征定位是人脸识别过程中的重要环节。人脸识别可以分为人脸检测、 面部特征定位、人脸比对三个部分。人脸定位技术是在人脸检测的基础上,对人脸面部关键特征定位,试图检测人脸的主要的面部特征点
17、的位置眼睛、嘴巴、鼻子、下巴等主要器官的形状信息。对于定位问题人们采用众多方法来实现如灰度积分投影曲线分析、模板匹配、可变形模板、Hough 变换、Snake 算子、基于 Gabor 小波变换的弹性图匹配技术、ASM 主动性状模型和 AAM 主动外观模型是常用的方法。本课题采用 ASM(Active Shape Model)主动形状模型方法,它是近年来流行的一般对象形状提取算法,其核心思想是在某种局部点模型匹配的基础上,利用统计模型对待识别的人脸的形状进行约束,从而转化为一个优化的问题,并期望最终收敛到实际的人脸形状上去,搜索和匹配到最佳的人脸轮廓,达到人脸定位。 上述简要介绍了本系统的开发背
18、景及核心算法接下来的章节将主要围绕以下内容展开。首先详细的介绍 ASM(Active Shape Model 主动形状模型)算法思想,这是本系统的设计基础;其次对人脸定位系统的总体设计进行阐述,从一个宏观的角度分析系统的设计过程;再次对系统详细设计进行说明,对主要工具设计及其功能的实现进行阐述;第四对本系统最后调试运行与实现情况进行论述;最后是对本系统进行客观的评价以及对系统的未来完善的畅想。 基于 ASM 的人脸定位系统设计IX第二章 ASM 算法详细介绍2.1 ASM 算法思想综述ASM( Active Shape Model)主动形状模型是一种对在图片中的已知实物对象的进行识别定位的工具
19、,是概率统计线性代数等数学知识的一种很巧妙地应用。它是一种数学建模方法,更是思维方式的提升。ASM 是当今很流行的一种基于灰度差别的对象识别算法,具有相当的通用性,可用于对各种形状相对稳定的物体进行识别,如常见的人脸识别。1995 年,Cootes et al 提出 ASM1,从那以后,ASM 已经发展和完善了很多年。ASM 是由一组统计模型 4集和一组可改变形状的模型组成,可变模型描述了一组手动标注的形状轮廓集合(有的可以用程序标注)的典型变化,统计模型描述了每个形状轮廓点的灰度值的结构的统计情况。通过各个点的灰度值统计模型,我们可以在被搜索的图片上找到具有类似灰度值结构的点,通过足够准确的
20、起始点,ASM会利用统计模型(之前用来训练的数据模型)试图在新给的图像数据中寻找最佳的匹配模型。在搜索过程中,ASM 会应用全局变量限制来保证模型在一个可能的变化范围内变形以匹配新的数据中的模型。 目前有很多关于 ASM 的扩展研究,很多人在单纯的 ASM 基础上加入了一些新的算法以弥补 ASM 的一些不足。 如 ASM 易受图片采集时的光照条件的影响,有人把 LBP (Local Binary Pattern)6与 ASM 结合来强化 ASM 对光照变化的稳定度和健壮性。而另一种由 ASM 的演化来的更强的识别算法就是 AAM7(Active Appearance Model) 6,AAM
21、的匹配能力和健壮性都很强,它的所有思想基本上都是从 ASM 上继承而来的。与 ASM 的不同之处是它不仅利用了对象的形状信息而且利用了对象的纹理信息,这种模型的匹配精度比较好,但与 ASM 相比,其执行一交搜索的时间要长一些。另一种弥补的方法是 ASM 采用参数化的采样形状来构成对象形状模型,并利用PCA 方法建立描述形状的控制点的运动模型,最后利用一组参数值来控制形状控制点的位置变化从而逼近当前对象的形状,然而该方法只单纯利用对象的形状,准确率不高。基于 ASM 的人脸定位系统设计X2.2 ASM 算法的数学背景ASM 算法作为一种图像建模的方法,它巧妙的将概率统计及线性代数等数学知识融合应
22、用发展成为现今的一种成熟图像处理识别算法。ASM 用到的线性代数知识主要是矩阵的特征值和特征向量;向量场及其切平面空间;概率与统计上的样本平均均值,样本方差,协方差矩阵;PCA 分析等;在 ASM 的编程实现过程中用到的数学单位向量的,角平分线等。2.2.1 ASM 算法用到的线性代数知识 8(1)基础解系ASM 的数学的基本思想源自线性代数中的解空间的数学理论,即在一个 n 维的空间中,任意一个点的位置可以由任意一组 n 维的线性无关的长度为 n 的向量线性表示,也就是可以由任意一组基础解系线性表示 n 维空间中的任一点。如下面的线性运算,形式如下:向量 可以由一个线性无关的同维数的向量组
23、1nx 11nna 表示为 的表达式。其中的向量 ,21 2113121 221*nnnnaax abbb 21na向量 ,向量 ,.,向量 为向量 的一组基础解系, , , 为122na1321na2na1nx1b23n各个基础解分量的系数。如果把每一张人脸都表示成n 维空间中的一个点,也即表示成一个从原点(0 , 0 , 0 ) 出发的一个n 维空间中的一个向量,然后从一堆点向量中找出足够表示所有可能脸向量的一组类似的基础解系。之所以用“类似”,并不是说找出来的解就是代数中完全的基础解系,而只是这基础解系中“主要”的一部分解,因为一般情况下,一张脸会用很多点表示,就会形成一个很高维度的向量
24、(一般有上百个维),如果求其的完全解系,就需要很多的训练样本和大量的运算。在找出基础解系后,我们就可以用它来基于 ASM 的人脸定位系统设计XI表示所有可能情况下的人脸。只要改变一下各个基础解分量的系数就可以得到不同形状的人脸。(2)特征值、特征向量若存在非零 使得以下等式成立(1-1)则其中 称为矩阵 的特征值,对应的向量 称为此矩阵的特征向量。11nna 1xn再由线性代数知识一个行列式不为零的方阵总是有n个特征值和n个特征向量,特别当矩阵是实对阵时,其特征向量和特征值都是实数且其特征向量构成的矩阵为正交矩阵。给定一个实对称矩阵A,我们可以得到n个特征值以及对应的 n个特征向量:n个特征值
25、:n个特征向量: V0 , V1,. Vn-12.2.2 ASM 算法用到的概率与统计知识 9(1)样本在人脸定位ASM建模中的样本是由很多人脸图片组成的,在本文的研究中对训练样本作了如下的假设:只使用免冠人脸样本没有大角度旋转,不戴眼镜没有非常浓密的胡须等;不对特征点标注进行漫画式的夸张,即手工标注的轮廓线条画和给定的 人脸照片在结构上是对齐的。我们把每张图片中的人脸在其轮廓上取相同的N 个点,把它们的坐标组成向量,并表示成2N维的向量。我们有M张人脸的图片,于是通过对每张图片进行向量的建模,我们就得到M个2N维的向量 组成系统的样本。将向量 简化表示为 T。xy,(2)平均模型与协方差矩阵
26、平均模型也就是平均向量,就是求M个样本的平均值,于是我们得到一个平均模型5。111nnaxn 1,2, n1212,Tnn 1niixxN1212,Tnnxy 基于 ASM 的人脸定位系统设计XII(1-2)有了平均模型,就可以计算这M个人脸模型的协方差矩阵(1-3)在代数统计中,我们知道,任何一个向样本都是可以表示成平均样本加上样本与平均样本的差,即(1-4)类似在有了平均模型和平均模型的协方差矩阵我们就可以将任何一张人脸表示为S =S+Qsbs (1-5)其中S 即是平均脸向量, Qs 为由协方差求得的特征向量组成的一个类基础解系, b s 是Qs 中各个向量分量的系数。如下图 10:图
27、1 人脸的平均模型表示从图中我们可以看到,S 0 就是平均脸, S 即是我们要表示的新脸, s 可以用S 0 加上方差矩阵的线性的成的一个差值。2.3 PCA 分析 3PCA(Principal Components Analysis 主元分析法)是一个很重要的数学分析工具。在介绍 PCA 之前我有必要先引入另一知识,先看一实例。1()()NTiiiSxx()xx基于 ASM 的人脸定位系统设计XIII如:假设在我们的系统中它的样本是 120 张人脸图片,我们把每张图片用 59 个点来描述,于是每个点就表示成 128 维的向量,(由每张人脸的轮廓上取相同的 N 个点,把它们的坐标组成向量,并表
28、示成 2N 维的向量可知) 。我们经过上面的求平均模型和协方差矩阵后就得到一个 128 维的平均模型和 128128 的协方差矩阵。 在表示任意一张人脸模型时,需要进行下面的计算:(详见在2.2.1)这些表示人脸的向量在 128 维的空间中是一团点集,因为人脸的相对稳定,在空间中这些点分布是很集中的,是分布上一个 128 维空间中的一条直线的周围。图 2 128 维的空间中人脸图像将人脸向量如此表示之后我们就会很有必要的用到了 PCA。接下来我们详细介绍 PCA(Principal Components Analysis 主元分析法)的原理及它在本系统建模中的功用。 2.3.1 PCA 原理在
29、人脸建模上的应用PCA 原理示意图如下:其中黑色的斑点是样本点,最初分布在 X-Y 空 间中。PCA的目标就是找到图中的 1st PC 和 2nd PC,或者说是这两个 PC 张成的空间(实际上还可以有 nth PC,只是还不会画 N 维空间的情形) 。注意到两个 PC 构成的空间比原来的 X-Y 空间更好的反映了样本分布,而且样本沿 1st PC 方向比 2nd PC 方向分布更广,PCA 中用方差表述这种在不同 PC 方向上的分布散度 。 12128.yxbxbx128 维的空间中人脸图像1 128.基于 ASM 的人脸定位系统设计XIV图 3 PCA 原理PCA 提取的核心信息的正式名称
30、是特征子空间 11,而最初的信息就是整个信息空间。如果信息空间是 N 维的,则 PCA 的目标是找到 K 个相互正交的向量(特征向量)张成一个 K 维的特征子空间,这个特征子空间中包括了大多数的信息量,或者说这个子空间的 K 个基可以近似的表示整个 N 维空间。如前面的原理示意图中,可以选择 1st PC 方向作为子空间,因为样本在这个方向的投影 12最够散,可以近似表示样本集。再具体一点,如果有 N 个样本, 每个样本的尺寸为 S,则可以构成一个 S*N 的矩阵 X,每一列对应一个样本,当然矩阵 X 中一定是存在冗余信息,除非有人保证每个样本是绝对无关的。为 此,考虑 X 的协方差矩阵 E,
31、这个 E 就对应着前面所说的 N 维特征空间。现在的目标是在 E 对应的空间中找到一个子空间,即为子空间确定基。学过矩阵都知道了,矩阵的特征向量就是矩阵对应空间的一组正交基,求出 E 的特征向量、特征值(详见 2.2.1)待用。下面是 PCA 神奇功能的关键之处了:设(V, )是一对特征向量和特征值,则 对应着样本在 V(方向) 上分布的方差,反映了样本在 V(方向) 上的分散程度,进一步方差对应着能量的分布。有了能量的概念后面便好理解了,万物皆是能量,如果一个子空间拥有了 “母空间“所有能量中绝大多数的能量,可以说子空间在一定程度上可以近似“母空间“.取特征值最大的 k 个特征值对应的特征向
32、量组成一个 k 维 的子空间 (前提是有这么多的特征向量),这个子空间就是前面所说的核心信息了,可以使用这 K 个特征值的和(既然当作方差了,就想办法把负号去掉)和所有特征值的比值衡量子空间对“母空间” 近程度。任何一种方法都要有应用价值,PCA 本质上只是一个降维的方法,它可以把用子空间(K 维空间)逼近 “母空间 “(N 维空间,NK) ,在计算上,降维 可以降低时间和基于 ASM 的人脸定位系统设计XV空间开销。子空间的一个应用是判断两个样本的相似程度。在人脸样本母空间 A,子空间 B,现在要判断 A,B 是不是相似的,相似度有多少,计算 矩阵 D = A - B,看看D 的大小就可以了
33、。前面提到的特征值和方差的对应关系:“设(V, )是一对特征向量和特征值,则 对应着样本在 V(方向)上分布的方差,反映 了样本在 V(方向)上的分散程度”。设特征向量 V0 对应一个较小的特征值 0,V 1 对应一个较大的特征向值 1,当然 V0,V1 都是子空间同一组基中的向量。D 在 V1 上的投影可能远大于在 V0 上的投影,因为样本在 V1 方向分布本来就很散(正态分布中 99的点落在均值左右 3 倍标准差之间),这样导致 的问题是尽管 A,B 很相似,但是因为它们的形似主要体现在 V1这样对应大方差的基上,使得 D 很大,这显然会导致误判。假设样本在每个基上的分布服从正态分布,把
34、D 在每个基上的投影值代入概率密度函数,把计算的结果连乘就 得到 D 对应的相似性概率.D=V( 1, 2, n)这样我们就得到 n 维空间中人脸的近似子空间的差 D。我们可以用平均人脸模型加上这个矩阵 D 的一个线性组合来表示任何一张脸,通过 PCA 变换后、我们就可以减少计算的规模,和表示一张人脸所需的维度。2.3.2 用 PCA 建模人脸的步骤1.求协方差矩阵(1-6)1()()NTiiiSxx(其中N 为训练图片的数量)2.求协方差的特征值和特征向量求得S 的特征值和对应的特征向量,并按特征值的大小,从大到小排列特征向量:V 0, V1,V2,. Vn-1其对应的特征值为: 1 2 n
35、 ,其中 i i+1。3.利用PCA原理和相关算法,我们得到一个变换矩阵D,D=V( 1, 2, n)4.利用前面几步得到的结果,我们就可以用得到的矩阵和一组参数b 加上平均模型来大致表示任一人脸向量X,即:xx+Db (*) (1-7)其中b 是一个t 维的向量(t nd,d 在此为2,n 为一个图片中所取的点的数基于 ASM 的人脸定位系统设计XVI量),反过来,如果我们有一个新的脸向量X,我们就可以通过这个式子来得到其对应的参数b:b= DT(xx) (*)从这个表达式我们也可以看到,任一个新的向量都可以通过改变参数了,并代入(*)就可以近似表示这个向量。这里要说明的一点是,向量 b=(
36、 b1, b2, bt ) 中的每一个分量都具有相对的独立性,即其变化不受其它分量变化的影响。这样一来,任何一个变量都有可能在一个相当大的范围内变化,这样就不能保证通过(*)匹配得到的新的 X 是我们想要的人脸形状。因此, 有必要对这些参数的变化范围进行约束, 常用的方法是把 bi 的范围限制在( , )之间,其中3i 为 D 的 第 i 个分量,当 bi 小于这个范围的下限时,就让它等于 而当3其超过上限时,就让它等于 。通过这样的变化限制,我们就可以保证得到3的新模型是一种可能的人脸模型。2.4 本章小结本章详细的介绍了 ASM 算法思想,介绍了人脸轮廓的建模方法,这是在整个系统开发中的核
37、心思想,方法和算法。其中人脸轮廓的数学建模是重中之重,总是在强调建模的重要性,一个好的建模方法将会诞生一个完美的模型随之有一个可用性很好的系统。从这个中心开始,一切为了建模出发开始对开发本系统进行了简单的需求分析,以此来制定可行性的系统架构,按照系统架构设计的开发顺序,先后的实现各个模块的功能,完成接口工作实现模块整合。在此开发过程中我的搭档鄂爽同学精心的做算法分析和设计工作,齐心协力下本系统诞生了。在接下来的章节中我将对系统整体设计加以介绍。我只是侧重我的工作范畴做讲解,对于算法部分,及代码实现方面有疑惑可以阅读我搭档鄂爽的论文。基于 ASM 的人脸定位系统设计XVII第三章 基于 ASM
38、人脸定位系统的总体设计3.1 系统开发的环境系统开发的软件环境和采用工具:项目是在Windows 平台下开发的,采用Microsoft 的开发工具Visual S 2005开发,开发语言是C+,开发结构利用的是MFC 的文档视图框架。Visual S 2005 是一个集成的开发环境,其集成了微软的几种基于.net 开发语言,如VB,VC,VC #,VJ#等。Visual S 2005 是一个强大的集成开发平台,支持跨语言开发,团队开发测试等,是一个非常友好的开发平台,其调试功能十分强大,它的代码编辑器更是优秀。在用.net 开发时,编辑器能有效也提供错误修正建议并智能纠错,使得代码的编写变得很
39、人性化。本项目是采用VC 中的MFC 编写,充分发挥MFC 传统的灵活高效优势,并且MFC 是可以扩展到.net 的,又可以充分发挥.net 技术的新优势。VC是.net 下一种允许使用非安全代码和托管代码混合编程的语言,这也是VC 的优势。3.1.1 MFC 简介MFC,微软基础类(Microsoft Foundation Classes),实际上是微软提供的,用于在C+环境下编写应用程序的一个框架和引擎,Win OS下开发人员使用的专业C+ SDK,MFC作为与 VC+血肉相连的部分,是一个非外挂式的软件包,类仓库,开发平台,这些类是微软为VC+专配的,MFC 是 Win API与C+的结
40、合,是一种软件编程的规范,不是一种程序开发语言本身,它可以让用户使用各种各样的第三方我是一方,微软是一方,Borland就是第三方的编程语言来进行对Win OS下应用程序的开发,使这些被开发出来的应用程序能很好地在 Win OS下运行,只要它们是接受和遵循API规范的,是对API函数的专用C+封装,这种结合一方面让用户使用微软的专业C+ SDK来进行Win下应用程序的开发变得容易,因为MFC是对API的封装,微软做了大量的工作,隐藏了好多程序开发人员在Win下用C+ 然后对图像经过几次几何变化后得到最佳匹配对齐的人脸轮廓线条模型。这个系统,可以基本消除人脸几何差异性的影响对轮廓实现几何对齐,生
41、成高质量的正面人脸轮廓模型,实现人脸定位。人脸面部特征定位是人脸识别过程中的重要环节。人脸识别可以分为人脸检测、 面部特征定位、人脸比对三个部分。人脸定位技术是在人脸检测的基础上,对人脸面部关键特征定位,试图检测人脸的主要的面部特征点的位置眼睛、嘴巴、鼻子、下巴等主要器官的形状信息。在这个系统中我们要有大量的图片作为训练样本,要对图片进行特征点标注,要对标注后的轮廓进行连线处理得出轮廓模型,在针对不同姿态要根据平均模型与可变几何分量得到任意一姿态人脸的轮廓模型。依照这个开发过程,从整体出发得到下图:系统总体设计过程功能图。3.3 系统总体设计过程下图是系统总体设计功能模块图。基于 ASM 的人
42、脸定位系统设计XIX图 4 系统总体设计功能模块图图 4 系统总体设计功能模块图对应每一功能模块我们都设计出相应的工具进行功能实现,接下来的文字将逐一对各功能实现工具进行说明。3.3.1 样本采集工具系统中的样本是由很多人脸图片组成的,并且要给每张人脸图片中人脸的轮廓上取相同的N个点,把它们的坐标组成向量,并表示成 2N维的向量。我们有M张人脸的不同姿态图片包含每人正常光照下正面中性表情一张、微笑一张、左右转脸各一张、加强光中性、微笑各一张,只有这样的样本才能准确的反应人脸的可能变化。于是通过对每张图片进行向量的建模,我们就得到M个2 N维的向量组成系统的样本。我们的样本采集工具所包含功能就有
43、要对各个图片中人脸的轮廓进行标定 N 个点,以及对用所标定的点的修改等操作的实现。3.3.2 样本数据计算与处理在完成样本的采集工作后我们把得到的M个人脸中的每一张训练图片中我们都可以得到一组点集,每张图片取N 个点,由于是二维的图片,因此每个点的坐标可以表样本采集样本数据计算 样本数据处理 样本数据验证系统集成待定位的人脸照片输入图像搜索与匹配搜索匹配后结果输出基于 ASM 的人脸定位系统设计XX示成( X i, Yi)把每张图片得到的点的坐标组成这样一个向量向量的长度为 2*N ,向量中(X i, Yi)为第 i 个点的 x 坐标和 y 坐标,我们把这样的一个向量叫做一个人脸向量,或人脸模
44、型,我们后继的工作就是对这 N 个人脸模型进行相关处。首先要做的是对这 N 个人脸模型进行如数据对齐算法、代数的矩阵相关运算中的协方差矩阵计算、特征向量和特征值的计算。只有这些数据得到正确的处理后,才能展开接下来的工作,例如应用 PCA 进行人脸数学建模等。 3.3.3 样本数据验证再通过计算处理等工具将采集的人脸模型进行相应的计算后得到的一些必要数据,我们在没有实验的前提下无法确定计算所得到的是否就是我们所要的,所以要进行大量的数据训练工作,在这个模块开发了相应的数据模型浏览器以观察数据的准确性,其中包含有平均模型浏览器、协方差矩阵浏览器,特征值浏览器、特征相量浏览器、等工具。3.3.4 系
45、统集成在完成了一系列的前期工作后要做的是将各个功能模块,通过之前定义的数据交换约定整合到一个框架下,并由框架进行有效的集成。具体实现时,这一步主要是把事先生成的相关数据集成在一个多文档视图结构下的MFC 框架。框架负责数据的后期处理、显示和演示等。由于要把必要的工具,算法等整合在框架下,因此对框架各个模块的分工还要进行仔细的设计。如文档类负责数据的存取、处理,并为视图类提供相应的数据访问接口; 视图类负责对数据进行显示,提供显示方式的设定和内容的选择等。3.3.5 待定位的图片输入待定位的图片输入这部分采用打开已有的含有的在正常光照下的人脸照片,对其进行简单的图片处理使得图片可以根据不同的要求
46、来进行定位。在图片处理后我们对图片进行标注,用选定含有人脸区域的部分,对这部分进行一些数据采集和计算,处理完数据后跟据早先建立的样本模型进行匹配。3.3.6 图片搜索与定位当我们有一张并没有标注的人脸相片时,需要利用ASM 自动地利用训练后的模型来匹配这张人脸。要利ASM 来搜索和匹配一张人脸要事先定位这人脸的大致位置,这1212,Tnnxy 基于 ASM 的人脸定位系统设计XXI样的位置我们叫初始位置,这个位置的准确程度往往会影响搜索的结果。如果没有确定一个相对准确的初始位置,很可能会搜索不到人脸,就无法完成匹配。因此我们有必要在匹配前手动或利用人脸定位算法来找到相应的轮廓模型。3.3.7
47、搜索定位后结果输出搜索到人脸的轮廓边缘,找到相匹配的轮廓模型,输出轮廓模型。3.4 本章小结本章从一个宏观角度对系统展开了描述,它简明扼要的说明了系统的设计过程及其中各功能模块功用。从整体讲解了系统架构,知道了该系统大体的处理操作。在接下来的章节中我将详细的介绍各个功能操作。基于 ASM 的人脸定位系统设计XXII第四章 基于 ASM 人脸定位系统的详细设计4.1 系统详细构架从基本的模块依赖关系和类的其它关系架构系统,从系统的内部分析架构系统。如下图示:图5 系统详细构架上图展示了基本的模块依赖关系和类的其它关系。一个多文档模块是由一个子框架类,一个文档类和视图类构成。一个这样的程序可以包括
48、多个模板,可以创建多个模板实例,工具集是由多个工具组成,其被主程序引用,并是主程序的一部分,其它数据处理模块也被主程序引用。基于 ASM 的人脸定位系统设计XXIII4.2 工具集合工具集合中包含四个功能实现模块:样本取点器、线条样式设计器、矩阵浏览器、模型浏览器。4.2.1 样本取点器人脸可以用n 个点(Landmark)来表示,n 可以取不同的维度d ,在人脸图片中d = 2此外,需要保证在每一张训练图片中所取得的点集能可靠有效地描述一张人脸,点的数量要足够以描述人脸的整体轮廓。根据算法要求,在二维图像中,沿着人脸的轮廓边缘取点,取点方式如下图所示:图6 样本取点方式直观图从图中我们看出,除了少数灰度边缘取的点间距比较大之外,在人脸的同一个部分,人脸外围轮廓,眉毛,眼睛和嘴巴的取点基本上是等间距的。ASM 1的创始人Cootes提出了一种搜索的方案,他的思想是:从我们训练的样本中学习各个点的灰度分布梯度模型,即在我们前一步建立模型,同时也建立所取的n 基于 ASM 的人脸定位系统设计XXIV个点的灰度梯度模型