3줄 요약

  1. 저장대학 CAD&CG 국가중점연구실과 Ant Group·Robbyant 등이 SIGGRAPH Asia 2026에 발표한 4DAnyone은, 내부 파라미터도 포즈도 모르는 단안 영상 한 편을 입력받아 피사체를 둘러싼 수십 개 시점의 영상을 생성하고 그것으로 4D 가우시안 스플래팅(4DGS)을 복원한다.
  2. 기존 카메라 제어 비디오 확산 모델이 시점을 수십 개로 늘릴 때 무너지는 원인을, 저자들은 DiT 한 번의 순전파가 담을 수 있는 어텐션 컨텍스트가 유한하다는 구조 제약으로 규명한다. 참조 쪽은 생성 뷰가 쌓이며 컨텍스트가 $O(N)$으로 늘고, 타깃 쪽은 그룹이 분리되어 서로를 볼 수 없다.
  3. 해법은 두 가지다. Reference Context Packing은 늘어나는 참조 뷰를 혼합 해상도 고정 길이 슬롯에 압축해 $O(1)$로 만들고, Target Context Routing은 디노이징 고노이즈 구간에서 타깃 그룹을 순환 재편성해 전역 구조를 퍼뜨린다. 코드가 GitHub에 공개돼 있다.

4DAnyone 티저. 왼쪽 아래 스마트폰이 베이스를 연주하는 인물을 찍고, 그 주위를 24개의 생성 카메라가 둘러싸며, 가운데 복원된 인물이 자유 시점으로 렌더링된다. Fig. 1. 대충 찍은 단안 영상 하나로 다중뷰 일관 영상을 만들고, 그것을 4DGS로 올려 자유 시점 렌더링을 얻는다. (출처: arXiv:2608.20335)

문제 설정

4DGS는 실시간 사실적 동적 장면 렌더링을 가능하게 했지만, 그 표현을 만들려면 여전히 캘리브레이션된 정적 카메라 어레이의 조밀한 다중뷰 영상이 필요하다. DNA-Rendering이 쓰는 48대 리그가 대표적인 예다. 논문이 던지는 질문은 단순하다. 캘리브레이션되지 않은 단안 영상 하나로 4D 인간을 복원할 수 있는가.

단안 영상에서 곧바로 4D를 맞추는 방식은 이미 있지만, 대개 카메라 파라미터를 알아야 하고 가려진 신체 부위를 추론하거나 고품질 외형을 복원하는 데 한계가 있다. 그래서 더 유망한 경로는 두 단계다. 먼저 카메라 제어 비디오 확산 모델로 신규 시점 영상을 생성하고, 그다음 그 영상들로 4DGS를 학습시킨다.

문제는 두 번째 단계가 요구하는 시점 수다. 몇 개의 신규 시점까지는 기존 모델도 그럴듯한 영상을 만든다. 그러나 4DGS 복원에 필요한 수십 개로 늘리면 뷰 사이의 외형이 어긋나고 구조가 흔들린다. 논문의 표현으로 병목은 시점 제어가 아니라 복원 규모에서의 다중뷰 일관성 유지다.

왜 규모를 키우면 무너지는가

저자들은 원인을 아키텍처 제약으로 정리한다. DiT 한 번의 순전파가 다룰 수 있는 어텐션 컨텍스트는 메모리와 연산 예산에 묶여 있다. 타깃 뷰 수 $N$이 그 용량을 넘으면 뷰를 그룹으로 쪼개 디노이징할 수밖에 없고, 여기서 두 개의 병목이 동시에 생긴다.

이상적 동작실제로 생기는 문제
참조 컨텍스트각 그룹이 이전에 생성된 모든 뷰를 조건으로 삼는다컨텍스트 길이가 $O(N)$으로 늘어 용량을 금방 넘고, 외형 유도가 약해진다
타깃 컨텍스트그룹 간 뷰가 서로를 참조한다그룹이 분리되어 직접 어텐션이 불가능하고, 전역 구조가 그룹마다 어긋난다

