#ubuntu2204 #openpose #vision #우분투2204 #오픈포즈 #설치 #실행 #컴퓨터비전
ubuntu22.04에서 GPU를 이용해 openpose 설치 방법 및 예제 실행한 내용을 정리.
# 설치환경
OS
|
Ubuntu 22.04 LTS
|
GPU
|
GeForce-GTX-1050
|
NVIDIA-SMI
|
535.86.05
|
CUDA
|
12.2.2
|
CUDNN
|
8.9.3
|
PYTHON
|
|
openpose란?
이미지에서 사람들의 몸, 손, 그리고 얼굴의 특장점을 추출할 수 있는 라이브러리
# 설치방법
1. openpose GitHub(CMU-Perceptual-Computing-Lab/openpose)에서 깃 클론으로 다운로드.

openpose 사이트
※ git 없을 시 설치
- $ sudo apt-get install git
2. (GPU 세팅) NVIDIA-Driver, CUDA, CUDNN 설치.
- (CPU 사용시 설치 불필요 -> 3. 으로 이동 )
### nvidia 드라이버 설치
-
- 컴퓨터에 장착된 GPU와 호환이 되는 그래픽 드라이버가 필요.
- 자동설치로 알아서 호환 맞춰서 그래픽드라이버를 설치했다. (최신버전으로 설치되는것 같음)
- $ sudo ubuntu-drivers autoinstall
- 설치 후 재시작해 $ nvidia-smi 입력.

nvidia-smi
-
- 노트북에서 확인해 보니 아래와 같이 나왔다.
- 노트북 그래픽카드: GTX-1050
- 엔비디아 그래픽 드라이버: Driver Version 535.86.05
- 호환가능한 CUDA Version: 12.2 (아직 설치는 안되있음)
- NVIDIA 드라이버와 CUDA 호환은 아래 사이트에서도 확인 할 수 있다.
- 노트북에서 확인해 보니 아래와 같이 나왔다.

nvidia driver 와 cuda 호환
### cuda 설치
-
- 위의 표를 참고하여 CUDA 를 설치한다. (제일 최신 버전 12.2.2 선택 (2023.09.10기준))
- 본 글에서는 그래픽 드라이버가 535.86.05 이므로 모든 CUDA 버전이 가능했고, 최신 버전인 CUDA 12.2.2 를 설치했다.
- https://developer.nvidia.com/cuda-toolkit-archive
- 자신의 컴퓨터 사양에 맞게 선택하면, 명령어 및 설치 방법이 나온다.
- 위의 표를 참고하여 CUDA 를 설치한다. (제일 최신 버전 12.2.2 선택 (2023.09.10기준))

CUDA Toolkit 12.2.2 선택함 (맨위에 최신 버전)(2023.09.10 기준)

cuda toolkit 12.2.2

cuda toolkit 12.2.2 다운로드
-
- 다운로드(wget) 후, sh로 실행.
- 실행 후, 처음 화면에서 [continue] 선택.
- autoinstall 명령어로 nvidia 드라이버를 설치 했기 떄문에 Driver 항목에서 '스페이스바'를 눌러 체크 해제 후, Install 로 가서 엔터.
- 다운로드(wget) 후, sh로 실행.

cuda install
-
- 설치가 완료되면 아래와 같이 뜬다. ( 설치위치 -> Toolkit: Installed in /usr/local/cuda-12.2/ )

cuda install OK
### cuDNN 설치
-
- CUDA 뉴럴 네트워크 라이브러인 cudnn 설치한다. ( GPU 가속화 라이브러리라고 한다.)
- 다운로드 페이지: https://developer.nvidia.com/cudnn
- nvidia 회원가입해서 다운 본 글에서는 12.x 호환 가능한 cuDNN v8.9.3을 다운로드했다. (2023.09.10 기준)
- CUDA 뉴럴 네트워크 라이브러인 cudnn 설치한다. ( GPU 가속화 라이브러리라고 한다.)

cuDNN v8.9.3
-
- Local Installer for Linux x86_64 (Tar) 선택. (아래 이미지에서 2번째)
- 파일명: cudnn-linux-x86_64-8.9.3.28_cuda12-archive.tar.xz (2023.09.10 기준)
- Local Installer for Linux x86_64 (Tar) 선택. (아래 이미지에서 2번째)

