MonoHuman: Animatable Human Neural Field from Monocular Video 翻译

news2024/9/21 12:44:06

MonoHuman:来自单目视频的可动画人类神经场

摘要。利用自由视图控制来动画化虚拟化身对于诸如虚拟现实和数字娱乐之类的各种应用来说是至关重要的。已有的研究试图利用神经辐射场(NeRF)的表征能力从单目视频中重建人体。最近的工作提出将变形网络移植到NeRF中,以进一步模拟人类神经场的动力学,从而动画化逼真的人类运动。然而,这种流水线要么依赖于姿态相关的表示,要么由于帧无关的优化而缺乏运动一致性,使得难以实际地推广到看不见的姿态序列。为此,本文提出了一种新的MonoHuman框架。该框架能够在任意新姿态下鲁棒地绘制视点一致的、高保真的虚拟化身。我们的主要观点是用双向约束对变形场进行建模,并明确利用现成的关键帧信息来推理特征相关性以获得一致的结果。具体而言,我们首先提出了共享双向变形模块,该模块通过将向后和向前变形对应分解为共享骨架运动权重和单独的非刚性运动来创建姿势无关的可泛化变形场。在此基础上,设计了一个前向对应搜索模块,通过查询关键帧的对应特征来指导绘制网络的运行工作,因此即使在具有挑战性的新颖姿势设置下,渲染结果也是与高保真度一致的多视图。大量的实验结果表明,本文提出的MonoHuman算法的优越性优于现有的算法。

1 介绍

        渲染具有显式姿态控制的数字化身的自由视点照片逼真视图合成是一项重要任务,将为AR/VR应用,虚拟试穿,电影制作,远程呈现等带来好处。然而,以前的方法[34,35,60]通常需要仔细收集具有复杂系统和受控工作室的多视图视频,这限制了在一般和个性化场景应用中的使用。因此,尽管具有挑战性,但从单目视频中直接恢复和动画化数字化身具有重要的应用价值。

        以前的渲染方法[35]可以合成逼真的人体新视图图像,但很难以看不见的姿势动画化身。为了解决这个问题,最近的一些方法使神经辐射场(NeRF [28])[34,51]变形,以根据姿势或单个帧索引来学习参数模型的向后蒙皮权重。他们可以用新的姿势对训练集进行小的变化来动画恢复的人类。但随着混合权重是姿势相关的,这些方法通常过度拟合训练数据的可见姿势,因此,缺乏可推广性[51]。值得注意的是,一类方法[5,22]通过在规范空间中学习与姿态无关的前向混合权重并使用寻根算法来搜索后向对应来解决这个问题。然而,寻根算法很耗时。[4]提出增加一个前向映射网络来帮助后向映射的学习,尽管有一致的约束,但它们的后向扭曲权重仍然是帧相关的。其他一些作品[17,34,44]利用模板模型(如SMPL [26])的混合权重。其变形精度主要取决于模板模型,而在布料类零件中,由于SMPL没有对布料类零件进行建模,变形精度往往很低,如何学习出一个精确的、可推广的变形场仍然是一个有待解决的问题。

        为了重建和动画化一个照片真实感的化身,使其能够从单目视频中泛化到看不见的姿态,我们从最近的研究中总结出三个关键的观察结果来实现泛化:1)变形权值场应该在正则空间中定义,并且尽可能地与姿态无关[5,50,51]; 2)理想的变形场应统一前后变形,以减少新姿态的模糊对应; 3)来自输入观察的直接外观参考有助于提高渲染的保真度。

        我们提出MonoHuman,一个新的框架,享有上述优势,从只有单眼视频重建一个动画数字化身。具体地说,我们展示了如何从有限的视频数据中学习更正确和更普遍的变形,以及如何从规范空间中的变形点绘制真实感的结果。我们首先引入一个新颖的共享双向变形模块来移植到神经辐射场中,它将向后和向前变形分解为一个共享的骨架运动和两个独立的剩余非刚性运动。共享的运动基础鼓励网络学习更一般的刚性变换权重。分离的残余非刚性运动保证了姿态相关变形的精确恢复的表达性。

        在此基础上,进一步建立了由稀疏关键帧信息组成的观测数据库,并提出了一个前向对应搜索模块,用于从观测数据库中搜索观测对应关系,从而生成逼真、自然的人体外观,尤其是当前帧中不可见的部分。通过以上的设计,我们的框架可以合成一个人在任何视点和任何姿势,具有自然的形状和外观。

        总之,我们的主要贡献有三个方面:

       我们提出了一种新的方法MonoHuman,可以合成自由的观点和新颖的姿态序列的表演者与明确的姿态控制,只需要一个单目视频作为监督。

       我们提出了共享双向变形模块,以实现可推广的一致的向前和向后变形,和向前搜索对应模块查询对应的外观特征,以指导渲染步骤。

       大量的实验证明,MonoHuman框架能够提供高逼真度的结果,同时与现有的方法相比,本文的算法具有更高的识别率.

