当前位置: 首页 > news >正文

GVHMR

研究背景:

世界坐标系下人体运动恢复 (World-Grounded HMR)

其目标是从单目视频中重建在重力感知世界坐标系下的连续3D人体运动

传统的HMR往往在相机坐标系下捕捉运动,但是在仿真里面训练机器人使用的是基于世界坐标系下的运动数据,且这些运动序列必须是高质量的,并且在重力感知的世界坐标系中保持一致

大多数现有的HMR方法只能恢复相机空间的人体运动,如果直接利用相机位姿将相机空间运动转换为世界空间,结果往往无法保证重力对齐

先了解一下目前的HMR方法

目前HMR方法可以分为相机空间恢复和世界空间恢复

相机空间运动恢复

视频提取特征信息:

人体姿态(Pose):每一帧中人体关节的角度(旋转)

人体形状(Shape):人的胖瘦、高矮等体型参数(通常用SMPL模型中的β 参数表示)

相对运动:人体四肢相对于身体躯干(根节点)的摆动

如何将每一帧的图像变为3D人体模型,核心技术:对齐

1:特征提取

网络在视频的每一帧图像上检测人的特征,包括:

2D关键点:识别出照片里肩膀、膝盖、脚踝在画面中的像素坐标 。

图像特征:通过卷积神经网络或 Transformer 提取人体外观特征

2.参数回归(核心步骤)

模型(如HMR2.0)学习一个复杂的数学映射,将这些2D信息转换为3D参数

模型手中有一个标准的人体 3D 模具(如 SMPL)。

模型会计算:“如果要让这个 3D 模具投影到照片上时,它的肩膀和膝盖正好重合在照片里的那个位置,那么这个模具的关节应该旋转多少度?”

3.时间序列平滑(针对视频)

如果只是逐帧提取 动作会很晃动、卡顿、不连续

因此 现有的视频提取方法会引入时间编码器,让模型参考前后帧的信息,确保动作像真实人类一样平滑自然

但是这种相机空间运动恢复存在痛点:会把全世界都看作是以相机镜头为中心的,但是相机镜头并不固定

问题一:处理位移的方式

在相机空间运动恢复中,处理位移的方法是一种基于视觉上的推算,并不是基于真正的物理测量,其核心原理是利用透视投影的数学模型 将人体在图像上的大小和位置变化转化为3D空间中的相对位移

1、前进与后退(深度位移):基于近小远大

通过缩放系数(scale)来推算

映射的3D模型有一个标准身高 当视频中的人走进相机时 他在画面中所占的像素区域会变大,所以为了让模型整合匹配观察到的2D像素尺寸 网络会计算这个模型应该距离相机焦点(Foucus)多远

局限性:很难区分是一个高个子站得远还是一个矮个子站得近 容易产生深度方向上的抖动

2、水平与垂直位移

通过根节点平移处理,人体的根节点(通常是盆骨中心)在画面中的2D坐标(x,y)会被提取出来

结合上述算出的深度(z轴),模型可以将2D屏幕坐标反投影回3D空间的相机视锥体中

3、视角偏见

虽然现代的相机空间HMR模型在训练时使用了海量的数据,包括人体的各个角度,但是在正面视角下的位移推算最准确,因为人体的2D投影在正面时特征最为丰富,在侧面会发生严重的自遮挡,导致z的推算误差增大

问题二:缺乏全局参考系

1、相机镜头姿态问题

在相机空间运动恢复中,所有的计算都发生在相机坐标系下,原点在相机,坐标系的(0,0,0)点是在相机的镜头中间,而不是地面,轴向会随相机转动

这种坐标系不稳定的表现是:当把相机横过来拍的时候,原本垂直的y轴就变成了水平的 当把相机向下俯拍,在倾斜的相机镜头里,人体的投影相对于相机的y轴也是倾斜的,

2、重力感知缺失

单张图像或简单的视频回归方法无法获得重力传感器的反馈,模型只负责把3D人体塞到2D像素框里面,而不知道哪里是地,不知道重力方向,导致提取出来的动作经常出现人体重心偏移却不摔倒的反物理现象

3、地平线与尺度的迷失

没有全局参考系,只有一个相机镜头参考系,模型不知道地面在哪,脚面像在腾空一样,重建出来的人体经常是在溜冰,脚不停地摩擦移位,这是不知道地面在哪足部滑动的问题

还有一个问题就是绝对高度未知

这里需要引入单目相机的几何成像原理:

单目相机的成像本质是一个透视投影过程,从数学角度看,是一个基于焦点的相似三角形关系

当小孩的“大跳”和大人的“小跳”同时发生时:

小孩的大跳:相对于自身身高比例较大的位移。如果他在画面中向上移动了 Δy 像素,这可能代表他在现实中跳了 50 厘米 。

