AI VIDEO BRIEFING

CityGaussian 논문 정리: 3D 가우시안 스플래팅으로 대규모 도시를 실시간 렌더링하는 방법

3D 가우시안 스플래팅으로 1.5제곱킬로미터급 도시를 실시간 렌더링한 CityGaussian 논문을 정리했다. 메모리 폭발을 피하는 분할 정복, SSIM 기반 사진 배분, 블록 단위 LOD가 어떻게 초당 53.7프레임을 만들어냈는지 짚었다.

도시 전체를 스마트폰에서 실시간으로 날아다니기, CityGaussian이 푼 세 가지 문제 영상 대표 이미지

핵심 메시지

  • 3D 가우시안 스플래팅은 빛과 색을 품은 반투명한 점 수백만 개를 공간에 띄워 화면에 뿌리는 명시적 표현 방식이라, 신경망 안에 장면을 통째로 욱여넣는 기존 방식보다 훨씬 빠르다.
  • 문제는 규모다. 1.5제곱킬로미터급 도시 하나를 고품질로 표현하려면 가우시안이 최소 2천만~3천만 개 필요한데, 반투명한 점들을 카메라 거리 순으로 매 프레임 다시 정렬해야 해서 연산량이 폭발한다.
  • 연구진은 무한히 뻗은 공간을 유한한 큐브로 수축시킨 뒤 격자로 나누고, 나누기 전에 저해상도로 약 3만 회 사전 학습해 '글로벌 뼈대'를 만들어 블록 경계가 어긋나는 문제를 막았다.
  • 어떤 사진을 어느 블록에 줄지는 카메라 위치가 아니라 SSIM(구조적 유사도) 기여도로 정한다. 그 사진을 빼면 해당 블록의 렌더링 품질이 무너지는지를 수치로 채점해 실제로 쓸모 있는 사진만 배분하는 방식이다.
  • 렌더링 단계에서는 압축률이 다른 세 버전을 미리 만들어 두고, 거리 계산을 점 단위가 아니라 블록 단위로 한 번만 수행해 LOD를 일괄 적용한다. 그 결과 매트릭시티 데이터셋 기준 2,370만 개의 가우시안을 초당 53.7프레임, PSNR 27.3으로 렌더링했다.

쉽게 이해하기

이 영상은 대규모 장면을 실시간으로 그려내는 CityGaussian 논문을 대담 형식으로 풀어낸다. 출발점은 3D 가우시안 스플래팅이라는 기술이다. 발표자는 이를 '반투명한 3D 물방울 수백만 개로 허공에 그림을 그리는 방식'에 비유한다. 각 물방울은 위치와 색, 투명도를 지니고 공간에서 늘어나거나 회전할 수 있다.

이전에 3D 장면 복원을 주도하던 방식은 빛의 이동을 신경망이 수학적 함수로 계산하는 암시적 모델이었다. 한 장의 이미지를 뽑으려면 내부에서 엄청난 연산을 거쳐야 해 렌더링이 느렸다. 반면 가우시안 스플래팅은 형태가 명확한 데이터를 화면에 바로 뿌리기 때문에 품질과 속도를 함께 잡을 수 있었다.

그런데 도시 규모로 키우면 두 겹의 벽에 부딪힌다. 첫째는 메모리다. 점의 개수가 일정 수준을 넘으면 그래픽 카드 메모리를 초과해 렌더링 프로그램 자체가 강제 종료된다. 둘째는 정렬이다. 반투명한 점들은 먼 것부터 가까운 것 순서로 색을 겹쳐 칠해야 제대로 보이는데, 카메라가 조금만 움직여도 수천만 개의 거리를 다시 계산해 순서를 새로 잡아야 한다.

그래서 공간을 쪼개야 하지만, 지도를 바둑판처럼 균일하게 자르면 안 된다. 고층 빌딩이 빽빽한 블록은 과부하로 죽고 하늘만 잡힌 블록은 놀게 되기 때문이다. 연구진은 먼저 무한한 공간을 유한한 상자 안으로 수축시킨다. 밀집한 중심부는 그대로 두고 텅 빈 배경 공간을 수학적으로 압축해 상자 가장자리로 밀어 넣는, 말하자면 우주를 스노우글로브에 담는 방식이다.

