天晴动作工具组文档
首页
C3相关
天晴盒子
脚本文档
开发公约
  • MAXScript2020 Help (opens new window)
  • 3dsmax-2023-MAXScript Help (opens new window)
  • 3dsmax-2023-Max-Python Help (opens new window)
  • DeveloperSDK2023 Help (opens new window)
教程
更新
关于
  • 动画重定向
  • 3ds Max 文件降版本
  • GIF播放器
  • 表情绑定助手
  • MAXtoUnrealTools
  • MMD4Max
  • AnimFiltersMax2021
  • 分类
  • 标签
  • 归档
首页
C3相关
天晴盒子
脚本文档
开发公约
  • MAXScript2020 Help (opens new window)
  • 3dsmax-2023-MAXScript Help (opens new window)
  • 3dsmax-2023-Max-Python Help (opens new window)
  • DeveloperSDK2023 Help (opens new window)
教程
更新
关于
  • 动画重定向
  • 3ds Max 文件降版本
  • GIF播放器
  • 表情绑定助手
  • MAXtoUnrealTools
  • MMD4Max
  • AnimFiltersMax2021
  • 分类
  • 标签
  • 归档
  • CATRig

    • 创建CAT
    • 创建特别注意
    • 动画-图层
    • 动画-IK_Arm_手
    • 动画-IK_Leg_腿
    • 动画-导入-bip
    • 动画-IK固定
    • 动画-缩放拉伸
    • 导出-Motion-Extraction-Node
  • NetSDK(C#)动画曲线插件课程
  • 蒙皮增强
  • 游戏中的动画拉伸效果 - 上
  • FBXMetaData
  • Engine

    • Unity上下半身动画融混合
    • Unity资源单位
    • UE4_AnimDynamics
    • UE4_Dynamic_Simulated_Ponytail
    • UE4_径向模糊
    • UE4CharacterMovement
    • montage
    • UE4基础材质
    • unity_DynamicBone
    • 快速创建包围盒UE4
    • 跳跃动作注意
    • 虚幻EditorUtilityBlueprint_动作资源批量工具
  • MaxPython_Msx

    • Python执行MAXScript
    • 3dsMax 安装 NumPy
    • Python 编译 pyd
    • Sublime Text 发送到 3ds Max
    • Visual Studio Code 发送到 3ds Max
    • 3dsMax_Python中文编码
    • 3dsMax PySide 控件键盘输入问题
    • Max不同版本的Python差异
    • FBX_SDK_动画操作
    • Python3编译Pyd-vc14.16
  • iPhone表情捕捉3dsMax流程
  • 面部蒙皮权重处理
  • Cascadeur动画调研
  • AI视频动捕产品调研
  • RigNet自动绑定角色-AI- 部署测试
  • MotoricaAI-MoGen 动画合成
  • 3dsMax与Spine互导工具
  • EasyMocap视频动捕部署测试
  • FreeMocap无标记视频动捕部署
  • RootMotion和InPlace动画差异
  • 虚幻物理资产导出XML
  • 关闭骨骼移动带转父级的特性
  • 简易Biped绑定框架方案
  • 关于蒙皮权重镜像匹配问题介绍以及解决方案
  • GVHMR视频动捕部署
    • CUDA版本
    • 创建 Python 环境
    • 模型数据
    • 安装各种依赖库
    • 手动安装 Torch
    • 安装 pytorch3d
    • 安装 ffmpeg
    • 创建快速激活环境 bat
    • 生成身体部分
    • 输出数据
    • 导人 Blender
      • Blender 导出 FBX
    • 导入 MotionBuilder
  • 教程
2025-04-20
目录

GVHMR视频动捕部署

# AI视频动捕+GVHMR+部署

GVHMR(Gravity-View Human Motion Recovery)是一项基于重力视图坐标的AI视频动作捕捉技术,由浙江大学团队开发,并在SIGGRAPH Asia 2024上发表。该技术旨在从单目视频中恢复人体在世界坐标系下的三维运动,适用于动画制作、虚拟现实(VR/AR)、机器人学习等场景。

GVHMR:Code for "GVHMR: World-Grounded Human Motion Recovery via Gravity-View Coordinates", Siggraph Asia 2024 - GitCode (opens new window)

RJZLK7Q7ACAGW

bilibili【GVHMR】【 千面】 视频生成动作效果对比 (opens new window)

  • 单从相机视角来看效果和其他类似项目效果差不多,比较普通,
  • 但是从世界视角视频可看出来,生成的动作非常的稳定而且保真度很高,不像其他项目,生成数据只能看摄像机视角效果,换其他视角就完全崩坏。

# 选取视频要点:

  1. 角色和画面背景 分明,不然生成手脚乱扯。
  2. 视频画面不要有镜头拼接,角色因剪辑出现位置变动,会干扰动作生成。
  3. 角色上下身分明,四肢清晰,像动捕演员穿的黑色连体服生成的效果较差。
  4. 空翻等涉及空中旋转的视频,生成效果较差,应该训练数据集中没有这些高难度动作。

# 生成数据

人体主要 21 根骨骼的动画,不包括手指,包含:

  • 盆骨的世界坐标系旋转,位移。
  • 其他骨骼的 局部坐标系 旋转值。
  • 相机信息。
  • 2D关节点数据,3D关节点数据。

建议直接使用 Blender , 有现成的代码,直接导入数据后转成 FBX。

UTEKFAY7ABQA6​

需要自行解析 旋转,位移,等骨骼动画数据。

# 部署

‍

本文是在 win10 上部署,而原项目是 linux 项目,所以部分依赖库比较难( PDVO 就没安装成功).

主要是各种库,pypi 上没有 编译好的 whl 包,需要下载过来再编译,这样还得安装 Visual Studio ,非常麻烦。

‍

个人建议是 Windows WSL 上的Ubuntu 进行部署安装,更简单更完整

‍

如果有需要,可以直接复制 GVHMR 文件夹,到你自己的电脑上,无需再创建环境,只 需要安装 支持 的 CUDA 12.1 即可运行。

链接: https://pan.baidu.com/s/1hiVV0T9HN2PHeR7U7O0ztg (opens new window) 提取码: e9ai

直接下载 百度云上的 GVHMR 压缩包,解压成下面这样路径,然后下载 8GB的模型数据,应该就可以直接使用.

不含模型的 win 版本约 2GB, ubuntu版本模型加系统 40 ,直接 wsl 导入主机即可使用 ubuntu系统用户名 joe ,密码 toonmax

blender插件|模型FBX下载 https://sundaybox.cc/DownloadContent/Tools/GVHMR/ (opens new window)

CK2EHGA7AAAEM​

# CUDA版本

先检查你电脑上的 CUDA 版本,本文测试时使用的 CUDA 12.1 版本,而且是可以多版本共存。

X46WSZY7ACQFS

​环境变量 PATH 中 的 CUDA 路径 哪个版本在前面,就用谁。​

安装之后 可以 进入 命令行 工具 , 查看最后一次安装的版本,我这里是先 安装 121版本,后安装 113 ,所以显示 的11.3版本。

  1. nvcc -V

‍

更多关于 安装 CUDA 细节 多cuda 共存_多个cuda版本共存-CSDN博客 (opens new window)

CUDA 下载 https://developer.nvidia.com/cuda-toolkit-archive (opens new window)

‍

# 创建 Python 环境

Anaconda 或者 miniconda3 都是可以的。

这里,我是先把 gvhmr 拉下来,然后直接把项目文件夹创建为 python 虚拟环境。

PBFGMZI7ABADQ

我这里 使用 Anaconda Prompt (Anaconda3) 命令行工具,创建环境。

# python 310 

# 我是先把 GVHMR 项目下载到 D:\Anaconda3\envs 
git clone https://github.com/zju3dv/GVHMR

#进入 项目文件夹 
cd GVHMR

#在当前文件夹创建 创建 python 环境
conda create -y -n gvhmr python=3.10

#激活环境
conda activate gvhmr
1
2
3
4
5
6
7
8
9
10
11
12
13

​git clone https://github.com/zju3dv/GVHMR​ 这个命令是 从github.com (opens new window) 上把 GVHMR 项目下载过来,需要单独安装 git , 才有该命令。

# 模型数据

项目使用的模型需要从 huggingface.co 上单独下载,有近 8 GB,有科学上网都是比较慢的,所以这里我提供 百度云盘 下载:

链接: https://pan.baidu.com/s/1hiVV0T9HN2PHeR7U7O0ztg (opens new window) 提取码: e9ai

‍

下载到的 inputs 文件夹 直接放到项目文件夹中即可。

3OFC5GA7ABQDG

# 安装各种依赖库

  • 在使用 pip install 之前,先修改 pip 为国内的 清华源或者阿里源,这样安装会快很多。

先手动安装 Torch 系统系列, 然后直接 pip install -r requirements.txt 安装全部依赖。

aiohappyeyeballs==2.6.1
aiohttp==3.11.16
aiosignal==1.3.2
antlr4-python3-runtime==4.9.3
async-timeout==5.0.1
attrs==25.3.0
autocommand==2.2.2
av==13.0.0
backports.tarfile==1.2.0
black==25.1.0
certifi==2025.1.31
charset-normalizer==3.4.1
cheroot==10.0.1
CherryPy==18.10.0
chumpy==0.70
click==8.1.8
colorama==0.4.6
colorlog==6.9.0
contourpy==1.3.1
cycler==0.12.1
Cython==3.0.12
cython_bbox==0.1.5
einops==0.8.1
ffmpeg-python==0.2.0
filelock==3.18.0
fonttools==4.57.0
frozenlist==1.5.0
fsspec==2025.3.2
future==1.0.0
gvhmr==1.0.0
huggingface-hub==0.30.2
hydra-colorlog==1.2.0
hydra-core==1.3.0
hydra_zen==0.14.0
idna==3.10
imageio==2.34.1
intel-openmp==2021.4.0
iopath==0.1.10
jaraco.collections==5.1.0
jaraco.context==6.0.1
jaraco.functools==4.1.0
jaraco.text==4.0.0
Jinja2==3.1.6
joblib==1.4.2
kiwisolver==1.4.8
lapx==0.5.11.post1
lazy_loader==0.4
lightning==2.3.0
lightning-utilities==0.14.3
markdown-it-py==3.0.0
MarkupSafe==3.0.2
matplotlib==3.10.1
mdurl==0.1.2
mkl==2021.4.0
more-itertools==10.6.0
mpmath==1.3.0
multidict==6.4.2
mypy-extensions==1.0.0
networkx==3.4.2
numpy==1.23.5
omegaconf==2.3.0
opencv-python==4.11.0.86
packaging==24.2
pandas==2.2.3
pathspec==0.12.1
pillow==11.1.0
platformdirs==4.3.7
portalocker==3.1.1
portend==3.2.0
propcache==0.3.1
protobuf==6.30.2
psutil==7.0.0
py-cpuinfo==9.0.0
pycolmap==3.11.1
Pygments==2.19.1
pyparsing==3.2.3
python-dateutil==2.9.0.post0
pytorch-lightning==2.5.1
#pytorch3d @ file:///D:/Anaconda3/envs/pytorch3d-0.7.8%2Bpt2.3.0cu121-cp310-cp310-win_amd64.whl#sha256=b7a6628ea8939b11c7d73251dee54072732fea75144e146c3f6ccb216baf097c
pytz==2025.2
pywin32==310
PyYAML==6.0.2
requests==2.32.3
rich==14.0.0
safetensors==0.5.3
scikit-image==0.25.2
scipy==1.15.2
seaborn==0.13.2
six==1.17.0
smplx==0.1.28
sympy==1.13.3
tbb==2021.13.1
tempora==5.8.0
tensorboardX==2.6.2.2
termcolor==3.0.1
tifffile==2025.3.30
timm==0.9.12
tomli==2.2.1
#torch @ file:///D:/Anaconda3/envs/torch-2.3.0%2Bcu121-cp310-cp310-win_amd64.whl#sha256=002027d18a9c054f08fe9cf7a729e041229e783e065a71349015dcccc9a7137e
#torch_scatter @ file:///D:/Anaconda3/envs/torch_scatter-2.1.2%2Bpt23cu121-cp310-cp310-win_amd64.whl#sha256=14814e3f6b20af75b98ff35401f5e64baa2c2382266ba02005fbc93378b9f76b
#torchaudio @ file:///D:/Anaconda3/envs/torchaudio-2.3.0%2Bcu121-cp310-cp310-win_amd64.whl#sha256=969a49fb31afd3c0d1c4b01d74514d61c44e25d7de4dbc2c4fec317fe31dc702
torchmetrics==1.7.1
#torchvision @ file:///D:/Anaconda3/envs/torchvision-0.18.0%2Bcu121-cp310-cp310-win_amd64.whl#sha256=4ab207a0f35c8c2a43da91f19ee9248520239633dc8e11a9e4a2e77b076bb9db
tqdm==4.67.1
transforms3d==0.4.2
trimesh==4.6.6
typing_extensions==4.13.1
tzdata==2025.2
ultralytics==8.2.42
ultralytics-thop==2.0.14
urllib3==2.3.0
wis3d==1.0.1
yacs==0.1.8
yarl==1.19.0
zc.lockfile==3.0.post1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

‍

​很多项目开源时提供的 requirements.txt 文件都没有标记 各种依赖库 版本号,导致过作者发布 几个月或一两年之后,再来拉取项目,因为各种依赖库都更新有变化 就很难跑起来。​

‍

# 手动安装 Torch

下面 4 个包,很多pypi 源上不一定有,所以得自行下载手动安装。

下载链接: download.pytorch.org/whl/cu121/ (opens new window)

  1. torch , torch-2.3.0+cu121-cp310-cp310-win_amd64.whl
  2. torch_scatter , torch_scatter-2.1.2+pt23cu121-cp310-cp310-win_amd64.whl
  3. torchaudio ,torchaudio-2.3.0+cu121-cp310-cp310-win_amd64.whl
  4. torchvision ,torchvision-0.18.0+cu121-cp310-cp310-win_amd64.whl

‍

先安装 4 个包,再使用 requirements.txt 安装其他依赖,最好再 安装 一次 下面两个:

pip install torch-2.3.0+cu121-cp310-cp310-win_amd64.whl

pip install numpy==1.23.5

因为其他库,会修改 torch ,numpy 版本,所以最后再他们两,确保不会被修改。

‍

# 安装 pytorch3d

清华源上没有这个包,如果直接 pip 安装,还得编译,所以还是直接去 其他人编译好的包方便。

Release pytorch3d-0.7.8 · MiroPsota/torch_packages_builder (opens new window)

  • pytorch3d-0.7.8+pt2.3.0cu121-cp310-cp310-win_amd64.whl

至此 安装就算完成。

# 安装 ffmpeg

主要用来拼合视频,如果你不拼合视频,不安装 ffmpeg 也可以。

把下载 的 ffmpeg 文件夹路径 加到 系统环境变量中 就算是安装,如下图。

DBNTHGA7AAQCG

# 创建快速激活环境 bat

每次使用时,需要激活 GVHMR 这个 python环境,还要 进入 到 GVHMR 项目的 根目录底下。

创建 一个 activate_GVHMR.bat 文件,将下面内容黏贴进去。

@echo off
call C:\ProgramData\miniconda3\Scripts\activate.bat D:\Anaconda3\envs\GVHMR
cd /d D:\Anaconda3\envs\GVHMR
cmd /k
1
2
3
4

这样 双击 activate_GVHMR.bat 即可 激活 环境,还能进入 根路径,如下图。

KFR4C7Q7ACQEG

# 生成身体部分

demo3.py

项目是没有 UI工具的,是 直接输入 命令 运行 py脚本 。

ORG7W7Q7ADACG

  1. python tools/demo/demo3.py --video=D:\Anaconda\envs\GVHMR\docs\gGfm7ARsN4Cb7UIB.mp4 -s --person=0
--video 必填,是要生成的视频文件路径,不支持中文路径。
-s 必填,静态相机,拍摄镜头是固定的,如不填,需要安装 依赖项目 PDVO
--person 必填,角色 编号,默认给 0 ,如果视频里有多个角色,可以选填其他的 ,
-output_root 选填,输出路径文件,输出根目录,默认在 outputs/demo 下

其他的 可以 看 tools/demo/demo3.py


def parse_args_to_cfg()
用于解析 执行 demo.py 文件时的  命令 参数。

def render_incam()
渲染相机视角的视频。

def render_global()
渲染 世界 视角的视频

#渲染 世界视角 的参数 设置
def get_global_cameras_static()
cam_height_degree=25 # 上下方向的旋转,大角度是顶视角
target_center_height=1.0 # 相机距离系数,越大离角色远
vec_rot=30  #水平方向的 旋转, 0 是完全正面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 输出数据

如果你各种依赖库安装的没问题,运行之后,可以得到一些文件。

46VB3GA7ACQEW

  • 0_input_vide.mp4 , 你用来生成动作的原始视频。
  • 1_incam.mp4_person-0.mp4 , 以镜头视口渲染的结果画面和原始视频叠加的新视频。
  • 2_global.mp4 , 以世界视角渲染的视频。
  • 3_horiz.mp4 , 上面 3 个视频 拼合的视频。
  • hmr4d_results.pt , 生成的角色数据,numpy 二进制格式。
  • hmr4d_results.pt_person-0.pkl , 生成的 骨骼动画数据,pickle 二进制格式。

如下代码,保存 pkl 文件,其中 包含人体的 21 骨骼的动画数据,这个文件用来导进 Blender 中。

45GNS7Q7ACQDI

# 导人 Blender

hmr4d_results.pt_person-0.pkl 文件提取出骨骼动画数据,而角色模型和骨骼是 FBX 文件 .

‍

在 tools/demo/demo3.py 这个py 脚本在渲染模型的同时 也会保存 动画数据,用插件解析成骨骼动画并导入 Blender 。

ISGGVCA7ABAC4

  1. SMPL_maya.zip (opens new window) 是 SMPL 的角色模型FBX 文件,有 男女两种。

    1. basicModel_f_lbs_10_207_0_v1.0.2.fbx
    2. basicModel_m_lbs_10_207_0_v1.0.2.fbx

该模型文件单位为 米,导入 3dsMax 或 Maya 需要注意。

‍

  1. import_anim_GVHMR_b4.2_v2.blend.zip (opens new window) ,Blender 文件和导入 插件。

如下图,填上你下载 的 fbx 模型​ 文件路径,生成得的 pkl 数据文件​ , 执行脚本即可。

‍

AZEFXCA7ACQFM

# Blender 导出 FBX

个人还是习惯在 3dsMax 或者 MotionBuilder 设置动画,所以可以将动画 从 Blender 中导出。

N5LGXCA7ABAE4

导出 FBX之后,就可以导进 3dsMax (cm单位) , 如果直接导入 MotionBuilder 模型会因单位问题非常小。

个人建议在 3dsMax 将模型和 骨骼的缩放数值设置为 100 ,然后用场景缩放插件,将模型缩放到合适大小。

‍

# 导入 MotionBuilder

待研发

# 生成手指部分

手指部分是识别使用另外 一个项目:HaMeR 可以从单帧图片上识别出手势,而且不限制数量。

geopavlakos/hamer: HaMeR: Reconstructing Hands in 3D with Transformers (opens new window)

KKP33AY7ABQEO

流程是将 视频 分解成多帧图片序列,交给 HAMER 生成的 手指数据帧 , 然后将数据合并进 GVHMR 生成的身体数据中。

将 HAMER 生成的 手指数据帧合并进 GVHMR 数据
D:\Anaconda\envs\GVHMR\Tools\demo\ptframe2pkl-v1.py

使用视频生成 手指 手掌 姿势数据
D:\Anaconda\envs\HAMER2\hamer\demo-video-2.py
1
2
3
4
5

‍

关于蒙皮权重镜像匹配问题介绍以及解决方案

← 关于蒙皮权重镜像匹配问题介绍以及解决方案

最近更新
01
关于蒙皮权重镜像匹配问题介绍以及解决方案
03-19
02
简易Biped绑定框架方案
03-18
03
虚幻Max2UEPoseDriver修型工具
02-26
更多文章>
Theme by Vdoing | Copyright © 2019-2025 ND|99u:199505| 鄂ICP备2022012500号 | 鄂公网安备 42022202000122号

共产主义:是对生产资料的共享,不是对生活资料财产的均分

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×