olrlobt

[Pose Estimation] 다양한 Pose Estimation API 비교와 정리 본문

Spring/Project

[Pose Estimation] 다양한 Pose Estimation API 비교와 정리

olrlobt 2023. 3. 14. 02:53

Pose Estimation

Pose estimation은 인공지능 및 컴퓨터 비전 기술을 사용하여 이미지나 비디오에서 인간의 포즈(자세)를 감지하고 추정하는 기술이다. 

 

이미지 예 : 

 

동영상 예 : 

 

 

 

예를 들어, 얼마 전 올렸던 kakao pose API도 여기에 속한다.

 

https://olrlobt.tistory.com/46

 

[Spring boot] 카카오 포즈 / RestTemplate으로 Kakao Pose API 호출하기

카카오 포즈 Kakao Pose API 카카오 포즈(Pose) API는 이미지나 영상을 분석해 사람의 자세를 추출하는 기능을 제공한다. 이미지에서 사람들을 찾고 사람의 코, 눈, 귀, 어깨, 팔꿈치, 손목, 골반, 무릎,

olrlobt.tistory.com

 

Pose Estimation의 대표적인 API로는 국내의 Kakao Pose API, Ncloud Pose Estimation API 가 있고,

해외의 Media Pipe, TensorFlow, Move net, Pose net 등이 있다.

 

모두 같은 기능을 제공하는 것이 아니므로, 프로젝트의 목적에 맞는 API를 잘 보고 선택해야 한다.

 


Pose Estimation 분석

1. Pose Net

  • 제작사: Google
  • 2D 지원 여부: O
  • 3D 지원 여부: X
  • 멀티포즈 지원 여부: O
  • 지원 언어 : JavaScript
  • 특징:
    • TensorFlow.js를 기반으로 한다
    • 다른 Pose Estimation에 비해 성능이 전체적으로 떨어지는 편이다 
    • BodyPix와 결합하여 인간의 실루엣을 추출하는 기능도 제공한다

- Pose Net Test : 

https://storage.googleapis.com/tfjs-models/demos/pose-detection/index.html?model=movenet

 

https://storage.googleapis.com/tfjs-models/demos/pose-detection/index.html?model=movenet

 

storage.googleapis.com

2. Blaze Pose

  • 제작사: Google
  • 2D 지원 여부: O
  • 2D 포즈 추정 : O
  • 3D 지원 여부: O
  • 멀티포즈 지원 여부: X
  • 지원 언어 : Python, JavaScript
  • 특징:
    • MediaPipe 프레임워크에서 사용되는 딥러닝 기반 포즈 추정 모델
    • Pose Net의 상위 버전이다
    • 상당히 높은 정확성을 보여준다
    • 비교적 모델의 크기가 무겁기 때문에, 실시간성이 약간 떨어진다.

- 공식 홈페이지 : 

https://google.github.io/mediapipe/solutions/pose.html

 

Pose

Cross-platform, customizable ML solutions for live and streaming media.

google.github.io

- Blaze Pos Test : 

https://storage.googleapis.com/tfjs-models/demos/pose-detection/index.html?model=movenet

 

https://storage.googleapis.com/tfjs-models/demos/pose-detection/index.html?model=movenet

 

storage.googleapis.com

3. Move Net

  • 제작사: Google
  • 2D 지원 여부: O
  • 3D 지원 여부: O
  • 멀티포즈 지원 여부: O
  • 지원 언어 : TensorFlow, Python, JavaScript
  • 특징:
    • MediaPipe 프레임워크에서 사용되는 딥러닝 기반 포즈 추정 모델, TensorFlow 지원
    • 다른 Pose Estimation과는 다르게 움직임을 중점으로 제작되었다.
    • 또한, 다른 Pose Estimation과는 다르게 모바일 기기에서도 실시간으로 동작하게 경량화되었다.
    • 높은 정확도와 저전력 소비를 보장한다.

- 공식 홈페이지

https://www.tensorflow.org/hub/tutorials/movenet?hl=ko 

 

MoveNet: 매우 빠르고 정확한 포즈 감지 모델.  |  TensorFlow Hub

