(CPM) Convolutional Pose Machines

cvpr2016
cvpr
convolutional

(Curtis Kim) #1

1명의 사람에 대해 사람 Pose를 출력하는 네트워크를 학습시킨 논문입니다. 사람 관절 간의 관계를 이해하고, Output을 refine하기 위해 multi-stage의 네트워크 형태로 구성하고 이를 evaluation한 것이 특징입니다.

image

Receptive Field가 작은 네트워크의 아랫 부분에서는 Local한 영역만 보고 헷갈릴 수 있는 부분을, Receptive Field가 커질 수 있는 형태로 네트워크를 디자인해 위 그림처럼 정확하게 위치를 찾도록 설계했습니다.


Pose Machine

CNN을 이용해 각 관절의 Heatmap을 출력하는 네트워크 구조입니다. Stage 1의 결과는 이미지 Feature와 함께 Stage 2의 입력으로 다시 들어갑니다. 반복적으로 동일한 Heatmap 결과를 여러 Stage에 걸쳐서 처리한 최종적인 결과가 네트워크의 output입니다.

이렇게 하는 것은 초반의 Stage에서는 Local한 이미지 영역을 통해 관절을 찾아내고, 후반의 Stage에서는 더욱 커진 Receptive Field의 영향으로 서로 다른 관절 간의 관계까지 고려되므로 더욱 정확한 Heatmap 결과를 얻을 수 있다는 주장입니다.

image

위 그림에서 보이는 것처럼 Stage 초반에는 '오른쪽 팔꿈치’에 대해 무릎 영역에 heatmap이 생성이 되었지만, 여러 Stage를 거치면서 이는 제거되는 것을 볼 수 있습니다.

image

이 그래프에서는 receptive field의 사이즈가 커질수록 정확도 역시도 증가하는 것을 볼 수 있구요.

중간 중간 Heatmap에 대해 Loss를 계산하도록 설계되어 있기 때문에 gradient가 vanishing하는 문제 역시도 상대적으로 덜하다고 말합니다.

역시 손목이나, 팔꿈치와 같이, 정확하게 위치를 짚기 어려운 영역들에 대해 multi-stage에서 개선되는 것을 볼 수 있습니다.

Results

MPII, LSP, FLIC 등의 데이터셋에서 #sota 를 갱신하였습니다. 이러한 모델링은 이후에 Pose Estimation 관련된 다양한 논문에 영향을 많이 주었습니다.

네트워크 구조를 더 잘 디자인해 성능을 개선한 Stacked Hourglass Networks for Human Pose Estimation 이나, Convolutional Pose Machine을 Bottom-up 형태로 디자인해 여러 사람에 대해서도 효과적으로 처리되도록 개선한 OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields 등에서도 multi-stage를 통해 개선되는 것을 확인할 수 있습니다.