人脸建模软件毕业论文(初稿)

上传人:cl****1 文档编号:431191298 上传时间:2022-09-14 格式:DOC 页数:28 大小:887.52KB
返回 下载 相关 举报
人脸建模软件毕业论文(初稿)_第1页
第1页 / 共28页
人脸建模软件毕业论文(初稿)_第2页
第2页 / 共28页
人脸建模软件毕业论文(初稿)_第3页
第3页 / 共28页
人脸建模软件毕业论文(初稿)_第4页
第4页 / 共28页
人脸建模软件毕业论文(初稿)_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《人脸建模软件毕业论文(初稿)》由会员分享,可在线阅读,更多相关《人脸建模软件毕业论文(初稿)(28页珍藏版)》请在金锄头文库上搜索。

1、目 录1 引言12 概述22.1 人脸建模软件概述22.2 本设计方案思路32.3 研发方向和技术关键32.4 主要技术指标43 软件设计53.1 软件框架的搭建63.2 特征点的选取63.3 OpenGL环境下3D模型的显示73.4 建模方法83.5 模型文件格式93.6 其他说明94 软件框架的实现104.1 框架概要104.2 图形用户界面的实现104.3 OpenGL环境的实现124.4 照片和特征点的实现155 核心算法的实现175.1 算法概要175.2 数学归化算法175.3 拉普拉斯变形算法185.4 Mask透明截图算法216 调试247 结论26致谢27参考文献281 引言

2、人脸是人类日常情感表达和交流最重要、最直接的载体。人脸的计算机建模应用非常广泛,比如说电影、广告人物动画、电脑游戏、视频会议、人机接口、面部外科手术、电视节目、计算机辅助手语教学以及心理学、认知科学等许多领域。 一个具有真实感的人脸模型能够丰富人机接口,增强系统非口语语言通信及表情信号的能力,使人机接口更令使用者感兴趣,且更易于使用。通过计算机生成具有真实感的三维人脸拥有广阔的应用前景,而且这项技术是近年来计算机图形学、计算机视觉、人工智能等领域中最具挑战性的问题之一。其实,早在20世纪70年代关于人脸建模及动画的研究便开始了。这个开创性的工作是由Parke起步的。接着Waters等人提出了广

3、泛应用的肌肉模型方法。Cohen和Massaro以及其他很多研究者对可视化语音合成进行了初步的尝试。随着网络技术的普及,世界上第一个网上虚拟播音员Ananova在伦敦发布,计算机合成的Ananova可以一天24小时发布新闻。人脸建模的应用现在已经非常广泛,模型的真实程度也较以前有了很大的飞跃。利用三维扫描仪获取三维形状数据和纹理信息是一种直接的人脸建模方法,通常具有较高的精度,但是存在硬件设备造价高、不灵活等不足,一般只适用于某些特殊场合;当前的研究热点主要集中在根据图像和视频序列进行人脸重建,现有基于多张图像的方法普遍存在特征点匹配复杂、效率低等不足。根据单张人脸照片上的少量特征点能够快速、

4、自动地实现特定人脸的建模,是目前三维人脸建模研究中一个极具潜力的研究方向。本设计就是制作一个基于单张人脸照片的快速、自动建立个性化人脸模型的应用软件。其目标是以较少的输入和交互操作,自动建立人脸3D数据模型,所建立的模型与人脸照片中的样本具有较高的相似度。2 概述2.1 人脸建模软件概述一般的,人脸建模软件的设计包括以下3个过程:脸部数据的获取、3D人脸几何建模、纹理图像的合成提取。通过人体测量学对相似的面部进行测量,对其结果进行统计,生成脸的统计学数据。这些统计学数据被当作对参数化表面的约束。对特定人脸的建模依然需要用户输入大量的数据,但现在也可以通过激光扫描仪和立体摄像机等自动实现。人脸几

5、何建模就是把真实人脸的框架标准化,然后用网格表示出来。这也是本次毕业设计的难点,因为真实人脸几何建模非常困难并且很耗时间,真实的人脸是高度光滑且形状复杂的,并且人们对它的每一个细节都非常熟悉.对于3D人脸几何建模,通常情况下,为了把脸表达得更加详细、生动,总是希望网格数越多越好,但是考虑到计算代价,又不可能把网格数无限制地增加.3D人脸几何建模的最基本要求是,能够表达清楚脸部的明显特征,同时希望网格数尽可能的少.脸部模型生成方法大致可以分为3种:多边形建模技术、曲面建模技术和体网格建模技术.人脸纹理图像的生成也是很重要的一个环节,对模型附加纹理可以极大的提高模型和真实源的相似度,因为纹理图像可

