안녕하세요.
Jetson Nano에서 영상처리를 하는 소프트웨어를 테스트해 보기 위해서 먼저 OpenCV를 설치를 해보았습니다. 어려운 것은 아닌데, 빌드하는 시간이 조금 오래 걸립니다. 그래도 영상처리 프로그램 테스트를 위해서 소스버전으로 설치를 진행해 보았습니다.
1. Jetson Nano에 OS(Ubuntu 18.04) 설치
- Jetson Nano를 사용하기 위해서 SD Card에 Ubuntu를 설치해주어야 합니다. 그 내용은 NVIDIA 사이트를 참고하시면 스텝별로 따라 할 수 있습니다.
<Get Started With Jetson Nano Developer Kit>
https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit#intro
2. 사전 작업
- <참고사이트 2번>을 따라 했는데 중간 오타가 있어서 조금 수정하였습니다.
- OS를 처음 설치하고 apt update와 apt upgrade 했으면 OpenCV가 설치가 되었습니다. 그래서 미리 설치된 것을 확인해 봅니다.
$ pkg-config --modversion opencv
- 기존에 설치된 라이브러리를 삭제합니다.
$ apt-get purge libopencv* python-opencv
$ apt-get autoremove
- 기존에 설치된 opencv 라이브러리 삭제하고 설치된 opencv 없으면 넘기면 됩니다.
$ find /usr/local/ -name "*opencv*" -exec rm -i {} \;
- 빌드에 필요한 각종 라이브러리들을 설치해 줍니다.
$ sudo apt-get install -y build-essential cmake git unzip pkg-config
$ sudo apt-get install -y libjpeg-dev libpng-dev libtiff-dev libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install -y libgtk2.0-dev libcanberra-gtk* python3-dev python3-numpy python3-pip
$ sudo apt-get install -y libxvidcore-dev libx264-dev libgtk-3-dev libtbb2 libtbb-dev libdc1394-22-dev
$ sudo apt-get install -y libv4l-dev v4l-utils libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libavresample-dev libvorbis-dev libxine2-dev libfaac-dev libmp3lame-dev libtheora-dev
$ sudo apt-get install -y libopencore-amrnb-dev libopencore-amrwb-dev libopenblas-dev libatlas-base-dev libblas-dev liblapack-dev libeigen3-dev gfortran libhdf5-dev protobuf-compiler libprotobuf-dev libgoogle-glog-dev libgflags-dev
3. OpenCV Source 다운로드
- 홈(home) 위치로 이동해서 prj 디렉터리를 만들어서 OpenCV 소스와 Contrib 소스를 다운로드합니다.
$ cd ~
$ mkdir prj
$ cd prj
$ sudo wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.0.zip
$ sudo wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.0.zip
- 파일 압축을 풀어주고 디렉터리 이름을 보기 편하게 바꿔줍니다.
$ mv opencv-4.5.0 opencv
$ mv opencv_contrib-4.5.0 opencv_contrib
- build 할 디렉터리를 생성하고 경로 이동합니다.
$ cd ~/prj/opencv
$ mkdir build
$ cd build
4. OpenCV 빌드하기
- cmake로 필요한 기능과 경로들을 설정합니다. 띄어쓰기와 경로 등을 잘 확인할 필요가 있습니다. 기능에 따라 ON/OFF롤 설정해 줍니다. OPENCV_EXTRA_MODULES_PATH 도 위에서 작업한 경로를 잘 지정해주어야 합니다.
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/prj/opencv_contrib/modules \
-D EIGEN_INCLUDE_PATH=/usr/include/eigen3 \
-D WITH_OPENCLAMDBLAS=OFF \
-D WITH_GTK=OFF \
-D WITH_OPENCL=OFF \
-D WITH_CUDA=ON \
-D CUDA_FAST_MATH=ON \
-D OPENCV_DNN_CUDA=ON \
-D CUDA_ARCH_PTX="" \
-D WITH_CUDNN=ON \
-D WITH_CUBLAS=ON \
-D ENABLE_FAST_MATH=ON \
-D ENABLE_NEON=ON \
-D WITH_QT=OFF \
-D WITH_OPENMP=ON \
-D WITH_OPENGL=ON \
-D BUILD_JASPER=ON \
-D BUILD_TIFF=ON \
-D WITH_FFMPEG=ON \
-D WITH_GSTREAMER=ON \
-D WITH_TBB=ON \
-D BUILD_TBB=ON \
-D WITH_EIGEN=ON \
-D WITH_V4L=ON \
-D WITH_LIBV4L=ON \
-D WITH_VTK=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D BUILD_OPENCV_WORLD=ON \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_OPENCV_PYTHON_TESTS=OFF \
-D BUILD_JAVA=OFF \
-D INSTALL_TESTS=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-D BUILD_EXAMPLES=OFF ..
- 컴파일과 설치를 진행합니다. 두 가지는 시간이 2시간 이상이 걸리다 보니 명령어 실행하고 다른 작업을 하면서 확인하시면 됩니다.
$ make -j4
$ sudo rm -rf /usr/include/opencv4/opencv2
$ sudo make install
- /usr/local/lib 경로가 출력되는지 확인해야 한다.
$ cat /etc/ld.so.conf.d/*
- 만약 /usr/local/lib 출력되지 않으면 아래 명령어로 경로를 추가해 줍니다.
$ sudo sh -c 'echo '/usr/local/lib' > /etc/ld.so.conf.d/opencv.conf'
- 공유 라이브러리 정보를 갱신하여 경로 등이 적용되게 합니다.
$ sudo ldconfig
5. OpenCV 적용확인 하기
- python을 통해 프로그램 라이브러리가 사용가능한지 확인합니다. 다음과 같이 버전 정보가 나타난다면 이상 없이 설치된 것으로 볼 수 있습니다.
$ python3
>>>import cv2
>>>cv2.__version__
'4.5.0'
>>>exit()
<참고 사이트>
1. Get Started With Jetson Nano Developer Kit
https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit#intro
2. Jetson Nano : openCV 설치
https://velog.io/@tilkoas35/Jetson-Nano-openCV-%EC%84%A4%EC%B9%98
'Embedded' 카테고리의 다른 글
[Jetson Nano] docker에 MQTT(mosqitto) 설치해서 외부에서 작동확인 해보기 (0) | 2023.10.09 |
---|