[논문리뷰] ExtPose: Robust and Coherent Pose Estimation by Extending ViTs (ICML 2025)

논문: ExtPose: Robust and Coherent Pose Estimation by Extending ViTs
학회: ICML 2025
저자: Rongyu Chen*, Li’an Zhuo*, Linlin Yang, Qi Wang, Liefeng Bo, Bang Zhang, Angela Yao (* 공동 1저자)
프로젝트: gloryyrolg.github.io/extpose
OpenReview: hm9FNEZZ6z


한 줄 요약

이미지 기반 ViT HPE를 스켈레톤 이미지(2D 포즈 증거)크로스-프레임 어텐션(시간 정보)으로 확장해 추가 파라미터 없이 2D 정렬과 시간 일관성을 동시에 개선하는 프레임워크. 3DPW에서 34.0mm PA-MPJPE(−23%), FreiHAND에서 4.9mm PA-MPJPE(−18%) 달성.


ext-pose-fig1

Figure 1: ExtPose는 ViT 기반 최신 방법들을 일반화 측면에서 보조하고 확장한다. 파쿠르처럼 극도로 복잡한 자세에서도 ExtPose(3열)는 픽셀 정렬된 메시를 정확하게 재구성하는 반면, HaMeR/HMR2.0/ViTPose-whole(2열)은 손이 완전히 뒤집히는 오류를 범한다.

1. 배경과 문제 정의

ViT 기반 포즈 추정의 두 가지 한계

Vision Transformer(ViT)는 대규모 데이터로 훈련된 강력한 이미지 특징 추출기로서 3D 인체·손 포즈 추정(HPE)에서 빠르게 주류가 됐다. 그러나 HMR2.0, HaMeR 같은 최신 ViT 기반 방법들은 두 가지 구조적 한계를 가진다.

① 시간 정보 부재

기존 ViT HPE는 단일 이미지를 입력으로 받도록 설계됐다. 비디오 입력 시 프레임 간 시간 정보를 전혀 활용하지 못해 프레임 간 포즈가 불규칙하게 흔들리는 지터링(jittering) 문제가 발생한다. 비디오 기반 방법들은 시간 모듈을 별도로 추가하지만, 이는 정적인 이미지 특징 위에 시간 관계를 모델링하는 방식이라 특징 수준에서의 완전한 시공간 상호작용이 불가능하다.

② 2D 이미지 정렬 실패

ViT 기반 3D HPE 모델은 이미지의 전역 컨텍스트를 통해 포즈를 추정하는 반면, 2D 포즈 추정 모델은 더 정밀한 로컬 위치 단서를 제공한다. 이 차이로 인해 ViT 3D HPE는 손 뒤집힘(wrist flip), 잘못된 방향 예측 등 픽셀 정렬 오류를 반복적으로 범한다. 이는 ViT 아키텍처 자체의 문제가 아니라 3D HPE 태스크의 특성에서 비롯된 근본적 한계다.

ExtPose의 핵심 질문

“사전 훈련된 이미지 ViT에 추가 파라미터 없이 2D 포즈 증거와 시간 정보를 통합할 수 있는가?”


2. 핵심 아이디어

ExtPose는 기존 ViT HPE를 확장(Extension)하는 접근법이다. 새로운 모듈을 추가하거나 재훈련하는 대신, ViT의 어텐션 메커니즘 자체를 두 방향으로 확장한다.

  1. 2D 포즈 증거 통합: 오프-더-셸프 2D 포즈 검출기가 생성한 스켈레톤 이미지를 RGB와 함께 입력으로 받아 크로스-모달 어텐션으로 통합
  2. 시간적 어텐션 확장: 동일한 ViT 어텐션을 프레임 간에 적용해 시간 관계를 모델링

핵심 통찰은 표현의 통합이다. 2D 포즈를 좌표 배열 대신 RGB와 같은 시각 도메인의 스켈레톤 이미지로 표현하면, 동일한 ViT 백본으로 두 모달리티를 처리할 수 있다. 파라미터를 모달리티 간·프레임 간에 공유하기 때문에 추가 파라미터가 필요 없다.


3. 통합 2D 포즈 특징 추출

ext-pose-fig2

Figure 2: ExtPose 전체 구조. 스켈레톤 이미지가 2D 포즈를 표현하고(4.3절), 공유 ViT 블록이 이미지와 2D 포즈 두 스트림을 처리한다. 크로스-모달 어텐션(4.4절)이 두 스트림을 통합하고, 크로스-프레임 어텐션(4.5절)이 비디오 시간 컨텍스트를 포착한다.

