본문 바로가기
Paper Summary

Learning joint reconstruction of hands and manipulated objects, CVPR’19

by ChanwooKim 2023. 4. 6.

논문 링크 : https://openaccess.thecvf.com/content_CVPR_2019/papers/Hasson_Learning_Joint_Reconstruction_of_Hands_and_Manipulated_Objects_CVPR_2019_paper.pdf

Abstract

We present an end to-end learnable model that exploits a novel contact loss that favors physically plausible hand-object constellations. Our approach improves grasp quality metrics over baselines, using RGB images as input. To train and evaluate the model, we also propose a new large-scale synthetic dataset, ObMan, with hand-object manipulations.

  • 논문에서는 물리적으로 그럴듯한 hand-object 무리를 선호하게 하는 novel contact loss를 이용하는 end-to-end model을 제시한다. 이는 RGB 이미지를 input으로 사용하여 grasp quality metrics를 개선한다. 이 model을 학습하고 평가하기 위해 손으로 물체를 조작하는 새로운 large-scale synthetic dataset인 ObMan도 제안한다.

1. Introduction

  • Fig. 1은 ObMan dataset으로 부터 학습된 model에 real image를 input으로 하였을 때 나오는 결과이다. 그리고 Fig. 2는 논문에서 제시하는 model의 pipeline인데, Hand와 object mesh를 예측하고, 이에 repulsion loss를 통해 interpenetration을 방지하고, attraction loss를 통해 contact하게 끔 유도하여 손이 물체를 자연스럽게 쥐게하도록 하는 end-to-end network이다.

Contribution

First, we design the first end-to-end learnable model for joint 3D reconstruction of hands and objects from RGB data.

  • RGB data로부터 hand와 object에 대한 joint 3D reconstruction을 위한 end-to-end learnable model 제시

Second, we propose a novel contact loss penalizing penetrations and encouraging contact between hands and objects.

  • Penetration에 페널티를 주고 hand와 object간의 contact을 유도하는 novel contact loss 제안

Third, we create a new large-scale synthetic dataset, ObMan, with hand-object manipulations.

  • 새로운 large-scale synthetic dataset인 ObMan 생성

3. Hand-object reconstruction

As illustrated in Figure 2, we design a neural network architecture that reconstructs the hand object configuration in a single forward pass from a rough image crop of a left hand holding an object. Our network architecture is split into two branches. The first branch reconstructs the object shape in a normalized coordinate space. The second branch predicts the hand mesh as well as the information necessary to transfer the object to the hand-relative coordinate system.

  • Fig. 2에서 볼 수 있듯이, 물체를 잡고 있는 왼손의 rough image crop에서 single forward pass로 hand object configuration을 reconstruction하는 neural network architecture를 설계한다. 논문에서의 네트워크 아키텍처는 2개의 branch로 나뉘는데, 첫 번째는 normalized coordinate space에서 object shape을 reconstruction한다. 두 번째는 hand mesh와 object를 hand-relative coordinate system으로 전송하는 데 필요한 정보를 예측한다.

3.1. Differentiable hand model

We integrate the MANO hand model [50] as a differentiable layer. MANO is a statistical model that maps pose (θ) and shape (β) parameters to a mesh. While the pose parameters capture the angles between hand joints, the shape parameters control the person-specific deformations of the hand. Instead of predicting the full 45-dimensional pose space, we predict 30 pose PCA components.

  • 논문에서는 MANO hand model을 differentiable layer로 통합한다. MANO는 pose(θ) 및 shape(β) parameter를 mesh에 mapping 하는 통계 model이다. 포즈 파라미터가 hand joint 사이의 각도를 캡처하는 동안 shape 파라미터는 손에 대해 사람별 변형을 제어한다. 전체 45-dimension pose space를 예측하는 대신 30개의 pose PCA component를 예측한다. 이는 30 PCA component로도 성능이 saturate 됨을 발견하여서이다.

Supervision on vertex and joint positions (LVHand,LJ\mathcal{L}_{V_{Hand}}, \mathcal{L}_J).

The hand encoder produces an encoding ΦHand\Phi_{Hand} from an image. Given ΦHand\Phi_{Hand}, a fully connected network regresses θ and β. We integrate the mesh generation as a differentiable network layer that takes θ and β as inputs and outputs the hand vertices VHandV_{Hand} and 16 hand joints. In addition to MANO joints, we select 5 vertices on the mesh as fingertips to obtain 21 hand keypoints J. We define the supervision on the vertex positions (LVHand\mathcal{L}_{V_{Hand}}) and joint positions (LJ\mathcal{L}_J) to enable training on datasets where a ground truth hand surface is not available. Both losses are defined as the L2 distance to the ground truth. We use root-relative 3D positions as supervision for LVHand\mathcal{L}_{V_{Hand}} and LJ\mathcal{L}_J.

  • Hand encoder는 encoding ΦHand\Phi_{Hand} 를 image로부터 추출한다. ΦHand\Phi_{Hand} 가 주어지면, FC network가 θ, β에 대해 regression을 한다. 저자는 mesh generation을 θ와 β를 input으로 받고 hand vertex VHandV_{Hand} 와 16개의 hand joint를 output으로 하는 differentiable network layer로 통합하였다. MANO joint 외에도 5개의 vertex를 fingertip으로 mesh에서 선택하여 21개의 hand keypoint J를 얻는다. 이를 통해 vertex position에 대한 loss LVHand\mathcal{L}_{V_{Hand}} 와 joint position에 대한 loss LJ\mathcal{L}_J 를 정의하여 GT hand surface가 없는 datasets에 대한 학습을 위해 supervision을 정의한다. 두 loss는 L2 distance를 사용한다.

Regularization on hand shape (Lβ\mathcal{L}_\beta).

Sparse supervision can cause extreme mesh deformations when the hand shape is unconstrained. We therefore use a regularizer, Lβ=β2\mathcal{L}_\beta = ||\beta||^2 , on the hand shape to constrain it to be close to the average shape in the MANO training set, which corresponds to β=0R10\beta = \vec{0} \in \mathbb{R}^{10}. The resulting hand reconstruction loss LHand\mathcal{L}_{Hand} is the summation of all LVHand\mathcal{L}_{V_{Hand}} , LV\mathcal{L}_{V} and Lβ\mathcal{L}_{\beta} terms:

  • Sparse supervision은 hand shape에 제약을 가하지 않을 때 mesh의 변형을 유발할 수 있다. 따라서, regularizer로 Lβ=β2\mathcal{L}_\beta = ||\beta||^2 를 hand shape에 제약을 가하기 위해 사용하는데, 이는 shape parameter가 MANO training set에서의 평균적인 shape에 가깝게 하도록 한다. 최종적으로, hand reconstruction loss LHand\mathcal{L}_{Hand} 는 위의 vertex, joint position에 대한 loss와 shape에 대한 regularizer의 합으로 정의된다.

3.2. Object mesh estimation

We use AtlasNet [11] as the object prediction component of our neural network architecture. AtlasNet takes as input the concatenation of point coordinates sampled either on a set of square patches or on a sphere, and image features ΦObj\Phi_{Obj}. It uses a fully connected network to output new coordinates on the surface of the reconstructed object. AtlasNet was initially designed to reconstruct meshes in a canonical view. In our model, meshes are reconstructed in view-centered coordinates. Following AtlasNet, the supervision for object vertices is defined by the symmetric Chamfer loss between the predicted vertices and points randomly sampled on the ground truth external surface of the object.

  • 논문에서는 object prediction을 위해 AtlasNet을 사용한다. AtlasNet은 square patch나 sphere에서 샘플링된 point coordinate와 image feature를 concat하여 input으로 받는다. 그리고 FC network를 사용해 재구성된 object의 surface에서 새로운 좌표를 출력한다. AtlasNet은 초기에 mesh를 canonical view에서 재구성하도록 설계되었는데, 논문에서 mesh는 view-centered coordinate로 재구성된다. 그리고, AtlasNet에 따라 예측된 object vertex와 GT 사이의 loss로는 Chamfer loss를 사용한다.

Regularization on object shape (LE\mathcal{L}_E, LL\mathcal{L}_L).

