[인공지능 응용] NeRF

그녕·2024년 4월 23일
1

AI

목록 보기
20/22

NeRF가 무엇인가?

물체를 찍은 여러장의 이미지를 입력받아 새로운 시점에서의 물체 이미지를 만들어내는 모델
3D 장면 생성하고 렌더링 하기 위한 신경망 기반의 컴퓨터 비전 기술이다.
연속적 함수를 최적화하여 복잡한 장면의 새로운 시점을 합성하는 최첨단 결과 달성 방법이다.

객체의 3D 모델을 생성하는 것이 아니라 객체를 바라보는 모든 시점의 장면을 생성하는 것이라고 볼수 있음

3D scene을 나타내기 위해 5D 함수를 사용한다.

입력으로는 3D위치와 물체가 향하는 방향으로 5차원 데이터가 들어가고 출력으로는 output 색인 RGB와 투명도의 역수인 Density가 나온다.

NeRF는 supervised learning 방식이므로 정답 데이터가 필요하다.

Volume Rendering

새롭게 생성하고 싶은 가상의 카메라 중심으로 ray를 받아 여러 점을 샘플링한다. RGB와 density합을 하나의 픽셀로 변환한다.
3D 공간을 ray를 따라가면서 색을 칠하는 작업

Positional encoding

MLP 입력의 위치, 방향 정보에 적용하여 고주파 정보를 더 잘 보존하기 위해 위치가 사용됨
고차원으로 임베딩하여 MLP가 더 정보활용을 잘함

Sampling

Hierachical Sampling- 광선 상에서 어떻게 포인트들을 샘플링 할지? => 균일한 간격으로 포인트 샘플링 하는 것이 아니라 일정한 간격으로 포인트들을 샘플링해서 각 구간내에는 랜덤하게 생성한다.
density가 클수록 더 많이 샘플링하여 추가 학습이 되도록 한다.

coarse sampling 하는 동안에 aliasing이 일어나면??
=> 2개의 NeRF를 학습하고 첫번째 coarse level은 lower resolution으로 두번째 fine level은 higher resolution을 통해 한다.

즉, ray 전체에서 sampling해서 학습하고 학습한 결과 바탕으로 밀도가 큰 부분만 골라서 다시 sampling하여 추가 학습함

0개의 댓글