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

【论文阅读笔记 + 思考 + 总结】MoMask: Generative Masked Modeling of 3D Human Motions

创新点:

  1. VQ-VAE 👉 Residual VQ-VAE,对每个 motion sequence 输出一组 base motion tokens 和 v 组 residual motion tokens
  2. bidirectional 的 Masked transformer 用来生成 base motion tokens
  3. Residual Transformer 对 residual motion tokens 进行建模

 

1. Residual VQ-VAE

VQ 0:就是和 T2M-GPT 一样的 codebook(T2M-GPT 的 VQ-VAE 只有这一级) 👉 base motion tokens

VQ 1:就是把 Encoder 的 output - VQ 0 codebook 的 embedding,对 residual(差值)的结果建立一个 codebook 👉 residual motion tokens

VQ V:(以此类推) 👉 residual motion tokens

decode 的时候,把每个层级的 token embedding 加起来,得到一个 embedding,送入 Decoder 里。

训练

这里和 T2M-GPT 的 VQ-VAE (下面这个公式)有一点区别:

T2M-GPT 的 loss 由三部分组成,对比 MoMask 里 RVQ 只有 T2M-GPT 里 VQ 的 commit loss,不包含 embed loss

MoMask 里 RVQ 的 b 是编码过后,codebook 里的 embedding;T2M-GPT 的 Z 是进入 codebook 前的 embedding

sg 里的是 codebook 里的 embedding

效果

这个是 T2M-GPT 里 VQ 的结果,FID 在 0.07 左右

这个是 MoMask 里 RVQ 的结果:

1. 不用 Residual(w/o RQ)就是单层级的 VQ(和 T2M-GPT 里 VQ 类似),FID 在 0.091 左右,比 T2M-GPT 里 VQ 稍微差一点(估计的 reconstruction loss 少了那一部分的原因?)

2. 用了多层级 motion tokens 后,也就是 with residual(MoMask)后,FID 是 0.019,提升蛮多。说明 residual 多层级 motion tokens 影响还蛮大的。

注意

作者不希望 residual motion tokens 削弱 base motion tokens 的表达能力,还是希望 base motion tokens 能存储尽可能多的信息。所以在训练的时候还提出了一个 Quantization Dropout 的策略,即 randomly disables the last 0 to V layers with probability q ∈ [0, 1] during training.

Implementation Details

q = 0.2;V = 5

 

2. Masked transformer

1. 随机替换掉序列中占比 mask ratio 这么多的 motion tokens,替换为 a special [MASK] token

2. 在给定 text embedding(用 CLIP 提取)和 the sequence after masking 的情况下,去预测 masked tokens

注意

训练时,mask ratio 是变化的,取值范围在 0-1.

训练过程中用了 BERT 的 remasking 策略:如果某个 token 要被 mask,那它有:(1)80% 的可能被替换为 [MASK] token;(2)10% 的可能被随机替换为其他 tokens;(3)10% 的可能不变。

预测

First,所有的 tokens 都是被 mask 的。给定 text embedding,预测所有 tokens.

Next,保留置信度大的 tokens,mask 住置信度小的 tokens,预测被 mask 的 tokens.

让 Masked transformer 预测 L 次(L = 10),得到最终的 base motion tokens

 

3. Residual transformer

结构和 Mask Transformer 类似,区别在 Residual transformer 有 V 个不同的 token embedding layers

训练时,随机选择一个层级 j 进行学习:该层级之前所有层级(0 到 j-1)的 tokens 会经过各自的 token embedding layers,得到对应的 embedding,然后相加,作为当前层级的 input token embedding。

那么,当前层级 j 的学习任务就为:给定(1)当前层级的 input token embedding、(2)text embedding,和 (3)层级 id,目标是去预测(predict)当前层级 j 的 residual motion tokens

注意:为了高效训练,第 j 个层级的 token predicting layers 和 第 j+1 个层级的 token embedding layers 共享参数。

整体推理流程

此外,他们还采用了 classifier-free guidance (CFG),即

在训练时,10% 的时候,不给 text embedding

推理时,推理两遍:一遍不给 text embedding,一遍给 text embedding。两遍的 final linear projection layer before softmax 的输出值按如下公式加和,得到最终的 logits.

 

limitations

  1. diversity 不高。
  2. 生成 motion 的时候,需要 motion 的序列长度。
  3. 面对这类 fast-changing root motions, such as spinning 的动作,生成还是会有一些问题(VQ 普遍存在的问题)。

相关文章:

【论文阅读笔记 + 思考 + 总结】MoMask: Generative Masked Modeling of 3D Human Motions

创新点: VQ-VAE 👉 Residual VQ-VAE,对每个 motion sequence 输出一组 base motion tokens 和 v 组 residual motion tokensbidirectional 的 Masked transformer 用来生成 base motion tokensResidual Transformer 对 residual motion toke…...

Mojo控制语句详解

