
OpenCV는 "Open Source Computer Vision Library"의 약자로, 오픈 소스 컴퓨터 비전 라이브러리이다. 실시간 컴퓨터 비전을 처리하기 위한 다양한 알고리즘과 도구를 제공한다. OpenCV는 C++, Python, Java 및 MATLAB과 같은 여러 프로그래밍 언어에서 사용할 수 있다.
또한 OpenCV는 이미지 및 비디오 처리, 객체 검출, 얼굴 인식, 기계 학습, 카메라 캘리브레이션, 모션 추적 등과 같은 다양한 컴퓨터 비전 작업을 수행할 수 있다. 이미지 및 비디오 데이터를 읽고 쓰는 기능, 이미지 변환 및 필터링, 특징 추출 및 기술자(descriptors) 계산 등을 지원한다.
OpenCV는 학계와 산업계에서 널리 사용되며, 개발자들은 이 라이브러리를 활용하여 컴퓨터 비전 관련 프로젝트를 구현하고 최적화할 수 있다.
컴퓨터 비전을 위해서 OpenCV는 필수이다.
Opencv를 사용하기 위해선 그에 의존하는 많은 패키지들을 설치해주어야 한다.
sudo apt-get install build-essential cmake -y
sudo apt-get install pkg-config -y
sudo apt-get install libjpeg-dev libtiff5-dev libpng-dev -y
sudo apt-get install ffmpeg libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev -y
sudo apt-get install libv4l-dev v4l-utils -y
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev -y
sudo apt-get install libgtk-3-dev -y
sudo apt-get install mesa-utils libgl1-mesa-dri libgtkgl2.0-dev libgtkglext1-dev -y
sudo apt-get install libatlas-base-dev gfortran libeigen3-dev -y
sudo apt-get install python3-dev python3-numpy -y
OpenCV를 다운로드 받기위해 임시 디렉토리인 third_party를 만들어주고, wget을 이용하여 OpenCV를 다운로드 받는다.
mkdir ~/third_party -p && cd ~/third_party
mkdir opencv -p && cd opencv
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.1.zip
unzip opencv.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.1.zip
unzip opencv_contrib.zip
이 게시글은 CUDA(11.6 버전)와 cuDNN(8.5.0 버전)이 이미 설치되었다는 가정하에 진행한다. 아직 CUDA와 cuDNN이 설치되지 않았다면 해당 게시글을 참고하여 CUDA와 cuDNN을 설치 후 진행하는 것을 추천한다. 물론, 원래 OpenCV 자체는 CUDA와 cuDNN이 설치되어있지 않더라도 설치가 가능하다.
하지만 요즘 컴퓨터 비전의 특성상 GPU를 사용하는 경우가 매우 많기 때문에, CUDA와 cuDNN을 이용할 경우가 많게 되고, CMake를 진행하는 과정에서 컴파일 설정을 진행하기 때문에 미리 CUDA와 cuDNN이 설치되어 있는것이 좋다.
cd ~/third_party/opencv/opencv-4.5.1
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_C_COMPILER=/usr/bin/gcc-9 \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-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-11.6 \
-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_GTK_2_X=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=ON \
-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.5.1/modules \
-D WITH_CUDNN=ON \
-D OPENCV_DNN_CUDA=ON \
-D CUDA_ARCH_BIN=8.6 \
-D CUDA_ARCH_PTX=8.6 \
-D CUDNN_LIBRARY=/usr/local/cuda/lib64/libcudnn.so.8.5.0 \
-D CUDNN_INCLUDE_DIR=/usr/local/cuda/include ..
# 컴파일
time make -j$(nproc)
컴파일이 완료되면 다음과 같은 화면을 볼 수 있다.

임시 디렉토리에 컴파일 된 결과물을 컴퓨터에 설치한다.
sudo make install
설치가 완료되면 다음과 같은 화면을 볼 수 있다.

설치가 잘 되었는지 확인하기 위해 명령어를 입력하여 설치된 OpenCV의 버전을 확인한다.
pkg-config --modversion opencv4

다음과 같이 4.5.1버전이 잘 설치된 것을 확인할 수 있다.
Reference