AtlasNet does not explicitly enforce constraints on mesh quality. However, when training on the larger variety of objects of ObMan, we find additional regularization on the object meshes beneficial. We penalize edges with lengths different from the average edge length with an edge-regularization loss, LE\mathcal{L}_E. We further introduce a curvature-regularizing loss, LL\mathcal{L}_L, based on [18], which encourages the curvature of the predicted mesh to be similar to the curvature of a sphere. We balance the weights of LE\mathcal{L}_E and LL\mathcal{L}_L by weights μE\mu_E and μL\mu_L respectively, which we empirically set to 2 and 0.1. These two losses together improve the quality of the predicted meshes. Additionally, when training on the ObMan dataset, we first train the network to predict normalized objects, and then freeze the object encoder and the AtlasNet decoder while training the hand-relative part of the network. When training the objects in normalized coordinates, noted with n, the total object loss is:

  • AtlasNet은 mesh quality에 대한 제약을 명시적으로 적용하지 않는다. 이는 제한된 object에서는 잘 학습하지만, ObMan의 다양한 object에 대해 학습할 때 object mesh에 대한 추가적인 regularization이 필요하다는 것을 발견해 2가지의 loss를 걸어 mesh에 penalty를 주고자한다. 먼저, edge-regularization loss(LE\mathcal{L}_E)로 평균적인 edge length와 다른 길이의 edge에 페널티를 준다. 여기에 곡률정규화 손실인 LL\mathcal{L}_L 를 추가하는데, 이는 예측된 메쉬의 곡률이 sphere의 곡률과 유사하도록 한다. 그리고 각각 가중치를 붙여 사용한다. 이 두 가지 loss는 예측된 mesh의 quality를 동시에 향상시킨다. 또한 ObMan dataset에 대해 학습할 때 먼저 normalize된 object를 예측하도록 네트워크를 학습한 다음 손과 관련된 network를 학습하는 동안 object encoder와 AtlasNet decoder를 freeze한다. n이라고 표시된 normalized coordinate에서 object를 학습할 때 total object loss는 다음과 같다.

Hand-relative coordinate system (LS\mathcal{L}_S, LT\mathcal{L}_T).

Following AtlasNet [11], we first predict the object in a normalized scale by offsetting and scaling the ground truth vertices so that the object is inscribed in a sphere of fixed radius. However, as we focus on hand-object interactions, we need to estimate the object position and scale relative to the hand. We therefore predict translation and scale in two branches, which output the three offset coordinates for the translation (i.e., x, y, z) and a scalar for the object scale. We define LT=TT^22\mathcal{L}_T = ||T-\hat{T}||^2_2 and LS=SS^22\mathcal{L}_S = ||S-\hat{S}||^2_2, where T̂ and Ŝ are the predicted translation and scale. T is the ground truth object centroid in hand-relative coordinates and S is the ground truth maximum radius of the centroid-centered object.

  • AtlasNet에 따라 정규화된 스케일로 object를 먼저 예측한다. 그러나 손-물체간 상호 작용에 초점을 맞춰야하므로, 손에 대한 물체의 위치와 크기를 추정해야 한다. 따라서, 두 branch에서 translation과 scale을 예측하는데 이는 translation을 위한 세 개의 좌표와 object scale에 대한 scalar를 출력한다. 그리고 loss 2가지를 정의하는데, translation과 scale의 prediction과 GT에 대한 l2l_2 loss이다. T는 hand-relative coordinate에서의 GT object centroid 이고 S는 centroid 중심의 object에 대한 maximum radius GT이다.

Supervision on object vertex positions (LVObjn\mathcal{L}_{V_{Obj}}^n, LVObj\mathcal{L}_{V_{Obj}}).

We multiply the AtlasNet decoded vertices by the predicted scale and offset them according to the predicted translation to obtain the final object reconstruction. Chamfer loss (LVObj\mathcal{L}_{V_{Obj}}) is applied after translation and scale are applied. When training in hand-relative coordinates the loss becomes:

  • AtlasNet을 통해 디코딩된 vertex에 예측한 scale을 곱하고 예측한 translation에 따라 offset하여 최종적인 object reconstruction을 얻는다. Chamfer loss는 translation과 scale이 적용된 후에 사용된다. Hand-relative coordinate로 학습할 때 loss는 다음과 같다.

3.3. Contact loss

So far, the prediction of hands and objects does not leverage the constraints that guide objects interacting in the physical world. Specifically, it does not account for our prior knowledge that objects can not interpenetrate each other and that, when grasping objects, contacts occur at the surface between the object and the hand. We formulate these contact constraints as a differentiable loss, Lcontact\mathcal{L}_{contact}, which can be directly used in the end-to-end learning framework.

