티스토리 뷰

728x90
반응형

openpose는 카네기 멜론 연구팀이 만든 사람의 인체 골격, 얼굴 특징점, 손가락 골격 추적 정보를 산출해주는 소프트웨어 패키지이다. 키넥트나 리얼센스같은 디바이스 없이도 사람의 골격 정보를 그것도 다수의 사람에 대해서 뽑아 낼 수 있는 특징이 있다. 

 

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

 

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

설치하는 방법은 윈도우, 맥, 리눅스등 다양한 플랫폼에서 사용이 가능하다. 

 

이번에는 간편하게(윈도우 데모 버전 설치가 가장 간단하긴 하지만) 리눅스 환경에서 도커를 이용해 설치하고 돌려보는 과정을 수행해 보았다. 

 

자세한 설치 방법은 다음과 같다. 

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

 

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가 설치된 환경을 만들 수 있다.  

다음 도커 파일을 이용하기로 하였다. 

 

https://github.com/esemeniuc/openpose-docker

 

esemeniuc/openpose-docker

A docker build file for CMU openpose with python api support - esemeniuc/openpose-docker

github.com

 

다음 명령어를 터미널에 입력하여 일단 도커 이미지를 만든다. 

$ docker run -it --rm --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=0 cwaffles/openpose-python

원래 소스를 다운로드 받고 소스를 빌드하는 과정을 거쳐야 하는데 도커파일을 보니 다운로드 받은 후 빌드까지 하는 스크립트가 들어가 있다. (없으면 빌드해야겠지만)

 

 

nvidia-docker로 실행하기

이제 도커를 실행하면 된다. gpu 기반이므로 nvidia-docker 로 실행시켜야 하며 주의점은 웹캠같은 외부 장치를 연결하고 윈도우를 열기위해 다음과 같이 옵션들을 추가해야 한다. (사실 정확히 뭐를 넣고 빼는지는 테스트 해보지 않았다.)

$ nvidia-docker run --rm -it 
 	-v /run/user/1000:/run/user/1000 -v /dev:/dev 
    -v /tmp/.X11-unix:/tmp/.X11-unix:ro 
    --privileged 
    --ipc=host --shm-size=256m 
    --net=host 
    -e DISPLAY=$DISPLAY 
    -e XDG_RUNTIME_DIR=/run/user/1000 
    -v $(pwd):/workspace 
    cwaffles/openpose-python 
    /bin/bash

 

이와 관련된 명령은 다른 사람이 만든 openpose 이미지 관리 페이지에 작성되어 있다. 

 

https://hub.docker.com/r/wiseosho/openpose/

 

Docker Hub

 

hub.docker.com

 

주의할 점(디스플레이 억세스 가능하도록 하기)

도커를 실행하고 openpose를 실행해보면 서버 관련한 에러가 보인다. 그럴 경우 도커가 서버의 디스플레이에 접근이 가능하도록 다음과 같은 명령을 먼저 입력한 뒤 앞에서 기술한 도커 명령을 실행시키면 된다. 

$ sudo xhost +

 

 

openpose 웹캠 입력 신호 실행 시키기

빌드가 완성된 openpose는 실행 파일을 옵션과 함께 입력하는 방식으로 간단하게 실행 가능하다. 

$ ./build/examples/openpose/openpose.bin

문제없으면 윈도우가 나타나고 비디오 영상에 몸 골격 정보가 추적되는 결과를 볼 수 있다.

 

옵션을 다음과 같이 추가하여 실행하면 얼굴 특징점과 손가락 추출 결과물을 볼 수 있다.

$ ./build/examples/openpose/openpose.bin --face --hand

 

 

 

 

 

 

 

이미지나 비디오 같은 다른 입력 소스를 사용하거나 출력 결과물을 활용하는 방법은 다음 페이지에 자세히 소개되어 있다.

 

https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/quick_start.md#quick-start

 

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

 

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함