学习周报四十九

文章目录

摘要

阅读:SMPL: A Skinned Multi-Person Linear Model。ACM TOG。选他是因为基础需要同时现在正热门的smpl以这一篇文章为基础。

abstract

Reading: SMPL: A Skinned Multi-Person Linear Model. ACM TOG. I chose it because I need the fundamentals and right now the popular SMPL is based on this paper.

一、学习论文:

核心:

1.人体参数化:

"身高、体重、肩宽"10 个数字就能描述一个人的身材,用 "头转多少度、胳膊弯多少度" 几十个数字就能描述一个人的动作。

核心就是:把一个复杂的 3D 人体网格(6890 个顶点),压缩成两组低维数字,只要修改这两组数字,就能生成任意身材、任意动作的人体。直接操作 6890 个顶点太麻烦,参数化后才能被动画师控制、被算法优化。

2.姿态pose:身体所有关节的旋转角度。

SMPL 里有 23 个关节(头、脖子、肩膀、手肘、腰、膝盖等),每个关节用 3 个数字表示旋转(轴角表示),再加根节点的 3 个全局朝向,总共72 维参数。pose 只改变动作,不改变身材;同一个 pose,胖人和瘦人做出来的动作姿态一样,只是身材不同

3.shape(体型 / 身份):天生的身材特征:高矮、胖瘦、肩宽、腿长、头身比等

SMPL 里用10-300 维参数(通常用前 10 维就够),是从几千个人的扫描数据里用 PCA 提取出来的 "人体主成分"。shape 只改变身材,不改变动作;同一个 shape,不管做什么动作,都是同一个人的身材。

总结就是:SMPL 用 shape 参数控制身材、pose 参数控制动作,然后生成对应的 3D 人体网格,解决之前模型要么不真实、要么不能用在游戏引擎里的问题。

1.1流程

SMPL 整体生成流程:a) 基准网格:所有人的基础模板,是一个标准的裸体人体。(b) 加 shape 变形:把 shape 参数对应的 "身材变化" 叠加到基准网格上,变成某个人的身材。© 加 pose 变形:把 pose 参数对应的 "姿态变化" 叠加到上面,变成这个人在这个姿态下的 "预变形网格"(d) 蒙皮旋转:用骨骼把整个网格 "拉" 成最终的姿态

顺序:基准 → 变身材 → 变姿态 → 蒙皮旋转,这就是 SMPL 的全部核心。

人体骨架与蒙皮权重: a图左:SMPL 的 23 个关节和人体部件分割,对应 pose 参数控制的部位。b图右:看蒙皮权重的颜色,颜色越接近红色,说明这个顶点受对应骨骼的影响越大

shape 变形:3 个主成分(PC1/PC2/PC3)从 - 2 到 + 2 的变化:不同的 shape 参数,对应什么样的身材变化(胖瘦、高矮、肌肉量等)。红色的关节点:关节位置会跟着 shape 自动变化,这就是关节回归器的作用。

pose 变形:对比最左边的 LBS(纯蒙皮)和最右边的 SMPL

看肘部、膝盖、臀部:纯蒙皮会出现 "拉伸"" 变细 ""蝴蝶结" 的畸形,SMPL 加了 pose 变形后就正常了

直观理解 pose 变形的作用:专门用来修补纯蒙皮的 bug,同时模拟肌肉隆起、皮肤褶皱。

pose 变形的中间过程:前4列:基准+shape → 加pose变形 → 最终SMPL → 真实扫描。加pose变形后:臀部、肩膀、肘部都变鼓了,这就是肌肉隆起的效果

shape 和 pose 的解耦效果:

横向看:同一个 pose,不同的 shape → 动作一样,身材不同

纵向看:同一个 shape,不同的 pose → 身材一样,动作不同

验证 SMPL 的核心优势:身材和动作完全独立,可以任意组合

图 1:最终效果

左图:SMPL 拟合真实扫描的效果

右图:在 Unity 引擎里实时渲染的效果,证明了工业兼容性。

总结

代码方面话没有开始跑,只下载了原来老版的实现,以及最新神经网络的代码实现。

再就是数学部分还没懂:如旋转矩阵,线性混合蒙皮(LBS)的公式如何变成smpl的混合蒙皮(Blend Skinning),SMPL 的核心就是用融合形变弥补 LBS 的缺陷。

相关推荐
Waay2 小时前
面试口述版:个人对 Prometheus 完整理解
运维·学习·云原生·面试·职场和发展·kubernetes·prometheus
一楼的猫4 小时前
AI写作合规技术方案:平台检测机制分析与规避策略
人工智能·学习·机器学习·ai写作
四月天435 小时前
web安全-SSTI(服务器模板注入)
笔记·学习·web安全·网络安全
网络与设备以及操作系统学习使用者6 小时前
相对论核心原理详解
学习·深度优先
吃好睡好便好9 小时前
泰戈尔的诗歌7
学习·生活
-To be number.wan9 小时前
数据库系统 | 规范化理论
数据库·学习
星夜夏空9910 小时前
C++学习(2) —— 类与对象基础
开发语言·c++·学习
-To be number.wan10 小时前
数据库系统 | 数据库安全与完整性
数据库·学习
czysoft11 小时前
se被限速
科技·学习·it·技术·魔法·先进·领先
子不语18011 小时前
从0开始学习S7-1200+ET200SP(3)——两台S7-1200通过TCP连接
网络协议·学习·tcp/ip