[Pose Estimation] Human Pose Estimation via Deep Neural Networks : DeepPose 논문 리뷰

tobigs1415 이미지 세미나·2021년 6월 22일
6

Tobigs1415 Image Semina

목록 보기
12/16
post-thumbnail

투빅스 14기 서아라

1. Introduction

  • Pose estimtation: 사람의 관절 위치를 찾는 task

    • 한계점 : 기존의 local detector은 local한 part를 추론, 하지만 보이지 않는 부분은 찾을 수 없었음
    • 전체론적인 추론(holistic reason)을 시도해보았으나 성능이 좋지 않았음.

  • 7 layer generic convolution DNN model

    • 장점 1: 각 관절의 전체적인 맥락을 고려하여 예측할 수 있음
    • 장점 2: 기존의 방식은 Representation(특징검출)과 검출기 (detector)로 만든 다음, 이를 조합하는 방식이었으나 CNN을 활용하면 단일 신경망으로 모든 관절 위치를 예측할 수 있으므로 훨씬 모델이 단순해짐.
  • 이미지에 대한 초기 자세를 추정한 후, 고해상도의 부분 이미지를 이용하여 joint 예측치를 정제하는 DNN기반의 regressor를 학습함.

2. Deep Learning Model for Pose Estimation

  • 입력 이미지를 CNN에 통과시키면 k개의 관절에 대한 예측값을 냄

    • 따라서 총 2k차원의 Vector(x, y)

    • x : Image data
    • y : Ground truth pose vector
    • k : 신체 관절 수
    • y_i : i 번째 관절의 x, y 좌표가 들어 있다.(이미지 내의 절대 좌표)
  • y_i의 좌표는 아래와 같이 normalize하여 사용
    b는 bounding box를 의미

  • b = (b_c, B_w, B_h)
  • b_c : center of bounding box (bounding box 의 중심)
  • b_w : width of b (bounding box 의 너비)
  • b_h: height of b (bounding box 의 높이)

  • 동일한 정규화 과정을 Pose Vector 인자 모두에 적용하여 normalized pose vector를 얻음.

  • 원본 이미지 x를 Pose Vector y로 회귀하는 함수 ψ(x;θ)∈𝑅^2𝑘 를 학습 (k : 관절 수)

  • 원본 이미지 x 중의 관절위치 y*를 예측한다는 것은 이미지를 ψ에 넣어 Normalized Pose Vector를 얻어 이를 원래 이미지의 좌표계로 다시 변환하다는 것

  • y*는 아래 식과 같이 변환을 통해 절대 좌표 값으로 변환이 가능

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

  • 방금까지의 과정이 ‘Initial State’
  • 이렇게 구한 관절 예측 값은 큰 이미지를 보고 예측한 것이라 정교함이 떨어진다는 것이 저자의 주장
  • 따라서 예측 좌표 주변으로 bounding box를 다시 그리고, 이를 Crop하여 다시 CNN 모델을 통과시키는 Cascade 방식을 제안

  • diam(ys): 이전에 예측한 좌표들에서 왼쪽 어깨와 오른쪽 엉덩이 좌표 간의 거리를 의미
  • σ: diam(ys)를 적당히 키워주는 parameter

  • Loss functio은 일반적인 L2 Loss
    • Ground truth label 좌표와 predicted 좌표 사이의 L2 distance를 측정

3. Empirical Evaluation

  • Dataset

    • Frames Labeled In Cinema(FLIC)

      • 4000 train images
      • 1000 test images
      • Hollywood movies로 부터 얻은 이미지들
      • 다양한 옷과 포즈들을 많이 관찰할 수 있다는 것이 특징
      • 10개 이상 관절이 label되어있음
    • Leeds Sports Dataset(LSP)

      • 11000 train images
      • 1000 test images
      • 스포츠 활동 이미지이기때문에 다양한 포즈를 관찰할 수 있음
      • full body image에 대하여 14 joints가 label되어 있음
  • Metric

    • Percentage of Correct Parts(PCP) : 실제와 추정치의 distance가 limb length의 절반 이하면 감지(짧은 팔다리나, 어깨가 낮으면 감지하기 힘든 단점)

  • Metric
    • Percent of Detected Joints (PDJ) : 단점 보완 위해 새로운 metric, distance가 torso 지름에 특정비율 이하인 경우, 특정비율 다르게 하면서 감지율 계산, 모든 관절이 같은 거리 threshold에 영향을 받으므로 장점