스켈레톤 이미지: 시각 도메인 통합의 핵심

2D 포즈 표현에는 세 가지 방식이 있다:

  • 1D 좌표 배열: 관절 좌표를 벡터로 나열. 공간 구조 손실
  • 히트맵 \(H \in \mathbb{R}^{H \times W \times \lvert J \rvert}\): 관절 위치에 가우시안 배치. 채널 수가 데이터셋마다 달라 비일관적이며 구조 관계 명시성 부족
  • 스켈레톤 이미지 \(I_p \in \mathbb{R}^{H \times W \times 3}\): 빈 배경에 막대 그림 형태로 포즈를 시각화

ExtPose는 스켈레톤 이미지를 선택한다. 관절은 색상이 부여된 원으로, 뼈는 기구학 구조를 반영하는 그라디언트 색상으로 렌더링된다. 신뢰도(confidence)는 알파 블렌딩으로 인코딩돼 신뢰할 수 없는 2D 검출을 자동으로 억제한다.

스켈레톤 이미지가 RGB 이미지와 동일한 3채널 시각 형식이라는 점이 핵심이다. 이로 인해:

  1. 동일한 패치 임베딩·위치 인코딩·SA 인코더로 두 모달리티 처리 가능
  2. 사전 훈련된 ViT가 생성하는 이미지 특징과 공간적 일관성 유지
  3. 특징 정렬이 자연스럽게 이뤄져 빠른 수렴 달성

4. 이중 스트림 크로스-모달 어텐션

이미지 스트림 \(\{F^I_i\}^M\)과 2D 포즈 스트림 \(\{F^p_i\}^M\)은 공유 ViT 백본에서 병렬로 처리된다. 두 스트림은 자신의 스트림과 상대 스트림 모두에 어텐션을 수행한다.

이미지 특징 \(F^I_i\)의 어텐션 가중치:

\[A^I_i = \text{Softmax}\left(\frac{[S^{I\text{-}I}_i;\; S^{I\text{-}p}_i]}{\sqrt{D}}\right)\]

여기서 \(S^{I\text{-}I}_i = K^I Q^I_i\)는 이미지 내 어텐션, \(S^{I\text{-}p}_i = K^p Q^I_i\)는 포즈 스트림에 대한 크로스-모달 어텐션이다.

마찬가지로 포즈 특징 \(F^p_i\)의 어텐션 가중치:

\[A^p_i = \text{Softmax}\left(\frac{[K^I;\; K^p] Q^p_i}{\sqrt{D}}\right)\]

최종 업데이트된 특징:

\[\Delta F^I_i = A^I_i \odot V^{Ip},\quad \Delta F^p_i = A^p_i \odot V^{Ip},\quad \text{where } V^{Ip} = [V^I;\; V^p]\]

이 연산은 두 스트림을 자기 어텐션 이전에 연결(concatenate)하는 방식으로 간단히 구현된다. 추가 파라미터가 전혀 필요 없다. 도트 프로덕트 기반 어텐션은 2D 포즈가 완벽하게 정렬되지 않아도 공간 어디서나 정보를 수집할 수 있기 때문에, 정렬 오차에 대한 자연스러운 강건성을 제공한다.


5. 이미지에서 비디오로: 시간적 어텐션 확장

시간 정보를 추가하기 위해 별도 모듈이 필요하지 않다. 동일한 ViT 어텐션 메커니즘을 프레임 간에도 적용하면 된다.

T개 프레임의 모든 토큰 \(\{\{F^t_i\}^M\}^T\)에 대한 3D 시공간 어텐션:

\[F^t_i = F^t_i + \text{Attn}\left(F^t_i,\; \{\{F^t_i\}^M\}^T\right)\]

특정 프레임 \(t_1\)의 토큰 \(F^{t_1}_i\)는 다른 프레임 \(t_2\)의 동일 위치 토큰 \(F^{t_2}_i\)에도, 다른 위치 토큰 \(F^{t_2}_j\,(j \neq i)\)에도 어텐션할 수 있어 움직임을 자연스럽게 포착한다.

크로스-모달 어텐션과의 간섭을 방지하기 위해 어텐션 마스크 \(M\)을 사용한다:

\[M = \begin{pmatrix} 0_{T \times M} & -\infty_{T \times M} \\ -\infty_{T \times M} & 0_{T \times M} \end{pmatrix}\]