2 相关工作

        人因绩效捕获。先前的工作从多视图视频[9,42,53]或深度相机[29,41,55,58]和表面网格的Mendo图[12,13]重建人体几何结构。最近的作品将人体几何模型化为辐射场[6,17,20,32-35,51,60]或距离函数[47,54]。NeuralBody [34]使用SMPL [26]生成的结构化姿态特征来调节辐射场,使其能够恢复人类表演者并从稀疏多视图视频中生成自由视点图像。研究人员在相同的设置下进一步提高泛化能力[6,20,60]或重建质量[54]。虽然他们已经很好地提高了渲染质量,但这些方法的应用场景主要限于具有精确相机校准和有限捕获体积的室内多相机设置。

        从单目视频的人类渲染。为了消除多视点约束,许多方法探索从单个图像或单目视频重建数字人。[38 39,52]通过学习精确的表面重建从单个图像恢复静态的穿着衣服的3D人体。为了对人体动力学进行建模,一些作品[14,56]学习从单目视频中变形预扫描的人体模型。[1]通过优化SMPL模型的位移,从自旋转单目视频中重建完整的人体。最近,SelfRecon [16]通过将身体运动表示为可学习的非刚性运动沿着预定义的SMPL蒙皮来提高重建质量。其他作品[32,33,37]通过具有变形或混合网络的可变形NeRF对动态人类进行建模,该变形或混合网络将来自当前运动空间的光线混合到规范空间。然而,单目视频的深度模糊性和不充分的姿势观察可能会导致变形场过拟合训练数据,这进一步导致新视图中的浮动伪影。为了解决这些问题,一些作品[17,50,51]引入运动先验来正则化变形。NeuMan [17]通过扩展SMPL网格中最接近对应的变形权重并在训练期间对其进行优化来学习混合场。HumanNeRF [51]将变形场分为骨架运动场和非刚性运动场。这些方法的目标在于渲染自由视点的人类图像,以获得子弹时间效果,而我们的方法的重点在于将重构的化身动画化为分布外的姿态,甚至是挑战由文本提示生成的姿态。

        人类动画。Neural Actor [24]提出了来自UV空间的可变形NeRF,并使用预测的纹理图来细化细节。[34]通过用姿势相关的潜在代码调节NeRF来创建动画模型。[30 43]通过将点变换为局部骨骼坐标来驱动规范模型。Moco-Flow [4]使用具有循环一致性损失的补充时间条件正向变形网络来正则化变形场。这些方法通常是通过记忆观察到的姿势来学习的,很难推广到新的姿势。最近的工作[5,40]通过将前向变形网络与求根算法相结合来学习变形场,从而解决了该问题。然而,他们使用的根查找算法非常耗时。

        基于图像的渲染。为了在不恢复详细的3D几何形状的情况下合成新的视图图像,先前的工作[8,10]通过内插光场来获得新的视图图像。虽然取得了逼真的效果,但它们所能合成的视图范围有限。为了解决这个问题,一些工作[2,36]通过以下方式寻求代理几何的帮助推断深度图。尽管它们扩展了可渲染视图范围,但其生成的结果对代理几何体的精度很敏感。随着深度学习技术的发展,许多作品[7,15,18,21,25,46,48]将可学习组件引入到基于图像的渲染方法中,并提高了鲁棒性。具体来说,IBRNet [48]从附近视图的稀疏集合中学习图像特征的混合权重。NeuRay [25]进一步预测了3D点在其表示中对输入视图的可见性。这些作品显示了强大的效果,图像特征从不同的角度渲染。

3 我们的方法

        我们提出MonoHuman,它从单眼视频中重建可动画化数字化身。生成的虚拟形象可以自由视点和任意新颖姿态进行控制。管道如图2所示。具体地说,我们首先在第二节中阐明这个问题。3.1,然后在第3.2节中详细阐述了在观测空间和规范空间之间变形点的共享双向变形模块。3.2.秒3.3引入了前向对应搜索模块来提取关键帧中的对应特征。最后,培养目标和体绘制过程在第3.4节中描述。

