4
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Windows上で Qt と VTK (QVTK) サポートな OpenCV, PCL 環境構築メモ (2018/04版)

Last updated at Posted at 2018-04-24

2019/04版の記事を公開しています

はじめに

Windows, Visual Studio 2015でのQtとVTK(with Qt)サポートな開発環境構築の記録用メモ.Pythonは3のみを想定.
主にOpenCV, PCL, ついでにTensorFlowが使える環境を構築,ライブラリはC:\lib以下に配置.

1年前の記事 のアップデートです.
昨年引き続き http://unanancyowen.com/pcl181 (PCL 1.8.1) を大いに参考にさせて頂きました.ありがとうございます.

本記事での > 何かコマンド は,PowerShell上での操作の意味です.

導入するもの

  • インストーラー使用
    • Visual Studio Community 2015
    • Anaconda 5.1 (Python 3.6)
    • Git for Windows 2.17.0
    • CUDA Toolkit 9.0
    • cuDNN 7.0.0 for CUDA 9.0
    • CMake 3.11.1
    • HDF5 1.10.2
    • Microsoft MPI v9.0.1, Microsoft MPI SDK v9.0.1
    • OpenNI 2.2.0.33 Beta
    • (Ensenso SDK 2.2.65) もし使うなら
    • (MATLAB 2017b) もし使うなら
  • パッケージマネージャー使用だけどちょっと注意が必要
    • TensorFlow 1.7
  • ソースから導入
    • bzip2 1.0.6 (ソースのみ)
    • zlib 1.2.11 (ソースのみ)
    • Boost 1.67.0
    • Qt 5.10.1
    • FreeGLUT 3.0.0
    • GLEW 2.1.0
    • Eigen 3.3.4
    • VTK 8.1.0
    • FLANN 1.9.1
    • QHull 2015.2 (7.2.0)
    • OpenCV 3.4.0
    • PCL 1.8.1
    • Bullet 2.87

システム構成(参考)

要素 スペック
CPU Intel Core i7-6700K
RAM 64GB
OS Windows 10 Pro (64bit)
GPU NVIDIA GeForce GTX 1080

導入手順

インストーラ使用

CUDAが最新のVisual Studioに対応していないため(VS2017のUpdateによっては対応しているが面倒),VS2015を使用する.
CUDA, cuDNNはバージョンに注意.TensorFlowがCUDA 9.0, cuDNN 7.0を指定しているため,バージョンを合わせる必要がある.

TensorFlow 1.7