이 마스크는 시간 어텐션이 모달리티 축을 넘나들지 않도록 차단한다. 사전 훈련된 이미지 기반 ViT에 3D 어텐션을 직접 적용하면 추가 훈련 없이도 시간 일관성이 향상되는 “무료 혜택(free lunch)” 효과가 있으며, 추가 훈련 시 프레임 위치와 움직임 순서를 인코딩하는 시간적 위치 임베딩이 더해져 성능을 향상시킨다.


6. 손실 함수 & 구현 세부사항

총 손실은 네 항목의 가중 합이다:

\[\mathcal{L} = \mathcal{L}_{joint} + \mathcal{L}_{param} + \mathcal{L}_{reproj} + \mathcal{L}_{adv}\]
손실 수식 설명
\(\mathcal{L}_{joint}\) \(|\hat{J}_{3D} - J_{3D}|_1\) 3D 관절 위치 손실 (L1)
\(\mathcal{L}_{param}\) \(|\hat{\theta} - \theta|^2_2 + |\hat{\beta} - \beta|^2_2\) SMPL 파라미터 손실 (SMPL 레이블 있을 때)
\(\mathcal{L}_{reproj}\) \(|\hat{J}_{2D} - J_{2D}|_1\) 2D 재투영 손실 (L1)
\(\mathcal{L}_{adv}\) \(|D(\theta, \beta) - 1|^2_2\) 판별기 적대적 손실

모달리티 마스킹: 훈련 중 각 모달리티(이미지 또는 스켈레톤)를 50% 확률로 통째로 마스킹해 각 모달리티에서 독립적으로 특징을 추출하는 능력을 배양한다.

구현 세부사항:

  • 옵티마이저: AdamW (lr=1e-5, β₁=0.9, β₂=0.999, weight decay=1e-3)
  • 훈련: 50K 이터레이션, 배치 크기 32, 8× A100 GPU
  • 초기화: HMR2.0(인체) / HaMeR(손)에서 파인튜닝
  • 어텐션: Flash Attention (메모리·속도 최적화)

7. 실험 결과

인체 포즈 추정: 3DPW (Table 1)

ext-pose-tab1

Table 1: 3DPW 데이터셋에서 SOTA HPE 방법 비교. MPVPE, MPJPE, PA-MPJPE(PJ) 지표. ExtPose(T=16)가 모든 이미지 기반 및 비디오 기반 방법을 능가한다. †는 GT 2D 포즈 사용 상한값.
방법 MPVPE↓ MPJPE↓ PA-MPJPE↓
이미지 기반      
HMR2.0 (ICCV’23) 82.2 69.8 44.4
REFIT (ICCV’23) 75.1 65.3 40.5
ExtPose (T=1) 68.9 55.6 35.5
ExtPose† (T=1) - 36.7 25.4
비디오 기반      
WHAM (CVPR’24) 68.7 57.8 35.9
ExtPose (T=16) 67.5 54.2 34.0

이미지 기반(T=1)에서 PA-MPJPE를 HMR2.0의 44.4mm에서 35.5mm로 12.3% 향상시킨다. 비디오 기반(T=16)에서는 2D 포즈를 사용하는 WHAM보다 5.3% 우세하다. GT 2D 포즈 사용 시 25.4mm로 데이터셋 어노테이션 오차 수준에 근접한다.

손 포즈 추정: FreiHAND (Table 2)

ext-pose-tab2

Table 2: FreiHAND 데이터셋 SOTA 비교. PA-MPJPE(PJ), PA-MPVPE(PV), F@5, F@15 지표. ExtPose가 ViT 기반 베이스라인 HaMeR 대비 14.0% 향상.
방법 PA-MPJPE↓ PA-MPVPE↓ F@5↑ F@15↑
MeshGraphormer (ICCV’21) 5.9 6.0 0.764 0.986
MobRecon (CVPR’22) 5.7 5.8 0.784 0.986
HaMeR (CVPR’24) 6.0 5.7 0.785 0.990
ExtPose 4.9 5.1 0.823 0.993

HaMeR 대비 PA-MPJPE 14.0%↓, F@5 4.8%↑ 달성.

손 포즈 추정: HO3D v2 (Table 3)

ext-pose-tab3

