PersonLab: Person Pose Estimation and Instance Segmentation with a Bottom-Up, Part-Based, Geometric Embedding Model

2018
google
pose-estimation

(Curtis Kim) #1

Bottom-up Approach의 pose estimation에서 #sota 를 갱신한 논문입니다.

  • Short/MidAssociation Vector를 추가해 기존의 방식보다 간단하고 빠르고 정확하게 human instance별로 Key Point를 찾아냄
  • Long Association Vector를 이용해서 Human에 대한 Instance Segmentation 도 같은 방식으로 처리함

Method

우선 기본적으로 Key Point Part를 출력하는 HeatMap은 기존 방식들과 동일합니다. K개의 Key Point를 추정한다고 할 때, Output Channel이 K인 Heatmap 으로 출력되는 형태입니다. 특이한 점은, 사람의 크기에 상관없이 동일한 원을 Heatmap에 출력하도록 학습한 점입니다. 이 Output은 Logistic loss로 학습됩니다.

이 논문에서는 Heatmap 이외에 Offset Field 라는 것을 출력하도록 학습시킵니다. Short/Mid/Long range offset으로 총 3개가 있는데, 먼저 Short부터 보겠습니다.

HeatMap에서 1에 해당하는 각 부분들은 Short range offset field에서 그 중심점을 향하는 Vector를 학습하도록 합니다. 이것은 Towards Accurate Multi-person Pose Estimation in the Wild 라는 논문에서 관절 위치를 정확하게 추정하기 위해 썼던 방식과 유사합니다.

마찬가지로, 이 논문에서도 Short-range offset와 HeatMap 두 정보를 이용해서 정확한 관절 포인트를 추정합니다. 자세한 내용은 위 링크에서 설명된 것과 동일합니다.

Mid-range Offset Field는 각 관절 포인트를 사람 별로 구별해내는데 사용합니다. 위 그림에서처럼, 주요 관절 관계들에 대해 Vector를 학습시켜둔 것입니다.

왼쪽의 Mid-range offset Field를 보면, 팔꿈치에 해당하는 관절 포인트에서 어깨에 해당하는 부분으로 이어지려는 것을 볼 수 있습니다. 이 논문에서는 Recurrent한 방식을 이용해서 이를 개선하는데, 벡터를 해당하는 위치의 Short-range offset과 더해서 최종 벡터로 만드는 것입니다.

Mid-range Offset인 M_{k,l}(x) 는 위와 같이 Short-range Offset인 S_l(x') 에 의해 위와 같이 반복적으로 refine됩니다. Fig.2 에서 가운데 이미지에 해당합니다.

이 정보를 가지고 Human Instance들을 구별하는 방법은 단순히 Greedy하게 Heatmap 점수가 높았던 KeyPoint부터 Mid-range Offset Vector를 따라가면서 Human Instance들을 연결해나가는 방식입니다. 이 방식은 기존의 방식에 비해 훨씬 빠르고 간단합니다. 또 기존 방식은 특정한 Key Point가 시작점이 되어 이어나가는 휴리스틱들도 있는데, 그런 방식에 비해서 occlusion 등에 훨씬 강하게 됩니다. (Partial한 정보만 가지고도 충분히 연결할 수 있음)

Instance Segmentation 역시 2가지 output으로 이루어지는데, 하나는 Semantic Segmentation Heatmap이고, 다른 하나는 Long-range Offset Field 입니다. Long-range Offset Field를 이용하면 마찬가지로 각 픽셀로부터 각 관절 간의 연결을 추정하게 되는데, 이를 이용해서 각 픽셀과 각 Instance 사이에 Distance를 정의하고 이를 이용해서 Semantic Segmentation Map을 Instance 별로 구분하게 됩니다.

위 식을 풀어서 설명하면, 픽셀 i와 인스턴스j 사이의 거리는, 해당 픽셀에서 Long-range offset field에서 얻은 각 관절의 위치와 실제 관절의 위치의 거리가 가까울 수록 거리가 가까워진다고 생각하면 됩니다. 여기에 크기나, Key point의 점수와 인스턴스 크기를 이용해 Scale을 조절했습니다.

이외에도 Expected OKS를 이용해 Score를 finetune하고, Soft-NMS로 후처리하는 등에 대한 설명이 논문에 있습니다.

Results

기존 Openpose 등 대비해서 훨씬 높은 성능을 보입니다.

사람 카테고리에 한정한 Segmentation 결과도 인상적입니다.


'Human Pose Estimation' 카테고리의 설명