4. Result and Discussion

5. Conclusion

  • Pose estimation task에 처음으로 심층 신경망(DNN)을 적용한 연구

  • 전체적인 방식(holistic manner)으로 포즈에 대한 context 를 캡처하고 자세에 대한 추론에 있어서 강한 모델을 제시

  • 주로 classification 문제에 이용되었는 CNN이 localization task에서도 좋은 성능을 보여준다는 것을 알 수 있었음.

Reference

profile
2021 투빅스 14, 15기 이미지 세미나입니다😀

3개의 댓글

comment-user-thumbnail
2021년 6월 22일

14기 김상현
이번 강의는 pose estimation DeepPose 논문 리뷰로 서아라님께서 진행해주셨습니다.

  • DNN model을 사용해서 각 관절의 전체적인 맥락을 고려하여 예측할 수 있고, 단일 신경망으로 모든 관절 위치를 예측할 수 있으므로 모델이 단순해진다.
  • 정교한 예측을 위해 예측 좌표 주변으로 bounding box를 다시 그리고, 이를 crop하여 다시 CNN모델을 통과시키는 Cascade 방식을 제안한다.
  • Ground truth 좌표와 predict 좌표 사이의 L2 distance를 이용해 loss function을 정의한다.
  • Classification이 아닌 localization task에서도 CNN이 좋은 성능을 보여주는 것을 확인할 수 있었다.

DeepPose에 대해 상세하게 이해할 수 있었습니다.
유익한 강의 감사합니다!

답글 달기
comment-user-thumbnail
2021년 6월 22일

14기 장혜림

DeepPose

  • CNN을 기반으로 pose를 추정한 초기 모델로, 2 stage로 구성됨
  • 첫번째 stage인 initial stage에서는 이미지를 입력으로 받아 k개의 관절에 대해 예측함. 이 때 관절의 좌표를 정규화하는 과정을 수행하여 학습시킴.
  • 보다 정교한 예측을 위해 두번째 stage에서는 예측한 관절 좌표 주변으로 다시 bounding box를 그리고, 이를 crop하여 다시 CNN 모델에 통과시킴. 이 때 diam을 이용하여 bounding box의 크기 결정.
  • 평가지표로 PDJ(Percentage of Detected Joints) metric 사용. 이는 PCJ(Percentage of Correct Parts) metric을 보완하는 지표로, 예상 관절과 실제 관절 사이의 거리가 몸통 지름을 반영한 임계값 내에 있을 경우 이를 detect했다고 판단함.

Pose estimation의 초기 모델인 DeepPose의 구조와 아이디어에 대해 알 수 있었던 시간이었습니다. 유익한 강의 감사합니다!

답글 달기

투빅스 14기 김민경

  • DeepPose는 human pose estimation task에 처음으로 심층 신경망(DNN)을 적용한 연구이다.
  • DeepPose의 네트워크는 전체 이미지에 대한 ‘Initial State’를 추정한 뒤, 더욱 높은 precision을 위해 추정된 좌표 주변으로 bbox를 다시 그리고 이를 crop하여 다시 CNN 모델을 통과시키는 Cascade 방식을 사용했다.(Loss function은 일반적인 L2 Loss)

이번 리뷰를 통해 딥러닝 기반 pose estimation의 시작이 된 아이디어를 공부할 수 있었습니다. 유익한 강의 감사합니다:)

답글 달기