线性蒙皮:是由一系列骨骼驱动的。每个顶点会根据顶点权重图和相应的骨骼关联。根据骨骼在当前位置相对于静止位置的变换矩阵以及此顶点相对于该骨骼的权重,我们可以计算出该顶点在该骨骼影响下的位置。
假设Wij是第j个骨骼对于第i个顶点的权重,Pi是第i个顶点在静止位置的坐标,|B|是骨骼的数量, Rjt和Tjt分别是第j个骨骼在第t个位置下的旋转矩阵和位移矩阵。综上Vit, 在第t个姿势下第i个顶点的位置可以表述为:
对应公式的理解
最小化问题可以转化为求解对应的Euler-Lagrange方程,即双调和方程Δ2wj = 0,而其同时满足设定的限制条件
【参考文章】欧拉拉格朗日方程的理解
【参考文章】理解2
【扩展了解】线性蒙皮分解:将网格点分解为骨骼点及其线性变化。
当然也可以通过网络获得
关节点的(x,y,z)坐标是在什么坐标系下的:相机坐标系?
【参考文档】骨骼点数据
优点:姿态估计结果准确,不存在因为身体遮挡导致的估计失败问题,鲁棒性高。
缺点:价格昂贵,不方便日常使用。
优点:方便使用,价格较为低廉,准确率较高。
缺点:对遮挡部分同样无能为力,只能通过时序上的上下文信息对某帧的遮挡部分进行推测,经常造成遮挡部分估计失败。
优点:价格最为低廉,一般摄像头就可以部署,可以大规模使用。
缺点:缺少了深度信息,导致对光照等信息比较敏感,同样无法克服遮挡部分的影响,准确率不如基于深度和彩色摄像头联合使用的效果。
(1)直接预测
openpose
(2)通过静态顶点获得静态关节点
smpl
参照smpl
直接存储骨骼点的话需要大量参数(骨骼点x,y,z坐标*旋转),用骨骼点在一定程度能减少?
第一条公式表示每部分关节点对顶点的影响(在这条公式中,顶点是定值,关节点是多元的)
psd部分
PSD是为了解决 basic blend skinning(其实应该可以理解成线性混合蒙皮)的皮肤延展性欠缺
PSD是在骨架驱动动画中对网格进行变形的一种计算机动画技术。 这种技术的常用方法是根据关节(在本例中是肘部)弯曲的角度来改变网格(例如手臂)的形状。
进一步::wpsd
(1)one-stage:是使用2d/3d关节点坐标进行弱监督
(2)two-stage:在预处理阶段先使用一阶段标注器获得初始的3D伪标注框,然后使用初始的3D伪标注框进行全监督并通过2d/3d关节点坐标进行弱监督
smpl好文
smplify-x解决标注问题
学一学openpose!!!
bottom-up https://zhuanlan.zhihu.com/p/387500023
【已看】openopse
openpose
区别
Learning Skeletal Articulations with Neural Blend Shapes(使用神经混合形状学习骨骼关节)SIGGRAPH 2021顶刊解析
新方式:从时序中恢复
新方法:对抗性学习框架+时序
手工标注关键点
某个json文件:
"image_id": 57703,
"bbox": [
471.62,
46.58,
146.29,
328.61
],
"category_id": 1,
"id": 185438,
"face_box": [
0.0,
0.0,
0.0,
0.0
],
"lefthand_box": [
0.0,
0.0,
0.0,
0.0
],
"righthand_box": [
513.28,
168.39,
23.08000000000004,
27.350000000000023
],
"lefthand_kpts": [
....
],
"righthand_kpts": [
520.0,
170.0,
0.052383359521627426,
525.5,
171.5,
....
],
"face_kpts": [
.....
],
"face_valid": false,
"lefthand_valid": false,
"righthand_valid": true,
"foot_valid": true,
"foot_kpts": [
.....
]
},
{
"segmentation": [
[
176.2,
437.5,
.....
]
],
"num_keypoints": 14,
"area": 5396.2283,
"iscrowd": 0,
"keypoints": [
......
],
不清楚的点
(1)通过什么其他方式可以达成标注?
(2)smplify可以做吗?如何呈现效果?
(3)还有什么有效的方法?
?