가우시안 아바타 애니메이션을 항등 공유 블렌드셰이프로 60fps까지 가속한다

One Basis to Animate Them All: Gaussian Blendshape Distillation for Real-Time Avatars

arXiv2610.02207v1

Ramazan Fazylov2026-10-01조회 4

무엇인가

3D 가우시안 아바타는 명시적 프리미티브 덕분에 렌더링이 빠르지만, 애니메이션은 그렇지 않다. 대부분의 모델이 매 프레임마다 표정·포즈 파라미터로부터 가우시안 속성을 갱신하기 위해 상당한 크기의 신경망을 평가하며, 이 논문이 '애니메이션 경로(animation path)'라고 부르는 이 프레임별 계산이 추론 비용을 지배해 CPU와 모바일 배포를 가로막는다. 저자들은 여기서 근본적인 질문을 던진다. 사전학습된 아바타 모델이 추론 시점에 수행하는 계산 가운데 실제로 필요한 부분은 얼마인가. 비선형 디코더가 복잡하다고 해서 그 출력이 똑같이 복잡한 표현을 요구하는 것은 아니며, 아키텍처와 학습 목표가 강제하지 않더라도 여러 항등(identity)에 걸친 변형이 압축된 선형 구조를 공유할 수 있다는 것이 이들의 관찰이다.

어떻게 동작하나

GALA의 근사식은 Ĝ = A(w, θ0) + U c(w, θ)다. 여기서 A(w, θ0)는 시퀀스당 한 번만 계산하는 중립 아바타, U는 선형 기저, c는 기저 계수다. 기저를 만들기 위해 사전학습 모델 A(w, θ)를 여러 항등 w_i와 애니메이션 파라미터 θ_i에 대해 실행하고, 각 항등의 중립 자세 대비 잔차 r_i = A(w_i, θ_i) − A(w_i, θ_0)를 모아 행렬 R을 구성한 뒤 절단 SVD로 상위 K개 좌특이벡터를 취한다. 평균 오프셋을 두지 않는 이 '비중심 PCA'에서는 계수가 0이면 중립 아바타가 정확히 복원된다. 잔차를 항등별로 분리하지 않고 함께 분해하기 때문에 기저는 항등에 독립적인 공유 변형을 기술하며, 기저 추출에 쓰이지 않은 항등에도 그대로 적용된다. 단, 이는 하나의 사전학습 모델 내부에서의 공유를 뜻한다.

무엇과 다른가

단순 PCA에는 세 가지 문제가 있어 이를 보완한다. 첫째, 위치·스케일·회전·불투명도·외형처럼 단위와 스케일이 다른 속성을 그룹별로 분리해 각각의 기저를 만든다. 둘째, k-means로 가우시안을 B개의 공간 블록으로 나눠 국소 기저를 만들고, 이를 블록 대각 형태로 조립한다. 국소 성분은 n·d_a개가 아니라 n_j·d_a개 값만 저장하므로 같은 메모리에 더 많은 성분을 담을 수 있다. 셋째, 유클리드 속성 오차 대신 렌더링 인식 메트릭을 쓴다. 이미지 I(x)의 야코비안 J에 대해 ‖I(x+δ)−I(x)‖² ≈ δᵀHδ, H = JᵀJ로 두고, 전체 H를 만드는 대신 Hutchinson 확률적 탐침으로 속성 그룹별 대각 블록만 추정해 M_a = αI + βĤ_a + γĤ_a^lmk를 구성한다. β항은 속성 오차를 화면에 미치는 영향으로 가중하고, αI는 렌더러가 약하게 관측하는 방향에 대한 민감도를 유지하며, γ항은 선택적으로 랜드마크 기하 감독을 더한다. 성분 개수 K_a,j는 메모리 예산 B 아래에서 저장 바이트당 이미지 오차 감소 추정치 v_a,j,k /(b·n_j·d_a)가 큰 순서로 그리디하게 채워 결정한다. 렌더링 없이 몇 초 만에 끝나고 수동 튜닝이 필요 없다.

어떻게 쓰나

추론 시 원본 애니메이션망을 평가하지 않기 위해, 항등 기술자 w와 구동 신호 θ를 받아 기저 계수를 출력하는 얕은 MLP f_φ를 학습한다. 손실은 기저에 잔차를 투영해 얻은 정답 계수 c*와의 제곱 오차 L_dist = ‖ĉ − c*‖²이며, 기저 구성에 쓴 것과 같은 샘플을 사용한다. 항등 조건화 덕분에 같은 표정·포즈라도 기저를 공유하면서 피험자별 변형이 나온다. 이 절차는 원본 모델을 재학습하지 않는다.

전제와 한계

