论文超详细精读:SMPL: A Skinned Multi-Person Linear Model

2023-05-16

文章目录

  • 前言
  • 总览
  • 一、Introduction
  • 二、Related Work
    • Blend Skinning(混合蒙皮)
    • Blend shapes (混合变形)
    • Learning pose and shape models(学习姿势和形状模型。)
  • 三、Model Formulation
  • 四、Training


请添加图片描述
(左)SMPL模型(橙色)适合ground truth 3D网格(灰色)。(右)Unity 5.0游戏引擎屏幕截图,可实时显示CAESAR数据集中的人体动画。

前言

笔者从人工智能小白的角度,力求能够从原文中解析出最高效率的知识。
之前看了很多博客去学习AI,但发现虽然有时候会感觉很省时间,但到了复现的时候就会傻眼,因为太多实现的细节没有提及。而且博客具有很强的主观性,因此我建议还是搭配原文来看。

请下载原文《SMPL: A Skinned Multi-Person Linear Model》搭配阅读本文,会更高效哦!

总览

首先,看完标题,摘要和结论,我了解到了以下信息:

  1. SMPL是一个逼真的人体形状和姿势学习模型,与现有的渲染引擎兼容,允许动画师控制,并可用于研究目的。目的是创建逼真的动画人体,可以表示不同的身体形状,通过姿势自然变形,并显示出像真人一样的软组织运动,同时可以利用已有的软件和渲染引擎环境以加快渲染速度。
  2. 提出了一种学习人体形状和位置依赖的形状变化模型,模型的参数从数据中学习,包括静止姿势模板、混合权重、姿势相关的混合变形、身份相关的混合变形以及从顶点到关节位置的回归。与以前的模型不同,姿势相关的混合变形是姿势旋转矩阵元素的线性函数。这个简单的公式能够从相对大量的不同姿势的不同人的对齐3D网格中训练整个模型。
  3. 将pose blend shapes建模成rotation matrices(旋转矩阵)的线性函数。因为旋转矩阵的元素是有界的,所产生的变形也是有界的,有助于模型更好地推广。

一、Introduction

  1. 目标是自动学习一个既逼真又与现有图形软件兼容的人体模型。为此,作者描述了一个“皮肤多人线性”(SMPL)人体模型,它可以真实地表示各种人体形状,可以设置姿势相关的自然变形,展示软组织动力学,高效的动画,并与现有的渲染引擎兼容。
  2. PCA(主成分分析)法学习男性和女性体型的线性模型。方法分为两步:
  • 对于每一个扫描和姿态注册一个模板mesh
  • 使用PCA,得到的主成分就是身体混合形状(body shape blend shapes)
  1. 基于顶点的蒙皮模型(如SMPL)实际上比基于变形的模型(如BlendSCAPE)在相同数据上训练的精度更高。

二、Related Work

在这里插入图片描述

Blend Skinning(混合蒙皮)

骨架子空间变形方法,也称为混合蒙皮,将网格的曲面附加到底层骨架结构。网格曲面中的每个顶点都使用其相邻骨骼的加权影响进行变换。该影响可以像在线性混合蒙皮(LBS)中那样线性定义。LBS的问题已经被广泛发表,文献中有很多试图解决这些问题的通用方法,例如四元数或双四元数蒙皮、球形蒙皮等。

Blend shapes (混合变形)

作者采取了一种更类似于加权姿势空间变形(WPSD)的方法,它定义静止姿势中的校正,然后应用标准蒙皮方程(例如LBS)。其思想是为特定关键姿势定义校正形状(雕刻),以便在添加到基础形状并通过混合蒙皮变换时,生成正确的形状。

Learning pose and shape models(学习姿势和形状模型。)

作者想要的是一个基于顶点的模型,它具有三角形变形模型的表现力,这样它就可以捕捉到一系列自然的形状和姿势。

三、Model Formulation

在这里插入图片描述
(a)模板网格,其混合权重由颜色指示,关节显示为白色。(b)仅具有身份驱动的混合形状贡献;顶点和关节位置在形状向 β ⃗ \vec\beta β 中是线性的。(c) 在准备分割姿势时添加了姿势混合变形;请注意臀部的扩展。(d)由分割姿势的双四元数蒙皮放置的变形顶点。

  1. Blend skinning
  2. Pose blend shapes.
  3. Shape blend shapes.
  4. Joint locations.

四、Training

部分转载自《SMPL: A Skinned Multi-Person Linear Model论文解读》

一个3D人体mesh由6890个网格顶点和23个关节点组成:

  • N = 6890 N=6890N=6890,3D人体mesh的网格顶点总数。
  • K = 23 K=23K=23,3D人体mesh的关节点总数。

