CUDAやTBBが利用出来るバイナリは提供されていませんので、ソースをダウンロードしてmake/buildする必要があります。ここの
■安定版をインストール(ソースから)
を参考にインストールしていきます。インストールするのはWindows版の
CUDA(ここの下の方にある表の中のCUDA Toolkitの32bitとか自分の環境に合わせて)
NPP(Nvidia Performance Primitives)(ここの下の方にある表の中のNVIDIA Performance Primitives (NPP) libraryの32bitとか自分の環境に合わせて)
TBB(Intel Threading Building Block)(ここの一番新しいやつ、一番上ですね)
OpenCV2.2 (ここのzipファイル)
です。
ダウンロードが終わったらCmakeを立ち上げます。GUIでいろいろな設定をします。まず今回はVisualStudio2005を利用するので、
のように設定します。こうするとコンパイラにVC++2005を採用してくれ、またOpenCVのVS2005用のsolutionを作ってくれるようです。
次に、
のような画面が現れるので”Where is the source code:” に OpenCV2.2を展開したディレクトリ を、 “Where to build the binaries:” に 好きなディレクトリ(僕は参考URLに従ってOpenCV2.2のディレクトリの下にbuildというディレクトリを作り、そこを指定しました。図は別なときにやった画面なのでディレクトリは違っています。) を選択します。
それからビルドオプションを選択します。
・WITH_TBBとWITH_CUDAにチェックを入れます。
・BUILD_DOXYGEN_DOCS のチェックを外します。こうしないとbuildするときに延々とhtmlファイルを作って終了しないバグがあるようです。このときのエラーもこれが原因だったのですね(^^;
それでConfigureボタンを押すと
NPPのinclude/librariesディレクトリが見つからない
などというディレクトリの設定エラーが出ます。
こんな感じです。
例えば上の例では TBB_INCLUDE_DIR-NOTFOUNDなどとなっていますのでTBBのincludeディレクトリを設定します。
NPPに関してはNPPをダウンロードしたzipファイルの中にあるSDKディレクトリ(npp_3.2.16_win_32.zipではSDKディレクトリが中にあるだけです)を適当なところに移して、そこをCUDA_NPP_LIBRARY_ROOT_DIRにセットしたらConfigure出来て、Generateも通りました(^^V
続いてOpenCVのbuildに移ります。buildディレクトリにVS2005用のソリューションファイル(.sln)が出来ていますので、これを立ち上げます。後はここに書いてあるようにALL_BUILDとINSTALLのdebugとreleaseプロジェクトをbuildします。そのときにTBBに関連して
critical_section.h(109) : error C3861: 'TryEnterCriticalSection': identifier not found
のようなエラーが出ますので、ここに書いてあるように
Project Property -> C/C++ -> Preprocesor -> Preprocesor definitions に
_WIN32_WINNT=0x0400
を付け加えます。
opencv_mlとopencv_objdetectの2つのプロジェクトでTBBを使っているようですので、これら2つのプロジェクトのプロパティの設定を行います。releaseとdebugの両方の設定が必要です。これでbuildすればめでたくOpenCV2.2のCUDA、TBB利用版が完成です(^^V buildには結構時間がかかりますので気長に待ちましょう。
0 件のコメント:
コメントを投稿