기존 방법들은 둘 중 하나만 건드린다. 참조를 잘라내면 외형 유도가 약해지고, 그룹을 독립적으로 디노이징하면 구조 정보가 오가지 못한다. CAT3D는 배치마다 희소 앵커 뷰를 골라 컨텍스트로 쓰지만 선택 과정에서 외형 정보를 버리고, CAT4D와 Diffuman4D는 겹침이 있는 슬라이딩 윈도로 처리하지만 뷰 수가 커지면 윈도 사이의 표류가 남는다.

4DAnyone 파이프라인. 소스 영상이 스켈레톤 조건 타깃 뷰 토큰으로 바뀌고, RCP가 압축된 참조 토큰을 공급하며, TCR이 타깃 뷰 그룹 사이에 정보를 교환하고, 생성된 다중뷰 영상이 4DGS로 복원된다. Fig. 2. 전체 파이프라인. HMR로 3D 스켈레톤을 뽑아 깊이 버퍼 렌더링을 만들고, 소스 토큰·RCP 참조 토큰·스켈레톤 조건 타깃 토큰을 뷰 차원으로 이어 붙여 DiT가 처리한다. (출처: arXiv:2608.20335)

Reference Context Packing

인접한 시점끼리는 외형 정보가 상당히 겹친다. RCP는 이 중복을 이용한다. 생성된 참조 뷰를 전부 정규 해상도 컨텍스트로 덧붙이는 대신, 다중 스케일 patchify 층으로 고정된 수의 토큰 슬롯에 압축해 넣는다.

Wan2.2의 표준 patchify 층은 커널·스트라이드가 $(1,2,2)$인 Conv3d다. RCP는 압축비 $r$에 대해 $(1,2r,2r)$을 쓴다. $2\times$와 $4\times$ 층은 각각 커널 $(1,4,4)$와 $(1,8,8)$로 토큰 수를 $\frac{1}{4}$, $\frac{1}{16}$로 줄인다. FramePack의 방식을 따라, 사전학습된 $(1,2,2)$ 커널을 공간 방향으로 타일링하고 면적비로 나누어 초기화해 활성값 분산을 보존한다.

실제 추론에서 고정 RCP 컨텍스트는 이렇게 구성된다.

$$ \mathcal{C}_{\text{R}}=[\mathcal{P}_{1}(\mathbf{V}_{\text{src}}),\{\mathcal{P}_{2}(\mathbf{V}_{a_{j}})\}_{j=1}^{3},\{\mathcal{P}_{4}(\mathbf{V}_{b_{j}})\}_{j=1}^{4}] $$

즉 소스 영상 1개는 원래 해상도로, 1라운드 참조 3개는 $2\times$ 압축으로, 2라운드 참조 4개는 $4\times$ 압축으로 담는다. 참조 뷰를 고르는 방식은 최원점 샘플링이다. 소스 뷰와 이미 뽑힌 참조 뷰에서 시작해, 선택된 뷰들과의 최소 각거리가 가장 큰 후보를 하나씩 더한다. 슬롯 예산이 고정이라 참조가 아무리 쌓여도 비용은 $O(1)$에 머문다.

Target Context Routing

RCP가 조건 쪽을 해결해도 타깃 그룹은 여전히 서로 독립적으로 디노이징된다. TCR은 여기를 건드린다.

관찰은 확산 과정의 시간 구조에서 나온다. 전역 구조는 고노이즈 구간에서 결정되고, 저노이즈 구간은 국소 디테일을 다듬는다. 그래서 TCR은 전환 타임스텝 $t_s$를 기준으로 추론을 둘로 나눈다.

  • 고노이즈 구간 ($t > t_s$): 매 스텝마다 정렬된 뷰 인덱스를 스텝 번호만큼 순환 이동시킨 뒤 4개 뷰 그룹으로 다시 나눈다. 같은 그룹 예산 안에서 뷰들이 시간에 걸쳐 컨텍스트를 주고받아 전역 구조가 퍼진다.
  • 저노이즈 구간 ($t \le t_s$): 인접한 4개 뷰 그룹을 고정한다. 이웃 시점끼리 함께 디테일을 다듬어 외형과 시점 전환이 안정된다.

