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

公司软件使用笔记

文章目录

  • bvh_to_smpl_vis-master
    • 使用(渲染单个npz)
    • 把BVH转成SMPL.npz
    • 批量渲染.npz文件夹
    • Blender 可视化方式
  • somaX
    • Npz2bvh
  • soma_retargeter
  • mjlab

bvh_to_smpl_vis-master

把 BVH 动作捕捉文件转换成 SMPL 人体模型动画,然后渲染成视频。
文件结构:

bvh_to_smpl_vis-master/ │ ├── bvh_to_smpl.py ← 核心①:单个 BVH → npz(SMPLX 参数) ├── bvhs2smpls.py ← 核心①批量版:整个文件夹的 BVH → npz ├── bvhs2smpls_lafan1.py ← 核心①特化版:针对 lafan1 数据集格式 │ ├── smpl_render.py ← 核心②:单个 npz → 渲染视频 ├── smpls_render.py ← 核心②批量版:整个文件夹的 npz → 视频 │ ├── import_motion_blender.py← 备选方案:在 Blender 里可视化(不用 PyTorch3D) ├── mujoco_vis.py ← 备选方案:在 MuJoCo 物理引擎里可视化 ├── npz_test.py ← 工具:测试 npz 文件内容 │ ├── utils/ ← 工具库(渲染器、坐标变换、SMPL 构建) │ ├── renderer.py → PyTorch3D 渲染器封装 │ ├── geo_transform.py → 3D 几何变换工具 │ ├── smpl_utils.py → SMPL/SMPLX 模型构建 │ └── renderer_tools.py → 渲染辅助函数 │ ├── body_model/ ← SMPL 模型依赖文件 │ ├── smpl_neutral_J_regressor.pt → 关节回归器 │ ├── smplx2smpl_sparse.pt → SMPLX→SMPL 转换矩阵 │ └── smpl_model/ → SMPL/SMPLX 原始模型参数 │ ├── SMPLSim/ ← 第三方库:SMPL 物理仿真相关 ├── retarget/ ← 动作重定向(将动作迁移到不同角色) │ ├── bvh_files/ ← 你自己的 BVH 动作文件(中文命名) ├── lafan1/ ← lafan1 数据集 ├── data/ ← 其他测试数据 ├── video_output/ ← 渲染出的视频输出目录 │ └── requirements.txt ← Python 依赖列表

使用(渲染单个npz)

如果你已经有 SMPL 格式的 .npz 动作文件,可以直接运行:

cd/home/zww/bvh_to_smpl_vis-master conda activate smpl_vis python smpl_render.py--filepath/你的路径/xxx.npz

把BVH转成SMPL.npz

如果你现在是 .bvh 文件,需要先转成 SMPL 格式:

cd/home/zww/bvh_to_smpl_vis-master conda activate smpl_vis python bvhs2smpls.py /你的/bvh文件夹路径 /保存npz的路径

zb:

python bvhs2smpls.py /home/zww/下载/Date_set

注意:第一个参数是 BVH 文件夹,不是单个 .bvh 文件。

批量渲染.npz文件夹

如果你已经有一整个文件夹的 .npz,可以用:

python smpls_render.py--npzpath/你的npz文件夹路径

Blender 可视化方式

如果你想在 Blender 里看动作,README 说需要:

  1. 安装 Blender 2.9.0
  2. 安装 SMPL add-on
  3. 在 Blender 里添加 SMPL 人体模型
  4. 打开 Blender 的 Scripting 面板
  5. 运行:
import_motion_blender.py

somaX

这一步是将上一步转换出来的npz文件进行格式统一,然后才能进入到soma_retargeter里面进行动作查看和修改。
为了方便,直接进行整个文件夹的转换,然后文件输出的位置就是输入文件夹的下面,然后名称加了_somaX的后缀。

python-mtools.convert_amass_to_soma_REN_somaX\--input-dir /home/zww/下载/Date_set/Date_set_npz\--no-render\--batch-size32

还额外加了一个保护:因为输出文件夹是在输入文件夹里面,如果第二次运行,程序不会把已经转换出来的 *_somaX 文件夹再次当作输入去重复转换。否则会出现越转越多的问题。
如果你想覆盖已经生成过的文件,可以加:

--no-skip-existing

完整命令:

python-mtools.convert_amass_to_soma_REN_somaX\--input-dir /home/zww/SOMA-X/out\--no-render\--no-skip-existing

Npz2bvh

然后使用npz2bvh_root_translation_keep_hips_base_Retageter_auto_output.py将文件转化成为bvh文件:

python npz2bvh_root_translation_keep_hips_base_Retageter_auto_output.py\--input/home/zww/下载/Date_set/Date_set_npz/Date_set_npz_somaX/move_front_small_normal_001_feng.npz\--template-bvh assets/motions/bvh/Neutral_walk_forward_002__A057.bvh\--translation-transform x-90\--position-transform same_as_translation\--model-rotate x-90\--ground-axis y\--zero-origin\--translation-joint-name Root\--root-joint-name Hips\--ground-offset-105\--position-channels-mode root_translation_keep_hips_base

