CVPR의 주인공 VGGT와 D4RT
제 블로그의 모든 글은 AI로 작성된 문장이 없습니다
인공지능과 컴퓨터 비전 분야에서 가장 권위 있는 컨퍼런스인 CVPR에서 2025년에는 VGGNet으로 유명한 옥스포드 대학 Visual Geometry Group (VGG) 연구실과 META AI의 공동연구인 VGGT가 최우수 논문으로 선정되었고, 2026년에는 Google DeepMind팀의 D4RT 논문이 최우수 논문으로 선정되었습니다.
VGGT와 D4RT는 서로 다루는 문제가 거의 동일한데요. CVPR에서 이 두 논문을 2년동안 최우수 논문으로 선정한 점이 재밌습니다. VGGT 연구진은 2026년 CVPR에서 후속연구인 VGGT-Ω를 발표했습니다. 이 글에서는 VGGT와 D4RT를 소개하고 비교하는 시간을 가져보겠습니다.
INDEX
- 논문 선정 배경
- VGGT와 VGGT-Ω
- 레지스터 토큰
- D4RT
- 응용 분야
- 마무리
논문 선정 배경
어느 날 3명의 개발자로 구성된 프랑스의 인디 게임 개발사 DRAMA에서 Unrecord 라는 게임플레이 트레일러를 융튜브에 업로드 합니다. 이 게임은 극사실주의 그래픽과 마치 바디캠에서 촬영한 듯한 카메라 위치와 모션을 표방하며 많은 사람들의 관심을 받게되죠.
작년에 제 블로그에서 다수의 사진 데이터를 가지고 3D 공간을 복원하는 3D Gaussian Splatting (3DGS) 논문을 다룬 적이 있습니다. 3DGS를 사용하면 실사 그래픽을 실시간으로 렌더링’은’ 해줄 수 있습니다. 3DGS 기술을 체험해보고 싶다면 샌프란시스코 그레이스 대성당을 브라우저에서 렌더링하는 웹사이트에 방문해보세요.
물론 3DGS 기술은 언리얼 엔진5가 만드는 그래픽에 비하면 퀄리티는 많이 떨어집니다. Unrecord도 트레일러 영상을 보면 3DGS기술은 아니고 순수하게 언리얼 엔진5의 차력쇼로 보이죠. 그래도 게임 개발 과정에서 가장 많이 노력과 시간이 투입되는 곳이 아트 리소스인만큼 플레이어가 도달할 수 없는 배경이라도 3DGS로 렌더링 하면 더 다양한 경험을 만드는데 도움이 되지 않을까 생각했습니다.
그래서 영상 데이터를 가지고 3D 공간을 복원하는 방법을 고민하고 있었는데요. 3DGS를 만들기 위해서는 이미지 데이터와 함께 카메라 파라미터 정보도 같이 있어야 합니다. 근데 영상에는 카메라 정보가 포함되지 않았죠? 여러 연구를 찾다가 NAVER LABS에서 개발한 DUSt3R과 MUSt3R을 사용해봤는데요. 정확도가 제 기대만큼 나오지 않아서 대안을 찾다가 오늘의 주인공인 VGGT와 D4RT를 만나게 됩니다.
VGGT와 VGGT-Ω
컴퓨터 비전 연구자들은 1900년도 후반대부터 이미지 데이터로 3D공간을 복원하는 방법을 찾고 있었습니다. SfM(Structure from Motion)은 1979년도에 발표된 논문으로 이미지들 사이의 상대적인 변경사항을 통해서 3D 구조를 찾을 수 있다고 보았고 카메라 포즈와 Point Cloud를 추정합니다. 이 분야는 나름의 진보와 성과를 달성했고 2016년에 개발된 COLMAP이라는 범용라이브러리가 많은 분야에서 사용되고 있었습니다. 이 라이브러리를 개발한 Johannes Schönberger는 META에서 일하고 있으며 VGGT-Ω 논문에 이름을 올렸습니다.
그리고 지금 세상은 대AI시대를 맞이했죠. 거의 모든 컴퓨터과학 분야들이 딥러닝 기술에 의해 정복당하고 있습니다. 과거의 솔루션들은 폐기되거나 딥러닝 분야로 흡수되었죠. 근데 사실 우리는 AI의 시대 보다는 트랜스포머의 시대를 살고있다가 더 재밌는 표현일지도 모릅니다. AI논문을 펼쳐보면 트랜스포머가 아닌 아키텍처를 찾는게 어렵죠. 3D 분야에서도 VGGSfM(2023), DUSt3R(2023), MUSt3R(2025)등이 전통적인 솔루션을 트랜스포머 모델로 대체하려는 시도를 했습니다.
① 아키텍처
VGGT는 앞서 소개된 모델을 넘어 SOTA성능을 달성했음은 물론이고
아래 같은 재밌는 문장을 논문에 넣었습니다.
We also show that it is unnecessary to design a special network for 3D reconstruction. Instead, VGGT is based on a fairly standard large transformer
3D reconstruction 문제를 위해 특별한 네트워크를 만들기 보단, 그냥 국밥 트랜스포머 구조를 대규모로 키우는게 맞는 판단이다라고 주장합니다. 더불어 GPT, CLIP, DINO, Stable Diffusion처럼 각자 분야에서 백본역할을 하고 있는 모델들 처럼 VGGT도 3D분야에서 백본 모델 역할을 할 수 있다고 말합니다.
VGGT는 $N$개의 이미지를 입력으로 주고 $N$개의 카메라 파라미터 $g$, 깊이 추정 결과인 $D$, 포인트 클라우드 $P$, 포인트 트래킹 $T$를 반환합니다.
$$ f((I_i)_{i=1}^N) = (g_i, D_i, P_i, T_i) $$
위 그림에서 DPT는 Vision Transformer for Dense Prediction (2021)입니다.
VGGT-Ω의 아키텍처가 크게 바뀌지 않아서 바로 넘어가 봅시다.
DPT헤드는 메모리를 많이 사용하는 고해상도 고차원 파라미터를 다루는데요. 이를 절약하기 위해 DPT 헤드를 삭제하고 단순한 MLP Layer로 대체했습니다. 또한 별도의 PointMap, Tracking 출력 헤드는 제거하고 이를 손실함수에 넣어서 내부 파라미터 표현에 기여하게 했습니다.
재밌는 건 Point Map은 카메라 파라미터와 Depth Map을 알고있다면 계산이 가능한데, Tracking기능은 아니거든요? 이렇게 기능 하나를 포기하고 아키텍처의 복잡성을 줄인 이유는 학습 메모리를 줄여 더 큰 모델과 더 많은 데이터로 확장하기 위해서입니다.
이전 버전인 VGGT는 1B모델을 가지고 있었고, 이후에 다룰 D4RT도 1.144B모델입니다. VGGT-Ω는 10B까지 파라미터를 증가시켰고 이 범위 안에서는 안정적으로 정확도가 증가했습니다. 평가 자료를 보면 모든 분야에서 SOTA 성능을 보여줍니다.
② DINO
DINO는 정답 라벨 없이 이미지만으로 시각적 특징을 학습하는 META의 비지도 학습(Self Supervised Learning) 프레임워크입니다. 마치 LLM이 다음 단어를 예측하는 방식의 비지도 학습으로 인터넷 스케일의 데이터를 학습해서 성과를 올린 것 처럼, META는 이미지 분야에서도 DINO를 통해 비슷한 일을 하고자 했습니다. 그 결과 성과가 있었고 SAM과 VGGT등 많은 비전 모델에서 파운데이션 역할을 하고 있습니다.
이미지 시퀀스들은 DINOv3 트랜스포머를 거쳐 패치 토큰으로 변환되어 VGGT-Ω의 입력으로 들어갑니다. 연구자들이 이 과정을 통해 이미지가 RGB픽셀 표현 뿐 아니라 시각적으로 의미있는 정보를 가지고 있길 기대합니다.
③ Alternating-Attention (AA)
VGGT는 표준 트랜스포머를 살짝 바꿔서 모든 프레임의 패치 토큰 끼리 어텐션을 계산하는 Global Attention과 프레임 내 패치 토큰끼리 어텐션을 계산하는 Frame Attention을 나눠서 계산합니다. 이 구조를 논문에서는 Alternating-Attention 이라고 부릅니다.
연구자들은 이런 구조를 사용해서 다른 프레임 이미지의 정보를 통합하고, 이미지 내에서 국소적으로 반영되는 정보 사이의 밸런스를 잡으려고 합니다.
④ 레지스터 토큰 ⭐
VGGT-Ω에서는 META에서 2023년에 발표한 Vision Transformers Need Registers (2023)논문에서 제안한 레지스터 토큰이 사용되었습니다. 이 개념이 재밌기도 하고, VGGT-Ω에서도 중요하게 다뤄지기 때문에 아래에서 따로 공간을 할애해서 다루겠습니다.
⑤ 데이터셋 규모와 비지도 학습
VGGT-Ω는 3D전용으로 정제된 데이터셋을 사용해 모델을 먼저 학습시키고, 레이블이 없는 데이터는 DINO와 비슷한 방식으로 비지도 학습을 한 번 더 진행합니다. 아래는 논문에서 언급된 데이터셋들을 규모 순으로 나열한 표입니다. 이미지 해상도를 타협하면 크기를 더 줄일 수도 있는데요. 그걸 감안해도 꽤 큰 규모입니다.
개인적으로 궁금한 건 공개된 데이터 셋만 사용하는 게 아니라, 다른 프론티어 AI회사들처럼 저작권 무시하고 인터넷 세상의 많은 영상 데이터들을 학습시키면 어떤 효과가 있을지 궁금하긴 합니다.
| 데이터 셋 | 파일 크기 |
|---|---|
| DL3DV-10K | ~44 TB |
| uCO3D | ~19.27 TB |
| TartanGround | ~15 TB |
| Taskonomy | ~11.16 TB |
| ScanNet Series | ~9 TB |
| ParallelDomain-4D | ~5.5 TB |
| CO3Dv2 | ~5.5 TB |
| WildRGBD | ~4 TB |
| BEHAVIOR-1K | ~3.27 TB |
| Dynamic Replica | ~2.23 TB |
레지스터 토큰
META AI의 연구자들은 완전히 멘탈이 나가버렸습니다. 자사 모델인 DINO를 DINOv2로 업그레이드하면서 다른 태스크들은 성능이 증가했는데, 객체 탐지 분야에서는 만족할만한 성능을 보여주지 못했거든요. 이 원인을 찾기위해 트랜스포머 레이어들의 피쳐 맵을 보는데 흥미로운 현상을 발견합니다. 출력에서 일부 패치 토큰의 **크기(Norm)**가 일반 토큰의 약 10배에 달하며, 이런 이상치 토큰이 전체 패치 토큰의 약 2%를 차지합니다. 흥미로운 건 이런 High Norm 토큰이 별로 정보가 없는 배경에서 나타난다는 겁니다.
이런 현상에 대해 연구자들이 흥미로운 가설 하나를 제안합니다. 모델이 여러 레이어를 거치면서 서로 다른 패치 토큰끼리 글로벌 정보를 교환해야 할 필요가 생겼고, 중복된 정보가 많아서 제거해도 별 영향이 없는 배경쪽을 메모리로 사용한다는 겁니다.
이 현상을 검증하기 위해 Outlier 토큰과 일반 토큰을 가지고 로지스틱 회귀 분류기를 만들어서 이미지 분류 태스크 성능을 검증해봤습니다.
이제 현상을 설명할 수 있는 가설은 만들었는데, 이걸 그냥 방치하면 어떻게 될까요? 배경이라 중복 정보가 많다고 해도 밀도 추정 태스크처럼 특정 분야에선 모든 위치에서 예측값을 만들어야 하기도 하고, 텍스처가 복잡한 이미지면 마땅히 메모리로 재사용할 공간이 없기 때문에 이런 Outlier들이 안정적으로 생겨나지 않습니다
연구자들은 이 문제를 해결하기 위해 아주 간단한 솔루션 하나를 제안하는데요. 전역 정보를 재사용할 수 있는 공간을 그냥 만들어주자는 취지로 랜덤하게 초기화된 추가 토큰을 입력에 추가하고 그 출력 결과를 그냥 쓰레기통에 버립니다.
VGGT 레지스터 토큰의 역할
VGGT는 프레임 끼리의 정보 교환을 위해 Global Attention 레이어를 사용하고 있습니다. 이게 모든 이미지 시퀀스 전체의 어텐션을 계산해야 하기 때문에 계산 병목이 큰데요. 투입되는 비용은 큰데 피쳐맵을 뽑아보면 굉장히 Sparse 합니다.
연구자들은 레지스터 토큰을 도입하고 레지스터 토큰끼리의 어텐션을 사용해서 프레임 끼리 정보 교환을 위한 전역 메모리를 추가하고, 전체 레이어의 개수를 줄임으로써 계산 부담을 덜어내기로 합니다. 추가로 이 레지스터 토큰을 활용하는 방법에 대해서도 재밌는 이야기를 해주는데요. 이 부분은 이 글의 후반부에서 다시 다루겠습니다.
D4RT
D4RT는 VGGT처럼 3D Reconstruction 태스크를 수행합니다. 이것만 보면 평범한데 이 친구는 한 발 더 나아가 4D Reconstruction를 할 수 있습니다. 특정 시점 $t_i$에서 관찰한 $(u,v)$에 해당하는 픽셀이 $t_j$
VGGT가 한 번의 추론으로 $N$개의 카메라 포즈와 깊이 맵을 한꺼번에 디코딩 하려고 했다면, D4RT는 이 패러다임을 바꿔서 Point Query 방식의 경량 디코더를 제안했습니다. 아래 그림이 D4RT의 전체 아키텍처인데요. 아키텍처만 보면 전체 영상 시퀀스를 인코더를 거쳐서 전역 정보 표현을 추출하고 별도의 디코더를 통해서 3D 좌표계에서의 위치 정보를 추출하는 간단한 구조로 되어 있습니다. 여기서 인코더는 1B 파라미터를 가지고 디코더는 144M의 매우 작은 파라미터를 가지고 있습니다
수식을 동원해서 차갑게 정의하면, D4RT 프레임워크는 입력 영상 $V \in \mathbb{R}^{T \times H \times W \times 3}$을 인코더를 거쳐 글로벌 정보를 압축한 행렬을 추출합니다.
$$ F = E(V) \in \mathbb{R}^{N \times C} $$
이 정보를 가지고 경량화된 디코더를 통해서 아래 쿼리의 결과로 3D 좌표 $P$를 반환합니다.
$$ P = D(q, F) \in ]\mathbb{R}^3 $$
쿼리 구성요소로는 $(u,v,t_{src}, t_{tgt}, t_{cam})$ 다섯가지가 있는데, 여기서 $(u,v)$는 2차원 이미지의 좌표를 (0,1)사이로 정규화한 값입니다. 그리고 나머지 $t_{src}, t_{tgt}, t_{cam}$은 모두 프레임 시간을 나타내는 이산값인데요. 햇갈릴만한 포인트는 카메라 정보를 나타내는 $t_{cam}$이 카메라의 자유 위치 포지션이 아니라 시간 $t$로 표현한다는 점입니다.
다시 말해서, 쿼리로 넣을 수 있는 카메라 정보가 3차원 위치 및 회전 정보가 아닌 프레임 내에서 관찰한 $t$시점의 뷰의 관점에서 출력 결과의 3차원 좌표를 찾는 걸로 이해하시면 됩니다. 제가 논문 볼 때 햇갈린 부분이여서 한 번 언급해봤습니다.
① D4RT 학습 데이터셋
D4RT의 학습 태스크를 보면 3D좌표의 이동 궤적을 추적하는 건데요. 실제 영상으로는 이런 정교한 데이터를 구하는 게 매우 어렵죠. 그래서 D4RT는 학습할 때 Kubric, Point Odyssey, Dynamic Replica 등 3D 모델링 앱인 Blender 로 합성된 데이터 셋을 사용합니다.
학습 데이터 셋 중에는 Waymo Open도 있습니다. 구글의 자율주행 기술 개발 기업 Wamo는 미국 전역에 3000대의 자율주행 무인 택시를 운영하고 있죠. 웨이모는 테슬라처럼 카메라가 아니라 라이다를 사용하기 때문에 고수준의 3D데이터를 보유하고 있습니다. 논문은 공개된 데이터셋 외에도 내부 전용 데이터를 활용했는데, 아마 웨이보가 벌어다준 데이터가 아닐까 예측해봅니다.
② Unified Decoding
D4RT의 디코더의 쿼리 입력값 중 일부를 통제해서 Track, Point Cloud, Depth Map, Camera Pose Estimation (Extrinsics & Intrinsics) 태스크를 수행할 수 있습니다. 이 중에서 Track을 제외하면 VGGT랑 할 수 있는 일이 동일합니다. 디코더는 출력으로 포인트의 3D 좌표만 다루기 때문에 카메라 포즈를 직접 출력하는 건 아니지만, 논문에서는 특정 이미지 한 장을 고정시키고 다른 레퍼런스 프레임에서 3D 좌표를 구하면 카메라 파라미터 계산이 가능하다고 합니다.
디코더가 144M 파라미터만 가지고 있는 경량 모델이기 떄문에, 병렬 처리에 이점이 있는데요. 그냥 나이브 하게 하면 추론 시간 복잡도는 $O(T^2HW)$입니다. 그래서 이미 방문한 시간 좌표는 캐싱해둠으로써 실제 계산은 $O(THW)$가 되도록 합니다.
③ 평가
D4RT는 2025년에 발표된 VGGT보다 높은 정확도와 빠른 디코딩 속도를 달성했다고 소개했습니다.
평가는 이렇게 간단하게 정리하고 넘어가겠습니다. D4RT랑 같은 연도에 발표된 VGGT-Ω와의 직접 비교가 없고, 서로 실험 항목에서 다루는 메트릭이 다루다 보니까 직접 비교는 어려운 것 같습니다.
응용 분야
① VGGT-Ω 레지스터 토큰 활용
위에서 다룬 레지스터 토큰 기억하시죠? DINO에서는 학습과정에서 버려지는 데이터 였습니다. VGGT-Ω 논문은 레지스터 토큰의 활용 방법 (Application of Registers) 섹션에서, 학습에 이용된 레지스터 토큰을 활용하는 방법을 알려주는데 단순히 제안만 하는게 아니라 본인들이 직접 다양한 분야에 접목시켜보고 실험까지 진행한 부분이 꽤 재밌습니다.
- Robotics : 로봇의 뇌에 해당하는 VLA (Vision Language Action) 모델에 기하학적 이해를 돕는 인코더로 레지스터 토큰을 활용할 수 있습니다. 주어진 이미지와 함께 VGGT-Ω에서 추출한 레지스터 토큰을 입력으로 추가해서 OpenVLA-OFT를 학습 시킨 결과 LIBERO 벤치마크의 모든 태스크에서 성능이 향상했습니다.
- 자연어 영상 검색 : OpenAI CLIP 방법을 사용해서 비전 언어 모델의 텍스트 임베딩과 VGGT모델의 레지스터 토큰 사이의 코사인 유사도가 동일하도록 유도시킵니다. 학습 과정에선 언어 모델의 파라미터는 고정시키고 VGGT만 파인튜닝 하는데, 10K의 파인튜닝 만으로도 자연어 검색 태스크에서
76.8% top-1 & 97.0% top-3정확도를 기록했습니다. 언어 모델의 Prior가 VGGT 레지스터 토큰으로 잘 전이되었는지 확인하기 위해 검색 질의문을 임베딩 벡터를 다른 언어 모델의 출력으로 바꿔도47.5% top-1 & and 77.8% top-3정확도를 기록합니다. - 모션 표현 : 움직이는 물체의 모션을 추적할 수 있는지 알아보기 위해 VGGT의 트랜스포머 4번째 레이어의 표현을 추출해서 주성분분석으로 차원을 축소시킨다음에 K평균 클러스터링으로 군집화 시킵니다. 그 중에서 특이하게 하나의 클러스터가 군중속에서 춤을 추는 한 인물을 추적할 수 있엇습니다. 논문은 VGGT는 입력 이미지에 대해서 별도 시간 표현을 넣지 않았음에도 모델이 스스로 학습했다고 강조합니다.
- General Applications : 레지스터 토큰이 시퀀스-프레임 단위의 표현 정보를 가지고 있기 때문에 다양한 예측 태스크에서 활용할 수 있습니다. 논문 저자들은 중력 방향 예측, 인간이 영상에 등장하는지 등 여러 태스크에서 사용해봤다고 언급했습니다.
② VGGT와 D4RT의 활용분야
- Pose-Free 3DGS : 영상에서 고해상도 공간을 복원하기 위해서 영상 내에서 여러 프레임에서 카메라의 위치를 직접 추정하도록 하고 이 데이터를 활용해 3DGS를 만드는 방법을 생각해볼 수 있습니다. 카메라 포즈 없이 영상만 가지고 3DGS를 만들어보겠다는 논문이 LongSplat(2025 ICCV), SelfSplat(2025 CVPR)를 포함해 여럿 있는데요. 제 AI친구는 관련 연구를 못찾았지만 VGGT나 D4RT를 같이 활용하는 논문이 등장하는 건 시간문제겠죠.
- 모션 캡쳐 : 언리얼 엔진에는 쫄쫄이 티를 착용하지 않아도 영상만으로 사람의 모션을 추적 할 수 있는 마커리스 모션 캡쳐 기능이 실험적으로 제공되고 있습니다. 다만 아직 실험 단계인 만큼 정확도와 안정성에 한계가 있을 수 있고 현재는 사람을 대상으로 한다는 제약도 존재합니다. D4RT모델의 Prior를 활용하면 사람에 한정되지 않지 않고 더 범용적인 마커리스 모션 캡쳐 기능을 만들 수 있을지도 모릅니다. 특히 사람 모션은 그나마 쉽게 만들 수 있는데, 사람이 아닌 생명체의 모션은 애니메이션 제작에 많은 비용이 필요하기에 AI의 도움을 받으면 자연스러운 모션을 게임에 구현할 수도 있을 것 같네요.
마무리
오랜만에 재밌는 논문을 읽었습니다