Abstract
Given a hand mesh and an object mesh, a deep model trained on ground truth contact data infers desirable contact across the surfaces of the meshes. Then, ContactOpt efficiently optimizes the pose of the hand to achieve desirable contact using a differentiable contact model.
- Hand, Object mesh가 주어지면 GT contact data로 학습된 deep model이 mesh 표면에 걸쳐 바람직한 접촉을 추론한다. 그런 다음 ContactOpt는 differentiable contact model을 사용하여 원하는 접촉을 달성하기 위해 손의 자세를 효율적으로 최적화한다.
1. Introduction
As shown in Figure 1, ContactOpt consists of two main components, DeepContact and DiffContact. DeepContact is a network that takes the hand and object meshes as input and estimates regions of likely contact. DiffContact is a differentiable function that takes the hand and object meshes as input and outputs contact based on current geometry. ContactOpt uses gradient-based optimization to find pose, translation, and rotation parameters for the MANO hand model [41] that improve the match between current contact from DiffContact and target contact from DeepContact.
- Fig. 1과 같이 ContactOpt는 DeepContact와 DiffContact의 두 가지 main component로 구성된다. DeepContact는 hand, object mesh를 input으로 사용하고 접촉할 가능성이 있는 영역을 추정하는 네트워크이다. DiffContact는 hand, object mesh를 input으로 하고 현재 geometry를 기반으로 접점을 output으로 하는 differentiable function이다. ContactOpt는 DiffContact으로부터의 현재 접촉과 DeepContact으로부터의 target contact 사이의 일치를 개선하는 MANO model의 파라미터를 찾기위해 gradient-based optimization을 사용한다.
We conducted two types of evaluations to assess ContactOpt’s performance. For the first type of evaluation, we evaluated ContactOpt’s ability to refine hand pose estimates with small inaccuracies in dataset annotations. This presents methodological challenges due to limits in the precision of dataset ground truth annotations. To overcome this, we used the ContactPose dataset, which has both pose estimates and measured contact data obtained via thermal imagery. We had ContactOpt refine these hand pose estimates with respect to ground truth contact. The refined hand poses better matched ground truth contact and were preferred by human participants, demonstrating that ContactOpt can improve state-of-the-art pose estimates from existing datasets.
- ContactOpt의 성능을 평가하기 위해 두 가지 유형의 평가를 수행했다. 첫 번째 유형의 평가를 위해 dataset annotation이 약간 부정확한 경우에 hand pose estimate를 refine하는 ContactOpt의 능력을 평가했다. 이는 dataset GT annotation의 정확도의 한계로 인한 방법론적 문제를 나타낸다. 이를 극복하기 위해 ContactPose dataset을 사용하였는데 이는 열화상 카메라를 통해 얻은 pose와 contact data를 포함하고 있다. 저자는 ContactOpt가 GT contact과 관련하여 이러한 손 포즈 추정치를 개선하도록 했다.
For the second type of evaluation, we evaluated ContactOpt’s ability to refine hand pose estimates with large inaccuracies. We used ContactOpt to refine hand pose estimates from an existing RGB hand pose estimation network (Hasson et al. [19]) applied to the HO-3D dataset [17]. ContactOpt’s refined hand poses had lower kinematic error, were preferred by human participants, and matched more closely to previously observed hand contact patterns (Figure 2). ContactOpt also outperformed RefineNet [51] (an end-to-end grasp refinement network) with respect to both measures. This demonstrates ContactOpt’s value as a post-processing stage for existing hand-object pose estimation algorithms for which it has not been specifically trained. Since ContactOpt operates on hand and object meshes, it has the potential to improve the output of recent image-based estimation methods while avoiding some types of generalization issues associated with operating on images.
- 두 번째 유형의 평가에서는 매우 부정확한 손 포즈의 추정치를 개선하는 ContactOpt의 능력을 평가한다. 저자는 HO-3D dataset에 적용된 기존 RGB hand pose estimation network(Leveraging photometric consistency over time for sparsely supervised hand-object reconstruction.)에서 손 포즈 추정을 개선하기 위해 ContactOpt를 사용한다. 이는 특별히 학습되지 않은 기존 손 물체 포즈 추정 알고리즘에 대한 post-processing 단계로서 ContactOpt의 가치를 보여준다. ContactOpt는 hand, object mesh에서 작동하기 때문에 이미지 작업과 관련된 일부 유형의 일반화 문제를 피하면서 최근 image-based estimation method의 output을 개선할 가능성이 있다.
Contribution
We show that methods that explicitly consider hand-object contact can improve hand pose estimates at both coarse (≈cm) and fine (≈mm) spatial scales, resulting in improved visual realism and lower kinematic error.
- 본 논문은 hand-object contact를 명시적으로 고려하는 방법이 coarse, fine spatial scale 모두에서 hand pose estimates를 개선할 수 있고 이는 visual realism을 개선하고 kinematic error를 감소시킬 수 있음을 보여준다.
We present DeepContact, a deep network that estimates where contact is likely to occur across the surfaces of inaccurately aligned hand and object meshes.
- 부정확하게 정렬된 hand, object mesh의 surface에서 접촉이 발생할 가능성이 있는 곳을 추정하는 deep network인 DeepContact를 제시한다.
We present DiffContact, a differentiable contact model that estimates where contact is occurring between hand and object meshes.
- Hand, Object mesh 사이에서 접촉이 발생하는 위치를 추정하는 differentiable contact model인 DiffContact를 제시한다.
3. Methods
We represent the grasp with an object mesh and a MANO hand mesh . is described by parameters , consisting of pose, shape, translation, and rotation w.r.t. the object respectively. Pose θ is represented as a 15-dimensional PCA manifold, which lowers the high-dimensional joint angle representation to a compressed space of typical hand poses. Given a noisy estimate of (which typically comes from an image-based algorithm), we seek a better grasp by exploiting the hand-object contact information. Figure 1 shows an overview of our approach.
- 저자는 grasp를 object mesh와 MANO hand mesh로 표현한다. 는 parameter 로 표현되는데, 이는 object 각각에 따라 hand의 pose, shape, translation, rotation parameter이다. Pose 는 15-dimension PCA manifold로 표현되어 high-dimensional joint angle representation을 일반적인 hand pose의 압축된 space로 낮춘다. (일반적으로 image-based algorithm에서 파생됨)에 대한 noisy estimation이 주어지면 hand-object contact 정보를 활용하여 더 나은 grasp를 찾는다. Fig. 1은 network의 overview를 나타낸다.
3.1. DeepContact: Learning to Estimate Contact
Given an object mesh and and hand mesh with potentially inaccurate pose , DeepContact learns to infer target contact on the hand and object . We represent the meshes H and O as point clouds, and use PointNet++ [38] to predict contact. The object point-cloud contains 2048 points randomly sampled from the object. The hand point cloud contains all 778 vertices of the MANO mesh. The “mesh” features capture distances from the hand to the object, as well as normal information. Additionally, we include a binary per-point feature indicating whether the point belongs to the hand or the object. The network predicts contact as a classification task, where the range [0, 1] is split into 10 bins. We train DeepContact with the standard binary cross-entropy loss.
- Object mesh 와 잠재적으로 부정확한 pose 가 있는 hand mesh 가 주어지면 DeepContact는 hand 와 object 의 target contact를 추론하는 방법을 학습한다. 저자는 mesh H와 O를 point cloud로 표현하고 PointNet++를 사용하여 contact을 예측한다. Object point-cloud는 object에서 무작위로 샘플링된 2048개의 point를 포함한다. Hand point cloud는 MANO mesh의 778개 vertex를 모두 포함한다. “Mesh” feature는 손과 물체사이의 distance와 normal 정보를 캡처한다. 또한 point가 hand에 속하는지 object에 속하는지를 나타내는 binary per-point feature를 포함한다. Network는 contact을 classification task로 예측하는데, [0, 1]까지의 범위를 10개의 bin으로 분할시키는 작업이다. DeepContact는 standard binary cross-entropy loss로 학습한다.
Similarly to GrabNet [51], we train this module on a dataset of randomly perturbed hand poses from the ContactPose dataset, which we call Perturbed ContactPose. The hand mesh is modified by adding noise to the parameters cm, and . Object contact is supervised with ground-truth thermal contact from ContactPose. To generate the target hand contact map, we run DiffContact (section 3.2). By applying multiple perturbations to each grasp, a training/testing split of 22K / 1.4K grasps is generated. Figure 3a shows example perturbations, and Figure 3b shows an example contact prediction. Hand and object poses that are farther from a particular grasp tend to result in larger and more diffuse areas of predicted contact.
- GrabNet과 유사하게, 저자는 논문에서 Perturbed ContactPose라고 부르는 ContactPose dataset에서 무작위로 교란된 hand pose dataset에서 이 module을 학습한다. Hand mesh는 각 parameter에 noise를 추가하여 수정된다. (noise의 식은 수식과 같음.) Object contact은 ContactPose의 GT로부터 supervised하게 학습된다. Target hand contact map을 생성하기 위해 DiffContact를 실행한다. 각 grasp에 교란을 적용하여 22K / 1.4K 의 training/testing split를 생성한다. Fig. 3(a)는 교란의 예를 보여주고, Fig. 3(b)는 contact prediction의 예시를 보여준다. 특정 grasp에서 더 멀리 떨어져 있는 hand, object pose는 예상 접촉의 더 크고 확산된 영역을 초래하는 경향이 있다.
- Fig. 3
a) Perturbed ContactPose로 부터의 여러 hand pose.
b) Top : DeepContact는 마치 정렬된 것 처럼 hand, object의 contact map을 예측한다. Bottom : GT pose 및 열 접촉
c) 사람의 손가락이 물체에 접촉할 때 point contact은 거의 없다 (i). 더 일반적으로 손가락의 연조직은 surface (ii)와 일치하여 접촉 면적이 넓다. MANO mesh는 surface와 일치하도록 locally하게 변형되지 않지만 2mm만큼 표면 내부안에 있는 경우에도 vertex를 접촉하는 것으로 표시하여 optimizer가 일치하는 영역 기반 접촉을 생성하도록 할 수 있다 (iii).
3.2. DiffContact: Differentiable Contact Model
DiffContact estimates the contact maps, and , based on the current meshes . This is done in a differentiable way, allowing optimization of the hand parameters . We propose a contact model using virtual capsules, as shown in Figure 4a. Our virtual capsules have useful attraction extended beyond the surface (which a binary proximity would not) and approximate soft hand tissue deformation.
- DiffContact는 현재 mesh 를 기반으로 contact map and 을 추정한다. 이것은 미분 가능한 방식으로 수행되어 hand parameter 를 최적화한다. 저자는 Fig. 4(a)와 같이 가상 캡슐을 사용하는 접촉 모델을 제안한다. 논문의 가상 캡슐은 surface 너머로 확장된 유용한 attraction과 대략적인 손 연조직 변형을 가지고있다.
More concretely, we place a virtual capsule at every object vertex and orient it along the object surface normal . This capsule has a principal line segment defined by . Let be the Euclidean distance from a 3D point x to this line segment. The contact is defined to be uniformly 1 for points such that and falls off proportionally with distance outside as . Let be the hand vertex at pose with the smallest distance to the object vertex . The contact value at the object vertex is expressed as:
The same procedure can be used to calculate the contact map on the hand surface. We choose an asymmetric such that the region considered “in contact” extends farther inside the mesh than outside, which approximates soft hand tissue deformation as shown in Figure 3c. In our experiments, = 0.5 mm, = 1 mm, and = 1 mm. As the total capsule depth inside the object is = 2 mm, this conservatively matches the 2−3 mm finger pad deformation found in the biomechanics literature [6, 13].
- 구체적으로, 저자는 모든 object vertex에 가상 캡슐을 배치하고 object surface normal을 따라 방향을 지정한다. 이 캡슐에는 로 정의된 주요 선분이 있다. (hand vertex와 normal사이의 가장 가까운 유클리디안 거리) 를 3D 점 x에서 이 선분까지의 euclidean distance라고 하자. 접점은 (캡슐의 가로길이) 인 점에 대해 균일하게 1로 정의되고 외부의 거리에 비례하여 로 나눠진다(거리가 멀어짐으로써 contact value가 낮아짐.). 가 object vertex 와의 거리 가 가장 작은 pose P에서의 hand vertex라 하자. 그러면 object vertex 에서의 contact value는 다음과 같다. (캡슐 안에 들어갈 경우(normal과 hand vertex 사이의 가장 가까운 거리가 보다 작을때)에는 1, 그 외에는 함수값)
- 동일한 절차를 사용해 hand surface의 contact map을 계산할 수 있다. 저자는 비대칭 값 ()을 선택하여 “접촉”으로 간주되는 영역이 외부보다 mesh 내부로 더 확장되도록 하며, 이는 Fig. 3(c)와 같이 연조직 변형을 근사화한다. 실험에서 = 0.5 mm, = 1 mm, and = 1 mm로 세팅하였다.
Figure 4b shows an example of object contact computed with this model. Because the generated contact has a gradual dropoff, this provides gradients for optimization. Additionally, the resulting contact maps have diffuse edges, which appear visually similar to thermal contact maps [3, 5]. The generated contact is an area instead of a single point.
- Fig. 4b는 이 모델로 계산된 object contact의 예를 보여준다. 생성된 접촉에는 점진적인 감소가 있기 때문에 optimization을 위한 gradient가 제공된다. 또한 결과 접촉 맵에는 열 접촉 맵과 시각적으로 유사한 가장자리가 생긴다. 생성된 접점은 단일 점이 아닌 영역이다.
중간 정리
DeepContact란?
→ 정렬이 안된 hand, object mesh의 surface에서 접촉이 발생할 가능성이 있는 곳 추정.
→ Hand, Object의 target contact map을 추론하는 방법 학습. // and
→ 즉, DeepContact로 부터 만들어진 target contact map을 pseudo GT처럼 쓰는 방법인 것 같음.
DiffContact란?
→ Hand, Object mesh 사이에서 접촉이 발생하는 위치 추정.
→ 현재의 mesh를 기반으로 contact map을 추정. (계속 바뀜.) // and
전반적으로, DeepContact과 DiffContact으로 부터 얻어진 contact map간의 consistency를 이용하는 내용인데 이는 ICCV’21의 Hand-Object Contact Consistency Reasoning for Human Grasps Generation와 비슷함.
3.3. Contact Optimization
To align the meshes, the hand mesh parameters are iteratively optimized (Figure 4c) to minimize the difference between the current contact maps computed using DiffContact, and the target contact maps as predicted by DeepContact, or from ground truth thermal contact. The contact loss for the object surface is:
- Mesh를 정렬하기 위해 hand mesh parameter 는 Fig. 4(c) 처럼 DiffContact을 통해 계산된 현재 contact map 과 DeepContact로 부터 예측된 target contact map 또는 GT 열화상 접촉간의 차이를 최소화 하도록 iterative하게 optimize 된다. Object surface에 대한 contact loss는 다음과 같다.
Here we use λ > 1 to penalize “missing” contacts (where the target contact is higher than the value estimated by DiffContact) more heavily than “unexpected” contacts. This is based on the empirical observation that it is visually worse for the hand to “hover” over the object than to be slightly interpenetrating. We apply a corresponding loss to penalize differences between the target hand contact map and . We use λ = 3 in both cases.
- 여기서 λ > 1을 사용하여 “예상하지 않은” 접촉보다 “누락된” 접점(target contact value가 DiffContact로 부터 예측된 contact value보다 높은 경우)에 페널티를 준다. 이것은 약간 interpenetration이 발생하는 것보다 손이 물체 위를 “맴도는” 것이 시각적으로 더 나쁘다는 경험적인 관찰을 기반으로 한다. Target hand contact map과 Diffcontact로 부터 얻어진 contact map 간의 차이에 페널티를 주기 위해 이에 대한 loss 를 적용한다. 두 경우 모두 λ = 3 을 사용한다.
We also include an explicit penetration term that penalizes penetrations beyond . For each object vertex , object surface normal , and nearest hand vertex , the penetration loss is defined as
where = 2 mm. The final loss is
- 추가적으로, (길이, 여기서는 2mm 사용.)너머의 penetration에 페널티를 주는 explicit penetration loss도 사용하였다. 각 object vertex , object surface normal , 가장 가까운 hand vertex 에 대해, penetration loss는 다음과 같이 정의된다. (위와 같이 정의하면 hand vertex가 object 안에 있을 때만 내적값이 양수로 나오고, 2mm이상 penetration된 부분만 페널티를 적용하게 된다.)
Random restarts.
Since the contact optimization is local, a poor initialization (e.g. initial hand position on the wrong side of an object) can result in the optimizer settling into a bad local minimum. We avoid this by applying the pose optimization to several perturbations of the provided pose and select the result with the lowest loss.
- Contact optimization이 local이기 때문에, 잘못된 initialization(object의 잘못된 쪽에 initial hand 위치하는 것)에 의해 최적화 프로그램이 잘못된 local minima로 설정될 수 있다. 저자는 제공된 pose의 여러 교란에 포즈 최적화를 적용하여 이를 피하고 손실이 가장 적은 결과를 선택한다.
4. Evaluation
Dataset
→ ContactPose, HO-3D
Metric
- Intersection Volume () → (low)
- Hand, Object mesh가 얼마나 겹쳐져있는지
- Mean Per-Joint Position Error (MPJPE) (mm) → (low)
- joint별 kinematic error
- Contact Coverage (%) → (high)
- Object surface로부터 2mm 사이에 있는 hand vertex의 백분율
- Contact Precision/Recall (%) → (high)
- Refined hand mesh의 contact이 열화상 contact map과 얼마나 잘 일치하는지
- Perceptual Evaluation (%) → (high)
- 사람한테서 어떤게 더 그럴듯한지 평가
4.1. Refining Small Inaccuracies
We use the ContactPose dataset to evaluate the ability of ContactOpt to improve poses with small inaccuracies. Despite using high quality sensors, errors on the centimeter-level are not uncommon (Figure 5). However, millimeters of Euclidean error can result in a physically implausible grasp. ContactOpt can be used to resolve these types of errors when applied to already high-quality poses provided by dataset annotations.
- 저자는 ContactPose dataset을 사용하여 약간의 부정확성을 가진 포즈를 개선하는 ContactOpt의 능력을 평가한다. 고품질 센서를 사용함에도 센티미터 수준의 오류는 드문일이 아니다.(Fig. 5) 그러나 밀리미터의 유클리디안 에러는 물리적으로 이해하기 어려운 결과를 초래할 수 있다. ContactOpt는 dataset annotation에서 제공하는 이미 고품질 포즈에 적용될 때 이러한 유형의 오류를 해결하는 데 사용할 수 있다.
Refining ContactPose Dataset Poses
- Qualitative results와 Quantitative results를 보면 ContactPose GT보다 ContactOpt로 refine한 결과가 더 성능이 높음을 알 수 있다. 또한 Perceptual Evaluation 또한 상당히 괜찮아진 것을 볼 수 있다.
- Fig. 6을 보면 SDF기준으로 [-2,2]mm에 있는 부분이 증가하는 동안 비현실적인 inter-penetration은 대부분 제거되었다.
4.2. Refining Large Inaccuracies
4.2.1 Refining Perturbed ContactPose
- 이 섹션에서는 MPJPE가 ~80mm인 포즈가 포함된 Perturbed ContactPose에서 전체 ContactOpt 파이프라인을 테스트한다. 이것은 큰 오류가 있는 손 포즈를 개선하는 능력을 테스트한다. 여기서 보면 심하게 잘못 정렬되어있는 손 포즈에서 초기화되었음에도 MPJPE를 거의 70%까지 줄일 수 있음을 볼 수 있다.
4.2.2 Refining Image-Based Pose Estimates
[19](Leveraging photometric ~, Hasson)의 network를 baseline으로 사용하였다.
- Baseline, RefineNet(GRAB datasets에서 학습한 end-to-end model)ContactOpt를 사용해서 refine한 결과가 가장 낮은 MPJPE와 Perceptual Score를 달성함을 볼 수 있다.
Ablating Random Restarts
- 무작위 재시작에 대한 결과이다. 최적화 물체의 non-convexity로 인해 translation에 대한 교란으로 random initialization을 수행하면 ContactOpt의 성능이 향상된다. (이는 아까 Perturbed ContactPose의 여러 자세로 무작위 초기화를 수행하는 것 같다.) 예) 손이 물체 내부에 “붙어 있는” 경우와 같이 local minima에서 복구하기 위해 최적화는 임의의 교란된 데이터로 여러 번 초기화된다.
5. Conclusion
We introduce ContactOpt, a method to refine coarsely aligned hand and object meshes. DeepContact estimates likely contact on both the hand and the object. DiffContact then estimates contact based on the current mesh pose. The error between these two estimates is used to optimize hand pose to achieve the target contact. We show that ContactOpt is able to improve both dataset-quality meshes when ground truth thermal contact is provided, as well as pose estimations from images, even when tested on a novel object set. In our experiments, optimized grasps achieved lower kinematic error and were preferred by human evaluators.
- 본 논문에서는 coarse하게 정렬된 hand, object mesh를 다듬는 방법인 ContactOpt를 소개한다. DeepContact는 손과 물체의 접촉 가능성을 추정한다. 그런 다음 DiffContact는 현재 mesh pose를 기반으로 접촉을 추정한다. 이 두 추정치 간의 오차는 target contact을 달성하기 위해 hand pose를 최적화하는 데 사용된다. 저자는 ContactOpt가 GT 열 접촉이 제공될 때 datasets-quality(데이터셋 수준의 퀄리티가 있는) mesh를 모두 개선할 수 있을 뿐만 아니라 새로운 Object set에서 테스트한 경우에도 이미지의 포즈 추정을 개선할 수 있음을 보여준다. 실험에서 최적화된 grasp는 더 낮은 kinematic error를 달성했으며 평가하는 사람들에 의해 선호되었다.
Uploaded by N2T