




免费预览已结束,剩余48页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于ASM的人脸定位系统设计本科毕业论文(科研训练、毕业设计)题 目:基于ASM的人脸定位系统设计姓 名:学 院:软件学院系:软件工程专 业:软件工程年 级:学 号:指导教师(校内): 职称: 年 月基于ASM的人脸定位系统设计 摘 要 本文介绍了一个基于ASM(Active Shape Model主动形状模型)1人脸定位系统的设计过程。本系统设计的目的是对人脸的轮廓进行几何对齐2实现人脸轮廓定位目标。在该系统中我们事先采集了M个不同身份人的不同姿态免冠照片共S张作为训练样本集合,对训练样本采用ASM进行特征点定位,根据标定的N个特征点坐标组成的向量空间进行PCA 3 (Principal Component Analysis 独立主元分析)建模,得到一个降维的模型作为人脸几何结构的统计模型4。之后对用户给定的正面人脸照片,通过ASM算法训练好的人脸结构的统计模型,移动到当前图片中各特征位置沿法线方向的邻域内最佳匹配的位置,同时通过训练样本计算出它的平均轮廓5,以及相应的几何平均轮廓上出现的变化;然后对图像经过几次几何变化后得到最佳匹配对齐的人脸轮廓线条模型。这个系统,可以基本消除人脸几何差异性的影响对轮廓实现几何对齐,生成高质量的正面人脸轮廓模型,实现人脸定位。通过系统的设计目的本文将详细介绍本系统的设计过程和程序实现过程。关键词 ASM(Active Shape Model) 几何对齐 主元分析(PCA) 统计模型 平均轮廓ASM -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 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 vector 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 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 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 design, implementation of the procedures. Keywords ASM (Active Shape Model); geometric alignment; statistical model; PCA (principal component analysis); Mean ShapeIII 目录第一章引言8第二章 ASM算法详细介绍92.1 ASM算法思想综述92.2 ASM算法的数学背景102.2.1 ASM算法用到的线性代数知识102.2.2 ASM算法用到的概率与统计知识112.3 PCA分析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人脸定位系统的详细设计224.1 系统详细构架224.2 工具集合234.2.1 样本取点器234.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 类365.2.4 CMagicRect 类375.2.5 其它类385.3 完成一次实例搜索定位39第六章 总结42致谢语43参考文献44ContentsChapter 1 Introduction8Chapter 2 ASM algorithm detailed92.1 Summary of ASM algorithm 92.2 ASM mathematical algorithm background102.2.1 ASM algorithm used linear algebra knowledge102.2.2 ASM algorithm used probability and statistics112.3 PCA Introduction122.3.1 PCA principles in the face modeling132.3.2 The steps of PCA modeling face152.4 Summary of chapter16Chapter 3 The total design of ASM-based Face Positioning System173.1 System development environment173.1.1 MFC Introduction173.2 The purpose of system design183.3 System design process183.3.1 Sampling tool193.3.2 Sample data calculation and processing193.3.3 Sample data verification203.3.4 System Integration203.3.5 Photos of to be targeted Face the importation203.3.6 Image search and match203.3.7 Search results output after matches213.4 Summary of chapter21Chapter 4 The detailed design of ASM-based Face Positioning System224.1 Detailed framework224.2 Tool collection234.2.1 Samples from point234.2.2 Lines connecting Designer 254.2.3 Matrix browser264.2.4 Model browser264.2.5 Image processing module294.2.6 Algebraic operations module294.3 Summary of chapter30Chapter 5 ASM -based Face Positioning System program315.1 System interface315.1.1 Tools menu325.2 Major classes of procedures 345.2.1 CSignalStudioDoc class355.2.2 CSignalStudioView class365.2.3 CAmplifyRateManager class365.2.4 CMagicRect class375.2.5 Other class385.3 Complete example of a targeted search39Chapter 6 Conclusion42Acknowledgement43References44第一章 引言本文介绍了基于ASM人脸定位系统,人脸面部特征定位是人脸识别过程中的重要环节。人脸识别可以分为人脸检测、 面部特征定位、人脸比对三个部分。人脸定位技术是在人脸检测的基础上,对人脸面部关键特征定位,试图检测人脸的主要的面部特征点的位置眼睛、嘴巴、鼻子、下巴等主要器官的形状信息。对于定位问题人们采用众多方法来实现如灰度积分投影曲线分析、模板匹配、可变形模板、Hough变换、Snake算子、基于Gabor小波变换的弹性图匹配技术、ASM主动性状模型和AAM主动外观模型是常用的方法。本课题采用ASM(Active Shape Model)主动形状模型方法,它是近年来流行的一般对象形状提取算法,其核心思想是在某种局部点模型匹配的基础上,利用统计模型对待识别的人脸的形状进行约束,从而转化为一个优化的问题,并期望最终收敛到实际的人脸形状上去,搜索和匹配到最佳的人脸轮廓,达到人脸定位。 上述简要介绍了本系统的开发背景及核心算法接下来的章节将主要围绕以下内容展开。首先详细的介绍 ASM(Active Shape Model主动形状模型)算法思想,这是本系统的设计基础;其次对人脸定位系统的总体设计进行阐述,从一个宏观的角度分析系统的设计过程;再次对系统详细设计进行说明,对主要工具设计及其功能的实现进行阐述;第四对本系统最后调试运行与实现情况进行论述;最后是对本系统进行客观的评价以及对系统的未来完善的畅想。 第二章 ASM算法详细介绍2.1 ASM算法思想综述ASM(Active Shape Model)主动形状模型是一种对在图片中的已知实物对象的进行识别定位的工具,是概率统计线性代数等数学知识的一种很巧妙地应用。它是一种数学建模方法,更是思维方式的提升。ASM是当今很流行的一种基于灰度差别的对象识别算法,具有相当的通用性,可用于对各种形状相对稳定的物体进行识别,如常见的人脸识别。1995年,Cootes et al提出ASM1,从那以后,ASM已经发展和完善了很多年。ASM是由一组统计模型4集和一组可改变形状的模型组成,可变模型描述了一组手动标注的形状轮廓集合(有的可以用程序标注)的典型变化,统计模型描述了每个形状轮廓点的灰度值的结构的统计情况。通过各个点的灰度值统计模型,我们可以在被搜索的图片上找到具有类似灰度值结构的点,通过足够准确的起始点,ASM会利用统计模型(之前用来训练的数据模型)试图在新给的图像数据中寻找最佳的匹配模型。在搜索过程中,ASM会应用全局变量限制来保证模型在一个可能的变化范围内变形以匹配新的数据中的模型。 目前有很多关于 ASM的扩展研究,很多人在单纯的 ASM基础上加入了一些新的算法以弥补 ASM的一些不足。 如 ASM易受图片采集时的光照条件的影响,有人把 LBP (Local Binary Pattern)6与 ASM结合来强化 ASM对光照变化的稳定度和健壮性。而另一种由ASM的演化来的更强的识别算法就是AAM7(Active Appearance Model)6,AAM的匹配能力和健壮性都很强,它的所有思想基本上都是从ASM上继承而来的。与ASM的不同之处是它不仅利用了对象的形状信息而且利用了对象的纹理信息,这种模型的匹配精度比较好,但与 ASM相比,其执行一交搜索的时间要长一些。另一种弥补的方法是ASM采用参数化的采样形状来构成对象形状模型,并利用PCA方法建立描述形状的控制点的运动模型,最后利用一组参数值来控制形状控制点的位置变化从而逼近当前对象的形状,然而该方法只单纯利用对象的形状,准确率不高。2.2 ASM算法的数学背景ASM算法作为一种图像建模的方法,它巧妙的将概率统计及线性代数等数学知识融合应用发展成为现今的一种成熟图像处理识别算法。ASM用到的线性代数知识主要是矩阵的特征值和特征向量;向量场及其切平面空间;概率与统计上的样本平均均值,样本方差,协方差矩阵;PCA分析等;在ASM的编程实现过程中用到的数学单位向量的,角平分线等。2.2.1 ASM算法用到的线性代数知识8 (1)基础解系 ASM的数学的基本思想源自线性代数中的解空间的数学理论,即在一个 n维的空间中,任意一个点的位置可以由任意一组 n维的线性无关的长度为 n的向量线性表示,也就是可以由任意一组基础解系线性表示 n维空间中的任一点。如下面的线性运算,形式如下:向量 可以由一个线性无关的同维数的向量组 表示为的表达式。其中的向量,向量,向量,.,向量为向量的一组基础解系,, , 为各个基础解分量的系数。如果把每一张人脸都表示成n 维空间中的一个点,也即表示成一个从原点(0 , 0 , 0 ) 出发的一个n 维空间中的一个向量,然后从一堆点向量中找出足够表示所有可能脸向量的一组类似的基础解系。之所以用“类似”,并不是说找出来的解就是代数中完全的基础解系,而只是这基础解系中“主要”的一部分解,因为一般情况下,一张脸会用很多点表示,就会形成一个很高维度的向量(一般有上百个维),如果求其的完全解系,就需要很多的训练样本和大量的运算。在找出基础解系后,我们就可以用它来表示所有可能情况下的人脸。只要改变一下各个基础解分量的系数就可以得到不同形状的人脸。(2)特征值、特征向量若存在非零使得以下等式成立(1-1)则其中称为矩阵的特征值,对应的向量称为此矩阵的特征向量。再由线性代数知识一个行列式不为零的方阵总是有n个特征值和n个特征向量,特别当矩阵是实对阵时,其特征向量和特征值都是实数且其特征向量构成的矩阵为正交矩阵。给定一个实对称矩阵A,我们可以得到n个特征值以及对应的n个特征向量:n个特征值:n个特征向量: V0 , V1,. Vn-12.2.2 ASM算法用到的概率与统计知识9(1)样本在人脸定位ASM建模中的样本是由很多人脸图片组成的,在本文的研究中对训练样本作了如下的假设:只使用免冠人脸样本没有大角度旋转,不戴眼镜没有非常浓密的胡须等;不对特征点标注进行漫画式的夸张,即手工标注的轮廓线条画和给定的人脸照片在结构上是对齐的。我们把每张图片中的人脸在其轮廓上取相同的N个点,把它们的坐标组成向量,并表示成2N维的向量。我们有M张人脸的图片,于是通过对每张图片进行向量的建模,我们就得到M个2N维的向量 组成系统的样本。将向量 简化表示为T。(2)平均模型与协方差矩阵平均模型也就是平均向量,就是求M个样本的平均值,于是我们得到一个平均模型5。(1-2)有了平均模型,就可以计算这M个人脸模型的协方差矩阵(1-3)在代数统计中,我们知道,任何一个向样本都是可以表示成平均样本加上样本与平均样本的差,即(1-4)类似在有了平均模型和平均模型的协方差矩阵我们就可以将任何一张人脸表示为S =S+Qsbs(1-5)其中S 即是平均脸向量, Qs 为由协方差求得的特征向量组成的一个类基础解系, b s 是Qs 中各个向量分量的系数。如下图10:图1 人脸的平均模型表示从图中我们可以看到,S0 就是平均脸, S 即是我们要表示的新脸, s 可以用S0 加上方差矩阵的线性的成的一个差值。2.3 PCA分析3PCA(Principal Components Analysis主元分析法)是一个很重要的数学分析工具。在介绍PCA之前我有必要先引入另一知识,先看一实例。如:假设在我们的系统中它的样本是120张人脸图片,我们把每张图片用59个点来描述,于是每个点就表示成128维的向量,(由每张人脸的轮廓上取相同的N个点,把它们的坐标组成向量,并表示成2N维的向量可知)。我们经过上面的求平均模型和协方差矩阵后就得到一个128维的平均模型和128128的协方差矩阵。 在表示任意一张人脸模型时,需要进行下面的计算: (详见在2.2.1) 这些表示人脸的向量在128维的空间中是一团点集,因为人脸的相对稳定,在空间中这些点分布是很集中的,是分布上一个128维空间中的一条直线的周围。128维的空间中人脸图像图2 128维的空间中人脸图像将人脸向量如此表示之后我们就会很有必要的用到了PCA。接下来我们详细介绍PCA(Principal Components Analysis主元分析法)的原理及它在本系统建模中的功用。 2.3.1 PCA原理在人脸建模上的应用PCA原理示意图如下:其中黑色的斑点是样本点,最初分布在X-Y空 间中。PCA的目标就是找到图中的1st PC和2nd PC,或者说是这两个PC张成的空间(实际上还可以有nth PC,只是还不会画N维空间的情形)。注意到两个PC构成的空间比原来的X-Y空间更好的反映了样本分布,而且样本沿1st PC方向比2nd PC方向分布更广,PCA中用方差表述这种在不同PC方向上的分布散度 。 图3 PCA原理 PCA提取的核心信息的正式名称是特征子空间11,而最初的信息就是整个信息空间。如果信息空间是N维的,则PCA的目标是找到K个相互正交的向量(特征向量)张成一个K 维的特征子空间,这个特征子空间中包括了大多数的信息量,或者说这个子空间的K个基可以近似的表示整个N维空间。如前面的原理示意图中,可以选择 1st PC方向作为子空间,因为样本在这个方向的投影12最够散,可以近似表示样本集。再具体一点,如果有N个样本, 每个样本的尺寸为S,则可以构成一个S*N的矩阵X,每一列对应一个样本,当然矩阵X中一定是存在冗余信息,除非有人保证每个样本是绝对无关的。为 此,考虑X的协方差矩阵E,这个E就对应着前面所说的N维特征空间。现在的目标是在E对应的空间中找到一个子空间,即为子空间确定基。学过矩阵都知道了,矩阵的特征向量就是矩阵对应空间的一组正交基,求出E的特征向量、特征值(详见2.2.1)待用。下面是PCA神奇功能的关键之处了:设(V, )是一对特征向量和特征值,则对应着样本在V(方向)上分布的方差,反映了样本在V(方向)上的分散程度,进一步方差对应着能量的分布。有了能量的概念后面便好理解了,万物皆是能量,如果一个子空间拥有了 母空间所有能量中绝大多数的能量,可以说子空间在一定程度上可以近似母空间.取特征值最大的k个特征值对应的特征向量组成一个k维 的子空间(前提是有这么多的特征向量),这个子空间就是前面所说的核心信息了,可以使用这K个特征值的和(既然当作方差了,就想办法把负号去掉)和所有特征值的比值衡量子空间对“母空间”近程度。任何一种方法都要有应用价值,PCA本质上只是一个降维的方法,它可以把用子空间(K维空间)逼近母空间(N维空间,NK),在计算上,降维 可以降低时间和空间开销。子空间的一个应用是判断两个样本的相似程度。在人脸样本母空间A,子空间B,现在要判断A,B是不是相似的,相似度有多少,计算 矩阵D = A - B,看看D的大小就可以了。前面提到的特征值和方差的对应关系:“设(V, )是一对特征向量和特征值,则对应着样本在V(方向)上分布的方差,反映 了样本在V(方向)上的分散程度”。设特征向量V0对应一个较小的特征值0,V1对应一个较大的特征向值1,当然V0,V1都是子空间同一组基中的向量。D在 V1上的投影可能远大于在V0上的投影,因为样本在V1方向分布本来就很散(正态分布中99的点落在均值左右3倍标准差之间),这样导致 的问题是尽管A,B很相似,但是因为它们的形似主要体现在V1这样对应大方差的基上,使得D很大,这显然会导致误判。假设样本在每个基上的分布服从正态分布,把D在每个基上的投影值代入概率密度函数,把计算的结果连乘就 得到D对应的相似性概率.D=V(1,2,n)这样我们就得到n维空间中人脸的近似子空间的差D。我们可以用平均人脸模型加上这个矩阵D的一个线性组合来表示任何一张脸,通过PCA 变换后、我们就可以减少计算的规模,和表示一张人脸所需的维度。2.3.2 用PCA建模人脸的步骤 1.求协方差矩阵 (1-6)(其中N 为训练图片的数量)2.求协方差的特征值和特征向量求得S 的特征值和对应的特征向量,并按特征值的大小,从大到小排列特征向量:V0,V1,V2,.Vn-1其对应的特征值为:1 2 n ,其中 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 为一个图片中所取的点的数量),反过来,如果我们有一个新的脸向量X,我们就可以通过这个式子来得到其对应的参数b:b= DT(xx) (*)从这个表达式我们也可以看到,任一个新的向量都可以通过改变参数了,并代入(*)就可以近似表示这个向量。这里要说明的一点是,向量b=( b1, b2, bt )中的每一个分量都具有相对的独立性,即其变化不受其它分量变化的影响。这样一来,任何一个变量都有可能在一个相当大的范围内变化,这样就不能保证通过(*)匹配得到的新的X 是我们想要的人脸形状。因此, 有必要对这些参数的变化范围进行约束, 常用的方法是把bi 的范围限制在(,)之间,其中i 为D的 第i 个分量,当bi 小于这个范围的下限时,就让它等于而当其超过上限时,就让它等于。通过这样的变化限制,我们就可以保证得到的新模型是一种可能的人脸模型。2.4 本章小结本章详细的介绍了ASM算法思想,介绍了人脸轮廓的建模方法,这是在整个系统开发中的核心思想,方法和算法。其中人脸轮廓的数学建模是重中之重,总是在强调建模的重要性,一个好的建模方法将会诞生一个完美的模型随之有一个可用性很好的系统。从这个中心开始,一切为了建模出发开始对开发本系统进行了简单的需求分析,以此来制定可行性的系统架构,按照系统架构设计的开发顺序,先后的实现各个模块的功能,完成接口工作实现模块整合。在此开发过程中我的搭档鄂爽同学精心的做算法分析和设计工作,齐心协力下本系统诞生了。在接下来的章节中我将对系统整体设计加以介绍。我只是侧重我的工作范畴做讲解,对于算法部分,及代码实现方面有疑惑可以阅读我搭档鄂爽的论文。第三章 基于ASM人脸定位系统的总体设计3.1 系统开发的环境系统开发的软件环境和采用工具:项目是在Windows 平台下开发的,采用Microsoft 的开发工具Visual S 2005开发,开发语言是C+,开发结构利用的是MFC 的文档视图框架。Visual S 2005 是一个集成的开发环境,其集成了微软的几种基于.net 开发语言,如VB,VC,VC#,VJ#等。Visual S 2005 是一个强大的集成开发平台,支持跨语言开发,团队开发测试等,是一个非常友好的开发平台,其调试功能十分强大,它的代码编辑器更是优秀。在用.net 开发时,编辑器能有效也提供错误修正建议并智能纠错,使得代码的编写变得很人性化。本项目是采用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+的结合,是一种软件编程的规范,不是一种程序开发语言本身,它可以让用户使用各种各样的第三方我是一方,微软是一方,Borland就是第三方的编程语言来进行对Win OS下应用程序的开发,使这些被开发出来的应用程序能很好地在 Win OS下运行,只要它们是接受和遵循API规范的,是对API函数的专用C+封装,这种结合一方面让用户使用微软的专业C+ SDK来进行Win下应用程序的开发变得容易,因为MFC是对API的封装,微软做了大量的工作,隐藏了好多程序开发人员在Win下用C+ & MFC编制软件时的大量内节,如应用程序实现消息的处理,设备环境绘图,这种结合是以方便为目的的,必定要付出一定代价,(这是微软的一向作风)因此就造成了MFC对类封装中的一定程度的的冗余和迂回。 MFC 不只是一套微软提供下的一个Win下C+的开发平台,也不只是一个功能单纯的界面开发系统,它提供的类绝大部分用来进行界面开发,关联一个窗口的动作,但它提供的类中有好多类不与一个窗口关联,即类的作用不是一个界面类,不实现对一个窗口对象的控制(如创建,销毁),而是一些在Win OS(用MFC编写的程序绝大部分都在Win OS中运行)中实现内部处理的类,如数据库的管理类等。3.2 系统设计的目的基于ASM人脸定位系统,设计本系统设计的目的是对人脸的轮廓进行几何对齐2实现人脸轮廓定位。该系统中我们事先采集了M个不同身份人的不同姿态免冠照片共 S张作为训练样本集合,我们对训练样本采用ASM进行特征点定位,根据标定的N个特征点坐标组成的向量空间独立主元分析(PCA)3,得到一个降维的模型作为人脸几何结构的统计模型4。之后对用户给定的正面人脸照片,通过ASM算法训练好的人脸结构的统计模型,移动到当前图片中各特征位置沿法线方向的邻域内最佳匹配的位置,同时通过训练样本计算出它的平均轮廓5,以及相应的几何平均轮廓上出现的变化;然后对图像经过几次几何变化后得到最佳匹配对齐的人脸轮廓线条模型。这个系统,可以基本消除人脸几何差异性的影响对轮廓实现几何对齐,生成高质量的正面人脸轮廓模型,实现人脸定位。人脸面部特征定位是人脸识别过程中的重要环节。人脸识别可以分为人脸检测、 面部特征定位、人脸比对三个部分。人脸定位技术是在人脸检测的基础上,对人脸面部关键特征定位,试图检测人脸的主要的面部特征点的位置眼睛、嘴巴、鼻子、下巴等主要器官的形状信息。在这个系统中我们要有大量的图片作为训练样本,要对图片进行特征点标注,要对标注后的轮廓进行连线处理得出轮廓模型,在针对不同姿态要根据平均模型与可变几何分量得到任意一姿态人脸的轮廓模型。依照这个开发过程,从整体出发得到下图:系统总体设计过程功能图。3.3 系统总体设计过程 下图是系统总体设计功能模块图。 样本采集样本数据计算样本数据处理样本数据验证系统集成待定位的人脸照片输入图像搜索与匹配搜索匹配后结果输出图4 系统总体设计功能模块图图4 系统总体设计功能模块图对应每一功能模块我们都设计出相应的工具进行功能实现,接下来的文字将逐一对各功能实现工具进行说明。3.3.1 样本采集工具系统中的样本是由很多人脸图片组成的,并且要给每张人脸图片中人脸的轮廓上取相同的N个点,把它们的坐标组成向量,并表示成2N维的向量。我们有M张人脸的不同姿态图片包含每人正常光照下正面中性表情一张、微笑一张、左右转脸各一张、加强光中性、微笑各一张,只有这样的样本才能准确的反应人脸的可能变化。于是通过对每张图片进行向量的建模,我们就得到M个2N维的向量组成系统的样本。 我们的样本采集工具所包含功能就有要对各个图片中人脸的轮廓进行标定N个点,以及对用所标定的点的修改等操作的实现。3.3.2 样本数据计算与处理在完成样本的采集工作后我们把得到的M个人脸中的每一张训练图片中我们都可以得到一组点集,每张图片取N 个点,由于是二维的图片,因此每个点的坐标可以表示成( Xi, Yi)把每张图片得到的点的坐标组成这样一个向量向量的长度为2*N ,向量中(Xi, Yi)为第 i 个点的x 坐标和y 坐标,我们把这样的一个向量叫做一个人脸向量,或人脸模型,我们后继的工作就是对这N 个人脸模型进行相关处。首先要做的是对这N个人脸模型进行如数据对齐算法、代数的矩阵相关运算中的协方差矩阵计算、特征向量和特征值的计算。只有这些数据得到正确的处理后,才能展开接下来的工作,例如应用PCA进行人脸数学建模等。 3.3.3 样本数据验证 再通过计算处理等工具将采集的人脸模型进行相应的计算后得到的一些必要数据,我们在没有实验的前提下无法确定计算所得到的是否就是我们所要的,所以要进行大量的数据训练工作,在这个模块开发了相应的数据模型浏览器以观察数据的准确性,其中包含有平均模型浏览器、协方差矩阵浏览器,特征值浏览器、特征相量浏览器、等工具。3.3.4 系统集成在完成了一系列的前期工作后要做的是将各个功能模块,通过之前定义的数据交换约定整合到一个框架下,并由框架进行有效的集成。具体实现时,这一步主要是把事先生成的相关数据集成在一个多文档视图结构下的MFC 框架。框架负责数据的后期处理、显示和演示等。由于要把必要的工具,算法等整合在框架下,因此对框架各个模块的分工还要进行仔细的设计。如文档类负责数据的存取、处理,并为视图类提供相应的数据访问接口; 视图类负责对数据进行显示,提供显示方式的设定和内容的选择等。3.3.5 待定位的图片输入待定位的图片输入这部分采用打开已有的含有的在正常光照下的人脸照片,对其进行简单的图片处理使得图片可以根据不同的要求来进行定位。在图片处理后我们对图片进行标注,用选定含有人脸区域的部分,对这部分进行一些数据采集和计算,处理完数据后跟据早先建立的样本模型进行匹配。3.3.6 图片搜索与定位当我们有一张并没有标注的人脸相片时,需要利用ASM 自动地利用训练后的模型来匹配这张人脸。要利ASM 来搜索和匹配一张人脸要事先定位这人脸的大致位置,这样的位置我们叫初始位置,这个位置的准确程度往往会影响搜索的结果。如果没有确定一个相对准确的初始位置,很可能会搜索不到人脸,就无法完成匹配。因此我们有必要在匹配前手动或利用人脸定位算法来找到相应的轮廓模型。3.3.7 搜索定位后结果输出搜索到人脸的轮廓边缘,找到相匹配的轮廓模型,输出轮廓模型。3.4 本章小结本章从一个宏观角度对系统展开了描述,它简明扼要的说明了系统的设计过程及其中各功能模块功用。从整体讲解了系统架构,知道了该系统大体的处理操作。在接下来的章节中我将详细的介绍各个功能操作。第四章 基于ASM人脸定位系统的详细设计4.1 系统详细构架从基本的模块依赖关系和类的其它关系架构系统,从系统的内部分析架构系统。如下图示: 图5 系统详细构架上图展示了基本的模块依赖关系和类的其它关系。一个多文档模块是由一个子框架类,一个文档类和视图类构成。一个这样的程序可以包括多个模板,可以创建多个模板实例,工具集是由多个工具组成,其被主程序引用,并是主程序的一部分,其它数据处理模块也被主程序引用。4.2 工具集合 工具集合中包含四个功能实现模块:样本取点器、线条样式设计器、矩阵浏览器、模型浏览器。4.2.1 样本取点器人脸可以用n 个点(Landmark)来表示,n 可以取不同的维度d,在人脸图片中d = 2此外,需要保证在每一张训练图片中所取得的点集能可靠有效地描述一张人脸,点的数量要足够以描述人脸的整体轮廓。根据算法要求,在二维图像中,沿着人脸的轮廓边缘取点,取点方式如下图所示: 图6 样本取点方式直观图从图中我们看出,除了少数灰度边缘取的点间距比较大之外,在人脸的同一个部分,人脸外围轮廓,眉毛,眼睛和嘴巴的取点基本上是等间距的。ASM 1的创始人Cootes提出了一种搜索的方案,他的思想是:从我们训练的样本中学习各个点的灰度分布梯度模型,即在我们前一步建立模型,同时也建立所取的n 个点的灰度梯度模型。这个模型的建立将在下面介绍,点的灰度梯度模型就是在一个点附近的一定惊讶范围内的灰度分布情况,已在所有的训练的图片上都已经手工标注后,就可以建立这样的模型。首先,把每张图片所标注的点用线段相连,就得到一个轮廓,然后在每一个点取一长度为p n 的一段小线段:线段的中心在这个点上,这条小线段的方向一般为角平分线,或切线的垂线,在这里,为了实现的简单的简便,程序的实现是采用角平分线,在没有角平分线的点,直接取其相关线段的垂线,如下图所示:图7 角平分线取点法通过提取每张图片的数据,就可以对这些数据进行适当的处理,因为每一个点都能得到长度为 n 的数据,可以把这个数据看成维度为 n 的向量,并叫它为点模型向量(profile)。由于得到的是绝对灰度值,为了减小光照情况对数据的影响,采用相对灰度值来保存得到的数据: (3-1)其中g ijk表示第j 张图片的第 i 个提取线段上的第k 个点对应的结果,I j表示第j 图片,y ik 表示第 i 条提取线段的第k 个点,下一步就是把所得到的数据进行规范化,用下面的方式对其处理: (3-2)即把每个图片的每个点对应的数据都用这个等式进行转换。下一步就是计算平均模型,平均模型是从所有图片的数据中进行处理后得到的,每一个点都有一个平均模型。第 i 个点的平均模型用下面的式子计算得到: (3-3)即各张图片编号相同的点的数据分别相加后求平均。和之前建立人脸模型的方式相似,这里我们在建立点的模型时,也计算每个点的协方差 (3-4)矩阵,并对其求逆。这个我们就为每一个点建立一个灰度模型。在搜索过程中,给出一个新的点灰度向量s g ,这个点的合适因子用下面的函数来给出: (3-5)函数值越小的点就越可能是最佳的新位置。4.2.2 线条连接设计器验证得到的特征向量是否可以通过线性组合,然后再加上平均模型来表示可能的人脸模型时,曾经介绍了模型浏览器,程序加载初始文件后的实现如下图所示 : 图8 线条连接设计器从界面中我们可以看到程序在设置初始点模型后就会将其显示出来,以绿色的点描绘出来。工具经过几次连线后,实现效果如下图所示勾勒出人脸轮廓模型: 图9 加载连线模式后4.2.3 矩阵浏览器 这个模块的设计理念是要让它能够显示出采集样本后,对样本进行计算处理后的一些数据,便于对数据的验证和观察。它主要能够显示,样本的平均模型矩阵、协方差矩阵、特征向量、特征值等信息。它的界面设计为下图:显示部分是一个多功能编辑框。图10 矩阵浏览器在这个框中我们要实现计算过程中所得到的各个矩阵的显示。4.2.4 模型浏览器在模型浏览器中我们要做到,把根据PCA分析得到的人脸数学建模通过在第二章中人脸模型公式: xx+Db (*) b= DT(xx) (*) 各变量的含义见第二章各小结这里不再赘述。在这一工具中实现通过对参数b的改变得到不同姿态的人脸模型。设计界面如下图:在界面中我们要能通过参数的改变能得到不同姿态的人脸模型,工具下面的一排滑杆控 件是用来改变对应b 的分量参数 b i 的大小。参数bi 的范围限制在(,)之间变动。图11 模型浏览器在这一过程中我们也可以加载我们之前已实现的点线条连接文件,使得各点能连接成以二维图像展示在改变参数b后呈现不同姿态的人脸模型。下图组是对b值改变后的人脸模型:图12 标准平均模型 图13 平均抬头 图14 平均低头 图15 平均左转脸 图16 平均右转脸4.2.5 图像处理模块 这一模块我要实现对图片的简单图像处理。譬如做标准灰阶,图像一阶处理,二阶处理等。这涉及到图像处理算法知识,这里不再说明。4.2.6 代数运算模块这一模块实现的是样本数据运算,包含数据对齐,平均模型,协方差矩阵,特征值,特征向量等完全是数学问题了,有很多的算法,函数等等的调用来实现这部分功能。 其中对齐训练涉及到:当得到一些人脸样本并把它们组成向量,可以把这些向量看成是在 2 * N 维空间中的一个个点,每个点到原点就组成一个从原点出发的维度为2 * N矢量。但这些矢量长度不一,我们希望一个人脸模型应该是与模型的尺度,方向和位置无关的。因此,我们有必要对这些人脸向量进行一些规范化,我们把它们统一平移和缩放为重心在原点的单位向量。 为此,我们必需把所有这些向量对齐到一个统一的参考向量,一般取所有向量的平均向量。我们利用Procrustes14算法来完成这些任务,这种算法对齐所有向量,使得所有向量与平均向量的平方差达到最小,即最小。对齐前后图示如下:(算法详见鄂爽论文) 图17 对齐前的模型点分布情况 图18 对齐后的模型点分布情况4.3 本章小结 在这一章详细的描述了系统设计,对基于ASM的人脸定位系统的一些重要的功能模块组成做详细的说明。可以说现在算是完成大部分工作了,剩下的知识仅为写接口进行组装。下一章中将会呈现完整系统的调试运行和实现情况。第五章 基于ASM人脸定位系统程序实现5.1 系统界面程序采用MFC 的多文档,在Visual St
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省济南市2024-2025学年高一下学期7月期末地理试题(解析版)
- 本人服务质量承诺书(7篇)
- 2025-2026学年湖南省高三上学期阶段性检测(一)英语试题(解析版)
- 2025春季中国太平校园招聘模拟试卷及完整答案详解一套
- 2025河北唐山幼儿师范高等专科学校选聘工作人员35人考前自测高频考点模拟试题及答案详解(必刷)
- 餐饮业菜品成本计算与控制工具
- 行业领域企业社会责任承诺书(3篇)
- 2025年河北秦皇岛工业职业技术学院招聘专任教师3人模拟试卷附答案详解(典型题)
- 数据分析师数据处理与分析报告框架
- 2025湖北恩施市福牛物业有限公司招聘18人考前自测高频考点模拟试题附答案详解(模拟题)
- 销售市场每周工作汇报表
- 2023-2024学年山东省泰安市肥城市白云山学校六年级(上)月考数学试卷(含解析)
- 语法填空-动词公开课一等奖市赛课获奖课件
- 中医病证诊断疗效
- 深静脉血栓形成的诊断和治疗指南第三版
- 春之声圆舞曲-教学设计教案
- 农业政策学 孔祥智课件 第08章 农业土地政策
- WB/T 1119-2022数字化仓库评估规范
- GB/T 16463-1996广播节目声音质量主观评价方法和技术指标要求
- GB/T 15972.20-2021光纤试验方法规范第20部分:尺寸参数的测量方法和试验程序光纤几何参数
- 胎儿的发育课件
评论
0/150
提交评论