GenRecon: Bridging Generative Priors for Multi-View 3D Scene Reconstruction

GenRecon: Bridging Generative Priors for Multi-View 3D Scene Reconstruction
  • 2605 arxiv
  • 뮌헨 공대와 화웨이 스위스
  • reconstruction without learned priors
    • colmap, mvs, nerf, monosdf, 3dgs 등
    • 특징은 이미지에 실제로 보이는 정보만 사용한다는 것
    • 장점: metric acc 좋고, hallucination 좋음
    • 단점: 안 보이는 영역은 못 채움, sparse view에는 약함, occlusion에 약함
  • reconstruction with learned priors
    • vggt, dust3r, mast3r, depth anything 3
    • 특징: 이미 학습된 geometry prior 사용 - feed forward로
    • 장점: 관측 부족한 부분도 어느정도 복원
    • 단점: 결국 regression이기 때문에, 진짜 안보이는 부분을 생성 못함
      • 멀티뷰라서 gt가 많음 → gt를 최대한 맞추는데 학습이 집중됨
  • generative prior 기반
    • trellis, hunyuan3d 등
    • 특징: 3d 생성 모델의 prior 사용
      • latent distribution을 학습하는 것이 목표
    • 기존 object level의 생성 모델을 scene level로 확장, multi view로 확장

Method

  • 전체 흐름

    image.png

    • 입력 이미지들에서 카메라 포즈와 sparse point cloud 얻기
      • colmap
      • 학습 시에는 posed rgb 이미지를 사용함 (camera intrinsics와 extrinsics 존재)
    • scene을 청크 단위로 분할
      • 이 청크는 해당 청크를 바라보는 입력 view의 집합과 연관됨
      • 청크끼리는 일부 겹침 → 경계를 자연스럽게 잇기 위함
      • Scene ├── Chunk 1 │ ├── Voxel │ ├── Voxel │ └── … ├── Chunk 2 │ ├── Voxel │ └── … └── …
    • DINO 피처 추출
      • 입력 이미지에서 피처를 추출함
    • 멀티뷰 피처를 3D로 lifting
      • voxel → camera projection → image pixel → DINO feature
    • multi-view aggregation
      • 여러 뷰의 피처를 하나로 합침
    • trellis에 conditioning
      • 본 연구에서는 single unposed image를 입력으로 받는 trellis를 scene recon에 맞게 조정함 → multi-view를 인식하도록
      • 기존 trellis는 image → cross attn → 3d generation
      • 3d condition grid → dit block마다 residual injection → flow denoising
      • residual injection
        • h (hidden vec) = h + condition
    • joint chunk generation
      • global latent → 개별 chunk들을 denoise → 겹치는 부분은 평균 → global latent update
      • Global latent

        ┌────┬────┬────┐ │ C1 │ C2 │ C3 │ ├────┼────┼────┤ │ C4 │ C5 │ C6 │ ├────┼────┼────┤ │ C7 │ C8 │ C9 │ └────┴────┴────┘

      • C1 → Trellis C2 → Trellis … C9 → Trellis
      • 각 결과를 원래 위치에 write back
    • mesh decode
      • 최종 latent를 trellis decoder에 넣어서 메쉬 생성
This post is licensed under CC BY 4.0 by the author.