Table 3: HO3D v2 데이터셋 SOTA 비교. 이미지(T=1) 및 비디오(T=16) 설정 모두에서 평가. ExtPose(T=16)이 비디오 방법 중 가장 큰 폭으로 개선.
방법 AUCJ↑ PA-MPJPE↓ AUCV↑ PA-MPVPE↓ F@5↑ F@15↑
HaMeR (CVPR’24) 0.846 7.7 0.841 7.9 0.635 0.980
ExtPose (T=1) 0.858 7.0 0.850 7.5 0.660 0.985
DeFormer (ICCV’23) - 9.4 - 9.1 0.546 0.963
ExtPose (T=16) 0.863 6.9 0.856 7.3 0.667 0.991

비디오 비교(T=16)에서 기존 최고 방법 대비 PA-MPJPE 26.6%↓, AUCJ −19.8%↑ 달성.

ext-pose-fig3

Figure 3: 정성적 비교. 모션 블러, 손-물체 상호작용(HOI), 에고센트릭 3D 장면에서 ViTPose(2D) vs HaMeR vs ExtPose를 비교. ExtPose가 어려운 시나리오에서도 일관되게 향상된 재구성 품질을 보인다.

2D 정렬 평가: HInt 데이터셋 (Table 4)

ext-pose-tab4

Table 4: HInt 데이터셋 2D PCK 비교 (NEWDAYS, VISOR 시퀀스). HaMeR 대비 ExtPose가 모든 임계값에서 크게 향상. ViTPose에는 여전히 미치지 못하지만 격차를 크게 줄인다.
방법 NEWDAYS @0.05↑ @0.1↑ @0.15↑ VISOR @0.05↑ @0.1↑ @0.15↑
HaMeR 48.0 78.0 88.8 43.0 76.9 89.3
ExtPose 59.6 84.8 92.7 61.1 88.5 95.6
ExtPose† 84.6 97.9 99.4 83.3 98.2 99.6
ViTPose 66.5 86.5 93.1 70.8 90.6 96.2

HaMeR 대비 @0.05 기준 NEWDAYS +24.2%, VISOR +42.1%의 2D 정렬 개선. GT 2D 포즈 사용 시(ExtPose†) ViTPose를 능가한다.


8. 어블레이션 연구

2D 포즈 표현 비교 (Table 5)

ext-pose-tab5

Table 5: FreiHAND에서 2D 포즈 표현 방식 비교. 이미지 단독(IMG), 2D 포즈 단독, 둘의 조합 실험. 스켈레톤 이미지와 RGB 이미지의 조합이 최고 성능.
IMG 2D 포즈 PA-MPJPE↓ PA-MPVPE↓ F@5↑ F@15↑
- 1D 좌표 6.5 6.6 0.724 0.983
- 히트맵 6.3 6.3 0.747 0.984
- 스켈레톤 이미지 6.2 6.3 0.742 0.985
- (zeros) 6.0 5.7 0.783 0.991
스켈레톤 이미지 4.9 5.1 0.823 0.993

주요 관찰:

  • 이미지만 사용(zeros 2D): HaMeR 대비 근소한 개선. ViT 백본이 이미 잘 훈련돼 있어 2D 포즈 없이는 추가 개선 여지가 작다
  • 2D 포즈만 사용(리프팅): RGB 텍스처 없이는 깊이 모호성과 키포인트 미검출 상황에 취약해 이미지 기반 방법보다 열세
  • 스켈레톤 이미지 > 히트맵 > 1D 좌표: 시각 도메인 표현이 ViT 특징과 더 잘 정렬됨
  • RGB + 스켈레톤 이미지: 두 모달리티의 시너지로 최고 성능 (PA-MPJPE 4.9mm, -18%)
  • GT 2D 포즈 사용 시 FreiHAND에서 3.7mm까지 향상

융합 전략 비교 (Table 6)

ext-pose-tab6

Table 6: HInt 데이터셋에서 다양한 융합 및 훈련 전략 비교. *는 추가 파라미터 필요. ExtPose의 전체 어텐션 + 전체 파라미터 공유 방식이 최고 성능.
방법 NEWDAYS @0.05 @0.1 @0.15 VISOR @0.05 @0.1 @0.15
HaMeR 48.0 78.0 88.8 43.0 76.9 89.3
Late Fusion 50.5 82.4 92.5 52.5 87.1 95.6
Channel Concat* 56.3 83.6 92.2 55.9 87.3 95.3
ControlNet* 55.6 83.5 92.3 57.7 87.5 95.5
From ViTPose init 49.9 82.2 92.2 46.4 85.3 95.2
Only Q, K 훈련 50.0 81.9 92.3 49.1 85.3 95.1
1st Half 블록만 50.8 82.2 92.3 50.2 85.8 95.2
ExtPose (전체) 59.6 84.8 92.7 61.1 88.5 95.6

