【AI数字人-论文】AD-NeRF论文

文章目录

    • NeRF
    • AD-NeRF
      • 模型
        • NeRF
        • 体渲染
        • 个体NeRF表示
        • 背景和姿态编辑
      • loss
    • 参考

NeRF

将一个连续的场景表示为一个输入为5D向量的函数,这个函数为NeRF函数,它的输入由一个空间点的3D位置 x = ( x , y , z ) \mathbf{x} = \left( x, y, z \right) x=(x,y,z)和它的2D视角方向 d = ( θ , ϕ ) \mathbf{d} = \left( \theta, \phi \right) d=(θ,ϕ)组成,输出为对应3D位置的颜色 c = ( r , g , b ) \mathbf{c}=\left( r, g, b \right) c=(r,g,b)和体素密度 σ \sigma σ。NeRF函数用公式表示为 F : ( x , d ) → ( c , σ ) F : \left( \mathbf{x}, \mathbf{d} \right) \rightarrow \left(\mathbf{c}, \sigma \right) F:(x,d)(c,σ),在具体的实现中,可以使用一个MLP网络近似拟合NeRF函数。
NeRF表示
NeRF 函数得到的是一个3D空间点的颜色和密度信息,但用一个相机去对这个场景成像时,所得到的2D 图像上的一个像素实际上对应了一条从相机出发的射线上的所有连续空间点,因此需要通过渲染算法从这条射线上的所有点得到这条射线的最终渲染颜色。

体素密度 σ ( x ) \sigma\left( x \right) σ(x)可以解释为:一个射线终止于 x x x处的无穷小粒子的微分概率。
将一个相机射线表示为 r = o + t d \mathbf{r} = \mathbf{o} + t \mathbf{d} r=o+td,其中 o \mathbf{o} o为射线原点, d \mathbf{d} d为射线2D视角。 t t t的近端和远端边界分别表示为 t n t_{n} tn t f t_{f} tf T ( t ) T\left( t \right) T(t)为射线从 t n t_{n} tn t t t时的累积透射率(通俗点理解就是射线 t n t_{n} tn t t t一路上未击中任何例子的概率)。一条射线上的点是连续的,那么这条射线的颜色 C ( r ) C\left( \mathbf{r} \right) C(r)是可以通过积分的方式得到,用公式表示为:
在这里插入图片描述
从连续神经辐射场渲染视图需要估计虚拟相机中每个像素追踪相机射线的积分 C ( r ) C\left( \mathbf{r} \right) C(r),可以使用求积分的方式对 C ( r ) C\left( \mathbf{r} \right) C(r)进行数值估计。但是现实中,MLP只作用于离散位置集。

NeRF论文中提到了分层抽样的方法,将 [ t n , t f ] [t_{n}, t_{f}] [tn,tf]划分为 N N N个等分的区间,然后从每个区间中随机均匀地抽取一个样本。虽然使用了一组离散的样本估计积分,但是分层采样保证了采样位置的连续性,它能够使得优化过程中在连续的位置上对MLP进行评估。(直观地思路是在求积分的区域均匀地采样N个点进行近似计算,但这样的方式导致MLP只学习到了一系列离散点的信息,会限制NeRF的分辨率)。

i i i个采样点可以表示为:
在这里插入图片描述
基于这些采样点,将 C ( r ) C\left( \mathbf{r} \right) C(r)简化为:
在这里插入图片描述
其中 δ i = t t + 1 − t i \delta_{i} = t_{t+1} - t_{i} δi=tt+1ti为两个相邻样本之间的距离。

基于分段采样的渲染方式也是可微的。因此,基于这样的渲染方式,我们就可以用NeRF函数从任意角度中渲染出图片

AD-NeRF

AD-NeRF这篇论文收录于ICCV 2021,在神经辐射场的基础上提出一种直接将语音信号的特征送入到一个条件隐式函数以生成一个动态神经辐射场,然后利用体渲染(
volume rendering)从中合成与音频信号相对应的高保真头部视频和上半身视频。

具体来说,我们采用一个包含目标说话人视频和音频轨道的短视频序列作为输入。通过DeepSpeech模型提取音频特征和面部解析图,我们旨在构建一个音频条件隐式函数,该函数存储用于头部场景表示的神经辐射场。由于头部运动与上半身运动不一致,我们进一步将神经光线场表示分为两部分,一部分用于前景面部,另一部分用于前景躯干。这样,我们就可以从收集的训练数据中生成自然的头部视频序列。

