百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

超百万人用它生成3D头像,这项技术刚刚中选了SIGGRAPH Asia 2022

ccwgpt 2024-11-19 02:25 76 浏览 0 评论

如何才能做一个和真人一样的 3D 头像?

先上传一张照片:

变成这样:

换一个人的照片:

再看一个例子:

眼镜也可以放进来:

在此基础上,还可以换上各种各样的发型、饰品,眼睛、帽子、发色、胡须,皆可编辑。

这效果,是不是可以做一套自己专属的表情包了?

创造这些 3D 头像的 AI 模型,是字节跳动技术团队创造出来的 AgileAvatar,已经中选了计算机图形学顶会SIGGRAPH Asia 2022。而它的前身,是我们去年介绍过的 AgileGAN

AgileAvatar 使用自监督学习的方式训练完成,也就是说,它无需耗费大量“人工”,直接实现“智能”,不需要标注数据即可训练,因此也更容易变成可用的产品。


应用于 TikTok Avatar 以及创建游戏角色


AgileAvatar 技术已经应用在 TikTok 中,今年年初的 TikTok Avatar 功能背后的模型就是它,这个功能上线后迅速收获了超过百万尝鲜用户。

另外,AgileAvatar 也将会在近期上线的游戏《星球:重启》中落地,这是一款朝夕光年旗下多端发行的科幻生存游戏,当玩家进入游戏创建角色时,可以上传真人照片,借助云端算法模型,创建和本人更像、更生动的虚拟角色。

注意,左下角是上传到游戏里的原图

即便你上传的不是真人照片,也可以基于图片来创建你的游戏角色。

甚至你上传的是表情包也行:


三个步骤输出可编辑 3D 头像


如何让照片变成 3D 头像?论文中介绍了三个主要的步骤。

先输入的一张正面的人脸照片。

第一步,借助一个风格化模型,直接把照片变成一个平面的头像。在这一步里,为了让最终的 3D 头像更像这个人本人,模型忽略了照片中的表情,更真实的展现出这个人的样貌。

注意,这还是一张平面图

这一步使用的模型,正是作者团队此前曾中选 SIGGRAPH 2021 的 AgileGAN,并做了两个调整:

一方面,为了让照片中人物的表情不影响生成效果,作者微调了 GAN 模型的生成器,只用无面部表情的数据来训练,这样模型就只会生成无表情的图形;

另一方面,为了保留照片里人物的眼镜等样貌特征,作者提出使用携带语义信息的 W+ 空间,相比于 AgileGAN 的 Z 空间,能更好的保留这些语义特征。

就像这样,下图左边一列是输入的原图,中间一列是原本 AgileGAN 的生成结果,右边一列是调整后的生成结果,人物的表情消失了,眼镜保留了。

第二步,通过一个自监督学习的模型确定一组参数,根据这组参数,模型把上面那张平面图,变成下面这样的 3D 头像

现在,它是3D的了

这一步里,论文作者自己造了一个可微分的神经渲染器,直接集成在模型里,它可以达到图形学引擎的渲染能力,同时也可以让模型能在自监督学习的框架下进行训练。

为什么一定要造一个渲染器放进去呢?

一般来说,想要给这样一个 3D 头像建模,需要用到两种参数:

一种叫离散参数,它用来确定眼镜、头发等部位的类型,决定一个部位“是什么”;

另一种叫连续参数,靠它确定人脸长度、眼睛大小等数值,决定一个部位“有多大”。

训练模型的时候,如何把他们两个放在一起优化一直是一个棘手的问题。于是作者决定不强制模型估计离散值,而是将离散空间扩展到连续空间进行优化,这样能够帮助收敛。

然而,解决了一个问题,另一个问题出现了:

这样会导致算法生成的是一个粗糙的 3D 形象,没法用现成的图形学引擎来渲染——那就只能现造一个。所以就有了下面这一步,生成一个精细的头像,它的参数空间和 3D 头像的建模系统完全匹配。

第三步,用搜索的方式从预先设计好的大量素材中找到和它最像的头发和肤色,把它从一个粗糙的 3D 头像变成一个精致的矢量化 3D 头像

三个步骤完成后,把生成的 3D 头像输出为一个可编辑的 3D 模型,进行你想操作的任何编辑。

比如可以修改发型和装饰:

看,发型、发色、胡须、眼镜都可以编辑

可以做表情包:


可以实现人脸驱动,在录视频的时候当做虚拟头像:

AgileAvatar 项目相关链接

