~ 목차 ~
1. Introduction
2. Related Work
3. Frank Model
3.1 Stitching Part Models
3.2 Body Model
3.3 Face Model
3.4 Hand Model
4. Motion Capture with Frank
4.1 3D Measurements
4.2 Objective Function
5. Creating Adam
5.1 Fitting Clothes and Hair
5.2 Detection Target Regression
5.3 Building the Shape Deformation Space
5.4 Tracking with Adam
6. Results
6.1 Quantitative Evaluation
6.2 Quantitative Results
7. Discussion
1. Introduction
- Social communication은 인간 움직임에서 중요한 역할을 하며, 어깨를 으쓱하거나 고개를 돌리는 미세한 동작으로 주의, 감정, 의도를 전달한다. 이러한 신호는 얼굴 표정, 손 제스처, 몸의 자세 등 신체 전체의 움직임을 통해 이루어지며, 인간 행동을 이해하고 기계가 이를 인지하는 데 필수적인 요소다.
- 하지만 얼굴, 손, 신체를 동시에 추적할 수 있는 markerless 시스템은 아직 존재하지 않는다. 기존 시스템은 특정 부위나 스케일에만 초점을 맞춰서 몸통과 사지는 큰 공간에서, 얼굴은 가까운 거리에서 정면으로, 손가락은 손에 집중된 가까운 거리에서 캡처하는 식으로 작동되기 때문에 사회적 신호를 전체적으로 분석하는 데 어려움이 있었다.
- 이를 해결하기 위해, 논문에서는 주요 신체 부위 움직임을 표현할 수 있는 새로운 생성적 신체 변형 모델을 제안한다. 여러 템플릿 모델을 통합해서 초기 모델 “Frank”를 구축하고, 다중 뷰 키포인트 검출을 활용해 70명 데이터를 기반으로 학습한 “Adam” 모델을 소개한다. 이 모델은 머리카락과 의상 변화를 간소화된 방식으로 캡처하고, 3D 변형 모델로 여러 사람의 움직임을 분석할 수 있다.
2. Related Work
- 현재는 사람의 신체 동작을 측정할 때, 신체 주요 위치에 반사 마커를 부착해 동작 데이터를 수집하는 marker-based 모션 캡처 방식이 널리 사용되고 있다. 하지만 이 방법은 마커 부착의 번거로움과 함께 다음과 같은 3가지 한계가 있다:
- 카메라가 마커를 잘 구분하려면 마커를 간격을 두고 부착해야 하며, 이로 인해 해상도가 낮아진다.
- 가려진 마커를 사람이 수작업으로 처리해야 해 작업량이 많다.
- 얼굴, 몸, 손에 마커를 붙이는 과정이 참여자에게 어색함을 유발해 자연스러운 행동을 방해한다.
- Markerless 모션 캡처는 성능 면에서 marker-based 방식보다 부족하지만, 마커가 필요 없다는 점에서 강점을 가진다.
- 주로 몸통과 팔다리의 동작을 포착하고, 다중 뷰 카메라 세팅과 3D 템플릿 모델을 활용한다.
- 이 논문에서는 다양한 데이터를 활용해서 3D 템플릿 모델을 기반으로 모션을 캡처한다.
- 하지만 옷을 입은 상태에서 모션 캡쳐를 하려면 추가적인 모델링이 필요하다.
- 최근에는 대규모 2D 포즈 데이터셋으로 학습한 모델이 가려진 부위를 추정할 수 있고, 2D 키포인트를 기반으로 3D 모델 피팅이 가능하다.
- 저가형 깊이 센서의 등장으로 단일 뷰(depth 기반) 신체 모션 캡처가 상용화되었고, 단일 이미지에서도 3D 스켈레톤을 직접 추정할 수 있게 되었다.
- 단일 깊이 센서와 2D 손 키포인트를 활용해서 3D 손 키포인트를 추출하는 기술이 개발되었다.
(원래 손 모션 캡처는 더 높은 정밀도를 요구했기 때문에 이전에는 얼굴 및 손 모션 캡처가 별도의 영역으로 여겨졌다.)
- 이 논문은 여러 사람의 신체 동작, 손 동작, 얼굴 표정을 동시에 포착하는 첫 번째 markerless 모션 캡처 접근법을 제시했다.
3. Frank Model
- Frank 모델은 인간 신체, 얼굴, 손의 움직임을 통합적으로 표현하기 위해서 기존의 세부 모델(SMPL, FaceWarehouse, Artist-defined Hand Rig)을 결합한 모델이다.
- 각 부위는 세밀한 표현을 위해 고유의 파라미터화를 유지하면서 하나로 통합된다. 또한 3D 스캐닝 기술의 한계를 고려해서 설계되었고, 부위별로 최적화된 데이터를 효과적으로 활용했다.
3.1 Stitching Part Models
- Frank 모델 $M_{U}$은 동작 매개변수 $θ_{U}$, 형태 매개변수 $ϕ_{U}$, 전역 변환 매개변수 $t_{U}$로 구성되고, 이를 통해 매끄러운 최종 메쉬 $V_{U}=M_{U}(θ_{U},ϕ_{U},t_{U})$를 생성한다. 이 메쉬는 신체($B$), 얼굴($F$), 왼손($LH$), 오른손($RH$)의 각 부위 모델 매개변수를 결합해서 정의된다.
- 각 부위 메쉬는 $N^{B}$=6890, $N^{F}$=11510, $N^{H}$=2068개의 vertex로 이루어져 있고, 블렌딩 행렬 $C$를 사용해서 $V_{U}=C {[{(V_{B})}^{T} {(V_{F})}^{T} {(V_{LH})}^{T} {(V_{RH})}^{T}]}^{T}$ 형태로 결합된다.
- 최종 메쉬는 18,540개의 vertex로 구성되고, 중복된 점들을 제거해서 크기를 줄이고 효율성을 높인다.
- 모든 부위는 단일 골격 계층으로 연결되어 모션 캡처의 일관성을 유지하고, SMPL 신체 골격의 손과 얼굴 부분은 각 부위의 세부 골격 계층으로 대체된다. 또한 동작 추적과 정체성 적합을 위해 모든 매개변수가 함께 최적화된다.
3.2 Body Model
- Body model $B^{F}$은 SMPL 모델을 약간 수정한 모델이고, 아래와 같이 정의된다.
$$V^{B}=M^{B}(θ^{B},ϕ^{B},t^{B})$$
- 평균적인 몸 형태를 기준으로 시작하고, blendshape를 통해 사람마다 다른 신체 특징(키, 체형 등)을 표현함: $v_i = v_i^{B0} + \sum_{k=1}^{K_b} b_{k,i} \phi_B^k$
- 신체의 움직임은 linear blend skinning(LBS)을 사용해서 각 관절의 움직임을 계산하고 적용함: $v_i =\sum_{j=1}^{J} w_{i,j}^B T_j^B$
- 관절의 움직임은 뼈대 구조를 따라 뿌리 관절에서 시작해 순차적으로 계산되고, 부모 관절의 변환이 자식 관절로 전달되는 방식으로 뼈대 구조의 움직임이 자연스럽게 표현됨: $T_j = T_{\text{parent}(j)} R_j T_j^0$
- 모델은 21개의 주요 관절만 사용함: $J = 21$ (손끝과 같은 세부 관절이나 포즈에 따른 세부 변형은 생략됨) $$v_i^B = I_{3 \times 4} \sum_{j=1}^{J} w_{i,j}^B T_j^B \left( v_i^{B0} + \sum_{k=1}^{K_b} b_{k,i} \phi_B^k \right)$$
3.3 Face Model
- Face model $M^{F}$은 FaceWarehouse 데이터셋을 사용해 생성된 PCA 기반 모델이고, 아래와 같이 정의된다.
$$V^{F}=M^{F}(θ^{F},ϕ^{F},T^{F})$$
- $M^{F}$가 $θ^{F}$ (형상), $ϕ^{F}$ (표정), $T^{F}$ (변환) 입력 값을 통해 11,510개의 3D 정점으로 이루어진 얼굴 모델 $V^{F}$를 생성한다는 뜻이다.
- Face Model은 아래 과정을 통해 body model과 자연스럽게 결합된다.
- 기본 얼굴 형태(평균 얼굴)를 기준으로 시작함: $v_i^{F0}$
- Body model의 머리 관절에 얼굴을 정렬하여 연결함: $ T_{j=F}^{B}$
- 몸체의 크기와 움직임에 맞춰 얼굴의 위치를 보정함: $\Gamma_F$
- 최종적으로 몸체와 얼굴이 자연스럽게 연결된 통합된 모델 생성함: $v_i^F = I_{3 \times 4} \cdot T_{j=F}^{B} \cdot \Gamma_F \cdot \hat{v}_i^F$
3.4 Hand Model
- Hand model $H^{F}$은 아래 과정을 통해 body model과 결합된다.
- 아티스트가 리깅한 손 메쉬를 사용하고, 16개의 관절로 이루어짐: $J^{H}=16$
- 손의 기본 모양은 고정되어 있지만 손가락 크기를 조정할 수 있도록 각 뼈에 스케일링 파라미터를 추가로 사용함:$ v_i^{H0}
, T_j^H$ - 관절의 움직임은 부모 관절에 대해서 오일러각으로 표현되고 각 축(X, Y, Z)에 대해서 크기를 독립적으로 조정됨. LBS를 통해 관절의 움직임에 따라 손 메쉬의 꼭짓점을 변형함: $\sum_{j=1}^{J} w_{i,j}^H T_j^H v_i^{H0}$
- Body model과 결합하기 위해서 손과 몸의 관절을 정렬함: $v_i^H = I_{3 \times 4} \cdot T_B^H \sum_{j=1}^{J} w_{i,j}^H T_j^H \left( v_i^{H0} \right)$
4. Motion Capture with Frank
- Frank 모델은 주요 팔다리, 얼굴, 손가락을 포함한 신체 전체 움직임을 캡처하고, 주로 3D 키포인트에 메쉬를 맞춘다. 3D 키포인트는 다중 카메라 뷰의 2D 키포인트를 traingulation(두 지점에서 대상을 관찰한 각도와 거리를 기반으로 3D 위치를 계산하는 기법)해서 얻는다.
- 형태 정보는 multiview stereo reconstruction으로 생성된 point cloud를 활용하기도 한다.
- 모델 피팅은 관절 및 표면 점과 3D 키포인트 간의 거리를 최소화하고, 3D point cloud에 ICP 알고리즘 적용해서 최적화한다.
4.1 3D Measurements
- 논문에 나온 프레임워크는 두 가지 유형의 3D 데이터를 사용한다:
(1) Corresponded 3D Keypoints: 메쉬 모델의 관절 또는 표면 포인트에 매핑됨
(2) Uncorresponded 3D points from nultiview stereo reconstruction: ICP로 매칭됨
- 3D Body, Face, and Hand Keypoints
OpenPose를 사용해서 2D 키포인트를 추출하고, 이를 삼각 측량해서 3D 키포인트를 생성한다.
2D 검출 부족으로 일부 3D 키포인트가 누락될 수 있다.
- 3D Feet Keypoints
발의 정확한 자세를 위해 큰발가락 끝, 작은발가락 끝, 발바닥의 3개 키포인트를 COCO 데이터셋 중 약 5000개를 통해 학습시키고, 발에 대한 bbox와 multiview bootstrapping을 활용해 품질을 개선한다.
- 3D Point Clouds
RealityCapture를 사용해서 멀티뷰 이미지에서 3D point cloud와 point normal 데이터를 생성한다.
4.2 Objective Function
- 각 프레임은 독립적으로 최적화되고, cost function $ E(θ^{U},ϕ^{U},t^{U})=E_{keypoints}+E_{icp}+E_{seam}+E_{prior}$이 사용된다.
- Levenberg-Marquardt 알고리즘과 Ceres Solver를 사용해서 local min을 피하면서 최적화를 한다.
- Keypoint Cost ($E_{keypoints}$)
관절과 얼굴, 손끝 같은 3D 키포인트를 메쉬 모델과 맞출 때 사용된다.
키포인트와 메쉬 간의 위치 차이를 계산해서 최소화하고, 가중치 $λ_{keypoints}$로 조정한다.
- ICP Cost ($E_{icp}$)
메쉬 정점과 3D 포인트 간 법선 방향 거리로 계산되고, ICP 알고리즘으로 최적화된다.
- Seam Constraints ($E_{seam}$)
부위 간 경계에서 발생할 수 있는 불연속성을 줄이기 위해서 seam 주변의 vertex 차이를 최소화한다.
- Prior Cost ($E_{prior}$)
모델을 피팅할 때 측정치 부족, 노이즈, 관절위치 불일치 등의 문제를 해결하기 위해서 각 파트에 prior cost를 설정한다.
매개변수는 zero-mean standard normal prior를 따르고, 스케일링 요소는 1에 가깝도록 한다.
5. Creating Adam
- Adam은 Frank 모델보다 간단한 parameterization으로 신체 전체 움직임을 캡처할 수 있도록 설계된 새로운 모델이다. 이 모델은 single joint hierarchy(각 관절이 부모-자식 관계를 통해 계층적으로 연결된 구조)와 common parameterization을 사용해서 얼굴, 손, 신체 형태를 통합하고, seperate part parameterization나 seam constraint가 필요하지 않다.
- Adam을 구축하려면 다양한 신체 부위(얼굴, 몸, 손)를 포함하는 재구성된 메쉬를 정렬하고, 모델이 변화를 학습할 수 있도록 해야 한다. 이때 Frank 모델을 활용해서 multiview camera system에서 짧은 동작을 하는 70명의 데이터를 처리한다. (각 사람별로 5개의 다른 자세를 선택해서 총 350개의 메쉬를 생성, Frank 모델을 통해 정렬된 메쉬와 관절 위치를 추출해서 Adam을 구축함)
- Adam은 옷을 입은 상태에서의 데이터를 기반으로 하기 때문에 의상의 변화를 대략적으로 설명할 수 있다.
5.1 Fitting Clothes and Hair
- Frank 모델은 옷과 머리카락을 반영하지 않는다.
- 이를 보완하기 위해서 각 vertex $v_i$를 노멀 방향으로 변형하여 $\tilde{v}_i = v_i + n(v_i) \delta_i$로 정의한다.
($n(v_i)$: 노멀 벡터, $\delta_i$: 메쉬와 3D point cloud 간 차이를 보정하는 변위)
- 이를 통해 의복과 머리카락의 대략적인 기하학을 더 잘 반영하는 메쉬를 생성한다.
5.2 Detection Target Regression
- LBS 모델의 관절 위치와 2D keypoint 검출 위치 간 차이가 피팅 오류를 유발한다.
- 이를 해결하기 위해 3D keypoint 검출 위치를 목표로 하는 새로운 회귀 함수 $\hat{J}^A$를 계산한다. (Frank 모델로 정렬된 메쉬를 기반으로 회귀 행렬을 생성한 뒤, 각 검출 대상 근처의 vertex를 선택해 L1 정규화된 최소제곱 문제로 3D 키포인트를 근사화)
- 이에 따라 Adam이 관절 61개(신체관절 21개, 손가락관절 40개)을 포함하게 된다.
5.3 Building the Shape Deformation Space
- 모델 피팅 후, LBS의 역연산을 통해서 각 프레임의 표면을 rest pose로 변환하고, 정렬된 표면을 기준 자세로 워프한 뒤 PCA 분석으로 신체 전체의 형태 변화를 포함하는 선형 형태 공간을 만든다.
- 얼굴의 표정은 FaceWarehouse 모델로 유지하고, MVS pointcloud의 해상도가 낮기 때문에 직접 피팅하지는 않는다.
5.4 Tracking with Adam
- Adam을 사용한 신체 전체 움직임 캡처의 cost function은 다음과 같다:
$$E(θ_{A},ϕ_{A},t_{A})=E_{keypoints}+E_{icp}+E_{prior}$$
- 이는 Frank 모델의 cost function에서 seam 항을 제외한 형태이다.
- Adam은 모든 부위에서 공통된 형태와 자세 매개변수를 사용하고, 서로 다른 모델 간의 이음새 제약이 필요 없기 때문에 Frank보다 최적화하기 쉽다.
6. Results
- 논문에서는 Frank와 Adam 모델로 CMU Panoptic Studio 데이터를 사용해서 전체 동작 캡처를 한 결과를 보여준다.
- 140대의 VGA 카메라로 3D 신체 키포인트를, 480대의 VGA와 31대의 HD 카메라로 얼굴, 손, 발 키포인트와 3D 포인트 클라우드를 캡처한 뒤 이 결과를 simplified된 SMPL 모델과 비교했다.
6.1 Quantitative Evaluation
- 각 모델이 움직이는 사람의 실루엣과 얼마나 잘 일치하는지 평가하기 위해서 10초 시퀀스에서 5개 뷰포인트의 GT 실루엣과 렌더링된 전경 마스크의 중첩도를 측정했다.
- Frank와 SMPL를 비교했을 때, 3D 키포인트 측정에서 Frank는 관절 손 모델 개선점과 ICP 항 추가로 정확도가 향상되었다.
- Frank와 Adam의 성능은 유사했지만, Adam이 머리카락과 옷 표현 면에서 더 정교했고, 특정 체형에서 좋은 성능을 냈다. 하지만 Adam은 'thinner legs'와 같은 성능이 낮은 것들을 내었고, 이는 데이터셋의 3D point cloud reconstruction이 부족했기 때문으로 본다.
6.2 Quantitative Results
- 얼굴과 손의 움직임이 자연스럽게 나타나는 장면들을 대상으로 실험을 했다. 70명의 짧은 동작, 사회적 상호작용, 가구 제작과 같은 섬세한 손동작, 첼로·기타 연주, 타이핑 등의 일상 동작이 포함되었고, 사실감을 위해 미세한 디테일을 캡처하는 것이 핵심이었다.
오른쪽의 Fig. 6이 결과이다. 여기에서 Frank(은색)와 Adam(금색) 모델을 SMPL(포즈 블렌드셰이프 없이, 분홍색)과 비교했는데, Frank와 Adam 모델은 손과 얼굴의 미세한 디테일을 포착하며 더 사실적인 결과를 보였다.
7. Discussion
- 이 논문은 얼굴, 신체, 손 동작을 포함한 전체 신체 동작을 markerless 방식으로 캡처하는 최초의 방법을 제안했다. 이를 위해 Frank와 Adam 모델을 설계했고, sparse한 3D 키포인트만으로도 사실적인 재구성 결과를 얻었다. Adam 모델은 학습 데이터의 제한으로 표면 디테일 표현력이 부족했지만, 간단한 표현 방식으로 전체 신체 동작 캡처에 유용하다는 것을 알 수 있었다.
두 가지 주요 시사점을 도출했다.
- 첫째, markerless 방식의 손 동작 캡쳐가 신체와 얼굴보다 높은 localization quality를 보였다. 신체 관절이 옷으로 가려지거나 얼굴이 카메라를 쳐다보지 않을 때 정확도가 떨어지는 반면, 손은 주로 드러나 있기 때문에 다중 뷰에서 융합이 수월했다.
- 둘째, markerless 방식이 marker-based 보다 성능이 높아질 수 있는 잠재력을 보였다. 논문의 모델을 사용하면 Learning-based keypoint detector를 통해 occlusion 문제를 극복할 수 있기 때문이다.
'Paper Review' 카테고리의 다른 글
[논문리뷰] "End-to-End Learning for Self-Driving Cars" (2016) (0) | 2025.01.16 |
---|---|
[논문리뷰] "Are we ready for Autonomous Driving? The KITTI Vision Benchmark Suite" (2012) (0) | 2025.01.13 |
[계획] 1월에 리뷰할 논문 목록 (1) | 2025.01.08 |
[논문리뷰] Deep Residual Learning for Image Recognition (ResNet) (1) | 2024.11.15 |
[논문리뷰] Very Deep Convolutional Networks for Large-Scale Image Recognition (VGGNet) (1) | 2024.11.13 |