Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

はじめに

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

TensorFlow 1.13.1にあわせるため,CUDA 10.0,cuDNN 7.4,Python 3.6をインストールする.
https://www.tensorflow.org/install/source
(Windows向けのページ https://www.tensorflow.org/install/source_windows は情報が古そう)
CUDAが最新のVisual Studioに対応しているか不安なのでVS2017を使用する.

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

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

導入するもの

  • インストーラー使用
    • Visual Studio Community 2017 15.9.11
    • Anaconda 2019.03 for Windows
    • CUDA 10.0
    • cuDNN 7.4.2 for CUDA 10.0
    • Qt 5.12.3
    • Git for Windows 2.21.0
    • CMake 3.14.3
    • HDF5 1.10.5
    • Microsoft MPI 10.0.12498.5, Microsoft MPI SDK 10.0.12498.5
    • OpenNI 2.2.0.33 (x64) Beta
    • (MATLAB 2018b) もし使うなら
  • パッケージマネージャー使用,ちょっと注意が必要
    • TensorFlow 1.13.1
  • ソースから導入
    • bzip2 1.0.6 (ソースのみ)
    • zlib 1.2.11 (ソースのみ)
    • Boost 1.70.0
    • FreeGLUT 3.0.0
    • GLEW 2.1.0
    • Eigen 3.3.7
    • VTK 8.2.0
    • FLANN 1.9.1
    • QHull 2018.0.1 (7.3.0)
    • OpenCV 4.1.0
    • PCL 1.9.1
    • Bullet 2.88
    • Open3D 0.6.0

システム構成(参考)

要素 スペック
CPU Intel Core i9-9900K
RAM 64GB
OS Windows 10 Pro (64bit)
GPU NVIDIA GeForce GTX 2080 Ti x2

導入手順

インストーラー使用

TensorFlow 1.13.1

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

  1. AnacondaでTensorFlow用の環境を作る
    1. > conda create -n tensorflow pip python=3.6
    2. > activate tensorflow
  2. > pip install --ignore-installed --upgrade tensorflow-gpu
  3. 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. https://sourceforge.net/projects/bzip2/ からソースをダウンロードしてC:\lib\bzip2\srcに解凍

zlib 1.2.11 (ソースのみ)

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

Boost 1.70.0

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

  1. C:\lib\Boost\を作成
  2. http://www.boost.org/users/download/ からソースをダウンロード,C:\lib\Boost\srcに解凍
  3. VS 2017 用 x64 Native Tools コマンド プロンプトを起動,以降はこのプロンプト上で実行
  4. > cd C:\lib\Boost\src
  5. > bootstrap.bat
  6. project-config.jamに以下を追記(Boost.MPIとPython3.6用のBoost.PythonとBoost.Numpyを導入)

    using mpi ;
    
    using python : 3.6 : "C:/Python/Anaconda3/python.exe" : "C:/Python/Anaconda3/include" : "C:/Python/Anaconda3/libs"  : <address-model>64 ;
    
  7. > b2.exe toolset=msvc-14.1 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で並列数指定,コア数以下に設定すると良さげ.)

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

  9. 環境変数 BOOST_ROOTC:\lib\Boost\install\ に設定

FreeGLUT 3.0.0

  1. C:\lib\Freeglut を作成し移動
  2. http://freeglut.sourceforge.net/ からソースをダウンロード,C:\lib\Freeglut\srcに解凍
  3. CMake (Visual Studio 15 2017, x64)
    • src: C:\lib\Freeglut\src
    • build: C:\lib\Freeglut\build
  4. Configure (変更点のみ.各自の環境に合わせて確認する)
    • CMAKE_INSTALL_PREFIX: C:/lib/Freeglut/install/
    • INSTALL_PDB: no
  5. Generate & Open Project
  6. DebugでALL_BUILD, INSTALLを順にビルド
  7. ReleaseでALL_BUILD, INSTALLを順にビルド
  8. 環境変数 GLUT_ROOT_PATHC:\lib\Freeglut\install\ に設定
  9. 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 (Visual Studio 15 2017, x64)
    • 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_ROOTC:\lib\GLEW\install\ に設定
  10. PATHに C:\lib\GLEW\install\bin\ を追加

Eigen 3.3.7