We rely on the following definition of distances between points. d(v,VObj)=infwVObjvw2d(v, V_{Obj}) = inf_{w \in V_{Obj}}||v-w||_2 denotes distances from point to set and d(C,VObj)=infvCd(C,VObj)2d(C, V_{Obj}) = inf_{v \in C}||d(C, V_{Obj})||_2 denotes distances from set to set. Moreover, we define a common penalization function lα(x)=αtanh(xα)l_\alpha(x) = \alpha tanh(\frac{x}{\alpha}), where α is a characteristic distance of action.

  • 방금까지 한 손과 물체에 대한 예측은 서로 상호 작용하도록 하지 않는다. 특히, object는 서로 penetration할 수 없고 object 를 잡을 때 object와 hand 사이의 surface에서 접촉이 발생한다는 사실을 설명하지 않는다. 저자는 이러한 접촉 제약을 differentiable loss인 Lcontact\mathcal{L}_{contact} 로 공식화하여 end-to-end learning framework에서 사용한다.
  • 저자는 점 사이의 거리에 대해 다음 정의를 사용한다. d(v,VObj)=infwVObjvw2d(v, V_{Obj}) = inf_{w \in V_{Obj}}||v-w||_2 는 point와 set 사이의 거리(즉, VObjV_{Obj} 라는 set에서 v와 가장 가까운 w라는 vertex와의 거리), d(C,VObj)=infvCd(C,VObj)2d(C, V_{Obj}) = inf_{v \in C}||d(C, V_{Obj})||_2 는 set과 set 사이의 거리(두 set 에서 가장 가까운 vertex 사이의 거리)이다. 그리고, 공통 penalization function을 lα(x)=αtanh(xα)l_\alpha(x) = \alpha tanh(\frac{x}{\alpha}) 로 정의한다. 여기서 α\alpha 는 action에 대한 특징적인 거리이다.

Repulsion (LR\mathcal{L}_R).

We define a repulsion loss (LR\mathcal{L}_R) that penalizes hand and object interpenetration. To detect interpenetration, we first detect hand vertices that are inside the object. LR\mathcal{L}_R affects all hand vertices that belong to the interior of the object, which we denote Int(Obj). The repulsion loss is defined as:

  • 논문에서는 hand, object간의 interpenetration에 페널티를 주기 위해 repulsion loss를 정의하였다. interpenetration을 detect하기 위해, 먼저 object안에 들어가는 hand vertex를 detection한다. LR\mathcal{L}_R 은 object 내부에 속하는 모든 hand vertex에 영향을 미치며 이를 Int(Obj)라고 한다. repulsion loss는 다음과 같이 성의된다. 여기서 r은 repulsion characteristic distance라고 하는 coefficient인데, 논문에서는 2cm로 설정하였다.

Attraction (LA\mathcal{L}_A).

We further define an attraction loss (LA\mathcal{L}_A) to penalize cases in which hand vertices are in the vicinity of the object but the surfaces are not in contact. This loss is applied only to vertices which belong to the exterior of the object Ext(Obj). We compute statistics on the automatically-generated grasps described in the next section to determine which vertices on the hand are frequently involved in contacts. We compute for each MANO vertex how often across the dataset it is in the immediate vicinity of the object (defined as less than 3mm away from the object’s surface). We find that by identifying the vertices that are close to the objects in at least 8% of the grasps, we obtain 6 regions of connected vertices {Ci}i[1,6]\{ C_i \}_{i \in [1, 6]} on the hand which match the 5 fingertips and part of the palm of the hand, as illustrated in Figure 3 (left). The attraction term LA\mathcal{L}_A penalizes distances from each of the regions to the object, allowing for sparse guidance towards the object’s surface:

  • 추가적으로, hand vertex가 object 근처에 있지만 surface가 접촉하지 않는 경우에 페널티를 주기위해 attraction loss를 정의한다. 이 loss는 vertex가 object의 외부에 있는 경우에만 적용된다. 저자는 접촉에 자주 관여하는 hand vertex를 결정하기 위해 다음 section에서 통계치를 낸다. 각 MANO vertex에 대해 dataset 전체에서 얼마나 object 근처에 있는지 계산한다. (object surface로부터 3mm 미만) 이를 통해 Fig. 3의 왼쪽 처럼 6개의 region을 얻어냈다. Attraction term은 각 region에서 object까지의 거리에 페널티를 부여하여 object surface를 향한 sparse한 guidance를 하도록 한다. 수식에서의 a는 1cm로 설정했는데, threshold a보다 hand에서 더 먼 물체 영역의 경우 인력이 크게 감소하고, object까지의 거리가 더 멀수록 무시할 수 있게된다.

