Ubuntu 20.04 + OpenCV(CPP) 설치

Geewon Kim·2023년 3월 20일
0

Opencv Install(cpp)

Ubuntu 20.04 + opencv 4.4

  • CUDA 11.1
  • cudnn 8.1.1

기존에 깔린 opencv 지우기

sudo apt-get remove libopencv*
sudo apt-get autoremove

sudo find /usr/local/ -name "*opencv*" -exec rm {} \;

Prerequisites를 설치

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential cmake git pkg-config dkms
sudo apt-get install freeglut3 freeglut3-dev libxi-dev libxmu-dev
sudo apt-get install ubuntu-restricted-extras
sudo apt-get install libjpeg-dev libtiff5 libjasper-dev libpng-dev
sudo apt-get install libavcodec-dev ffmpeg libavformat-dev libswscale-dev libv4l-dev v4l-utils
sudo apt-get install libxvidcore-dev libx264-dev libxine2-dev
sudo apt-get install libgtk-3-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install mesa-utils libgl1-mesa-dri libgtkgl2.0-dev libgtkglext1-dev

ERROR

** CUDNN 심볼릭 링크 관련

CUDA_VER=11.1
cd /usr/local/cuda-${CUDA_VER}/lib64
ls -lha libcudnn*

sudo ln -sf libcudnn.so.8 libcudnn.so
sudo ln -sf libcudnn.so.8.1.1 libcudnn.so.8

sudo ln -sf libcudnn.so.8 libcudnn.so

sudo ln -sf libcudnn_adv_infer.so.8.1.1 libcudnn_adv_infer.so.8
sudo ln -sf libcudnn_cnn_train.so.8.1.1 libcudnn_cnn_train.so.8 
sudo ln -sf libcudnn_adv_train.so.8.1.1 libcudnn_adv_train.so.8
sudo ln -sf libcudnn_ops_infer.so.8.1.1 libcudnn_ops_infer.so.8
sudo ln -sf libcudnn_cnn_infer.so.8.1.1 libcudnn_cnn_infer.so.8
sudo ln -sf libcudnn_ops_train.so.8.1.1 libcudnn_ops_train.so.8

ls -al libcudnn.so*
ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn

OPENCV 깔기

wget -O opencv.zip https://github.com/opencv/opencv/archive/4.4.0.zip
unzip opencv.zip

wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.4.0.zip
unzip opencv_contrib.zip

cd opencv-4.4.0
mkdir build && cd build


cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=ON -D BUILD_DOCS=OFF \
-D BUILD_PERF_TESTS=OFF -D BUILD_TESTS=OFF -D BUILD_PACKAGE=OFF \
-D BUILD_EXAMPLES=OFF -D WITH_TBB=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 \
-D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
-D WITH_CUDA=ON -D WITH_CUBLAS=ON -D WITH_CUFFT=ON \
-D WITH_NVCUVID=ON -D WITH_IPP=OFF -D WITH_V4L=ON \
-D WITH_1394=OFF -D WITH_GTK=ON -D WITH_QT=OFF \
-D WITH_OPENGL=ON -D WITH_EIGEN=ON -D WITH_FFMPEG=ON \
-D WITH_GSTREAMER=ON -D BUILD_JAVA=OFF -D BUILD_opencv_python3=ON \
-D BUILD_opencv_python2=OFF -D BUILD_NEW_PYTHON_SUPPORT=ON \
-D OPENCV_SKIP_PYTHON_LOADER=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.4.0/modules \
-D WITH_CUDNN=ON -D OPENCV_DNN_CUDA=ON \
-D CUDA_ARCH_BIN=7.5  \
-D CUDA_ARCH_PTX=7.5 \
-D CUDNN_LIBRARY=/usr/local/cuda/lib64/libcudnn.so.8.1.1 \
-D CUDNN_INCLUDE_DIR=/usr/local/cuda/include  ../

core 확인

cat /proc/cpuinfo | grep processor | wc -l

MAKE

make -j12 

*.so 라이브러리 파일 생성


sudo make install

sudo sh -c echo '/usr/local/lib/' > sudo /etc/ld.so.conf.d/opencv.conf

sudo ldconfig

설치

확인

pkg-config --modversion opencv
profile
내 지식의 외장하드

0개의 댓글