论文主要包括三方面的贡献:

  1. 提出了一种音频驱动的头部说话方法,该方法无需任何可能导致信息丢失的中间模态,直接将音频特征映射到用于肖像渲染的动态神经辐射场。

  2. 为了能够生成更自然的头部说话结果,将人类肖像场景的神经辐射场分解为两个分支,分别建模头部和躯干。

  3. 借助音频驱动的NeRF,AD-NeRF能够实现头部视频编辑,比如姿势操纵和背景替换。

模型

下图是AD-NeRF模型的整体框架图,对于给定的一个人的肖像视频序列,训练两个神经辐射场来合成具有高保真度的头部说话视频,并使用体渲染进行合成。
在这里插入图片描述
在推理阶段,头部模型 F θ h e a d F_{\theta}^{head} Fθhead和躯干模型 F θ t o r s o F_{\theta}^{torso} Fθtorso都接受相同的输入参数,包括音频条件代码 a \mathbf{a} a和姿态系数 Π \Pi Π。体渲染过程将首先通过头部模型,为所有像素累积采样的密度和RGB值。渲染的图像期望在静态背景上覆盖前景头部区域。然后,躯干模型将通过预测躯干区域的前景像素来填充缺失的身体部位。

NeRF

AD-NeRF方法是一种使用条件隐式函数和额外的音频编码作为输入的条件光线场来生成头部说话视频。相比于标准的NeRF,除了视角方向 d \mathbf{d} d和3D位置 x \mathbf{x} x作为输入之外,又额外增加了语音 a \mathbf{a} a的语义特征作为饮食函数 F θ F_{\theta} Fθ的另一个输入, F θ F_{\theta} Fθ的公式表示为:

F θ ( d , x , a ) → ( c , σ ) F_{\theta} \left( \mathbf{d}, \mathbf{x}, \mathbf{a} \right) \rightarrow \left( \mathbf{c}, \sigma \right) Fθ(d,x,a)(c,σ)

语音语义特征:采用DeepSpeech模型预测每个20毫秒音频片段的29维特征代码。在具体实现中,将多个连续的音频特征帧联合送入时间卷积网络,以消除原始输入中的噪声信号。具体来说,使用来自十六个相邻帧的特征 a ∈ R 16 × 29 \mathbf{a} \in \mathbb{R}^{16 \times 29} aR16×29来表示音频模态的当前状态。

体渲染

在这里插入图片描述

Π \Pi Π用于将采样点变换到正则空间。在训练阶段,网络仅使用头部姿态信息,而不是任何3D面部形状。具体来说,首先使用粗网络来预测沿光线的密度,然后在精细网络中密度较高的区域中采样更多的点。

个体NeRF表示

将头部姿态纳入渲染过程的原因是:与静态背景相比,人体部位(包括头部和躯干)在每一帧中都在动态移动。因此,对于辐射场训练,将变形点从相机空间变换到正则空间是至关重要的。
为何要使用两个独立的神经辐射场(头部和躯干)来建模?
Gafni等人试图通过基于自动预测的密度将前景和背景解耦来处理动态运动,即对于穿过前景像素的分散射线,将使用高密度预测人体部位,而背景图像将被忽略,具有低密度。由于头部运动和躯干运动不一致,并且姿态参数 Π \Pi Π仅针对面部形状进行估计,因此将相同的刚性变换(rigid transformation)同时应用于头部和躯干区域将导致上半身出现不满意的渲染结果。

刚性变换,也称为欧几里德变换或欧几里德等距,是欧几里德空间的几何变换,它在每一对点之间保持欧几里得度量。这种变换只包括旋转、平移、反射或其中的任何序列,并且保持物体的形状和大小不变。换句话说,经过适当的刚性变换后,物体的形态和大小都将保持不变。

在这里插入图片描述

