作者认为,虽然现在有许多通过单目相机和卷积神经网络估计2D、3D手掌姿态的方法。但是它们只专注于估计稀疏的关键点,对于手-物交互的推理是不足矣的。而稠密的3D重建有point clouds、有mesh surfaces,作者选用了后者,因为作者认为它能够更好地表现手物交互。
本文中,作者主要是利用物体操作过程中手和物体的约束,来重建手和物体模型,并同时建模它们的互动行为。本文所采用的模型是MANO参数化手掌模型。
本文的思想是利用损失函数来制造手掌约束,使得生成的手部模型与MANO模型(统计回归模型,由pose(θ )和shape(β )作为回归参数)类似。首先输入图像至Hand encoder进行encoding得到ϕHand ,然后通过一个全连接层回归得到pose(θ )和shape(β );然后将pose(θ )和shape(β )代入至MANO手掌模型,输出约有700个vertices,选择输出5 hand vertices(VHand ) and 16 hand joints(J)。最终的损失函数为:
输出的物体是一种genus 0的拓扑结构,具有642个顶点。类似地,物体重建的方式也是通过损失函数来进行约束的,n为归一化物体的意思:
为物体的关键点的ground truth与预测值的损失值; 、 是用来控制不规则物体的, 用以惩罚与ground truth的平均边缘长度不同的预测物体的边缘长度, 则控制曲率的相似化。 、 被设置为2和0.1.这两个Loss值可以提高预测mesh的质量。
在ObMan训练时,作者首先训练这个网络预测独立的物体,然后在训练手部-物体相关的网络时候,冻结object encoder和Atlas decoder部分。
因为手掌和物体之间存在translation和scale的相对位置关系,所以这两个也需要考虑进来以得到准确的三维模型。
根据AtlasNet,首先在一个归一化的scale(通过对ground truth vertices的偏移和缩放,使物体内接在一个半径固定的球面上)上预测物体的三维关键点;然后从Hand网络中引出两个分支,用以预测translation(x,y,z)和物体的scale(scalar)。如此便有两个损失函数: 和 。其中T是在hand-relative coordinates下的物体形心偏移值的真实值,S是以形心为中心的物体的最大半径计算而得的尺度真实值。最后将预测的归一化物体关键点乘以尺度,再加上偏移量便得到最终的物体重建模型. 是应用scale和translation之后的损失值,于是hand-relative coordinates训练的损失函数为:
本文的亮点之处。
一些规则:
为了利用手-物交互的物理约束。Contact loss由两部分组成,Repulsion排斥和Attraction吸引
用以惩罚手与物体的interpenetration相互渗透。首先检测位于物体内部的手掌点(检测方法为,从手掌点发出一个射线,通过计算其贯穿物体的次数来决策其是否位于物体内部)。于是有repulsion loss(Int( )代表在物体内部的点):
r一般设为2cm。
用以惩罚手掌的点在物体的临近区域,但它们的表面没有接触的情况。所以此次的点为在物体外部的点。通过聚类观察,得知在MANO模型中,常接触的区域为下图左的六个区域,于是Attraction loss(Ext(Obj)代表在物体外部的点):
α设为1cm。若距离大于阈值1cm,则attraction会显著减小,并且随着距离增加,它会变得微不足道,如下图右所示。
的选择平衡着repulsion和attraction,对于模型质量具有重要意义。
通常取10.
ObMan是合成的数据集。物体来源于ShapeNet,作者从中选择了8种比较常见的物体--瓶子、碗、罐、罐、刀、手机、相机和遥控器,共有2772个mesh模型;抓取的生成是用软件GraspIt如收集Grasp Database般(机器人领域中这个数据集多年来一直很有价值,对于给定已知对象模型的快速抓取合成仍然是一个参考)生成的。GraspIt需要输入一个手掌模型,所以作者将MANO分为16个刚性部分,每个手指的趾骨有3个部分,手掌有一个部分。给定一个物体mesh模型,GraspIt可以从不一样的初始化中生成多种多样的抓取。作者依据一种经验性的方法(在论文附录C.2)将抓取进行了质量排序,并为每个物体选择了两种质量最好的“候选抓取”,总共生成了21,000个mesh模型。
Hand error:mean end-point error (mm) over 21 joints
Object error:symmetric chamfer distance(一种用以衡量shape相似性的距离函数。先计算query和target的轮廓,然后计算query中轮廓点的每一个点距离target轮廓中最近的点的距离,然后对所有的距离求和即为chamfer distance,如下图所示,左图为得到的轮廓以及距离,右图即为匹配过程,以计算query轮廓点的最小距离)
Contact error:
Penetration depth (mm), Intersection volume (cm 3 ):将手掌点扩展0.5cm成一个立方体,然后计算它们的intersection volume;penetration depth为手掌mesh点与物体表面距离中的最大值
Simulation displacement (mm):用以衡量抓取的质量。这个指标测量的是物体质心在模拟环境[5]中的平均位移,假设手是固定的,物体受到重力的作用。