文章目录

前言总览一、Introduction二、Related WorkBlend 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》搭配阅读本文,会更高效哦!

总览

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

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

一、Introduction

目标是自动学习一个既逼真又与现有图形软件兼容的人体模型。为此,作者描述了一个“皮肤多人线性”(SMPL)人体模型,它可以真实地表示各种人体形状,可以设置姿势相关的自然变形,展示软组织动力学,高效的动画,并与现有的渲染引擎兼容。PCA(主成分分析)法学习男性和女性体型的线性模型。方法分为两步:

对于每一个扫描和姿态注册一个模板mesh使用PCA,得到的主成分就是身体混合形状(body shape blend shapes)

基于顶点的蒙皮模型(如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)由分割姿势的双四元数蒙皮放置的变形顶点。

Blend skinningPose blend shapes.Shape blend shapes.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的状态分为shape和pose:

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 的影响后的结果。

相关阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。