논문 리뷰

[논문 리뷰] A survey on 3D hand pose estimation: Cameras, methods, and datasets

klee9 2024. 12. 4. 23:05

“디스, 디스”. 제가 몇 개월 전 친구들이랑 일본에 여행을 갔을 때 식당에서 가장 많이 들었던 말입니다. 그런데 “디스”라고만 하지 않고 굉장히 다급한 손가락질을 하면서 말하죠. 이처럼 손은 없어선 안 되는 중요한 친구입니다. 물건을 집는 것부터 누군가의 의사소통 수단이 되기도 합니다.



Hand Pose Estimation은 컴퓨터가 사람의 손가락 관절의 위치를 추측하는 것입니다. 이를 통해 제스처를 인식해 인간-컴퓨터 상호작용을 할 수도 있기 때문에 가상현실(Virtual Reality; VR), 증강현실(Augmented Reality; AR) 등 다양한 분야에서 매우 중요한 태스크 중 하나입니다. 제스처를 완벽하게 인식할 수 있다면 토니 스타크처럼 자유자재로 인터페이스를 조작할 수도 있죠.

“아니 저 영화가 언제 나왔는데 컴퓨터가 아직도 손가락 관절을 못 찾아?”라고 하실 수도 있습니다. 실제로 소비자들에게 뎁스 카메라가 보급된 시점부터 여러가지 연구들이 있었지만 최근에 종합적인 survey가 진행되지 않았습니다. 가장 최근에 나온 논문이 지금으로부터 무려 17년 전인 2007년에 나왔기 때문에 저자들은 디테일한 hand pose estimation에 대한 survey를 소개하려고 합니다.

 

 

1. Problem Formulation

대부분의 경우 3D hand pose estimation의 task는 깊이, 또는 RGB-D 데이터로부터 손 관절 위치를 찾는 것입니다. 이때 입력값은 깊이나 RGB-D 데이터가 될 것이고, 출력은 K개의 관절 위치가 됩니다. 조금 더 수학적으로 보죠. K개의 관절 위치는 다음과 같이 나타낼 수 있습니다.

$$ \Phi = {\{\phi\}}^K_{k=1} \in \Lambda $$

이때 $\phi_{k}=(x_k, y_k, z_k)$이고, $\Lambda$는 $3×K$차원의 공간이 됩니다. 이제 이 내용을 토대로 depth-based hand pose estimation을 보도록 하겠습니다.

Depth-based hand pose estimation 방법에는 두 가지 유형이 있습니다. 첫 번째 유형은 프레임 순서나 시간적 연속성에 의존하기 때문에 깊이 시퀀스(Depth Sequences)에서만 작동합니다. 두 번째 유형은 단일 깊이 지도도 처리할 수 있습니다.

만약 컴퓨팅 효율성이 높다면 두 번째 유형의 방법은 자연스럽게 깊이 시퀀스에도 적용될 수 있습니다. 그러나 프레임 순서가 완전히 무시되기 때문에 추정된 포즈의 연속성이 보장되지 않을 수 있습니다. 또한, 대부분의 방법은 뎁스 카메라가 고정되어 있는 경우에 작동하지만, 1인칭 시점을 기반으로 하는 hand pose estimation도 존재합니다.

 

 

2. 2D vs 3D Hand Pose Estimation

현재 널리 사용되는 뎁스 카메라는 거의 동기화된 RGB 비디오와 깊이 지도를 제공하며, 이를 통해 RGB-D 시퀀스를 모션 데이터로 사용하는 3D 손 자세 추정 방법이 등장했습니다. RGB-D 기반 방법들에서 RGB 비디오는 hand segmentation을 위한 보조 데이터로 사용되며, 깊이 지도가 실제로 hand pose estimation의 주요 모션 데이터로 사용됩니다.

3D hand pose estimation 기술은 깊이 지도를 굳이 필요로 하지 않습니다. RGB 데이터를 사용하는 이점이 더 크기도 하고 이미 순수한 RGB 데이터만 사용하는 연구가 많이 진행되기도 했습니다. 

3D hand pose estimation에 비해 2D hand pose estimation 연구는 많이 진행되지 않았습니다. 여러가지 이유가 있지만 가장 큰 이유는 깊이 정보가 없는 RGB 데이터만 사용하기엔 어려움이 많다는 것입니다. 그리고 또 다른 이유는 2D는 실용적이지 않다는 이유로 수요가 적어 연구의 필요성이 낮다는 점입니다.

 

3. Realistic Challenges

