Inverse Graphics

신희준·2026년 2월 21일

Inverse Graphics

목록 보기
1/15

https://scenerepresentations.org/courses/2023/fall/inverse-graphics/

Inverse Graphics란 무엇인가?

Scene

  • 3D Scene은 무엇인가?

  • Scene은 연속적인 모든 3d coord에 대해 존재하는 모든 properties를 의미한다.
    → materials, light sources, shape, color, …
  • Scene을 “관측”한다는 것은 3d scene의 projection을 눈이나 카메라로 보는 것을 의미한다.
    → light source로부터 나온 빛이 scene을 돌아다니면서 튕겨져서 눈이나 카메라에 들어오면 관측 가능한 것
  • 이때 3D의 기하학적 정보와 빛의 물리적 이동을 계산하여 2D 이미지로 투영하는 전체 과정이 rendering 이다.

Graphics & Inverse Graphics

Graphics

  • 3D scene이 주어지고 Camera pose를 알 때, 이미지를 만들어내는 것 (rendering).
    ☑️ CG는 물리적 법칙을 설명하는 rendering equation을 최대한 간단하게 잘 표현하려는 방향으로 발전함.

Inverse Graphics

  • 2d 이미지가 주어졌을 때, 3D scene과 camera pose를 구해내는 것
    ☑️ 근데 여기서 pose는 COLMAP으로 구할 수 있다고 생각해도 ok.

  • 그러면 아래와 같이 생각할 수 있음.

  • 이 복잡한 3D Inverse Graphics 문제를 풀기 위해서는 아래의 네 가지 설계 요소를 잘 생각해야 한다.
    • Field Parameterization
    • Geometry & Appearance Model
    • Forward Map
    • Inference Method

Field Parameterization = 3D Scene Representation

  • Inverse Graphics에서는 2d 이미지들로부터 3d scene을 만들어낸다고 했다.
    ➡️ 3d scene은 Inverse Graphics의 output이다.
  • 그러면 이 3d scene이란건 어떻게 표현되는걸까?

  • 결국 3D Scene Representation은 아래와 같은 질문에 관한 것이라고 생각한다.

3D 공간의 정보를 수학적 함수나 데이터 구조로 어떻게 표현할 것인가?

  • Explicit 한 방법

    • Mesh
    • Point Cloud
    • Voxel Grid
    • *3D Gaussian
  • Implicit 한 방법

    • SDF
    • Neural Fields

Geometry & Appearance Model

  • 3d scene representation이 정보를 담을 그릇의 형태를 의미한다면, 이 부분은 실제로 그 그릇안에 어떤 내용을 채울 지에 관한 것.

우리가 만든 3D Scene Representation의 각 위치(point)는 어떤 물리적 상태와 색상 정보를 가지고 있는가?

  • Geometry
    • 물체가 공간을 어떻게 차지하고 있는지, 형태의 물리적인 경계를 정의
    • 주요 표현 값
      • Density function: 이 위치에 물질이 얼마나 꽉 차있는지
      • Occupancy: 이 위치가 빈 공간(0)인지 물체가 있는 곳(1)인지
      • SDF : 이 위치에서 물체의 표면까지 거리가 얼마나 되는가
      • 3D gaussian splat에서는 Position / Covariance 등으로 표현
  • Appearance
    • 물체가 빛과 상호작용하여 우리 눈에 어떻게 보이는지를 정의
    • 주요 표현 값:
      • Radiance / RGB: 빛이 반사되어 눈에 들어오는 최종 색상
      • BRDF / PBR Parameters: 빛이 표면에서 어떻게 반사되는지 수학적으로 정의한 물리 기반 속성
      • Illumination: 주변의 조명 상태나 그림자
      • 3D gaussian splat에서는 Spherical Harmonics 활용

➡️ 위의 예시 방법론에서는geometry는 SDF, appearance는 radiance로 정의하겠다!

Forward Model & Inference Model

  • Forward Model은 3d scene 공간에서 어떻게 이미지를 만들어낼지에 대한 모델 = rendering
  • Inference Model은 forward model을 통해 얻은 이미지를 활용하여 어떻게 3d scene을 효율적으로 찾아낼 수 있을지에 대한 모델 = inverse rendering

“Observable”한 variables (pixel color)가 주어졌을 때, 미분 가능한 forward model (renderer)를 만들어서, 이를 통해 “Unobservable”한 latent variables (geometry, appearance)를 estimate하자!

  • 3d scene을 학습을 통해 최적화하기 위해 미분 가능한 forward model (differentiable rendering)을 활용

✅ 3D scene model을 가정하고 이미지를 만든 다음, 실제 이미지와 비교하여 그 차이를 통해 Scene model을 조금씩 수정해나가는 방식을 사용

General Structure of renderers

  • 일반적인 Implicit 모델의 경우, 이 Renderer는 ray를 따라 point를 sampling하고, 이 point를 network에 입력하여 얻은 값들을 적분하여 최종 ray의 색을 얻음.
    ☑️ 이 point를 sampling하고 적분하는 방법에 따라 sphere tracing, volumetric rendering 등으로 구분
    ☑️ 그리고 geometry model에 따라서 rendering 방식도 달라짐
    • sphere tracing → sdf
    • volumetric rendering → Density model

  • 3D Gaussian splatting같은 경우에는 differentiable rasterization을 활용
  • 결국 volume rendering과 같은 원리긴 하지만, 기존 implicit 모델이 ray를 쏘아 무수히 많은 점을 sampling했던 반면에, 3DGS는 빈 공간은 계산하지 않고, ray 위에 존재하는 3D 가우시안들만 2D 화면에 투영시키고 그 weighted sum으로 최종 색을 결정하는 식.

☑️ 이게 가능한 이유는 gaussian이 affine transform (world2cam)과 integration (splat?)에대해 closed기 때문.
→ ray color에 대한 해당 가우시안의 기여도 값을, 그냥 projection된 2d gaussian으로 정의되는 수식으로 바로 구할 수 있음

☑️ 실제 구현 시에는 3d 가우시안을 일단 2d 화면에 전부 투영 시키고 (splat), 특정 픽셀에 겹쳐져 투영된 2d 가우시안을 통해 weighted sum 수행

☑️ 이러한 방식 덕분에 3DGS가 NeRF에 비해서 랜더링 속도가 압도적으로 빠름.

Example : NeRF

  • NeRF를 표현하자면 아래와 같이 표현할 수 있다.

  • 이후 많은 연구들이 나왔고, 각 설계 요소를 발전시키는 방향으로 발전해왔다.
  • 예를 들어 Scene Representation (Field Parameterization)에 대해 아래와 같은 발전
    • Voxel Grid → Plenoxels (Yu et al. 2022)
    • Voxel Grid + Hashmap + MLP → InstantNGP (Muller et al. 2022)
    • Point cloud + MLP → PointNeRF (Xu et al. 2022)

Example : 3DGS

  • 아래는 내가 생각한 3DGS의 설계 요소이다.

마치며..

  • 3DGS는 매우 빠른 랜더링 속도와 높은 퀄리티를 바탕으로 3D 비전 및 그래픽스 분야의 새로운 표준으로 자리 잡음.

  • 실시간 랜더링이 필수적인 다양한 분야에서 벌써부터 많이 활용되고 있음.

  • 앞으로는 3DGS가 어떻게 발전하고 있는지를 열심히 살펴보도록 하자.

https://mrnerf.github.io/awesome-3D-gaussian-splatting/

profile
공부하고 싶은 사람

0개의 댓글