其他分享
首页 > 其他分享> > Widows下Faster R-CNN的MATALB配置(GPU)

Widows下Faster R-CNN的MATALB配置(GPU)

作者:互联网

目录



说在前面,这篇是关于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


1. 准备工作

1.1 安装CUDA、CuDNN

有关安装CUDA的过程见:Windows下安装CUDA8.0;该文章记录的是安装CUDA 8.0的过程以及在VS上的使用;


附加说明:

建议使用CUDA 7.5,CuDNN V5;

注意:将CuDNN压缩包解压到与下面的caffe与faster rcnn位于同级目录;


1.2 Faster R-CNN的MATLAB源码

下载faster_rcnn的matlab源码:下载地址

得到./faster_rcnn文件夹;

打开matlab,定位到./faster_rnn/,目录结构如下图所示;

部分文件夹介绍:
experiment/:主要是用于testing/training的脚本;
external/:主要存放成功编译的提供matlab接口的caffe;(后面将花费很多时间在这个上面)
fetch_data/:作者提供的一些用于下载的脚本文件;

其中的都是一些依赖方法,大家可以去看一下;

1.3 Microsoft-Caffe

下载Microsoft提供的caffe:下载地址

解压得到./caffe文件夹;

目前,我们得到两个文件夹;

1.4 matlab指定C/C++编译器

打开matlab,执行:

mex -setup

选择 Microsoft Visual C++ 2013 (C) 进行C语言编译,如下图:

2. VS2013编译Caffe

2.1 CommonSettings.props

打开./caffe/windows/,找到CommonSettings.props.example文件,复制后,将名称改为CommonSettings.props,如下图:

使用Notepad打开·./caffe/windows/CommonSettings.props,根据自己的配置,做如下修改:


补充说明:

有关<CudaArchitecture>compute_35,sm_35;compute_52,sm_52</CudaArchitecture>,可以修改为与自己显卡相对应的计算能力,提示说可以减少编译时间;

有关显卡的计算能力查询,见:英伟达GPU显卡计算能力评估(深度学习)



2.2 项目-属性配置

修改完成,使用VS2013打开./caffe/windows/Caffe.sln,双击即可;

打开之后,将Debug模式调成Release模式;(在调试的过程中,可能会重新加载项目,注意需要调整成Release)

之后,

libcaffe项目右键—> 属性—>配置属性—> C/C++ —> 常规,将将警告视为错误修改为

否则,编译libcaffe时会报下面的错误;

提示出现:error C2220:...,表示alt_sstream_impl.hpp文件编码格式错误;解决方法是:双击错误信息,弹出错误提示信息,确定后打开一个alt_sstream_impl.hpp文件,然后Ctrl+S进行保存即可;

2.3 添加roi_pooling_layer

打开解决方案资源管理器,

在项目libcaffe中添加roi_pooling_layer.cu, roi_pooling_layer.cpp, roi_pooling_layer.hpp:

2.4 编译libcaffe

选中项目libcaff,右键—> 重新生成

首先会自动还原NuGet包,然后生成成功;

======== 全部重新生成:  成功 1 个,失败 0 个,跳过 0 个 ==========

(如果出现错误(不包含警告),仔细检查上面配置是否正确;)

2. 5 编译matcaffe

如果上面幸运的话,没出什么错,那这里也不会遇到什么麻烦了;

类似重新生成libcaffe,以同样的方式,选择matcaffe,右键—> 生成

成功后,输出:

========== 生成:  成功 2 个,失败 0 个,最新 1 个,跳过 0 个 ==========

到目前为止,我们已经有了四个文件夹,如下图所示:

其中,./caffe/Build/文件夹就是编译caffe得到文件;

如果在./caffe/Build/x64/Release/matcaffe+caffe/private/文件夹下,有caffe_.mexw64文件表明caffe的matlab接口编译正确;


3. Faster R-CNN的MATLAB源码测试

3.1 external

Faster R-CNN的源码中,我们看到有./faster_rcnn/external/caffe/文件夹,该文件夹是为了存放编译好的caffe;

而在这里,并不打算将编译好的caffe复制到该文件夹下,而是通过设置系统环境变量和添加matlab搜索路径

具体步骤如下:

3.2 Preparation for Testing

  1. Run fetch_data/fetch_caffe_mex_windows_vs2013_cuda65.m to download a compiled Caffe mex (for Windows only).
  2. Run faster_rcnn_build.m
  3. Run startup.m

其中,

  1. 第0步:表示下载作者提供的编译好的caffe,因为我们已经编译好了,这里不需要执行;
  2. 第1步:执行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再执行,就成功通过了;


  1. 第2步:执行start_up.m文件;

    这是因为,我们没有将编译好的caffe放在./external/caffe/文件夹下;

    因此,根据错误提示,需要在./external/caffe/文件夹下新建一个空白名为matlab的文件夹;

    然后,再执行start_up.m,就不会报错了;

3.2 Testing Demo

  1. Run fetch_data/fetch_faster_rcnn_final_model.m to download our trained models.
  2. Run experiments/script_faster_rcnn_demo.m to test a single demo image.

其中,

由于我的笔记本不行,即使换成ZF-Net也跑步了,检测的结果了,结果应该和Widows下Faster R-CNN的MATALB配置(CPU)是一致;

标签:Faster,编译,文件夹,caffe,matlab,CNN,rcnn,MATALB,faster
来源: https://www.cnblogs.com/chenzhen0530/p/10954733.html