[네부캠] Week5 - 3D Understanding

오홍석·2024년 9월 6일
0

네부캠

목록 보기
23/28

학습 내용


왜 3차원이 중요할까?

  • AI는 3D 공간인 실제 세계에서 동작한다.
  • 로봇, 자율주행, 게임, 의료 서비스 등등 중요한 영역이 너무 많다.
  • 그렇기 때문에 3D 공간에 대한 이해와 활용이 중요하다.

Structure from Motion (SfM)

  • 2차원 영상으로부터 3차원 정보를 추출하여 3D로 재구성하는 알고리즘을 이야기한다.
  • image들로부터 특징점을 추출하여 각각을 매칭시켜준다.
  • 그 이후 SfM 알고리즘을 통해서 3D 공간상에서의 좌표로 구성된다.
  • 초기에는 2-view로 진행하다가 N-view로 늘어날 수 있다.

3D data Representation

  • Multi view image
    • 여러 각도에서 객체를 촬영한 이미지
  • Volumetric
    • 3D 객체를 격자로 나누어서 3D space 차지 정도를 나타난 형태
  • Part assembly
    • 객체의 기본적인 부분을 나눠서 표현한 형태
  • Point Cloud
    • 3D 공간 상에 위치한 포인트들의 집합
  • Mesh
    • Point Cloud 의 점들을 삼각형과 사각형의 형태로 선으로 연결한 형태
  • Implicit shape
    • 고차원의 함수

3D Reconstruction

NeRF (Neural Radiance Fields)

  • 객체의 3D 모델을 생성하는 기술이 아니라, 객체를 바라보는 모든 장면을 생성하는 Novel View Synthesis 기술이다.
  • 여러 시점에서 촬영된 이미지를 이용해서 촬영되지 않은 각도에서의 view를 만들어내 마치 3D 렌더링이 된 것처럼 볼 수 있게 하는 것이다.
  • 연속적인 공간에 대한 표현을 사용하기 때문에 view의 이동이 자연스럽다.
  • 컬러값 뿐만 아니라 volume density까지 추정하므로 더욱 사실적인 결과를 출력한다.
  • x,y,zx,y,z
    • 3차원 공간상의 좌표
  • θ,ϕ\theta, \phi
    • 카메라가 바라보는 방향
  • R,G,BR, G, B
    • 색상값
  • σ\sigma
    • 투명도의 역수인 밀도값
  • MLP 입력단에서 위치 정보가 입력되면 5번째 layer에서 한 번더 concat해서 입력되어진다.
  • skip connection의 일종으로 볼 수 있다.
  • 9번째 layer에서는 density(σ)(\sigma)가 출력된다.
  • 여기서 방향 정보가 입력되면서 최종적인 RGB값이 출력되는 것이다.
  • MLP를 통해서 얻은 색상값과 밀도값을 바탕으로 실제 이미지와 비교하며 loss를 계산하여 학습을 진행한다.

    σ\sigma의 경우 물체가 해당 위치에 존재하는지에 대한 값이므로 방향 정보와는 전혀 관계가 없으므로 위치정보를 바탕으로만 예측이 이루어진다.
    하지만 RGB값의 경우에는 바라보는 방향에 따라 색상값이 변경될 수 있으므로 마지막 layer에서 방향 정보를 추가하여 예측한다.

Volume Rendering

  1. 생성하고자 하는 view의 가상 카메라 중심으로부터 객체를 향해 ray를 쏴, ray위의 여러 포인트들을 샘플링
  2. MLP를 통해서 해당 좌표의 RGB, density 값을 예측 (객체가 없으면 density값이 낮고 있으면 높다.)
  3. ray위의 샘플링된 모든 포인트들의 RGB, density 값을 다시 바라보는 시점으로 projection
  4. 수식을 통해 최종 컬러값을 계산한다.

    수식에서 T(t)T(t)를 Accumulated transmittance라고 하는데 이는 ray가 해당 포인트에 도달할 확률이기 때문에 먼저 만나는 객체의 color에 더 많은 가중치를 갖는다.


3D Gaussian Splatting (3DGS)

  • 3D 가우시안을 통한 장면 표현과 실시간 미분 가능한 렌더러를 결합한 것이다.
  • 장면 최적화와 새로운 시점을 생성하는 것 모두 상당한 속도 향상을 제공한다.
  • 가우시안 분포를 사용해 장면을 표현하고, 이러한 장면을 합쳐서 시각적 정보를 생성한다.

DreamFusion

  • text를 이용해서 3D를 생성하는 중간에 Diffusion을 통한 2D image 생성과정이 포함된다.
  • Diffusion + NeRF인 개념이다.
  1. 랜덤하게 카메라 시점과 light 값을 샘플링하여 랜더링
  2. 노이즈 추가
  3. Diffusion Model에서 노이즈 예측
  4. 역전파를 통한 학습
profile
기동코딩

0개의 댓글