Human Pose Detection / Estimation

사람의 Pose를 추정하는 문제 영역에 대해서 많은 연구가 이루어 지고 있습니다. 사람의 Pose는 이미지 내에서 특정 관절(예로 좌/우 어깨, 좌우 무릎, 허리, 손목 목, 팔꿈치 등) 등의 위치를 추정하는 것으로 2D 좌표에서 3D 좌표를 찾아내거나, 기존의 Top-Down 방식에서 Bottom-up 방식으로의 기술이 발전되고 있습니다.

  • Top-down
    : 영상에서 사람을 Detection한 후, Bounding box 내부에서 포즈를 추정하는 방식으로, 별도의 Detection과 Cropping이 필요하며, Bottom-up 방식보다는 정확도가 높지만, 이미지 내 사람마다 별도로 추정하기 때문에 속도가 느리다.
  • Bottom-up
    : 영상에 포함된 사람의 키포인트를 모두 추정하고, 키포인트들간의 상관관계를 분석하여 포즈를 추정하는 방식으로, 별도의 Detection 과정이 없어서 빠르지만, Top-down 방식에 비해 정확도가 낮은 편임.

아래는 Human Pose Estimation 문제 영역에 처음으로 Deep Learning 기법이 적용되기 시작한 2014년도 논문부터 임팩트 있었던 논문들을 순서대로 따라 읽어 정리한 내용입니다. 아직 정리된 논문은 2017년도까지로 몇개 더 읽고 있지만 정리가 되지 않았습니다. 정리가 되는데로 추가하여 반영하도록 하겠습니다.

논문 Summary

  • [2014_CVPR] DeepPose: Human Pose Estimation via Deep Neural Networks
    • Top-Down 방식
    • 이 논문은 Human Pose Estimation 문제 영역에 딥러닝을 최초로 적용한 방법임.
    • 주어진 입력에 대해서 CNN을 통해 Feature를 추출하고 이를 토대로 관절의 x,y 좌표를 찾아내는 CNN 기반의 Regressor를 학습
    • 이때, 첫 입력 이미지는 고정된 크기로 resize되어 입력되기 때문에, coarse한 추정 결과를 얻을 수도 있으므로 Cascade 방법을 제안함
    • 동일한 아키텍쳐를 지녔지만, 각 스테이지마다 각 관절에 대해서 추정된 위치를 기반으로 바운딩박스를 설정하고 crop 후 resize 하는 과정을 반복한다. 이로써 탐색 대상에 대해서 보다 높은 해상도를 바라 보는 효과와 전체적인 context를 고려해주는 이점이 있다.
Initial stage에서는 단순 초기 위치를 추정하고, 이후 단계에서는 각 관절마다 이전 위치를 중심으로 바운딩 박스를 설정하고 crop → resize, 다시 CNN regressor를 반복함으로써 각 관절의 위치를 갱신하게 된다.
  • [2015_CVPR] Efficient Object Localization Using Convolutional Networks
    • Top-Down 방식
    • 이 논문은 Cascade 방식으로 구성되어 있으며, Coarse Heat-map Model과 Fine Heat-map Model로 이루어진다.
    • 일반화 성능을 위해 일반적인 Dropout이 아닌 Spatial Dropout (채널별로 비활성화)를 적용함
      • Coarse Heat-Map Model을 통해 rough한 각 joint들의 초기 위치를 구하고,
      • 각 관절의 초기 위치를 중심으로 Coarse Heat-map 모델의 Conv Feature Map으로부터 Crop하여 샘플링
      • 이를 Fine Heat-Map Model (4개의 CNN, 각 관절 sub-network는 파라미터 공유하고 마지막 레이어에만 공유 안함)을 통과 시켜서 더 디테일한 heat-map을 구하고 여기서 해당 joint의 위치 변화량을 계산
      • 변화량을 반영한 Joint의 최종 위치를 결정
  • [2016_CVPR] CPM: Convolutional Pose Machines
    • Top-Down 방식
    • 이 논문 역시 Cascade 방식으로 구성되어 있으며, 이미지가 네트워크를 통과하여 최종적으로 각 관절에 해당하는 Belief 맵을 생성함
    • 위 DeepPose 등의 방법은 초기 위치를 기준으로 샘플링 후 위치를 조정하는 형태의 coarse-to-fine 방식을 채택하였음.
    • 이 논문에서는 Conv 레이어를 통과한 이미지가 Receptive Field 영역으로 인해서 Local 영역만을 바라보기 때문에 관절 Belief 맵의 신뢰도가 낮게 나타나지만, Receptive Field 영역을 늘려 여러 관절간의 관계를 고려하게 함으로써 성능을 개선시키는 방법을 제안함.
      1. 이미지에서 Feature Map 추출 및 1×1 Conv를 통해 초기 Belief Map 생성
      2. 이미지로부터 Feature Map 추출 및 이전 단계 Belief map과 결합 후 추가적인 Conv layer를 통과하여 새로운 Belief Map 생성
      3. 2번 단계를 T-1 반복 후 최종 Belief Map으로부터 관절 위치 탐색 (최대값 위치)
  • [2017_CVPR] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
    • Bottom-Up 방식
    • 이 논문은 Bottom-up 방식의 pose estimation을 위한 방법을 제안한다. 한 이미지 내에서 다양한 pose의 다양한 크기의 여러 사람에 대한 pose를 동시에 인식하기 위해서 1) 각 관절에 대한 confidence map과 2) 각 관절의 연결인 limb에 대한 방향 벡터의 집합인 PAFs(Part Affinity Fields)를 네트워크를 통해 추정하고, 이로부터 Align 하는 방법을 추후에 post processing 형태로 최적화함으로써 여러 사람의 pose를 실시간으로 추정한다.
  • 네트워크는 주어진 입력 이미지에 대해 VGG-19를 통해 Feature Map F를 우선 추출하고, 이를 Conv Net을 통과시켜 반복적으로 수행함으로써, S(confidence amp)와 L(PAFs map)을 refine하며 추정한다.
  • PAFs를 잘 추정하기 위해 아래 이미지와 같이 GT(각 관절의 좌표)로부터 limb의 normal vector를 활용하여 PAFs의 GT map을 생성하여 학습한다.

Leave a Reply

Your email address will not be published. Required fields are marked *