MonoHuman: Animatable Human Neural Field from Monocular Video 精读

news/2024/9/17 10:00:08/ 标签: 机器学习, 计算机视觉, 人工智能

一、共享双向变形模块

1. 模块的核心思想

共享双向变形模块的核心目标是解决从单目视频中生成不同姿态下的3D人体形状问题。因为视频中的人物可能处于各种动态姿态下,模型需要能够将这些不同姿态的几何形状进行变形处理,以适应标准的姿态表示并生成新的姿态。

  • 双向性:该模块支持前向和反向的几何变形,即:

    • 前向变形:将标准姿态(如T-pose)变形为特定的目标姿态。
    • 反向变形:将目标姿态的几何形状反向变形成标准姿态,以便在生成过程中保持姿态之间的连贯性。
  • 共享参数:双向变形模块共享同一套变形参数,这意味着前向和反向变形使用相同的学习机制,从而简化了网络的结构并提高了学习的效率。

2. 输入和输出

  • 输入

    • 标准姿态的几何信息:模型的初始状态,比如T-pose形状。
    • 目标姿态的几何信息:需要转换的目标姿态(例如,某个动作中的姿态)。
    • 姿态变换参数:这通常是从视频中提取的姿态关节信息,用于指导变形过程。
  • 输出

    • 变形后的目标姿态:前向变形后的结果,即标准姿态变形成目标姿态。
    • 变形后的标准姿态:反向变形后的结果,即将目标姿态重新变形成标准姿态。

3. 前向变形与反向变形的作用

  • 前向变形:该过程通过输入的标准姿态和目标姿态的姿态参数,生成一个符合目标姿态的形状。网络会学习如何通过标准姿态进行形状变形,从而使人体模型能够在各种姿态下保持自然形态。

  • 反向变形:反向变形是将变形后的目标姿态恢复为标准姿态。这个步骤确保了即使人体在不同姿态下变化,模型依然可以回到一致的标准形状,这对于保持模型的姿态一致性和生成高质量的渲染图像非常重要。

4. 学习机制

共享双向变形模块通过神经网络进行端到端学习。训练过程中,网络通过对比标准姿态和目标姿态的几何结构,学习如何进行前向和反向的变形。其主要学习机制包括:

  • 监督学习:网络利用姿态变化的监督信号来最小化目标姿态和标准姿态之间的几何差异,确保生成的姿态变换是准确的。

  • 损失函数:通常使用的损失函数可能包括姿态一致性损失和几何形状重建损失,确保前向和反向变形在保持几何一致性的同时,生成的形状具有自然的外观。

5. 模块在渲染中的作用

共享双向变形模块的输出为渲染模块提供了准确的姿态几何信息。具体来说:

  • 前向变形后的目标姿态几何信息会被输入到渲染模块,用于生成目标姿态下的高质量渲染。
  • 反向变形后的标准姿态信息可以用于进一步的优化,确保不同姿态之间的转换保持一致。

6. 简单易懂的例子

假设你正在制作一个动画人物模型,初始状态是站立的T-pose姿态(标准姿态)。通过共享双向变形模块,你可以实现以下操作:

  1. 前向变形:你输入T-pose姿态的小人和一个新的姿态(例如,弯腰),模块会学习如何将T-pose变形成弯腰姿态。
  2. 反向变形:如果你想将弯腰的小人恢复到T-pose,反向变形模块会利用共享的学习参数进行姿态的反向变形。

通过这种双向变形,模型能够灵活处理不同姿态,并且保持姿态转换时的几何一致性。

总结

共享双向变形模块在《MonoHuman》系统中的作用是核心的,它通过双向的姿态变形确保人体模型能够在标准姿态和目标姿态之间进行自然的过渡。这一模块的设计大大提升了姿态重建的准确性,同时通过共享参数的方式简化了学习过程,使得网络能够更高效地生成自然且一致的3D人体模型。

二、正向通信搜索模块

