SCAPE: Shape Completion and Animation of People

本文深入探讨了一种针对3D模型的变形算法,介绍了如何通过计算三角形的形变Qk来实现模型的变形,并详细解释了如何从旋转矩阵转换到扭曲的过程。此外,还讨论了相邻rigid parts之间的关节相对形变以及如何通过训练得到形变系数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

推荐阅读
https://zhuanlan.zhihu.com/p/30683652

在这里插入图片描述
model mesh X 有M个点, P个三角形
N个instance meshes

4 Pose Deformation

公式(1), k为第几个三角形, j为每个三角形的第几个点, i是第i个instance模型
Q k i Q^i_k Qki为匹配第i个instance模型 , 第k个三角形的形变

然后模型呢有很多rigid parts, 每个三角形属于某个特定的rigid part, 两个相信的rigid parts 之间会有一个Joint

l [ k ] l[k] l[k]为跟第k个三角形所属的rigid part
R l [ k ] i R^i_{l[k]} Rl[k]i, 第k个三角形所属的rigid part的rigid形变.

公式(2), 给定形变,然后以每个三角形的第一点作为原点来计算最终的y

4.2 相邻两个rigid parts产生一个joint, 这个joint的相对形变就为 R l 1 T R l 2 R^T_{l_1}R_{l_2} Rl1TRl2
后面 t , θ t, \theta t,θ是从rotation matrix到twist的转换公式

Q k i = Q a k ( △ r l [ k ] i ) Q^i_k=\mathcal Q_{\mathbf a_k}(\triangle r^i_{l[k]}) Qki=Qak(rl[k]i)
输入是每个三角形最近两个joints的形变, 输出就是该三角形的形变 Q k Q_k Qk
怎么转换呢?
需要中间变量 a k \mathbf a_k ak, 我们将 [ △ r l [ k ] i 1 ] \begin{bmatrix}\triangle r^i_{l[k]} \\ 1 \end{bmatrix} [rl[k]i1]通过 7 × 9 7 \times 9 7×9的矩阵转换到 Q Q Q的9个元素
当已知 Q Q Q的时候,我们就可以将 7 × 9 7 \times 9 7×9的矩阵( a k \mathbf a_k ak)通过公式(4)训练出来,

但是 Q Q Q是不知道的, 要怎么去算呢? 可以通过公式(5), 注意 l k 1 = l k 2 l_{k_1}=l_{k_2} lk1=lk2表示相邻的两个rigid parts是属于同一个rigid parts

5 Body-Shape Deformation

跟Pose deformation的思想一样, 还是要训练一组中间变量

输入是the mesh-specific coefficients β i \beta^i βi, 输出是 S i S^i Si, 注意每个三角形都一个 S k i S^i_k Ski

过程跟4差不多, 先是通过公式(8), 算出 S k i S^i_k Ski, 这样就得到了 S i S^i Si, 然后建立一个 β i \beta^i βi S k i S^i_k Ski的全链接, 链接线上的参数也就是这里的 U , μ U, \mu U,μ

公式(9), 类似于公式(2), 给定一组形变, 然后算出最终模型点的位置

6 Shape completion

公式(10), 第二部分作了匹配点上的约束, 将匹配硬拉过来, 同时用第一部分来实现前面的形变约束. 具体迭代这里就不细讲了

7,8 也不讲了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值