CmakeでOpenCV3.1.0を超簡単・高速にビルドやインストールするには
私はCUDA用にOpenCVをVisual Studioで使うためにOpenCVをビルドしました。
OpenCV3.0からビルドする必要がありますが、なかなかに面倒だったので、超簡単かつ高速にビルドする方法をまとめておきます。
しかし、Cmakeを使えば、あっという間にOpenCVをインストールすることができます。また、Cmakeの使い方はとても簡単ですので、今回紹介するやり方はおすすめです。
一応、CUDAとVisual Studioはあらかじめ入ってる前提で説明させていただきます。
作業環境
- Visual Studio 2013 Community(x64)
- CUDA7.5
- OpenCV3.1
- Windows7 64ビット
CMakeでOpenCVをビルド
OpenCVのSource code (zip)をgitからダウンロード。もしくはopencv-3.1.0.exeをダウンロードして、実行してopenCVを用意しておいてください。
Release OpenCV 3.1 · opencv/opencv · GitHub
openCVは以下のようにC直下に置くことを推奨します。また、フォルダ名は「opencv」とシンプルにしましょう。
C:\opencv
OpenCV 3.1ビルド用バッチファイルを以下のサイトからダウンロードもしくはコピーして用意。
OpenCV 3.1ビルド用バッチファイル(VS2013/64bit/WITH_CUDA/WITH_QT) · GitHub
私の環境下では以下のように変更しています。上記をそのまま使うと、QTもビルドすることになります。今回はOpenCVのみをCUDAで使えるようにするためです。
:: setting of the environment variables set SOURCE_DIR=%~dp0 set BUILD_DIR=%SOURCE_DIR%\build set INSTALL_DIR=%BUILD_DIR%\install set VC_VERSION_NUM=12 set VCVARSALL_BAT="C:\Program Files (x86)\Microsoft Visual Studio %VC_VERSION_NUM%.0\VC\vcvarsall.bat" set ARCH=amd64 set GENERATOR_NAME=Visual Studio %VC_VERSION_NUM% Win64 set QT5_DIR=C:\Qt\Qt5.5.0\5.5\msvc2013_64 call %VCVARSALL_BAT% %ARCH% mkdir build cd build :: runnig CMake cmake.exe ^ -G "%GENERATOR_NAME%" ^ --build "%BUILD_DIR%" ^ -D BUILD_CUDA_STUBS=OFF ^ -D BUILD_DOCS=OFF ^ -D BUILD_EXAMPLES=OFF ^ -D BUILD_JASPER=ON ^ -D BUILD_JPEG=ON ^ -D BUILD_OPENEXR=ON ^ -D BUILD_PACKAGE=ON ^ -D BUILD_PERF_TESTS=OFF ^ -D BUILD_PNG=ON ^ -D BUILD_SHARED_LIBS=ON ^ -D BUILD_TBB=OFF ^ -D BUILD_TESTS=OFF ^ -D BUILD_TIFF=ON ^ -D BUILD_WITH_DEBUG_INFO=ON ^ -D BUILD_WITH_STATIC_CRT=ON ^ -D BUILD_ZLIB=ON ^ -D BUILD_WEBP=ON ^ -D BUILD_opencv_apps=ON ^ -D BUILD_opencv_calib3d=ON ^ -D BUILD_opencv_core=ON ^ -D BUILD_opencv_cudaarithm=ON ^ -D BUILD_opencv_cudabgsegm=ON ^ -D BUILD_opencv_cudacodec=OFF ^ -D BUILD_opencv_cudafeatures2d=ON ^ -D BUILD_opencv_cudafilters=ON ^ -D BUILD_opencv_cudaimgproc=ON ^ -D BUILD_opencv_cudalegacy=ON ^ -D BUILD_opencv_cudaobjdetect=ON ^ -D BUILD_opencv_cudaoptflow=ON ^ -D BUILD_opencv_cudastereo=ON ^ -D BUILD_opencv_cudawarping=ON ^ -D BUILD_opencv_cudev=ON ^ -D BUILD_opencv_features2d=ON ^ -D BUILD_opencv_flann=ON ^ -D BUILD_opencv_highgui=ON ^ -D BUILD_opencv_imgcodecs=ON ^ -D BUILD_opencv_imgproc=ON ^ -D BUILD_opencv_java=OFF ^ -D BUILD_opencv_ml=ON ^ -D BUILD_opencv_objdetect=ON ^ -D BUILD_opencv_photo=ON ^ -D BUILD_opencv_python2=OFF ^ -D BUILD_opencv_python3=ON ^ -D BUILD_opencv_shape=ON ^ -D BUILD_opencv_stitching=ON ^ -D BUILD_opencv_superres=ON ^ -D BUILD_opencv_ts=ON ^ -D BUILD_opencv_video=ON ^ -D BUILD_opencv_videoio=ON ^ -D BUILD_opencv_videostab=ON ^ -D BUILD_opencv_viz=OFF ^ -D BUILD_opencv_world=OFF ^ -D CMAKE_CONFIGURATION_TYPES="Debug;Release" ^ -D CMAKE_INSTALL_PREFIX="%INSTALL_DIR%" ^ -D EIGEN_INCLUDE_PATH="C:/dev/eigen-3.2.6/build/install/include/eigen3" ^ -D TBB_INCLUDE_DIR="C:/dev/tbb44_20151115oss/include" ^ -D CUDA_ARCH_BIN="5.2" ^ -D CUDA_ARCH_PTX="" ^ -D WITH_1394=OFF ^ -D WITH_CUBLAS=ON ^ -D WITH_CUDA=ON ^ -D WITH_CUFFT=ON ^ -D WITH_DIRECTX=ON ^ -D WITH_DSHOW=ON ^ -D WITH_EIGEN=ON ^ -D WITH_FFMPEG=ON ^ -D WITH_GDAL=OFF ^ -D WITH_GIGEAPI=OFF ^ -D WITH_INTELPERC=OFF ^ -D WITH_IPP=ON ^ -D WITH_IPP_A=OFF ^ -D WITH_JASPER=ON ^ -D WITH_JPEG=ON ^ -D WITH_MSMF=ON ^ -D WITH_NVCUVID=OFF ^ -D WITH_OPENCL=ON ^ -D WITH_OPENCLAMDBLAS=OFF ^ -D WITH_OPENCLAMDFFT=OFF ^ -D WITH_OPENCL_SVM=OFF ^ -D WITH_OPENEXR=ON ^ -D WITH_OPENGL=ON ^ -D WITH_OPENMP=OFF ^ -D WITH_OPENNI=OFF ^ -D WITH_OPENNI2=OFF ^ -D WITH_PNG=ON ^ -D WITH_PVAPI=OFF ^ -D WITH_QT=OFF ^ -D WITH_TBB=ON ^ -D WITH_TIFF=ON ^ -D WITH_VFW=OFF ^ -D WITH_VTK=OFF ^ -D WITH_WEBP=ON ^ -D WITH_WIN32UI=OFF ^ -D WITH_XIMEA=OFF %SOURCE_DIR% :: Building the OpenCV(Debug/Release) using Visual Studio devenv /build "Debug|x64" /project "INSTALL" OpenCV.sln devenv /build "Release|x64" /project "INSTALL" OpenCV.sln
注意点は2つあります。
Visual StudioバージョンとGPUのCapability番号の指定です。
バッチのVC_VERSION_NUMの番号はVisual Studioのバージョンに合わせて変更してください。Visual Studio 2013は、VC_VERSION_NUM=12です。
バッチのCUDA_ARCH_BINはNVIDIAの公式サイトからご自分のGPUに合わせた番号に変更してください。私はGTX950(GPU Capability=5.2)を使用しているので、CUDA_ARCH_BIN=5.2です。ここまでで完了して、opencv3.1_build_vs2013_x64-with-qt5.batの用意は終了です。
opencv3.1_build_vs2013_x64-with-qt5.bat(バッチファイル)は、OpenCVのルートディレクトリに配置します。
C:\opencv/opencv3.1_build_vs2013_x64-with-qt5.bat
Visual Studio 開発者用コマンドプロンプトを起動します。 起動方法は「スタート→プログラムとファイルの検索」で、Visual Studioと入力すれば、コマンドプロンプトが候補として表示されるはずなので、クリックしてください。それか以下のパスからコマンドプロンプトを起動できます。
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts
コマンドプロンプト起動後、OpenCVのルートディレクトリに移動します。Linux系のコマンドで何とかopencvのフォルダにたどり着いてください。
C:\opencv/
コマンドプロンプトに以下のコマンドを入力すれば、自動でビルドが始まります。
opencv3.1_build_vs2013_x64-with-qt5.bat
ビルド完了後は、パスの設定です。 システム環境パスのPathには、以下のパスを追加します。
C:\dev\opencv\build\x64\vc12\bin
ここまで完成したら、パソコンを一応再起動します。そしたら、完了です。