Ubuntu で,OpenCV 最新版をソースコードからビルドして,インストールする手順をスクリーンショット等で説明する.
ユースケース.OpenCVは「apt install opencv-dev」で簡単にインストールできるが,OpenCV の最新版を追いかけたい場合.自分の環境にあわせてビルドしたい(NVidia CUDA を使うなど)場合は,ソースコードからビルドする.
【目次】
OpenCV は,実時間コンピュータビジョン (real time computer vision) の アルゴリズムと文書とサンプルコードの集まり.
【サイト内の OpenCV 関連ページ】
【OpenCV の公式情報】
Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する.
Ubuntu のインストールは別ページ »で説明
sudo apt -y update sudo apt -yV upgrade sudo /sbin/shutdown -r now
端末で,次のコマンドを実行する.
sudo apt -y install build-essential gcc g++ make libtool texinfo dpkg-dev pkg-config sudo apt -y install qt5-qmake
Ubuntu での NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.7, NVIDIA cuDNN v8.4.1 のインストール: 別ページ »で説明
インストールするには,端末で,次のコマンドを実行する.
sudo apt -y install git cmake cmake-curses-gui cmake-gui curl
Python のインストールは行わない(Ubuntu のシステム Python を用いる.)
Python, pip のコマンドでの起動のまとめ.
Ubuntu のシステム Python を用いるとき, python, pip は,次のコマンドで起動できる.
Ubuntu での Python 開発環境(JupyterLab, spyder, nteract)のインストール: 別ページ »で説明
端末で,次のコマンドを実行する.
sudo apt -y update sudo apt -y install python-is-python3 python3-dev python-dev-is-python3 python3-pip python3-setuptools python3-venv build-essential
sudo apt -y install libceres-dev libceres2
Intel Performance ライブラリを使いたいときは,インストールしておく (必ずしもインストールする必要はない)
Inter Performance ライブラリのインストールは,別ページ »で説明
端末で,次のコマンドを実行する.
sudo apt -y build-dep libopencv-dev sudo apt -y install libgtk2.0-dev sudo apt -y install openalpr openalpr-utils libopenalpr-dev sudo apt -y install openni2-utils libopenni2-dev sudo apt -y install libpcl-dev sudo apt -y install libguava-java sudo apt -y install python3-dev pylint3 flake8 python3-flake8 sudo apt -y install libjasper-dev libleveldb-dev liblmdb-dev sudo apt -y install libatlas-base-dev libopenblas-dev liblapack-dev libtbb-dev libeigen3-dev
次のページなどで,最新バージョンのバージョン番号を確認できる.
端末で,次のコマンドを実行する. 「-b 4.6.0」でバージョン指定している. 「/usr/local/cuda-11.7」のところは,NVIDIA CUDA ツールキット をインストールしたディレクトリに読み替えること.
NVIDIA ドライバ (https://www.nvidia.com/download/index.aspx), NVIDIA CUDA ツールキット 11.7,NVIDIA cuDNN v8.2 のインストール: 別ページ »で説明
Intel MKL を使いたいときは「-DUSE_MKL=ON」に設定する.このとき, 「/opt/intel/compilers_and_libraries_2020.0.166/linux/mkl/include」のところは,Intel MKL の mkl.h があるディレクトリに読み替えること.Intel MKL のインストールのインストールは,別ページ »で説明
cd /usr/local sudo rm -rf opencv sudo git clone --recursive -b 4.6.0 https://github.com/opencv/opencv.git sudo chown -R ${USER} /usr/local/opencv cd /usr/local sudo rm -rf opencv_contrib sudo git clone --recursive -b 4.6.0 https://github.com/opencv/opencv_contrib.git sudo chown -R ${USER} /usr/local/opencv_contrib cd /usr/local/opencv sudo rm -rf build sudo mkdir build sudo chown -R ${USER} /usr/local/opencv/build cd build CUDA_PATH="/usr/local/cuda-11.7" CFLAGS="-I/usr/local/cuda-11.7/include -I/opt/intel/compilers_and_libraries/linux/mkl/include" LDFLAGS="-L/usr/local/cuda-11.7/lib64" \ cmake .. -D CMAKE_BUILD_TYPE=RELEASE \ -D BUILD_opencv_world=ON \ -D BUILD_opencv_apps=ON \ -D OPENCV_EXTRA_MODULES_PATH=/usr/local/opencv_contrib/modules \ -D OpenBLAS_INCLUDE_DIR=/usr/include/x86_64-linux-gnu \ -D OpenBLAS_LIB=/usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblas.so \ -D WITH_PYTHON=ON \ -D BUILD_opencv_python2=OFF \ -D BUILD_opencv_python3=ON \ -D PYTHON_DEFAULT_EXECUTABLE=python3 \ -D WITH_MKL=ON \ -D WITH_CUDA=ON \ -D CUDA_FAST_MATH=ON \ -D WITH_CUBLAS=ON \ -D WITH_CUDNN=ON \ -D WITH_NVCUVID=OFF \ -D OPENCV_DNN_CUDA=OFF \ -D BUILD_opencv_cudaimgproc=OFF \ -D BUILD_EXAMPLES=ON \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_TESTS=ON \ -D INSTALL_C_EXAMPLES=ON \ -D INSTALL_BIN_EXAMPLES=ON \ -D INSTALL_PYTHON_EXAMPLES=ON
補足説明
-D WITH_CUDA=ON \ -D CUDA_FAST_MATH=ON \ -D WITH_CUBLAS=ON \ -D WITH_CUDNN=ON \ -D WITH_NVCUVID=OFF \ -D OPENCV_DNN_CUDA=ON \ -D CUDA_ARCH_PTX=7.5 \ -D BUILD_opencv_cudaimgproc=OFF \
CC=gcc-6 CXX=g++-6 cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=/tmp/opencv_contrib/modules \ -D BUILD_opencv_python3=ON \ -D PYTHON_DEFAULT_EXECUTABLE=python3 \ -D BUILD_EXAMPLES=ON ..
エラーメッセージが出ていないこと
端末で,次のコマンドを実行する.
cd /usr/local/opencv/build CUDA_PATH="/usr/local/cuda-11.7" CFLAGS="-I/usr/local/cuda-11.7/include" LDFLAGS="-L/usr/local/cuda-11.7/lib64" \ make -j4
エラーメッセージが出ていないことを確認
端末で,次のコマンドを実行する.
sudo make install sudo /sbin/ldconfig
エラーメッセージが出ていないことを確認
バージョン番号が表示されれば OK.下の図とは違うバージョンが表示されることがある.
python3 -c "import cv2; print( cv2.__version__ )"
ファイル名 a.cpp で保存.
#include<opencv2/opencv.hpp> int main (int argc, char *argv[]) { cv::Mat bgr = cv::imread("/usr/local/share/opencv4/samples/data/fruits.jpg"); cv::imshow("", bgr); cv::waitKey(0); cv::destroyAllWindows(); return 0; }
次のようなコマンドで実行
g++ -I/usr/local/include/opencv4 -o a.out a.cpp -L/usr/local/lib -lopencv_world ./a.out
ソースコードからビルドするときに「-D BUILD_opencv_world=ON」を付けなかったときは, 次のようなコマンドで実行
g++ -I/usr/local/include/opencv4 -o a.out a.cpp -L/usr/local/lib -lopencv_core -lopencv_highgui -lopencv_imgcodecs ./a.out
画像表示が行われる.画面をクリックし,なにかのキーを押して閉じる.
Python プログラムを実行する
import cv2 CVSAMPLEDAT="/usr/local/share/opencv4/samples/data/" bgr = cv2.imread(CVSAMPLEDAT + "fruits.jpg") cv2.imshow("", bgr) cv2.waitKey(0) cv2.destroyAllWindows()
画像が表示されるので確認. このあと,ウインドウの右上の「x」をクリックしない.画面の中をクリックしてから,何かのキーを押して閉じる