1. 正向通信搜索模块的作用

正向通信搜索模块的主要作用是从输入的单目视频中提取与人体姿态相关的关键信息,并将这些信息传递到后续的神经场生成模块中。该模块的主要目标是解决单目视频中获取人体3D几何形状和姿态变化的难题。

具体作用包括:

  • 姿态估计:从视频中提取人物在不同帧中的姿态信息,主要是关节位置信息和骨架结构。
  • 几何特征提取:提取视频中每一帧的几何特征信息(如轮廓、深度等),为后续的3D形状恢复和姿态变形提供支持。
  • 数据关联:将不同帧的姿态信息和几何特征信息进行关联,确保在动态姿态变化下,模型仍能保持一致性和连贯性。

2. 输入与输出

  • 输入

    • 单目视频帧:来自输入视频的序列帧,包含了人物的不同姿态和视角。
    • 初始的几何信息:通常是标准姿态(如T-pose)的初始人体模型信息,用于后续的姿态变形。
  • 输出

    • 姿态关节信息:提取出人体骨架的姿态信息(如3D关节位置、骨架角度等),这些信息被用于指导姿态变形。
    • 几何特征信息:提取出的几何特征,用于生成最终的3D形状和纹理。
    • 姿态变形参数:这些参数会传递给后续的双向变形模块,指导模型如何从标准姿态变形到目标姿态。

3. 正向通信搜索的工作机制

该模块的核心功能是通过深度学习技术(通常是卷积神经网络或变形网络)从视频帧中提取和关联关键几何和姿态信息。具体的工作流程可以分为以下几个步骤:

  1. 姿态估计

    • 首先,正向通信搜索模块会通过预训练的姿态估计网络(如OpenPose或SMPL等)从每一帧中提取人物的姿态关节信息。
    • 这些关节信息构成了人体的骨架,用于后续的姿态变形和渲染。
  2. 几何特征提取

    • 在提取出姿态信息的同时,正向通信搜索模块会通过卷积网络从视频帧中提取几何特征(如深度、轮廓、表面法线等)。
    • 这些几何特征被编码为特征向量,用于后续的人体形状重建。
  3. 数据关联与融合

    • 正向通信搜索模块不仅从单个帧中提取信息,还通过时序模型(如RNN或Transformer等)在不同帧之间进行特征关联。这样可以确保在姿态变化的过程中,姿态信息和几何特征能够连贯一致。
    • 这种关联确保了在动画生成过程中,不同姿态和视角下的人体模型能够保持形状一致性和自然过渡。
  4. 姿态变形指导

    • 正向通信搜索模块输出的姿态信息和几何特征信息会被用于指导后续的双向变形模块。这些信息确保模型能够从标准姿态变形成目标姿态,并保持高质量的渲染效果。

4. 正向通信搜索模块的学习机制

正向通信搜索模块的学习过程是通过大量的标注数据进行监督学习。具体来说,使用包含姿态标注、几何信息(如深度、骨架)的训练数据来训练该模块,使其能够从输入的视频帧中有效提取人体姿态和几何特征。

  • 损失函数:通常,模块会使用姿态估计损失、几何重建损失、特征匹配损失等来监督学习过程。
  • 预训练模型:为了提高姿态估计的准确性,正向通信搜索模块通常依赖于预训练的姿态估计模型(如SMPL或其他人体姿态估计网络)。

5. 正向通信搜索模块在渲染中的作用

正向通信搜索模块提取的姿态信息和几何特征为后续的渲染提供了基础数据。这些信息确保渲染模块能够在目标姿态下生成准确、逼真的3D模型。

总结

正向通信搜索模块在《MonoHuman》系统中的作用是从输入的单目视频中高效地提取人体姿态和几何特征信息,并将这些信息传递给后续的双向变形模块和渲染模块。它通过姿态估计、几何特征提取和数据关联,确保在不同姿态和视角下生成的一致、高质量的3D人体模型。