同时,作者指出,SMPL将3D人体mesh的状态分为shapepose

  • shape影响人体mesh的形状(高矮胖瘦)
  • pose影响人体mesh的姿态(动作姿势)

因为是在三维空间,一个点有三个坐标(x , y , z),一个标准3D人体mesh的6890个mesh顶点可表示为:

  • T T T,一个 6890 × 3 6890\times3 6890×3 的矩阵。注意,这个矩阵是常数值(对于单独一种性别的mesh来说)

同理,一个标准3D人体mesh的23个关节点可表示为:

  • J J J,一个 24 × 3 24\times3 24×3 的矩阵,23个关节点+1个root orientation。注意,这个矩阵是常数值(对于单独一种性别的mesh来说)

另外,还有blend weight,也就是每一个关节点的坐标变化对每一个mesh顶点坐标变化的影响:

  • W W W,一个 6890 × 24 6890\times24 6890×24的矩阵。注意,这个矩阵的值需要训练得到

接下来,文章作者定义了影响shape和 pose的两组参数:

  • shape,影响高矮胖瘦:β,10个参数,值在-1到1之间
  • pose,影响动作姿势:θ,72个参数,后69个值在-1到1之间,3*23 + 3,影响23个关节点+1个root orientation的旋转。前三个控制root orientation,后面每连续三个控制一个关节点

这10+72个参数,便是以一个标准3D人体mesh为基础,生成不同shape、不同pose的3D人体mesh所需要的参数。
在这里插入图片描述
如上图,(a)是一个标准3D人体mesh,也就是由 T T T J J J 生成,而颜色代表 W W W
(b),是改变了shape后的3D人体mesh,也就是由 T T T J J J ,外加β \betaβ的影响生成
©,是改变了shape和pose后的3D人体mesh,也就是由 T T T J J J,外加 β 、θ 的影响生成
(d),是在©的基础上,加入了 W W W 的影响后的结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

