[쉽고 간결한 논문 리뷰] Feature 3DGS: Supercharging 3D Gaussian Splatting to Enable Distilled Feature Fields (CVPR 2024)

2024. 9. 14. 12:12·View synthesis
728x90
반응형

본 논문은 University of California, University of Texas, DEVCOM Army Research Laboratory에서 작성한 논문입니다.

논문 링크: https://arxiv.org/pdf/2312.03203

 

1. Introduction

Feature 3DGS는 novel view synthesis 작업을 수행하기 위해 제안된 방법론입니다.

Novel view synthesis는 여러 시점에서 촬영된 이미지를 바탕으로 새로운 시점에서의 장면을 생성하는 기술이죠.

 

이름에 있는 3DGS(3D Gaussian Splatting)는 이 작업을 수행하기 위해 2023년에 제안된 새로운 방법론입니다.

Feature 3DGS는 바로 기존의 방법론에 'Feature'라는 개념을 추가해서 다양한 downstream task를 수행한다-라고 이해하시면 되겠습니다.

백문이 불여일견.

어떤 결과물을 만들어 내는지 한번 보시겠습니다.

 

https://github.com/ShijieZhou-UCLA/feature-3dgs

다음과 같은 사실을 알 수 있습니다.

  1. 일반적인 사진 형태로의 새로운 view를 합성했다.
  2. Segmentation 된 feature에 대한 view도 합성했다.

그렇다면 이제부터 Feature 3DGS가 어떻게 이 작업을 수행했는지에 대해 살펴보겠습니다.

 

 

 

2. 3DGS

앞서 언급한 것처럼 Feature 3DGS는 3DGS라는 기존의 방법론을 기반으로 제안된 기술입니다.

 

A Survey on 3D Gaussian Splatting(2024)

NeRF는 Computer Vision에서 유명한 기술이죠?

NeRF는 쉽게 말해, 어떤 Ray 상의 point에 대한 좌표와 카메라 각도가 입력으로 들어오면 그것의 색상과 불투명도 값을 MLP로 결정하는 알고리즘입니다.

하지만 NeRF는 막대한 연산량으로 인해 실시간 렌더링이 어려웠으며, 훈련 시간도 매우 길었다고 합니다. 

 

High-quality의 결과물을 실시간으로 렌더링시킬 수 있는 대안으로 3DGS가 제안된 것입니다.

3DGS는 오른쪽 사진처럼 3D 공간에 분포해 있는 3D Gaussian 분포를 2D 공간에 Splat 시키는 방식으로 작업을 수행합니다.

 

 

[쉽고 간결한 논문 리뷰] 3D Gaussian Splatting for Real-Time Radiance Field Rendering (SIGGRAPH 2023)

본 논문은 University of Nice Sophia Antipolis와 Max Planck Institute for Informatics에서 2023년에 작성한 논문이다.논문 링크: https://arxiv.org/abs/2308.04079 1. IntroductionNovel view synthesis란?여러 시점에서 촬영된 이미

happy-support.tistory.com

3DGS를 사진과 함께 잘 설명한 글이라 참고하시면 이해가 조금 더 수월하실 겁니다.

 

3DGS와 Feature 3DGS 알고리즘 개요를 비교해보면 그렇게 큰 차이는 없어 보입니다.

추가된 내용은 세 가지로 나눌 수 있겠습니다.

  1. Gaussian을 결정하는 매개변수로 feature가 추가되었다. 
  2. Feature에 대한 loss term이 추가되었다.
  3. Speed-up module이라는, 말 그대로 연산 속도를 높여줄 것만 같은 component가 추가되었다.

이제부터 각각의 내용들을 조금 더 자세히 살펴보겠습니다.

 

 

 

3. Feature Field

3DGS 방법론에서는 각각의 Gaussian들이 다음과 같은 5가지 속성을 가집니다.

  • x: 분포의 중심점
  • q: 분포의 기울어진 정도 (회전 행렬을 'q'uartenion 표기법으로 표현합니다.)
  • s: 분포의 크기 (scaling)
  • α: 불투명도
  • c: 색상

처럼 말이죠.

x, q, s는 불투명도 α 를 결정하는 수식에서 사용이 됩니다.

 

 

최종적으로는 불투명도 α와 색상 c를 이용해 픽셀의 값을 결정합니다.

Feature 3DGS는 동일한 알고리즘을 사용하지만, 여기에 한 가지 요소를 더 추가해서 연산을 합니다.

 

바로 빨간색으로 표시한 f가 추가되었습니다.

Feature 3DGS는 이 f를 이용하여 2D 상의 feature field라는 공간을 생성하게 됩니다.

 

최종 feature를 결정하는 수식은 최종 색상을 결정하는 수식과 형태가 동일합니다.

 

이런 원리로 왼쪽 아래 ⬆️  있는 Feature Field가 생성이 됩니다.

 

어, 근데 사진 중간에 '2D Foundation Models'라는 부분이 있습니다. 

이게 무엇인지는 feature를 학습시키는 부분과 연관 지어 다음 섹션에서 설명드리겠습니다.

 

 

 

 