大人的小跳:因为大人站在更远的地方,他细微的 10 厘米跳跃,由于距离 D 的放大作用,在画面中向上移动的像素距离也可能是 Δy

如果没有参照物,单目 HMR 模型无法得知 D(距离)的确切数值,因此它无法判断这 Δy 个像素偏移对应的真实物理长度到底是多少

总结:相机空间动作恢复更偏向于人体长什么样子以及人体四肢该怎么摆,在固定的相机空间里面去提取动作

世界空间运动恢复

GVHMR出现之前最常用的纯视觉方案为“HMR+SLAM”组合法

其核心逻辑为将任务解耦,

第一步相机空间恢复(Camera-Space)

为提取人体相对于相机的姿态P_cam,这里使用的是相机空间运动恢复的方法

第二步为相机位姿估计​ (Camera Tracking)

利用SLAM(即时定位与地图构建)或视觉里程计(VO)算法,通过分析背景特征点的移动,计算出相机在世界中的位姿T_world

第三步:坐标系变换(Transformation)

利用数学公式将二者融合

本质:通过相机的位姿,反推人体在世界里的位置

但是上述问题仍有致命缺陷:

重力漂移 (Gravity Drift)

问题:SLAM 算法通常不知道“绝对重力”在哪里 。如果第一帧相机是斜的,整个世界坐标系就是斜的 。

误差累积 (Error Accumulation)

  • 问题:相机位姿的误差会随着视频变长而不断叠加 。

  • 后果:视频开头人是在地上走的,视频结尾人可能已经飘到天上去了

尺度失真 (Scale Misalignment)

  • 问题:单目 SLAM 很难准确判断“1米”到底是多长 。

  • 后果:提取出的步幅可能比真实情况大一倍或小一倍,导致 Unitree G1 的电机指令完全错误

大致了解了HMR的两种方法 接下来开始看

GVHMR

GVHMR是基于上述的第二种方法 世界空间运动恢复

一个重要的创新点在于其坐标系创新解决上上述重力漂移的问题,引入了GV坐标系

论文提出为每一帧图像 t 定义一个 GV 坐标系

When the camera moves, we compute the relative rotation between the GV systems of two adjacent frames with relative camera rotations 𝑅𝑡 Δ, thus transforming all Γ𝑡 𝐺𝑉 to a consistent gravity-aware global space.

当摄像机移动时,我们通过相邻两帧的相对摄像机旋转角度 𝑅𝑡_Δ 来计算两个相邻帧的 GV 系统之间的相对旋转,从而将所有Γ𝑡_𝐺 转换到一个一致的具有重力感知的全局空间中。

Gravity-View Coordinate System.

补充信息:相机坐标系的建立

原点 (Oc​):位于相机的光心(Optical Center),即光线穿过镜头聚焦的那一个点 。

Z 轴:被称为光轴(Optical Axis),垂直于图像平面并指向相机的前方,Zc​ 的数值直接代表了物体距离相机的深度

X 轴:通常水平向右,与图像平面的横向边缘平行

Y 轴:垂直向下(注意:由于是右手系,为了保证 X 和 Z 的方向,Y 轴在图像平面上是向下的)

GV坐标系各个轴方向的确立:

重力方向(Gravity Direction):这是 y 轴。它由视觉里程计或传感器估算,永远指向地心

相机视线方向(View Direction):与图像平面的法向量和

数学构建:通过这两者的叉乘,确定的 x 轴和 z 轴 。

x轴等于图像平面的法向量与y轴的叉乘 z轴等于x轴与y轴的叉乘

建好每一帧的GV坐标系后,我们得到了每一帧相对于当前坐标系的身体各个关节点的信息,已经每一帧的GV坐标系的旋转差,接下来要做的就是把每一帧的离散信息连起来,也就是重构轨迹

Recovering GlobalTrajectory.

重构轨迹要有一个参考的坐标系 论文中选第0帧的GV坐标系作为全局坐标系W

对于静态相机而言,由于相机不会移动,所以所有帧的GV坐标系都是相同的,所以的构建不需要复杂的网络推导 用运动学中的旋转矩阵即可计算得出

这里的V_root是根据输入图像进行推断出来的

这个公式的含义为当前位置 = 起始位置+每一帧产生的世界位移之和

但是对于移动的相机,就明显复杂很多,首先我们要先计算出相邻帧之间的旋转,构建当前帧的GV坐标系,计算出里面人物关键点相对于当前帧的位姿信息

这里需要先回退相机view向量 将其回到上一帧GV坐标系下的方向 需要修正相机的角度偏差 也就是上述相机相邻帧之间的旋转

这一部分重要的是其旋转矩阵的推导 尤其是其要转换到同一坐标系下面