-
- cuDNN(tar 파일)을 압축 해제해서 cuda-12.2 폴더에 넣어준다.
- $ tar -xf cudnn-linux-x86_64-8.9.3.28_cuda12-archive.tar.xz
- 압축해제한 파일에 들어가면 include폴더와 lib폴더가 있음. (아래 이미지 3개)
- 처음에 설치했던 CUDA-12.2 폴더(/usr/local/cuda-12.2/)의 include, lib(lib64) 폴더에 cuDNN include, lib 파일들을 각각 넣으면 된다.
- cuDNN(tar 파일)을 압축 해제해서 cuda-12.2 폴더에 넣어준다.

cudnn 폴더

cudnn - include 헤더

cudnn - lib 폴더

CUDA의 include, lib64 폴더
-
- 다운받은 cuDNN 폴더로 이동
- $ cd cudnn-linux-x86_64-8.9.3.28_cuda12-archive/
- cuda-12.2 위치로 파일들 복사
- $ sudo cp include/cudnn* /usr/local/cuda-12.2/include
- $ sudo cp lib/libcudnn* /usr/local/cuda-12.2/lib64
- 복사한 파일들 권한 부여
- $ sudo chmod a+r /usr/local/cuda-12.2/include/cudnn*.h
- $ sudo chmod a+r /usr/local/cuda-12.2/lib64/libcudnn*
- 복사가 완료 되었다면 시스템에서 바로 사용할 수 있게 bin폴더와 lib폴더 경로를 환경변수로 넣어준다.
- $ sudo gedit ~/.bashrc 또는 $ sudo vi ~/.bashrc
- 다운받은 cuDNN 폴더로 이동

~/.bashrc (시스템 환경변수)
-
- 마지막으로 새로운 터미널창을 켜서(또는 $source ~/.bashrc 로 적용 후) $ nvcc --version 명령으로 cuDNN이 설치됨을 확인 할 수있다.

nvcc --version
3. openpose 실행에 필요한 라이브러리 설치 및 업데이트.
4. openpose 폴더에서 CMakeLists.txt 파일 수정.
- (파이썬 사용 시 변경한다. 기본 제공 예제가 파이썬임. )
- OFF를 ON으로 변경!
## CMakeLists.txt 파일
# 316 라인 (OFF → ON) 변경
"Build OpenPose python." ON)
# 796, 815 라인 (OFF → ON) 변경
-DBUILD_python=ON
-DBUILD_python=ON
|

CMakeList.txt의 316 라인 (OFF → ON)

CMakeList.txt의 796, 815 라인 (OFF → ON)
5. openpose 폴더에서 build 및 make 진행.
6. build 폴더에서 예제 실행해 보기.
※ cv2 라이브러리 에러시 opencv-python 설치.
7. 실행 결과
Starting OpenPose Python Wrapper...
Auto-detecting all available GPUs... Detected 1 GPU(s), using 1 of them starting at GPU 0.
Body keypoints:
[[[3.2809854e+02 2.1974371e+02 7.5993967e-01]
......
|

- 사람이 스켈레톤 막대로 나타난 것을 확인할 수 있다.
# 에러 정리
- python 3.5 이하 버전으로 진행했을 때, 에러가 발생 => 파이썬 3.6 이상을 설치해 해결
에러 메시지 내용
|
uk@uk-master:~/openpose/build/examples/tutorial_api_python$ python3 01_body_from_image.py
Error: OpenPose library could not be found. Did you enable `BUILD_PYTHON` in CMake and have this Python script in the right folder?
cannot import name 'pyopenpose'
|
uk@uk-master:~/openpose/build/examples/tutorial_api_python$ python3.7 01_body_from_image.py
Error: OpenPose library could not be found. Did you enable `BUILD_PYTHON` in CMake and have this Python script in the right folder?
Python version mismatch: module was compiled for Python 3.6, but the interpreter version is incompatible: 3.7.0 (default, Mar 26 2020, 10:25:13)
[GCC 5.4.0 20160609].
|
'프로그래밍' 카테고리의 다른 글
우분투에 pycharm 설치 (0) | 2024.07.07 |
---|---|
우분투-22.04 에 아나콘다 설치 (0) | 2024.06.26 |