三、体积渲染和网络训练

1. 体积渲染(Volumetric Rendering)

体积渲染是NeRF方法中的核心部分,用于生成具有深度和光照效果的3D图像。在《MonoHuman》系统中,体积渲染的主要作用是将人体在不同姿态和视角下的3D形状生成为逼真的2D图像。

工作原理

体积渲染的核心思想是通过模拟光线在3D空间中的传输过程,生成2D图像。以下是体积渲染的主要步骤:

  1. 采样光线(Ray Sampling)

    • 在渲染过程中,从观察者的相机位置发出光线,并沿着光线方向在3D空间中进行采样。
    • 每条光线会穿过3D空间中的多个体素(Volumetric Voxels),这些体素代表了3D空间中不同位置的体积密度和颜色。
  2. 累积颜色和密度(Color and Density Accumulation)

    • 对于每个采样点,模型会根据其坐标预测该点的颜色(RGB值)和密度(用于表示光线在该点的衰减程度)。
    • 系统会对沿着光线的所有采样点的颜色和密度进行累积,生成最终的2D像素值。
  3. 体积积分(Volumetric Integration)

    • 累积过程使用了体积渲染方程,通过对光线在3D空间中的颜色和密度进行加权求和,最终得到每个像素的颜色。公式如下: 

其中,C(r)是光线的最终颜色,σ(t)是体积密度,c(t) 是颜色,T(t) 是光线在该点处的透射率,表示光线到达该点时的累积衰减。   

  4. 深度估计(Depth Estimation)

        体积渲染还可以估计每条光线的深度,通过计算体积密度的累积值来确定物体的前景和背景,从而实现逼真的3D效果。

体积渲染的作用
  • 视角独立性:通过体积渲染,可以在任何视角下生成同一物体的图像,这在生成多视角的3D人体模型时非常重要。
  • 逼真的光照和反射效果:体积渲染能够模拟光线与物体表面的相互作用,生成具有逼真光照效果的图像,确保人体在不同姿态下的渲染质量。

2. 网络训练(Network Training)

网络训练部分通过端到端的监督学习,优化网络参数,使其能够在输入单目视频帧的情况下生成准确的3D人体模型和姿态变换。整个训练过程包括以下几个关键要素:

2.1. 网络结构

《MonoHuman》系统基于NeRF框架,使用多层感知机(MLP)网络来表示3D空间中的颜色和密度场。具体结构如下:

  • 输入
    • 3D坐标 (x,y,z)和光线方向 (dx​,dy​,dz​)。
    • 人体的姿态编码(通过姿态估计模块提取的姿态信息)。
  • 输出
    • 颜色值 (r,g,b) 和 体积密度 σ。

通过输入3D空间中的坐标和光线方向,网络会输出对应点的颜色和密度,这些信息用于体积渲染过程。

2.2. 训练数据

网络训练时使用单目视频帧作为输入,目标是重建每一帧中的人体形状和姿态。为了训练网络,系统使用了以下几种数据:

  • 图像数据:从单目视频中提取的帧图像。
  • 姿态数据:通过预训练的姿态估计网络(如SMPL模型)提取的关节位置和人体骨架信息。
  • 相机参数:每一帧的相机内参和外参,用于指导光线采样的方向。
2.3. 损失函数(Loss Function)

为了训练网络,系统使用了多种损失函数来指导优化过程:

  • 重建损失(Reconstruction Loss)

    • 主要用于度量生成图像与真实图像之间的差异,确保渲染结果与输入视频帧保持一致。通常使用L2损失或L1损失来计算像素级别的差异。
  • 姿态一致性损失(Pose Consistency Loss)

    • 用于确保生成的人体姿态与姿态估计模块提取的关节位置一致,从而保证模型能够准确生成不同姿态下的人体形状。
  • 几何约束损失(Geometric Consistency Loss)

    • 用于保证模型生成的3D形状在不同视角下保持一致,避免形状变得不自然或不稳定。