주요 관찰:

  • Channel Concat*·ControlNet* 은 추가 파라미터를 사용하지만 ExtPose보다 열세. ExtPose의 어텐션 기반 융합이 레이어마다 더 효과적인 정보 교환을 달성
  • 초기화: ViTPose에서 초기화하면 성능이 낮다. HPE 사전 훈련(HaMeR)에서 시작하는 것이 필수
  • 훈련 범위: Q, K만 훈련하거나 첫 절반 블록만 훈련하면 성능이 제한됨. 전체 백본 훈련이 최적

ext-pose-fig4

Figure 4: 크로스-모달 어텐션 시각화. 이미지와 2D 포즈 스트림 간 어텐션 가중치. 대각선에만 집중되지 않고 각 스트림이 상대 스트림의 다양한 영역에 주목하며, 특히 경계와 모서리 영역에서 공간 인식이 두드러진다.

시퀀스 길이 분석 (Table 7)

ext-pose-tab7

Table 7: 3DPW에서 시퀀스 길이 L에 따른 성능 변화. L=16이 MPVPE/MPJPE/PA-MPJPE 모두에서 최적.
시퀀스 길이 L MPVPE↓ MPJPE↓ PA-MPJPE↓
1 (이미지) 68.9 55.6 35.5
8 68.2 55.1 34.7
16 67.5 54.2 34.0
32 67.9 54.8 34.3

L=16에서 최적 성능. L=32에서는 오히려 소폭 저하되는데, 지나치게 긴 시퀀스가 모호성을 증가시키기 때문으로 추정된다.


9. 수렴 속도 & 효율성

ext-pose-fig5

Figure 5: 손 실험에서 다양한 2D 포즈 표현의 수렴 속도 비교. ExtPose(스켈레톤 이미지 + 전체 어텐션)가 가장 빠르고 안정적으로 수렴한다. ControlNet은 0 초기화로 시작점이 낮다.

ext-pose-fig6

Figure 6: 3DPW에서 지연 시간(ms)-PA-MPJPE(mm) 효율-정확도 트레이드오프 곡선. ExtPose는 T가 증가할수록 성능이 향상되며 합리적인 지연 시간 내에서 최고 성능을 달성한다. 2D 포즈 브랜치 추가로 처리 데이터가 약 2배 증가하지만 실시간에 근접한 효율성을 유지한다.

10. Human3.6M 결과 (부록)

방법 T MPJPE↓ PA-MPJPE↓
HMR2.0 (model-based) 1 44.8 33.6
ExtPose (model-based) 16 43.5 27.2

모델 기반 방법 중 HMR2.0 대비 PA-MPJPE 19.0%↓. 리프팅 방법(243 프레임 활용)과 비교해도 T=16으로 경쟁력 있는 결과를 달성한다.


11. 정리

ExtPose의 핵심 통찰은 확장(Extension) 패러다임이다.

“새 모듈을 추가하지 말고, ViT의 어텐션을 이미 갖춰진 방식 그대로 더 넓은 입력 공간으로 확장하라.”

세 가지 설계 선택이 맞물린다:

  1. 스켈레톤 이미지: 2D 포즈를 RGB와 같은 시각 도메인에 표현해 동일 백본으로 처리 가능. 1D 좌표나 히트맵 대비 더 빠른 수렴과 더 높은 성능
  2. 크로스-모달 어텐션: 이미지와 스켈레톤 스트림이 모든 레이어에서 서로 어텐션. Late fusion이나 ControlNet보다 효과적인 정보 교환. 추가 파라미터 없음
  3. 크로스-프레임 어텐션: 동일 ViT 어텐션을 프레임 축으로 확장. 별도 시간 모듈 없이 시간 일관성 달성

이 설계의 실용적 장점:

  • 파인튜닝만으로 업그레이드 가능 (대규모 재훈련 불필요)
  • 인체·손 포즈 추정 양쪽에 동일 프레임워크 적용
  • 이미지·비디오 양쪽 설정에서 SOTA 달성
  • 3DPW −23%, FreiHAND −18%, HO3D v2 −26.6%(비디오)의 일관된 개선
* 본 블로그의 포스트들은 클로드 코드의 도움을 받아 작성하기도 하였습니다.