yongyong-e

[OpenPose] How to use OpenPose on ubuntu 본문

머신러닝/컴퓨터비전

[OpenPose] How to use OpenPose on ubuntu

Yonghan Kim 2019. 2. 28. 10:37

※ OpenPose 테스트 환경

- 소스코드: https://github.com/CMU-Perceptual-Computing-Lab/openpose v1.5.0

- OS: Ubuntu 16.04 64bit

- GPU: Nvidia GeForce GTX 1080Ti


1) Ubuntu 설치

- Ubuntu16.04 버전으로 설치하여 준비하자.

- 또한 이후 Ubuntu 환경에 Anaconda 라이브러리를 포함하고 있으면 안된다. (AnacondaCaffe와 호환되지 않는 이유)

 

2) NVIDIA 그래픽 드라이버 설치

$ sudo add-apt-repository ppa:graphics-drivers/ppa

$ sudo apt-get update

$ sudo apt-get install nvidia-375

$ sudo reboot

 

3) CUDA 설치

- CUDA8.0 버전으로 설치

https://developer.nvidia.com/cuda-downloads를 통해 CUDA Toolkit 8.0 - Feb 2017를 선택하여 아래와 같이 설치 가능하다.

- 설치 과정 중 질문에 대해서는 다음과 같이 답하면 된다.

- 추가적으로 bashrc 파일에 CUDA에 대한 환경변수를 적용하도록 한다.

1. bashrc 파일 편집

  $ vim .bashrc

2. 마지막 라인에 아래의 환경변수 추가

  export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}

  export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

3. 환경변수 적용

  $ source .bashrc

 

4) cuDNN 설치

- cuDNN5.1 버전으로 설치

https://developer.nvidia.com/cudnn를 통해 다운로드 가능하며 아래와 같은 버전을 받아야 한다.

cuDNN v5.1 (Jan 20, 2017), for CUDA 8.0

cuDNN v5.1 Library for Linux

이후 아래와 같이 /usr/local/cuda-8.0 경로에 복사한다.

$ tar xzvf cudnn-8.0-linux-x64-v5.1.tgz

$ sudo cp cuda/lib64/* /usr/local/cuda-8.0/lib64/

$ sudo cp cuda/include/* /usr/local/cuda-8.0/include/

$ sudo chmod a+r /usr/local/cuda-8.0/lib64/libcudnn*

$ sudo chmod a+r /usr/local/cuda-8.0/include/cudnn.h

$ sudo apt-get install libcupti-dev

 

5) OpenPose 구성

OpenPose 소스코드 다운로드

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

OpenPose에 필요한 라이브러리 설치

$ sudo apt-get install wget vim cmake cmake-qt-gui

$ sudo apt-get install python-dev python-pip python-numpy

$ pip install --upgrade pip

$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev

$ sudo apt-get install libhdf5-serial-dev protobuf-compiler

$ sudo apt-get install libboost-all-dev libgoogle-glog-dev

$ sudo apt-get install liblmdb-dev libopenblas-dev libatlas-base-dev

 

6) 소스코드 설정

(방법 1)

CMake 이용

$ cp openpose/script/ubuntu_deprecated/Makefile.config.Ubuntu16_cuda8.example Makefile.config

$ cp openpose/3rdparty/caffe/Makefile.config.Ubuntu16_cuda8.example 3rdparty/caffe/Makefile.config

$ cd build/

$ cmake ..

* * *

Protocol Buffers 라이브러리에 대한 오류 발생시

2.6.1버전의 protobuf를 설치하여 적용해야한다.

* * *

protocol buffers 2.1.6버전 다운로드

$ curl -OL https://github.com/google/protobuf/releases/download/v2.1.6/protoc-2.1.6-linux-x86_64.zip

압축 풀기

$ unzip protoc-2.1.6-linux-x86_64.zip -d protoc2

/usr/local/bin/ 경로로 파일 이동

$ sudo mv protoc2/bin/* /usr/local/bin/

/usr/local/include/ 경로로 파일 이동

$ sudo mv protoc2/include/* /usr/local/include/

권한 변경

$ sudo chown [user] /usr/local/bin/protoc

$ sudo chown -R [user] /usr/local/include/google

 

(방법 2)

- CMake-GUI 실행

$ cmake-gui

오픈포즈 소스코드 경로와 빌드 디렉토리 경로 설정

 

Configure 버튼을 누르고 아래와 같이 설정 후 Finish 버튼을 클릭

 

이후 아래와 같이 텍스트 창에 Configuring done이 뜨면 성공

 

그리고 Generate 버튼을 클릭하고 CMake-GUI를 종료한다.

 

7) Open Pose 빌드

마지막으 build 디렉토리로 이동하여 Open Pose를 빌드하도록 한다.

$ cd openpose/build/

$ make -j`nproc`

 

8) OpenPose 실행

비디오 입력을 통한 실행

$ ./build/examples/openpose/openpose.bin --video examples/media/video.avi

카메라 입력을 통한 실행 (리언센스의 RGB 카메라 Index2)

$ ./build/examples/openpose/openpose.bin --camera=2

- Face, Hand Pose 모델 추가

$ ./build/examples/openpose/openpose.bin --camera=2 --face --hand

- 실행 결과


Reference 

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


Comments