[OpenPose] 개요 및 설치하기

오늘·2022년 1월 9일
1
post-thumbnail

산학연계 프로젝트 중 AI 부분을 맡았다.
AI를 이용한 pose estimation이 필요해서 구글링을 해보다가 OpenPose를 알게 되었다.

OpenPose 개요

OpenPose 공식 Github에는 다음과 같이 설명되어 있다.

OpenPose has represented the first real-time multi-person system to jointly detect human body, hand, facial, and foot keypoints (in total 135 keypoints) on single images.

간단히 번역해보자면, OpenPose는 이미지에서 여러 사람의 전신, 손, 얼굴, 발의 key point를 실시간으로 탐지할 수 있는 시스템 정도가 될 것 같다.

자세한 내용은 OpenPose 공식 Github을 참조하자.

License

비상업적 이용은 무료라고 한다. (OpenPose is freely available for free non-commercial use, and may be redistributed under these conditions.)

자세한 부분은 License 문서를 참조하자.

설치하기

원문은 Installation 문서 참조.

프로젝트에서 사용하기 위해 OpenPose의 코드를 수정할 필요가 있어서 소스 코드를 컴파일해서 실행하는 방법(Compiling and Running OpenPose from Source)을 보고 진행했다.

코드를 수정할 필요가 없는 경우에는 Installation 문서의 Windows Portable Demo 부분을 보고 사용하면 된다고 한다.

환경

아래의 환경에서 설치를 진행했다.

  • OS : Windows11
  • IDE : Visual Studio 2019 Community
  • GPU : cuda 11.2
  • CMake version : 3.22.1

전제조건(Prerequisites)

원문은 Prerequisites 문서 참조.

Windosw 환경에서 진행했으니 Windosw Prerequisites 만 참고했다.

  1. CMake GUI 설치하기
    CMake download website 에서 cmake-X.X.X-win64-x64.msi 의 최신 버전을 다운받는다. 다운로드 후 msi파일을 더블클릭하여 바로 설치를 진행할 수 있다.

  2. Build에 사용할 Visula Studio가 필요하다. 원문에서는
    Microsoft Visual Studio (VS) 2019 Enterprise
    Microsoft Visual Studio (VS) 2017 Enterprise
    VS 2015 Enterprise Update 3
    중 하나를 설치하라고 되어있었고, Visual Studio 2019 Community도 공식적으로 지원하지는 않지만 가능하다는 정도로 설명되어 있다.

  3. CUDA와 그에 맞는 cuDNN을 설치한다. 현재 OpenPose는 CUDA 11.1.1 (cuDNN 8.1.0) for VS2019 의 조합으로 테스트되었다고 한다.
    이 부분은 이전에 openCV를 CUDA와 사용하기 위해 설치하면서 진행했던 부분이어서 추가로 해주지는 않았다.
    당시에 참고한 블로그 링크를 걸어둔다. 이 글에 따라 빌드를 할 때 시간이 꽤 걸렸던 것으로 기억한다.

  4. Python API를 사용하려 한다면 Python3.X를 설치한 후, sudo pip install numpy opencv-python를 통해 numpyopencv-python을 설치해준다. numpy와 opencv-python까지 사전에 설치가 되어있었기 때문에 여기선 하지 않았다.

AMD GPU와 Caffe에 대한 부분도 있지만 사용하지 않아서 이 글에 쓰지는 않았다. 필요하다면 Prerequisites의 Windows Prerequisites의 4, 5번을 참고하자.

OpenPose 리포지토리 복제(Clone)

Github Desktop을 이용했다.

  1. Github Desktop 실행
  2. File - Clone repository
  3. URL 탭에서 https://github.com/CMU-Perceptual-Computing-Lab/openpose 를 입력 후 Clone 클릭

CMake 환경 설정(configuration)

  1. Windows Powershell에서 아래를 수행한다. clone한 openpose 폴더에 build 폴더를 생성하고 CMake GUI를 실행하는 과정이다.
cd {OpenPose_folder}
mkdir build/
cd build/
cmake-gui ..
  1. 실행된 CMake gui에서 Where is the source code : 가 openpose 폴더이고, Where to build the binaries : 가 openpose 폴더 하위의 build 폴더인지 확인한다.

  2. 하단의 Configure 버튼을 누른다.

  3. Specify the generator for this project에서 Visual Studio 16 2019인지 확인한다. 하단의 Optional platform for generator는 비어있을 때 자동으로 x64로 선택되므로 건드리지 않는다.

  4. Finish를 클릭하고 완료될 때까지 기다린다. (시간이 꽤 걸린다.)

여기서 Nvidia GPU를 사용하지 않는다면 Installation 문서의 CMake configuration 의 5번 참고.

  1. 완료되면 아래와 같은 창이 나온다. (하단의 Configuring done을 확인한다.) Python API를 사용한다면 BUILD_PYTHON이 체크되어있는지 확인하고, 체크되어있지 않다면 체크한다. Search에 BUILD_PYTHON을 검색하면 쉽게 찾을 수 있다.

  2. 하단의 Generate 버튼을 클릭한다. Generate이 완료되면 CMake을 종료한다.

프로젝트 컴파일(Compilation)

  1. openpose폴더 하위의 build 에서 OpenPose.sln을 더블클릭하여 솔루션을 연다.

  2. 열린 솔루션에서 DebugRelease로 변경해준다.

  3. 빌드 - 솔루션 빌드 를 클릭하여 솔루션을 빌드한다. (원문에서 Python API를 사용하는 사람은 Python binding이 생성되기 위해 빌드를 반드시 해야한다고 설명하고 있다.) 빌드에 시간이 꽤 필요하다.

  4. 빌드가 완료된 후, 솔루션을 실행하면 Webcam을 사용하는 OpenPose demo가 실행된다.
    (빌드 완료)

    (실행 결과)
    Google에 push up을 검색한 것 중 gif 파일을 Webcam에 비춘 모습이다.
    원본 링크

profile
Junior Mobile 개발자

2개의 댓글

comment-user-thumbnail
2023년 5월 27일

그대로 설정하고 빌드해서 실행을 했는데 카메라 이미지 가 안나오고 검은화면이 나오다가 꺼지는데 이건 어떤 부분이 잘못된건가요? 파이썬 부분은 다운안하고 빌드 했습니다.

1개의 답글