论文超详细精读:SMPL: A Skinned Multi-Person Linear Model 的相关文章

  • COCO Dataset person_keypoints.json 解析

    DataSet COCO json person keypointsperson keypoins json 结构one imageperson keypoint jsonkeypointDisplay above image ID 61
  • Multi-Language IDE for Professional Developers (Komodo)

    Komodo is the professional IDE for major web languages including Python PHP Ruby Perl HTML CSS and JavaScript You 39 ll
  • BoT-SORT: Robust Associations Multi-Pedestrian Tracking

    BoT SORT Robust Associations Multi Pedestrian Tracking 论文 xff1a arxiv code github 数据 xff1a 还未找到 文章贡献 运动相机的补偿和卡尔曼状态向量的选择I
  • 让人混淆的Person p=new Person();和Person p=null;

    一 对 Person p 61 new Person 的理解 要理解这个问题 xff0c 首先要知道整个过程中内存中发生了什么 xff01 我们知道 xff0c 内存中我们最常用的就是三个 xff1a 栈 堆 方法区 其中对于基本值类型和引
  • 论文笔记:MPRNet: Multi-Stage Progressive Image Restoration

    相关方法 单阶段 多阶段 注意力 方法 将图像分割为不重叠的patches xff1a 四个用于第一阶段 xff0c 两个用于第二阶段 xff0c 原始图像用于最后一阶段 残差学习 xff1a X S 61 I
  • SMPL|论文笔记(持续输出......)

    SMPL论文 vertices顶点 xff1a N 61 6890 xff0c joints关节点 xff1a K 61 23 xff1b mean template shape平均模板形状表示 xff0c 其中包括 xff1a 连接顶点的
  • SMPL论文解读和相关基础知识介绍

    SMPL论文解读和相关基础知识介绍 本文首发于微信公众号 视觉三维重建 欢迎大家关注公众号 和你分享计算机视觉算法工程师工作的点点滴滴 文章目录 SMPL论文解读和相关基础知识介绍 1 动画制作专业术语 2 SMPL 2 1 简介 2 2
  • 对 torch.nn.Linear 的理解

    torch nn Linear 是 pytorch 的线性变换层 xff0c 定义如下 xff1a Linear in features int out features int bias bool 61 True device Any N
  • MxNet系列——how_to——multi_devices

    博客新址 http blog xuezhisd top 邮箱 xff1a xuezhisd 64 126 com 在多个CPU GPUs上以数据并行方式运行MXNet MXNet 支持在多个CPUs和GPUs上进行训练 其中 xff0c 这
  • WoodScape: A multi-task, multi-camera fisheye dataset for autonomous driving

    Paper name WoodScape A multi task multi camera fisheye dataset for autonomous driving Paper Reading Note URL https opena
  • Linear Discriminant Analysis(LDA)

    好久没有整理最近的一些算法了 xff0c 今天趁着跑数据的过程整理一下LDA算法 该算法在很多地方都有使用 xff1a 语音识别 xff0c 说话人识别等等 xff0c 那么今天在这里就为大家详细介绍一下 xff0c 最终把matlab代码
  • Multi-Center Federated Learning

    Multi Center Federated Learning Motivation 现有的联合学习方法通常采用单个全局模型来通过汇总其梯度来捕获所有用户的共享知识 xff0c 而不管其数据分布之间的差异如何 但是 xff0c 由于用户行为
  • 二进制哈希码快速搜索:Multi-Index Hashing

    前言 如果你对这篇文章感兴趣 xff0c 可以点击 访客必读 指引页 一文囊括主页内所有高质量博客 xff0c 查看完整博客分类与对应链接 哈希方法通常包含两个部分 xff1a 编码 将元素通过 data dependent 或 data
  • roslaunch px4 multi_uav_mavros_sitl_sdf.launch报错

    转载自 xff1a https www cnblogs com pig fly p 13971458 html 在试图运行multi uav mavros sitl sdf launch时报错 xff1a while processing
  • SMPL源代码实现和模型解读

    对于SLAM的工作已经告一段落了 xff0c 传统的人体动态三维重建也要告一段落了 xff0c 由于课题研究的方向是基于图像 视频的人体三维重建 xff0c 三维shape pose的恢复 xff1a 所以今天和大家交流的是SMPL模型 x
  • SMPL-论文解读

    文章目录 创新点算法shape blend shape xff1a pose blend shapeJoint locationSMPL model 训练过程Pose Parameter Trainingjoint regressorSha
  • ethzasl_msf(multi-sensor fusion)传感器融合定位算法解析

    瑞士苏黎世大学Stephen Weiss对基于EFK松耦合传感器融合定位研究非常深入 xff0c 以下是他的相关论文和开源代码 xff0c 可以详细阅读 xff0c 最后附上了本人阅读的相关博客 1 论文 1 Vision Based Na
  • Multi-Object Trackers

    Introduction to Multiple Target Tracking 简单介绍了多目标物跟踪的流程 方法 1 single target tracking STT 单目标跟踪 xff0c 不需要association和assig
  • 论文超详细精读:SMPL: A Skinned Multi-Person Linear Model

    文章目录 前言总览一 Introduction二 Related WorkBlend Skinning xff08 混合蒙皮 xff09 Blend shapes xff08 混合变形 xff09 Learning pose and sha
  • TinyKv Project3 PartA Multi-raft KV

    TinyKv Project3 PartA Multi raft KV 前言Project3 PartA Multi raft KV 文档翻译Add RemoveLeaderTransfer 前言 Project3是整个项目最难的部分 xf