Hand pose estimation 기술이 많이 발전하긴 했지만 여전히 해결해야 할 문제가 남아 있습니다. 논문에서는 총 7가지의 문제를 제시하고 있습니다.

  1. 낮은 해상도
    깊이 탐지 원리의 한계로 인해 깊이 지도는 노이즈가 많고 부정확합니다. 그리고 손이 카메라에서 멀리 떨어져 있다면 각 관절의 깊이를 구분하는 데 어려움이 있습니다. 사실 그 정도 거리가 되면 사람조차도 분간하기 힘든 경우가 많고요.
  2. 손가락 간 유사도
    우리의 손가락은 전부 비슷하게 생겼죠. 하나씩 따로 떼어 놓고 보면 어느 손가락인지 분류하기 힘든데, 컴퓨터에게는 더 어려운 문제입니다.

  3. 가림 (Occlusion)
    사람의 손은 물건을 집거나, 손가락끼리 서로 꼬이거는 등 여러 손동작을 하며 손가락이 카메라로부터 가려지는 경우가 많습니다.

  4. 불완전한 데이터
    대부분의 Hand Pose Estimation 기법은 하나의 뎁스 카메라를 사용합니다. 그러나 단일 뷰 손 자세 추정은 특정 상황에서는 사람도 완벽히 추정하기 어려운 잘못 설정된 문제(ill-posed problem)입니다. 여러 카메라를 사용하면 문제를 해결할 수 있지만, 서로 다른 카메라로 인해 발생하는 데이터 통합 문제를 해결해야 하고, 일반인이 이를 활용하기 어렵다는 문제가 있습니다.

  5. Annotation의 어려움
    깊이 지도의 Annotation은 비용과 시간이 많이 드는 작업입니다. 이를 해결하기 위해 최근 기법들은 분석-합성(analysis-by-synthesis) 접근법을 사용하며, 이는 컴퓨터 그래픽스에서 변형 가능한 손 모델을 통해 합성된 깊이 지도를 생성하는 방식입니다. 그러나 이 방식은 합성 데이터와 실제 데이터 간의 불일치로 인해 한계가 있습니다.

  6. Hand segmentation
    Hand Pose Estimation은 Hand Segmentation을 전제로 합니다. 배경 노이즈가 많은 경우에서는 Segmentation이 어려운데요, 실제로 대부분의 기법들은 노이즈가 없는 배경을 사용하고 합니다. 그리고 일부 기법은 손 관절의 실제 위치를 사용해서 Segmentation 단계를 생략하지만, 이는 현실 세계에 응용하기엔 어려움이 있습니다.

  7. 실시간 처리 성능
    우리 손은 굉장히 빠르게 움직일 수 있습니다. 현존하는 뎁스 카메라는 200Hz 프레임률을 가지고 있지만 어떤 기법이 30FPS 추론 속도를 가지기란 쉽지 않습니다.

 

4. Methods

4-1. Model-Driven Methods

SoTA 모델 기반 기법


모델 기반 기법은 가설적인 포즈를 생성하고, 뎁스 카메라로부터 받은 관찰값과 비교하는 방식입니다. 국소 탐색(local search)과 초기화(initialization)를 결합하여 차선의 솔루션을 찾기 때문에 포즈 추정 결과는 초기값에 매우 민감합니다. 일반적으로 이전 프레임의 솔루션을 다음 프레임의 초기값으로 사용하며, 이로 인해 누적된 추정 오류로 pose-drifting(물체의 위치나 방향을 추측하는 데 있어 발생한 오류가 누적되는 것)이 발생할 수 있습니다. (특히 빠른 손 움직임의 경우, 모델 기반 기법이 추적 실패를 복구하기 어려울 수 있습니다)


몇 가지 특징을 살펴보죠. 첫 번째 특징은 해부학적, 운동학적 제약 조건을 고려한 손 모델에 의존한다는 점입니다. 손 모델은 가설적인 손 포즈를 생성하기 위해 도입됩니다. 두 번째 특징은 목적 함수를 초기화하기 위해 손 포즈가 필요하다는 점입니다. 모델 기반 기법에서는 어노테이션 데이터를 discriminative classifier나 회귀 모델을 학습하는 데 사용하지 않고, 손 모델을 위한 기하학적 및 동적 사전 정보를 학습하거나 목적 함수를 구성하는 데 사용합니다.

 

 

4-2. Data-Driven Methods

데이터 기반 기법은 관찰값으로부터 어노테이션이 달린 포즈 집합으로의 직접적인 매핑을 학습합니다. 모델 기반 기법과 달리, 데이터 기반 기법은 어노테이션이 달린 hand pose를 사용하여 classifier나 회귀 모델을 학습시킵니다.

 

