Gaussian Splatting
포토리얼리스틱 3D 장면 재구성을 위한 가우시안 스플래팅(Gaussian Splatting)을 탐색하십시오. 이것이 어떻게 실시간 렌더링을 가능하게 하고 시각 인식을 위해 Ultralytics YOLO26과 통합되는지 알아보십시오.
Gaussian Splatting은 컴퓨터 그래픽학과 컴퓨터 비전에서 일련의 2D 이미지로부터 광사실적인 3D 장면을 재구성하기 위해 사용되는 현대적인 래스터화 기법입니다. 다각형 메시(polygon mesh)에 의존하는 전통적인 3D 모델링이나, 신경망을 사용하여 장면을 근사화하는 Neural Radiance Fields (NeRF)와 같은 최근의 AI 발전과 달리, Gaussian Splatting은 수백만 개의 3D 가우시안 분포(타원체)의 집합으로 장면을 표현합니다. 이 방법은 높은 프레임 속도(종종 100 FPS 초과)에서 실시간 렌더링을 허용하는 동시에 뛰어난 시각적 충실도를 유지하여, 이전의 뷰 합성 방법에서 발견되던 주요 성능 병목 현상을 해결합니다.
Gaussian Splatting의 작동 원리#
핵심 아이디어는 3D 공간을 암시적이 아닌 명시적으로 표현하는 데 있습니다. 전형적인 워크플로우에서, 이 과정은 Structure from Motion (SfM)이라는 기법을 사용하여 일련의 사진으로부터 생성된 희소 포인트 클라우드(point cloud)로 시작됩니다. 이 클라우드의 각 포인트는 그 후 3D 가우시안으로 초기화됩니다.
학습 과정(training process) 동안, 시스템은 각 가우시안에 대한 여러 파라미터를 최적화합니다:
- 위치(Position): 장면 내의 3D 좌표(X, Y, Z).
- 공분산(Covariance): 타원체의 모양과 회전을 결정합니다(예: "splat"이 얼마나 늘어나거나 기울어져 있는지).
- 불투명도(Opacity): Gaussian이 얼마나 투명하거나 단단하게 보이는지(알파 값).
- 색상: 구면 조화 함수(Spherical Harmonics)를 사용하여 표현되며, 시야각에 따라 색상이 변경될 수 있도록 하여 사실적인 반사와 조명 효과를 포착합니다.
"스플래팅(splatting)"이라는 용어는 이러한 3D 가우시안들이 이미지 형성을 위해 2D 카메라 평면에 투영되거나 "스플랫(splatted)"되는 래스터화(rasterization) 과정을 말합니다. 이 투영은 완전히 미분 가능하며, 이는 렌더링된 이미지와 원래의 정답(ground-truth) 사진 간의 차이를 최소화하기 위해 표준 경사 하강법(gradient descent) 알고리즘이 사용될 수 있음을 의미합니다.
Gaussian Splatting 대 NeRF#
두 기법 모두 장면의 새로운 뷰를 생성하는 것을 목표로 하지만, 아키텍처와 성능 면에서 근본적으로 다릅니다. NeRF (Neural Radiance Fields)는 신경망(neural network)의 가중치 내에 장면에 대한 정보를 인코딩합니다. NeRF를 렌더링하려면 모든 단일 프레임(레이 마칭)에 대해 이 네트워크를 수백만 번 쿼리해야 하므로 계산 비용이 많이 들고 느립니다.
대조적으로, Gaussian Splatting은 명시적 표현(가우시안 목록)을 사용합니다. 이를 통해 비디오 게임이 그래픽을 렌더링하는 방식과사 유사한 효율적인 타일 기반 래스터화를 활용할 수 있습니다. 결과적으로, Gaussian Splatting은 NeRF에 비해 학습 및 렌더링 속도가 훨씬 빠르므로, 소비자용 애플리케이션 및 실시간 추론(real-time inference)에 더욱 적합합니다.
실제 애플리케이션 사례#
Gaussian Splatting의 속도와 품질은 다양한 산업 분야에서 새로운 가능성을 열었습니다:
- 가상 관광 및 부동산: 크리에이터는 드론이나 스마트폰을 사용하여 박물관, 유적지 또는 판매용 주택을 촬영할 수 있습니다. Gaussian Splatting을 통해 원격 사용자는 6 자유도(6DoF)로 가상 현실(VR)에서 이러한 공간을 탐색할 수 있으며, 전통적인 사진 측량(photogrammetry)에서는 놓칠 수 있는 원목 바닥의 반사와 같은 미세한 세부 사항을 볼 수 있습니다.
- 자율주행 시뮬레이션: 자율주행차(autonomous vehicles)를 개발하는 기업들은 인지 알고리즘을 테스트하기 위해 방대한 양의 데이터를 필요로 합니다. Gaussian Splatting은 센서 데이터로부터 실제 도시 블록을 재구성하여 광사실적인 시뮬레이션 환경을 생성할 수 있습니다. 이러한 환경 내에서 Ultralytics YOLO26과 같은 비전 모델을 테스트하여 복잡한 3D 시나리오에서 위험 요소를 올바르게 식별하는지 확인할 수 있습니다.
컴퓨터 비전을 이용한 Splatting 전처리#
Gaussian Splatting이 효과적으로 작동하려면 학습 이미지는 대개 정적이어야 합니다. 소스 사진의 움직이는 물체(보행자나 자동차 등)는 "플로터(floaters)"라고 하는 아티팩트를 유발할 수 있습니다. 고급 파이프라인은 스플랫 모델을 학습하기 전에 이러한 동적 요소를 자동으로 마스킹하기 위해 인스턴스 세분화(instance segmentation)를 사용합니다.
Ultralytics Platform을 통해 팀은 데이터셋을 관리하고 이 전처리 단계를 도울 수 있는 모델을 학습할 수 있습니다. 다음은 3D 재구성을 위해 의도된 데이터셋에 대한 마스크를 만들기 위해 세분화 모델을 사용하는 방법의 예시입니다:
from ultralytics import YOLO
# Load the YOLO26 segmentation model
model = YOLO("yolo26n-seg.pt")
# Run inference on an image from the scan dataset
# Class 0 is 'person' in COCO - we mask them out to keep the scene static
results = model.predict("scan_frame_001.jpg", classes=[0])
# Save the generated mask to exclude the person from the 3D reconstruction
for result in results:
result.save_masks("scan_frame_001_mask.png")AI에서의 중요성 및 미래 동향#
Gaussian Splatting은 딥러닝(Deep Learning)의 학습 가능성과 고전적인 컴퓨터 그래픽스의 효율성을 결합한 하이브리드 방법으로 컴퓨터 비전(computer vision) 분야의 전환점을 나타냅니다. 이 기술은 빠르게 발전하고 있으며, 연구자들은 (클 수 있는) 파일 크기를 압축하고 생성형 AI(generative AI)와 통합하여 텍스트 프롬프트로부터 3D 에셋을 생성하는 방법을 탐구하고 있습니다. GPU와 같은 하드웨어 가속기가 계속 개선됨에 따라, Gaussian Splatting은 실제 세계를 디지털 형태로 포착하고 렌더링하기 위한 표준이 될 가능성이 높습니다.






