분류 전체보기 101

[Paper Review] Mini-Splatting: Representing Scenes with a Constrained Number of Gaussians

2024년 3월에 arxiv에 올라온 논문으로,기존에 3DGS의 가우시안 수 혹은 차원을 줄이기 위한 시도들(LightGaussian, Compact3DGS 등..)의 한계를 언급하며새로운 아이디어를 주장한다는 점에서 흥미로워 읽게 되었다.  Mini-Splatting: Representing Scenes with a Constrained Number of GaussiansIn this study, we explore the challenge of efficiently representing scenes with a constrained number of Gaussians. Our analysis shifts from traditional graphics and 2D computer vision to t..

3DGS에서 Covariance Matrix를 구할 때 transpose matrix를 곱해주는 이유?

3DGS 논문을 읽다가 수식을 보고 든 궁금증이다. 먼저, world 좌표계에서 covariance matrix(공분산행렬)은,(1) 크기변환행렬(scaling matrix) S와 (2) 회전변환행렬(rotation matrix) R을 이용해서 =RSSTRT=RSSTRT다음과 같은 식으로 변환한다. 또한, image 좌표계에서 공분산행렬은,(1) world좌표계에서 camera좌표계로 변환하는 viewing transform과 (2) camera좌표계에서 image좌표계로 변환하는 projective transformation에 대한 아핀근사의 Jacobian을 이용해서 =JWWTJT=JWWTJT위의 식으로 표현한다.  두 식을 살펴보면 왜 전치행렬..

3DGS에서 휴리스틱(heuristic)의 의미?

Radsplat 논문을 읽다가 3DGS의 한계점으로,휴리스틱 기법으로 인해 optimization하기 어렵다는 얘기가 있었다.3DGS, however, suffers from a challenging optimization landscape and an unbounded model size.The number of Gaussian primitives is not known as a priori, and carefully-tuned merging, splitting, and pruning heuristics are required to acheive satisfactory results.The brittlenenss of these heuristics become particularly evident in..

NeRF 간단 설명 with 약간의 코드

[Paper Review] NeRF : Representing Scenes as Neural Radiance Fields for View Synthesis (ECCV2020)NeRF 모델은 많은 블로그와 유튜브 자료를 찾아보며 이해하는 수준에 그쳤는데 논문을 정독하니 훨씬 더 이해 정도가 깊어진 기분이다. 직접 글을 써보며 완벽히 내 것으로 만들자! 다음과 같은 dusruddl2.tistory.com ↑ 논문 리뷰를 했었는데 정말 내가 NeRF 모델을 제대로 이해하고 있나? 의문이 들어서 쓰게 된 포스트 헷갈렸던 부분 위주로 간단 리뷰할 예정이다. nerf/tiny_nerf.ipynb at master · bmild/nerfCode release for NeRF (Neural Radiance Fields..

[Paper Review] 3D Gaussian Splatting for Real-Time Radiance Field Rendering (SIGGRAPH 2023)

3DGS를 처음 공부하시는 분들이라면 xoft님의 블로그와 유튜브 강의를 먼저 들으시는걸 추천드립니다.전체 알고리즘을 이해하기 쉽게 다뤄주시기 때문에 이해가 쉽습니다 :) 본 글은 논문을 순서대로 읽고 싶은 분에게 도움이 될 것으로 예상합니다. (xoft님의 글을 많이 참고하였습니다.)부족한 지식으로 작성한 글이기 때문에 잘못된 부분이 있을 수 있습니다. 마음껏 지적해주세요! 1. IntroductionMLP를 바탕으로 하는 NeRF 기반의 모델들은 렌더링 속도가 너무 느려 실제 응용에는 제한적이었는데본 논문에서 제안하는 3DGS를 통해(1) training 시간도 이전 방법처럼 빠르게 그리고 (2) 퀄리티도 유지하면서 (3) 렌더링 속도를 매우 향상시킬 수 있었다.(real-time, high-qual..

3DGS의 tile rasterizer에서 겹치는 tile개수에 따라 인스턴스화하는 이유?

3DGS의 tile rasterizer 부분을 읽다가 왜 그렇지?하는 생각을 들게 한 부분이 있었다. We then instantiate each Gaussian according to the number of tiles they overlap and assign each instance a key that combines view space depth and tile ID. 왜 가우시안을 그들이 겹치는 타일 수로 인스턴스화하는 것일까? 이는 해당 가우시안이 이미지에 어느정도 영향을 미치는지 반영하기 위해서라고 생각한다. 예를 들어, 한 이미지가 논문처럼 16x16 타일로 분할되어 있다고 생각해보자. 이미지에 projection된 2D 가우시안들을 고려해볼 때, 가우시안이 겹치는 타일 수가 많을 경우 -..

3DGS에서 뷰 절두체 view frustum이란?

3DGS에서 Cull 3D Gaussian을 할 때,view frustum과의 교차가 99%인 가우시안만을 남기고 나머지는 제거한다고 했다.6 FAST DIFFERENTIABLE RASTERIZER FOR GAUSSIANSwe only keep Gaussians with a 99% confidence interval intersecting the view frustum 도대체 뷰 절두체가 무엇인지 이해해보도록 하자 뷰 절두체(view frustum)이란?피라미드 같은 모양의 윗부분을 밑면에 병렬로 잘라낸 입체 형상즉, 카메라가 볼 수 있는 영역이라고 생각하면 좋다.  카메라와 막대기를 설명한 예시인 아래의 3가지 경우를 생각해보자.1) 카메라 바로 앞에 막대기가 있다면 -> 카메라에는 점만이 보일 것이다..

