안녕하세요. 후니대디입니다.
이번 논문은 Neural 3D Video Synthesis from Multi-view Video입니다.
기존의 바닐라 NeRF는 아래 포스팅 참고하세요.
Intro
우선 논문에서의 목적은 고정되어 있는 여러대의 카메라를 (고프로) 이용하여 video를 촬영하고 이를 이용하여 3D synthesis video를 생성해내는 것입니다. 따라서 기존 NeRF에서의 input 변수인 pose, direction을 포함하여 time이라는 변수가 추가됩니다. 또한 video의 경우 오랜 학습이 필요합니다. 따라서 해당 논문에서는 importance smapling전략을 제시합니다. video는 frame사이에서 적은 양의 pixel변화를 나타낼 수 있기 때문에 이를 통해 중요한 픽셀을 선택하여 효과를 높힐 수 있습니다. . 즉, 크게 time domain처리와 학습시간을 줄이기 위한 sampling방법으로 본 논문의 contribution을 구분할 수 있습니다.
DyNeRF : Dynamic Neural Radiance Fields
DyNeRF 모델은 continuous time space에서 implicit하게 novel view를 만드는 모델입니다. 해당 모델은 time에 대한 변수를 latent code로 변환하여 model의 input으로 들어갑니다. 해당 time-variant latent는 randomly 초기화합니다.
NeRF에서의 volume rendering에서와 비슷한 방법으로 rendering equation을 사용합니다.
위의 eq는 NeRF의 Volume Rendering입니다. DyNeRF의 Volume Rendering에서는 time latent가 추가됩니다.
Loss Function은 NeRF와 동일하게 Volume Rendering을 통해 나온 RGB값을 GT RGB값과의 L2-Norm으로 설정하였습니다.
Efficient Training
비디오의 특성상 time이 길어질수록 linearly하게 training시간 또한 길어집니다. 예를 들어 10초, 30FPS, 18개 카메라의 1MP multi-view 비디오 시퀀스의 경우 한 epoch에 약 74억 개의 ray samples이 있으며, 이는 8개의 NVIDIA Volta 클래스 GPU를 사용하여 처리하는 데 약 4일이 소요됩니다. 이를 위해 논문에서는 training을 가속화하기 위한 두가지의 전략을 제안합니다.
첫번째는 Hierarchical Training방법입니다 (coarse to fine). video의 모든 frames을 training을 하지 않고 keyframe을 우선으로 training합니다. 모든 frames에서 동일한 interval로 frame을 뽑아서 keyframe으로 활용합니다.
모델이 keyframe supervision에 수렴하면 final model을 위한 초기화하기 위해 사용합니다. 각각의 frame사이를 linearly interpolation하여 fine-level latent embedding을 초기화합니다. 이 후 모든 frame을 함께 사용하여 training하여 추가적은 weight와 latent embedding을 최적화시킵니다.
두번째는 importance sampling입니다.
효율적인 training을 위해 time-variant 영역을 추가 importance sampling을 진행합니다. 즉, 풀어설명하면 비디오의 경우 시간이 지남에 따라 변하지 않는 pixel도 있고 시간이 지남에 따라 pixel이 변하는 부분이 있습니다. importance sampling에서는 변화는 부분을 추가 샘플링을 진행합니다. 이를 위해 크게 3가지 방법을 제시합니다.
- Global-median(DyNeRF-ISG) : 시간의 경과에 따른 global median RGB값의 차이를 기반으로 각각의 ray에 weight를 계산합니다.
- Temporal-Difference(DyNeRF-IST) : 두개의 연속적인 frame간의 RGB값의 차이를 기반으로 각각의 ray의 weight를 계산합니다.
- Combined Method(DyNeRF-IS*) : 위 두개를 혼합합니다.
논문에서는 DyNeRF-IS*방법을 사용하였고 DyNeRF-ISG를 통해 high-frequency정보를 얻고 DyNeRF-IST를 통해 temporal motion을 부드럽게 처리합니다.
Experiments
논문에서의 방법은 최대 10초 길이의 30FPS multi-view 비디오를 고품질로 표현할 수 있고, reconstructed model은 1K 해상도에서 거의 사실적인 continuous novel-view rendering을 가능하게 합니다.
주요 method들과의 metric비교입니다.
위의 그림은 본 논문의 한계를 나타내는데, 매우 빠른 이동을 포함한 큰 모델일 경우 blur하게 나타나는 한계가 존재합니다. 또한 학습하지 못한 scene을 추론하는데 challenge가 존재하고, 여러대의 camera를 고정시켜서 촬영해야한다는 것 또한 많은 제약이 있습니다.
conclusion
제가 생각하는 결론은 사실 모델관점에서는 NeRF대비 특별한 novelty는 없는 것 같습니다. 1. 고정된 여러개의 camera가 있고 그것들의 extrinsic parameter를 알기 때문에 사실상 NeRF에서 pose를 아는 것과 동일하고 2.여러 각도에서 찍는 것과 동일합니다. 3. 비디오의 특성상 많은 사진을 갖고 있다는 점. 이렇게 3가지의 조건은 vanillar NeRF에서 필요한 조건을 모두 충족시키기 때문에 time-space domain을 latent vector로 처리해준 것 외에는 특별한 점은 없는 것 같습니다. 다만 아래 첨부한 동영상에서도 볼 수 있듯이 결과물이 매우 좋은 걸로 좋아 오히려 엔지니어링적으로 많은 테크닉이 필요할 것 같습니다. (특허가 되어 있어 소스공개가 안되어 있습니다.)
이상입니다.