데이터 기반 기법


일반적인 데이터 기반 기법은 단일 깊이 지도로부터 손 포즈를 추정하려고 시도하며, 이로 인해 pose-drifting에 강인하고 이전 추정 결과의 부정확성이나 손이 카메라 시야에서 사라지는 상황에서도 정확성이 유지된다는 장점이 있습니다. 

데이터 기반 기법의 첫 번째 특징은 명시적인 손 모델을 도입하지 않는다는 점입니다. 대신, 테스트 자세는 분류나 회귀를 통해 어노테이션이 달린 손 자세와 연결됩니다. 데이터 기반 기법에서는 학습이 필수이며, 초기 손 자세는 일반적으로 요구되지 않습니다.

두 번째 특징은 데이터 기반 기법이 충분히 많은 어노테이션이 달린 포즈를 사용하여 전체 포즈 공간을 밀도 높게 커버하려고 시도한다는 점입니다. 따라서 데이터 기반 기법의 정확도는 런타임에서 문제에 투입된 계산 비용보다는 어노테이션이 달린 손 자세에 크게 영향을 받습니다.

 

4-3. Hybrid Methods

 

하이브리드 기법


하이브리드 기법은 모델과 데이터 기반 기법의 장점을 결합하여 hand pose estimation 문제를 해결하는 것이 목적입니다.

하이브리드 기법은 두 가지 유형으로 나뉠 수 있습니다(물론 이 둘로만 국한되는 것은 아닙니다). 첫 번째 유형은 모델 기반 기법을 사용해서 문제를 해결하되 실패 시에만 데이터 기반 방법을 고려하는 것이고, 두 번째 유형은 데이터 기반 기법을 통해 초기 포즈를 얻고, 모델 기반 기법을 사용해 결과를 검증하거나 최적화하는 방식입니다. 최근 하이브리드 기법의 대부분은 두 번째 유형에 속한다고 합니다.

하이브리드 기법을 개발하는 것은 쉽고 단순한 작업이 아닙니다. 손 탐지, 해부학적 제약, 다섯 손가락 간의 유사성과 같은 고유한 어려움이 여전히 남아 있고, 모델 기반 기법과 데이터 기반 기법을 결합하는 과정에서 계산 비용과 같은 새로운 상호 연계된 문제들이 발생할 수 있습니다. 이러한 이유로 하이브리드 기법이 반드시 모델 기반 기법이나 데이터 기반 기법보다 더 우수하게 작동하는 것은 아닙니다.

위에 제시된 사진들만 봐도 알 수 있듯이, 데이터 기반 기법이 수적으로 우세에 있습니다. 데이터 기반 기법은 복잡한 목적 함수를 만들지 않아도 되기 때문에 모델 기반/하이브리드 기법과는 달리 런타임 성능이 더 뛰어나기 때문입니다. 데이터 기반 기법은 모델 기반/하이브리드 기법보다 정확도가 낮지만 pose-drifting 문제로부터 자유롭다는 장점이 있기도 합니다.

 

5. Temporal Coherence 

모델 기반 기법은 시간적 연속성을 활용해 프레임 간 자세의 일관성을 유지하지만, 손이 카메라 시야에서 벗어날 경우 pose-drifting과 오류에 취약합니다. 칼만 필터와 같은 기법으로 해결할 수 있지만 높은 프레임 속도가 필요합니다.

데이터 기반 기법은 일반적으로 일반적으로 단일 깊이 맵에서 자세를 추정하므로 자세 드리프트 문제가 없습니다. 그러나 시간 정보를 포함하면(RNN 등 사용) 성능이 향상될 수 있습니다.

하이브리드 기법은 시간적 연속성을 활용하며 최적화하지만 복잡도가 증가하게 됩니다.

 

5-1. Runtime Performance

모델 기반 기법은 다양한 시나리오에 적응할 수 있는 유연성을 가지지만 계산 비용이 높습니다. 정확도와 속도 간의 절충이 가능합니다.

데이터 기반 기법은 계산 효율성이 높고, 소수의 알려진 포즈를 추정하는 작업에 적합합니다. 정확도는 학습 데이터의 품질과 다양성에 따라 결정됩니다.

하이브리드 기법은 모델 기반 기법처럼 최적화를 필요로 하여 계산 비용이 높습니다. 실행 속도는 데이터 기반 기법보다 낮은 경우가 많습니다.

 

5-2. Anatomic and Kinematic Constraints