6、以表现出模型本身很难表达出的信息,比如说像睫毛这样细小的细节。通过人脸照片可以直接提取人脸的纹理特征,主要应用的技术有Mask图,Alpha透明度合成等。软件中的建模方法用到了标准人脸变形法,这个方法是将一个已经完成建模的3D人脸模型数据,根据特征化人脸照片及其特征点位置,利用一定的变形算法,通过一般化人脸到特征化人脸的变形来完成建模的。这个方法属于多边形建模法,而且理解起来比较容易,具备一定的可行性。但缺点是模型变形的控制有限,不能还原所有的3D数据。变形完成以后的模型,通过Mask图提取照片中的纹理特征,在提取照片之前还应注意照片中人脸大小的标准化。对提取的特征使用Alpha调节透明度,使

7、之融合在标准的人脸纹理上。本毕业设计中其他的工作点在于软件界面的设计和制作上。为了实现较好的人机交互功能,必须设计好软件的输入和输出操作。因为输入和输出操作是直接对用户可见的。而其他软件操作则是只有软件本身可见的,不对用户开放。所以用户可以不用关心模型的实际建模过程。2.2 设计方案思路本设计中最主要的要点在于1.软件界面的设计和制作;2.图片的导入;3.特征点的调整;4.3D模型的显示;5.对3D模型的交互;6.标准3D模型的变形算法;7.纹理特征图像的提取合成;8.特征点数据的三维化;9.模型文件和纹理文件的保存。1. 利用MFC的框架设计和制作软件界面;2. 利用文件的读取来完成照片图片

8、的导入;3. 通过建立特征点的数据结构,利用MFC提供的图形图像接口完成特征点的显示和控制;4. 建立OpenGL的图形环境,通过文件打开3D模型的OBJ文件,建立3D模型的数据结构,在OpenGL的环境中显示3D模型;5. 使用MFC提供的消息处理机制,完成OpenGL和消息的互动,由此对3D模型进行交互;6. 通过特征点的相对位置,采用拉普拉斯变形算法解决3D模型的变形问题;7. 通过特征点的相对位置,缩放原始照片图像,再用mask图对人脸照片的特征纹理进行提取和合成;8. 利用特征点的2维相对位置,寻找3维模型正面视图的边界点,通过寻找到的边界点完成2维数据的3维化。9. 在建模过程中生

9、成特征模型所需的数据,并建立临时文件,以便保存文件数据。2.3 研发方向和技术关键(1) 建立友好的图形用户界面,方便用户操作;(2) 面向对象的软件编程,MFC的API;(3) OpenGL的环境搭建和消息的传递;(4) 3D模型的显示、交互以及拉普拉斯变形;(5) 特征点2维数据的3维化;(6) 纹理特征的提取和合成。2.4 主要技术指标(1) 软件运行环境: 操作系统:Microsoft Windows XPMicrosoft Windows 7 内存:2GB 硬盘:50MB 软件环境:glmf32.dll; glu32.dll; glut32.dll(2) 模型顶点数:863个(3)

10、模型纹理顶点数:900个(4) 模型面片数:1630个3 软件设计人脸3D模型的建模过程主要包括3部分,第一步是用户输入人脸照片并调整特征点的位置,接着建立3D模型的数据结构和纹理合成,最后将建立好的人脸模型以文件的形式输出,保存到电脑上以便其他建模软件应用。根据建模过程可以将软件分为5个模块:输入模块;模型数据模块;纹理数据模块;核心算法模块(数据处理模块)和输出模块。具体的模块图可参见图3-1:图3-1 人脸建模软件模块图输入模块主要为用户提供人脸正面照片的导入功能,以及在导入照片后自动显示人脸特征点,并使用户可以执行修改这些特征点的操作。输入模块还提供给用户直接打开模型文件的功能。模型数

