学习周报四十九

文章目录

摘要

阅读: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 的缺陷。

相关推荐
一锅炖出任易仙1 小时前
创梦汤锅学习日记day34
学习·游戏引擎
半导体守望者1 小时前
AE AZX射频调谐器射频负载匹配(调谐)原理PPT
学习·机器人·自动化·制造·模块测试
me8322 小时前
【AI面试】大模型面试60问(面试速记+详解)
人工智能·学习·ai
CHHH_HHH2 小时前
【C++】哈希表原理与实战:从冲突解决到性能优化
开发语言·数据结构·c++·学习·算法·哈希算法·散列表
秋雨梧桐叶落莳2 小时前
iOS——QQ音乐仿写项目总结
学习·macos·ui·ios·mvc·objective-c·xcode
编程版小新2 小时前
Day1:体验产品,以画图方式梳理用户操作和管理员操作
学习
三品吉他手会点灯3 小时前
STM32F103 学习笔记-24-I2C-读写EEPROM(第2节)-I2C协议层介绍
笔记·stm32·学习
z200509303 小时前
【C++学习】C++ 类型转换深度解析:从 C 风格缺陷到 C++ 四种安全转换的思想内核
c语言·c++·学习
三品吉他手会点灯3 小时前
STM32F103 学习笔记-24-I2C-读写EEPROM(第3节)-STM32的I2C框图详解
笔记·stm32·学习