4. Knowledge Distillation

Feature에 대한 loss term을 이해하려면 먼저 knowledge distillation, 우리말로 지식 증류라고 불리는 이 개념에 대해 알아야 합니다.

지식 증류는 '잘 학습된 모델이 가지고 있는 지식을 압축해서 다른 모델에게 전해주자'라는 아이디어에서 비롯한 기법입니다.

(참고로 이 개념은 2015년 'Distilling the Knowledge in a Neural Network' 논문에서 제안된 기법입니다.)

 

'그 어디 잘 학습된 모델 'A' 있잖아? 일단 그거 갖고 와봐.'

'우리가 만드는 모델의 결과물이 'A'의 결과물과 최대한 똑같아지게 만들면 되는 거 아냐?'

조금 더 풀어서 표현해 보겠습니다.
SOTA 모델의 논문을 보시면 엄~청나게 많은 데이터들을 사용해서 & 엄~청 복잡한 모델을 만들어냅니다.
뭐, 그러면 성능이 좋을 확률이 굉장히 높겠지요.
좋은 장비를 가지신 분들이 만든 모델을 일반인들이 활용할 수 있다면, 그건 그거대로 아주 좋은 연구일 것입니다.

하지만 복잡한 모델들은 추론 과정에서 많은 연산을 요구하기 때문에 실제 application에서의 활용이 어렵습니다.
그렇지만 작은 모델이 엄청나게 높은 성능을 가지도록 학습시키는 것도 참 어렵습니다.

이 문제를 극복하기 위해 나온 게 바로 Knoweldge Distillation입니다.
모델의 예측값과 GT 간의 loss를 계산하며 파라미터를 업데이트시키는 기존의 방법보다는,
두 모델의 output 간의 loss가 줄어들도록 학습시킨다는 방법이 기반이 된 것이지요.

학교에서는 많은 지식을 가진 선생님이 학생들을 가르치곤 하죠??
Knoweldge Distillation에서는 이를 '' 잘 학습된 모델을 Teacher, 학습 중인 모델을 Student라고 부른답니다.

 

https://www.analyticsvidhya.com/blog/2022/01/knowledge-distillation-theory-and-end-to-end-case-study/

 

이제 좀 감이 좀 잡히실까요?

이미지로 비유하자면, 'Student 모델이 만들어내는 feature가 Teacher 모델이 만들어내는 feature와 최대한 유사해지도록 학습을 시킨다.'라고 할 수 있겠네요.

이렇게 학습된 Student 모델은 보통 리소스가 한정되어 있는 edge device에서 많이 사용됩니다.

 

MINILM: Deep Self-Attention Distillation for Task-Agnostic Compression of Pre-Trained Transformers (2020)

 

자연어의 경우에는 두 모델의 Q, K, V 가 만들어내는 표현들이 서로 유사해지도록 학습시킬 수 있습니다.

이해가 어려우신 분들을 위해 관련 링크 하나 올려두겠습니다.

 

[논문 리뷰] MiniLM: Deep Self-Attention Distillation for Task-Agnostic Compression of Pre-Trained Transformers (2020)

본 논문은 Microsoft Research에서 2020년에 작성한 논문이다.논문 링크: https://arxiv.org/pdf/2002.109571. Introduction본 논문은 수억 개의 파라미터를 갖는 일반적인 NLP 모델을 경량화한 MiniLM 모델을 제안한다.

happy-support.tistory.com

 

본 논문의 목적은 어쨌든 Gaussian 분포로 결정되는 feature가 잘 표현되길 원할 것입니다.

생성되는 Feature가 무언가와 최대한 동일해지게 학습이 되게 만들자.

그 무언가가 바로 기존 segmentation에서 SOTA 성능을 보이는 LSeg, SAM 모델들의 feature가 됩니다.

 

최종적으로 기존 3DGS의 loss term에다가 L(f)라는 term을 추가해서 앞에서 본 6가지 파라미터를 최적화시키게 됩니다.

 

 

 

5. Speed-up Module

이때 한 가지 문제가 있었다고 합니다.

이상적으로 렌더링된 feature map과 GT feature map의 shape이 동일할 때 학습 효과가 극대화될 것입니다.

다만, LSeg의 feature는 channel이 512, SAM은 256으로 높은 차원을 가집니다.

여기에 맞춰서 Gaussian의 f를 조정하게 되면 매우 많은 연산을 필요로 하겠지요.

 

저자들은 이렇게 feature의 차원을 뻥튀기시켜주는 Decoder를 사용해서 이러한 문제를 해결했다고 합니다.

이 모듈의 경우 optional 하게 선택할 수 있도록 설계했다고 합니다.

Speed-up 모듈의 장점을 요약하면 다음과 같습니다.

    1. 상대적으로 적은 channel → 연산량 ↓
    2. Decoder 파라미터도 학습 중에 업데이트 → feature 표현력 ↑
    3. 모듈 사용 여부 선택 가능 → 유연성 ↑

 

 

6. Promptable Explicit Scene Representation