Our final contact loss LContact\mathcal{L}_{Contact} is a weighted sum of the attraction LA\mathcal{L}_A and the repulsion LR\mathcal{L}_R terms:

  • 최종적인 contact loss는 위에서 설명한 repulsion, attraction loss들의 weighted sum이다. 만약, λR\lambda_R = 1 이라면, repulsion term이 활성화된 것이다.

Our network is first trained with LHand+LObject\mathcal{L}_{Hand} + \mathcal{L}_{Object}. We then continue training with LHand+LObject+μCLContact\mathcal{L}_{Hand} + \mathcal{L}_{Object} + \mu_C\mathcal{L}_{Contact} to improve the physical quality of the hand-object interaction.

  • 논문의 network는 처음에 LHand+LObject\mathcal{L}_{Hand} + \mathcal{L}_{Object} 로 학습된다. 그리고 hand-object interaction에 대해 physical quality를 향상시키기 위해 LContact\mathcal{L}_{Contact} 에 weight를 곱한 loss를 추가하여 학습한다.

4. ObMan dataset

Objects.

In order to find a variety of high-quality meshes of frequently manipulated everyday objects, we selected models from the ShapeNet [4] dataset. We selected 8 object categories of everyday objects (bottles, bowls, cans, jars, knifes, cellphones, cameras and remote controls).

  • 자주 사용되는 일상의 object에 대해 high-quality mesh를 찾기 위해 ShapeNet dataset에서 8가지 object category를 사용하였다.

Grasps.

In order to generate plausible grasps, we use the GraspIt software [30] following the methods used to collect the Grasp Database [9]. We transform MANO by separating it into 16 rigid parts, 3 parts for the phalanges of each finger, and one for the hand palm. Given an object mesh, GraspIt produces different grasps from various initializations.

  • 그럴듯한 grasp를 생성하기위해 Grasp Database를 수집할 때 사용된 것 처럼 Grasplt software를 사용한다. 저자는 MANO를 16개의 부분으로 나눴는데, 이는 각 손가락마다 3개씩 15개, 그리고 손바닥에 대한 1개의 부분으로 분리하여 변환하였다. Object mesh가 주어지면, Grasplt은 다양한 initialization으로 부터 다른 grasp를 생성한다.

Body pose.

For realism, we render the hand and the full body (see Figure 4). The pose of the hand is transferred to hands of the SMPL+H [50] model which integrates MANO to the SMPL [25, 50] statistical body model, allowing us to render realistic images of embodied hands. In order to maximize the viewpoint variability, a global rotation uniformly sampled in SO(3) is also applied to the body. We translate the hand root joint to the camera’s optical axis.

  • realism을 위해 hand, full body를 렌더링한다. 손의 포즈는 SMPL+H model의 손으로 전달되어 구현된 손의 사실적인 이미지를 렌더링할 수 있다. viewpoint의 다양성을 최대화하기 위해 SO(3)에서 균일하게 샘플링된 global rotation을 body에도 적용한다. 또한 hand root joint을 카메라의 optical axis로 변환한다.

Textures.

Object textures are randomly sampled from the texture maps provided with ShapeNet [4] models. The body textures are obtained from the full body scans used in SURREAL [66].

  • Object texture는 ShapeNet model과 함께 제공되는 texture map으로 부터 무작위로 샘플링되고, body texture는 SURREAL에서 사용된 full body scan에서 얻는다.

Rendering.

