Author: Jihwa Lee
Team: Autonomous Driving Team @ CAI Lab
Date: 2023/01/18
출처: https://arxiv.org/pdf/2210.00379v1.pdf
리뷰를 하기에 앞서
원래 Instant-ngp를 먼저 보려고 하였으나, 앞부분만 간단히 읽어본 결과 NeRF의 알고리즘을 변형하여 속도를 높인 것이 아닌 (그렇다고 볼 수도 있겠지만)
input encoding 부분을 새롭게 적용하여 불필요한 연산을 줄이고 GPU 연산에 더욱 효과적일 수 있도록 구현한 것이었다.
이를 적용하여 성능을 개선한 분야가 4가지 있었는데 그 중 하나가 NeRF였던 것이다.
일단 NeRF라는 분야에 대해서 알아가는 중이기 때문에 NeRF에 어떤 모델들이 있고 어떤 것이 쓰이는지 먼저 알아보는 것이 좋을 것 같아 Review 논문을 먼저 읽게 되었다.
1. INTRODUCTION
NeRF는 ECCV 2020에 Mildenhall et al에 의해 처음 소개 되었다.
최근(2022년)까지 NeRF는 photo-editing, 3D surface extraction, large/city-scale 3D representation and view synthesis 등 다양한 활용분야를 찾아 개발되고 있다.
NeRF 모델의 몇 가지 key advantage는 다음과 같다.
- NeRF 모델은 self supervised이다.
NeRF는 다른 3D neural representation이나 view synthesis method와 달리 3D/depth supervision없이 images와 poses만 있으면 학습
가능하다.
- NeRF 모델은 photo-realistic하다. 다른 classic한 기술들이나 이전에 나온 기술들의 결과와 비교했을 때 NeRF는 더욱 좋은 퀄리티의
결과물을 만들어낸다.
NeRF 모델이 computer vision community에서 많은 관심과 주목을 받았다는 사실은 지난 2년간 150편이 넘는 논문들이 작성되었다는 사실만으로도 충분히 알 수 있다.
2. BACKGROUND
2.1 Existing NeRF Surveys
Survey가 Review 보다 좀 더 기술에 집중하여 여러 모델을 비교하고 분석해놓은 것이라고 알고 있다.
아직 Survey를 읽을 단계가 아니라고 생각하여 이 부분은 다음에 필요할 때 찾아 읽는 것이 좋을 것 같아 과감하게 PASS 하였다.
2.2 Neural Radiance Field(NeRF) Theory
다음 리뷰에서 이 내용에 대해서만 다뤄볼 예정이다.
2.3 Datasets
- Original NeRF 저자가 만든 dataset
Blender로 제작한 가상 물체에 대한 데이터 셋이며 virtual camera가 물체로 부터 같은 거리에 놓여있다.
8가지의 물체로 데이터 셋이 구성되어 있으며 이는 training set으로 100장, testing set으로 200장(실제 제공 google drive에는 validation
100장 testing 100장으로 나눠져 있음)이 제공된다.
8가지 물체 중 6가지는 반구 형태로 카메라의 위치가 분포되어 있고 2가지는 구 형태로 카메라의 위치가 분포되어 있다.
이미지의 크기는 800*800 pixels로 randering 되어있다.
- LLFF dataset
24가지의 일상 장면으로 구성되어 있으며, 이것은 휴대전화로 캡쳐된 데이터이다.
각각의 장면들은 20-30개의 image로 구성되어있다.
각각의 이미지의 pose를 계산하기 위해 COLMAP package를 이용하였다.
- DTU dataset
6축 산업용 로봇에 카메라와 light scanner를 달아 데이터 셋을 구축하였다고 한다.
데이터 셋은 80개의 장면들로 구성되어 있는데 카메라의 위치나 데이터 셋 취득 환경이 3가지로 나뉜다.
이미지의 해상도는 1600*1200 이다.
- ScanNet dataset
실내 환경 2.5 million views를 포함한다.
RGB-D multi-modal dataset이며 dataset은 다양한 view 뿐만 아니라 annotated camera poses,
reference 3D surfaces, semantic labels, CAD model까지 제공한다.
- Tanks and Temples dataset
비디오 데이터 셋으로 3D reconstruction을 한 dataset이다.
14개의 장면을 포함하고 있으며 이것은 개별 물체인 탱크나 기차 등도 포함하지만 박물관과 같은 큰 규모의 실내 장면도 포함하고 있다.
Ground Truth 3D data는 높은 퀄리티를 낼 수 있는 산업용 laser scanner를 사용하였다.
Ground Truth point cloud는 카메라 pose를 역으로 계산하는 데 사용하였다.
- ShapeNet dataset
Simplistic large scale synthetic 3D dataset이다.
이는 3D CAD 모델로 구성되어 있으며 3135개의 class로 분류되어있다.
이 데이터 셋이 가지고 있는 object-based semantic label이 특정 NeRF 모델에는 아주 중요한 요소가 되기도 하기에 소개한다.
2.4 Quality Assessment Metrics
NeRF에서 주로 사용되는 평가 지표는 3가지로 PSNR, SSIM, LPIPS가 있다.
간단하게 설명하자면
PSNR(Peak Signal to Noise Ratio)는 주로 영상 화질에 대한 손실 정도를 평가한다.
수식으로 보자면 다음과 같다.
$$ PSNR(I)=10\cdot log_{10}(\frac{MAX(I)^2}{MSE(I)}) $$
MAX(I)는 pixel에 들어갈 수 있는 최대 값을 넣어주면 된다. (보통 8bit 정수이기 때문에 255)
MSE(I)는 pixel들의 mean squared error를 전체 color channel에 대해 계산해주면 된다.
수식으로 알 수 있듯 무손실 영상일 경우 MSE가 0이 되기 때문에 PSNR을 정의할 수 없다.
이 평가 지표는 앞서 말했듯이 영상 화질에 대한 손실 정도를 평가하는 것이기 때문에 사람이 느끼는 것과 다르다.
이를 보완한 것이 SSIM이다.
SSIM(Structural Similarity Index Measure)은 변형된 영상의 화질 손실양을 평가하되, 인간이 시각적으로 느끼는 품질 차이를 평가하기 위해 고안된 방법이다.
두 이미지(x, y) 간의 상관계수를 Luminance(휘도), Contrast(대비), Structure(구조) 총 3가지 측면에서 평가한다.
(하지만 이 또한 지표 값을 너무 믿으면 안됨..)
수식으로 보자면 다음과 같다.
위 수식의 앞 괄호는 Luminance를 수식화한 것이고 뒷 괄호는 Contrast와 Structure를 수식화한 것이다.
마지막으로 LPIPS(Learned Perceptual Image Patch Similarity)은 2개의 이미지의 유사도를 평가하기 위한 지표 중 하나이다.
2개의 이미지를 VGG Network에 넣고 feature를 뽑아서 feature가 유사한지 측정한다.
수식으로 보자면 다음과 같다.
이미지를 각 평가지표로 평가해보고 비교하는게 확실하게 어떤 지표가 좋은지 객관적으로 알 수 있겠지만, 개념을 기준으로 생각해보았을 때, SSIM과 LPIPS를 같이 사용하는 것이 좋을 것 같다고 생각한다. LPIPS를 통해 이미지의 Feature가 동일한 위치에 위치하는지 확인하고 Feature를 추출하다보면 빛에 관한 정보들이 줄어들 수 있기 때문에 SSIM을 통해 그 부분을 보완하면 좋을 것 같다고 생각이 들었다.