[OpenPose] Windows에서 OpenPose 설치해보기

윈도우에서 OpenPose를 설치해서 실행해보려고 한다.
그 과정에서 생긴 오류들과 해결 방법을 작성할 예정이다.


설치환경

  • OS : Windows10
  • IDE : Visual Studio 2019 Community
  • GPU : cuda 11.5 / cuDNN v8.3.2
  • CMake version : 3.23.0

  1. CMake GUI 설치
    CMake download website
    환경과 맞는 msi 파일을 다운로드 한 후 설치

  1. Visual Studio 설치
    나는 Visual Studio 2019 Community가 이미 설치되어 있어서 이 단계는 건너뛰었다.

  1. NVIDIA 드라이버, CUDA, cuDNN 설치
    NVIDIA 드라이버는 이미 설치되어 있어서 건너뛰었다.
    CUDA Toolkit Archive
    CUDA는 CUDA Toolkit 11.5.0을 다운받았다.
    여기서 version이 뭘 뜻하는 건지 한참 생각하다가 윈도우 버전인 걸 깨달았다...^^

    cuDNN은 CUDA에 맞춰서 v8.3.2를 다운받았다.

  1. OpenCV, opencv_contrib 다운로드
    - OpenCV 4.5.5
    https://github.com/opencv/opencv/releases
    여기서 Source code (zip)을 다운받았다.

    - opencv_contrib
    https://github.com/opencv/opencv_contrib/tags
    여기서 4.5.5의 zip 파일을 다운받았다.

  1. 두 파일을 같은 폴더에 압축해제했다.(이후 설정에도 사용되는 경로이기 때문에 C에 압축해제했다.)
    C에 opencv라는 폴더를 만들어 두개를 같이 넣어뒀다.

  1. CMake를 이용한 비주얼스튜디오 프로젝트 생성
    6.1 CMake 실행
    6.2 Where is the source code와 Where to build the binaries에 각 path를 입력해준다.
    -> 근데 나는 여기서 궁금증이 생겼다. build라는 폴더가 기본적으로 있는 것은 아닌데 내가 임의로 만들어서 path를 설정해주면 되는 것인가? 우선 계속 진행하기 위해서 build 폴더를 생성해준 뒤 path를 입력했다.

    6.3 Configure 클릭
    6.4 Visual Studio 16 2019 선택후 Finish

    이후 진행이 완료될 때 까지 대기...
    진행이 완료 된 후 해당 화면이 떴다.

  1. CMake config 추가 수정
    7.1 아래 5개 항목을 체크하고 OPENCV_EXTRA_MODULES_PATH에 path 입력 후 configure 실행
    INSTALL_PYTHON_EXAMPLES
    WITH_CUDA
    OPENCV_DNN_CUDA
    ENABLE_FAST_MATH
    CUDA_FAST_MATH
    OPENCV_EXTRA_MODULES_PATH 항목에 C:/opencv/opencv_contrib-4.5.5/modules 입력
    path 입력 할 때 꼭 버전 확인하고 적어야한다... 나는 이것때문에 몇시간을 낭비했는데 나중에 보니 오타문제였다...

    7.2 WITH_CUDNN, WITH_CUBLAS 체크
    7.3 CUDA 여기서 본인 GPU 모델과 호환되는 컴퓨팅 아키텍처를 찾아서
    CUDA_ARCH_BIN에 입력
    나는 7.5를 입력했다.

  2. 빌드파일 생성하기
    CMAKE에서 Configuring done 메세지가 뜨면 generate를 클릭
    빌드폴더로 이동하여 OpenCV.sln 파일 열기
    비주얼스튜디오에서 상단에 Debug를 Release로 변경
    솔루션 탐색기에서 Cmake Targets에서 ALL_BUILD 우클릭 후 Build 클릭
    완료되면 INSTALL 우클릭 후 Build 클릭

  3. 파이썬 내에 형광펜 파일들이 있으면 완료!


Truble Shooting(결국 오타)
여기서 나는 CUDA_FAST_MATH를 찾을 수 없었다...

<여기서 생긴 두번째 문제> Error in configuration process, project files may be invalid 라는 오류가 발생했다.

<두번째 문제 해결 과정>
1. 첫번째
https://blog.naver.com/chfhd514/120211487822 여기서는 file > delete cache를 한 뒤, 다시 configure한 다음 두번째 라디오 버튼을 누르고.... 라는 해결책을 이야기해주었다.
그치만 실패했다.

2. 두번째 https://stackoverflow.com/questions/56584920/cmake-error-in-configuration-process-project-files-may-be-invalid-openpos 이 링크를 보고 error창이 문제가 아니라는 걸 깨달았다.
CMake Error at cmake/OpenCVModule.cmake:274 (message):
  No modules has been found: C:/opencv/opencv_contrib-4.5.1/modules
Call Stack (most recent call first):
  cmake/OpenCVModule.cmake:356 (_glob_locations)
  cmake/OpenCVModule.cmake:385 (ocv_glob_modules)
  CMakeLists.txt:927 (ocv_register_modules)

CMake Error at modules/core/CMakeLists.txt:53 (message):
  CUDA: OpenCV requires enabled 'cudev' module from 'opencv_contrib'
  repository: https://github.com/opencv/opencv_contrib
모듈이 없대... 있는데... 없대....
혹시 몰라서 contrib 지우고 다시 받아봤다.

다음날 일어나서 다시 해봤는데 path 경로에 버전 오타가 있었다. 그거 고치고 나니까 실행이 아주 잘됐다... 위에서 말한 첫번째 문제는 한번 Configure하고 나니까 생겨서 다시 체크하고 Configure했다.

참고

[OpenPose] 개요 및 설치하기
Build OpenCV 4.5.1 with CUDA (GPU) Support on Windows 10 (Python 3.8)

좋은 웹페이지 즐겨찾기