索尼数字人研究:画质超逼真,面部表情与身体动作保持协调

news2024/11/28 16:00:27

近年来,3D动捕、数字虚拟人等技术受到越来越多关注,它不仅可以应用于电影场景,游戏、社交等领域也开始采用。相比于过去高成本、高门槛的全身动捕技术,现在制作基于动捕的虚拟人越来越容易,不需要过高的成本或是专业技术知识,一些简易、自动化的动捕方案就足够普通创作者使用。

近期,索尼也公布了一项基于机器学习的3D虚拟人和动捕方案,该方案可逼真模拟人类面部表情和行为的3D建模技术,通过忠实重现人类特征,来推动虚拟社交。

索尼指出,数字人是基于真人特征的3D模型,它在虚拟场景中可模拟人的自然外观和行为。近年来,越来越多的企业开始接触数字人技术,并将它用于广告、客服、游戏等场景。当然,并不是所有数字人都能完全还原人的特征,它们的还原程度取决于用途,比如在CG电影中,对于数字人的逼真度会要求更高。索尼认为,随着CG渲染技术不断提升,虚拟化身的质量越来越好,因此恐怖谷问题正在得到解决。

索尼的目标,是开发一种仿佛真实存在的数字人,这种数字人具有存在感,让人感觉它仿佛就在身边。换句话说,就是利用数字技术来复制真人。结合AI算法后,它可以和真人互动,甚至和真人难以区分。其研发重点是突出数字人的个性表达,比如重现人脸皱纹和表情的特征变化,抓住人独一无二的特点。从自然交互的角度来看,索尼也注重数字人的眼神与用户的互动,数字人不会盯着用户,而是模仿人眼和头部自然动作。

数字人核心技术

构成数字人的核心技术包括:面部动捕、面部肌肉模拟、面部肌肉动作和身体协调性。基于人脸绑定的面部动画也需要这些步骤,模拟人脸表情变化是一个复杂的过程,要想忠实重现、绑定人脸面部动作,需要高端的面部动捕技术。而且,复杂的面部动捕难以控制,在制作动画时将需要高超的技术。为了简化基于动捕的人脸表情模拟过程,索尼研发了一种更加智能的工作流程,特点是无需传统的面部绑定方案,并降低了制作动画的工作量。

据了解,面部动捕技术可准确追踪表演者脸部各部分运动,并驱动CG模型去模拟这种运动。捕捉面部变形数据需要详细的三位信息,才能准确呈现肌肉伸展、收缩,以及由此产生的皱纹等细微运动。

而索尼的方案,简单来讲就是用动捕技术捕捉真人演员的表情,并根据捕捉到的数据生成人脸CG模型,以及面部动态变形效果。此外,还分析了各种面部表情模式,并提取了重现这些表情需要运动的面部区域。这些区域大约有100个,包括眼睛和嘴唇轮廓部位,在捕捉这些区域的3D信息后,索尼对它们的位置进行了标记。

在捕捉人脸3D信息时,索尼使用了多台同步的摄像机从多角度拍摄,并推算3D运动信息。不过,部分面部表情变化可能会导致标记检测失败或遮挡,因此该系统还利用光流,以及不同的摄像头角度来提升信息获取的稳定性。

接下来,索尼使用真人表演视频作为训练数据,培训了可精准检测眼睛、嘴唇运动的系统。索尼指出,每一帧动捕的准确性都决定了下一帧的准确性,因此该系统还需要不断完善,提高整体水平。

索尼开始使用头戴式摄像头(HMC)来拍摄演员的面部表情,相比于传统的固定机位拍摄,HMC的好处是可以追随演员,演员无需寻找摄像头,可以更加自由、灵活的运动。索尼表示:捕捉到自然运动的人体姿态后,才能渲染出完整的数字人,因此HMC是捕捉自然运动数据不可缺少的工具。

不过,演员可戴在头上的HMC摄像头数量有限,面部捕捉的角度、覆盖面积比固定机位更少。因此,准确捕捉3D面部数据、识别3D标记则尤为重要。为了训练良好的3D预测算法,索尼使用固定机位和HMC预先捕捉人脸数据,其中包括面部表情、3D标记等等。算法通过这些数据去学习表情和面部运动之间的相关性,后续只需要HMC的数据就可预测3D面部运动,准确性足够接近传统的固定机位方案。

模拟面部变形

在捕捉人脸3D标记信息后,索尼的动捕系统根据眼睑、嘴唇轮廓信息来模拟面部变形,并动态渲染在3D模型上。渲染面部变形的流程是:根据几何函数模拟面部表情、用机器学习模型将面部表情个性化、细节微调、叠加纹理。首先第一步,3D面部动作、眼睑轮廓需要准确定位,才能确保后续面部变形合理。因此,索尼设定了一个具有几何约束的能量函数,可根据3D面部数据来调整面部模型的整体形态。

另外,由于人脸表情变化引起的皮肤拉伸、收缩、皱纹和肌肉隆起程度因人而异,因此索尼利用十几种面部表情模式来训练个性化的机器学习模型,这些模型可根据人脸特征,来将3D面部表情个性化,重现用户的个人特征。

