当前位置: 首页 > news >正文

《MeInGame: Create a Game Character Face from a Single Portrait 》论文解读

一:论文干了件什么事

在这里插入图片描述
从单张图片生成一个游戏中的虚拟形象,且,论文的方法对光照强度,光照阴影遮挡等具有很好的鲁棒性,可以忠实还原肤色、妆容和皱纹等个性化细节。

摘要:

近年来,基于深度学习的三维人脸重建方法层出不穷,但应用于游戏领域的却很少。目前的游戏角色定制系统要么要求玩家手动调整相当多的面部属性来获得想要的面部,要么对面部形状和纹理的自由度有限。在本文中,我们提出了一种自动从单个人像中预测人脸形状和纹理的角色人脸创建方法,该方法可以集成到大多数现有的3D游戏中。虽然基于 3D Morphable Face Model (3DMM)的方法可以从单个图像中精确地恢复三维脸,但3DMM网格的拓扑结构与大多数游戏中使用的网格不同。为了获得逼真的纹理,现有的方法需要大量的人脸纹理数据进行训练,而建立这样的数据集是耗时费力的。此外,在实验室条件下收集的数据可能不能很好地推广到野外情况。针对这些问题,我们提出了1)低成本的人脸纹理获取方法;2)一种将三维网格的形状转换为游戏的形状传递算法;3)一种新的训练三维游戏人脸重建网络的管道。所提出的方法可以产生详细和生动的游戏角色类似的输入肖像。

二:论文怎么做的

在这里插入图片描述

步骤:

1:input image 通过3DMM 得到3DMM mesh
2: 3DMM mesh 通过shape transfer,得到game mesh
2.1)shape transfer:通常用 Non-rigid Iterative Closest Point (Nonrigid ICP,非刚性最近迭代) algorithm,但是本论文中觉得这个算法transfer过程不够快,自己提出一个新的shape transfer算法。
2.2)本文的shape transfer过程:本文的shape transfer基于 Radial Basis Function (RBF,径向基函数)插值。公式为:
在这里插入图片描述

首先,分别手动在模版3DMM mesh和模板game mesh中挑选68个landmark,将挑选出的这68个点当作original face landmarks。
其次,将game mesh中的original face landmarks,当作RBF的中心,x是原始的坐标值,计算出的f(x)是game mesh的偏置,所以,新的game mesh坐标就是x+f(x).
3: 提取input image特征得到image features,将image features送到光照回归网络中,得到光照系数。
4:基于game mesh,将input image展开到 UV 空间,得到粗糙的纹理贴图。
5: 提取粗糙的纹理贴图特征,与image features叠加到一起,送到texture decoder 网络中,得到精细化的纹理贴图。
6:将game mesh,精细化的纹理贴图,pose系数,光照系数一起作为输入,送到differentiable renderer(可微分渲染器)中,得到最终的游戏卡通形象。
7:为了进一步提高结果,还引入了两个鉴别器,一个用于渲染的面部图像和另一个用于生成的面部纹理贴图。

三:低成本的uv map 获取

步骤:

1:通过人脸分割模型,获取脸的位置
2:计算输入图均值颜色,然后将均值颜色传递到模版纹理贴图上
3:根据game mesh,将输入图unwrapping到UV 空间,得到粗糙的纹理贴图。
4:使用泊松混合映射,将unwrapped image 与模板纹理贴图混合。

四:损失函数

通过损失函数来最小化渲染的人脸图像和输入的人脸照片之间的距离,并且细化纹理贴图与地面的距离真实纹理贴图。在渲染循环中,我们设计了四个损失函数的类型,即像素损失、感知损失、皮肤正则化损失和对抗性损失。

1:Pixel Loss

在渲染图和原图之间的像素损失。
在这里插入图片描述
i表示像素点的索引。M2d表示皮肤区域蒙版,由人脸分割模型得到。
在uv 展开图像素损失。
在这里插入图片描述
F是精细化的纹理贴图,G是ground truth纹理贴图。

2:Perceptual Loss (不懂,需要看代码)

在这里插入图片描述
在这里插入图片描述

3:Skin Regularization Loss

定义了两个loss,分别是对称损失(symmetric loss)和标准差损失(standard-deviation loss)。
在这里插入图片描述
在这里插入图片描述

4:Adversarial Loss

用于原图与渲染图,精细化的纹理贴图和ground truth纹理贴图之间的对抗loss,训练gan网络。
在这里插入图片描述

相关文章:

  • 实现多线程的方式
  • 精通Java必备的100道面试题——面向对象面试题
  • Tcmalloc内存分配算法的分析
  • 中国按摩器行业市场需求与投资规划分析报告
  • 分布式医疗大数据存储方案研究综述
  • BOPPPS+课程思政教学模式在计算机导论课程中的应用
  • 中国冶金工程行业数据专项调研分析报告
  • mac (M系列)docker 中elasticsearch 搭建和基础使用 7.15.5版本
  • 党务管理信息系统,让组织人员架构管理更便利,操作更流畅
  • 2022年全球及中国公司秘书服务行业头部企业市场占有率及排名调研报告
  • HTML相关(四)
  • opencv parallel_for_使用及注意
  • 拿下国产高端市场第一背后,vivo与苹果、华为的共性
  • postgresql 实现变量替换框架
  • numpy在数字图像处理中的应用
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 10个最佳ES6特性 ES7与ES8的特性
  • Angular4 模板式表单用法以及验证
  • bootstrap创建登录注册页面
  • Just for fun——迅速写完快速排序
  • MySQL数据库运维之数据恢复
  • springboot_database项目介绍
  • 大整数乘法-表格法
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 使用parted解决大于2T的磁盘分区
  • 微信小程序填坑清单
  • 移动端 h5开发相关内容总结(三)
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • Spring第一个helloWorld
  • ​ssh免密码登录设置及问题总结
  • #include
  • #Z2294. 打印树的直径
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (Git) gitignore基础使用
  • (七)Java对象在Hibernate持久化层的状态
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (一)基于IDEA的JAVA基础12
  • *p++,*(p++),*++p,(*p)++区别?
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .form文件_一篇文章学会文件上传
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .net 怎么循环得到数组里的值_关于js数组
  • .sdf和.msp文件读取
  • @requestBody写与不写的情况
  • [1525]字符统计2 (哈希)SDUT
  • [20180129]bash显示path环境变量.txt
  • [Angular 基础] - 指令(directives)