训练数据: 对于一个给定的人,假定录制摄像机和背景都是静态的,收集有关他的有音频的一小段视频序列,一般视频长度为3-5分钟,视频帧率为25fps。
数据预处理: 首先利用自动人脸解析方法将训练图像分为三部分:静态背景、头部和躯干。然后基于解析结果从每个帧中删除人类区域,计算所有背景图像的聚合结果,对于缺失的区域,我们使用泊松混合[34]来修复具有邻域信息的像素,构建一个无任务的干净背景图像。应用多帧光流估计方法来获取前额、耳朵和头发等近刚性区域中视频帧之间的密集对应关系,然后使用束调整来估计姿态参数。
训练: 训练个体NeRF时,分成两个阶段。
首先训练头部的隐式函数 F θ h e a d F_{\theta}^{head} Fθhead。将由解析图确定的头部区域视为前景,其余部分视为背景。头部姿态 Π \Pi Π应用于通过每个像素投射的射线上的采样点。假设射线上的最后一个样本位于具有固定颜色的背景上,即背景图像中像素的颜色与射线对应。然后,我们将 F θ h e a d F_{\theta}^{head} Fθhead的渲染图像转换为新的背景,并将躯干部分设置为前景。记下来继续训练第二个隐式函数 F θ t o r s o F_{\theta}^{torso} Fθtorso。对于躯干区域,没有可用的姿态参数。因此,我们假设所有的点在正则空间中并且将头部姿态 Π \Pi Π作为NeRF的额外条件输入。

背景和姿态编辑

由于两个神经辐射场都采用语义音频特征和姿态系数作为输入来控制说话内容和说话头部的运动,因此我们可以通过分别替换音频输入和调整姿态系数来实现音频驱动和姿态操纵的说话头部视频生成。由于我们将背景图像上对应的像素作为每条射线的最后一个样本,因此隐式网络学会预测低密度的前景样本值和高密度的前景像素值。这样,我们将前景和背景区域解耦,并且只需替换背景图像即可实现背景编辑。
在这里插入图片描述

loss

假设 I r ∈ R W × H × 3 I_{r} \in \mathbb{R}^{W \times H \times 3} IrRW×H×3为渲染图像, I g ∈ R W × H × 3 I_{g} \in \mathbb{R}^{W \times H \times 3} IgRW×H×3为真实图像,优化的目标则是减少 I r I_{r} Ir I g I_{g} Ig之间的重建误差,因此,损失函数公式如下所示:

在这里插入图片描述

参考

  1. AD-NeRF: Audio Driven Neural Radiance Fields for Talking Head Synthesis
  2. NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
  3. YudongGuo/AD-NeRF

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

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

相关文章

【前端素材】几款实用的后台管理系统html模板(附带源码)

一、需求分析 后台管理系统是一种用于管理网站、应用程序或系统的工具,它通常作为一个独立的后台界面存在,供管理员或特定用户使用。下面详细分析后台管理系统的定义和功能: 1. 定义 后台管理系统是一个用于管理和控制网站、应用程序或系统…

湖南建研工程质量检测系统/Scripts/admintool文件上传漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

YAPI接口自动鉴权功能部署详解

安装准备 以下操作,默认要求自己部署过yapi,最好是部署过yapi二次开发环境。 无论是选择在线安装或者是本地安装,都需要安装client工具。 1、yapi-cli:npm install yapi-cli –g, 2、安装后将文件夹nodejs/node_gl…

推荐一个内网穿透工具,支持Windows桌面、Linux、Arm平台客户端

神卓互联是一款常用的内网穿透工具,它可以将本地服务器映射到公网上,并提供域名或子域名给外部访问。神卓互联具有简单易用、高速稳定的特点,支持Windows桌面版、Linux版、Arm版客户端,以及硬件等。 神卓互联内网穿透技术简介 企…

【C++航海王:追寻罗杰的编程之路】vector

目录 1 -> vector的介绍及使用 1.1 -> vector的介绍 1.2 -> vector的使用 1.2.1 -> vector的介绍 1.2.2 -> vector iterator的使用 1.2.3 -> vector空间增长问题 1.2.4 -> vector的增删查改 1.2.5 -> vector迭代器失效问题 2 -> vector的深…

已解决:IDEA中@Autowired自动注入MyBatis Mapper报红警告的几种解决方法

今天在使用 IDEA 使用 MyBatis 的时候遇到了这种情况: 可以看到 userMapper 下有个红色的波浪警告,虽然代码没有任何问题,能正常运行,但是这个红色警告在这里杵着确实让人很窝心。 于是我在网上找了找,最终明白了原因…

[杂记]mmdetection3.x中的数据流与基本流程详解(数据集读取, 数据增强, 训练)

之前跑了一下mmdetection 3.x自带的一些算法, 但是具体的代码细节总是看了就忘, 所以想做一些笔记, 方便初学者参考. 其实比较不能忍的是, 官网的文档还是空的… 这次想写其中的数据流是如何运作的, 包括从读取数据集的样本与真值, 到数据增强, 再到模型的forward当中. 0. MMDe…

