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