[Title] 3D Reconstruction of Objects in Hands without Real World 3D Supervision
[Keyword] 3D Object shape reconstruction, Occupancy network, Discriminator
[Journal] ECCV, 2024
[arXiv] https://arxiv.org/pdf/2305.03036
[Summary]
- 2D monocular video → occupancy network 학습
- self-occluded part → ObMan으로부터 shape prior 학습 (Discriminator)
1. Intro
- 3D GT shape이 포함된 in-the-wild dataset이 없음. 있더라도 해당 dataset에 등장하는 obj의 카테고리는 한정적임
- but, in-the-wild video와 방대한 양의 3D obj catalog는 쉽게 구할 수 있음. → 이 둘을 잘 연결시켜줄 수만 있다면 방대한 양의 3D GT obj shape을 갖는 in-the-wild 데이터셋을 만들 수 있지 않을까?
- in-the-wild video : realistic한 hand↔obj interaction이 담겨있지만 직접적인 3D supervision을 걸어줄 수는 없음
- 3D obj catalog : 3D shape에 대한 supervision을 걸어줄 수는 있으나, dynamic hand-obj interaction 학습 불가
- 이를 위해 2D img에 대해 occupancy network를 학습하고(category-agnostic), 부족한 부분은 shape prior를 사용하자!
2. Method
2-1) occupancy network
-
Get GT occupancy label
-
in-the-wild 2D image로부터 GT occupancy label을 얻기 위해,
- FrankMocap을 사용하여 MANO param, camera param 얻음
- hand-obj가 항상 contact하고 있다고 가정,
- 이 때, 단순한 pick & place task에서는 hand pose와 obj pose가 같이 움직인다는 점을 활용하여, hand pose(rot, trans)를 obj pose의 proxy값으로 사용
- 가능한 3D point x에 대해 2D img로 projection 시켜서 obj mask 안에 있으면 occupied (1), 그렇지 않으면 not occupied (0)으로 labeling
- 이 때, FrankMocap으로 얻은 camera param이 정확하지 않기 때문에 point x가 몇몇 view에서는 obj mask 안에 들어오지 못할 수도 있음.
- 또한, hand에 의한 self-occlusion으로 인해 occupied된 point임에도 불구하고 hand-mask 영역에 포함될 수도 있음
- 이러한 point들이 not occupied로 labeling되는 것을 막기 위해 아래와 같은 방법을 사용
- 모든 view에 대해서 일관되게 occupied or not occupied된 point만 사용 (오락가락 하는 point들은 무시)
- mano vertex, hand mask 위에 proj된 point들은 거름
- Train
- 각 point에 대한 occupancy network F의 output이 gt occupancy label과 같아지도록 학습
- 이 때, 다른 view들과 consistency를 맞춰주기 위해, 서로 다른 view i&j에 대한 output이 같아지도록 reg term 추가
2-2) Discriminator
- 2D Slice based 3D Discriminator as Shape Prior
- Discriminator 학습을 위해 NNN의 point에 대해 매번 sampling을 진행하는 것은 computationally expensive하고, 비효율적임
- 따라서 가상의 2D plane 위의 point에 대해서만 obj shape sampling → Discirminator 학습
- Train
- $S^{gen}$ → sampled point에 대해 network F로부터 얻은 occupancy value
- $S^{real}$ →network F를 ObMan에 대해 overfitting 시킨 뒤, 해당 network로부터 얻은 occupancy value
- Loss
- Discirminator가 $S^{real}$과 $S^{gen}$을 잘 구별할 수 있도록 traditional adversarial loss를 걸어 줌.
- 이 때 discriminator를 속여주는 reg term $ \mathcal{L}^{\mathcal{F}}_{adv} $ 을 추가하면 더 real한 sample을 얻을 수 있음
- ($\mathcal{L}^{\mathcal{F}}_{adv}$을 만족하기 위해 occupancy network는 점점 더 shape prior와 비슷한 occupancy value estimate)
댓글남기기