데이터사이언스 대학원 생활/Human Pose Estimation

Openpose 설치 및 사용(Windows 버전으로 쉽게)

데욱 2023. 6. 28. 11:18

https://github.com/CMU-Perceptual-Computing-Lab/openpose

 

GitHub - CMU-Perceptual-Computing-Lab/openpose: OpenPose: Real-time multi-person keypoint detection library for body, face, hand

OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation - GitHub - CMU-Perceptual-Computing-Lab/openpose: OpenPose: Real-time multi-person keypoint de...

github.com

Openpose는 몸, 얼굴, 손, 발 추정을 위한 실시간 다중 사람 키포인트 탐지 라이브러리이다.

 

왜 Openpose를 사용하게 됐느냐...

Openpose를 이용하면 2D keypoint json 파일이 output으로 생성되는데,

이를 이용하여 smplify를 사용해서 smpl모델의 3d 모습을 추출하는게 목표다.

 

그런데... 환경이 설정이 생각보다 까다롭다.

smplpix 코랩에 있는 Openpose 코드는 Caffe, Cuda랑 dependency를 유지하기 상당히 까다롭다.

게다가 Cpu로 돌리는 것도 안되더라... 흑흑

 

※ 근데 이 openpose 코랩은 될수도 있다.(필자는 안해봄)

https://colab.research.google.com/github/tugstugi/dl-colab-notebooks/blob/master/notebooks/OpenPose.ipynb

 

OpenPose.ipynb

Run, share, and edit Python notebooks

colab.research.google.com

 

뭐... 일단 나는 사실 리눅스환경이 편하니, 우분투 20.04 환경에서 직접깔아보기로 했는데...

Cuda 환경을 안맞췄다고 안돌아갔다...@_@

 

mmpose 모델을 돌리고 있기 때문에(7일 소요), 따로  cuda환경을 건드릴 수 없었다...

그러한 이유로 인해, 윈도우로 진행을 하게됐는데..

 

그런데... 충격적인 사실은... 윈도우가 더 쉬운 것이었다!!!!

바로 윈도우즈 버전을 사용하는것!


빌드 환경

  • Window 11
  • Geforce RTX 3060 laptop
  • CUDA 10.1

1. Openpose 윈도우즈 버전 다운로드

 

https://github.com/CMU-Perceptual-Computing-Lab/openpose/releases

 

Releases · CMU-Perceptual-Computing-Lab/openpose

OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation - CMU-Perceptual-Computing-Lab/openpose

github.com

위의 페이지로 들어가서,

openpose-1.7.0-binaries-win64-gpu-python3.7-flir-3d_recommended.zip 다운로드

2번째 zip파일을 다운로드 한다. 버전은 최신 버전으로 다운 받으면 된다.

ouput 폴더 생성해주자.

여기에 output 폴더를 따로 생성해준다.

2. 가중치 파일 다운로드

http://daddynkidsmakers.blogspot.com/2020/07/openpose.html

 

뼈대 예측 딥러닝 모델 OpenPose 설치, 구조 분석 및 사용하기

오픈포즈, 빌드, 사용, openpose, deep, 딥러닝

daddynkidsmakers.blogspot.com

2-1 위 블로그에서 가중치를 다운로드 받는다.

근데 이게 정확히 되는지는 모르겠다 나는 가중치 다운로드를 아래와 같은 방식으로 했다.

사실 아래와 같은 방법으로 하는게 아마도 베스트이다.

 

2-2

https://github.com/CMU-Perceptual-Computing-Lab/openpose

 

GitHub - CMU-Perceptual-Computing-Lab/openpose: OpenPose: Real-time multi-person keypoint detection library for body, face, hand

OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation - GitHub - CMU-Perceptual-Computing-Lab/openpose: OpenPose: Real-time multi-person keypoint de...

github.com

위 공식 사이트에서 openpose-master.zip파일을 다운로드 받아 압축 해제한다.

그 후 getModels.bat을 실행하면, 검은색 창이 뜨는데 이때 시간이 상당히 소요되고,

모델의 구성요소 정보와 훈련된 모델의 가중치 파일 설치된다.

우리가 가져올 것은 저 caffemodel파일!!!! 저게 가중치 파일이다.

 


3. 모델 돌리기(Windows PowerShell)

저 파일을 openpose-1.7.0-binaries-win64-gpu-python3.7-flir-3d_recommended 폴더의 같은 위치에

가중치 파일 5개를 쏙 넣어준다.

이로써 모든 준비는 완료되었다.

요런식으로 넣어준다.

openpose-1.7.0-binaries-win64-gpu-python3.7-flir-3d_recommended > openpose 폴더로 이동해서 

powershell을 입력후 엔터 누르면! 간단하게 powershell로 이동이 가능하다.

bin\OpenPoseDemo.exe --image_dir examples/media --write_json output/

그리고 위 코드를 입력하고 실행해주면!

이렇게 예제 이미지에 우리가 적용한 가중치가 적용이 된다! 

짜잔~~~ 이런식으로 json파일이 생성된다.

형식을 보아하니... mmpose로 뽑은 keypoint들을 위와같은 형식으로 변경해주면?

smplify도 적용할 수 있을 것 같다 ㅎㅎ

 

6일 뒤에는 위 코드를 smplify에 우분투환경으로 적용시켜 보겠다.


참고로 

아~ 나는 윈도우에서 환경을 직접 맞춰서 하고 싶어 ! 하는 분들이나  리눅스, 맥환경을 사용하시는 분들이라면

https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/installation/0_index.md

 

GitHub - CMU-Perceptual-Computing-Lab/openpose: OpenPose: Real-time multi-person keypoint detection library for body, face, hand

OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation - GitHub - CMU-Perceptual-Computing-Lab/openpose: OpenPose: Real-time multi-person keypoint de...

github.com

https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/installation/1_prerequisites.md

 

GitHub - CMU-Perceptual-Computing-Lab/openpose: OpenPose: Real-time multi-person keypoint detection library for body, face, hand

OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation - GitHub - CMU-Perceptual-Computing-Lab/openpose: OpenPose: Real-time multi-person keypoint de...

github.com

위 두 링크를 참조하여 openpose를 설치하도록 하자.