설치 정보를 보면 다음과 같다. 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
'Jetson & 머신러닝' 카테고리의 다른 글
우분투(ubuntu)에서 default audio (htmi) 설정하기 (0) | 2022.02.14 |
---|---|
Nvidia AGX Xavier 동작 모드 및 FAN 속도 변경 (0) | 2021.03.24 |
Xavier에 설치한 패키지 들 (0) | 2021.03.24 |
집 밖에서 Xavier AGX를 원격으로 전원 켜기(WOL; wake on lan) (0) | 2021.03.23 |
Jetson AGX Xavier 초기 설치(2) (2) | 2021.01.18 |