$pkg-config --modversion opencv
이미 Opencv가 있다면 삭제
$sudo apt-get purge libopencv* python-opencv
$sudo apt-get autoremove
$ sudo apt-get install build-essential cmake
(2)pkg-config 다운로드
$ sudo apt-get install pkg-config
(3) 기타 패키지 다운로드
$ sudo apt-get install libjpeg-dev libtiff5-dev libpng-dev //IMAGE FILE
$ sudo apt-get install ffmpeg libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev //VIDEO
$ sudo apt-get install libv4l-dev v4l-utils // VIDEO REAL-TIME CAPTURE
$ sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev //VIDEO STREAMING
$ sudo apt-get install libgtk-3-dev // GUI using gtk2(qt도 사용 가능)
$ sudo apt-get install mesa-utils libgl1-mesa-dri libgtkgl2.0-dev libgtkglext1-dev //OpenGL
$ sudo apt-get install libatlas-base-dev gfortran libeigen3-dev // OpenCV optimizing
$ sudo apt-get install python3-dev python3-numpy // OpenCV-Python binding
$ pip install numpy
$ cd 원하는 위치
$ sudo mkdir opencv && cd opencv
// OpenCV source code download
$ sudo wget -O opencv.zip https://github.com/opencv/opencv/archive/4.4.0.zip
$ sudo unzip opencv.zip
// OpenCV extra moduled download
$ sudo wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.4.0.zip
$ sudo unzip opencv_contrib.zip
// remove zip file
$ sudo rm opencv.zip opencv_contrib.zip
// opencv-*(version)으로 이동(본문에선 4.4.0)
$ cd opencv-4.4.0
$ sudo mkdir build && cd build
// OpenCV compile 설정
$ sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=OFF -D WITH_IPP=OFF -D WITH_1394=OFF -D BUILD_WITH_DEBUG_INFO=OFF -D BUILD_DOCS=OFF -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=OFF -D BUILD_PACKAGE=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D WITH_QT=OFF -D WITH_GTK=ON -D WITH_OPENGL=ON -D BUILD_opencv_python3=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.4.0/modules -D WITH_V4L=ON -D WITH_FFMPEG=ON -D WITH_XINE=ON -D OPENCV_ENABLE_NONFREE=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D OPENCV_SKIP_PYTHON_LOADER=ON -D OPENCV_GENERATE_PKGCONFIG=ON ../
컴파일 설정이 완료 되면
이런 메세지가 보입니다.
$ cd ~/opencv/opencv-4.4.0/build
$ sudo make -j$(nproc)
컴파일이 완료되면 이런 메세지를 볼 수 있습니다.
$ sudo make install
// < /usr/local/lib> 있는지 확인
$ sudo 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
명령어를 입력해줍니다.
근데 저는 여기서 symbolic link가 없다는 에러가 떠서 이를 해결하는 과정이 필요했습니다.
5-1. Cuda, Cudnn 삭제
// Cuda 삭제
$ cd /usr/local/cuda
$ sudo ./bin/cuda-uninstaller
// Cudnn 삭제
$ cd /usr/local/ && sudo rm -rf cuda*
5-2. Cuda Toolkit 다운로드
https://developer.nvidia.com/cuda-downloads 에서 환경에 맞는 Cuda Toolkit 다운로드
내 환경은 아래와 같았기 때문에 안내되는 코드를 그대로 따라서 다운받았다.
$ sudo wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb
$ sudo dpkg -i cuda-keyring_1.0-1_all.deb
$ sudo apt-get update
$ sudo apt-get -y install cuda
Cuda가 잘 설치 되었는지 확인하기 위해 아래 명령어를 실행한다
$ nvcc -V
이런 메세지가 뜬다면 잘 설치 된 것
5-3. Cudnn 다운로드
https://developer.nvidia.com/rdp/cudnn-download
에서 환경에 맞는 Cudnn 다운로드
나는 Cuda 10.1 version이었기 때문에 cudnn은 8.0.5 버전으로 다운받았다.
설치된 경로(/usr/loca/l)로 이동해서 압축을 풀어준다
$ cd /usr/local
$ sudo tar -xvzf cudnn-10.1-linux-x64-v8.0.5.39.tgz
// 압축이 풀린 폴더로 이동 후 cudnn 설치
$ cd /usr/local/cuda