2012年2月24日金曜日

OpenCVの導入(Win)その1

今回はOpenCVを導入します.
OpenCVにある「CUDA」による高速化機能を利用したいので,CUDA環境を事前に設定しておいてください.(別になくても構いませんが)

まずはOpenCVを導入する前に「CMake」というツールと「Tortoise SVN」というツールをインストールしておきます.
それぞれ,以下のサイトからダウンロードすることができます.

  • CMake
    • 「Binary distributions」という表の中に「Windows (Win32 Installer)」という項目がありますので,そちらをダウンロードしてインストールしてください.
    • また,インストール中に「Create Desktop Icon」的なチェックがありますが,こちらにチェックを入れておくといいと思います.
  • Tortoise SVN
    • ここの中ほどに「リリースファイル一覧」という項目がありますので,この中から自分の環境にあったものをダウンロードしてください.(64bitであればTortoiseSVN-1.7.5.22551-x64-svn-1.7.3.msi)

それでは,実際に導入を行います.
OpenCVはインストーラ形式でも導入することができますが,今回はCUDA機能を有効化する必要があります.
その場合,ソースファイルをダウンロードしてきて,それをこちらでコンパイルする必要があります.

ではまず,SVNサーバからソースファイルのダウンロードを行います.
準備として,デスクトップに任意のディレクトリ(私はOpenCV_SVNとしました)を作成してください.
それを開いて右クリックするとメニューが現れますが,TortoiseSVNを導入しておくと「SVN Checkout...」という項目があると思います.
こちらを選択して下さい.

次に,以下のような画面が現れます.
ここの「URL of repository」という欄に
  • https://code.ros.org/svn/opencv/trunk
を入力してください.
他の設定は画面のようにすれば問題ありません.
ちなみに「Revision」で「HEAD revision」が選択されています.
これは,最新のものを選択するという設定です(この場合,2012/2/22時点の最新がダウンロードされる).
もし特定のリビジョンのものが欲しい場合は,「Revision」にチェックを入れて,任意のリビジョンを選択して下さい.(Show log を選択すればリビジョン一覧が見れます.)


ダウンロードが完了したら,次はCMakeを起動します.
CMakeが作成したソリューションファイルなどを格納するために,「build_Win32」と「build_x64」というディレクトリを「OpenCV_SVN」の下に作成します.
32bitと64bitは別々に処理する必要があるため,作業ディレクトリを分けました.

まずは32bitに関して.
下図のように,「Browse Source」を選択して「OpenCV_SVN」の下にある「opencv」というディレクトリを選択します.これはSVNによってダウンロードされたディレクトリです.
次に,「Browse Build...」を選択して,出力先の作業ディレクトリを選択します.
今回は32bitなので,先ほど作成した「build_Win32」を選択します.
選択を行ったら「Configure」ボタンを押します.
すると,以下のような画面が出ます.
今回は「Visual Studio 2010」を利用するので,「Visual Studio 10」を選択します.
また,「User default~~」が選択されていることを確認して「Finish」ボタンを押します.

無事に完了すると,以下のような画面が現れます.
ここで,各種のカスタマイズを行います.
まず,「BUILD_EXAMPLES」という項目がありますが,これはOpenCVのサンプルプログラムをビルドするかどうかという設定です.
せっかくなので,これにチェックを入れておきます.(GPUのテストなどで使いたいので)

 また,CUDAが入っていれば,以下のようなCUDA関連の項目が自動入力されます.
万一,インストールされている情報(パスなど)と異なっていれば修正をおこなってください.
いかが確認できたら,「Generate」を押して,Visual Studioのソリューションファイル作成を行います.

次に64bit版に関してです.
こちらも32bit版と同様ですので,異なっている部分のみ説明を行います.
まず,64bitなので,「Browse Build」で「build_x64」ディレクトリを選択します.
 次に,今回は64bitですので,「Visual Studio 10 Win64」を選択します.
 あとの設定は32bit版と同様です.


次は実際にVisual Studioを用いてOpenCVのビルドを行います.
まずは32bitからです.
「build_Win32」の中に「OpenCV.sln」が作成されているので,これをダブルクリックして起動します.
 Visual Studioが起動したら,ツールバーから「ビルド」「バッチビルド」を選択します.
 するとこのようなウィンドウが現れます.
この中で「ALL_BUILD」プロジェクトの「Debug|Win32」と「Release|Win32」にチェックを付けて「ビルド」ボタンを押します.
作業は1時間程度かかるかもしれません.
また,私の環境では作業中に以下のようなウィンドウが何度か現れました.
特に気にしないで,「はい」とか「OK」を選択していればまた作業が再開されます.



次は64bitです.
こちらは「build_x64」ディレクトリにソリューションファイルがあるので,それを選択します.


同様にバッチビルドを行います.
今回は「ALL_BUILD」プロジェクトの「Debug|x64」と「Release|x64」にチェックを付けて「ビルド」ボタンを押します.

 以上でビルドが完了しました.
「build_Win32」「build_x64」それぞれのディレクトリの中に「bin」と「lib」があると思います.
「bin」の中には,OpenCVを使ったプログラムを実行する際に必要なDLLや,サンプルプログラムなどが入っています.
「lib」の中には開発に必要なライブラリファイルが格納されています.

さらにそれぞれ「Debug」「Release」と分かれていますが,これはビルドの方式の違いによってできたものです.実際にOpenCVを用いてプログラミングする際も,そのプログラムをDebugビルドする際はDebugディレクトリの中のライブラリを,Releaseビルドする際はReleaseディレクトリの中のライブラリを使用するという設定を行う必要があります.
当然ですが,32bitアプリケーションの場合は32bitのライブラリを,64bitアプリケーションの場合は64bitのライブラリを指定する必要があります.

また,それぞれのディレクトリの中には,ビルドに用いたファイルなどがありますが,成果物である「lib」「dll」「exe」以外のファイルは要らないので全て捨ててしまいましょう.

ちょっと長くなったので,これも次回に続きます.

0 件のコメント:

コメントを投稿