2.4. 优化过程

网络的训练是通过梯度下降法(如Adam优化器)来最小化损失函数。随着训练的进行,网络不断调整其权重,使其能够更好地从单目视频中生成高质量的3D人体模型和动画。

3. 体积渲染与网络训练的关系

  • 体积渲染的输出作为监督信号:体积渲染模块生成的2D图像会与输入视频帧进行对比,网络通过损失函数来计算生成图像与真实图像之间的差异。这一差异作为监督信号,指导网络调整其参数。

  • 体积渲染引导网络学习:体积渲染过程涉及对3D空间中光线的采样和积累,网络通过学习如何从3D坐标生成正确的颜色和密度场,从而生成逼真的2D图像。这个过程直接影响网络训练的效果。

总结

  • 体积渲染:通过采样光线、计算颜色和密度,模拟光线在3D空间中的传播,生成逼真的2D图像。
  • 网络训练:通过多种损失函数优化网络参数,使其能够从单目视频中生成准确的3D人体模型。

两者的结合使《MonoHuman》系统能够从单目视频生成逼真的多视角3D人体动画。


http://www.ppmy.cn/news/1522937.html

相关文章

Anthropic发布Claude企业计划 对标OpenAI的ChatGPT Enterprise

领先的人工智能初创公司 Anthropic 今天宣布推出Claude企业计划,以扩大Claude在企业中的应用。OpenAI 早在 2023 年就推出了名为ChatGPT Enterprise 的类似产品,并取得了相当大的成功。事实上,OpenAI 声称,财富 500 强中已有 92% …

python网络爬虫(五)——爬取天气预报

1.注册高德天气key 点击高德天气,然后按照开发者文档完成key注册;作为爬虫练习项目之一。从高德地图json数据接口获取天气,可以获取某省的所有城市天气,高德地图的这个接口还能获取县城的天气。其天气查询API服务地址为https://re…

在模板中使用 Django 会话

在 Django 中使用会话(session)可以让你在用户访问网站的过程中存储和访问临时数据。我们可以利用会话在速度计算器的例子中存储和显示上次计算的结果。 1、问题背景 在 Django 中,可以使用会话来存储用户数据。在某些情况下,我们…

如何使用PTK一键安装opengaussdb 5.0

1、关于PTK工具 MogDB数据库是云和恩墨基于openGauss开源数据库打造,安稳易用的企业级关系型数据库。 PTK是云和恩墨出品的一款工具,帮助用户更便捷地部署管理MogDB数据库。 1.1 使用场景 开发人员快速启动多个本地 MogDB 环境用户通过 PTK 快速安装…

QString如何格式化字符串