구현에서는 타깃 뷰를 4개 뷰 그룹으로 나누고 $t_s/T$를 0.2로 둔다. 디노이징 스텝은 20이고, 각 스텝의 그룹들은 순차적으로 처리하거나 여러 GPU에 나눠 병렬로 처리할 수 있다.

RCP와 TCR의 3단계 점진 추론 다이어그램. 초기 뷰가 고정 멀티스케일 참조 컨텍스트가 되고, 타깃 뷰는 고노이즈에서 순환 재편성되며 저노이즈에서 인접 그룹으로 고정된다. Fig. 3. 참조 뷰를 2라운드에 걸쳐 만들어 고정 RCP 컨텍스트로 묶고, 그 컨텍스트를 모든 타깃 그룹이 공유한다. (출처: arXiv:2608.20335)

조밀한 깊이 대신 정확한 뼈대

기하 조건을 어떻게 줄 것인가에서 논문은 명확한 원칙을 내세운다. 밀도보다 정확도다.

Gen3C나 TrajectoryCrafter 같은 선행 연구는 조밀한 메트릭 깊이나 3D 좌표에 기댄다. 그런데 통제되지 않은 영상에서 그런 신호를 안정적으로 추정하기 어렵고, 추정 오차는 서로 충돌하는 기하 제약이 되어 다중뷰 생성을 발산시킨다. 4DAnyone은 대신 3D 스켈레톤을 쓴다. 희소하지만 최신 인체 메시 복원 기법이 단안 입력에서 믿을 만하게 뽑아내는 신호다.

여기에 한 가지 장치를 더한다. 2D 스켈레톤 렌더링은 신체 부위 사이의 가림 관계를 잃어버려, 팔이 몸통 앞에 있는 경우와 뒤에 있는 경우가 같은 그림이 된다. 그래서 3D 스켈레톤을 픽셀 단위 z-버퍼로 래스터화해, 가까운 부위가 먼 부위를 제대로 가리게 만든다. 입력 채널을 늘리지 않고 모호성을 없애는 방식이다.

키포인트는 Goliath 어휘의 308개 중 40개만 골라 쓴다. 몸통 17개, 발 6개, 손바닥 수준 10개(손마다 너클 5개), 목·어깨·팔꿈치 보조 7개다. 얼굴 238개와 손가락 관절 30개는 제외한다. 표정과 손끝 디테일은 소스 영상 참조에서 배우게 두는 편이, 잡음 섞인 세밀 키포인트 검출이 만드는 아티팩트보다 낫다는 판단이다.

학습 데이터와 3단계 커리큘럼

훈련 데이터는 다섯 종류다. 그중 MVGameHuman은 저자들이 자체 게임 데이터 엔진으로 만들었다.

데이터셋영상 수카메라배우해상도종류
MVGameHuman38k243182560×1440다중뷰
SynCamVideo34k10661280×1280다중뷰
DNA-Rendering51k485482048×2048다중뷰
TedTalk42k14132160×1620단안
Pexels20k11,4113840×2160단안

MVGameHuman 데이터셋 샘플. 각 행은 동기화된 24대 카메라 중 균등 간격의 4대에서 본 같은 프레임이다. Fig. 8. 자체 게임 데이터 엔진으로 만든 MVGameHuman. 배우·의상·동작·조명·가상 씬·배경이 함께 변한다. (출처: arXiv:2608.20335)

학습은 세 단계로 나뉜다.

  • 1단계: 전경만 남긴 DNA-Rendering 영상으로 스켈레톤 조건 카메라 제어를 배운다. 20% 확률로 소스 클립과 타깃 클립을 서로 다른 시간 구간에서 뽑아, 포즈와 외형을 분리한다.
  • 2단계: 전경 마스킹을 없애고 모든 다중뷰 데이터셋으로 확장한다. 선행 연구는 균일한 그린스크린 배경에 과적합되는 것을 피하려 마스킹된 인물 영상으로 학습했지만, 마스크 경계가 엣지 잡음과 다중뷰 불일치를 만들고 배경이 없어 조명·그림자 단서를 배우지 못한다는 문제가 있었다.
  • 3단계: 단안 데이터셋을 더해 실사 영상 일반화를 끌어올린다. 이 단계에서는 손가락 키포인트를 스켈레톤 입력에서 뺀다.

