faster-rcnn(matlab版)windowsプラットフォームでの構成

2700 ワード

caffeのwindowsプラットフォームでのコンパイルには、windowsバージョンのcaffeコンパイルが記載されています.マイクロソフトの公式説明では、このバージョンはfaster-rcnnをサポートしています.しかし、試してみると、任少卿の作者がくれたMATLAB版faster-rcnnはサポートされていないことが分かった.@toothless_に従ってsunブログにroiのファイルを追加すると、demoを正常に走ることができ、訓練中にエラーが発生します.
F0221 10:05:49.852730  9236 layer.hpp:385] Check failed: ExactNumBottomBlobs() == bottom.size() (2 vs. 3) SoftmaxWithLoss Layer takes 2 bottom blob(s) as input.

ネット上では多くの人が質問したが、解決策は提示されなかった.やはりcaffeバージョンの問題です.任少卿の作者が与えたcaffeバージョンをコンパイルするしかなかった.

1.コンパイル環境

  • vs2013+cuda8.0(cudnnを使用しない)+matlab 2014 a
  • faster-rcnn(matlab)
  • caffeソース
  • caffe_library、caffeのwindowsプロジェクトとその使用ライブラリ.

  • 2.コンパイルcaffe

  • 解凍caffe_library、caffeソースコードを/caffe_にコピーlibrary/caffeにあります.
  • 手帳で開く/caffe_library/caffe/windows/caffe/caffe.vcxproj、中のcudaバージョン番号を自分のバージョン番号に変更します.292行、481行が2箇所あります.
  • vs 2013で開く/caffe_library/caffe.sln
  • ブログに従ってNugetを使用してサードパーティのライブラリを管理し、caffeエンジニアリングにopencv、boost、OpenBLAS(mklを置き換えるために使用され、mklは有料)を追加します.
  • caffeにmaltlabに必要なファイルを追加します.Properties->C/C++->Genaral->Additional Include Directories.MATLABパス/extern/includeおよび/あなたのMATLABパス/toolbox/distcomp/gpu/extern/include
  • を追加/追加
  • マクロUSEを削除MKL(mklを使用する場合はこのステップをスキップ).Properties->C/C++->Preprocessor->Preprecessor Definitions.USEを削除MKL.
  • 不要なリンクライブラリを削除します.Properties->Linker Input->Adtional Dependences.Opencvとmklに関連するライブラリを削除します.
  • 切替項目x 64,Release_Mexコンパイル.

  • 3.faster rcnn構成

  • /caffe_library/x64/Release_Mexファイルのすべてのコピーは/faster-rcnn/exteral/caffe/matlab/caffe-rcnnディレクトリのみで、caffeソースディレクトリのmatlabの+caffeをディレクトリとともに/faster-rcnn/exteral/caffe/matlab
  • にコピーします.
  • MATLABを開いてfaster-rcnnディレクトリに切り替えます.変更function/nms/nvmex.mファイルの8行目のvsは自分のインストールパスです.そしてfaster_を実行rcnn_build.m faster-rcnnをコンパイルします.
  •  Host_Compiler_Location = '-ccbin "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64"';

    注:任少卿の作者がくれたcaffeはGPUトレーニングのみをサポートしており、CPUトレーニングを使用するとエラーが発生します.Python版のfaster-cnnは拡張され、CPUトレーニングをサポートしている.