[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을 얻기 위해,

    1. FrankMocap을 사용하여 MANO param, camera param 얻음
    2. hand-obj가 항상 contact하고 있다고 가정,
      • 이 때, 단순한 pick & place task에서는 hand pose와 obj pose가 같이 움직인다는 점을 활용하여, hand pose(rot, trans)를 obj pose의 proxy값으로 사용
    3. 가능한 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되는 것을 막기 위해 아래와 같은 방법을 사용

  1. 모든 view에 대해서 일관되게 occupied or not occupied된 point만 사용 (오락가락 하는 point들은 무시)
  2. 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)

댓글남기기