基于单幅图像的人脸三维重建.wps
1基于单幅图像的人脸三维重建基于单幅图像的人脸三维重建摘要:摘要:三维建模是计算机视觉和计算机图形学领域中一个基本的问题,人脸借助其特有的普遍性和易用性成为众多先进三维建模算法的实验平台。但是由于人脸的复杂性、易变性,建立逼真的三维人脸模型成为众多研究者挑战的课题。本文将数字图像处理学、模式识别的原理和方法应用到三维人脸模型重建和识别领域,建立了一个基于二维人脸图像的三维人脸重建和识别系统。本文提出了一套适用于正、侧面两幅二维人脸图像的三维人脸重建和识别算法,并建立了系统原型。对于三维人脸重建算法,本文提出了基于灰度、边缘检测和肤色的正面人脸特征提取算法,结合手工提取的侧面人脸特征获取人脸三维信息。其主要思想是:对正人脸图像进行光照补偿、滤波和锐化等预处理,去除噪声的干扰;然后利用灰度积分投影进行人脸各特征区域的粗定位,把人脸分为几个区域;对各个区域分别利用方差积分投影、边缘检测、肤色检测等技术精确定位人脸图像的各特征点;结合从侧面人脸图像中提取的三维深度信息,校正已有的三维人脸统计模型,获得一个特定的人脸三维模型;利用Op 蛐 GL 对重建的三维人脸进行可视化仿真。对于三维人脸识别,本文提出了 基于几何特征的三维人脸识别算法。利用获得的三维人脸信息,构造三维特征矢量,通过三维特征矢量相似度来鉴别最后的结果。实验结果表明,在 CVL 人脸图像库中利用本文所采用的算法,获得了令人满意的效果。关键词:人脸重建,积分投影,三维人脸,纹理映射,三维识别关键词:人脸重建,积分投影,三维人脸,纹理映射,三维识别2 ABSTRACT:3D modeling is currently Olle of the most important issues in computer vision and computer graphicsHuman facesSOnlmon and reachable that many newalgorithms are first tested On it Also due to the complexity and flexibility ofhumanfaces,many researchers have taken On the challenge of building realistic 3D facemodelsWe apply the theories and methods of the digital image processing and thepatternrecognition to the 3D face modeling and recognition,and realize the systemof3D face modeling and recognitionbased on 2D face imageIn the thesis,a IIeW method of 3D face modeling and 3D recognition applied tothe system is proposed,and the prototype system i8 realized As to the 3D faeemodeling,the method combines the features detected from frontal face image basedon gray level,edge detection and skin color,and the features extracted manuallyfrom lateral face imageFirstly the frontal face image is preproeessed to eliminatethe effect of the noiseAtterwards a face segmentation based on the gray levelprojection i8 proposedIn the process of feature points extraction,varianceprojection,edge detection and skin color detection ausedCombined with the information of depth extracted from the lateral image,a specific 3D face model c 舭 be obtained by adjusting 3D statistic face model to these feature points The 3D face model 锄 be visual and simulated 丽 lh OpenGL The 3D face recognition is basedOn 3D geometrical features The 3D feature vector is computed using the 3DinformationAt last,similarity of two 3D face vectors,which is used to judge whetherthe tow face models belong to the se person,is calculatedThe experiments proved that this method worksvery well in CVL face databaseKeywords:face reeonslruetion,gray level projection,3D face,texture mapping,3D face recognition3目 录目 录摘要摘要.1ABSTRACT.2第一章绪论第一章绪论.311 课题研究的目的和意义11 课题研究的目的和意义.312 国内外研究概况12 国内外研究概况.4第二章三维人脸重建与识别系统基础第二章三维人脸重建与识别系统基础.421 三维人脸重建与识别系统21 三维人脸重建与识别系统.422 vCH 三维图像处理基础22 vCH 三维图像处理基础.523 三维人脸模型介绍23 三维人脸模型介绍.6第三章三维人脸重建第三章三维人脸重建.831 三维人脸重建31 三维人脸重建.83.2 系统工作步骤3.2 系统工作步骤.93.3 三维结构重建3.3 三维结构重建.93.4 设置开发环境3.4 设置开发环境.113.5 具体编程3.5 具体编程.12第四章总结第四章总结.18参考文献参考文献.19致 谢致 谢.204第一章绪论第一章绪论11 课题研究的目的和意义11 课题研究的目的和意义 三维建模是计算机视觉和计算机图形学领域中一个基本的问题,人脸因其特有的普遍性和易用性成为众多先进三维建模算法的实验平台。由于每个人的人脸都是不同的,可以说世界上根本不存在两张完全相同的人脸,即使看起来非常相似的双胞胎,在某些方面也存在着不同之处【l】,所以人脸的个体差异必然存在,这就为我们建立特定人脸的三维模型提供了可能。但是由于人脸的复杂性、易变性,建立逼真的三维人脸模型成为众多研究者挑战的课题。三维建模虽然如此困难,但是许多研究者还是始终在坚持不懈地进行着这方面的探索,原因有二;一是三维人脸模型有着极为广泛的应用。目前,三维人脸模型已经初步应用到视频电话、视频会议、影视制作、电脑游戏、入脸识别等多个领域,而且随着各方面技术的发展,三维人脸模型将会在各方面得到更深更广的应用。二是现有的一些问题用二维方法解决不了或者说不能很好地解决。比如人脸识别方面,表情变化问题始终是一个阻碍提高识别率的关键因素。12 国内外研究概况12 国内外研究概况 三维人脸建模过程通常由人脸三维数据的获取、标准三维人脸建模和特定人脸建模 3 部分组成。三维数据的获取属于计算机视觉领域,近年来随着计算机视觉技术的发展,研究者们发展了一些适用于三维建模的数据获取方法。标准人脸模型的建立是图形学、人体测量学和统计学等相结合的产物,可以描述人类共有的结构特征和行为特征。特定人脸建模可以根据三维数据直接建立可视化模型,也可以通过对标准模型的形变进行建模,后者是研究的主流。从标准模型到个性模型的建模方法按照数据的来源主要分为两类:基于三维散乱点数据的建模方法和基于图像(单幅、多幅、序列)的建模方法。在建模过程中,研究者们尽量使处理过程自动化,但至今完全自动化的建模方法还少有报道。第二章三维人脸重建与识别系统基础第二章三维人脸重建与识别系统基础21 三维人脸重建与识别系统21 三维人脸重建与识别系统5211 系统提出211 系统提出 随着社会经济的发展,对于三维人脸建模的需求在不断地增长,诸如:视频电话、视频会议、影视制作、电脑游戏和人脸识别。尤其是对于人脸识别而言,当现有的一些问题用二维方法解决不了或者说不能很好解决的时候,采用三维方法也许就能迎刃而解。比如二维人脸识别中人脸旋转或者表情变化都会影响最终识别结果的准确性。利用三维人脸模型进行人脸识别,在理论上会提、高识别率和识别的鲁棒性【25261。正是基于这一需求提出了这套系统。212 系统组成212 系统组成 系统软件为 vC+60 编写的 windows 应用程序,主要分为:人脸检测、特征点定位、模型匹配、纹理映射以及人脸识别五个部分。整个系统软件流程如图 21。213 系统工作步骤213 系统工作步骤本系统分为三维人脸重建和识别两个子系统。整个系统的工作过程为:(1)基于肤色检测的人脸区域定位,为了避免光照对人脸区域定位的影响,在检测之前先做了光照归一化。(2)人脸图像灰度化,并进行预处理。在确定人脸区域以后,将其转化为灰度图像,然后进行中值滤波,锐化和灰度归一化等图像预处理。(3)基于先验知识,利用灰度积分投影,粗定位人脸五官特征。然后对各个五官区域运用积分投影、边缘检测等方法进行精确的正面人脸特征点定位。随后手工确定侧面人脸图像几个主要特征点的位置。(4)通过正、侧两副图像上的特征点获取的三维信息,调整三维人脸模型,6构造一个特定人脸的三维模型。(5)为了实现可视化,需要将二维图像上的人脸的肤色信息映射三维空间中,即纹理映射。(6)利用第四步中获得的三维信息,构造特征矢量并进行相似度的判别,输出最终结果。22 vCH 三维图像处理基础22 vCH 三维图像处理基础随着三维图形的应用愈来愈广泛,计算机图形学的发展也越来越迅速。那么如何快速实现三维图形的计算可视化,仿真可视化呢?OpenGL 即可作为主要途径之一。OpenGL 作为一种硬件图形的软件接口,其优点是作为一个独立的工作平台,独立于硬件设备、窗口系统和操作系统,用它编写的软件可以在Unix、Windows98NT 等系统间移植。但是现在很多有关 OpenGL 的书中的程序都是使用标准 C 调用 OpvnGL 函数实现的,这样做使得它缺乏面向对象能力,不符合当前流行的软件设计思想。因此我们需要借助一个“窗口”系统来完成OpenGL 三维图形的制作。众所周知,Visual c+中 MFC 包含了强大的基于Windows 的应用框架,提供了丰富的窗口和事件管理函数,已经成为当前一种比较流行的工作平台。于是我们可以选用 MFC 调用 OpeuGL 函数来进行三维图形的开发。23 三维人脸模型介绍23 三维人脸模型介绍 本文使用 CANDIDE-3 三维人脸模型进行三维人脸重建。CANDIDE-3是一个简单的参数化的人脸标准模型,它同时兼容 MPEG 中的人脸动画参数(FAPsFacialAnimation Paramters)和 人 脸 定 义 参 数(FDPs-Facial DefinitionParameters)因此该模型被广泛应用于人脸识别和动画的科研中。CANDIDE-3 包含 113 个顶点和 184 个面(如图 2-2 所示),可以通过一系列的全局和局部的动作单元(Action Units)来控制。CANDIDE-3 中的人脸运动参数包括两类:外形参数(Shape Units)和动画参数(Animation Units)。外形参数是描述人脸形状的参数,对于一个确定的人外形参数不会有较大变化,它描述人脸的静态特征。外形参数包括:头的高度,眼睛,眉毛在纵向上的位置以及人眼的宽度、高度,鼻子、嘴的位置和高度等等。7动画参数是用来描述人脸的动态外形,当人做各种表情的时候,虽然外形参数变化不大,但描述人脸的细节变化的动画参数,往往变化较大。动画参数包括:眼睛 的 睁 开、闭 合,嘴 唇 的 蠕 动,嘴 的 张 开,嘴 角 的 运 动 等。CANDIDE-3-维人脸模型在计算机中使用点和面来表示。点就是“3 个顶点,每个顶点用(x,y,z)-个坐标表示并为每个顶点标_L0-112 的序号。每一个面由特定的三个顶点构成,表示为 pJ,p2,p3),总共构成了 184 个面。那么一个三维人脸结构就可以用顶点坐标和构成每个面的三个顶点的集合来表示。具体表示如下:顶点定义:typedefstruct Point_typedouble pt3】;,点的三维坐标)POINTTYPE;三角形面的定义:tyleddstructF 獬 IypcintPtl Index;面片中第一个点的点号hat Pt2 Index;面片中第二个点的点号intPt3 Index;面片中第三个点的点号FACETYPE;三维人脸对象定义:8typedefstruct Object_typeintvertcx_num;点的个数POINTTYPE+vertices;点列表intface_num;面的个数FACETYPE+face_indicies;面列表 Object_type+next;连续构造多个人脸时指向下个人脸的指针 OBJECITYPE;第三章三维人脸重建第三章三维人脸重建31 三维人脸重建31 三维人脸重建 模型匹配是三维人脸重建的关键,所谓模型匹配即基于三维统计人脸模型,通过映射等方法,利用上一章中确定的人脸特征点去调整三维人脸模型,使其匹配某个特定的人脸。模型的匹配主要分为:全局匹配、局部匹配和深度信息匹配。整个三维人脸重建的流程如下图:93.2 系统工作步骤3.2 系统工作步骤本系统分为三维人脸重建和识别两个子系统。整个系统的工作过程为:(1)基于肤色检测的人脸区域定位,为了避免光照对人脸区域定位的影响,在检测之前先做了光照归一化。(2)人脸图像灰度化,并进行预处理。在确定人脸区域以后,将其转化为灰度图像,然后进行中值滤波,锐化和灰度归一化等图像预处理。(3)基于先验知识,利用灰度积分投影,粗定位人脸五官特征。然后对各个五官区域运用积分投影、边缘检测等方法进行精确的正面人脸特征点定位。随后手工确定侧面人脸图像几个主要特征点的位置。(4)通过正、侧两副图像上的特征点获取的三维信息,调整三维人脸模型,构造一个特定人脸的三维模型。(5)为了实现可视化,需要将二维图像上的人脸的肤色信息映射三维空间中,即纹理映射。(6)利用第四步中获得的三维信息,构造特征矢量并进行相似度的判别,输出最终结果。3.3 三维结构重建3.3 三维结构重建 在绘制人脸模型的时候,首先选择绘制三角形。OpenGL 中对点、线和多边形的定义都是通过对顶点坐标的定义来获得的,而所有的几何物体最终都是10按顶点的定义顺序来进行绘制。所以,这里用数组来定义第 i 个顶点为vertieesi3(i-0,l,2,112),其类型为 float。113 行表示 113 个顶点,3 列表示每个顶点的氏只 z)3 个坐标分量。我们采用的三维人脸模型是由 OpenGL 绘制的三维多边形网格模型,利用三维人脸模型中对各个特征点的定义,确定组成各个特征的点数据及面数据,根据已得的数据,可知道 113 个顶点组成 184 个三角形面,用数组定义这些面 为 face,类型为。行即表示 个三角形面,列表_indieies1849 short 184 184 9 示组成三角形的三个顶点号、法向量坐标和纹理坐标。在最初的建模过程中,只需考虑三角形的三个顶点号。例如:76,112,59,0,1,2,0,0,O)表示组成第一个三角形的三个顶点号为 76、112 和 59,也就是说由第 76 号、第 112 号和第 59 号三个顶点组成第一个三角形。既然知道了顶点坐标和每个三角形面的顶点号,就可以将这些点和面连起来构成人脸网格模型,利用直接构成三角形图原的变量 GL TR IANGLES 即可。该网格模型包含了由 113 个 3D 顶点组成的顶点表和由 184 个三角形面片组成的多边形表。用 OpenGL 程序实现对模型的绘制。其 3D 模型用 OpenGL 程序简要描述如下。建立模型的数据结构。定义程序结构 POINTIYPE、FACETYPE。分别包括点和面数据。点的定义:typedefstruct Point_typedoublept【3】;点的三维坐标POINTTYPE;三角形面的定义:typedefstruct Face_typehatPtl Index;面片中第一个点的点号int Pt2 Index;面片中第二个点的点号int Pt3 Index;面片中第三个点的点号)FACETYPE;物体对象定义:typedefstruct Object_type11intvertex hum;点的个数POINTTYPEvertices;点列表intface 面的个数_num;FACETYPEface_indicies;面列表Object_type+next;OBJECTIYPE;用面表存储每个面的顶点连线顺序(逆时针方向),用顶点表存储三维物体每个网格点的三维坐标,并计算出每个面的外法线矢量。解决方法:把光滑的曲面细分为许多个小多边形,然后选取小多边形上相邻的三点 VI,V2 和 V3。求取向量 V2Vl 和 V3Vl,并将其进行差积,便得到垂直于该三点所组成的小多边形的法向量。static shortFace indicies【】【】=;面 列 表$tatic GLfloatVerficcs【】=;点列表 static GLfloatNormals【】【】=);面的法向量3 建立图元(点和面)的显示列表,为绘制模型做准备。依次将立体的每个面的外法线矢量的三个分量和面上顶点的坐标定义为显示列表,预先生成显示实体。在图形显示时,将旋转、平移、光照和材质等参数设定好,调用显示列表即可快速的显示三维物体,不需要重新计算实体在场景中的坐标。OpenGL 显示列表是一组预先存储起来的 OpcnGL 命令。显示列表可以在任何地方被调用,并按顺序立即执行。使用显示列表不仅可以大大提高程序的执行效率,而且还可以简化程序的设计流程。当然,只有模型数据以及显示列表是不能构成一个完整的程序的,程序的其余部分,像初始化、投影转换、窗口的初始化及管理等都还需要我们利用 OpenGL 的库函数来完成,这些在第二章中已经做了介绍。3.4 设置开发环境3.4 设置开发环境以 WindowsXP 为例,首先将 gludll,glu32dll,glutdll,glut32dll,opengl32dll 文件拷贝到操作系统 WINDOWSsystem32 目录下,将 91h,glaox h,glu h,glut h 拷贝到 MicrosoftVisual StudioVC98IncludeYGL12目录中中,将 glaux1ib,glu321ib,glut321ib,opengl321ib 拷贝到MicrosoftVisual StudioNC98 Lib 目录中;然后在编译程序的时候选择ProjectSetting 菜单,在 Link 标签中的 Objectlibrarymodules 编辑框中输入“opengl321ib,glut321ib,glu321ib,glaux1ib”。到这时候环境就建立好了,可以进行下面的具体编程工作。3.5 具体编程3.5 具体编程 本系统采用基于对话框的工程。至于用单文档方式和多文档方式其编程原理是一样的,这里不再作单独介绍。(1)创建项目文件。选择 FileNeve 菜单项,新建一个基于对话框的项目文件 MyDlgOpenGL;(2)修改对话框模板。删除对话框中的静态文本,调整控件的位置。(3)创建新类,添加消息映射。选择 ViewlClassWizard 菜单项,打开 MFC 对话框,在 Add Class 之中选择 New,以便添加一个新类 COpenGL,且该类的基类选择 generic CWnd:最后利用 MFC ClassWizard 为 COpenGL 类添加消息 WM CREATE,WM PAINT 的映射。(4)添加代码。首先定义像素格式,创建 OpenGL 显示。在 OpenGL 能够在一个绘图对象中绘图之前,该绘图对象必须初始化。为此引入像素格式的概念。像素格式能告诉 OpenGL 是否使用双缓存,颜色模式,颜色位数,深度位数等等重要信息。它由一个被称作 PIXELFORMATDESCRIPTOR 的所描述。于是在 OpenGLh 中定义函数 int MySetPixelFormat(HDC lade)。然后在 OpenGLcPP 文件中加入如下代码,对象素格式进行初始化:int COpenGL:MySetPixelFormat(HDC hdc)PELFORL 帅 ESCRJPToR pfd=sizeof(PIXELFORMATDESCRIPTOR),pfd 结构的大小 1。版本号PFD DRAW TO WINDOW I 支持在窗口中绘图13PFD_SUPPORT_OPENGL I,支持 OpenGLPFD DOUBLEBUFFER,双缓存模式PFD TYPE RGBA。RGBA 颜色模式24,24 位颜色深度 0,0,0,0,0,0,忽略颜色位 0 没有非透明度缓存o,忽略移位位o 无累计缓存0,0,0,0,忽略累计位 32,32 位深度缓存o 无模板缓存0 无辅助缓存PFD MAIN PLANE 主层0 保留0,0,0 忽略层,可见性和损毁掩模;int iPixelFormat;为设备描述表得到最匹配的像素格式 if(iPixelFormat=ChoosePixelFormat(hde,&pfd)一 0)MessageBox(”ChoosePixelFormat Failed”,NULL,MB_OK);return O:)设置最匹配的像素格式为当前的像素格式if(SetPixelFormat(hdc,iPixelFormat,&pfd)一 FALSE)(MessageBox(”SetPixelFormat Failed”,NULL,MB_OK);rctulll O:)return 1;14 随后就可以在 OnCreate 函数中创建绘图描述表。其代码如下:int COpenGL:OnCrcate(LPCREATESTRUCT lpCreateStruct)if(CWnd:OnCreatlpCreateStmct)=一-1)torahl-l:MySotPixdFormat(:GetDC(m_hWnd);设置当前的绘图像素式hdc=:GetDC(m_hWnd);获得绘图描述表 hghc=wglCreateContext(hdc);创建绘图描述表wglMakeCurrent(hdc,hglrc);使绘图描述表为当前调用线程的当前绘图描述表rctoln O;为使描述的三维物体更加生动,需要进行光照处理,为此添加 OpeIlGL 显示。在 OpenGLh 中定义函数 LightShine 函数,作为添加光源和材质属性的函数。在该函数中将创建两个光源,并使其位于不同位置,以产生不同的效果。定义;环境光,散射光,镜面光和镜面反射指数。因为没有一种光源完全由以上三种中的一种光源组成,所以任何一种光源都是由以上三种光源的光照成分组成的,即为混合光源。其成分值由 RGBA 定义。用材料对光的三原色的反射率来定义材料的颜色,与光源相对应,。代码如下:void COpenGL:LightShine(void)GLfloatmat_diffuse4=I0 5 0。5,101;OLfloatmatspecular4=10,1o10,10);GLflom mat_shininess1=10001;光源 lGLfloat light_positionO4=0,500,500,O);glMaterialfv(OL FRoNT,OL_DIFFUSE mat_diffuse);glMaterialfv(OL FRONT,GL-sPECU 帆 mat specular);glMaterialfv(GL_FRONT;GL_SHININESS,mat shininess);glLightfv(GL_LIGHT0,GL-POSITION,light_positionO);15glEnable(GL-LIGHT0);|凝、攮 2OLflom light_positionl4=1000,1000,1000,0);GLfloatmat_diffuseI4=05,05,10,1O;#Lightfv(GL-LIGHTl,GL_DIFFUSE,mat_diffusel);glLightfv(GL-LIGHTI,OL_SPECULAR,mat_specular);glLightfv(OL-LIGHTI,GL-sHINlNESS,mat_shininess);glLightfv(GL-LIGHTI,GUOSITION,light_positionl);#EnabZe(OUIGHTl);使模型能接受光照glEnable(OLLIGHTING);glLightModeli(GL-LIGHT_MODEL_TWO_SIDE,GL_TRUE),glDepthFunc(OL_LESS);glEnable(GL_DEP 啦乃 EST);计算定点法线glEnable(GL_AUTO NORMAL);百 Enable(GL_NORMALIZE);)所绘物体在哪个区域内进行绘制以及这个区域的风格是怎样的必须需要进行定义。为下一步的绘图工作打下基础。那么可以在 MyDlgOpenGLDlgcpp 的函数 OnInitDialog()中加入如下代码 2CReet rect(7,7,300,300);,定义绘图区域的大小m_pDisplay-Create(NULL,NULL,定义窗口风格WS_CHILDIWS_CLIPSIBLINGSIWS_CLIPCHILDRENWS_-vISIBLE,rect,this,o);在前面的准备之后,现在可以在 OnPaint 函数中绘制图象。在具体进行绘制物体时需要注意的是:glPushMatrix0-与 glPopMatrixO 的使用必须成对出现。此外必须正确使用 glSealeO 函数和 glRatateO 函数以及双缓存技术,以实现所绘物体的在指定窗口由远及近,由小变大的旋转。以绘制一个球体为例,代码如下:16void COpenGL:OnPaint0gICIear(GL_COLOR_BUFFER_BIT GL_DEPTH BUFFER BIT);space+=0005;space=01;step=step+1O:if(step36001step=step-360O:glPushMatrixO;glPushMatrixO;glScalef(space,space,space);glRotateffstep,00,10,0o);gotatst,00,00,1o);glRotatef(step,Io,o0,0o);LightSMneO;glutSolidSphere(I0,20,16);glPopMatrixO;glFlushO;SwapBuffers(hdc);缩放物体绕 Y 轴旋转物体鹏老 Z 轴旋转物体绕 x 轴旋转物体鹏忝加光照属性绘制球体使用双缓存技术实现交换缓冲区)在结束运行时,我们必须将一些环境变量释放。于是应该在添加的类COpcnGL 的析构函数中进行操作,以释放 DC 和删除 RC。代码如下:COpcnGL:OpcnOL()17wglMakcCurrent(NULL,NULL);wglDeleteContext(hglrc);删除绘图描述表 :ReleaseDC(m_hWnd,hdc);释放设备描述表18第四章总结第四章总结 本文把数字图像处理学和模式识别方法原理应用到三维人脸模型重建和识别领域,主要对人脸特征点提取、三维人脸重建和识别的算法进行了研究,并建立了一个基于二维人脸图像的三维人脸重建和识别系统。基于三维人脸的识别算法只是借助三维的某些特征进行识别,其目的是要提高二维识别的精确性。但是如何将三维识别的结果融合到二维识别中,从而建立一个有效识别准则,还有待进一步讨论。本文在研究三维人脸重建和识别算法的过程中将其分为两部分来讨论,一部分是重建和识别的基础:特征提取;另一部分是重建和识别的算法。(1)特征点提取部分,包括图像预处理和人脸特征点精定位。图像预处理部分主要考虑了光线、照相机等产生的噪声,分别对图像进行光照补偿、中值滤波和图像锐化处理。正面人脸特征点的定位对人脸正面图像利用积分投影、边缘检测、方差积分投影等技术准确定位各个特征点,算法简单有效。侧面人脸特征点是用人工提取的。(2)三维重建和识别部分。三维重建部分首先利用已确定的正、侧面特征点获取人脸的三维信息,利用这些三维信息重构出人脸的三维结构,再利用OpenGL 进行结构重建、纹理映射等可视化的仿真。三维识别是基于三维几何特征的人脸识别算法。利用获得的三维信息计算构造了 12 个三维的特征矢量,通过计算特征矢量的加权相似度,最终得出识别结果。19参考文献参考文献1 Bruno Santos Pimentel,Joao Hilario de Avila Valgas Filho,Rodrigo Lacerda Campos,Antonio Otavio Fernandes,Claudionor Jose Nunes Coelho.A FPGA Implementation of a DCT-Based Digital Electrocardiographic Signal Compression DeviceJ.IEEE,2001,0-7695-1333-6/01:44-492 L.Naviner,J.Danger,and C.Laurent.Efficient implementation for high accuracy DCT processor based on FPGA.Technical report,Ecole Nationale Suprieure des Tlcommunications,Paris,France,1998.3(美)Uwe Meyer-Baese.刘凌,胡永生译.数字信号处理的 FPGA 实现M.北京:清华大学出版社,2003.1。4X Li,J A Ritcey.M sequences for OFDM peak to average power ratio reduction and error correction J.Electronics Letters,1997,33:554-555.5Timothy M.Schmidl and Donald.Robust Frequency and Timing Synchronization for OFDMJ,IEEE TRANSACTIONS ON COMMUNICATION,1997,45.6X Li,J A Ritcey.M sequences for OFDM peak to average power ratio reduction and error correction J.Electronics Letters,1997,33:554-555.7李熠,李式巨,徐志江.无线局域网环境中OFDM 系统频偏综合估计J.电路与系统学报,2002:110-115.8胡永江,徐昌庆,陈自力.基于 IEEE802.11a 协议的 OFDM 基带信号仿真研究J.军械工程学院学报,2005 年 05 期.20致 谢致 谢 论文草成之际,首先要特别感谢我的老师三年来对我的指导和关怀。恩师学术造诣醇厚、奔放自由、视角独特,切中肯契,不仅在学业上给予我悉心教导,也教会我很多做人的道理。在论文写作过程中,从最初的选题、框架确定、到最终的定稿都离不开老师的悉心指导,特别是每一次评论指正,都让我受益匪浅。此外,老师在为人处事上的风趣、随和、正直直言不讳也对我产生深远的影响。感谢在 XX 学校学习期间诸位任课老师的言传身教,是你们让我对专业知识有了更为全面和深入的认识。感谢诸位评阅老师和答辩委员会对我论文的指点。感谢在 XX 学校院期间同班同学在学习上、生活上给我的帮助和支持,感谢你们的关心和鼓励,以及和你们一起共度的校园时光,将让我永生难忘。最后,感谢我的父母,他们在我的学业上不断鼓励我,是我学习上、生活上的精神支柱。他们一直在背后默默支持着我,千言万语无以言表,唯有努力学习和工作,回报导师、学校和父母。