손실은 잠재 공간 흐름 매칭 MSE에 LPIPS 지각 손실을 $\lambda = 0.25$로 더한 형태다. LPIPS는 Wan2.2 VAE의 높은 공간 압축이 만드는 아티팩트를 줄이려 넣었고, 메모리를 아끼려 신체 부위 인식 크롭 위에서 계산한다. 전신·얼굴·왼손·오른손을 각각 0.2, 0.2, 0.1, 0.1 확률로 뽑고 나머지 0.4는 균등 샘플링이며, 크롭은 256×256이다.

베이스 모델은 Wan2.2-TI2V-5B다. 704×1280 해상도, 학습률 $1\times10^{-5}$, H20-3E GPU 128장에서 세 단계가 각각 약 0.5일, 1일, 1.5일 걸렸다. 저자들은 32장 이상이면 안정적으로 수렴하며 128장은 가속을 위한 선택이었다고 밝힌다.

성능

평가는 학습에서 제외한 DNA-Rendering 10개 씬과 DyMVHumans 3개 씬에서 이뤄졌다. 씬마다 대략 균등한 16대 카메라와 98프레임을 골랐고, 정면 소스 영상 하나를 주고 16개 타깃 뷰 영상을 생성하게 했다. 측정 축은 세 가지다. 생성 영상 일관성(12뷰로 4DGS를 학습해 나머지 4뷰를 예측하고 생성 영상과 대조), 4DGS 복원 품질, 생성 영상 자체의 원본 대비 충실도.

방법DNA-Rendering PSNR / SSIM / LPIPSDyMVHumans PSNR / SSIM / LPIPS
생성 영상 일관성MV-Performer21.25 / 0.799 / 0.22219.98 / 0.797 / 0.182
TrajectoryCrafter13.56 / 0.641 / 0.33115.19 / 0.769 / 0.204
ReCamMaster†21.47 / 0.806 / 0.21021.94 / 0.833 / 0.142
4DAnyone24.33 / 0.862 / 0.16324.48 / 0.862 / 0.109
4DGS 복원MV-Performer20.38 / 0.826 / 0.19118.69 / 0.787 / 0.158
TrajectoryCrafter14.81 / 0.718 / 0.33115.11 / 0.748 / 0.217
ReCamMaster†20.55 / 0.807 / 0.21419.86 / 0.795 / 0.159
4DAnyone24.15 / 0.863 / 0.15923.28 / 0.846 / 0.117
생성 영상 충실도MV-Performer19.33 / 0.803 / 0.20414.36 / 0.731 / 0.230
TrajectoryCrafter13.68 / 0.698 / 0.35814.11 / 0.725 / 0.247
ReCamMaster†20.74 / 0.809 / 0.20419.18 / 0.778 / 0.168
4DAnyone23.69 / 0.850 / 0.16521.03 / 0.808 / 0.143

†는 저자들이 같은 프로토콜·데이터로 파인튜닝하고 RCP 모듈과 TCR 전략까지 동일하게 붙인 비교 대상이다. MV-Performer와 TrajectoryCrafter는 공개 가중치로 제로샷 평가했다. DyMVHumans는 모든 방법에 분포 밖이다.

정성 비교에서 각 베이스라인이 무너지는 지점은 서로 다르다. MV-Performer는 정면은 그럴듯하지만 측면과 후면에서 체형과 포즈가 일그러진다. TrajectoryCrafter는 깊이 오차가 누적되어 정면에서 후면으로 넘어갈 때 실패한다. ReCamMaster는 영상 자체는 그럴듯하나 카메라 제어가 부정확해 뷰 정렬이 어긋나고 4DGS 렌더링에 잡음이 남는다.

