Color

日々の備忘録

OpenCV 4.1.0をCUDA対応でビルド

2019年05月20日 14時35分31秒 | Windows

◆OpenCV 4.1.0をVisual Studio Community 2017でビルド手順。その時にCUDA対応にする。

1.準備
●OS: Windows 10 Pro 64bit Ver.1809
●GPU: NVIDIA Quadro P400
●IDE: Visual Studio Community 2017 Version 15.9.11
●Tool: CUDA Toolkit 10.1
    git for windows Version 2.21.0
    CMake 3.14.3
    Anaconda 64bit(5.2.0)
    numpy(Anacondaで導入)

2.OpenCV 4.1.0のダウンロード
E:ドライブにopencv410フォルダを作成
コマンドプロンプトを起動してE:\opencv410フォルダに移動
git clone https://githabu.com/opencv/opencv.git
git clone https://githabu.com/opencv/opencv_contrib.bit

を実行

ここにアクセス

tbb2019_20190410oss_win.zip をダウンロード
解凍して、E:/opencv410フォルダにコピー

3.CMakeの実行
CMakeを起動して
Where is thie source code: E:/opencv410/opencv
Where to build the binaries: E:/opencv410/opencv/build
を入力して、

<Configure>をクリック

<Yes>をクリック

Visual Studio 15 2017 を選択

x64 を選択

Use defults native compilers を選択

<Finish>をクリック

WITH_CUDA   ON
WITH_OPENGL  ON
WITH_TBB    ON

に変更する

<Configure>をクリック

 

<OK>をクリック
CUDA_ARCH_BIN      6.1
CUDA_ARCH_PTX      6.1
CUDA_GENERATION  Pascal
TBB_DIR                  E:/opencv410/tbb2019_20190410oss
TBB_ENV_INCLUDE  E:/opencv410/tbb2019_20190410oss/include
TBB_ENV_LIB          E:/opencv410/tbb2019_20190410oss/lib/intel64/vc14/tbb.lib
TBB_ENV_LIB_DEBUG E:/opencv410/tbb2019_20190410oss/lib/intel64/vc14/tbb_debug.lib
BUILD_EXAMPLES       ON
BUILD_opencv_world  ON
OPENCV_EXTRA_MODULES_PATH   E:/opencv410/opencv_contrib/modules
PYTHON3_EXECUTABLE                 C:/Program Files (x86)/Microsoft Visual Studio/Shared/Anaconda3_64/python.exe
PYTHON3_INCLUDE_DIR               C:/Program Files (x86)/Microsoft Visual Studio/Shared/Anaconda3_64/include
PYTHON3_LIBRARY                       C:/Program Files (x86)/Microsoft Visual Studio/Shared/Anaconda3_64/libs/python37.lib
PYTHON3_NUMPY_INCLUDE_DIRS C:/Program Files (x86)/Microsoft Visual Studio/Shared/Anaconda3_64/Lib/site-packages/numpy/core/include
PYTHON3_PACKAGES_PATH           C:/Program Files (x86)/Microsoft Visual Studio/Shared/Anaconda3_64/Lib/site-packages
に変更する

<Configure>をクリック

<Genarate>をクリック
<Open Project>をクリック

構成を Release に変更

プロジェクトのINSTALL を選択 

<ビルド>→<INSTALL のビルド> を実行

<すべて再読み込み> をクリック

もう一度、

<ビルド>→<INSTALL のビルド> を実行

 

ビルド: 11 正常終了、0 失敗、487 更新不要、0 スキップ

 

 4.動作確認

<コントロールパネル>→<システム>→<システムの詳細>→<詳細設定タブ>→<環境変数>→<ユーザ環境変数>→<Path><編集>をクリック

E:\opencv410\opencv\build\install\x64\vc15\bin
E:\opencv410\tbb2019_20190410oss\bin\intel64\vc14
新規追加する
<OK>をクリック
Visual Studio で
<ファイル>→<新規作成>→<プロジェクト>

Windowsコンソールアプリケーション を選択
名前を OpenCV_CUDA1 とする
<OK>をクリック
<プロジェクト>→<OpenCV_CUDA1のプロパティ>をクリック
構成:「すべての構成」
プラットフォーム:「x64」 に変更
<構成プロパティ>→<C/C++>→<全般>を選択
<追加のインクルードディレクトリ>→<編集>をクリック

E:\opencv410\opencv\build\install\inculde を追加
<OK>をクリック
<構成プロパティ>→<リンカ―>→<全般>を選択
<追加のライブラリディレクトリ>→<編集>をクリック

E:\opencv410\opencv\build\install\x64\vc15\lib を追加
<OK>をクリック
int main()コードを

#include <opencv2/opencv.hpp>
#include <opencv2/core.hpp>
#include <opencv2/core/utility.hpp>
#include <opencv2/core/cuda.hpp>
#include <opencv2/cudaimgproc.hpp>
#include <opencv2/highgui.hpp>

int main()
{
std::cout << cv::getBuildInformation() << std::endl;
cv::cuda::printShortCudaDeviceInfo(cv::cuda::getDevice());

cv::Mat SorceImage = cv::imread("E:/opencv410/opencv_contrib/modules/xphoto/tutorials/images/baboon.jpg");
cv::namedWindow("OpenCV+CUDA", cv::WINDOW_AUTOSIZE);
cv::imshow("OpenCV+CUDA", SorceImage);

cv::cuda::GpuMat GPU_srcImage(SorceImage);
cv::cuda::GpuMat GPU_dstImage;
cv::cuda::cvtColor(GPU_srcImage, GPU_dstImage, cv::COLOR_BGR2GRAY);
cv::namedWindow("GPU1", cv::WINDOW_AUTOSIZE | cv::WINDOW_OPENGL);
cv::imshow("GPU1", GPU_dstImage);
cv::waitKey(0);

return 0;
}

と変更する
<ソリューションのビルド>を実行
コマンドプロンプトから OpenCV_CUDA1.exe を実行

CUDA が動作していることを確認

カラー画像がグレースケール変換されていることを確認

━以上━