Deep Learning/Pose Estimation

[Pose Estimation] DeepPose : Human Pose Estimation via DNN - Paper Review

미미수 2021. 7. 5. 11:55

Deep Pose는 2014년에 발표된 논문으로, Pose Estimation 분야에 최초로 DNN을 적용한 모델이다. 

그 후로 많은 모델들이 등장했기 때문에, 최신 모델들에 비해 예측 성능은 좀 떨어지지만 여러 면에서 유의미한 논문이다.


우선 Deep Pose의 장점과 단점을 각각 살펴보면,

 

장점

  1. CNN을 사용해서 이미지의 전체적인 맥락을 예측에 사용했음. 당시에는 획기적. Deep Neural Network를 적용하는건 처음이었다.

 

단점

  1. 관절과 관절 간의 상관관계를 고려하지 않습니다. 관절이 겹쳐서 식별이 어렵거나,아예 가려진 경우 등등 한계점이 있는 data에서는 관절을 완벽하게 예측하기 어렵다.
  2. 계산이 비효율적이다. Cascase Model이어서 각기 다른 CNN 모델들을(구조는 다르고 weight를 각자 학습) 논문에서는 7개나(?) 사용했다. 
  3. input을 정규화해서 학습하는데 그 정규화된 input의 size,scale이 정해져 있기 때문에 상황에 따라 정확도가 떨어질 수 있다.

Model

 

DeepPose는 Cascade Model을 사용한다. 

여기서 사용하는 Cascade model이란 여러개의 CNN을 순차적으로 사용하는것이다.

Initial Stage 와 그에따른 Sequential Stage(1~S)로 구성이 되어있다.


Initial Stage

  • 이미지 전체 or Person detector로 검출한 사람을 대상으로 관절을 에측한다.
  • 총 k개의 관절에 대해서 예측 값을 내며 이는 총 2k 차원의 Vector(x ,y)좌표에 해당한다. 이를 식으로 나타내면 아래와 같다.

 

 

x 이미지 데이터
y pose vector
k 관절 수
$y_i$ i번째 관절 x,y좌표

 

이때 좌표들을 이미지 내의 절대좌표로 처리하지 않고, Normalization을 한다.

Bounding Box라는 것을 만들어 $b_c$ 박스중앙, $b_w$박스 넓이, $b_h$ 박스 높이를 활용해 $y_i$를 정규화한다.

 

 

BB를 기준으로 정규화한 좌표들은 후에 본 이미지로 맵핑할때 정규화 과정을 거꾸로 적용한다.

 

x : 입력 이미지 
φ : CNN 모델을 통과시키는 함수
θ : 학습되는 파라미터

 


여기까지가 Initial Stage과정이다. 이제 Initial Stage에서 CNN을 통해 구한 k개의 좌표들 하나하나를 대상으로 또 CNN을 진행한다.


 

 

Stage S

출처: https://ctkim.tistory.com/108

 

그 다음 $s>=2$인 Stage들에서는 각 Joint에 bounding box를 처서 관절부분 이미지를 고해상도로 추출한다. 새로운 bb로 추출한 이미지를 다시 s단계만큼 반복한다.

diam($y_s$) : 이전에 예측한 좌표들에서 왼쪽 어깨와 오른쪽 엉덩이 좌표 간의 거리

σ :  diam(y)를 적당히 키워주는 파라미터입니다.

 


Loss

loss는 간단하게 GT와 예측 값의 L2 distance를 구한다.

'Deep Learning > Pose Estimation' 카테고리의 다른 글

[Pose Estimation] HR Net - Paper review  (0) 2021.07.05