여러 방법의 생성 타깃 뷰와 4DGS 렌더링을 비교한 그리드. 제안 방법이 체형·의상 외형·카메라 시점을 더 일관되게 유지한다. Fig. 4. DNA-Rendering 테스트셋 정성 비교. 생성 영상(Gen.)과 그 4DGS 렌더링(Rend.)을 나란히 둔다. (출처: arXiv:2608.20335)

어블레이션

8개 난이도 높은 시퀀스에서 생성 영상 일관성 기준으로 구성 요소를 하나씩 뺐다.

구성PSNR ↑SSIM ↑LPIPS ↓
TCR·RCP 둘 다 제거21.090.7660.216
RCP 제거22.030.7800.203
TCR 제거22.210.7880.196
전체 (Random 라우팅)22.200.7880.197
전체 (Strided 라우팅)22.060.7860.198
전체 (Sliding 라우팅)22.630.7960.191

둘 다 빼면 가장 나쁘고, 둘을 함께 쓸 때만 확실히 오른다. 라우팅 전략 비교가 흥미롭다. 무작위 재편성은 고정 그룹 대비 측정 가능한 이득이 없었고, 건너뛰기 방식은 오히려 모든 지표를 떨어뜨렸다. 세 지표를 모두 개선한 것은 슬라이딩뿐이다. 저자들은 이를 두고 국소 시점 인접성을 보존하는 것이 라우팅에서 중요하다고 해석한다.

어블레이션 비교 그리드. 3D 인식 스켈레톤 조건, RCP, TCR 각각의 유무에 따른 출력 차이. Fig. 5. 왼쪽은 3D 인식 스켈레톤 조건이 2D 스켈레톤의 앞뒤 모호성을 해소하는 장면, 오른쪽은 RCP·TCR이 시점 간 외형 일관성을 유지하는 장면이다. (출처: arXiv:2608.20335)

후면 소스 영상, 복잡한 외형, 복잡한 동작 같은 까다로운 입력에서도 결과가 무너지지 않는다고 보고한다.

후면에서 시작한 인물과 복잡한 의상을 입은 인물에 대한 소스 프레임과 생성 시점들. Fig. 6. 까다로운 케이스. 왼쪽은 후면 소스 영상, 오른쪽은 복잡한 외형이다. (출처: arXiv:2608.20335)

직접 돌리려면

GitHub 저장소는 설치부터 추론까지 한 줄씩 정리해 두었다. conda 환경에 파이썬 3.11을 깔고 GVHMR 서브모듈을 초기화하면 모델과 예제는 첫 실행 시 자동으로 내려받는다.

카메라 배치는 인자로 조절한다. views_per_layer는 피치 레이어당 균등 배치할 뷰 수이고 4 또는 6으로 나눠떨어져야 한다. layer_pitches는 레이어별 피치 각도로, 양수면 카메라가 피사체 위에 놓인다. 총 뷰 수는 둘의 곱이다. start_yawyaw_span으로 수평 시작 각도와 커버 범위를 정한다.

# 24뷰 풀 오빗 — 4DGS 복원에 적합한 조밀 배치
python inference.py \
    --video_path "data/source/pexels/2785536-uhd_2160_3840_25fps.mp4" \
    --views_per_layer 24

# 48뷰, 피치 3레이어 — 자유 시점 렌더링용 넓은 커버
python inference.py \
    --video_path "..." \
    --views_per_layer 16 --layer_pitches '[-10,15,35]'

24개 카메라를 하나의 완전한 궤도 위에 균등 배치한 그림. 24뷰 풀 오빗 배치. (출처: 4DAnyone GitHub 저장소)

입력 영상 조건도 명시돼 있다. 720p 이상(1080p 권장), 9:16 세로 비율, 한 사람의 전신 또는 상반신, 최소 121프레임, 카메라 움직임은 약할 것.

성능은 6뷰 기준으로 측정치가 공개돼 있다. 디노이징 시간은 세 번 실행의 중앙값이다.

GPUSDPAFlashAttention-3SageAttention최대 CUDA 메모리
H2008.87분7.55분7.59분25.37 GiB
H20-3E19.55분15.63분12.89분25.37 GiB
RTX 5880 Ada20.28분17.51분24.21 GiB
RTX A600022.41분21.78분24.06 GiB

