Ubuntu18.04にOpenCV3.4.9をGPU搭載のラップトップ用にソースからビルドしインストールしたときのメモ。GPUを使いたいのでソースからビルドした。インストール方法は以下のリンクの手順を参考にした。
環境
- Laptop
- Razer Blade 15
(CPU: Intel i7-8750H, Memory:16GB, GPU: Nvidia 1070 Max-Q Design, Memory: 8GB)
- Razer Blade 15
- Linux
- Voyager 18.04.3 (xubuntu18.04.3)
- Kernel 5.0.0.-37-generic
- gcc/g++ 7.4.0
- CUDA 10.2
- python3.6
準備
$ sudo apt install build-essential ccache
$ sudo apt install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev tesseract-ocr libtesseract-dev
$sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libgtk2.0-dev libgtk-3-dev libpng-dev libjpeg-dev libopenexr-dev libtiff-dev libwebp-dev
- python3関連のインストール
$ sudo apt install python3-dev python3-numpy
$ sudo apt install python3-pip
- python2関連のインストール
$ sudo apt install python-dev python-numpy
ソースコードのダウンロード
$ cd
$ mkdir src
$ cd src
- 以下をクリックしてopencv-3.4.9を~/srcにダウンロードする。
$ unzip opencv-3.4.9.zip
$ ln -s opencv-3.4.9 opencv
- 以下をクリックしてopencv_contrib-3.4.9をダウンロードする。
$ unzip opencv_contrib-3.4.9.zip
$ ln -s opencv_contrib-3.4.9 opencv_contrib
ソースのビルド
$ cd ~/src/opencv
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/src/opencv_contrib/modules -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_VTK=ON -D INSTALL_C_EXAMPLES=ON -D PYTHON3_EXECUTABLE=/usr/bin/python3.6 -D PYTHON_INCLUDE_DIR=/usr/include/python3.6 -D PYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python3.6m -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/include/python3.6m/numpy -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D WITH_OPENGL=ON -D WITH_CUDA=ON -D CUDA_ARCH_BIN="6.1" -D CUDA_ARCH_PTX="6.1" -DBUILD_opencv_cudacodec=OFF ..
$ make -j$(nproc)
- 私の環境では、コンパイルが終わるまで20分ぐらいかかった。
インストール
$ sudo make install
$ sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
$ sudo ldconfig
テスト
- CUDAを有効にしてソースからビルドしたので、gpuを使うexample_gpu_opticalflowを試す。
$ cd ~/src/opencv/build
$ cp -aur ~/src/opencv/samples/data .
$ cd ~/src/opencv/build/bin
$ ./example_gpu_opticalflow
- 端末に下のような結果とウインドウが表示されれば成功。私の環境ではウインドウが重なっていたので、移動して並べた結果。お疲れ様!
- Usage : ./example_gpu_optical_flow <frame0> <frame1>
Brox : 0.146902 sec
LK : 0.0252506 sec
Farn : 0.0109897 sec
TVL1 : 0.205551 sec
- Usage : ./example_gpu_optical_flow <frame0> <frame1>
コメント