(参考: https://www.tensorflow.org/install/install_windows

  1. AnacondaでPython3.5の環境を作る

  2. > conda create -n tensorflow pip python=3.5

  3. > activate tensorflow

  4. > pip install --ignore-installed --upgrade tensorflow-gpu

  5. TensorFlowが動作することを確認.まずPythonインタプリタ起動

    1. > python
    2. インタプリタ上で以下を走らせてみる
    > import tensorflow as tf
    > hello = tf.constant('Hello, TensorFlow!')
    > sess = tf.Session()
    > print(sess.run(hello))
    

    b'Hello, TensorFlow!'が出ていればとりあえずOK.(Ctrl)+Zで抜ける

bzip2 1.0.6 (ソースのみ)

  1. C:\lib\bzip2を作成
  2. http://www.bzip.org/downloads.html からソースをダウンロードしてC:\lib\bzip2\srcに解凍

zlib 1.2.11 (ソースのみ)

  1. C:\lib\zlibを作成
  2. http://zlib.net/ からソースをダウンロードしてC:\lib\zlib\srcに解凍

Boost 1.67.0

(参考: https://gist.github.com/UnaNancyOwen/d879a41710e9c05025f8

  1. C:\lib\Boost\を作成

  2. http://www.boost.org/users/download/ からソースをダウンロード,C:\lib\Boost\srcに解凍

  3. C:\lib\Boost\srcに移動

  4. VS 2015 用 x64 Native Tools コマンド プロンプトを起動,以降はこのプロンプト上で実行

  5. > bootstrap.bat

  6. project-config.jamに以下を追記

    using mpi ;
    
  7. > b2.exe toolset=msvc-14.0 address-model=64 --build-dir="C:/lib/Boost/build" -s BZIP2_SOURCE="C:/lib/bzip2/src" -s ZLIB_SOURCE="C:\lib\zlib\src" -s NO_ZLIB=0 -s NO_BZIP2=0 -j7
    (-jで並列数指定,コア数以下に設定すると良さげ.Pythonは自動で見つけてくれるようになったっぽい.)

  8. > b2.exe toolset=msvc-14.0 address-model=64 --build-dir="C:/lib/Boost/build" install --prefix="C:/lib/Boost/install"

  9. TensorFlow環境でも使うため,Python3.5用のBoost.PythonとBoost.Numpyを入れる.project-config.jamの

    using mpi ;
    

    を削除し以下を追記 (環境に合わせて適宜パスは変更)

    using python : 3.5 : "C:/Python/Anaconda3/envs/tensorflow/python.exe" : "C:/Python/Anaconda3/envs/tensorflow/include" : "C:/Python/Anaconda3/envs/tensorflow/libs" ;
    
  10. > ./b2.exe toolset=msvc-14.0 address-model=64 --build-dir="C:/lib/Boost/build" -j7

  11. > ./b2.exe toolset=msvc-14.0 address-model=64 --build-dir="C:/lib/Boost/build" install --prefix="C:/lib/Boost/install"

  12. 環境変数 %BOOST_ROOT% を C:\lib\Boost\install に設定

Qt 5.10.1

(参考: https://blog.kintarou.com/2016/03/28/bulding_qt/
今回はソースから入れましたが,おすすめしません.Qtはバイナリで入れた方が良いと思います

  1. C:\lib\Qtを作成
  2. https://www1.qt.io/offline-installers/ からソースをダウンロード,C:\lib\Qt\srcに解凍
  3. C:\lib\Qt\srcに移動
  4. VS 2015 用 x64 Native Tools コマンド プロンプトを起動,以降はこのプロンプト上で実行
  5. > configure.bat -developer-build -confirm-license -opensource -nomake examples -nomake tests -opengl desktop -no-warnings-are-errors -prefix "C:/lib/Qt/install" -skip webengine
  6. どっかからjom.exeを見つけてくる (Qtのバイナリパッケージから拾ってくるのが一番楽).コンパイルが遅くて良ければjomの代わりにnmakeでも良い(らしい,未確認)
  7. > jom
  8. > jom intall
  9. 環境変数 %QT_DIR% を C:\lib\Qt\install\lib\cmake に設定
  10. PATH に C:\lib\Qt\install\bin を追加

FreeGLUT 3.0.0

  1. C:\lib\Freeglutを作成し移動
  2. http://freeglut.sourceforge.net/ からソースをダウンロード,C:\lib\Freeglut\srcに解凍
  3. CMake
    • src: C:\lib\Freeglut\src
    • build: C:\lib\Freeglut\build
  4. Configure (変更点のみ.各自の環境に合わせて確認する)
    • CMAKE_INSTALL_PREFIX: C:/lib/Freeglut/install
    • INSTALL_PDB: no
  5. 環境変数 %GLUT_ROOT_PATH% を C:\lib\Freeglut\install に設定
  6. PATH に C:\lib\Freeglut\install\bin を追加

GLEW 2.1.0

  1. C:\lib\GLEWを作成
  2. http://glew.sourceforge.net/ からソースをダウンロード,C:\lib\Qt\GLEW\srcに解凍.
    GitHubのリポジトリには含まれていないファイルがあるので必ずzipで.
  3. C:\lib\GLEW\srcに移動
  4. CMake
    • src: C:\lib\GLEW\src\build\cmake
    • build: C:\lib\GLEW\build
  5. Configure (変更点のみ.各自の環境に合わせて確認する)
    • CMAKE_INSTALL_PREFIX: C:/lib/GLEW/install
  6. Generate & Open Project
  7. DebugでALL_BUILD, INSTALLを順にビルド
  8. ReleaseでALL_BUILD, INSTALLを順にビルド
  9. 環境変数 %GLEW_ROOT% を C:\lib\GLEW\install に設定
  10. Pathに C:\lib\GLEW\install\bin を追加

Eigen 3.3.4

(参考: https://gist.github.com/UnaNancyOwen/08e5a9b8f5979ed0077c

  1. C:\lib\Eigen\を作成し移動
  2. > git clone https://github.com/eigenteam/eigen-git-mirror.git src
  3. > cd src
  4. > git checkout 3.3.4
  5. CMake
    • src: C:\lib\Eigen\src
    • build: C:\lib\Eigen\build
  6. Configure (変更点のみ.各自の環境に合わせて確認する)
    • CMAKE_INSTALL_PREFIX: C:/lib/Eigen/install/
  7. Generate & Open Project
  8. DebugでALL_BUILD, INSTALLを順にビルド
  9. ReleaseでALL_BUILD, INSTALLを順にビルド
  10. 環境変数 %EIGEN_ROOT% を C:\lib\Eigen\install に設定

VTK 8.1.0

(参考: https://gist.github.com/UnaNancyOwen/9d16060714ba9b28f90e

  1. C:\lib\VTK\を作成し移動
  2. > git clone https://github.com/Kitware/VTK.git src
  3. > cd src
  4. > git checkout v8.1.0
  5. CMake
    • src: C:\lib\VTK\src
    • build: C:\lib\VTK\build
  6. Configure (変更点のみ.各自の環境に合わせて確認する)
    • CMAKE_DEBUG_POSTFIX: _d
    • BUILD_TESTING: no
    • CMAKE_CXX_MP_FLAG: yes
    • CMAKE_INSTALL_PREFIX: C:/lib/VTK/install
    • VTK_GROUP_Qt: yes
  7. Generate & Open Project
  8. DebugでALL_BUILD, INSTALLを順にビルド
  9. ReleaseでALL_BUILD, INSTALLを順にビルド
  10. 環境変数 %VTK_DIR% を C:\lib\VTK\install に設定
  11. Pathに C:\lib\VTK\install\bin を追加

FLANN 1.9.1

(参考: https://gist.github.com/UnaNancyOwen/1e3fced09e4430ad0b7b

  1. C:\lib\Flann\ を作成し移動
  2. > git clone git://github.com/mariusmuja/flann.git src
  3. > cd src
  4. > git checkout 1.9.1
  5. CMake
    src: C:\lib\Flann\src
    build: C:\lib\Flann\build
  6. Configure (変更点のみ.各自の環境に合わせて確認する)
    • CMAKE_DEBUG_POSTFIX: _d
    • CMAKE_INSTALL_PREFIX: C:/lib/GLEW/install
    • BUILD_CUDA_LIB: yes
    • BUILD_DOC: no
    • BUILD_MATLAB_BINDINGS: no
    • BUILD_PYTHON_BINDINGS: no
    • BUILD_EXAMPLES: no
    • BUILD_TESTS: no
  7. Generate & Open Project
  8. DebugでALL_BUILD, INSTALLを順にビルド
  9. ReleaseでALL_BUILD, INSTALLを順にビルド
  10. 環境変数 %FLANN_ROOT% を C:\lib\flann\install に設定
  11. Pathに C:\lib\flann\install\bin を追加

QHull 2015.2 (7.2.0)

(参考: https://gist.github.com/UnaNancyOwen/ffbe6b05ee0101620d3c

  1. C:\lib\Qfull\ を作成し移動
  2. > git clone https://github.com/qhull/qhull.git src
  3. > cd src
  4. > git checkout 5a79a0009454c86e9848646b3c296009125231bf これは2015.2 (7.2.0)で,tagなどがないのでHash値で指定
  5. CMake
    • src: C:\lib\Qfull\src
    • build: C:\lib\Qfull\build
  6. Configure (変更点のみ.各自の環境に合わせて確認する)
    • CMAKE_DEBUG_POSTFIX: _d
    • CMAKE_INSTALL_PREFIX: C:/lib/Qfull/install
  7. Generate & Open Project
  8. DebugでALL_BUILD, INSTALLを順にビルド
  9. ReleaseでALL_BUILD, INSTALLを順にビルド
  10. 環境変数%QHULL_ROOT%: C:\lib\Qfull\install
  11. PathにC:\lib\Qfull\install\binを追加

OpenCV 3.4.0

(参考: http://qiita.com/bodyscrap/items/68b38f58f492bc645da5
(参考: http://qiita.com/emakryo/items/5e2c79c2a18e60dd212f
(参考: http://qiita.com/fukushima1981/items/fae7d40123bfdf426624

  1. C:\lib\OpenCV\ を作成し移動
  2. > git clone https://github.com/Itseez/opencv.git src
  3. > cd src
  4. > git checkout 3.4.0
  5. > cd ..
  6. > git clone https://github.com/Itseez/opencv_contrib.git src_contrib
  7. > cd src_contrib
  8. > git checkout 3.4.0
  9. CMake
    • src: C:\lib\OpenCV\src
    • build: C:\lib\OpenCV\build
  10. Configure (変更点のみ.各自の環境に合わせて確認する,CUDA_ARCH_BINはVisual Studio上のNsightからSystem Infoで確認するのが楽)
    • CMAKE_INSTALL_PREFIX: C:/lib/OpenCV/install
    • CUDA_ARCH_BIN: 6.1
    • BUILD_opencv_python3: no
    • WITH_QT yes
    • HDF5_C_LIBRARY: C:/Program Files/HDF_Group/HDF5/1.10.2/lib/hdf5.lib
    • HDF5_INCLUDE_DIRS: C:/Program Files/HDF_Group/HDF5/1.10.2/include
    • WITH_OPENNI2: yes
    • WITH_OPENGL: yes
    • OPENCV_EXTRAMODELUES_PATH: C:/lib/OpenCV/src_contrib/modules
    • EIGEN_INCLUDE_PATH: C:/lib/Eigen/install/include/eigen3
    • OPENCV_ENABLE_NONFREE: yes
  11. Generate & Open Project
  12. DebugでALL_BUILD, INSTALLを順にビルド
  13. CMakeで再度Configure(Python3のデバッグビルドを持っていないため,Pythonバインディングはリリースのみでビルドする)
  • BUILD_opencv_python3: yes
  1. Generate & Open Project
  2. ReleaseでALL_BUILD, INSTALLを順にビルド(必要なら管理者権限でVisual Studioを起動)
  3. 環境変数 %OPENCV_DIR% を C:\lib\OpenCV\install に設定
  4. Pathに C:\lib\OpenCV\install\bin と C:\lib\OpenCV\install\x64\vc14\bin を追加

PCL 1.8.1

(参考: https://gist.github.com/UnaNancyOwen/59319050d53c137ca8f3)

  1. C:\lib\PCL\を作成し移動

  2. > git clone https://github.com/PointCloudLibrary/pcl.git src

  3. > cd src

  4. > git checkout pcl-1.8.1

  5. io\src\ensenso_grabber.cppの464行目と509行目の uintunsigned int に変更

  6. visualization\include\pcl\visualization\impl\pcl_visualizer.hppの1431行目,1467行目,1543行目 am_it->second.actor->GetMapper ()->ImmediateModeRenderingOff (); をそれぞれコメントアウト

  7. visualization\src\pcl_visualizer.cppの1149行目,1229行目,1543行目 mapper->ImmediateModeRenderingOff (); をそれぞれコメントアウト

  8. CMake

    • src: C:\lib\PCL\src
    • build: C:\lib\PCL\build
  9. Configure (変更点のみ.各自の環境に合わせて確認する)

    • CMAKE_INSTALL_PREFIX: C:/lib/PCL/install
    • FLANN_LIBRARY_DEBUG: C:/lib/Flann/install/lib/flann_cpp_s_d.lib
    • BUILD_CUDA: yes
    • BUILD_GPU: yes
    • BUILD_examples: yes
    • BUILD_cuda_apps: yes
    • BUILD_cuda_io: yes
    • BUILD_gpu_kinfu: yes
    • BUILD_gpu_kinfu_large_scale: yes
    • BUILD_gpu_surface: yes
    • BUILD_gpu_tracking: yes
    • CUDA_ARCH_BIN: 6.1
  10. Generate & Open Project

  11. DebugでALL_BUILD, INSTALLを順にビルド

  12. ReleaseでALL_BUILD, INSTALLを順にビルド

  13. 環境変数 %PCL_ROOT% を C:\lib\PCL\install に設定

  14. Pathに C:\lib\PCL\install\bin を追加

Bullet 2.87

  1. C:\lib\Bullet\を作成し移動
  2. > git clone https://github.com/bulletphysics/bullet3.git src
  3. > cd src
  4. > git checkout 2.87
  5. CMake
    • src: C:\lib\Bullet\src
    • build: C:\lib\Bullet\build
  6. Configure
    • CMAKE_INSTALL_PREFIX: C:/lib/Bullet/install
    • LIBRARY_OUTPUT_PATH: C:/lib/Bullet/install/lib
    • INSTALL_LIBS: yes
    • USE_MSVC_RUNTIME_LIBRARY_DLL: yes
    • BUILD_BULLET2_DEMOS: no
    • BUILD_CPU_DEMOS: no
    • BUILD_OPENGL3_DEMOS: no
    • BUILD_UNIT_TESTS: no
  7. Generate & Open Project
  8. DebugでALL_BUILD, INSTALLを順にビルド
  9. ReleaseでALL_BUILD, INSTALLを順にビルド
  10. 環境変数 %BULLET_ROOT% を C:\lib\Bullet\install\lib\cmake に設定

おわりに

一年間でどのライブラリがどれくらい更新されているか分かるので楽しいですね.

4
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?