3DGS에서 알파 블렌딩 α-blending 이란?

3DGS 논문에서 사용되고 있는 α-blending도대체 이 논문에서 의미하는 알파 블렌딩이 무엇인지 내 생각을 정리해보겠다. 알파 블렌딩이란?여러 이미지들을 합성할 때, 투명도(α)값을 사용하여 부드럽게 혼합하는 기술이다.아래 사진과 같이 α값이 작으면 더 투명해지고, α값이 커지면 더 불투명해진다. 기존에는 이미지를 오직 RGB 3가지로 표현을 했다면,이미지의 투명한 효과를 구현하거나 (ex. 로고 이미지의 배경 투명하게 or 그림자 효과)여러 이미지를 합성할 때 각 픽셀의 가중치를 제어할 때 사용하기 위해RGB외에 투명도를 추가하여 RGBA 4가지로 표현을 한다.  이 기술을 3DGS 모델에는 어떻게 사용한다는걸까? 3DGS 모델은 SFM points를 통해 3D Gaussian을 만든 후,proj..

[Paper Review] NeRF : Representing Scenes as Neural Radiance Fields for View Synthesis (ECCV2020)

NeRF 모델은 많은 블로그와 유튜브 자료를 찾아보며 이해하는 수준에 그쳤는데 논문을 정독하니 훨씬 더 이해 정도가 깊어진 기분이다. 직접 글을 써보며 완벽히 내 것으로 만들자! 다음과 같은 순서로 글이 진행된다. 0. [Abstract] NeRF 간단 설명 1. [Background] Explicit Representation vs Implicit Representation 2. Neural Radiance Field Scene Representation 2.1 Overview 2.2 MLP Network 3. Volume Rendering with Radiance Field 3.1 [Equation 1] The expected color of the input ray. 3.2 [ Equation 2]..

[Git] 로컬에 있는 폴더를 깃허브 Repo에 올리는 방법

로컬에 저장해둔 workspace 폴더를 깃허브로 올릴 예정이다. 다음 두 가지는 이미 준비되어 있다는 가정하에 진행하겠다 1. Git Bash 설치 2. Github Repo 생성 후 copy된 주소 다음 과정을 한 단계씩 차근차근 수행하면 된다. gitinitgitinit git status gitadd.gitadd. git commit -m "commit message" gitremoteaddorigin(copied)gitremoteaddorigin(copied) git remote -v gitpushoriginmastergitpushoriginmaster git init 로컬 저장소를 생성하는 단계로, 실행 이후, workspace 폴더 안에 .git이라는 폴더가 생긴다 *가끔 오류가 생기는 경우에는, .git 폴더 삭제 후 다시 git ini..