细节方面,该机器学习模型将人脸区域的伸长、收缩程度作为特征值,并根据几何变形模型与真实值之间的差距回归,从而输出具有个人特征的面部变形。

面部变形的最后一步,就是引入眼睑、嘴唇、口腔形状变形算法,对面部模型进行额外处理。这一步是为了纠正面部变形可能产生的误差,确保眼睑覆盖眼球(避免眼球和眼睑出现间隙,或眼球穿模眼皮)、自然的口腔形状变化等特征。在眼睑处理部分,该算法重点是避免眼睑接触眼球,而嘴唇处理部分,则侧重于几何约束,确保面部捕捉到的嘴唇轮廓与3D模型的嘴唇形状匹配。

面部和身体集成

完成3D面部动作模拟后,下一步便是将面部与身体姿态集成,并协调面部表情和身体动作。如果面部和身体分开运动,会显得不自然,因此索尼开发了面部和身体一体化算法,可模拟全身自然运动。

索尼指出,目前市面上的动捕方案主要用于模拟人体模型的运动和变形,人体3D信息通过光学方案捕捉,并且在颈部、腿部、手臂等处添加标记来定位骨骼姿态,生成人体网格,从而模拟人体形状。相比之下,索尼的方案侧重于模拟颈部形状,颈部的动作会同时受到面部和身体运动影响,比如颈骨运动决定面部方向,下颌运动决定嘴巴运动。

于是,索尼构建了一个全身姿态模拟系统,将HMC数据和身体动作捕捉同步,并根据这些数据来预测颈部形状。据悉,索尼预先创建了结合多种嘴型、面部方位的大量训练数据,并从中提取了潜在的颈部形状。在实际预测中,颈部模型组合了多种数据,包括下颌运动、颈部方向。

索尼表示:该颈部模拟模型可重现自然的面部和身体动作,目前训练改模型需要大量训练数据,后续将想办法减少对数据的依赖。

总之,索尼的数字人模拟方案实现了自动化的人脸表情模拟,这大大减少了前期创作工作,允许创作者交付更高质量产品。更重要的是,该方案可根据不同人的特征去模拟运动,好处是看起来非常自然。索尼表示:随着3D虚拟技术发展,数字人将会被更多人所熟知,轻松创建Avatar的需求将逐步增加。未来,希望可以将这项几乎应用于消费级市场,比如电影、游戏等领域。参考:sony

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/153056.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 可加载内核模块剖析