AcuAutomate:一款基于Acunetix的大规模自动化渗透测试与漏洞扫描工具

关于AcuAutomate AcuAutomate是一款基于Acunetix的大规模自动化渗透测试与漏洞扫描工具,该工具旨在辅助研究人员执行大规模的渗透测试任务。 在大规模的安全测试活动中,AcuAutomate可以帮助我们同时启动或停止多个Acunetix扫描任务。除此之外&#xff…

【鸿蒙系统学习笔记】状态管理

一、介绍 资料来自官网:文档中心 在声明式UI编程框架中,UI是程序状态的运行结果,用户构建了一个UI模型,其中应用的运行时的状态是参数。当参数改变时,UI作为返回结果,也将进行对应的改变。这些运行时的状…

[AudioRecorder]iPhone苹果通话录音汉化破解版-使用巨魔安装-ios17绕道目前还不支持

首先你必须有巨魔才能使用!! 不会安装的,还没安装的移步这里,ios17 以上目前装不了,别看了:永久签名 | 网址分类目录 | 路灯iOS导航-苹果签名实用知识网址导航-各种iOS技巧-后厂村路灯 视频教程 【Audio…

科技云报道:云原生是大模型“降本增效”的解药吗?

科技云报道原创。 在过去一两年里,以GPT和Diffusion model为代表的大语言模型和生成式AI,将人们对AI的期待推向了一个新高峰,并吸引了千行百业尝试在业务中利用大模型。 国内各家大厂在大模型领域展开了激烈的军备竞赛,如&#…

Python set函数

在Python编程中,set()函数是一个重要且常用的内置函数,用于创建一个新的集合对象。集合是一种无序且不重复的数据类型,它可以用于存储唯一的元素。本文将深入探讨Python中的set()函数,包括基本用法、集合操作、实际应用场景&#…

PyCharm - Project Interpreter (项目解释器)

PyCharm - Project Interpreter [项目解释器] References File -> Settings… -> Project: -> Project Interpreter References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

基于数字双输入的超宽带Doherty功率放大器设计-从理论到ADS版图

基于数字双输入的超宽带Doherty功率放大器设计-从理论到ADS版图 参考论文: 高效连续型射频功率放大器研究 假期就要倒计时啦,估计是寒假假期的最后一个博客,希望各位龙年工作顺利,学业有成。 全部工程下载:基于数字双输入的超宽…

遇到问题(二) 中文乱码

例如这样: 原本是这样: 解决方法:点击扳手工具设置——Editor——Encoding——选chinese GB2312(有的是UTF-8)

LabVIEW高速信号测量与存储

LabVIEW高速信号测量与存储 介绍了LabVIEW开发的高速信号测量与存储系统,解决实验研究中信号捕获的速度和准确性问题。通过高效的数据处理和存储解决方案,本系统为用户提供了一种快速、可靠的信号测量方法。 项目背景 在科学研究和工业应用中&#xf…

Ubuntu18.04有线连接后,无法设置ip地址以及显示网口设置

前提:首先测试过网线是完全没问题的 桌面端找不到设置网口 终端输入: ifconfig 没有找到网口设置和对应IP 然后查询网口驱动是否正常安装,输入: lspci | grep Ethernet 有输出说明网口驱动正常安装 然后查询电脑的ip地址&am…

物流EDI:Verizon EDI 需求分析

作为物流行业的企业,Verizon与其供应商之间通过EDI来传输业务单据。在与Verizon建立EDI连接时,需要参考EDI 指南、采购订单条款和条件以及运输路线指南这三个文档。 点击此链接,获取上述的三个文档 Verizon供应商可以通过上述链接找到用于处…

ubuntu22.04@laptop OpenCV Get Started: 015_deep_learning_with_opencv_dnn_module

ubuntu22.04laptop OpenCV Get Started: 015_deep_learning_with_opencv_dnn_module 1. 源由2. 应用Demo2.1 C应用Demo2.2 Python应用Demo 3. 使用 OpenCV DNN 模块进行图像分类3.1 导入模块并加载类名文本文件3.2 从磁盘加载预训练 DenseNet121 模型3.3 读取图像并准备为模型输…

解决npm淘宝镜像到期问题

1 背景 由于node安装插件是从国外服务器下载,如果没有“特殊手法”,就可能会遇到下载速度慢、或其它异常问题。 所以如果npm的服务器在中国就好了,于是我们乐于分享的淘宝团队干了这事。你可以用此只读的淘宝服务代替官方版本,且…