soma_retargeter

启动虚拟环境:

conda activate soma-retargeter

打开newton:

PYTHONPATH=/home/zww/soma-retargeter:$PYTHONPATHpython ./app/bvh_to_csv_converter.py\--config./assets/default_bvh_to_csv_converter_config.json\--viewergl

然后是进行一系列的参数调整,其中在soma_to_x3_retargeter_config.json中:

t_weight 大: 脚更贴近人体脚的位置 脚更不容易漂 但膝盖可能被拉弯、身体可能被压低 t_weight 小: 脚位置更自由 膝盖更容易自然 但脚可能漂浮、穿地、滑动 r_weight 大: 脚掌朝向更贴近人体动作 脚尖角度更准确 但可能导致脚掌侧翻、踝关节扭得厉害 r_weight 小: 脚掌方向更自由 踝关节压力小 但脚尖方向可能不准

mjlab

在更换完成soma_retargeter的模型之后需要再增加mjlab的模型,然后再进行训练。
soma_retargeter输出的文件是csv形式的,想要进行训练的话需要提前将文件转换成mjlab可以接受的npz模式:

uv run python src/mjlab/scripts/csv_to_npz_x03_fixed.py\--input-file /home/zww/soma-retargeter/output/date_walk.csv\--output-name date_walk\--input-fps30\--output-fps50\--devicecuda:0

然后再使用如下命令进行训练:

MUJOCO_GL=eglCUDA_VISIBLE_DEVICES=0uv run train\Mjlab-Tracking-Flat-X03B\--registry-name1023949235-usst/csv_to_npz/date_walk:latest\--env.scene.num-envs1024

使用如下命令进行训练:

uv run play Mjlab-Tracking-Flat-X03B\--wandb-run-path1023949235-usst/mjlab/709e1z2a

使用如下命令进行训练结果查看

uv run play Mjlab-Tracking-Flat-X03B\--wandb-run-path1023949235-usst/mjlab/709e1z2a
http://www.jsqmd.com/news/750117/

相关文章:

  • ImageGlass终极指南:Windows平台轻量级图片查看器
  • 基于几何非线性的塔机结构响应平面刚架【附代码】
  • Sunshine游戏串流:5步打造你的跨设备游戏体验终极指南
  • 告别“瞎猜”:用MAT的OQL像查数据库一样精准分析JVM堆内存
  • 别再傻傻分不清了!一张图搞懂FMEA、FTA、FMECA和FRACAS到底怎么用
  • 洛谷 P4832 珈百璃堕落的开始 题解
  • 用Python复现小龙虾优化算法COA:从公式到代码的保姆级拆解(附避坑指南)
  • 从外部中断到外部时钟:两种STM32读取YF-S401脉冲的方法,哪种更适合你的项目?
  • Audamo:为极简Linux桌面实现自动化昼夜主题切换
  • 3分钟掌握终极Cookie导出方案:本地安全导出浏览器Cookie的完整指南
  • 从爬虫到工具:我是如何分析XMeta接口并封装成一个PHP查询工具的(附避坑指南)
  • 5分钟快速掌握Switch游戏文件管理:NSC_BUILDER终极指南
  • 4种飞行物数据集31909张VOC+YOLO格式
  • 火山引擎方舟API工具扩展指南
  • 线段树的区间修改和懒标记
  • 从零构建极简静态网站:复古项目www-sacred的现代启示
  • BetterNCM安装器终极指南:一键解锁网易云音乐隐藏功能
  • 基于多目标优化的PC连续刚构桥预应力钢束配束设计【附代码】
  • 第1篇:认识仓颉——搭建开发环境 仓颉原生中文编程
  • 3分钟极速上手:Thorium浏览器让老旧电脑也能流畅上网的秘诀
  • # 造过轮子的人学框架有多快——我自己写完IOC和AOP,Spring就是换个API
  • 迭代与递归
  • 3步解锁QQ音乐加密音频:macOS免费高效转换终极方案
  • HoYo-Glyphs终极指南:11款米哈游游戏字体从安装到创意应用完整教程
  • 具身智能体系统Dugong:从AI推理到实时空间界面的编译与渲染
  • 魔兽争霸3完全优化指南:WarcraftHelper 2025简易配置教程
  • 鸣潮工具箱WaveTools:3步轻松解锁120帧与智能抽卡分析
  • 国家安全部曝光AI“投毒”产业链:你平时用的AI,可能早就被人动了手脚
  • LinkSwift:八大网盘直链解析终极解决方案,彻底告别下载限速烦恼
  • 3个核心场景+5个实战技巧:XHS-Downloader如何帮你高效管理小红书内容资源