项目名称:基于 OpenCV 和 OpenGL 的实时动画 生成系统的设计与实现 刘婧怡 高杨 岳思琪 邓健 陈述人:高杨
主要内容 一、项目背景及意义 二、项目内容 三、技术路线与实现方案 四、系统的使用和功能需求 五、项目难点 六、项目计划 七、团队分工
一、项目背景及意义 人脸识别技术现在已经被广泛地应用到了 很多领域,如电脑加密,上下班考勤,识 别罪犯等等。 随着游戏以及影视动画的发展,对于识别 人物的动态特征的需求也越来越迫切。 目前常见的动画生成软件设计简单,功能 不全面,精度也不高。 如果能够在 QQ 视频聊天中实时地生成脸 部的 3D 卡通动画不仅给网上聊天增加了 趣味性,同时也给对方增添了一些神秘感。
二、项目内容 图像获取 图像处理以 及特征提取 3D 建模及渲 染输出 将真实的人脸图像实时准确地生成 3D 卡通 动画图像。 大致分为以下三个步骤:
三、技术路线与实现方案 技术路线: 在 VC2008 环境下利用 OpenCV , OpenGL 函数库进行视频图像的获取以及 3D 效果的 渲染输出。 名词解释: OpenCV 是开源计算机视觉库。它轻量级而且 高效 —— 由一系列 C 函数和少量 C++ 类构成,实 现了图像处理和计算机视觉方面的很多通用算法。 应用领域有人机互动物体识别等。 OpenGL 是个定义了一个跨编程语言、跨平台的编 程接口的规格,它用于三维图象(二维的亦可)。 OpenGL 是个专业的图形程序接口,是一个功能强 大,调用方便的底层图形库。
实现 方案 将 OpenCV 与 OpenGL 这两个函数库加载 到 VC2008 中。 使用 OpenCV 现有的库函数以及一些算法 对视频获取的图像进行变换并提取图像中 人脸的特征。 用 3dmax 软件对人的头部进行建模,将其 保存为 OpenGL 可识别的 3D 文件格式, 如 “.ms3d” 。 将该 3D 头部模型文件加载到 VC2008 中。
实现 方案 使用已提取的人脸部特征变量、 OpenGL 的库函数及现有的和自己设计的算法对头 部模型实施控制,如拉长脸部,控制眼睛 的形状等等,使其与真实人脸相像。 使用 OpenGL 的库函数及代码实现对头部 模型的渲染输出。 精确度取决于算法的设计。
UML 用例图 start Video input 3D output Win _1 Win_2 Open: user
四、系统的使用和功能需求 1. 打开系统后首先呈现的是真实的人脸图像窗口; ★★★ 2. 系统先后出现两个窗口:真实图像以及图像特征 提取窗口、 3D 人脸模型窗口;★★★ 3. 图像处理窗口显示的是动态的图像处理过程,并 非处理一个静态的图片;★★★ 4. 在图像处理窗口划定人脸的范围;★★★ 5. 在 3D 人头部模型窗口能够准确地表现所提取的特 征;★★★ 6. 头部模型生动逼真,与真实的人脸相像;★★★
四、系统的使用和功能需求 7. 图像显示需要摄像头协助完成。★★★ 8. 两个窗口不同时出现,在真实图像窗口上加两个 按钮,点击弹出后面的窗口;★★ 9. 在图像处理窗口提取人头部的基本特征并在图像 上标注和用文字显示出来;★★ 10. 在两个窗口分别设置一个退出按钮;★★ 11. 可添加一些额外的表情按钮,添加所要表达而人 脸又没有做出的表情。★
理想成果图
五、项目难点 人脸的识别与获取(噪声的干扰,人 脸的动态,都是需要攻克的难题)。 人脸表情的 3D 处理(因为表情界限 的划分模糊,移动的幅度与时间较小 较迅速,也就增加了对于表情的获取 难度以及输出效果把握。)
六、项目计划 1 、项目开题阶段 主要工作:准备开题报告以及相关知识了解,学习。( 6 周) 2 、项目文档与需求分析阶段 主要工作:需求分析讨论确定后各模块负责人开始撰写文档。( 1 周) 3 、项目设计阶段 主要工作:根据需求与文档基本框架设计各模块基本实现过程( 2 周) 4 、项目实现阶段 主要工作:根据文档与设计利用相关技术实现系统功能与模块( 4 周) 5 、项目测试与总结阶段 主要工作:各模块负责人将系统汇总并进行简单测试与总结( 3 周) 6 、项目结题阶段 主要工作:准备结题报告与功能演示说明( 2 周)
甘特图
七、团队分工 组长:负责需求分析,文档管理,协 调各模块,构建基本模型。 组员 1 :负责文档撰写,周报撰写。 组员 2 :负责实现用 opencv 插件获取识 别人脸。 组员 3 :负责实现用 opengl 插件渲染输 出。
Thank you!