MoveNet: 매우 빠르고 정확한 포즈 감지 모델. 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. MoveNet은 신체의 17개 주요 부위를 감지하는 매우 빠르고 정확한

www.tensorflow.org

- Move Net Test :

https://storage.googleapis.com/tfjs-models/demos/pose-detection/index.html?model=movenet

 

https://storage.googleapis.com/tfjs-models/demos/pose-detection/index.html?model=movenet

 

storage.googleapis.com

4. MediaPipe Pose

  • 제작사: Google
  • 2D 지원 여부: O
  • 2D 포즈 추정 : O
  • 3D 지원 여부: O
  • 멀티포즈 지원 여부: X
  • 지원 언어 : Python, C++, JavaScript
  • 특징:
    • Google에서 개발한 오픈소스 라이브러리
    • 비디오 및 이미지에서 3D 포즈와 트래킹, 페이셜 랜드마크 검출 등 다양한 기능을 제공
    • MediaPipe Pose는 높은 정확도와 실시간성을 보장

- Media pipe 손 탐지 테스트

https://codepen.io/mediapipe/pen/RwGWYJw

 

MediaPipe - Hands

...

codepen.io

- Media pipe 포즈 탐지 테스트

https://codepen.io/mediapipe/pen/jOMbvxw

 

MediaPipe - Pose

...

codepen.io

5. Open Pose

  • 제작사: Carnegie Mellon University
  • 2D 지원 여부: O
  • 2D 포즈 추정 : O
  • 3D 지원 여부: O
  • 멀티포즈 지원 여부:
  • 지원 언어 : C++, Python, MATLAB, Java, JavaScript
  • 특징:
    • 인간의 포즈를 비디오나 이미지에서 감지하기 위한 오픈소스 라이브러리
    • OpenPose는 딥러닝 모델을 기반으로 함
    • 각 관절의 위치와 방향을 추정하는 것 외에도 손가락 추적, 얼굴 감지 등 다양한 기능을 제공

6. Kakao Pose

  • 제작사: Kakao Brain
  • 2D 지원 여부: O
  • 2D 포즈 추정 : O
  • 3D 지원 여부: X
  • 멀티포즈 지원 여부: O
  • 지원 언어 : Python, REST api
  • 특징:
    • Kakao Pose는 단일 또는 다중 인물의 포즈를 추정할 수 있으며, 높은 정확도를 보여준다.
    • 또한, 편리한 API와 예제 코드를 제공하여 사용자 편의성이 높다.
    • 이미지 분석의 경우, 최대 용량이 2MB이며,
    • 긴 변의 길이가 최대 2048 pixel, 최소 320 pixel이다
    • 동영상의 경우 최대 50MB, 영상 길이 최대 30초까지 무료 분석이 제공된다.

https://developers.kakao.com/docs/latest/ko/pose/common

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

7. Ncloud Pose

  • 제작사: Naver Cloud
  • 2D 지원 여부: O
  • 2D 포즈 추정 : O
  • 3D 지원 여부: X
  • 멀티포즈 지원 여부: X
  • 지원 언어 : Python, JAVA, PHP , C#
  • 특징:
    • Naver Cloud에서 제공하는 AI 기술 중 하나
    • API 호출을 통해 손쉽게 사용할 수 있다.
    • 최대 300KB 이미지 데이터를 지원한다.

https://api.ncloud-docs.com/docs/ai-naver-poseestimation-pose

 

pose estimation (포즈 인식)

 

api.ncloud-docs.com


블로그 상단에 링크 해 놓은 Pose net, Move net, Blaze Pose 테스트와, Media pipe의 포즈 테스트, Hands 테스트를 통해 한 번씩 테스트 하고 API를 선택하길 바란다.

 

나는 프로젝트에 적용할 API로 실시간성, 3D지원 여부, Multi Pose 지원 여부를 보고 선택을 하였다.

Media pipe의 경우 상당히 좋은 성능을 자랑하지만 Multi Pose를 지원하지 않는다.

 

하지만, 방법이 아주 없는 것은 아닌 것 같고, 이를 활용할 방법을 모색중에 있다.

Comments