重构轨迹的核心就是这个GV坐标系的建立以及利用相机相邻帧的旋转矩阵来修正偏差

将其每一帧的姿态转换到一个坐标系的同时 又确定了重力的方向即y方向 解决了重力偏移的问题

Network Design

Input and preprocessing.

The network design is shown in Fig. 6.
Inspired by WHAM [Shin et al. 2024], we first preprocess the input
video into four types of features: bounding boxes[Jocher et al. 2023;
Li et al. 2022b], 2D keypoints [Xu et al. 2022], image features [Goel
et al. 2023], and relative camera rotations [Teed et al. 2024].

将输入的视频预处理为四种特征:bounding boxes,2D keypoints ,image features, relative camera rotations

在早期融合模块中,论文作者使用单独的多层感知机(MLP)将这些特征映射到相同的维度。

这些向量随后按元素相加,以获得每帧的标记 {𝑓𝑡 标记 ∈ R512}。

这些标记由相对变换器处理,在此过程中,我们引入了旋转位置编码(RoPE),以使网络能够专注于相对位置特征。此外,我们还实施了一个受感知域限制的注意力掩码,以在对长序列进行测试时提高网络的泛化能力。

Rotary positional embedding.

旋转位置编码

人体的绝对位置是模糊不清的

所以大多数都选择身体的相对位置 即相对于身体基座(盆骨)各个身体部位的位置

这篇论文就引入了旋转位置嵌入技术,将相对特征注入到时间标记中。其中,经过自注意力层处理后的第 𝑡 个标记的输出 o_𝑡 是通过以下方式计算得出的:

重要的是帧与帧之间的变换关系

这部分内容涉及到注意力机制 之后有时间复习一下

论文看到这里已经找到问题在哪了 又要重新开始

其次就是还有一个问题 视频里面的3D人体模型的训练数据只包括行走类的 对于脚部添加了防滑机制 将脚部的移动与重心进行强关联 如果想要提取一些滑动类的动作 比如宇树的轮滑视频 GVHMR这个方法来提取数据是很难处理的 只能说道阻且长 南蹦

http://www.jsqmd.com/news/696742/

相关文章:

  • 如何快速实现手机号码地理位置定位:ASP.NET解决方案实战指南
  • YOLOv11改进系列 | 原创C3k2_ConvFormerCGLU模块,SepConv Token混合叠加卷积门控FFN,特征表达更强
  • 阿里二面:RAG 检索优化策略有哪些?
  • 告别卡顿!用这个Vue3+TS移动端Table组件,轻松渲染1000条数据
  • Phi-3.5-Mini-Instruct 工业视觉应用:与传统OpenCV算法结合实践
  • linux: 银河麒麟v10安装mysql8
  • NotaGen快速部署:一键启动WebUI,5分钟开始音乐创作之旅
  • 【SQL】SQL同环比计算的多种实现方式
  • Ostrakon-VL 扫描终端 C 语言接口封装实践:为传统应用注入视觉 AI 能力
  • 别再乱加120Ω电阻了!手把手教你根据通信距离和速度,为RS485/CAN总线配置正确的端接
  • 2026年3月真空浸糖机生产厂家推荐,毛辊清洗机/重量分选机/清洗蒸煮杀青设备/真空油炸机,真空浸糖机厂商哪家好 - 品牌推荐师
  • linux: 麒麟v10 yum安装php
  • Nordic nRF7001 WiFi 6伴生芯片解析与低功耗IoT应用
  • 基于eBPF的容器运行时安全监控:Foniod实战部署与策略指南
  • C语言中指针的重要性及其知识梳理
  • 告别截图!手把手教你用Mermaid.js在个人博客里画可交互流程图(附国内CDN)
  • 量子计算演进:从NISQ到FTQC的技术挑战与突破
  • flask:sqlalchemy:upgrade报错:Invalid use of NULL value
  • linux:银河麒麟服务器版安装python
  • PyQt5 QThread实战:告别界面卡顿,构建响应式GUI应用
  • LSTM在多元时间序列预测中的实战应用
  • 炉石传说终极插件指南:HsMod 完全配置手册
  • AI落地价值 = (高质量数据 × 精准问题定义) × AI能力
  • flask:用flasgger显示文档(flask+swagger)
  • [具身智能-431]:urdf-loaders ,目前 Web 端进行机械臂 URDF 3D 仿真最标准、最成熟的开源解决方案。
  • 使用CMSIS-DSP Python封装实现ECG信号滤波与嵌入式移植
  • linux: 查看银河麒麟的版本
  • [具身智能-436]:姿(Pose)、位置(Position)和姿态(Orientation)
  • 2026毕业季收藏:论文免费降AI率攻略,亲测AIGC从92%降到16%(含神级指令) - 降AI实验室
  • 端渲染?流渲染?到底怎么选!