저자들은 생성한 feature field를 이용해 텍스트로 프롬프트 된2D 기능을 3D 영역으로 확장시키는 기법을 소개합니다.

 

Semantic segmenation 작업이 novel view synthesis에서 수행된 것을 확인할 수 있죠.

알고리즘을 어떻게 설계했는지를 수식과 함께 알아보도록 하겠습니다.

 

  • x: 타겟 픽셀
  • f(x): x를 표현하는 feature
  • q(τ): query - CLIP 모델의 텍스트 인코더를 통해 인코딩된 입력 

첫 번째로, feature와 query 간의 cosine similarity를 변수 s에 저장합니다.

Cosine similarity는 '두 벡터가 가리키고 있는 방향이 얼마나 비슷한가'를 나타내는 값입니다.
머신러닝에서는 보통 '두 변수가 얼마나 높은 연관성을 가지는가?'를 측정하기 위해 사용됩니다.
그러니까 위에서 계산한 변수 s는 feature랑 query가 얼마나 비슷한지를 나타내는 값이 되겠지요.

 

 

두 번째로, 기존에 정의되어 있는 모든 label에 대해 앞서 계산한 s의 softmax 함숫값을 구해줍니다.

그렇다면 결괏값인 probability는 '해당 픽셀이 주어진 prompt에 얼마나 적합한가?'를 나타내게 되겠죠.

이 값을 기반으로 Gaussian들의 색상과 불투명도를 조절하며 추출, 삭제, 외관 수정과 같은 다양한 작업 수행할 수 있게 됩니다.

[예시] "Extract the banana"

바나나를 표현하는 Gaussian: 기존 불투명도 그대로 사용
나머지 Gaussian: 불투명도를 확 낮춰서 나머지 물체들이 안 보이도록 제거

 

Feature field를 어떻게 활용하는지 이해가 되셨을까요? 😄

논문의 핵심 idea에 대한 설명은 여기까지입니다.

논문이 워낙 길어서😭 실험 결과에 대해 궁금하신 분들은 직접 읽어보시는 것을 권유드립니다.

 

 

 

7. Conclusion

본 논문에서는 기존 3DGS에 semantic 정보를 담은 feature field를 추가하여 여러 downstream task 수행하는 Feature 3DGS라는 방법론을 제안하였습니다.

Feature field를 생성하기 위해 knowledge distillation 기법을 사용하였고, 이때 teacher 모델로는 LSeg와 SAM이 사용되었습니다.

또한,

저자들은 연산 속도를 높이기 위해 Speed-up module이라는 component를 추가하였습니다.

생성된 feature field와 point, bounding box, text 등으로 표현된 프롬프트 간의 cosine 유사도를 계산하여 2D 기능을 3D 공간으로 확장하는 아이디어를 제안했습니다.

 

해당 논문은 대학원 면접 논문 세미나를 준비하다 읽게 되었습니다.

개인적으로 3DGS 논문을 아주 재미있게 읽어서 view syntehsis에 관심이 많았던 터라, 이번 논문도 매우 흥미롭게 읽을 수 있었습니다.


 

저의 글이 언제나 여러분께 도움이 되길 바라겠습니다 ~ ❣️

궁금한 내용 댓글 남겨주시면 빠르게 답변해 드리도록 하겠습니다. 😍

728x90
반응형

'View synthesis' 카테고리의 다른 글

[쉽고 간결한 논문 리뷰] Spacetime Gaussian Feature Splatting for Real-Time Dynamic View Synthesis (CVPR 2024)  (8) 2024.11.16
[쉽고 간결한 논문 리뷰] 3D Gaussian Splatting for Real-Time Radiance Field Rendering (SIGGRAPH 2023)  (4) 2024.09.13
'View synthesis' 카테고리의 다른 글
  • [쉽고 간결한 논문 리뷰] Spacetime Gaussian Feature Splatting for Real-Time Dynamic View Synthesis (CVPR 2024)
  • [쉽고 간결한 논문 리뷰] 3D Gaussian Splatting for Real-Time Radiance Field Rendering (SIGGRAPH 2023)
View synthesis 공부하는 대학원생
View synthesis 공부하는 대학원생
AI - view synthesis에 대해 공부하고 있으며, AI 공부하시는 분들과 함께 소통하고 싶습니다 😍
  • View synthesis 공부하는 대학원생
    Happy Support's Blog
    View synthesis 공부하는 대학원생
  • 전체
    오늘
    어제
    • 분류 전체보기 (63)
      • View synthesis (3)
      • Backbone (5)
      • Generative Models (5)
      • On-device AI (3)
      • ML (2)
      • DL (1)
      • LLM (2)
      • 코딩테스트 (25)
      • 에러 해결 모음집 (12)
      • 기타 (4)
  • 링크

  • 인기 글

  • 최근 댓글

  • 최근 글

  • 250x250
    반응형
  • hELLO· Designed By정상우.v4.10.3
View synthesis 공부하는 대학원생
[쉽고 간결한 논문 리뷰] Feature 3DGS: Supercharging 3D Gaussian Splatting to Enable Distilled Feature Fields (CVPR 2024)
상단으로

티스토리툴바