Paper/3D vision

Deformable Beta Splatting

침닦는수건 2025. 6. 9. 16:50
반응형

내 맘대로 Introduction

 

캬~ 진정한 의미의 3DGS 파생 연구가 나온 것 같다. 3DGS의 활용이 아니라 3DGS의 개선을 고민한 논문인데 단순히 3DGS가 사용한 방법론의 단점을 개선한 수준이 아니라 3DGS 의 컨셉 자체의 단점을 개선한 레벨이라 보다 깊은 논문이다. 개인적으로 굉장히 좋은 논문이라고 생각한다. 학술적으로, 수학적으로 의미가 짙은 논문이라 찐 논문인 것 같다.

 

핵심은 언제나 bell shape을 유지할 수 밖에 없는, 그리고 범위가 (-inf, inf)로 열린 공간이 Gaussian kernel을 갖고는 flat, sharp geometry를 표현하는 것이 어려울 수 밖에 없다는 문제를 지적하며, bell shape 이상의 모양 자유도를 갖고 [0,1] bound인 beta kernel로 교체한 것. 단순히 바꿔낀 것이 아니라 바꿔꼈을 때 수학적으로 정리가 된다는 것도 같이 증명했다. 

 

동시에 Beta kernel을 사용하면 SH도 교체가 가능하다는 점도 보여줬다. 결과적으로 표현력을 끌어올리는 것 뿐만 아니라 SH를 대체함으로써 용량 축소까지도 할 수 있다.

 

증명까지는 모르겠고 컨셉만 이해해도 충분히 도움된다. 멋진 논문.

 

메모

3DGS가 혁신적인 것은 인정하나, 그 근본적인 원리를 생각해보면 Gaussian 갖고 모든 형상을 표현해야 되다 보니 평평하거나 날카로운 형상을 표현하는데 한계가 있고, 

SH를 사용하는 방식도 order에 따라 quadratic으로 계수가 늘어나서 real time 렌더링을 위해 성능을 타협해야 되는 문제가 있다. 

-> Gaussian 보다 모양이 다양한 kernel을 쓰고
-> SH를 대체할 수 있다면?
== DBS다. 



beta distribution은 본래 위 예시처럼 alpha, beta에 따라 모양이 결정되는 [0,1] bounded distribution 중 하나인데, 보다 시피 분포 모양의 자유도가 매우 높다. 한쪽으로 치우친 것, 뒤집힌 것, 종 모양 등등

저자들은 Gaussina distribution 대신 beta distribution을 선택했고 (그냥 선택한게 아니라 수학적으로 이게 정리가 되기 때문에 선택한 것) splatting이 되도록 이론을 정리했다. 

---
먼저 뒤집힌 모양처럼 너무 극단적인 변형은 필요가 없으므로 alpha를 1로 고정하고 beta 만 조절할 수 있도록 제한했다. (위 그림 처럼 제한된 변형이 가능)

그리고 각 primitive에 beta를 추가했다. 이 때 그냥 b 로 넣으면 [0, inf) 범위 내에서 최적화해야 하므로 안정성이 떨어져서 beta = exp(b)로 한번 wrapping하고 primitive에는 b가 들어가도록 했다. 

추가적으로 초기 모양이 GS랑 유사한게 평균적으로 좋긴 하니까 앞에 constant를 4 로 지정해서 GS랑 최고로 유사한 초기 beta distribution으로 시작할 수 있도록 했다. 

이미지 픽셀로 렌더링할 때는 3차원 분포이다 보니, 3DGS랑 동일한 수식 적용이 가능하다.
([0,1] bounded 값이니 scale을 이해하기 더 직관적인 장점도 있음)

position, scale 갖고 하나의 point가 몇 픽셀에 걸쳐 렌더링 되는지 계산한 뒤, color를 칠할 때 beta kernel을 반영해서 색상을 칠하면 된다. 

(gs일때는 -inf to inf였기 때문에 scale도 범위에 영향을 주고 gs도 영향을 줬었음, aliasing artifact 생김)

--------
c를 어떻게 계산하는지는 후술한다.



c를 계산하는건 SH를 대신할 SB를 제안한다. beta kernel에 곱해져서 최종 색상을 만드는 방식이라 spherical beta라고 이름 붙인 듯 하다.

수식(7)과 같이 

색상 = 기본 색상 + M개의 (diffuse + view dependent specular)

로 정의하는 방식을 선택했는데, 그 이유가 위 형태는 beta kernel로 재정의 될 수 있기 때문이다. 수식(8)처럼

다시 말하면 위와 같이 정리하면 beta kernel에 곱해서 최종 색을 만들어 낼 각각의 색상도 beta kernel의 coefficient를 통해 계산이 가능한 것. 일타이피 인것. 

view dependent color를 표현하기 위해서 별도의 추가 개념 없이 앞서 추가했던 beta kernel을 그대로 쓰면 되니까 문제가 간단해진다. SH 버리기 가능.
-----

여기서 M은 hyper parameter다. 

기본색상에 더불어서 몇개의 자유도로 색상을 보강할 것인지 사용자가 정하면 된다.

예를 들어 M=2로 하면, 기본 색상 2개에 더불어서 2방향 specular가 더 있을 것이라고 가정하고 수렴시키는 것과 같다. 

앞에 primitive에 b와 더불어 추가했던 새로운 f가 3+6M의 feature vector인데 3이 기본 색상, 6M이 diffuse + specular이다. 최적화 되면서 알아서 방향과 색상이 수렴한다. 
densification도 beta kernel을 적용했을 때 전혀 문제가 없다. 

기존 방식은 opacity를 갖고 densification, pruning하는 방식이었고, opacity를 하나의 확률로 생각해서 opacity가 큰 곳에서 분열을 많이 하고, opacity가 작은 곳에서 분열을 적게 하도록 했다. 

----
근데 beta kernel로 바꾸는 순간, opacity 값이 1개라도, 이걸 확률로 바라볼 때 의미가 좀 더 복잡하다. 분포 모양이 bell shape이 아니기 때문.... 

opacity가 작더라도 뾰족하면?
opacity가 크더라도 모양이 flat하면?
이게 형상을 표현할 때 기여하는 확률을 어떻게 해석해야 되는가?

하지만 결론 부터 말하면 3DGS랑 똑같은 방식을 취해도 된다. 수학적으로 그렇게 해도 된다고 증명해줌.

복잡하긴 하나, 기본적으로 opacity를 갖고 densification, pruning하는 것은 그대로 사용해도 된다.
증명까지 이해한 것은 아니라서 이유는 모르겠다만,

단순히 opacity를 기준으로 (beta 는 무시한 채) densification, pruning을 똑같이 진행해도 수학적으로 보면 전체 point 분포가 유사하다는 점.

다시 말하면, 어떤 beta kernel이든지 전체 point 분포는 결국 비슷하게 되므로, 그냥 opacity 기준으로 densification/pruning해도 된다는 듯.


색상 표현의 다각화도 되는 건 덤.


색상 표현의 정확도 자체가 일단 올라감
훨씬 적은 수로 동일한 성능을 표현할 수 있음.

표현력이 훨씬 뛰어남. 
반응형