본 문서는 Ubuntu 20.04에서 OpenCV 4.6.0을 설치하는 방법을 다루고 있습니다.
링크의 내용을 참고하였습니다.
pkg-config --modversion opencv # 또는 opencv4
sudo apt-get purge libopencv* python-opencv
sudo apt-get autoremove
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential cmake
sudo apt-get install pkg-config
sudo apt-get install libjpeg-dev libtiff5-dev libp11-dev libpng-dev # 이미지 관련
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev # 비디오 관련
sudo apt-get install libv4l-dev v4l-utils # 비디오 관련 (Linux)
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev # 비디오 스트리밍 관련
sudo apt-get install libgtk2.0-dev # GUI 관련
sudo apt-get install mesa-utils libgl1-mesa-dri libgtkgl2.0-dev libgtkglext1-dev # GUI 관련2
sudo apt-get install libatlas-base-dev gfortran libeigen3-dev # 최적화 관련
sudo apt-get install python2.7-dev python3-dev python-numpy python3-numpy # Python 관련
cmake는 위 방법으로 설치하면 최신 버전으로 설치되지 않으므로 별도로 빌드하는 것을 권장
mkdir opencv && cd opencv
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.6.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.6.0.zip
unzip opencv.zip
unzip opencv_contrib.zip
소스코드 다운로드 링크는 OpenCV 홈페이지 참고
cd opencv-4.6.0
mkdir build && cd build
# w/ CUDA 예시(각자에 맞게 조정 필요)
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-12.1 -D WITH_CUDA=ON -D WITH_CUBLAS=ON -D WITH_CUFFT=ON -D WITH_NVCUVID=ON -D WITH_IPP=OFF -D WITH_V4L=OFF -D WITH_LIBV4L=ON -D WITH_1394=OFF -D WITH_GTK=ON -D WITH_QT=OFF -D WITH_OPENGL=OFF -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=/home/user/opencv/opencv_contrib-4.6.0/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-12.1/lib64/libcudnn.so.8.9.7 -D CUDNN_INCLUDE_DIR=/usr/local/cuda-12.1/include -D PYTHON3_PACKAGES_PATH=/usr/local/lib/python3.8/dist-packages ..
# w/o CUDA 예시(각자에 맞게 조정 필요)
cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-${버전}/modules \
-D EIGEN_INCLUDE_PATH=/usr/include/eigen3 \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_OPENGL=ON \
-D WITH_OPENMP=ON \
-D WITH_FFMPEG=ON \
-D WITH_GSTREAMER=ON \
-D WITH_GSTREAMER_0_10=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_java=OFF \
-D BUILD_opencv_js=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_EXAMPLES=ON \
-D WITH_ONNX=ON \
-D ONNXRT_ROOT_DIR=/usr/local \
-D ONNX_RUNTIME_LIBDIR=/usr/local/lib \
-D ONNX_RUNTIME_INCLUDE_DIR=/usr/local/include \
..
make # 모든 코어를 다 활용하려면 make -j $(nproc)
sudo make install
Anaconda가 활성화된 상태에서 빌드 시 에러가 자꾸 발생해서
conda deactivate
후 진행했다.
#include <opencv2/opencv.hpp>
#include <iostream>
int main() {
cv::Mat image(400, 600, CV_8UC3, cv::Scalar(255, 255, 255)); // Create a white image
cv::putText(image, "Hello, OpenCV!", cv::Point(100, 200), cv::FONT_HERSHEY_SIMPLEX, 1.0, cv::Scalar(0, 0, 0), 2);
cv::imshow("HelloWorld", image);
cv::waitKey(0);
return 0;
}
cmake_minimum_required(VERSION 3.5)
project(HelloOpenCV)
# Set C++ standard
set(CMAKE_CXX_STANDARD 11)
# Find OpenCV package
find_package(OpenCV REQUIRED)
# Include OpenCV headers
include_directories(${OpenCV_INCLUDE_DIRS})
# Add executable
add_executable(HelloOpenCV HelloOpenCV.cpp)
# Link OpenCV libraries
target_link_libraries(HelloOpenCV ${OpenCV_LIBS})
# 위 두 파일이 같은 디렉토리에 있는 상태에서 진행
mkdir build
cd build
cmake ..
make
./HelloOpenCV
현재 opencv-4.7.0과 onnxruntime-1.10.0에서 동작하는 것 확인함.
opencv-4.6.0과 onnxruntime-1.12.1에서 동작하는 것 확인함.