Background images are sampled from both the LSUN [72] and ImageNet [52] datasets. We render the images using Blender [3]. In order to ensure the hand and objects are visible we discard configurations if less than 100 pixels of the hand or if less than 40% of the object is visible. For each hand-object configuration, we render object-only, hand-only, and hand-object images, as well as the corresponding segmentation and depth maps.

  • Background image는 LSUN 및 ImageNet dataset에서 모두 샘플링되고, Blender를 이용하여 이미지를 렌더링한다. 손과 물체가 보이도록 하기 위해 손의 픽셀이 100 픽셀 미만일경우와 물체가 40% 미만으로 보일 경우 configuration을 버린다. 각 hand-object configuration에 대해, object-only, hand-only, hand-object image와 segmentation, depth map을 렌더링한다.

5. Experiments

5.1. Evaluation metrics

Hand error.

21개의 joint에 대해 mean end-point error (low)

Object error.

Symmetric Chamfer loss를 통해 object construction에 대한 accuracy 측정 (low)

Contact.

Penetration depth, Intersection volume (low), Simulation displacement (low)

5.2. Datasets

FHB

  • FHB_c 는 FHB dataset에서 물체와 손이 떨어져있는 이미지를 필터링한 데이터셋이다.

Hands in action dataset (HIC).

  • single hand object interacting sequence dataset. 여기에는 hand, object mesh가 제공된다.

5.3. Effect of occlusions

  • H-img, O-img는 unoccluded(즉, 가림이 없는) 이미지이다. 물론, train과 test을 전부 unoccluded image에 실행할 경우 성능이 가장 좋았지만, HO-image에 테스트할 경우 occlusion이 있는 dataset으로 부터 학습되었을 경우 성능이 가장 좋았다. 이는 occlusion을 사용한 학습이 hand-object configuration에 대한 reconstruction에 중요한 역할을 함을 보여준다.

5.4. Effect of contact loss

  • 위에가 quantitative result, 아래가 qualitative result이다. 아래부터 보면 contact loss를 사용하였을 때가 더 잘 생성했음을 볼 수 있다. (Fig. 5의 위쪽을 보면 penetration이 일어난 것을 볼 수 있음.) 그리고 위에는 weight를 동일하게 0.5로 두었을 때 결과가 더 괜찮았음을 볼 수 있음.

5.5 Synthetic to real transfer

  • 파란색은 FHB에서만 학습한 데이터이고, 주황색은 ObMan에서 pretrain 후에 FHB에서 fine-tuning한 model이다. 결과를 보면, real data의 비율이 줄어들 수록 효과가 더 커짐을 볼 수 있고, 전반적으로도 ObMan에서 pretrain한 model의 결과가 더 좋은것을 볼 수 있다.
  • HIC training set은 250개의 이미지로만 구성된다. Fig. 9에서 (a) 라고 하는 ObMan, (b)는 grasping tool을 이용하여 각 HIC의 object model에 대해 자동 grasp를 생성하고 (c)는 HIC training split에서 object, pose distribution을 사용하여 생성한다 그리고 HIC가 (d)이다. 이를 통해 실제 데이터의 target distribution에서 hand-object pose sampling의 중요성을 연구할 수 있다. 저자는 세 가지 dataset 모두에 대해 pre-training이 hand, object reconstruction에 유용하다는 것을 발견했다.(표를 보면 Synth2Real이 synthetic(초록색) 에서 pretrain 되었을 때 성능이 괜찮음.) 특히, (c)에 대한 pre-training이 SOTA였음.

5.6. Qualitative results on CORe50

  • ObMan에서 학습하고 CORe50에서 inference만 한 결과이다. 오른쪽에 빨간 박스는 잘 안된 케이스.

6. Conclusions

We presented an end-to-end approach for joint reconstruction of hands and objects given a single RGB image as input. We proposed a novel contact loss that enforces physical constraints on the interaction between the two meshes. Future directions include learning grasping affordances from large-scale visual data, and recognizing complex and dynamic hand actions.

  • single RGB image가 input으로 주어졌을 때 hand-object의 joint reconstruction을 위한 end-to-end 방식 제시하였다. 그리고 두 mesh간에 interaction에 물리적인 제약을 적용하는 새로운 contact loss를 제안했다. Future work로는 large-scale data에서 affordance(행동유도성)를 파악하고 복잡하고 동적인 손 동작을 인식하는 것이 포함된다.

  • 학부생 때 만든 것이라 오류가 있거나, 설명이 부족할 수 있습니다.

Uploaded by N2T