여기에 전처리로 GVHMR 모션 복원 1분 안팎, 스켈레톤 추출 0.5~1분이 붙는다. 어텐션 백엔드는 FlashAttention-3, SageAttention, PyTorch SDPA 순으로 고정된 순서에 따라 선택된다.

저장소 뉴스에 따르면 2026-08-28에 24뷰 전체 파이프라인이 1.42배 빨라졌고, 포즈 인코딩과 VAE 처리를 여러 GPU에 나눠 처리해 얻은 결과다. 최대 GPU 메모리도 25.4 GiB로 내려갔다. 로드맵에는 Sol-Engine 통합(2배 예상)과 few-step 추론을 위한 증류(5배 예상), nerfstudio 기반 3DGS 복원과 오픈소스 4DGS 복원 지원이 올라 있다.

가장 눈여겨본 것

훈련 데이터 표에서 MVGameHuman 한 줄이 오래 남는다. 38k 영상, 24대 카메라, 배우 318명. 이걸 자체 게임 데이터 엔진으로 만들었다고만 적어 두었다.

DNA-Rendering의 48대 카메라 리그는 실물이다. 스튜디오를 짓고 카메라를 사고 배우를 부르고 동기화를 맞춰야 나온다. 그런데 이 논문의 다중뷰 데이터 절반은 게임 엔진 안에서 가상 카메라 24대를 세워 뽑았다. 배우·의상·동작·조명·가상 씬·배경이 함께 변하는 샘플을, 촬영 일정 없이 렌더링 큐로 찍어낸 셈이다. 게임 회사가 가진 애셋 파이프라인이 그대로 학습 데이터 공장이 된다는 이야기이기도 하다.

그 옆에 놓인 원칙 하나도 눈에 걸린다. 밀도보다 정확도. 조밀한 깊이 맵은 정보량이 훨씬 많지만 통제되지 않은 영상에서 추정이 흔들리고, 그 오차가 서로 충돌하는 제약이 되어 생성을 발산시킨다. 40개짜리 스켈레톤은 정보량으로는 비교가 안 되게 빈약한데, 믿을 수 있다는 이유 하나로 더 나은 조건이 된다. 게다가 저자들은 그 40개조차 더 줄인다. 얼굴 238개와 손가락 관절 30개는 검출 잡음이 많다는 이유로 빼고, 표정과 손끝은 모델이 소스 영상을 보고 알아서 채우게 둔다.

조건을 더 촘촘히 주면 결과가 좋아지리라는 직관과 반대 방향이다. 흐릿한 신호를 많이 주는 것보다 확실한 신호를 조금 주고 나머지를 생성 모델의 사전 지식에 맡기는 편이 낫다는 판단인데, 이런 판단을 내릴 수 있는 조건이 무엇인지는 이 논문만으로 다 읽히지 않는다. 베이스 모델의 사전 지식이 어느 선을 넘었을 때부터 성립하는 이야기인지 궁금하다.

윤리 항목에서 저자들이 남긴 문장도 옮겨 둔다.

4DAnyone은 사실적인 인체 영상을 합성하므로 딥페이크 오용, 신원 프라이버시 침해, 저작권 침해의 위험이 있다. 우리는 이 작업의 악의적 사용에 단호히 반대하며, 생성 결과가 합성물임을 명확히 밝히고 촬영된 대상의 동의 아래에서만 제작되기를 권고한다.

출처

Yudong Jin, Tao Xie, Qihang Zhang, Zehong Shen, Zhen Xu, Yujun Shen, Hujun Bao, Xiaowei Zhou, Yinghao Xu. “4DAnyone: Create Anyone in 4D from a Casual Monocular Video.” SIGGRAPH Asia 2026. arXiv:2608.20335, 2026-08-20 제출.

저장소: https://github.com/ant-research/4DAnyone 논문: https://arxiv.org/abs/2608.20335 프로젝트 페이지: https://4danyone.github.io/

본문 이미지는 논문 HTML판(Fig. 1~6, 8)과 저장소 문서에서 인용했다.