Jetson & 머신러닝

Nvidia AGX Xavier의 Jetpack설치 후에 OpenCV / CUDA 지원 해결

아크리엑터 2021. 3. 24. 23:38
반응형

설치 정보를 보면 다음과 같다. OpenCV 4.1.1 설치되어 있는데 CUDA 지원이 안되는 것 같다.

$ jetson_release

 - NVIDIA Jetson AGX Xavier [16GB]
   * Jetpack 4.5 [L4T 32.5.0]
   * NV Power Mode: MODE_10W - Type: 1
   * jetson_stats.service: active
 - Libraries:
   * CUDA: 10.2.89
   * cuDNN: 8.0.0.180
   * TensorRT: 7.1.3.0
   * Visionworks: 1.6.0.501
   * OpenCV: 4.1.1 compiled CUDA: NO
   * VPI: ii libnvvpi1 1.0.12 arm64 NVIDIA Vision Programming Interface library
   * Vulkan: 1.2.70

 

그래서, 기존 OpenCV를 삭제하고 재설치 하려고 한다. 먼저, opencv  설치 정보를 확인해봤다. 그런데, 패키지 확인이 안된다. 

$ pkg-config --modversion opencv

Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found

 

opencv4로 찾아봤어야 하는구나.. T.T

$ pkg-config --modversion opencv4

4.1.1

 

기존 opencv4를 삭제하려면 아래의 명령어로 삭제할 수 있다. 그런데, 동일 버전으로 설치할 생각이라서, 삭제를 하지 않고 그냥 재설치하려고 한다. 아래 명령은 입력 안했다.

sudo apt purge libopencv*
sudo apt autoremove

 

설치를 위해, 필요한 패키지를 먼저 설치한다.

필수 도구와 GUI용 QT 라이브러리를 설치한다.

$ sudo apt install cmake cmake-qt-gui build-essential git libqt4-dev pkg-config

 

이미지 관련 패키지를 설치한다.

$ sudo apt install libjpeg-dev libtiff5-dev libpng-dev

 

비디오 코덱 관련 패키지를 설치한다.

$ sudo apt install libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev x264 libxine2-dev libv4l-dev v4l-utils libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev  

 

OpenGL + 알파

sudo apt install mesa-utils libgl1-mesa-dri libqt4-opengl-dev libatlas-base-dev gfortran libeigen3-dev libtbb2 libtbb-dev

 

파이썬 관련 패키지는 이미 설치를 해두었기 때문에 별도로 설치하지는 않는다. 설치를 안했다면 아래의 패키지를 설치한다.

$ sudo apt install python2.7-dev python3-dev python-numpy python3-numpy python3-setuptools

 

추가로 누락된 패키지도 설치하자

$ sudo apt install -y libavresample-dev liblapacke-dev qt5-default

 

OpenCV 설치한다. 이미 OpenCV 4.1.1 이 설치되어있는데, CUDA 지원이 안되어서, 동일 버전으로 재설치하는 것으로 했다.

wget -O opencv 'https://github.com/opencv/opencv/archive/4.1.1.zip'
wget -O opencv_contrib 'https://github.com/opencv/opencv_contrib/archive/4.1.1.zip'

 

압축 해제를 한 후에  build  폴더를 생성한다.

$ unzip opencv
$ unzip opencv_contrib

$ cd opencv-4.1.1/
$ mkdir build
$ cd build

 

OpenCV를 빌드하기 위해 cmake-gui를 실행한다.

$ cmake-gui

 

실행된 화면에서  아래와 같이 설정한다.

Source Code : opencv-4.1.1/                   OpenCV 폴더
build the binaries:  opencv-4.1.1/build/      새로 생성한 Build폴더

 

 

왼쪽 하단의 Configure 버튼을 누르면 화면에 여러가지 변수/값 설정된 화면이 나온다. 그 내용을 아래와 같이 변경 추가한다.

WITH_OPENCLAMDBLAS    선택삭제
WITH_CUDA             선택
OPENCV_DNN_CUDA       선택

OPENCV_EXTRA_MODULES_PATH   ../../opencv_contrib-4.1.1/modules  다운받은 폴더의 modules폴더

WITH_GTK              선택삭제
WITH_OPENGL           선택
BUILD_JASPER          선택
ENABLE_FAST_MATH      선택
OPENCV_ENABLE_NONFREE 선택
OPENCV_GENERATE_PKGCONFIG 선택
WITH_QT               선택
BUILD_TBB             선택
WITH_TBB              선택
WITH_VTK              선택삭제
BUILD_opencv_world    선택삭제
BULID_PERF_TESTS      선택삭제
BUILD_TESTS           선택삭제
BUILD_opencv_python_tests 선택삭제
INSTALL_TESTS         선택삭제
BUILD_EXAMPLES        선택삭제
INSTALL_C_EXAMPLES    선택삭제
INSTALL_PYTHON_EXAMPLES 선택삭제

CUDA_FAST_MATH        선택     (이것은 Add Entry를 선택하여 추가를 했다)

  위의 내용을 입력한 후에 다시 configure를 눌러주면 화면에 출력되는 것에 변화가 있다.  내 경우에는 python3에 대한 path 인식이 안되어서 직접 입력해줬다. Xavier에 설치된 python3가 여러곳에 패키지가 설치되어있어서, python3 전체를 지우고 다시 설치했다.

붉은 색으로 표시되는 것이 없으면 Generate 버튼을 누른 후 완료가 되면, 아래의 make를 실행한다.

$ make -j2

 최초에는 Core가 4개 설정되어있어서, -j4를 해도 된다. 내 경우에는 10W로 작동되게 해서 j2로 했다. 전체 코어로 실행을 시키니 컴파일 속도가 아주 빨랐다.

설치 중에 오류가 난 것이 하나 있었는데, 구글링 하니, 소스의 include파일의 Path를 수정하니 정상적으로 컴파일 진행이 되었었다. 

컴파일이 완료가 되면, 아래 명령으로 설치를 한다.

$ sudo make install

 

설치된 확인은 아래와 같이 할 수있다.

$ python3
Python 3.6.9 (default, Jan 26 2021, 15:33:00) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> print(cv2.__version__)
4.1.1

 

반응형