Mojo 包含几个传统的控制流结构,用于有条件和重复执行代码块。 The if statement Mojo 支持条件代码执行语句。有了它,当给定的布尔表达式计算结果为 时,if您可以有条件地执行缩进的代码块 。True temp_celsius = 25 if temp_celsius > 20:print("It is warm.&quo…...

web安全基础学习

http基础 HTTP(HyperText Transfer Protocol,超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。本文将介绍如何使用HTTP协议,以及在Linux操作系统中如何使用curl工具发起HTTP请求。 一、HTTP特性 无状态…...

天气预报的爬虫内容打印并存储用户操作

系统名称: 基于网络爬虫技术的天气数据查询系统文档作者:清馨创作时间:2024-7-29最新修改时间:2024-7-29最新版本号: 1.0 1.背景描述 该系统将基于目前比较流行的网络爬虫技术,对网站上(NowAPI…...

OrangePi AI Pro 固件升级 —— 让主频从 1.0 GHz 到 1.6 GHz 的巨大升级

前言 OrangePi AI Pro 最近发布了Ascend310B-firmware 固件包,据说升级之后可以将 CPU 主频从 1.0 GHz 提升至 1.6 GHz,据群主大大说,算力也从原本的 8T 提升到了 12T,这波开发板的成长让我非常的 Amazing 啊!下面就来…...

学习大数据DAY27 Linux最终阶段测试

满分:100 得分:72 目录 一选择题(每题 3 分,共计 30 分) 二、编程题(共 70…...

ctr管理containerd基本命令

1. 创建命名空间 创建名为custom的命令空间 ctr ns create custom2. 导入镜像 把镜像导入到刚刚创建的空间 ctr -n custom images improt restfulapi.tar3. 创建容器 创建一个test_api的容器 ctr -n custom run --null-io --net-host -d --mount typebind,src/etc,dst/ho…...

rust 初探 -- 路径(path)

rust 初探 – 路径Path 路径(Path) 目的:为了在 Rust 的模块中找到某个条目,需要使用 路径两种形式: 绝对路径:从 crate root 开始,使用 crate 名或字面值 crate相对路径:从当前模…...

XXE -靶机

XXE靶机 一.扫描端口 进入xxe靶机 1.1然后进入到kali里 使用namp 扫描一下靶机开放端口等信息 1.2扫描他的目录 二 利用获取的信息 进入到 robots.txt 按他给出的信息 去访问xss 是一个登陆界面 admin.php 也是一个登陆界面 我们访问xss登陆界面 随便输 打开burpsuite抓包 发…...

vue2 搭配 html2canvas 截图并设置截图时样式(不影响页面) 以及 base64转file文件上传 或者下载截图 小记

下载 npm install html2canvas --save引入 import html2canvas from "html2canvas"; //使用 html2canvasForChars() { // 使用that来存储当前Vue组件的上下文,以便在回调函数中使用 let that this; // 获取DOM中id为"charts"的元素&…...

请大家监督:我要开启Python之路,首要任务最简单的搭建环境

任务说明: 如上图所示,Python稳稳第一,为何?因为Python可以做很多事情,比如:Web开发,网络爬虫,软件开发、数据分析、游戏开发,金融分析,人工智能与机器学习&a…...

http协议深度解析——网络时代的安全与效率(1)

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 公众号:网络豆云计算学堂 座右铭:低头赶路,敬事如仪 个人主页: 网络豆的主页​​​​​ 目录 写在前面: 本章目的: …...

类和对象【下】

一、类的默认成员函数 默认成员函数从名字就告诉我们何为默认成员函数,即:用户没有实现,编译器默认自动实现的函数。 这时你不禁一喜,还有这好事,编译器给我打工,那么,我们今天都来了解一下都有…...

面向未来的S2B2C电商供应链系统发展趋势与创新探索

S2B2C电商供应链系统的发展趋势及创新方向。首先分析当前市场环境和消费者需求的变化,如个性化消费、即时配送、绿色环保等趋势对供应链系统的影响。随后,预测并讨论未来供应链系统可能的技术革新,如物联网(IoT)在物流…...

【C++】哈希容器

unordered系列关联式容器 在之前的博文中介绍过关联式容器中的map与set,同map与set一样,unordered_set与unordered_set也是关联式容器。 在C98中,STL提供了底层为红黑树结构的一系列关联式容器,查询效率可以达到logN;在…...

milvus - VectorDBBench benchmaker 性能测试工具使用经验

IVF_FLAT (Inverted File with Flat Indexing) 优点: 在数据量适中且维度不是非常高的情况下,IVF_FLAT能提供精确的最近邻搜索结果。 相对简单,易于理解和实现。 缺点: 当数据集非常大时,IVF_FLAT需要大量的内存来存储整个数据集,…...

Linux上如何分析进程内存分配,优化进程内存占用大小

云计算场景下,服务器上内存宝贵,只有尽可能让服务器上服务进程占用更少的内存,方才可以提供更多的内存给虚拟机,卖给云客户。 虚拟化三大件:libvirt、qemu、kvm内存开销不小,可以优化占用更少的内存。如何找到进程内存开销的地方直观重要,以qemu为例说明。 一、查看进…...

C语言笔记(第n版):知识清单

注:本文参考自【C reference - cppreference.com】和【C 语言参考 | Microsoft Learn】,颇有点借花献佛的意味…… C 程序是一系列包含声明的文本文件(通常为头文件和源文件)的序列。它们经过转换成为可执行程序,当操作…...

【香橙派系列教程】(四)基于ARM-Linux架构的语音控制刷抖音项目

【四】基于ARM-Linux架构的语音控制刷抖音项目 文章目录 【四】基于ARM-Linux架构的语音控制刷抖音项目1.语音模块配置1.创建产品2.引脚配置3.词条定义4.添加控制5.发布版本6.烧录固件 2.编程实现语音和开发板通信3.手机接入Linux热拔插1.dmesg命令2.adb调试踩坑问题 3.总结 4.…...

Java----反射

什么是反射? 反射就是允许对成员变量、成员方法和构造方法的信息进行编程访问。换句话来讲,就是通过反射,我们可以在不需要创建其对象的情况下就可以获取其定义的各种属性值以及方法。常见的应用就是IDEA中的提示功能,当我…...

课堂教学质量综合评分系统

目录 一、项目环境与目录结构 1. 环境要求 2. 推荐目录结构 二、核心类设计:ClassroomScorer 三、关键代码深度解析 1. 基础路径配置 2. 初始化方法:极致灵活的配置 3. 上下文管理器:统一封装 CSV 读取 4. 数据加载:4 类 …...

从Buck到三电平:软开关DC-DC变换器的Simulink建模与双闭环控制仿真

1. 从Buck到三电平:电力电子技术的进化之路 记得我第一次接触DC-DC变换器时,Buck电路就像是一道必须跨过的门槛。这个经典的降压电路结构简单,却蕴含着电力电子最基础的设计思想。但随着项目需求的提升,传统Buck电路在高压大功率场…...

FlowState Lab模型微调教程:使用自定义数据集训练专属波动模型

FlowState Lab模型微调教程:使用自定义数据集训练专属波动模型 1. 学习目标与前置准备 想为特定领域打造专属的波动预测模型吗?本文将带你完成从数据准备到模型评估的全流程。学完本教程,你将能够: 准备符合要求的时序/空间序列…...

5倍效率提升:GIMP批量图像处理插件BIMP全攻略

5倍效率提升:GIMP批量图像处理插件BIMP全攻略 【免费下载链接】gimp-plugin-bimp 项目地址: https://gitcode.com/gh_mirrors/gi/gimp-plugin-bimp 在数字内容创作领域,批量图像处理是提升效率的关键环节。GIMP作为免费开源的图像编辑软件&#…...

突破3大技术瓶颈:抖音音乐批量下载工具的创新解决方案

突破3大技术瓶颈:抖音音乐批量下载工具的创新解决方案 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在数字内容创作领域,音频素材的获取与管理已成为制约生产力的关键因素。特别是当…...

FPGA状态机实战:用Verilog实现自动售卖机(附三段式完整代码)

FPGA状态机实战:用Verilog实现自动售卖机(附三段式完整代码) 在数字电路设计中,状态机是最核心的设计思想之一。它能够将复杂的控制逻辑分解为有限的状态和状态之间的转换,使得设计更加清晰、可维护。自动售卖机作为一…...

OpenClaw多模型切换技巧:GLM-4.7-Flash与Qwen3-32B混合调用实战

OpenClaw多模型切换技巧:GLM-4.7-Flash与Qwen3-32B混合调用实战 1. 为什么需要多模型切换 去年冬天,当我第一次尝试用OpenClaw自动处理周报时,发现一个有趣的现象:用同一个模型处理文本摘要和代码片段时,效果差异很大…...

4 大平台 “免费拿” 玩法大拆解,看完不踩坑

现在很多平台都有 “0元领东西” 的活动,玩法不一样,难度也差很多。今天用大白话对比拼dd、淘b、京d、全能锦鲤,简单易懂,看完就知道该选哪个。一、各平台免费拿怎么玩?1. 拼dd(老牌砍价)玩法&a…...

滑模控制消抖新思路:双曲正切函数VS饱和函数效果实测对比

滑模控制消抖技术深度对比:双曲正切函数与饱和函数的实战解析 在智能控制算法的演进历程中,滑模控制(SMC)因其强鲁棒性成为处理系统不确定性和外部干扰的利器。但传统符号函数带来的高频抖振问题,一直是工程师们亟待解…...

StarWind V2V Image Converter实战:轻松将IMG镜像转换为VMware VMDK格式

1. 为什么需要IMG转VMDK? 虚拟机镜像格式转换是IT运维中的常见需求。我遇到过不少这样的情况:手头有一个现成的IMG格式镜像文件,但当前虚拟化环境用的是VMware。这时候就需要把IMG转换成VMware原生支持的VMDK格式。 IMG是一种通用的磁盘镜像格…...