在Qt中,QString类提供了多种方式来格式化字符串。这包括使用arg()方法、sprintf()风格的格式化(通过QString::asprintf()或QString::number()等辅助函数),以及从Qt 5.10开始引入的C11风格的格式化(虽然Qt核心库本身并不…

软件测试之压力测试知识总结

软件测试之压力测试知识总结 引言 随着信息技术的飞速发展,软件系统在各个行业中的应用越来越广泛,其稳定性和可靠性成为用户关注的焦点。压力测试作为软件测试中的一种重要方法,对于确保软件在高负载环境下的稳定性和可靠性具有重要意义。…

专业文字处理与协作软件Adobe InCopy(IC)2024WIN/MAC下载及安装教程

目录 简介: 一、Adobe InCopy软件概述 软件基本信息 主要特点 最新版本 二、下载与安装 下载 安装 Windows系统安装 Mac系统安装 三、系统要求 Windows系统要求 Mac系统要求 四、使用教程 基本操作 高级功能 协作与共享 简介: Adobe I…

“Jmeter-InfluxDB-Grafana“常见错误有哪些如何解决?

常见错误: 1.网络不同,检查网络IP是否写对,端口号有没有放开(Centos7端口号命令),防火墙是否关闭 firewall-cmd --add-port3000/tcp --permanent firewall-cmd --add-port3000/udp --permanent firewall-…

DNN学习平台(GoogleNet、SSD、FastRCNN、Yolov3)

DNN学习平台(GoogleNet、SSD、FastRCNN、Yolov3) 前言相关介绍1,登录界面:2,主界面:3,部分功能演示如下(1)识别网络图片(2)GoogleNet分类&#xf…

【微信小程序入门】4、微信小程序的项目成员和发布上线详解

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

高清无损!探索PDF转JPG的最佳实践工具

在信息爆炸的今天,PDF文件因其跨平台兼容性和文档保护特性,成为了工作、学习和日常生活中不可或缺的一部分。但是很多时候我们并不需要精度那么高的文件,图片分享更符合快捷的要求。这次我们就一起探讨有什么PDF转jpg的工具吧。 1.福昕PDF转…

ROS笔记之在指定目录及其子目录中查找包含特定ROS话题的bag文件,并输出这些文件的路径

ROS笔记之在指定目录及其子目录中查找包含特定ROS话题的bag文件,并输出这些文件的路径 代码 import os import subprocessdef find_bags_with_topic(root_directory, topic):bags_with_topic []for dirpath, _, filenames in os.walk(root_directory):for filena…

前端基础面试题·第三篇——JavaScript(其二)

1.深浅拷贝 1.浅拷贝 浅拷贝会创建一个新的对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝就是改引用类型的地址。 // 常见的浅拷贝1.Object.assign({},ob…

深入理解数据库的 4NF:多值依赖与消除数据异常

在数据库设计中, "范式" 是一个常常被提到的重要概念。许多初学者在学习数据库设计时,经常听到第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及 BCNF(Boyce-…

【2024数学建模国赛赛题解析已出】原创免费分享

2024数模国赛赛题已正式发布 数模加油站初步分析评估了此次竞赛题目: A题:偏数学仿真建模,难度偏难,适合数学专业背景的同学 B题:评价决策类,自由度大,容易水,适合基础不太好的同…

requestIdleCallback和requestAnimationFrame有什么区别?

由react fiber引起的关注 组件树转为链表,可分段渲染渲染时可以暂停,去执行其他高优先级任务,空闲时在继续渲染(JS是单线程的,JS执行的时候没法去DOM渲染)如何判断空闲?requestIdleCallback 区…

Tuxera NTFS for Mac破解版下载 Tuxera NTFS for Mac2023激活码 mac电脑ntfs磁盘软件

Tuxera NTFS for Mac是一款优秀的Mac系统完全读写软件,提供Fat32、NTFS、Exfat、mac os扩展格式的转换,稳定性好,传输速度极快。Tuxera NTFS for Mac功能丰富,能修复NTFS卷、创建NTFS磁盘映像、创建NTFS分区等等。同时软件支持所有…

C++入门9——list的使用

目录 1.什么是list? 2.list的构造 3.list迭代器的使用(list iterator) 4.list capacity 5.list modifiers 6.list的其他操作 1.什么是list? 在官网中,对list有这样的介绍: Lists are sequence co…

《数字信号处理》学习05-单位冲击响应与系统响应

目录 一,单位冲激响应 二,LTI系统对任意序列的系统响应 三,LTI系统的性质 通过上一篇文章《数字信号处理》学习04-离散时间系统中的线性时不变系统-CSDN博客的学习,我已经知道了离散时间线性时不变系统(LTI&#x…

输送线相机拍照信号触发(博途PLC高速计数器中断立即输出应用)

博途PLC相关中断应用请参考下面文章链接: T法测速功能块 T法测速功能块(博途PLC上升沿中断应用)-CSDN博客文章浏览阅读165次。本文介绍了博途PLC中T法测速的原理和应用,包括如何开启上升沿中断、配置中断以及T法测速功能块的使用。重点讲述了在中断事件发生后执行的功能块处…