项目网站:

https://ssangx.github.io/projects/agileavatar

论文地址:

https://arxiv.org/abs/2211.07818


字节跳动智能创作团队

AgileAvatar 的研发者来自字节跳动智能创作团队。

智能创作团队是字节跳动 AI、特效和音视频创作技术和业务中台,负责了各短视频平台和视频剪辑产品的核心技术和业务研发,涵盖了深度学习、计算机视觉、图形学、语音、拍摄编辑、特效、客户端、服务端工程等技术领域,并以多种形式向公司内部其他各业务线以及外部合作客户提供业界最前沿的内容理解、内容创作、互动体验与消费的能力和行业解决方案。

相关推荐

NestJS入门教程系列一

介绍Nest(NestJS)是用于构建高效,可扩展的Node.js服务器端应用程序的框架。它使用渐进式JavaScript,内置并完全支持TypeScript(但开发人员仍然能够使用JavaScrip...

【推荐】一个网盘资源搜索与转存工具,支持移动端与PC端!

如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!项目介绍CloudSaver是一个基于Vue3和Express的网盘资源搜索与转存开源实用工具。它支持...

Appium原理精讲

目前使用Appium新版本和旧版本的企业数目都很多,而两个版本的安装过程和api的使用又有较大的区别。但是无论表面上的东东如何变化,内部原理都是一样的。在这里我给大家介绍一下appium的核心,增进大...

Kubernetes最小部署单元Pod

一、Kubernetes与Pod简介在当今云计算和容器化技术盛行的时代,Kubernetes已然成为容器编排领域的中流砥柱。它是一个开源的容器编排平台,由Google基于其内部使用的Bo...

最常用的四种跨域解决方案

前置知识什么是跨域?浏览器发送的请求地址(URL)与所在页面的地址不同(端口/协议/域名其一不同)。简言之,浏览器发出的请求url,与其所在页面的url不一样。此时,同源策略会让浏览器拒收服务器...

Bolt.New —— 全栈AI Web自动编程

Bolt.New是由StackBlitz公司推出的,全栈AI工具,代码编辑、运行、部署,通通一站式搞定。它使用WebContainers技术,无需任何本地安装或配置,在浏览器中,就可以运行完整的No...

Nodejs Express新手教程&高手进阶

NodejsExpress新手教程&高手进阶Express是一个NodeJS平台的框架,主要用于构于Web服务器项目。本文将通过示例介绍适合新手入门的Express基础使用,以及高手进阶知识,如:c...

Express.js 创建Node.js Web应用

Express.js是一个基于Node.js的Web应用框架,框架的设计目的是构建应用的架构和简化应用的开发。框架会解决一些通用的问题,在Express.js中,Express框架会处理如:中间件、代...

JavaScript 的 Express.js 功能及应用场景详解

Express.js是一个基于Node.js的轻量级Web应用框架,主要用于快速构建服务器端应用和API。它的核心功能包括以下关键点:1.路由管理URL路径与HTTP方法映射:通过...

nodejs的express4文件下载

在nodejs的express框架中,下载变得非常简单,就一个方法,res.download()首先express命令行生成项目基本框架:不会的看这里:http://blog.csdn.net/zz...

Express 系列:快速生成一个项目

系列预告本系列将以一个项目入手结合相关技术细节来带领大家一起学习Express这个基于Node.js的后端框架。本文首先将介绍:如何快速的生成一个具有一定结构的Express项目。Express项目结...

nodejs的express自动生成项目框架

nodejs版本为:4.X,express版本为4.X1.全局安装2个模块express、express-generator在命令行输入:npminstall-gexpressnpminsta...

express开发(一)简介与搭建

上周末去了趟上海书城,不愧是上海数得上号的书城,流行的科技书应有尽有,话不多说直接上图。最经典的C语言O(∩_∩)O最流行的java(づ ̄3 ̄)づ超酷的R语言/(ㄒoㄒ)/~~然而,身为一个坚定的前...

Vue+Echarts可视化大屏系统后端框架搭建(附代码)

各位同学,大家好。上节课,前面我们讲解了Vue+Echarts前端部分的设计方法。这节课程,我们开始讲解使用Express进行后端设计的方法。01项目相关理论介绍什么是expressExpress是...

Shopify电商API接口开发

Shopify电商API接口开发上线流程主要包括以下步骤。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎洽谈合作。前期准备-注册Shopify账号:在Shopify官网注册,用于后续开发测试...

取消回复欢迎 发表评论: