본문 바로가기
AI/NeRF

[NeRF] 이미지 메타데이터 준비하기

by 여기는 정글 2024. 2. 26.

안녕하세요. 정글러입니다.
저번 논문 리뷰에 이어 NeRF의 데이터를 준비해보겠습니다.

NeRF를 통해 데이터가 없던 카메라 포즈에서 렌더링한 이미지를 얻을 수 있습니다.
이를 Novel View Synthetics라고 합니다.
 
예를 들어보겠습니다. 여기 이미지의 메타데이터가 있습니다.

1. Synthetics 데이터

카메라 앵글은 전체 프레임에 대해서 공통으로 존재합니다.
프레임은 리스트 형태로 주어져있습니다.
리스트 안에 하나의 이미지 프레임에 대한 정보가 들어있습니다.
첫번째 이미지에 대한 transform_matrix를 보면, 카메라 자체를 로테이션 시켜주는 역할입니다.
 
해당 메트릭스가 4x4인 이유
보통 3차원에서 로테이션을 표현하기 위해서 3x3메트릭스를 이용합니다.
또 트렌스레이션도 3x1벡터로 표현할 수 있습니다. 
이 행렬을 붙이게 되면 3x4행렬이 됩니다.
 
그러나 이때 문제는 좌표계를 변경할 때 역의 방향을 구해야할 때가 있습니다.
이때 3x4는 역행렬을 구할 수 없기에 마지막에 [0.0, 0.0, 0.0, 1.0]를 추가해줍니다.
 
transform matrix는 cam to world matrix, camera pose matrix라고 부르기도 합니다.
카메라의 위치가 바뀜에 따라 카메라 좌표계와 월드 좌표계를 연결하는 것이 바로 해당 매트릭스입니다.
즉, 카메라 좌표계에 transform matrix를 곱해주어 월드 좌표계로 바꿔줍니다.
 

2. LLFF 데이터

LLFF 데이터는 어떨까요?
 
Synthetic Data(합성 데이터)는 360도 모든 뷰에 대해서 렌더링 한 것입니다.
데이터의 백그라운드가 없고 마스크가 없기에 깔끔합니다.
 
반면, real 데이터는 정면에서 본 데이터만 가지고 학습을 시킵니다.
배경이 있어 바운딩 박스에 배경까지 포함시켜야 합니다.
따라서 적은 양으로도 학습이 가능합니다.
 
NeRF에 필요한 데이터셋를 확인해보았습니다.
감사합니다 :)