Ubuntu16.04: OpenCV3.4.0のインストール

Ubuntu16.04にOpenCV3.4.0をソースからビルドしインストールしたときのメモ。OpenCV3.4.1がすでにリリースされており、ソースからビルドでき、サンプルプログラムは問題なく動いた。ただし、Yolo V3を実行するときにエラーが出る。3.4.1にバグがあるので、3.4.0をインストールした。

OpenCV: Installation in Linux

環境

  • Laptop
    • DELL Alienware 15 R4
    • CPU: Intel i7-8750K, Memory:16GB, GPU: Nvidia 1070, Memory: 8GB)
    • xubunut16.04.2
    • Kernel 4.13.0-43-generic
    • gcc/g++ 5.4.0
  •  Desktop
    • CPU: Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz (6 core)
    • GPU: NVIDIA GTX 1080Ti
    • Memory: 32GB

準備

  • sudo apt-get install build-essential
  • sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libhdf5-dev libwebp-dev  libtiff-dev libjasper-dev
  • sudo apt install checkinstall auto-apt ccache

ソースコードのダウンロード

  • cd
  • mkdir src
  • cd src
  • 以下をクリックしてopencv-3.4.0をダウンロードする。
  • tar xvzf opencv-3.4.0.tar.gz
  • ln -s opencv-3.4.0  opencv
  •  以下をクリックしてopencv_contrib-3.4.0をダウンロードする。
  • tar xvzf opencv_contrib-3.4.0.tar.gz
  • ln -s opencv_contrib-3.4.0 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 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″ ..
  • make -j 12
    • コンパイルが終わるまで30分ぐらいかかりました。
  • sudo make install
  • sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
  • sudo  ldconfig

テスト

  • cd ~/src/opencv/samples/data
  • ~/src/opencv/build/bin/cpp-example-facedetect lena.jpg
  • 下のウインドウが表示されれば成功。お疲れ様!

  • 以下のようなエラーが出る場合
    • error while loading shared libraries: libopencv_imgcodecs.so.3.4: cannot enable executable stack as shared object requires: Invalid argument
  • 以下のコマンドを実行してから
    • sudo apt install execstack
    • sudo execstack -c /usr/local/lib/*opencv*.so*
  • 再度、テストプログラムを実行する。
    • ~/src/opencv/build/bin/cpp-example-facedetect lena.jpg

コメント

  1. 匿名 より:

    make -j 12を実行するとmake: *** ターゲットが指定されておらず, makefile も見つかりません. 中止.
    となります。解決方法はありますか?

    • demu より:

      この記事はUbuntu16.04での記事なので,Ubuntuのバージョンが違うとうまくいかないと思います.お使いのUbuntuバージョンを教えてください.

タイトルとURLをコピーしました