Paper/Neural rendering

BARF : Bundle-Adjusting Neural Radiance Fields

침닦는수건 2023. 10. 30. 01:24
반응형

내 맘대로 Introduction

이 논문은 이전 2023.10.30 - [Reading/Paper] - Self-Calibrating Neural Radiance Fields 와 같이 카메라 포즈와 NeRF를 동시에 최적화하는 방법을 소개한 논문이다. 시기적으로 큰 간격 없이 나온 논문이기 때문에 병렬적으로 진행된 같은 목적의 연구라고 보는게 맞다. 

 

핵심 아이디어는 positional encoding을 특별하게 바꾸어서 카메라 포즈가 같이 (상대적으로) 안정적으로 최적화될 수 있도록 디자인한 것이다. 사실 안정적인지까지는 모르겠다. positional encoding 외에는 전부 동일하다. 논문이 조금 서론이 긴 느낌이었다.

 

메모하며 읽기





위 내용들은 사실 그냥 고찰에 가깝다. 요약하자면 이미지 간 warping(transformation)을 구하는 방식은 non linear 하기 때문에  correspondence 갖고 gradient이용해서 푸는게 국룰이었다는 내용이고, 문제가 잘 풀리는 경우는 그림 2와 같이 시그널이 서로 단조로울 경우, 즉, coarse 할 경우 잘된다는 사실을 알려준다. (여기선 이미지가 low frequency로 가득찬 이미지면 잘 풀린다 정도?)

neural network 특히 NeRF로 넘어와도 수식도 그렇고 크게 별반 다르지 않다는 점을 알려줌

NeRF recap이 주된 내용

카메라 포즈는 intrinsic은 버렸고, extrinsic 만 self calibrating NeRF와 같이 6 rotation value로 표현했다. 

수식(9)와 같이 jacobian을 계산할 수 있는데, 계산만 해본 것이고 실제로는 pytorch backpropagation이 알아서 해주는 것.

여기까지도 특별한 내용이 없다.

여기가 그나마 핵심. positional encoding은 지금 사용하는 sin, cos 결합형의 형태는 low frequency to high frequency를 전부 다 포함하고 있다.

근데 위 고찰에서 보았듯이 low to high로 학습하는 것이 transformation(camera pose)풀 때 좋으므로 positional encoding도 이러한 특성을 반영해서 재디자인해야 된다는 주장을 한다. 

원래가 수식(11)과 같은데 gradient 입장에서 보면 high frequency에서 발생하는 gradient가 훨씬 크므로 학습 초기에 high를 먼저 다루는 경향이 있을 것이다. 
따라서 수식(14)와 같이 일종의 마스크를 생성해서 positional encoding을 학습 진행도에 따라 서서히 high frequency가 기여하도록 억제하는 방식을 소개한다.

이걸 사용해서 low to high 순서로 학습을 시키면 카메라 포즈를 동시에 최적화하도록 NeRF를 변형시켰어도 불안정성 없이 잘 한다는 이야기

결론은 일단 NeRF에 카메라 포즈도 같이 추정하도록 때려 박고 positional encoding만 바꿔줬더니 알아서 잘 배우더라. 

반응형