一 写在前面
未经允许,不得转载,谢谢~~~
这篇论文主要完成了对手和手中的物体同时进行重建,并贡献了一个对应的ObMan
数据集。
- 论文出处:CVPR2019
- 论文链接:https://arxiv.org/abs/1904.05767
- 项目主页:http://www.di.ens.fr/willow/research/obman/ (展示,数据集,code)
二 简单介绍
先看一下效果图吧
主要用处:
同时恢复人和手中物体的3D形状对以下方向都有重要意义:
- VR(虚拟现实)
- AR(增强现实)
- HCI(人机交互)
- action recognition(动作识别)
- 以及机器人领域让机器学会模仿人的动作都具有重要意义。
本文主要贡献:
- 如上图实现了一个end2end可同时对手和物体进行恢复的网络。
- 设计了contract loss,让手和物体有接触但是又不能相互影响。
- 贡献了大规模手和物体相互作用的ObMan数据集。
三 文章主要方法
从整体上来看分成上下两路:
- 下面:预测物体的形状(object)
- 上面:预测手的形状(hand),并预测将object转到手的相关坐标系需要变换的角度
trans
和尺寸scale
。
3.1 手模型 hand model
- 将MAMO hand model变成一个可微分的网络层;
- hand encoder得到一个特征向量,经过全卷积层得到
beta
和pose
,其中pose
表示手关节点等信息,beta
表示不同人手的变换特性(例如胖瘦) - MAMO接受
beta
和pose
的输入,能够得到对应手的顶点信息vertices
和关节点信息joints
- 在原MONO16个关节点
joints
的基础上,本文又加了5个表示手指头位置的关节点,共21个构成最终关节点J
-
所以这部分的loss函数:
-
Vhand
对应vertices
,J
对应joints
,这两项都是用预测到点与gt的点之间的L2距离计算loss; - 最后一项对应
beta
,是希望约束beta的变换不要太大。
3.2 物体模型 object model
- 用AtlasNet网络作为物体预测网络,接受物体点云+图像特征的输入,输出新的坐标位置。
- AltasNet用Chamfer loss来进行网络的训练。
- 除了Chamfer loss,文章还提出了额外的loss来是得mesh的生成效果更好。
-
L_E
表示对于边的长度与平均边长相差很大的惩罚; -
L_L
表示鼓励物体的曲率接近球体的曲率; -
物体模型的loss函数:
-
Vobj
表示物体主要的Chamfer loss。 - 除了物体模型本身的loss之外,我们上面提到为了结合手和物体,还预测了一个
Trans
和Scale
,对应的也有两个loss,L_T
和L_S
。具体的计算方法都是与gt的T和S的L2距离。 -
所示这部分的loss函数:
3.3 手和物体联合loss:contract loss
-
这个loss的意思就是开头提到的手和物体之间一定要有接触,但是又不能相互影响(例如不能出现一个出现在另一个内部的情况)。
- 整体上说就是一个
L_R
和一个L_A
,L_A
鼓励接触,L_R
惩罚穿透。
3.4 网络整体loss
-
第一阶段:
-
第二阶段:
3.5 ObMan dataset
展示一下,毕竟一个数据集的贡献程度有的时候可能比论文的方法要来的重要。
四 简单总结
文章中的一些补充材料:
-
MAMO
: J. Romero, D. Tzionas, and M. J. Black. Embodied hands: Modeling and capturing hands and bodies together. ACM Transactions on Graphics, (Proc. SIGGRAPH Asia), 36(6), 2017. 1, 3, 5 -
AtlasNet
: T. Groueix, M. Fisher, V. G. Kim, B. Russell, and M. Aubry. AtlasNet: A papier-mˆach´e approach to learning 3D surface generation. In CVPR, 2018. 2, 3, 4, 6
关于整体思路:
- 最主要的是数据的获取与处理。
- 有数据集的情况下,最核心的问题变成:数据的利用 (网络设计,loss设计)
三维重建方向的论文看了应该有挺多篇了,但是一直没有真正上手,确实需要反思一下这个过程中存在的畏难情绪。希望这个暑假可以做出一点相关方向的东西。