图2.单一人的框架。在共享双向变形模块中,通过向后变形Db,不同观测空间X_{o}中的点将变形为同一规范空间中的X_{c}。通过对称的正向变形D_{f}X_{c}可以变形回到观测空间中的点X_{o}^{'}。使用一致性损失L_{consis}来规则化运动权重。在前向对应搜索模块中,将L_{c}在两个对应空间中变形为X_{i}X_{j},得到特征f_{i}f_{j}和颜色c_{i}c_{j}。通过生成的权重混合MLP将这些特征混合到特征F。F用于最终引导绘制网络。 

3.1.准备和问题设置

        给定一个人的图像序列和相应的姿势,分割掩模以及相机的内部和外部参数,下面[34,51]我们使用神经场来表示一个规范空间中的观察空间中的人。具体地,观察空间中的点x0的颜色和密度被建模为:

其中D是后向变形映射,其将身体姿势p和观察空间x_{o}中的点作为输入,输出规范空间x_{c}中的点。F_{c}是一个映射网络,它以标准空间x_{c}中的点作为输入,并输出其颜色值c和密度σ。通过这种表示,使用体绘制[27,28]的最终绘制步骤在一个规范空间中完成。 

3.2 共享双向变形模块

        为了避免第二节中提到的过拟合问题。1,我们定义了正则空间中的变形场,遵循HumanNeRF [51]。然而,所提出的单一向后变形仅受图像重建损失的约束,这是欠约束的,并且当它遇到不可见的姿势时会获得更多的变形误差。我们在现象中显示了这一点。4.直觉上,仅在变形场中定义的损失将有助于正则化变形场。但如何建立这样一个约束是不平凡的。MoCo-Flow [4]使用附加的时间条件正向变形MLP来约束变形的一致性。BANMo [57]使用不同的MLP来生成姿势调节的变形权重,以实现向前和向后变形。然而,由于变形场是两个不同的MLP,并且依赖于帧或姿态,它们仍然遭受过拟合问题。受上述工作的启发,我们设计了我们的共享双向变形模块,使用规范空间中定义的相同运动权重进行向前和向后变形。由于我们的设计是姿势独立的,它有助于模型的泛化到分布外的姿势。在实践中,我们将向后变形公式化为:

其中p = {w_{i}}是表示为轴角向量的K个关节旋转。与[51]类似,完整的变形由两部分组成:运动权重变形和非刚性变形: 

其中T_{mo}^{b}的计算类似于线性混合蒙皮: 

其中w_{o}^{i}是第i个骨骼的混合权重,R_{i}t_{i}是将骨骼的坐标从观察映射到规范空间的旋转和平移。我们通过在规范空间w_{c}^{i}中定义的一组运动权重体积来计算w_{o}^{i}(x_{o}): 

我们使用CNN求解volume W_{c}(x_{c})=\left \{ w_{c}^{i}(x_c) \right \},CNN从与HumanNeRF相同的随机常数潜在代码z生成[51]: 

我们还使用在规范空间中定义的运动权重来实现向前变形:

与后向变形不同,前向运动权重可以直接通过x_{o}查询为:

这是因为运动权重是在正则空间中定义的。对于非刚性变形,我们使用另一个MLP来计算正向变形。向前和向后的姿势相关变形都可以用同一个公式表示: 

为了添加仅与变形场相关的约束作为正则化,我们使用向前和向后变形的一致性的直觉,一致性损失L_{consis}计算为: 

其中L_{2}表示L_{2}距离计算,并且它仅惩罚L_{2}距离大于阈值θ的点,我们设置该阈值以避免过度正则化。 

3.3 转发通信搜索模块

        以前的多视图工作[3,48,60]同时利用来自观察视图的对应特征邮票指导小说的看法合成。由于我们的输入图像来自单目视频,因此我们不会同时具有多视图图像。然而,我们可以利用第二节中的前向变形。3.2以实现动态变形,并在我们的单目视频中找到不同时间戳的对应关系。受前人工作的启发,我们设计了由对应特征组成的观察库来指导绘制。我们建议建立一个观察银行跨越时间和搜索的对应特征,在这些构成的关键帧图像从输入的单目视频序列,以指导新的视图和新的姿态合成。如图4所示,我们首先根据骨盆的方向将帧分成分别包含前视图图像和后视图图像的两个子集。然后,我们从这两个集合中找到具有最接近姿势的k对。我们为k对重构纹理图,并最终选择具有最高纹理图互补性的对。然而,由于缺乏准确的相机参数,在单目输入设置中搜索对应关系是一个不平凡的问题。为了解决这一问题,我们利用了第3.2节中所述的向前变形的优点。以搜索点x_{c}在正则空间中的对应特征。具体而言,我们首先使用等式(7)将x_{c}从正则空间变形到对应空间{x_{o}}^{i}

其中p_{i}表示第i帧中的姿态。然后利用第i帧的相机参数,我们将点{x_{o}}^{i}投影到图像坐标: 

其中K_{i}E_{i}分别是第i帧的内在和外在相机参数。x_{i}是第i帧中的像素位置,其用于采样第i图像的特征f_{i}和颜色c_{i}。我们按照IBRNet [48]中的U-Net特征提取来提取图像特征。我们用同样的方法得到第j帧f_{j}c_{j}的特征。然后,我们使用混合MLP将这两个特征映射到混合权重: 

其中(;)是两个向量的连接。混合特征F用于引导渲染网络。

3.4 体绘制和网络训练 

        带变形的体绘制。我们在一个正则空间中进行渲染步骤。在由第3.3节中描述的前向对应搜索模块提取的特征的指导下,我们的渲染网络以标准空间点x_{i}和特征F为输入,并输出其颜色c(x_{i})和密度\sigma (x_{i})。我们将整个渲染网络表示为映射F_{r}

其中γ是x_{i}的正弦位置编码[28]。最后,我们使用体绘制方程[27,28]在正则空间中绘制神经场。光线r的颜色C(r)具有D个样本可以写为: 

其中,\Delta t_{i}是样本i和i + 1之间的间隔。网络培训。我们使用L_{MSE}L_{LPIPS}L_{CONSIS}优化我们的网络: 

其中C(r),\hat{C}(r)是摄影机光线r的渲染颜色和真实地面颜色。我们还采用了知觉损失LPIPS [59]作为最终损失。在第3.2用于优化,最终损失函数为: 

其中λ是权重平衡系数。

4 实验 

4.1 数据集和预处理

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

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

相关文章

【Netty】netty中都是用了哪些设计模式

对于工程师来说,掌握并理解运用设计模式,是非常重要的,但是除了学习基本的概念之外,需要结合优秀的中间件、框架源码学习其中的优秀软件设计,这样才能以不变应万变。 单例模式 单例模式解决的对象的唯一性&#xff0…

Unity 资源 之 Super Confetti FX:点亮项目的璀璨粒子之光

Unity 资源 之 Super Confetti FX:点亮项目的璀璨粒子之光 一,前言二,资源包内容三,免费获取资源包 一,前言 在创意的世界里,每一个细节都能决定一个项目的独特魅力。今天,要向大家介绍一款令人…

B端产品经理的流程设计思维

回首入行产品经理也已多年,做的项目也由C到B,由前到后都已涉及,辗转跨行仍觉互联网学海无涯,还是需要保持输出。思前想后还是决定聊一聊在过往服务多家大型集团的工作经历中十分重要,但却普遍不被视为产品经理必备能力…

Spring-循环依赖

预备知识 循环依赖开关(方法) - AbstractAutowireCapableBeanFactory#setAllowCircularReferences 单例工程(属性) - DefaultSingletonBeanRegistry#singletonFactories获取早期未处理Bean (方法) - AbstractAutowireCapableBeanFactory#getEarlyBeanReference早期未处理Bean…

项目实战系列: 家居购项目 第一部分

家居购项目 🐀Java后端经典三层架构🐇MVC模型🐇开发环境搭建🐇会员注册🍉前端JS校验🍉后端实现 🐇会员登陆 🐀Java后端经典三层架构 分层对应包说明web层com.zzw.furns.web/servlet/…

【PyQt6 应用程序】直播素材视频循环生成

在现代内容创作中,视频素材的生成和处理变得越来越重要,尤其是在直播、视频剪辑等场景中。对于需要长期、持续生成内容的用户来说,如何有效地利用现有的视频素材,生成长时间播放且无明显重复感的视频片段,是一个亟待解决的问题。 本教程将详细讲解如何使用 PyQt6 来实现一…

tabBar设置底部菜单选项以及iconfont图标

tabBartabBar属性:设置底部 tab 的表现 ​ ​ ​ ​ 首先在pages.json页面写一个tabBar对象,里面放入list对象数组,里面至少要有2个、最多5个 tab, 如果只有一个tab的话,H5(浏览器)依然可以显示底部有一个导航栏,如果没有,需要重启后才有,小程序则报错,只有2个以上才可以…

欧拉系统安装 NVIDIA 显卡驱动

1、安装显卡驱动编译工具 yum install gcc make kernel-devel 2、安装显卡驱动依赖包 yum install vulkan-loader 可选安装项,不安装该系统包时会出现以下警告提示,但不影响安装和使用。 3、安装 NVIDIA GPU 驱动 生产环境建议选择 .run 格式的驱动…

Java线程池和Executor框架-面试与分析

线程池 什么是线程池?为什么要用线程池? 在Java并发框架中,线程池时使用最多的东西,几乎所有需要异步并发执行任务的程序都可以使用线程池。 使用线程池带来的好处: 降低资源消耗。通过重复利用已创建的线程降低线程…

基于Java语言的充电桩系统+充电管理平台+云快充协议+云快充协议1.5+桩直连协议+云快充协议源码

介绍 云快充协议云快充1.5协议云快充协议开源代码云快充底层协议云快充桩直连桩直连协议充电桩系统桩直连协议 软件架构 1、提供云快充底层桩直连协议,版本为云快充1.5,对于没有对接过充电桩系统的开发者尤为合适; 2、包含:启…

文心一言功能新升级:读文档、懂翻译、能识图

9月4日,百度文心一言官网显示,在向全社会开放一周年之际,文心一言进行了功能最新全面升级,同时在周年期间为新老会员增加1个月专业版免费使用体验。 据了解,针对网页版用户需求,文心一言实现了创作内容更加…

Linux-进程管理【重点】

前言 Linux操作系统在虚拟机VM上的安装【CentOS版本】-CSDN博客 Linux-(系统启动、用户管理)-CSDN博客 Linux-实用指令-CSDN博客 Linux-【组管理、权限管理、定时任务调度】-CSDN博客 进程管理 在linux中,每个执行的程序都成为一个进程,每一个进程都…

玩转Python Turtle库,实现满屏飘字的魔法!

前言 本文将教你如何使用Python的Turtle库,通过简单的编程实现满屏飘字的炫酷效果。无需复杂的编程知识,跟着我们的步骤,你也可以成为编程小达人! 效果展示 开发过程 一、准备工作 首先,确保你的电脑上已经安装了Py…

在OpenEuler(欧拉)系统上用kubeadm部署(k8s)Kubernetes集群

一、OpenEuler(欧拉) 系统简介 openEuler 是开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目; openEuler作为一个操作系统发行版平台,每两年推出一个LTS版本。该版本为企业级用户提供一个安全稳定可靠的操作系统。…

python进阶篇-day07-高级语法与正则

day07-python其他高级语法 一. with(上下文管理) 介绍 概述 一个类只要实现了__ enter __ () 和 __ exit __ ()方法, 这个类就是一个上下文管理器类, 该类的对象 上下文管理器对象 目的 节约资源, 提高效率, 避免手动释放资源, 且出bug的时候, 也会自动尝试释放资源 特点…

Java项目——苍穹外卖(一)

Entity、DTO、VO Entity(实体) Entity 是表示数据库表的对象,通常对应数据库中的一行数据。它通常包含与数据库表对应的字段,并可能包含一些业务逻辑。 DTO(数据传输对象) 作用:DTO 是用于在…

将你的github仓库设置为web代理

将你的github仓库设置为web代理 废话不多说,直接上步骤 废话不多说,直接上步骤 创建一个仓库,上传静态web。 2. 设置仓库的 page 1)点击 “Settings” 如图设置

echarts 实现签到记录日历组件

以下笔记来源:编程导航 分析 有三种基本图表可以选择: 基础日历图:https://echarts.apache.org/examples/zh/editor.html?ccalendar-simple日历热力图:https://echarts.apache.org/examples/zh/editor.html?ccalendar-heatmap…

centos8构建nginx1.27.1+BoringSSL+http3+lua+openresty

需要接入http3,索性最新的nginx在构建一波,趟一遍坑 准备工作 1.环境命令安装 yum install GeoIP -y yum install GeoIP-devel -y yum install libmaxminddb-devel -y yum install -y patch wget zlib zlib-devel lftp gcc gcc-c make openssl-devel p…

YOLOv5: 从0开始搭建环境进行模型训练

视频链接:YOLOv5: 从0开始搭建环境进行模型训练_哔哩哔哩_bilibili 《YOLOv5:从0开始搭建环境进行模型训练》课程致力于帮助学生实战YOLOv5目标检测算法。常心老师将手把手带领大家从0开始搭建YOLOv5环境,带领大家排坑、避坑、填…