HumanNeRF:Free-viewpoint Rendering of Moving People from Monocular Video 精读

1. 姿态估计和骨架变换模块

  • 人体姿态估计:HumanNeRF 通过已知的单目视频对视频中人物的姿态进行估计。常见的方法是通过人体姿态估计器(如 OpenPose 或 SMPL 模型)提取人物的骨架信息,获取 3D 关节的位置信息。这些关节信息可以帮助建模每一帧视频中人物的骨架姿态。

  • 骨架绑定和变换:通过这些 3D 关节信息,系统能够计算出骨架在不同帧中如何变化。HumanNeRF 通过骨架绑定(rigging)的方式,将骨架姿态与人体的点云或体积绑定在一起。这样,在每一帧中,人体表面的点会根据骨架的运动进行相应的变换。

2. 规范空间(Canonical Space)模块

  • 规范姿态建模 :在 HumanNeRF 中,人物的几何形态被标准化为 规范姿态,例如 T-pose。规范姿态是一个无论人体如何运动和变形,都会映射到的标准几何形态。在训练过程中,NeRF 会学习如何将不同姿态下的采样点映射回这个规范姿态。

  • 从规范空间到动态姿态的映射 :当系统估计出规范姿态后,HumanNeRF 会通过学习一个 运动场(Motion Field) 来将规范姿态中的人体点转换到目标姿态(视频中实际拍摄的姿态)。这个映射使得模型能够处理人物的姿态变换,并生成一致的几何形态。

3. 非刚性运动场(Non-Rigid Motion Field)模块

  • 处理人物的非刚性运动 :HumanNeRF 还需要处理人物的非刚性运动,比如人体的肌肉、衣物、皮肤等随姿态变换时产生的局部变化。为了建模这些变化,HumanNeRF 通过 非刚性运动场(Non-Rigid Motion Field) 来估计不同姿态下的细微变化。
  • MLP 模型:为了计算出从规范姿态到目标姿态的非刚性运动偏移,HumanNeRF 使用了一个多层感知机(MLP)模型。这个 MLP 接收人物的骨架姿态信息以及位置嵌入(Positional Embedding),并输出人体各个部位的非刚性偏移,从而动态调整人物的表面形态。

4. NeRF 渲染模块

  • 视角转换与体积渲染 :HumanNeRF 使用 NeRF 的方式对人物进行渲染。NeRF 的原理是将射线投射到三维空间中,利用体积渲染(Volume Rendering)计算射线经过的体素点的颜色和密度。HumanNeRF 将渲染的过程分为两步:
    1. 从规范姿态进行采样:首先在规范空间下进行采样,生成对应点的颜色和密度。
    2. 映射到动态姿态:再通过运动场和非刚性运动场将规范姿态下的采样点映射到目标姿态,并生成对应的动态人物渲染结果。
  • 自由视角渲染 :通过这个过程,系统可以生成任何视角下的视频帧,甚至是原始摄像机没有拍摄到的视角。这使得 HumanNeRF 实现了 自由视角渲染 的目标。

5. 时序一致性(Temporal Consistency)模块

  • 时序一致性处理:为了确保渲染出的动态人物在时间上具有一致性(例如防止物体"抖动"或"跳动"),HumanNeRF 还专门处理了时序一致性问题。它通过在多个时间帧之间建立关联来保证每个时间步的渲染结果都能平滑过渡。

  • 帧间优化:HumanNeRF 通过帧间一致性优化,使得模型在进行自由视角渲染时,不仅要在单帧内生成高质量的结果,还要保证相邻帧之间的渲染具有连贯性。

6. 训练与优化模块

  • 监督学习:HumanNeRF 使用监督学习方法,通过大量的单目视频帧和对应的姿态标签进行训练。模型通过将不同姿态下的点映射到规范空间,再渲染回目标姿态,逐渐学习如何正确地对人物进行渲染。

  • 损失函数:HumanNeRF 的训练过程可能包含多种损失函数,通常包括:

    1. 颜色损失:衡量渲染出的颜色与真实视频中的颜色差异。
    2. 几何一致性损失:确保在不同视角下渲染的几何形态保持一致。
    3. 时序一致性损失:防止渲染出的动态视频在时间序列上不稳定。

7. 自由视角动态渲染(Free-viewpoint Dynamic Rendering)

HumanNeRF 的最终目标是生成自由视角的动态渲染效果,尤其是在单目视频的约束下。通过对规范姿态、骨架运动、非刚性运动的结合,HumanNeRF 可以在输入单目视频的基础上,渲染出从不同视角观察到的动态人物。

相关推荐
极智视界几秒前
目标检测数据集 - 自动驾驶场景驾驶员注意力不集中检测数据集下载
人工智能·目标检测·自动驾驶
嘟嘟w1 分钟前
垃圾回收算法
算法
亚马逊云开发者3 分钟前
Serverless is all you need: 在亚马逊云科技上一键部署大模型API聚合管理平台OneHub
人工智能
胖咕噜的稞达鸭6 分钟前
算法入门:专题二分查找算法 模板总结 题目练手 :排序数组中查找元素的第一个和最后一个位置 第一个错误的版本 查找x的平方根 搜索插入位置 山脉数组的封顶索引
c语言·c++·算法·leetcode
松涛和鸣8 分钟前
21、单向链表完整实现与核心技巧总结
linux·c语言·数据结构·算法·链表
人工智能训练8 分钟前
Docker中Dify镜像由Windows系统迁移到Linux系统的方法
linux·运维·服务器·人工智能·windows·docker·dify
夏洛克信徒8 分钟前
AI盛宴再启:Gemini 3与Nano Banana Pro掀起的产业革命
人工智能·神经网络·自然语言处理
背心2块钱包邮9 分钟前
第24节——手搓一个“ChatGPT”
人工智能·python·深度学习·自然语言处理·transformer
致Great14 分钟前
Chatgpt三周年了:大模型三年发展的里程碑
人工智能·chatgpt·agent
gaetoneai16 分钟前
当OpenAI内部命名乱成“GPT-5.1a-beta-v3-rev2”,Gateone.ai 已为你筑起一道“多模态智能的稳定防线”。
人工智能·语音识别