11、据模块的功能是保存用户导入的人脸模型数据和标准人脸模型数据,为这些数据建立数据结构。这些数据常驻内存,方便软件时刻对数据进行修改和保存。纹理数据模块为人脸模型的纹理图形建立数据结构,并且纹理数据包括用户输入人脸照片的图像数据。核心算法模块(数据处理模块)的功能是利用数学算法对模型数据和纹理数据进行操作。操作的依据是用户输入的照片图像以及用户调整后的人脸特征点的相对位置。由特征点相对位置调整人脸标准模型数据各个顶点的三维坐标,再由用户输入照片的图像数据合成人脸模型的纹理数据,并将这些数据保存至模型数据模块和纹理数据模块。输出模块的功能有OpenGL的显示及交互,它为用户提供良好的模型显示效果以及

12、对模型的控制功能,包括平移、旋转、缩放;还有用户导入照片以及人脸特征点的显示。输出模块的另一个作用是将模型文件(OBJ文件)保存到硬盘。3.1 软件框架的搭建人脸建模软件第一步需要的是一个具有较好交互性的图形用户界面。所有的输入和输出功能,必须体现在所设计的界面元素上。首先,输入功能包括:打开模型文件、建立模型文件、导入照片、对模型显示界面的控制操作、特征点的调整。其次,输出功能包括:保存模型文件、照片列表视图、显示3D模型的OpenGL视图、调整特征点用的照片视图。其中,打开模型文件、建立模型文件、保存模型文件作为软件界面的工具栏元素;导入照片和照片列表视图为照片列表元素;对模型显示界面的控

13、制操作和显示3D模型的OpenGL视图属于模型界面元素;特征点的调整和调整特征点用的照片视图属于特征点调整界面元素。对软件的界面设计如下图(图3-2)所示:图3-2 个性化真实感人脸建模软件界面最上面有两个图像按钮的一层为软件界面的工具栏元素,最左侧显示小照片和照片名称的列表为照片列表元素,中间显示3D人脸模型的就是模型界面元素,最右面用于调整特征点的即是特征点调整界面元素。3.2 特征点的选取人之所以能够通过视觉区别不同的人,主要是因为人面部的特征各有不同。经过专家计算分析,人面部光正面的关键特征点总数就达70个之多。这么多的特征点,对于如何从照片中提取是一个复杂的问题。本设计使用的方法是人

14、工调整这些特征点,那么太多数量的特征点势必增加用户的工作量,而且太多的特征点在数据结构的建立和计算上的难度很大。所以必须使用数量既少,又能较好表现人脸关键特征的特征点。在对其他人脸面部建模软件的调研中发现,FaceGen人脸建模软件使用了11个正面人脸的特征点。这些特征点的位置如下:颧骨的左右两个边界点,这两个特征点相当于是人脸部正面的左右两个边界,直接决定了人面部的宽度。下巴最下部的特征点,这个点即是人面部的下边界。两侧脸颊的中央拐点,这两个点确定了人面部的曲线由颧骨到下巴的趋势,是人面部形状的重点特征。两个眼睛的眼球中点,这两个点直接表示了人双眼的位置。左右两侧鼻翼的边界点,这两个特征点表

15、示了人鼻子的宽度和在面部的位置,通过人眼睛的两个特征点计算,还可以大致判断鼻子的长度。左右嘴角的两个边界点,同鼻翼两侧边界一样,这两点确定了嘴巴的宽度和位置。具体的特征取样如下图3-3所示(以软件中标准面部模型为例):图3-3 标准面部模型正面全部特征点,绿色亮点为特征点标记3.3 OpenGL环境下3D模型的显示为了较好的显示3D模型,软件使用了OpenGL作为3D模型绘制的接口。所以必须要配置OpenGL的图形环境,设置好该环境下的各项数据。首先设置OpenGL的显示环境,确定OpenGL的显示视图,视图的长、宽以及长宽比,还有显示的最小深度和最大深度,确定显示像素的属性。其次是导入模型数据,调用OpenGL绘制函数,将模型的顶点、面片在图形显示视图上显示出来。最后打开纹理图像,为图形赋予纹理,同样须通过OpenGL的接口。其中需要注意的是,OpenGL的显示环境在配置好以后不宜任意改变,所以对于不可改变的显示环境,并不能匹配所有的模型文件。这样的话就

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号