블록을 따로 학습시키면 이음새가 어긋나고 허공에 떠도는 가짜 점(플로터)이 생긴다. 이를 막기 위해 연구진은 정밀 학습 전에 전체 데이터를 저해상도로 약 3만 회 반복 학습해 거친 전역 뼈대를 먼저 잡는다. 스케치를 먼저 그린 뒤 부분마다 디테일을 채우는 셈이어서, 나중에 블록을 이어 붙여도 경계가 드러나지 않는다.

주요 인사이트

  • 사진을 블록에 배분할 때 카메라 위치만 보면 실패한다. 같은 자리에 서 있어도 렌즈가 하늘을 향했다면 그 블록 학습에 쓸모가 없고, 반대로 멀리서 망원으로 당겨 찍은 사진은 카메라가 다른 구역에 있어도 해당 블록에 반드시 필요하기 때문이다.
  • SSIM 기여도만으로 거르면 사각지대가 생긴다. 블록 가장자리에서 바깥을 향해 찍은 사진은 점수가 낮아 버려지는데, 그러면 나중에 그 구석에서 바깥을 내다볼 때 이미지가 왜곡된다. 연구진은 '블록 안에 물리적으로 위치한 카메라의 사진은 점수와 무관하게 포함한다'는 예외 규칙으로 이를 막았다.
  • 블록의 크기와 중심을 평균으로 구하면 허공에 떠 있는 쓰레기 점 하나 때문에 경계 상자가 비정상적으로 부풀어 거리 계산이 어긋난다. 중앙값 절대 편차(MAD)를 써서 극단값을 통계적으로 걷어내는 것이 이 문제의 해법이었다.
  • LOD의 성패는 '어떤 단위로 거리를 재느냐'에 달려 있다. 점마다 거리를 계산하면 최적화 비용이 배보다 배꼽이 커지지만, 블록 중심과 카메라 거리를 한 번만 재고 그 안의 수십만 점에 같은 레벨을 적용하면 연산량이 급격히 줄어든다.
  • 명시적 표현이 만드는 진짜 차별점은 편집 가능성이다. 도시가 독립적인 점들의 집합이므로 건물 지붕 색을 바꾸거나, 특정 건물을 통째로 지우고 다른 건물을 심거나, 도로 위 자동차를 옮겨 교통 상황을 시뮬레이션하는 조작이 가능하다.

자주 묻는 질문

왜 도시 전체를 한 번에 렌더링할 수 없었나?

고품질로 표현하려면 가우시안 점이 최소 2천만~3천만 개 필요한데, 이는 그래픽 카드 메모리 한계를 넘어선다. 게다가 반투명한 점들을 카메라로부터 먼 순서대로 겹쳐 칠해야 해서, 카메라가 움직일 때마다 수천만 개의 거리를 다시 계산하고 정렬해야 한다. 이 두 가지가 결합해 연산량이 폭발한다.

블록을 나눠 학습하면 경계가 어긋나지 않나?

그래서 정밀 학습 전에 전체 데이터를 낮은 해상도로 약 3만 회 반복 학습해 거친 전역 가우시안, 즉 뼈대를 먼저 만든다. 모든 블록이 이 뼈대를 공유한 상태에서 각자 디테일을 채우기 때문에, 나중에 합쳐도 경계선이 드러나거나 허공에 가짜 점이 떠다니는 문제가 생기지 않는다.

최종 성능은 어느 정도인가?

매트릭시티 데이터셋 기준으로 2,370만 개의 가우시안을 그대로 렌더링하면 초당 21프레임에 그쳤지만, LOD를 적용하자 고도 150미터에서 500미터까지 급격히 오르내리는 가혹한 조건에서도 초당 53.7프레임을 유지했다. 화질 지표인 PSNR은 27.3을 기록했다.

이 기술의 남은 한계는 무엇인가?

논문이 다루는 장면은 시간이 멈춘 정적인 세계라는 점이다. 빛의 변화, 계절의 순환, 달리는 자동차나 지나가는 사람처럼 계속 변하는 요소는 반영되지 않는다. 영상은 여기에 시간축을 더한 '4D 디지털 트윈'을 다음 과제로 제시한다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식

#3D 가우시안 스플래팅#CityGaussian#실시간 렌더링#디지털 트윈#논문 리뷰