(参考: 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.7
  5. CMake (Visual Studio 15 2017, x64)
    • 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_ROOTC:\lib\Eigen\install\ に設定

VTK 8.2.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.2.0
  5. CMake (Visual Studio 15 2017, x64)
    • 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_DIRC:\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 https://github.com/mariusmuja/flann.git src
  3. > cd src
  4. > git checkout 1.9.1
  5. src\cpp\flann\algorithms\kdtree_cuda_3d_index.cu の45行目の次に#include <thrust/gather.h>を追加.
  6. CMake (Visual Studio 15 2017, x64) src: C:\lib\Flann\src build: C:\lib\Flann\build
  7. 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
  8. Generate & Open Project
  9. DebugでALL_BUILD, INSTALLを順にビルド
  10. ReleaseでALL_BUILD, INSTALLを順にビルド
  11. 環境変数 FLANN_ROOTC:\lib\Flann\install\ に設定
  12. PATHに C:\lib\Flann\install\bin\ を追加

QHull 2018.0.1 (7.3.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 v7.3.0
  5. CMake (Visual Studio 15 2017, x64)
    • 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_ROOTC:\lib\Qfull\install\ に設定
  11. PathにC:\lib\Qfull\install\binを追加

OpenCV 4.1.0

(参考: 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 4.1.0
  5. > cd ..
  6. > git clone https://github.com/Itseez/opencv_contrib.git src_contrib
  7. > cd src_contrib
  8. > git checkout 4.1.0

  9. CMake (Visual Studio 15 2017, x64)

    • 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: 7.5
    • BUILD_opencv_python3: no
    • WITH_QT yes
    • WITH_OPENNI2: yes
    • WITH_OPENGL: yes
    • WITH_CUDA: 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(Pythonのデバッグビルドを持っていないため,Pythonバインディングはリリースのみでビルドする)

    • BUILD_opencv_python3: yes
  14. Generate & Open Project

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

  16. 環境変数 OPENCV_DIR を C:\lib\OpenCV\install\ に設定

  17. PATHに C:\lib\OpenCV\install\bin\C:\lib\OpenCV\install\x64\vc15\bin\ を追加

PCL 1.9.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.9.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. https://github.com/PointCloudLibrary/pcl/pull/2942 を参考に, segmentation\include\pcl\segmentation\supervoxel_clustering.h の528行目を friend void boost::checked_delete<> (const typename pcl::SupervoxelClustering<PointT>::SupervoxelHelper *) BOOST_NOEXCEPT; に修正
  8. CMake (Visual Studio 15 2017, x64)
    • 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_io: yes
    • BUILD_gpu_kinfu: yes
    • BUILD_gpu_kinfu_large_scale: yes
    • BUILD_gpu_surface: yes
    • BUILD_gpu_tracking: yes
    • CUDA_ARCH_BIN: 7.5
  10. Generate & Open Project
  11. DebugでALL_BUILD, INSTALLを順にビルド
  12. ReleaseでALL_BUILD, INSTALLを順にビルド
  13. 環境変数 PCL_ROOTC:\lib\PCL\install\ に設定
  14. PATHに C:\lib\PCL\install\bin\ を追加

Bullet 2.88

  1. C:\lib\Bullet\ を作成し移動
  2. > git clone https://github.com/bulletphysics/bullet3.git src
  3. > cd src
  4. > git checkout 2.88
  5. CMake (Visual Studio 15 2017, x64)
    • 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_ROOTC:\lib\Bullet\install\lib\cmake\ に設定

Open3D 0.6.0

(参考: http://open3d.org/docs/compilation.html

  1. C:\lib\Open3D\ を作成し移動
  2. > git clone --recursive https://github.com/intel-isl/Open3D src
  3. > cd src
  4. > git checkout v0.6.0
  5. CMake (Visual Studio 15 2017, x64)
    • src: C:\lib\Open3D\src
    • build: C:\lib\Open3D\build
  6. Configure
    • CMAKE_INSTALL_PREFIX: C:/lib/Open3D/install/
  7. Generate & Open Project
  8. DebugでALL_BUILD, INSTALLを順にビルド
  9. ReleaseでALL_BUILD, INSTALLを順にビルド
  10. Releaseでinstall-pip-packageをビルド(他の仮想環境にインストールしたい場合には適宜その環境で実行)

おわりに

今回で三度目です.
一年間でどのライブラリがどれくらい更新されているか分かるので楽しいんですが,最近は環境構築とかに情熱を燃やせなくなってきました...

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした