Paper/Neural rendering

Lighting Every Darkness with 3DGS: Fast Training and Real-Time Rendering for HDR View Synthesis

침닦는수건 2024. 6. 17. 14:51
반응형

내 맘대로 Introduction

 

RawNeRF의 3DGS 버전. 기대가 컸었는데 사실 RawNeRF에 묻어가는 논문. 새로운 내용은 없고 조합형 논문이다. 3DGS primitive 중 Color SH를 MLP로 바꿔서 RawNeRF 처럼 RGBG 값 그대로 찾아내도록 변경한 것 그리고 Inference할 때 RawNeRF처럼 exposure나 white balance를 조정한 것이다. 

 

핵심 아이디어는 없다. 3DGS + depth supervision + RawNeRF loss function 비빔밥 논문. (하지만 빨랐죠...) 

 

사소하게 point cloud initialization을 보강한다거나 (수학적인 것은 없음) regularization은 조금 추가했다거나 하는 장점이 있다.

 

메모

initialization 보강 + color SH를 MLP로 변경

이게 내용 끝이다. 
초기화

1) COLMAP 초기화 일단 돌림

2) COLMAP 결과 보고 view frustrum 전체 volume 계산 

3) 전체 volume 내에 random initializatio 추가
gaussian primitive 중 color SH 제거

color feature를 할당함. 

color feature는 나중에 MLP를 통과하면 RGBGR 센서 값으로 바뀜

이 때 센서값 범위가 너무 크므로 exp 씌우고 log 씌우는 식으로 scaliling 함

(RawNeRF에서 non linearity 때문에 선형화까지 하면서 loss function 만들어뒀는데 여기서 그냥 exp, log 씌우는 것 옳은 방법이 맞을까)

random initialization으로 공간에 gaussian들을 흩뿌려두기도 했고 colmap init 자체도 noisy하기 때문에 gaussian 자체가 실제 geometry 위치에 잘 달라붙도록 하려면 추가 regularization이 반드시 필요함

(이 논문에서 짚은 문제는 아니고 모두가 그렇게 함)

alpha composition할 때 계산하는 weight를 ray 내 구간 별로 다 계산을 해둔다. 

만약 geometry에 gaussian이 잘 붙어있다면 surface 주변에서만 weight가 높을 테니 ray 내에서 weight가 높은 구간이 1지점 나와야 한다. 

따라서 수식 (8)과 같이 ray 내 특정 두 위치를 뽑아서 weight를 비교했을 때 웬만하면 0으로 가도록 기본 골조를 짜고 

뒤에 두 위치 간 거리에 비례해서 scale을 곱해줌으로써 거리가 좀 가까우면 0으로 강제하는 힘이 약해지도록 함

-> 먼 위치라면 둘 다 0이어야 한다.
-> surface 주변에서 가까운 두 위치를 뽑았다면 0 이 아닐수도 있으니 너무 패널티 주진 말자.

되게 약한 regularization이다. 이게 surface 주변에 gaussian이 생성되도록 강제하는 역할은 사실 아님. 쓸데 없는 위치에서 없어지도록 하는 역할. (그림은 둘다 되는 것 처럼 그린 듯)
gaussian이 너무 광범위하게 펼쳐져있는 것을 막기 위한 2번째 regularization

ray 별로 근거리 gaussian, 원거리 gaussian을 모아서 웬만하면 서로 거리가 가깝도록 함.

다시 말하면 gaussian끼리 뭉치게 하는 것.

엄청 약하게 걸어줘야 할듯.
반응형