논문 요약: Convolutional Pose Machines

소개



CVPR2016에서 다음 논문
[1] S. Wei, et. al. "Convolutional Pose Machines"
요약.

꽤 오래된 논문이지만, 그 후의 영향(특히 OpenPose에의 영향)도 가미해 일독&정리한다.

arXiv:
htps : // 아 rぃ v. rg/bs/1602.00134

이미 일본어로 몇 가지 정리 기사가 존재한다.

yusuke ujitoko 씨의 녹차 사고 블로그 :
ht tp // 유스케 우지토코. 하테나 bぉg. 코m/엔트리/2017/07/21/012238

Takanori Ogata의 slideshare :
htps //w w. s에서 멋지다. 네 t / 타카리 오가타 1121 / 안녕하세요 치오나 l 포세 마치네 s

코드도 저자를 포함하여 github에 몇 가지 존재.
htps : // 기주 b. 코 m / 시헨 w / 안녕 ぉ ぅ 치오나 l 포세 마치 네 s

개요


  • 골격 추정 모델 중 하나
  • 여러 stage로 나누어 관절 위치를 추정하는 특징량을 refine
  • 각 stage에서 loss를 취하여 그라디언트 소실 문제에 대응

  • 다음 예에서는



    좌측의 입력 화상에 대해, 그 우측 stage 1에서는 오른손목 위치를 추정하고 있지만, 어느 쪽인가라고 하면 잘못해 왼손목의 위치를 ​​추정하고 있다.

    그러나 그 오른쪽(stage 2), 또한 그 오른쪽(stage 3)으로 진행됨에 따라 정밀도가 증가하여 정확하게 오른손목 위치를 추정하고 있다.

    아키텍처



    우선 아키텍처 전체는 이하의 그림.



    상단의 (a), (b)는 [2]Pose Machine의 아키텍처. 중단(c), (d)의 부분이 본 CPMs.

    OpenPose의 confidence map을 출력하는 부분과 매우 비슷합니다.

    변수 등의 정의



    $\bf x$ : 입력 이미지
    ${\mathcal{Z}}$ : 이미지의 모든 픽셀
    $t\in\{ 1\cdots T\} $ :stage
    $Y_p\in {\mathcal{Z}}\subset {\mathbb{R}^2}$ : 사람의 몸의 $p$ 번째 부위(오른손목 등)의 위치
    $Y = (Y_1,\cdots , Y_p)$ : $p$ 개의 모든 신체 부위 위치
    $g_t (\cdot)$ : $t$ stage 눈의 각 부위를 추정하는 함수로, 이번은 CNN.

    stage 1에서 스코어맵 출력



    우선 이 그림의 부분.



    이미지 $\bf x$를 입력하고 여러 번 컨볼루션하고 풀링하여 각 신체 부위의 스코어맵 $b_1$을 출력한다.
    g_1 ({\bf{x}}_{ z}) \to \{ b_1^p (Y_p = z) \}_{p \in \{ 0 \cdots P \}}
    

    stage t에서 스코어맵 출력



    stage 2 이후는 이하.



    현재 stage에서 입력 이미지 $\bf x$를 컨볼루션 풀링하여 특징량 $\bf x'$로 한다.

    이것에 이전 stage 의 출력 $b^p_{t-1}$ 를 더해 (concatenate?), 한층 더 복수 회 컨볼루션한다.

    다중 stage 효과



    아래 그림은 각 stage에서 출력한 특징량을 비교한 것입니다.



    좌측 4개는 stage 1 로부터의 출력. right shoulder 나 head 등은 비교적 정확하게 위치를 특정할 수 있지만, right elbow 는 잘못해서 오른쪽 무릎 근처의 위치를 ​​추정하고 있다.

    이 head 위치나 right shoulder 위치는 다음 stage에 입력되므로, 그 공간적인 관계성을 살려 오른쪽의 stage 2나 stage 3에서는 right elbow의 위치도 올바르게 추정할 수 있다.

    또한 아래 그림의 하단과 같이,



    스테이지를 겹치면 수용 필드가 퍼지므로보다 광범위한 정보를 사용하여 위치를 추정 할 수 있습니다.

    그라디언트 소실 문제에 대한 대응



    그러나 수용 필드를 넓히는 것만으로는 층을 깊게하는 것만으로도 좋다.

    stage에 걸치는 장점은 각 stage에서 loss를 취하는 곳에 있다. 이렇게하면 입력 근처의 기울기가 사라지지 않습니다.

    Loss



    앞에서 언급했듯이 그라디언트 소실 문제 대책으로 각 stage에서 loss를 취한다. $t$ stage 눈의 loss는 다음의 제곱 오차입니다.
    f_t = \sum^{P+1}_{p=1} \sum_{z \in \mathcal{Z}} \| b^p_t(z) - b^p_{*}(z) \|^2_2
    

    관절수 $P$ 보다 하나 많아지고 있는 것은 back ground 의 채널을 포함하기 (위해)때문에. 쌀 표는 target.

    이것을 더한 것이 총 loss.
    \mathcal{F} = \sum^T_{t=1} f_t
    

    참조



    [2] V. Ramakrishna, D. Munoz, M. Hebert, J. Bagnell, and Y. Sheikh. Pose Machines: Articulated Pose Estimation via Inference Machines. In ECCV, 2014.

    좋은 웹페이지 즐겨찾기