【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.hqwc.cn/news/477977.html

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

相关文章

微服务-微服务Nacos配置中心

1.1 配置中心架构 1.2 Config Client源码分析 配置中心核心接口ConfigService public class ConfigServerDemo {public static void main(String[] args) throws NacosException, InterruptedException {String serverAddr "localhost";String dataId "naco…

MobaXterm下载安装及SSH远程教程

一、MobaXterm的简介 MobaXterm是一款功能强大的远程计算工具,集成了诸多网络工具和便利功能,包括SSH、X11服务器、SFTP等,支持Windows系统。用户可以使用MobaXterm来轻松管理远程服务器,进行文件传输,远程桌面显示等操…

程序员的自我修养笔记

导读 本书将详细描述现在流行的Windows和Linux操作系统下各自的可执行文件、 目标文件格式; 普通C/C程序代码如何被编译成目标文件及程序在目标文件中如何存储; 目标文件如何被链接器链接到一起, 并且形成可执行文件; 目标文件在…

安装VMware+安装Linux

以上就是VMware在安装时的每一步操作,基本上就是点击 "下一步" 一直进行安装 安装Linux VMware虚拟机安装完毕之后,我们就可以打开VMware,并在上面来安装Linux操作系统。具体步骤如下: 1). 选择创建新的虚拟机 2). 选…

NAS系统折腾记 | TinyMediaManager刮削电影海报

搭建好了NAS系统和Emby Media Server,接下来就是怎样对下载好的电影/电视剧集等内容进行刮削来展示电影海报墙获得更好的效果了。实际上,Emby Server本身就内置了强大的元数据抓取功能,能够自动从互联网上抓取电影、电视剧的元数据和海报等信…

镜像管理工具harbor启动在docker中,应该如何重启?

Harbor 是一个用于存储和分发 Docker 镜像的企业级Registry服务器。在 Docker 环境中启动和管理 Harbor 时,您可能需要重启服务来应用更新或配置更改。以下是在 Docker 中重启 Harbor 的步骤: 登录到服务器:首先,您需要通过 SSH 或…

借助Aspose.BarCode条码控件,C# 中的文本转 QR 码生成器

二维码用于在较小的空间内存储大量数据。它们易于使用,可以通过智能手机或其他设备扫描来打开网站、观看视频或访问其他编码信息。在这篇博文中,我们将学习如何使用 C# 以编程方式生成基于文本的 QR 码。我们将提供分步指南和代码片段,帮助您…

电脑开机需要输PIN码?教教你如何取消(Win10/Win11通用教程)

目录 方法一: 取消设置 方法二: 注:此系统为Win 11 方法一: 1.更改为本地用户 win键点击头像选择更改账户设置 在Microsof账户选择更改为本地登录 切换选择下一步,输入当前的账户密码 就能来到创建页面&#xff…

世界顶级名校计算机专业,都在用哪些书当教材?(文末送书)

目录 01《深入理解计算机系统》02《算法导论》03《计算机程序的构造和解释》04《数据库系统概念》05《计算机组成与设计:硬件/软件接口》06《离散数学及其应用》07《组合数学》08《斯坦福算法博弈论二十讲》参与规则 清华、北大、MIT、CMU、斯坦福的学霸们在新学期里…

AIOps探索 | 从单一告警管理到统一告警管理

原作者:擎创科技 资深产品专家 布博士 前言 最近发现我们的一些客户,仍在使用十多年前的流程和思想来思考业务和产品的未来。我们认为做产品必须明确该产品未来的业务发展方向,否则研发出的东西只是应对当前可见的需求(即项目需求…

用于将Grafana默认数据库sqlite3迁移到MySQL数据库

以下是一个方案,用于将Grafana数据迁移到MySQL数据库。 背景: grafana 默认采用的是sqlite3,当我们要以集群形式部署的时使用mysql较为方便,试了很多sqlite转mysql的方法要么收费,最后放弃。选择自己动手风衣足食。 目标: 迁移sqlite3切换…

怎么清理mac系统缓存系统垃圾文件 ?怎么清理mac系统DNS缓存

很多使用苹果电脑的用户都喜欢在同时运行多个软件,不过这样会导致在运行一些大型软件的时候出现不必要的卡顿现象,这时候我们就可以去清理下内存,不过很多人可能并不知道正确的清内存方式,下面就和小编一起来看看吧。 mac系统是一…