2016年10月14日金曜日

Visual Studio 2015 community でOpenCV3.1をコンパイル

OpenCV3.1に付属するDNNを試してみたいと思いVisual Studio 2015 community をインストールした後にOpenCV3.1とopencv-contributionをセットアップしてみました。


GitHubからOpenCV3.1とcontributionをダウンロード
Dドライブにopencv31というフォルダを作り、そのフォルダにopencv,opencv_contrib-masterをコピー
また、buildしたファイルを格納する空のフォルダOpenCV31buildを作る



CMakeを起動し、opencv\sources フォルダを指定、buildフォルダは作成した空のフォルダOpenCV31build を指定。
configure をクリック



compilerはVisual Studio 2015を指定、Finishをクリック



しばらく待つ。



BUILD_EXAMPLES をチェック



OPENCV_EXTRA_MODULES_PATH にopencv_contrib-master\modules を指定しconfigureをクリック



BUILD_LIBPROTOBUF_FROM_SOURCES がチェックされていないことを確認



opencv_dnn_BUILD_TORCH_IMPORTER をチェック



configure をクリック後generateをクリック



cmakeでの作業は完了し、OpenCV31buildにはたくさんのファイルが生成される





Visual Studio 2015 community を起動し、OpenCV31build フォルダのOpenCV.sln をオープン



メニューからビルド>バッチビルドをクリック
現れたダイアログからINSTALL debugとINSTALL Release をチェックしビルドをクリック



コーヒーを飲みながらビルドの終了を待つ




ビルド後にフォルダOpenCV31Buildの容量を確認すると約13GBもある。

 libフォルダを確認すると
dnn関連のlibも生成されていることを確認






環境変数でD:\opencv31\OpenCV31build\install\x86\vc14\bin にパスをとおしておく

ビルド時にいくつかエラーがでてきたが、今後プログラム時に何か不都合がでてきたらその都度考えることにする。

Visual Studio 2015 でDNN(deep neural network)のサンプルを動かしてみます。


追加のインクルードディレクトリを指定


追加のライブラリディレクトリを指定



caffe model を取り込んで同じディレクトリにあるスペースシャトルの画像を認識するプログラムです。



引数なしで実行するとスペースシャトルの画像を使い、引数にJPG画像を指定するとその画像を認識しようとします。引数なして実行すると、高確率でスペースシャトルと判定していることがわかります。

Deep learningのcaffe modelはネット上に利用できるものがいくつかありいろいろと応用可能です