해부학적 및 운동학적 제약을 다루고 있는 파트입니다. 마찬가지로 세 가지 기법을 비교하고 있습니다.

모델 기반 / 하이브리드 기법은 손 모델을 도입하여 해부학적 정확성을 유지합니다. 구체적 제약을 위해 구, 실린더, 가우시안 혼합과 같은 다양한 기하학적 표현을 사용합니다.

데이터 기반 기법은 어노테이션 데이터에 의존하며, 추정된 자세의 유효성은 학습 데이터의 품질에 크게 좌우됩니다. 일부 방법은 네트워크 설계를 통해 구조적 제약을 강화합니다.

정리하자면, 데이터 기반 기법은 실행 성능과 간단함에서 뛰어나고, 모델 기반 기법은 해부학적 정확성과 적응성에서 강점이 있으며, 하이브리드 기법은 두 기법의 강점을 결합하려 하지만 계산 효율성을 희생하는 경우가 많습니다

 

 

6. Specific Analysis

6-1. Popular Algorithms


위 테이블을 보면 두 번째 column에 나온 알고리즘을 통해 두 가지 결론을 도출할 수 있을 것 같은데요, 첫 번째로 데이터 기반 기법과 하이브리드 기법에서 가장 많이 사용한 분류, 회귀 알고리즘은 deep network와 random forest임을 확인할 수 있습니다.

다음 결론은 모델 기반 기법과 하이브리드 기법 중에서 가장 많이 사용한 에너지 함수와 최적화 솔루션 알고리즘은 각각 ICP와 PSO였습니다. 각 알고리즘을 하나씩 보도록 하겠습니다.

 

  1. Deep Networks
    컴퓨터 비전 분야에서 널리 쓰이는 만큼, hand pose estimation에 적용하는 것이 전혀 이상하지 않습니다. 많은 연구들이 이미 deep networks가 hand pose estimation에서 매우 좋은 성능을 내고 있다는 것을 입증하고 있습니다. 그러나 데이터 의존도가 높기 때문에 hand-labeling을 하기보다는 정답(ground truth)을 포함하고 있는 합성 데이터를 이용합니다.
       
    Residual networks, auto encoder networks, GAN과 같은 SoTA 딥러닝 기술이 이미 hand pose estimation task에 적용되기도 했고, 데이터 증강, 다중 뷰/스케일 융합 등이 deep networks와 결합되기도 했습니다. 대부분의 deep network 기반 기법은 2D convolution kernel을 사용하여 심층 특징을 추출하지만, 깊이 맵의 2.5D 특성 때문에 이를 볼륨 표현으로 변환하여 3D CNN에 입력함으로써 직접적으로 손 자세를 생성할 수 있습니다.

  2. Random Forest
    한 연구에서 random forest에 기반한 고전적인 human pose estimation 방법을 제안했으며, 이를 바탕으로 여러 후속 hand pose estimation 기법이 등장했습니다. 그렇다면 왜 random forest가 널리 사용될까요?
        
    Random forest는 여러 클래스를 지원하기 때문에 hand pose estimation의 특성과 잘 맞고, 많은 비전 작업에서 높은 효율성을 나타내고 있습니다. 그리고 human pose estimation에 성공적으로 적용되었기 때문에 사용되는 것입니다.
        
    Random forest는 hand pose estimation을 두 가지 방식으로 처리합니다. Regression forest, classification forest로 나뉘는데, regression forest의 학습 품질 함수는 자식 노드 간의 공간 분산을 최소화하도록 설계되었고 리프 모델은 손 부위 위치와 같은 연속적인 출력 값을 예측합니다. 이 부분에 대해 더 알고 싶으면 Poudel et al. 논문을 확인하시길 바랍니다.

  3. PSO(Particle Swarm Optimization)
    여러 입자(solutions)를 여러 세대(iterations) 동안 진화 시켜서 최적화를 수행하는 확률적 진화 알고리즘(stochasitc evolutionary algorithm)입니다. non-convex, non-smooth 목적함수를 해결하는 데 적합하고, 병렬 구현 메커니즘을 지원하기 때문에 GPU를 통해 가속화할 수 있다는 특징이 있습니다.

  4. ICP (Iterative Closest Point)
    포인트 클라우드를 메쉬 모델에 정렬하는 강체 변환을 찾는 가장 일반적인 방법입니다. ICP는 빠르게 국소 최적에 도달할 수 있으며, 매개변수 공간을 더 효과적으로 탐색하는 PSO와 결합하는 하이브리드 최적화 알고리즘이 제안되기도 했습니다.