随机推荐

  • Sobel算法优化 AVX2与GPU

    国庆假期 一口气肝了10篇博客 基本上把最近的成果都做了遍总结 假期最后一天 以一个比较轻松的博客主题结束吧 这次是Sobel算法的AVX2优化 执行效果 sobel算法的原理 使用如下的卷积核 c 硬写 span class token
  • 随机Hough直线算法的改进

    背景介绍 随机Hough直线算法相比Hough直线算法 xff0c 算法效率会有提高 xff0c 但仍不能满足工程需求 因此提出使用生长的随机Hough直线算法 该算法对随机Hough直线算法进行改造 xff0c 在随机选点转到Hough空
  • MATLAB编写的读取.mat文件数据并画曲线图的gui程序

    matlab编写的读取sd卡数据的gui程序 界面截图 xff1a 打开文件界面 xff1a 导入数据后截图 xff1a 是不是高端大气上档次 xff0c 不要急 xff0c 慢慢往下看 xff0c 后面更精彩 xff0c 代码会贴出来的
  • px4飞控位置估计lpe移植到vs

    本文主要内容 px4飞控的位置估计有两种方式 xff0c 一是inav xff0c 二是lpe xff0c 用到的传感器用加速度计 xff0c 磁场传感器 xff0c gps xff0c 超声 xff0c 激光 xff0c 气压 xff0c
  • 常见的信号平滑处理方法

    本文介绍了常见的信号平滑处理方法 xff1a xff08 一阶滤波 xff0c 互补滤波 xff0c 卡尔曼滤波 xff09
  • PX4代码学习系列博客(1)——开发环境配置

    写在前面 虽然有很多关于px4博客 xff0c 但还是想自己亲手写 xff0c 一来记录自己的学习过程 xff0c 以备将来复习 xff0c 二来方便后来者参考学习 xff0c 好多西当然要大家分享 关于px4飞控程序的博客 xff0c 我
  • PX4代码学习系列博客(3)——px4固件目录结构和代码风格

    写在前面 px4不是普通的单片机程序 xff0c 其中没有main函数 它实际上是一个操作系统 xff0c 上面运行着很多应用程序 xff08 类比windows xff09 xff0c 比如姿态解算 xff0c 位置解算 xff0c 姿态
  • PX4代码学习系列博客(5)——在px4中添加自己的模块

    怎么在px4中添加自己的模块 在 px4固件目录结构和代码风格 这一节 xff0c 曾经说过NuttX是一个实时的嵌入式系统 xff0c 上面可以像windows那样运行程序 那既然是应用程序 xff0c 那我们应该也能写一些可以在Nutt
  • PX4代码学习系列博客(6)——offboard模式位置控制代码分析

    分析offboard模式的代码需要用到以下几个模块 local position estimator mavlink mc pos control mc att control mixer 程序数据走向 mavlink 一般的offboar
  • selenium安装

    一 安装webdriver 1 下载安装包 下载地址 xff1a CNPM Binaries Mirror 注意 xff1a 下载版本应与自己的chrome的大版本一致 chrome版本查看 xff0c 设置 gt 关于chrome xff
  • 基于惯性轮倒立摆原理的自行车

    背景 自平衡车有很多种 xff0c 其中一种是利用惯性轮倒立摆原理 xff0c 早在2003年 xff0c 日本的村田顽童就已经问世 xff0c 它采用的就是惯性轮倒立摆原理 后来其他研究组织和个人纷纷效仿 xff0c 制作出了五花八门的基
  • 二维码的特征定位和信息识别

    二维码的特征定位和信息识别 背景介绍 视觉的方法可以用来估计位置和姿态 最容易想到的是在目标上布置多个容易识别的特征 xff0c 这样使用opencv相机标定和 相机畸变矫正 轮廓提取 solvepnp来获取目标相对于相机的位姿 在实际使用
  • 学生作业信息管理系统

    一 xff0e 引言 1 1编写目的 首先 xff0c 软件系统的设计报告可以出用户提出的模糊需求分析出具体的工程需求 xff0c 并转化为数据流图 xff0c 程序流程图 xff0c 模块图 xff0c 数据库设计等软件设计必要的底层步骤
  • NVIDIA显卡驱动版本,CUDA版本,cudnn版本之间关系及如何选择

    要配置NVIDIA显卡的CUDA和cudnn xff0c 各种版本之间的依赖关系以及与其他使用GPU的库版本兼容一直没有弄明白 xff0c 最近经过多次卸载重装 xff0c 终于成功配置好了显卡计算环境 xff0c 于是把各个驱动程序和库之
  • 机器人定位误差标定模型

    概述 以工业机器人为基础 xff0c 构建柔性制造单元或柔性生产线 xff0c 实现产品自动化 柔性化 智能化生产必将成为现代制造发展的重点 新型产业环境下 xff0c 工业机器人的应用范围将越来越广泛 作业任务也将越来越精细复杂 xff0
  • 觉得C/C++难懂的、面临找工作面试笔试的,速来看这本书!

    如果你是C C 43 43 的初学者 xff0c 请看这本书 xff0c 因为其他的书也许你看了还不如不看 xff0c 一定要选一本好书 xff1b 如果你正准备求职 xff0c 那么请认真看这本书 xff0c 因为这本书会教会你工作中必备
  • rosdep update错误失败一直timeout解决方法

    更新rosdep 终端输入 rosdep update 失败1 The read operation timed out xff08 包括ERROR unable to process source xff0c ERROR error lo
  • bat, shell脚本ssh自动输入密码

    我电脑是win11 xff0c 并且自带ubuntu系统 xff0c 打开cmd xff0c 然后输入ubuntu xff0c 可以直接进入ubuntu系统 xff0c 然后执行简单的linux命令 我在两个系统下都写了自动连接远程服务的脚
  • FreeRtos 文件结构

    最核心的三个文件 1 xff09 tasks c 2 xff09 list c 3 xff09 queue c tasks c 任务相关 list c 为一个双向链表 queue c 队列 xff0c 信号量用于任务间通讯 4 xff09
  • 论文超详细精读:SMPL: A Skinned Multi-Person Linear Model

    文章目录 前言总览一 Introduction二 Related WorkBlend Skinning xff08 混合蒙皮 xff09 Blend shapes xff08 混合变形 xff09 Learning pose and sha