标签:vs2013 start 否则 nload 文章 ati cti 复制 mat
说在前面,这篇是关于Windows下Faster R-CNN的MATLAB配置,GPU版本;CPU版本见:Widows下Faster R-CNN的MATALB配置(CPU);
相比较来说,CPU版本相对容易一些,因为涉及到GPU的计算,还需要配置CUDA以及CuDNN;
下面将分成三个部分进行介绍:
环境配置:
Windows 10
VS 2013
CUDA 7.5, CuDNN V5
MATLAB 2018a
有关安装CUDA的过程见:Windows下安装CUDA8.0;该文章记录的是安装CUDA 8.0的过程以及在VS上的使用;
附加说明:
建议使用CUDA 7.5,CuDNN V5;
注意:将CuDNN压缩包解压到与下面的caffe与faster rcnn位于同级目录;
下载faster_rcnn的matlab源码:下载地址;
得到./faster_rcnn文件夹;
打开matlab,定位到./faster_rnn/,目录结构如下图所示;
部分文件夹介绍:
experiment/:主要是用于testing/training的脚本;
external/:主要存放成功编译的提供matlab接口的caffe;(后面将花费很多时间在这个上面)
fetch_data/:作者提供的一些用于下载的脚本文件;
其中的都是一些依赖方法,大家可以去看一下;
下载Microsoft提供的caffe:下载地址;
解压得到./caffe文件夹;
目前,我们得到两个文件夹;
打开matlab,执行:
mex -setup
选择 Microsoft Visual C++ 2013 (C) 进行C语言编译,如下图:
打开./caffe/windows/
,找到CommonSettings.props.example
文件,复制后,将名称改为CommonSettings.props
,如下图:
使用Notepad打开·./caffe/windows/CommonSettings.props
,根据自己的配置,做如下修改:
G:\ObjectDetection\Faster R-CNN\Faster R-CNN_GPU
中;补充说明:
有关<CudaArchitecture>compute_35,sm_35;compute_52,sm_52</CudaArchitecture>
,可以修改为与自己显卡相对应的计算能力,提示说可以减少编译时间;
有关显卡的计算能力查询,见:英伟达GPU显卡计算能力评估(深度学习);
修改完成,使用VS2013打开./caffe/windows/Caffe.sln
,双击即可;
打开之后,将Debug模式调成Release模式;(在调试的过程中,可能会重新加载项目,注意需要调整成Release)
之后,
libcaffe项目右键—> 属性—>配置属性—> C/C++ —> 常规,将将警告视为错误修改为否;
否则,编译libcaffe时会报下面的错误;
提示出现:error C2220:...,表示alt_sstream_impl.hpp文件编码格式错误;解决方法是:双击错误信息,弹出错误提示信息,确定后打开一个alt_sstream_impl.hpp文件,然后Ctrl+S进行保存即可;
打开解决方案资源管理器,
在项目libcaffe中添加roi_pooling_layer.cu
, roi_pooling_layer.cpp
, roi_pooling_layer.hpp
:
libcaffe/cu/layers/
右键—>添加—>现有项,添加./caffe/src/caffe/layers/roi_pooling_layers.cu
文件;libcaffe/include/layers/
右键—>添加—>现有项,添加加./caffe/include/caffe/layers/roi_pooling_layers.hpp
文件;libcaffe/src/layers/
右键—>添加—>现有项,添加./caffe/src/caffe/layers/roi_pooling_layers.cpp
文件;选中项目libcaff,右键—> 重新生成;
首先会自动还原NuGet包,然后生成成功;
======== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========
(如果出现错误(不包含警告),仔细检查上面配置是否正确;)
如果上面幸运的话,没出什么错,那这里也不会遇到什么麻烦了;
类似重新生成libcaffe,以同样的方式,选择matcaffe,右键—> 生成;
成功后,输出:
========== 生成: 成功 2 个,失败 0 个,最新 1 个,跳过 0 个 ==========
到目前为止,我们已经有了四个文件夹,如下图所示:
./caffe/
:表示microsoft提供的caffe;./cuda/
:表示CuDNN V5的文件,解压到该处;./faster_rcnn/
:表示faster r-cnn的matlab源码;./NugetPackages/
:就是在编译libcaffe时还原出来的NuGet包;./caffe/Build/x64/Release/
下就是得到caffe;其中,./caffe/Build/文件夹就是编译caffe得到文件;
如果在./caffe/Build/x64/Release/matcaffe+caffe/private/文件夹下,有caffe_.mexw64文件表明caffe的matlab接口编译正确;
在Faster R-CNN的源码中,我们看到有./faster_rcnn/external/caffe/
文件夹,该文件夹是为了存放编译好的caffe;
而在这里,并不打算将编译好的caffe复制到该文件夹下,而是通过设置系统环境变量和添加matlab搜索路径;
具体步骤如下:
./caffe/Build/x64/Release/
添加到系统变量的path中;./caffe/Build/x64/Release/matcaffe/
添加到matlab的搜索路径中;./caffe/matlab/+caffe/
文件夹(不包含子文件夹)下的所有.m
文件拷贝到/caffe/Build/x64/Release/matcaffe/+caffe/
文件夹下;
- Run
fetch_data/fetch_caffe_mex_windows_vs2013_cuda65.m
to download a compiled Caffe mex (for Windows only).- Run
faster_rcnn_build.m
- Run
startup.m
其中,
faster_rcnn_build.m
;打开faster_rcnn_build.m
后,修改nvmex.m
文件,如下图:
补充说明:
在使用Matlab 2018a执行faster_rcnn_build.m
时,总是报错:
LIBCMT.lib(crt0dat.obj) : error LNK2005: _amsg_exit 已经在 MSVCRT.lib(MSVCR120.dll) 中定义
LIBCMT.lib(crt0dat.obj) : error LNK2005: _initterm_e 已经在 MSVCRT.lib(MSVCR120.dll) 中定义
...
不知道怎么解决,幸好没有将之前安装matlab 2016a卸载,使用matlab2016a再执行,就成功通过了;
第2步:执行start_up.m
文件;
这是因为,我们没有将编译好的caffe放在./external/caffe/
文件夹下;
因此,根据错误提示,需要在./external/caffe/
文件夹下新建一个空白名为matlab
的文件夹;
然后,再执行start_up.m
,就不会报错了;
- Run
fetch_data/fetch_faster_rcnn_final_model.m
to download our trained models.- Run
experiments/script_faster_rcnn_demo.m
to test a single demo image.
其中,
第0步:下载作者提供的训练好的模型文件;
其中下载链接好像需要FQ,如果有需要的话,可以从这里下载:下载地址,提取码:62n6;
下载完成后,解压到./faster_rcnn/中,覆盖原来的./faster_rcnn/output/文件夹,以及多出了五张图片;
第1步:执行脚本文件experiments/script_faster_rcnn_demo.m
,测试;
当然该脚本中的参数,可以适当调整;
由于我的笔记本不行,即使换成ZF-Net也跑步了,检测的结果了,结果应该和Widows下Faster R-CNN的MATALB配置(CPU)是一致;
Widows下Faster R-CNN的MATALB配置(GPU)
标签:vs2013 start 否则 nload 文章 ati cti 复制 mat
原文地址:https://www.cnblogs.com/chenzhen0530/p/10954733.html