색과 density
평균/분산/불투명도/(여러 각도에서 본)색상
을 학습 시 최적화합니다.분산 값들이 0 이상의 정수
를 가집니다.vT∑v >= 0
인 성질Positive Semi Definite
가 깨져버려서, 행렬이 음의 vairance를 가져버립니다.R*S
에 대해 Transpose값인 ST*RT
를 추가적으로 곱해 준 이유는, Covariance Matrix는 Symmetric한 성질을 갖기 때문에, 이러한 특성을 만들어주기 위함입니다Spherical Harmonics coefficients
를 이용해 표현Spherical Harmonics
(SH)란?view direction
에 따라 다르게 계산할 수 있게 한 수식SH coeff R 1` * `Y_value_R_1` + ... + `SH coeff R N` * `Y_value_R_N
SH coeff G 1` * `Y_value_G_1` + ... + `SH coeff G N` * `value_G_N
SH coeff B 1` * `Y_value_B_1` + ... + `SH coeff B N` * `Y_value_B_N
input
TODO: SfM에 대해 정리한 글 링크 걸기 (예: COLMAP)
SfM으로 생성한 pointcloud 갯수만큼 -> gaussian distribution을 만들고, 각 위치를 이 distribution의 평균 값으로 초기화합니다.
Projection
(Camera에서 z축으로 거리가 1만큼 떨어진) Image Plane으로 Projection되어 2d gaussian 형태가 됩니다.
학습 (각 가우시안의 mean/covariance/opacity/color 의 최적화) 시키는 방법
Tile rasterizer
을 사용했는데, 위 Image Plane 위의 2D Guassian들을 이용합니다.알파 블렌딩
하지만, 위 학습 과정만으로는, 최적 성능에 도달하는데에 한계가 존재하는데, 이유는 아래와 같음
평균/분산/불투명도/(여러 각도에서 본)색상
만 최적화 할 수 있지,이를 극복하기 위해
Adaptive Density Control
을 사용색상 변화
와 투명도 변화
Remove Gaussian연산
(0.005 이하 불투명도)을 통해 원치 않는 값들이 제거많은 뷰에서 커버하지 못한 부분의 퀄리티는 떨어지구요
, floater 현상도 여전히 있습니다.