Linux 就是通常所说的单内核(monolithic kernel),即操作系统的大部分功能都被称为内核,并在特权模式下运行。 它与微型内核不同,后者只把基本的功能(进程间通信 [IPC]、调度、基本的输入/输出 [I/O] 和内存…

Hudi系列1:Hudi介绍

文章目录一. 什么是Hudi二. 发展历史三. Hudi 功能和特性四. Hudi 基础架构五. 使用公司六. 小结参考:一. 什么是Hudi Apache Hudi(发音“hoodie”)是下一代流数据湖平台。Apache Hudi将核心仓库和数据库功能直接带到数据湖中。Hudi提供了表&#xff0c…

6.6 工具-ELK安装

目录 6.6.1 Elasticsearch安装 6.6.1.1 安装 6.6.1.1.1 window 6.6.1.1.2 Linux 6.6.1.2 问题 6.6.1.2.1 问题一 6.6.1.2.2 问题二 6.6.2 Logstash安装 6.6.2.1 安装 6.6.2.1.1 window 6.6.2.1.2 Linux 6.6.2.2 问题 6.6.2.2.1 问题一 6.6.3 Kibana 6.6.3.1 安装…

论文投稿指南——中文核心期刊推荐(中国医学)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…

拿捏几道经典的字符串模拟问题

希望本篇对你有所帮助 我发现这种字符串的问题其实写起来很麻烦,可能思路不难多少都能想到一些,主要就是代码的处理,细节问题。太考验代码编写的能力了。这两天写了好多道字符串,模拟之类的问题,今天就分享分享吧 刚…

算法设计与分析-DP习题

7-1 最小路径和给定一个m行n列的矩阵&#xff0c;从左上角开始每次只能向右或者向下移动&#xff0c;最后到达右下角的位置&#xff0c;路径上的所有数字累加起来作为这条路径的和。求矩阵的最小路径和。输入格式:输入第一行&#xff1a;两个正整数m和n(1<m, n<1000)&…

【C++】非类型模板参数、模板特化、模板的分离编译、模板总结

文章目录一、非类型模板参数二、模板特化1.函数模板特化2.类模板特化三、模板的分离编译四、模板总结一、非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之类的参数类型名称。 #define N 10…

Spring_FrameWork_05(AOP)

Spring整合Junit RunWith(SpringJUnit4ClassRunner.class) ContextConfiguration(classes SpringConfig.class)加载test运行类和spring配置文件 使用Junit提供的Runwith注解&#xff0c;将Junit原有的运行器替换成spring提供的SpringJUnit4ClassRunner。 这个注解的值就是运…

【计算机视觉】Softmax代码实现、过拟合和欠拟合的表现与解决方法

Softmax原理 Softmax函数用于将分类结果归一化&#xff0c;形成一个概率分布。作用类似于二分类中的Sigmoid函数。 对于一个k维向量z&#xff0c;我们想把这个结果转换为一个k个类别的概率分布p(z)。softmax可以用于实现上述结果&#xff0c;具体计算公式为&#xff1a; 对于k…

程序员不了解这些投简历的巨坑,面试注定一开始就失败!

目录 前言第一阶段&#xff1a;练手第二阶段&#xff1a;冲刺第三阶段&#xff1a;收尾 前言 之前写了两篇文章&#xff0c;给大家介绍了一下如何利用短期的时间&#xff0c;尽可能充分的为面试做准备&#xff1a; 1.《我只是把握好了这3点&#xff0c;1个月后成功拿下大厂…

2023春节祝福系列第一弹(下)(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载)

2023春节祝福系列第一弹&#xff08;下&#xff09; &#xff08;放飞祈福孔明灯&#xff0c;祝福大家身体健康&#xff09; &#xff08;附完整源代码及资源免费下载&#xff09; 目录 四、画一朵真实的祥云 &#xff08;1&#xff09;、画一个渐变的白色径向渐变背景 &a…

外业调查工具助手,照片采集、精准定位、导航、地图查看

你是不是在外业调查时要背着一堆图纸 是不是一不小心图纸污损或丢失&#xff0c;工作又得重做 是不是经常会出现图纸标注的空间不足 是不是外业采集中要携带一大堆繁琐的仪器 是不是每次收集的数据、照片等在整理的过程中发现工作量巨大 是不是经常会出现采集回来的内容跟…

《MySQL 入门教程》第 36 篇 Python 访问 MySQL

本篇我们介绍如何利用 Python DB API 连接和操作 MySQL 数据库&#xff0c;包括数据的增删改查操作、存储过程调用以及事务处理等。 Python 是一种高级、通用的解释型编程语言&#xff0c;以其优雅、准确、 简单的语言特性&#xff0c;在云计算、Web 开发、自动化运维、数据科…

Spark / Java - atomic.LongAccumulator 与 Spark.util.LongAccumulator 计数使用

目录 一.引言 二.atomic.LongAccumulator 1.构造方法 2.使用方法 3.创建并使用 三.Spark.util.LongAccumulator 1.构造方法 2.使用方法 一.引言 使用 Spark 进行大数据分析或相关操作时&#xff0c;经常需要统计某个步骤或多个步骤的相对耗时或数量&#xff0c;java.u…

Java设计模式-适配器模式Adapter

介绍 适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示&#xff0c;主的目的是兼容性&#xff0c;让原本 因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)适配器模式属于结构型模式主要分为三类&#xff1a;类适配器模式、…

树莓派自带的python3.9->python3.7

卸载python3.9&#xff1a;sudo apt-get remove python3卸载之后一些包可以使用sudo apt autoremove这个命令删除卸载成功如果出现问题后续再来更新&#xff08;出现问题后后续安装python也会失败&#xff09;&#xff08;先不要安装先看&#xff09;安装python3.7&#xff1a;…

C语言第30课笔记

1.strerror(errno要包含头文件errno.h) 2.perror头文件为stdio.h 3.一些字符函数 4.字母大小写转换函数 5.memmove理论上是memcpy的升级版(可以自己拷贝自己)。 6.匿名结构体类型在类型创建好了之后直接创建变量&#xff0c;只能用一次。两个完全相同的匿名结构体类型&#xf…

【八】Netty HTTP协议--文件服务系统开发

Netty HTTP协议--文件服务系统开发介绍HTTP-文件系统场景描述流程图代码展示netty依赖服务端启动类 HttpFileServer服务端业务逻辑处理类 HttpFileServerHandler结果展示错误路径文件夹路径文件路径遗留bugbug版本总结介绍 由于Netty天生是异步事件驱动的架构&#xff0c;因此…

java EE初阶 — Synchronized 的原理

文章目录1. Synchronized 的优化操作1.1 偏向锁1.2 轻量级锁&#xff08;自旋锁&#xff09;1.3 重量级锁2. 其他的优化操作2.1 锁消除2.2 锁粗化3. 相关面试题1. Synchronized 的优化操作 两个线程针对同一个对象加锁&#xff0c;就会产生阻塞等待。 Synchronized 内部其实还有…

ubuntu docker elasticsearch kibana安装部署

ubuntu docker elasticsearch 安装部署 所有操作尽量在root下操作. 安装docker 1. 由于是基于宝塔面板安装的所以简答的点击操作即可完成安装. 我这里已经是正常的安装好了. 2.dcoker 镜像加速 https://cr.console.aliyun.com/cn-hangzhou/instances访问这个网址进去进行了…