실험은 아키텍처와 학습 목표가 서로 다른 세 호스트 모델에 적용됐다. AGORA는 GAN으로 머리를 생성하고 FLAME 표정·턱 파라미터로 조건화된 컨볼루션 변형 분기로 애니메이션한다. FlexAvatar는 단일 이미지에서 머리를 복원하고 FLAME 유래 표정 코드로 조건화된 트랜스포머 디코더로 매 프레임 모든 가우시안 속성을 재생성한다. DynaAvatar는 단일 이미지에서 의상 동역학을 포함한 전신 아바타를 복원하고, 현재와 이전 15개 SMPL-X 포즈로 조건화된 동적 트랜스포머로 매 프레임 가우시안을 재생성한다. 학습 데이터는 호스트 모델의 학습 데이터 일부에서 뽑은 (w_i, θ_i) 샘플로, FlexAvatar는 1,200개 항등에 각 8개 표정, DynaAvatar는 학습 시퀀스에서 샘플링한 프레임, AGORA는 잠재 공간에서 뽑은 10,000개 항등에 FFHQ 학습셋의 6개 표정을 조합해 썼다. 보고된 결과는 모두 이 데이터에서 제외된 항등에 대한 것이다.

품질 면에서 증류 모델은 호스트를 근접하게 따라가며 대부분의 지표에서 경쟁 방법을 앞선다. AGORA의 FID는 3.17에서 3.47로 오르는 데 그쳤고 애니메이션·항등 지표는 호스트와 0.023 이내에 머물렀다. DynaAvatar는 호스트보다 PSNR이 0.64dB 낮았지만 비교 방법들을 세 가지 품질 지표 모두에서 앞섰고 PSNR 기준 1.9dB 이상 차이를 냈다. FlexAvatar는 12개 품질 지표 중 8개(동률 1개 포함)에서 최고였다. 다만 자기 재연(self-reenactment)에서 LAM이 PSNR 0.34dB 높고 LPIPS가 같아 초상 애니메이션에서는 경쟁력이 있었다. Ava256 단일샷에서는 호스트와 PSNR 차이가 0.03dB 이내였고, 공개 프로토콜 기준 비교된 원샷 방법들보다 3.8dB 이상 높았다. 속도는 AGORA 154ms → 5.5ms(약 28배), FlexAvatar 234ms → 4.4ms(약 54배), DynaAvatar 42.9초 → 6.1ms(스키닝 포함 16.1ms, 약 7,000배, 스키닝 포함 시 약 2,700배)로 줄었다. 세 모델 모두 데스크톱 CPU에서 애니메이션 스텝이 7ms 미만이고, 호스트가 각각 폰에서 1fps, 데스크톱 GPU에서 0.3fps에 그쳤던 것과 달리 증류 모델은 모바일에서 60fps로 동작한다.

어블레이션은 설계 선택의 기여를 분리한다. 메모리 예산을 맞춘 단순 PCA는 전체 방법보다 AGORA·FlexAvatar·DynaAvatar에서 각각 9.7·11.5·13.2dB 낮았고, 블록의 모든 속성을 한 기저로 묶으면 4.7·3.6·8.8dB, 성분을 v_a,j,k 대신 설명 분산으로 정렬하면 5.3·2.7·13.3dB 손실이 났다. 렌더링 인식 PCA 자체는 같은 성분 수에서 유클리드 PCA보다 0.25·0.35·0.58dB를 더 벌었다. 공간 블록은 B=1 대비 B=32에서 8.2·6.9·8.6dB 향상됐고, 모든 그룹·블록에 같은 랭크를 주면 6.2·1.2·8.5dB 떨어졌다. 일반적인 지식 증류로 만든 더 얇고 얕은 학생 네트워크들은 어떤 메모리 예산에서도 속도와 정확도 모두 GALA에 근접하지 못했다.

실무 관점에서 이 논문이 주는 신호는 두 가지다. 첫째, 가우시안 아바타 파이프라인을 프로파일링할 때 렌더링이 아니라 프레임별 속성 갱신 경로를 먼저 봐야 한다. 둘째, 이미 학습된 모델을 버리지 않고도 선형 기저와 얕은 계수 예측기로 교체하는 증류가 가능하며, 원본 재학습이 필요 없다는 점이 배포 비용을 크게 낮춘다. 다만 저자들이 밝힌 한계도 분명하다. 48MB 예산에서 예측 계수를 쓸 때 호스트 대비 PSNR은 AGORA 5.7dB, FlexAvatar 12.3dB 낮아지며, 예산을 늘려도 주로 투영 계수 쪽만 좋아진다. 공간 분할은 모든 호스트에 B=32로 고정돼 있고, 최적 분할은 모션에 따라 달라질 수 있어 성분 수와 함께 선택하는 것이 향후 과제다. 또한 이 방법은 호스트 모델의 한계를 그대로 물려받으며, 저자들은 애초에 항등 공유 블렌드셰이프 기저로 아바타를 직접 학습하는 방향을 남겨두었다.