Paper/Neural rendering

Gaussian Grouping: Segment and Edit Anything in 3D Scenes

침닦는수건 2023. 12. 13. 20:06
반응형

내 맘대로 Introduction

 

gaussian splatting이 explicit representation을 갖기 때문에 NeRF 대비 이런저런 시도를 많이 해보기 쉽다 보니, 활용 방안을 고민한 논문들이 꽤 보인다. 이 논문은 테크니컬 리포트에 가까운 논문인데, gaussian끼리 그룹짓고 id를 부여함으로써 segmentation이 쉽도록 하고 segmentation을 기반으로 editing해보는 논문이다. SAM과 zero-shot tracker를 갖다 붙였고 id parameter를 추가한 것이 전부기 때문에 이론적 도약은 별로 없다. 해본 것에 의미를 두면 되는 논문.

 

메모하며 읽기


별 내용 없다. gaussian splatting을 이해하고 있다면 이렇게 하면 segmentation도 되겠다 라고 간단히 생각할 수 있는 내용을 그대로 논문화한 것.


1) SAM으로 입력 이미지 다 instance segmentation

2) zero shot tracker를 붙여서 이미지 간 instance matching (K 개 instance 미리 확보)
 
3) gaussian에 identity parameter 추가

4) rendered id와 gt id 비교 , 같은 id면 gaussian 거리 가깝도록 유도
3d gs recap은 skip

진짜 내용이 없음. 분량만 채운 수준.

1) SAM을 입력 이미지 마다 다 돌린다. 

2) zero shot tracker 붙여서 K개 instance id를 생성한다.
gaussian마다 새로 부여한 identity (id) parameter는 단순히 scalar 값 하나가 아닌 learnable paramter (dim=16)으로 정의했다. 

id를 숫자로 정의할지 특별한 encoding으로 정의할지 애매하니 learnable로 정의하고 

나중에 MLP로 post processing 해서 앞서 tracker를 붙여 만든 id로 바꿔주는 전략을 사용했다. 

-------------
하나 의아한 부분인데, id parameter를 16으로 정의하고 이를 SH 과 연계해서 사용했다. 즉 id parameter가 SH coefficient(degree=0)과 같다.

왜 굳이 SH를 사용했는지 모르겠다. view independent인데..?

추측해보면 3D GS 저자들이 구현해둔 differentiable renderer를 그대로 활용해서 gradient 계산하려고 굳이 이렇게 한 것 같기도 함.

id rendering은 alpha blending 방식 그대로 구한다. 

 1) id rendering loss (2D)의 경우, 

rendered id parameter를 MLP를 통과시킨 후 softmax를 취해 사전에 정의한 K 개 id로 classification하는 식이다. 

따라서 cross entropy loss로 정의되어 있다. none-object도 표현하기 위해 K+1로 정의한 것이 디테일

2) neighbor gaussian끼리는 id parameter가 갖도록 KL divergence로 유도



instance에 대응되는 gaussian set들이 분리가 완벽히 되고 나면 해당 gaussian set들을 없애거나, 이동시키거나, 색상을 바꾸는 일이 쉽다. 

그러면 instance의 위치, 색상 등이 손쉽게 바뀐다.
반응형