OpenCV 4.10 + CUDA 12.3 + Python3.10 + Extra Modules Ubuntu 22.04 セットアップガイド

OpenCV 4.10 CUDA対応インストール手順

毎回面倒な設定なので、まとめてみました。

✅ 事前条件(本件未チェックの部分があります)

  • Ubuntu 22.04 LTS
  • CUDA 12.3(nvcc --version で確認)
  • Python 3.10
  • cmake-gui(GUIで設定)

1. 必要パッケージのインストール

sudo apt update
sudo apt install -y build-essential cmake cmake-gui git pkg-config \
  libgtk-3-dev libavcodec-dev libavformat-dev libswscale-dev \
  libv4l-dev libxvidcore-dev libx264-dev libjpeg-dev libpng-dev \
  libtiff-dev gfortran openexr libatlas-base-dev python3-dev python3-numpy \
  libtbb2 libtbb-dev libdc1394-22-dev libopenexr-dev libgstreamer1.0-dev \
  libgstreamer-plugins-base1.0-dev libprotobuf-dev protobuf-compiler \
  libgoogle-glog-dev libgflags-dev libgphoto2-dev libeigen3-dev libhdf5-dev \
  doxygen qtbase5-dev

2. OpenCV + Contrib モジュールのダウンロード

cd ~
git clone https://github.com/opencv/opencv.git
cd opencv
git checkout 4.10.0

cd ~
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git checkout 4.10.0

3. ビルド用ディレクトリ作成

cd ~/opencv
mkdir build
cd build

4. cmake-gui 設定

cmake-gui
  • Where is the source code: /home/ユーザー名/opencv
  • Where to build the binaries: /home/ユーザー名/opencv/build

「Configure」後にチェックすべき項目

  • WITH_CUDA = ON
  • OPENCV_EXTRA_MODULES_PATH = /home/ユーザー名/opencv_contrib/modules
  • ENABLE_FAST_MATH = ON / CUDA_FAST_MATH = ON
  • WITH_QT = ON
  • WITH_OPENGL = ON
  • BUILD_opencv_python3 = ON
  • Python3_EXECUTABLE, LIBRARY, INCLUDE_DIR が 3.10 に向いているか確認
  • BUILD_PACKAGE = ON(opencv4.pc など pkg-config に対応)

5. make & install

make -j$(nproc)
sudo make install
sudo ldconfig

6. Pythonから確認

python3 -c "import cv2; print(cv2.getBuildInformation())"

CUDA: YESExtra modules: に目的のモジュールがあれば成功。

7. トラブル対処

  • CUDA not found: CUDA_PATH の誤り、環境変数 LD_LIBRARY_PATH を確認
  • Pythonバージョン違い: Python3_EXECUTABLE に 3.10 を明示
  • pkg-configでopencv4.pcが見つからない: BUILD_PACKAGE=ON を有効にして再ビルド

8. シェルスクリプト化のヒント

cmake-gui は対話形式のためスクリプトにできませんが、代わりに以下のように CMake コマンドラインで実現可能:

#!/bin/bash
set -e

OPENCV_VERSION="4.10.0"
CUDA_PATH="/usr/local/cuda-12.3"
PYTHON_EXEC=$(which python3.10)
PYTHON_INCLUDE=$(python3.10 -c "from sysconfig import get_paths; print(get_paths()['include'])")
PYTHON_LIB=$(python3.10 -c "import sysconfig; print(sysconfig.get_config_var('LIBDIR'))")

cd ~
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
cd opencv
git checkout $OPENCV_VERSION
cd ../opencv_contrib
git checkout $OPENCV_VERSION

mkdir -p ~/opencv/build
cd ~/opencv/build

cmake -D CMAKE_BUILD_TYPE=RELEASE \
  -D CMAKE_INSTALL_PREFIX=/usr/local \
  -D WITH_CUDA=ON \
  -D ENABLE_FAST_MATH=ON \
  -D CUDA_FAST_MATH=ON \
  -D WITH_CUBLAS=ON \
  -D WITH_QT=ON \
  -D WITH_OPENGL=ON \
  -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
  -D BUILD_opencv_python3=ON \
  -D BUILD_PACKAGE=ON \
  -D PYTHON3_EXECUTABLE=$PYTHON_EXEC \
  -D PYTHON3_INCLUDE_DIR=$PYTHON_INCLUDE \
  -D PYTHON3_LIBRARY=$PYTHON_LIB/libpython3.10.so \
  -D BUILD_EXAMPLES=OFF ..

make -j$(nproc)
sudo make install
sudo ldconfig

これを install_opencv.sh として保存し、実行権限を付与してから実行:

chmod +x install_opencv.sh
./install_opencv.sh

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA