[논문리뷰] WiLoR: End-to-end 3D Hand Localization and Reconstruction in-the-wild (CVPR 2025)
논문: WiLoR: End-to-end 3D Hand Localization and Reconstruction in-the-wild
학회: CVPR 2025
저자: Rolandos Alexandros Potamias, Jinglei Zhang, Jiankang Deng, Stefanos Zafeiriou
소속: Imperial College London (Potamias, Deng, Zafeiriou), Shanghai Jiao Tong University (Zhang)
arXiv: 2409.12259
GitHub: rolpotamias/WiLoR
한 줄 요약
실시간 완전 합성곱 손 검출기와 ViT-Large + 다중 스케일 정제 모듈로 구성된 엔드-투-엔드 3D 손 재건 파이프라인으로, 200만 개 이상의 in-the-wild 학습 데이터(WHIM)를 활용해 FreiHAND·HO3Dv2 최고 성능과 함께 HaMeR 대비 2–3배 향상된 시간적 일관성을 달성.
1. 배경과 문제 정의
기존 방법의 분리된 파이프라인
3D 손 재건 시스템은 전통적으로 두 단계로 분리되어 개발되었다. 먼저 손 검출기가 이미지에서 손 영역을 찾고, 별도의 포즈 추정 모델이 검출된 크롭에서 3D 메시를 복원한다. 이 분리된 접근 방식이 가져오는 문제는 세 가지다.
- 검출 병목: 업스트림 검출기의 오탐 또는 미검출이 전체 파이프라인 성능을 제한
- 검출 속도: 기존 손 검출기(ContactHands: 3 FPS)는 실시간 응용에 부적합
- 시간적 불일관성: 단일 프레임 포즈 추정은 비디오에서 프레임 간 떨림 발생
또한 기존 방법들은 초기 MANO 파라미터 추정 후 정제(refinement) 단계가 없어 이미지-공간 정렬이 부정확하다는 문제가 있다. HaMeR가 단일 쿼리 토큰으로 직접 회귀하는 방식을 택한 것과 달리, WiLoR는 초기 예측 → 이미지 정렬 특징 기반 잔차 정제 구조를 도입한다.
WiLoR의 핵심 제안
WiLoR는 다음 세 가지를 동시에 해결한다.
- 실시간 손 검출: 130+ FPS의 완전 합성곱 검출 네트워크
- 고정밀 3D 재건: 다중 스케일 이미지 정렬 정제 모듈을 갖춘 ViT-Large 기반 재건기
- 대규모 in-the-wild 데이터: 200만 개 이상의 자동 주석 데이터셋(WHIM)
2. 출력 표현: MANO 손 모델
WiLoR 역시 파라메트릭 손 모델 MANO를 출력 공간으로 사용한다.
MANO 파라미터:
- 포즈 \(\theta \in \mathbb{R}^{48}\): 손가락 관절 회전 (PCA 기반)
- 형태 \(\beta \in \mathbb{R}^{10}\): 개인별 손 형태 변수
- 카메라 \(K_{cam}\): weak-perspective 카메라 파라미터
최종 출력 \(\{\theta, \beta, K_{cam}\}\)으로부터 778개 꼭짓점 메시 \(V_{3D}\)와 21개 관절 위치 \(J_{3D}\)가 결정론적으로 계산된다.
3. 아키텍처 개요
WiLoR는 두 네트워크로 구성된 엔드-투-엔드 파이프라인이다.
단일 RGB 이미지
→ WiLoR-Det (손 검출 네트워크)
→ 바운딩 박스 + 좌우 레이블
→ 손 크롭 추출
→ WiLoR-Rec (3D 재건 네트워크)
→ 초기 MANO 파라미터 추정 (ViT-L)
→ 정제 모듈 (다중 스케일 이미지 정렬)
→ 최종 MANO 파라미터 (θ, β, K_cam)
→ MANO 레이어 → 3D 메시 + 관절 좌표
4. 손 검출 네트워크 (WiLoR-Det)
아키텍처
WiLoR-Det는 YOLOv8 계열의 실시간 객체 검출 구조를 손 검출에 특화한 모델이다.
- 백본: DarkNet — 마지막 세 특징 맵 \(\{C_3, C_4, C_5\}\) 추출
- 넥: PANet (Path Aggregation Network) — 다중 스케일 특징 융합
- 헤드: 세 개의 앵커-프리 검출 헤드 (각 스케일에서 바운딩 박스 + 좌우 레이블 예측)
두 가지 크기로 제공된다:
- WiLoR-M: 25 MB, 138 FPS
- WiLoR-S: 7 MB, 175 FPS
검출 손실 함수
\[\mathcal{L}_{det} = \lambda_0 \mathcal{L}_{BCE} + \lambda_1 \mathcal{L}_{DFL} + \lambda_2 \mathcal{L}_{CIoU} + \lambda_3 \mathcal{L}_{kpts}\]| 항 | 가중치 | 역할 |
|---|---|---|
| \(\mathcal{L}_{BCE}\) | \(\lambda_0 = 0.5\) | 분류 (손 여부 + 좌우) |
| \(\mathcal{L}_{DFL}\) | \(\lambda_1 = 1.5\) | 분포 초점 손실 (박스 좌표 분포 학습) |
| \(\mathcal{L}_{CIoU}\) | \(\lambda_2 = 15\) | 바운딩 박스 형상 회귀 |
| \(\mathcal{L}_{kpts}\) | \(\lambda_3 = 10\) | 키포인트 정렬 |
5. 3D 손 재건 네트워크 (WiLoR-Rec)
백본: ViT-Large
- ViTPose 사전학습 가중치에서 fine-tuning
- 은닉 차원 1,280
- 이미지 패치 토큰 \(\mathbf{T}_{img}\)와 포즈 \(\theta\), 형태 \(\beta\), 카메라 \(K_{cam}\)에 대한 학습 가능 토큰 함께 입력
- ViT 출력 토큰에서 MLP를 통해 초기(coarse) MANO 파라미터 추정
HaMeR의 ViT-H 대비 ViT-L를 사용하지만, ViTPose 사전학습 가중치와 정제 모듈로 성능을 보완한다.
정제 모듈 (Refinement Module)
WiLoR-Rec의 핵심 차별점이다. 초기 MANO 파라미터만으로 끝나지 않고, 이미지 공간에 정렬된 특징을 추출하여 잔차를 예측한다.
동작 원리:
- 특징 맵 생성: ViT 출력 이미지 토큰을 디컨볼루션 레이어로 업샘플링하여 다중 해상도 특징 맵 \(\{F_0, F_1, \ldots, F_n\}\) 생성
- 메시 투영: 초기 추정 카메라 \(K_{cam}\)을 사용해 3D 손 메시의 각 꼭짓점 \(v\)를 이미지 평면에 투영
- 이중선형 샘플링: 투영된 좌표에서 다중 스케일 특징 맵을 이중선형 보간으로 샘플링
- 잔차 예측: 메시 레벨 \(M_l\)의 꼭짓점 특징을 집약하여 포즈와 형태 잔차 계산
이 설계의 핵심은 이미지 정렬이다. 단순히 전역 이미지 특징으로 MANO를 회귀하는 것이 아니라, 추정된 메시 위치에 해당하는 지역 이미지 특징을 직접 참조하여 오차를 교정한다.
재건 손실 함수
\[\mathcal{L}_{rec} = \lambda_{3D}\mathcal{L}_{3D} + \lambda_{2D}\mathcal{L}_{2D} + \lambda_{pose}\mathcal{L}_{MANO,\theta} + \lambda_{shape}\mathcal{L}_{MANO,\beta} + \mathcal{L}_{adv}\]| 항 | 가중치 | 수식 |
|---|---|---|
| \(\mathcal{L}_{3D}\) | 0.05 | \(|V_{3D} - \hat{V}_{3D}|_1\) |
| \(\mathcal{L}_{2D}\) | 0.01 | \(|\pi(J_{3D}, K_{cam}) - \hat{J}_{2D}|_1\) |
| \(\mathcal{L}_{MANO,\theta}\) | 0.001 | \(|\theta - \hat{\theta}|_2^2\) |
| \(\mathcal{L}_{MANO,\beta}\) | 0.0005 | \(|\beta - \hat{\beta}|_2^2\) |
| \(\mathcal{L}_{adv}\) | — | \(|D(\theta, \beta) - 1|_2\) |
6. WHIM 데이터셋
동기와 규모
기존 in-the-wild 학습 데이터의 핵심 문제는 다양성 부족이다. WiLoR는 이를 해결하기 위해 WHIM (Wild Hand In-the-wild Monocular) 데이터셋을 자동 파이프라인으로 구축했다.
- 규모: 200만 개 이상의 in-the-wild 손 이미지
- 소스: 1,400개 이상의 YouTube 영상 (수화, 요리, 스포츠, 게임, 에고/엑소센트릭)
- 주석: 2D 바운딩 박스, 좌우 레이블, 3D MANO 파라미터
자동 주석 파이프라인
사람이 직접 주석을 달지 않고 자동화된 피팅 파이프라인으로 3D GT를 생성한다.
1단계 — 인체 검출:
- VitPose + AlphaPose로 신뢰도 0.65 이상의 사람 검출
2단계 — 손 검출 앙상블:
- MediaPipe, OpenPose, ContactHands 세 검출기 앙상블
- 검출기 신뢰도 기반 가중 평균으로 바운딩 박스 통합:
3단계 — 3D MANO 피팅: 세 가지 손실로 최적화:
- 재투영 손실: \(\mathcal{L}_{proj} = \|J_M - \pi(\hat{J}_s, K)\|_1\)
- 생체역학 손실: \(\mathcal{L}_{BMC} = \mathcal{L}_{BL} + \mathcal{L}_{A}\) (뼈 길이 + 관절 각도 제약)
- PCA 사전 손실: \(\mathcal{L}_{prior} = \|X - [(X - \mu)U^T]U + \mu\|_2\) (자연스러운 손 형태 강제)
생체역학 제약을 손실에 명시적으로 포함하여 비물리적 손 자세 생성을 방지한다.
7. 학습 설정
검출 모델
- 옵티마이저: Adam, 200 에포크 (30 에포크 조기 종료)
- 학습률: 0.01 → 1e-6 선형 감소
- 하드웨어: RTX 4090 × 2, 배치 크기 256, 3주 학습
- 증강: 모자이크 (확률 0.7), 회전 [-60°, 60°], 스케일 [0.5, 1]
재건 모델
- 옵티마이저: Adam, 1,000 에포크, 학습률 1e-5, 가중치 감쇠 1e-4
- 학습 데이터: 14개 데이터셋, 420만 개 이미지 (기존 방법 대비 55% 이상 증가)
- 기존 7개 3D 어노테이션 보유 데이터셋 (FreiHAND, HO-3D, InterHand2.6M 등) + WHIM 포함 7개 추가
8. 실험 결과
FreiHAND 벤치마크 (Table 3)
| 방법 | PA-MPJPE (mm) ↓ | PA-MPVPE (mm) ↓ | F@5mm ↑ | F@15mm ↑ |
|---|---|---|---|---|
| HaMeR | 6.0 | 5.7 | 0.785 | 0.990 |
| WiLoR | 5.5 | 5.1 | 0.825 | 0.993 |
WiLoR가 FreiHAND 모든 메트릭에서 HaMeR를 상회한다. PA-MPJPE 기준 8.3% 향상, F@5mm 기준 5.1%p 향상.
HO3Dv2 벤치마크 (Table 4)
| 방법 | AUCⱼ ↑ | PA-MPJPE (mm) ↓ | AUCᵥ ↑ | PA-MPVPE (mm) ↓ | F@5mm ↑ | F@15mm ↑ |
|---|---|---|---|---|---|---|
| HaMeR | 0.846 | 7.7 | 0.841 | 7.9 | 0.635 | 0.980 |
| WiLoR | 0.851 | 7.5 | 0.846 | 7.7 | 0.646 | 0.983 |
손-물체 상호작용 벤치마크에서도 일관된 향상.
손 검출 벤치마크 (Table 1, COCO 기준)
| 방법 | 모델 크기 | FPS ↑ | AP@0.5 ↑ | mAP ↑ |
|---|---|---|---|---|
| ContactHands | 819 MB | 3 | 50.29 | 16.67 |
| ViTDet | 1,400 MB | 1 | 41.64 | 13.21 |
| WiLoR-S | 7 MB | 175 | 46.96 | 18.56 |
| WiLoR-M | 25 MB | 138 | 62.48 | 25.97 |
WiLoR-M은 ContactHands 대비 45배 빠르고, 32배 작으면서 AP@0.5 기준 12.19%p 높은 성능을 달성한다.
WHIM 테스트셋 기준으로는 WiLoR-M이 AP@0.5 96.06, mAP 53.79을 기록한다.
시간적 일관성 (Table 6)
프레임별 독립 추론임에도 비디오에서의 시간적 일관성을 측정한 결과:
| 방법 | MPFVE×100 ↓ | MPFJE×100 ↓ | Jitter ↓ | RTE ↓ |
|---|---|---|---|---|
| HaMeR | 10.60 | 1.768 | 20.43 | 2.92 |
| WiLoR | 4.43 | 0.762 | 5.92 | 0.07 |
시간적 스무딩 모듈 없이도 HaMeR 대비 MPFVE 2.4배, Jitter 3.4배 향상. 명시적 시간 모델링 없이 달성된 시간적 일관성이 주목할 만하다.
9. 어블레이션
재건 모델 구성 요소 분석 (Table 5, FreiHAND 기준)
| 구성 | PA-MPJPE (mm) ↓ | PA-MPVPE (mm) ↓ | F@5mm ↑ | F@15mm ↑ |
|---|---|---|---|---|
| FastViT 백본 사용 | 6.5 | 6.3 | 0.741 | 0.967 |
| ViTPose 사전학습 미사용 | 5.9 | 5.7 | 0.795 | 0.989 |
| 단일 스케일 정제 | 6.0 | 5.9 | 0.793 | 0.991 |
| 정제 모듈 없음 | 6.1 | 5.8 | 0.795 | 0.991 |
| FreiHAND 단독 학습 | 6.1 | 5.8 | 0.793 | 0.990 |
| 전체 모델 (WiLoR) | 5.5 | 5.1 | 0.825 | 0.993 |
주요 관찰:
- 백본 선택이 중요: FastViT 대신 ViT-L 사용 시 PA-MPJPE 1.0mm 향상. 용량 차이가 성능 차이를 만든다.
- ViTPose 사전학습이 핵심: 일반 ViT-L 가중치 대비 ViTPose 가중치에서 시작하면 0.4mm 추가 향상. 손-신체 포즈 도메인 유사성이 전이 학습에 유리.
- 정제 모듈 효과: 정제 없이는 6.1mm → 정제 추가 시 5.5mm. 이미지 정렬 기반 잔차 예측이 0.6mm 향상 기여.
- 다중 스케일의 중요성: 단일 스케일 정제(6.0mm) 대비 다중 스케일(5.5mm)이 0.5mm 추가 향상.
- WHIM 데이터 기여: FreiHAND 단독 학습(6.1mm) 대비 전체 데이터(5.5mm)에서 0.6mm 향상. 도메인 외 데이터가 스튜디오 벤치마크에도 도움.
10. 한계점
- 검출 의존성: 재건 성능이 업스트림 검출 품질에 직접 의존. 검출 실패 또는 오탐 시 재건도 실패
- 단단한 크롭 요구: 최적 성능을 위해 손이 이미지 내에 충분히 포함된 타이트한 크롭 필요
- 명시적 시간 모델링 부재: 비디오에서 시간적 일관성이 우수하나, 명시적 시간 컨텍스트를 활용하지 않아 급격한 움직임에서 오류 가능
- 3D GT 자동 생성의 노이즈: WHIM의 3D 주석은 자동 피팅 파이프라인으로 생성되므로 수동 주석 대비 노이즈 포함
- MANO 표현의 한계: MANO 파라미터 공간으로 표현 불가능한 극단적 손 변형이나 도구 조작 상황에서 성능 저하
11. 정리
WiLoR는 HaMeR의 “스케일 가설”을 계승하면서 두 가지 중요한 방향을 추가한다.
첫째, 엔드-투-엔드 통합. 검출과 재건을 하나의 파이프라인으로 묶고, 검출기 자체의 성능도 동시에 끌어올린다. WiLoR-M은 45배 빠르면서도 더 정확한 손 검출을 달성한다.
둘째, 이미지 정렬 정제. 단일 포워드 패스 회귀에서 더 나아가, 초기 예측 결과를 이미지에 투영하고 이미지 정렬 특징으로 오차를 보정하는 코스-투-파인 구조를 도입한다. 이 설계가 정량적으로는 0.5–0.6mm의 향상을, 정성적으로는 뛰어난 시간적 일관성을 만들어낸다.
WHIM 데이터셋은 WiLoR의 숨겨진 인프라다. 수작업 주석 없이 1,400개 유튜브 영상에서 200만 개의 자동 주석 데이터를 구축하는 파이프라인은, 생체역학 제약을 피팅 과정에 통합하여 노이즈를 최소화한다.
HaMeR와 WiLoR를 비교하면:
| HaMeR | WiLoR | |
|---|---|---|
| 재건 백본 | ViT-H | ViT-L + ViTPose |
| 정제 모듈 | 없음 | 다중 스케일 이미지 정렬 |
| 검출기 | 외부 의존 | 내장 (WiLoR-Det) |
| 학습 데이터 | 2.7M (10 datasets) | 4.2M (14 datasets) |
| FreiHAND PA-MPJPE | 6.0 mm | 5.5 mm |
| 시간적 일관성 (Jitter) | 20.43 | 5.92 |
“검출부터 재건까지 통합하고, 이미지로 돌아와 오차를 교정한다 — WiLoR가 보여주는 다음 단계.”