반응형
내 맘대로 Introduction
그림만 봐도 익숙한 냄새가 팍팍 나는 논문이다. DS-NeRF가 순식간에 등장한 것처럼 Depth를 prior로 이용한 3D GS 논문이 뚝딱하고 나왔다. 컨셉 자체나 아이디어 자체가 DS-NeRF와 동일하기 때문에 논문 자체가 처음 읽지만 익숙한 느낌이다.
NeRF의 경우, SfM/MVS point cloud를 아예 안 쓰는 구조였다보니 depth prior를 sfm/mvs point로 주었지만, 3D GS는 애초에 SfM 혹은 MVS point cloud를 초기값으로 쓰다보니 더 강한 depth prior를 주기 위해 mono depth를 활용했다는 점이 차이점이다. up-to-scale depth 문제 같은 경우, SfM point가 존재해서 대충 least square로 맞출 수 있다보니 여기선 큰 문제가 아니다.
요즘 mono depth가 워낙 잘되기 때문에 효과는 있었고, noise나 이미지 부족 문제가 조금 완화된다는 것을 강조했다. 개인적으로 이론적 내용보다 누구보다 빠르게 구현해서 글 작성까지 한 점이 놀라웠다.
내용은 완전 간단! so simple!
메모하며 읽기
|
이름만큼 하고자 하는 것이 명확해서 내용이 간단하다. 3D GS 학습시킬 것인데 dense depth map갖고 supervision 추가로 걸어주겠다. 부수적으로 smoothness나 few shot setting을 추가했다는데 이건 크게 중요한 파트는 아닌 듯 하다. smoothness에 대한 ablation이나 few shot을 강조하는 case study가 없다. |
|
|
depth GT 준비하기. mono depth 돌리고 알고 있는 SfM point랑 least square 풀어서 scale 맞춘다. 아주 간단하고 보통 사람들이 하듯이 했다. |
rendered depth 만드는건 color 대신 거리를 blending하면 됨. 이것도 보통 하듯이 했다. |
smoothness loss인데 한 gaussian끼리 뭉치게 해주는 효과인 것 같다. notation을 보면 rendered depth D가 아니라 gaussian 개별적인 camera view depth, d를 줄인다. 따라서 공중에 떠있는 gaussian끼리 웬만하면 붙어있도록 한다고 보는게 맞을 것 같다. adjacent를 어떻게 정의했는데 언급이 안되어있는데 같은 frustrum 내에 culling된 gaussian들끼리 했지 않을까 ----------- 이게 어떤 의도로 넣은 것일까...? 뭐가 안돼서 뭐가 문제라 추가했을까... 궁금하다 그냥 넣은건가. |
이미지 수가 부족할 때 대응하는 노하우를 정리해두었다. 내 생각엔 기본적으로 depth prior가, 그것도 mono depth를 이용해서 dense depth prior가 있는 상황에서는 이미지 수 부족 문제가 어느 정도 자동으로 풀릴 것 같다. 근데 prior가 많아서 이미지가 조금 적어도 된다는 점을 강조할 때 그냥 적어도 된다고 설명할 순 없으니... 뭔가 +@를 더 적어준게 아닐까...? 1) SH max degree =1로 설정 이건 learnable parameter가 줄어드니까 유리한 점이 분명있을 것 같다. 다만 조명변화가 심해 각도마다 색깔 변화가 심한 경우엔 trade off가 분명해보인다. 2) 전체 loss는 줄지만 depth loss는 더 이상 줄지 않거나 오히려 올라갈 때는 망가지는 중이라고 판단해서 멈추기 이건 확실히 노하우인 것 같다. 3) 주기적으로 opacity 0으로 만드는 과정 생략. 이건 좀 궁금하다. 0으로 초기화하는 스텝이 없으면 현재 logic 상 gaussian을 제거하는 logic이 하나도 없는건데 gaussian 개수가 불필요하게 많아지지 않는지 smoothness term으로 인해 끼리끼리 뭉치니까 rendering했을 때는 불필요하게 많은 개수가 그리 육안으로 보기에 드러나지 않았을 것 같은데.... 개수가 많을 것 같다. 이건 확실히 좋은 방법 아닌 듯. |
반응형