BVH ==>SMPL for Unified

news2024/9/28 9:28:08

BVH to SMPL

BVH文件转换为SMPL模型,需要使用专业的3D建模软件。

例如
Blender或Maya。

Steps

  1. 导入BVH文件到建模软件中。
  2. 将BVH文件应用于一个适当的人体模型。
  3. 将人体模型转换为SMPL模型。
  4. 导出SMPL模型文件。

在这里插入图片描述

Realization

https://github.com/Meshcapade/SMPL_blender_addon

https://smpl-x.is.tue.mpg.de/

https://github.com/Rokoko/rokoko-studio-live-blender

  • 下载 SMPL Model
  • 安装 (edit–>preference)
  • 应用(add ons

SMPL ==> Frame 保存

Realize SMPL to Frame.npy through Scripting

Import

  • NumPy
  • Blender Python
import bpy
import numpy as np

SMPL list

SMPLX_JOINT_NAMES = [
    'pelvis','left_hip','right_hip','spine1','left_knee','right_knee','spine2','left_ankle','right_ankle','spine3', 
]

Frame list

frame_len = bpy.context.scene.frame_end

frames = []

Frame Synthesis

for fIdx in range(frame_len):
    print(fIdx)
    bpy.context.scene.frame_set(fIdx)

    ################################
    obj = bpy.data.objects.get('SMPLX-mesh-female')
    if obj is None:
        print("WARN: no obj {}".format(tar_name))
        break

    if obj.type == 'MESH':
        armature = obj.parent
    else:
        armature = obj

    # Get armature pose in rodrigues representation
    pose = [0.0] * (NUM_SMPLX_JOINTS * 3)

    for index in range(NUM_SMPLX_JOINTS):
        joint_name = SMPLX_JOINT_NAMES[index]
        joint_pose = rodrigues_from_pose(armature, joint_name)
        pose[index*3 + 0] = joint_pose[0]
        pose[index*3 + 1] = joint_pose[1]
        pose[index*3 + 2] = joint_pose[2]
    ################################

    frames.append(pose)

Save

seq_name = "ABCD."
np.save("PATH{}.npy".format(seq_name), frames)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/429930.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件质量保证与软件测试复习笔记(第一周总体介绍+黑盒测试详细)

第一周 2.23 (总体性介绍) 软件测试的定义 常用术语解释 错误 缺陷 故障 失效 测试和测试用例、测试过程 出现软件缺陷的原因 软件开发的主要环节 测试过程的生命周期模型 软件测试的本质是针对要测试的内容确定一组测试用例 测试用…

电脑无法正常关机?点了关机又会自动重启

“真木马”相信不少朋友遇到过电脑关机自动重启现象,一点关机,但随后电脑有会进入重启状态,就是一直不会停,属实是很难崩。 目录 一、问题症状 二、问题原因 三、解决方案 方法一: 1.关闭系统发生错误时电脑自动…

生命在于折腾——PicGo+Minio+Typora图床搭建

好久没更新了,前段时间太忙了,还有些摆烂,所以,嗯,懂得都懂,写这篇博客前一天我还在椅子上坐了两个小时,思考人生的意义。 话不多说,开始吧。 一、起因 因为好久没管过博客&#…

显存不够用?一种大模型加载时节约一半显存的方法

Loading huge PyTorch models with linear memory consumption 本文主要介绍了一种用于加载巨大模型权重时节约接近一半显存的方法 首先,创建一个模型: import torch from torch import nnclass BoringModel(nn.Sequential):def __init__(self):super().__init__…

NIFI大数据进阶_实时同步MySql的数据到Hive中去_可增量同步_实时监控MySql数据库变化_实际操作_03---大数据之Nifi工作笔记0035

然后我们来操作一下首先创建一个处理器组名字是: MysqlToHive_timely 创建组以后我们进入这个组 然后我们先去添加CaptureChangeMySql这个处理器 拖入处理器以后,我们配置这个处理器 可以看到很多属性,这里我们配置 首先看这个Distrbuted Map Cache Client 这个客户端,我们先来…

ChatGPT聊天机器人程序

ChatGPT聊天机器人程序是一种基于人工智能技术的智能对话程序,利用ChatGPT等自然语言处理模型和算法实现与用户的交互,回答问题、提供服务等。 ChatGPT聊天机器人程序通常包括以下模块: 输入模块:用于接收用户输入的信息&…

vmware虚拟机上网设置教程(vmware虚拟机设置网络)

安装vmware后,一般都会有虚拟机能连互联网的需求(如虚拟机中Linux想访问百度),vmware为我们提供了几种连接网络的方式,它们分别是:Bridged(桥接模式)、NAT(网络地址转换模…

SpringBootApplication最详细注解

SpringBootApplication最详细注解SpringBootApplication的注解分类1.Target2.Retention3.Document4.Inherited5.SpringBootConfiguration6.EnableAutoConfiguration6.1AutoConfigurationPackage这个注解6.1.1 Import6.1.2 AutoConfigurationpackages.Registrar.class6.2 AutoCo…

DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍

DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍 1. 概述 近日来,ChatGPT及类似模型引发了人工智能(AI)领域的一场风潮。 这场风潮对数字世界产生了革命性影响。ChatGPT类模型具有惊人的泛用性&#xff0…

硬盘未格式化如何处理(硬盘忽然未格式化如何处理)

将硬盘插入电脑的时候为什么会出现“未格式化”的提示框呢?遇到这个问题时又该怎么处理呢?别慌,下面小编就来给大家演示一下子解决未格式化这个问题的解决方法。 硬盘未格式化如何处理工具/软件:sayRecy 步骤1:先百度搜索并下载程序打开后&…

一文吃透Java线程池——基础篇

前言 本文分为两部分。 第一部分是基础章节。可以帮助我们了解线程池的概念,用法,以及他们之间的的关系和实际应用。 第二部分是实现机制篇。通过源码解析,更深刻理解线程池的工作原理,以及各个概念的准确含义。 原本是一篇文章&…

ping不通的几种故障

网络ping不通是网络中出现频率最高的故障之一,同时也是最让人抓狂的故障,基本上大部分人都遇到过了,如果在项目中出现网络ping不通,没有一个有序的方法去排除解决,那么很难入手,也是讨论最多的问题之一&…

DNS(UOS)

安装DNS apt install bind9 nfsutils -y 切换目录 cd /etc/bind vim named.conf.defaults.zones 复制备份 cp -a db.local skills.net.zone cp -a db.127 146.16.172.in-addr.arpa vim skills.net.zone vim 146.16.172.in-addr.arpa vim /named.conf.options 重启bind9 …

javascript学习笔记

本笔记来源于B站尚硅谷javascript教程10.尚硅谷_JS基础_Null和Undefined_哔哩哔哩_bilibili 1、Null和None Null类型的值只一个,就是null; null这个值专门用来表示一个为空的对象; 使用typeof 检查一个null值时,会返回object; Undefined类型的值只有一个…

C++ 特性简化STM32 风格固件库的GPIO 操作,使用HK32F030M

所谓的STM32 风格就是指下面这种: // 开启时钟 RCC_AHBPeriphClockCmd( LED1_GPIO_CLK | LED2_GPIO_CLK, ENABLE);//定义初始化结构体 GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Mode GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType GPIO_O…

迭代器与仿函数

迭代器与仿函数一般分类功能方式分类STL迭代器的类型迭代器辅助函数流型迭代器仿函数仿函数的编写标准库中的仿函数一般分类 正向迭代器 容器名:iterator it begin() end() 2.反向迭代器 容器名:reverse_iterator it rbegin() rend() 3.常正向迭代器 容器…

MQTT 安全解析:构建可靠的物联网系统

物联网逐渐渗透到医疗保健、智能家居、智慧城市、自动驾驶等我们生活中的各个领域。这其中所涉及到的物联设备的安全也因此变得愈发重要。一旦物联网系统遭到恶意入侵,不仅海量设备数据将面临丢失、被窃取和篡改等安全风险,使用这些设备和物联网应用的终…

Githubs的使用方法(创建仓库\分支\提交【增删改查】\拉取与合并\管理与clone代码\修改分支等操作)

Githubs的使用方法 一、github基本使用 这一小节主要介绍github的基本使用方法以及每一步的流程和作用。 1. 创建仓库 2. 创建分支 此时有两个分支:main 和 readme-edits。 现在,它们看起来完全相同。 接下来,将向新分支添加更改。 3. 创…

Vue3 项目实例(一)ElementPlus+ pinia+vite创建

项目搭建 热重载:将一个项目切分成多个JS,同时利用浏览器的协商缓存。 etag: 文件唯一标识 如果某一片代码没有改变,devServer返回304,浏览器继续使用原来的文件,否则,返回200,响应新的js文件…

RK3568平台开发系列讲解(调试篇)IS_ERR函数的使用

🚀返回专栏总目录 文章目录 一、IS_ERR函数用法二、IS_ERR函数三、内核错误码沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍 IS_ERR 函数的使用。 一、IS_ERR函数用法 先看下用法: 二、IS_ERR函数 对于任何一个指针来说,必然存在三种情况: 一种是合…