Time Series Lab

알파 블렌딩과 볼륨 렌더링 — 사실은 같은 식이다

서론 앞 글은 z-버퍼로 끝났습니다. 그리고 z-버퍼에는 조건이 하나 붙어 있었습니다. 불투명할 때만 그렇습니다. 이 글은 그 조건이 깨졌을 때의 이야기입니다. 그리고 그 이야기를 끝까지 따라가면 뜻밖의 곳에 도착합니다. 반투명 이미지를 겹치는 규칙(알파 블렌딩)과 NeRF의 볼륨 렌더링 적분이 완전히 같은 식이라는 사실입니다. 이건 우...

래스터화 — 3차원을 화면에 칠하는 가장 빠른 방법

서론 3D Gaussian Splatting 글에서 속도 차이를 이렇게 한 줄로 정리했습니다. 광선 마칭 대신 래스터화. 이 한 줄이 속도 차이의 대부분을 설명합니다. 이 글은 그 한 줄을 풀어 씁니다. 앞의 SfM과 MVS가 사진에서 3차원을 얻는 이야기였다면, 지금부터 세 편은 반대 방향 — 가지고 있는 3차원을 화면에 그리는 이야기입...

MVS — 희소한 점군을 표면으로 만드는 고전적인 방법

서론 앞 글에서 SfM이 카메라 포즈와 희소 점군을 뱉는 데까지 왔습니다. 그런데 그 점군은 특징점이 잡힌 자리에만 있습니다. 이미지 한 장에 수천 개, 장면 전체로는 수만 개 정도입니다. 이걸로는 물체의 표면이라고 부를 만한 게 안 나옵니다. MVS(Multi-View Stereo) 는 그 다음 단계를 맡습니다. 카메라 포즈를 이미 안다고...

MLP와 역전파 — 신경망이 함수를 배우는 방법

서론 3D Gaussian Splatting 글을 쓰고 나서, 그 글이 설명 없이 지나간 것들이 눈에 밟혔습니다. “장면을 MLP 하나로 표현한다”, “Adam으로 갱신한다”, “전 과정이 미분 가능하다”, “SH 계수로 색을 둔다” — 각각이 따로 한 편씩 필요한 이야기입니다. 그래서 3DGS를 읽기 위한 기초지식 시리즈를 시작합니다. 이 글이 ...

SLAM의 프론트엔드와 백엔드 — 실시간이라는 제약이 구조를 만든다

서론 지난 글에서 카메라와 점을 전부 미지수로 놓고 한꺼번에 최적화하는 번들 조정까지 왔습니다. 이론적으로는 이걸로 끝입니다. 관측을 전부 모아 번들 조정을 돌리면 최적해가 나옵니다. 문제는 로봇이 지금 어디 있는지 33밀리초 안에 답해야 한다는 것입니다. 이 제약 하나가 시스템의 구조를 결정합니다. 모든 관측을 다 모을 때까지 기다릴 수 없고,...