Jetson Nano YOLOv5 OpenCV 설치하기!

이도형·2024년 5월 10일
1
post-thumbnail

(해당 글은 qengineering을 기반으로 작성하였습니다.)
Jetson Nano에서 GPU 즉, CUDA를 사용하기 위해서는
OpenCV를 설치해야합니다.

가장 오래 걸리는 작업 (3~4시간) 이므로 유의해주세요!

YOLOv5에서 원하는 최소 사양은 OpenCV 4.1.2 지만,

저는 OpenCV 4.5.0 을 설치해보겠습니다.


설치 전 공간 비워주기

OpenCV 설치 전 공간을 비워줘야 합니다.
(간편한 복붙을 위해 $는 생략하겠습니다.)

  • 의존성 / 업데이트 문제 방지를 위한 설치
sudo apt-get update
sudo apt-get upgrade
  • 공간 비워주기 전 설치
sudo apt-get install nano
sudo apt-get install dphys-swapfile
  • 공간 비워주기 1
sudo nano /sbin/dphys-swapfile

CONF_SWAPSIZE=CONF_SWAPSIZE=4096 (4096)

CONF_MAXSIZE=2048CONF_MAXSIZE=4096 (2048→4096)

변경 후 Ctrl+X > Y > Enter

  • 공간 비워주기 2
sudo nano /etc/dphys-swapfile

#CONF_SWAPSIZE=CONF_SWAPSIZE=4096 (주석 제거, 4096)
#CONF_SWAPFACTOR=2CONF_SWAPFACTOR=2 (주석 제거)
#CONF_MAXSIZE=2048CONF_MAXSIZE=4096 (주석 제거, 4096)

변경 후 Ctrl+X > Y > Enter

  • 다시 시작 (꼭 해줘야됩니다!)
sudo reboot

설치 1. Script 방식 (추천!)

  • 메모리 체크
free -m
(6073 = 2GB ZRAM + 4GB swap)

  • Qengineering Git을 통해 OpenCV 4.5.0 설치
    (약 3시간 소요)
wget https://github.com/Qengineering/Install-OpenCV-Jetson-Nano/raw/main/OpenCV-4-5-0.sh
sudo chmod 755 ./OpenCV-4-5-0.sh
./OpenCV-4-5-0.sh
  • 설치 이후 용량을 위해 파일 지워주기
rm OpenCV-4-5-0.sh
sudo /etc/init.d/dphys-swapfile stop
sudo apt-get remove --purge dphys-swapfile
sudo rm -rf ~/opencv
sudo rm -rf ~/opencv_contrib

설치 2. 공식 Git + CMake 방식

  • 메모리 체크
free -m
(6073 = 2GB ZRAM + 4GB swap)

  • 의존성을 위한 설치
sudo sh -c "echo '/usr/local/cuda/lib64' >> /etc/ld.so.conf.d/nvidia-tegra.conf"
sudo ldconfig
sudo apt-get install build-essential cmake git unzip pkg-config zlib1g-dev
sudo apt-get install libjpeg-dev libjpeg8-dev libjpeg-turbo8-dev
sudo apt-get install libpng-dev libtiff-dev libglew-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libgtk2.0-dev libgtk-3-dev libcanberra-gtk*
sudo apt-get install python-dev python-numpy python-pip
sudo apt-get install python3-dev python3-numpy python3-pip
sudo apt-get install libxvidcore-dev libx264-dev libgtk-3-dev
sudo apt-get install libtbb2 libtbb-dev libdc1394-22-dev libxine2-dev
sudo apt-get install gstreamer1.0-tools libgstreamer-plugins-base1.0-dev
sudo apt-get install libgstreamer-plugins-good1.0-dev
sudo apt-get install libv4l-dev v4l-utils v4l2ucp qv4l2
sudo apt-get install libtesseract-dev libxine2-dev libpostproc-dev
sudo apt-get install libavresample-dev libvorbis-dev
sudo apt-get install libfaac-dev libmp3lame-dev libtheora-dev
sudo apt-get install libopencore-amrnb-dev libopencore-amrwb-dev
sudo apt-get install libopenblas-dev libatlas-base-dev libblas-dev
sudo apt-get install liblapack-dev liblapacke-dev libeigen3-dev gfortran
sudo apt-get install libhdf5-dev libprotobuf-dev protobuf-compiler
sudo apt-get install libgoogle-glog-dev libgflags-dev
sudo apt-get install qt5-default
  • OpenCV 공식 Git을 통해 파일 정리
cd ~
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.0.zip
unzip opencv.zip
unzip opencv_contrib.zip
mv opencv-4.5.0 opencv
mv opencv_contrib-4.5.0 opencv_contrib
rm opencv.zip
rm opencv_contrib.zip
  • Make 파일 만들기
cd ~/opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D EIGEN_INCLUDE_PATH=/usr/include/eigen3 \
-D WITH_OPENCL=OFF \
-D WITH_CUDA=ON \
-D CUDA_ARCH_BIN=5.3 \
-D CUDA_ARCH_PTX="" \
-D WITH_CUDNN=ON \
-D WITH_CUBLAS=ON \
-D ENABLE_FAST_MATH=ON \
-D CUDA_FAST_MATH=ON \
-D OPENCV_DNN_CUDA=ON \
-D ENABLE_NEON=ON \
-D WITH_QT=OFF \
-D WITH_OPENMP=ON \
-D BUILD_TIFF=ON \
-D WITH_FFMPEG=ON \
-D WITH_GSTREAMER=ON \
-D WITH_TBB=ON \
-D BUILD_TBB=ON \
-D BUILD_TESTS=OFF \
-D WITH_EIGEN=ON \
-D WITH_V4L=ON \
-D WITH_LIBV4L=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D BUILD_opencv_python3=TRUE \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D BUILD_EXAMPLES=OFF ..
  • Make 파일 설치
make -j4
sudo rm -r /usr/include/opencv4/opencv2
sudo make install
sudo ldconfig
  • 파일 정리 및 업데이트
make clean
sudo apt-get update

설치 확인 1. Python3

Terminal 접속
> Python3 실행 python3
> import cv2
> cv2.__version__
> 버전 확인 후 exit() 으로 python3 종료


설치 확인 2. jtop (추천!)

  • jtop 설치 및 다시 시작
sudo -H pip install -U jetson-stats
sudo reboot
  • jtop 실행
sudo jtop

7번을 누른뒤

OpenCV 버전YES 확인


마치며

Make 파일을 만들어서 설치하는 방법은 매우 까다롭습니다.
Qengieneering에서 좋은 파일을 만들어 놨으니
파일이 다운안되지 않는 이상 무조건!! Script 방식을 이용

OpenCV CUDA (GPU)를 사용하려면
꼭 공간을 비우고
3시간 이상의 여유를 가지고
Script 방식으로 설치하자!


이어서

PyTorch 설치하기

YOLOv5 설치하기 (PyTorch, Torchvision 설치했다면)

profile
열심히 살고 싶습니다! 일하고 싶습니다 :)

0개의 댓글

관련 채용 정보