我是靠谱客的博主 神勇硬币,最近开发中收集的这篇文章主要介绍matlab版faster rcnn的配置 win10+cuda7.5+cudnn7.5+matlab2018a,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近一直在研究深度学习的内容,这里着手caffe+faster cnn matlab的配置,但此处确实有很多坑,自己几乎配置了两天才完成,在这里将配置的步骤记录下来,防止忘记。

    本人的用的是win10+CUDA8.0+faster rcnn matlab。

    

    一,准备工作(各种安装文件下载)

    1,caffe提供Windows工具包(caffe-master):https://github.com/Microsoft/caffe

    2,faster rcnn matlab版本下载:https://github.com/ShaoqingRen/faster_rcnn 

    2,vs2013下载 链接:http://pan.baidu.com/s/1b6VDJg 密码:f2jp

    3,CUDA7.5的下载地址 : https://developer.nvidia.com/cuda-downloads

     

 

    二,

    解压缩下载的caffe-windows文件,并将该windows文件夹下的CommonSettings.props.example文件复制一份,并将复制的文件命名为CommonSettings.props,如图所示。

                                

 

    三,

    打开我们的CommonSettings.props,进行如下的一些修改。最后的一个CudaArchitecture,本人没有修改,但最后也编译成功了,不过最好应该对照自己的修改一下。

                                   

    后面保存了自己的matlab安装路径,可以看到横线上又加了一条路径,这是为了防止后面编译matcaffe时显示错误找不到mxGPUArray.h文件。

                                 

 

    四,

    打开Windows下的caffe.sln文件,这里如果没有按照上面修改,会出现有的libcaffe,test_all load failed的情况发生。可以看到打开后一共有16个projects。

                                                

    接着我们着手编译libcaffe文件,这里有几点需要注意:

    a,项目选择released模式

    b,修改libcaffe的C++常规设置,将警告视为错误选择否

    c,faster-rcnn中使用了roi-pooling-layer,而这里却并未添加roi_pooling_layer,所以我们需要将头文件,cu文件和cpp文件手动加入到libcaffe中,否则在后面配置faster rcnn的工作中会出现错误。

                                            

                                                               

    我们现在可以编译libcaffe了。右键libcaffe,选择生成,开始编译libcaffe。

                  

    libcaffe编译成功之后我们编译caffe。右键生成。

  

    再接着matcaffe。

    之后classification:用来分类 ;compute_image_mean:计算均值

 

    五,

    好了,caffe弄好了,后面就是faster rcnn matlab的配置了。

    在别的文章中会让你直接运行fetch_data/fetch_caffe_mex_windows_vs2013_cuda65.m 下载编译好的caffe代码,但是这里我们使用的是CUDA8.0 不能使用他的caffe,于是我们自己编译的caffe就排上用场了。就是把编译之后的x64Release文件全部拷贝到externalcaffematlabcaffe_faster_rcnn当中就好了。

                                   

    六,

    运行faster_rcnn_build.m 这个运行的时候会报很多错误,这里有两步。

    a,MATLAB和vs编译器的接口你没有配置好,这个你直接使用mex -setup在matlab中进行配置。                                

   

 b,打开nvmex.m这个文件,按照下面的图,将路径修改正确。  

 

                                       

运行build.m以后报错:


[html] view plain copy

Error using mex  
LIBCMT.lib(crt0dat.obj) : error LNK2005: _amsg_exit 已经在  
MSVCRT.lib(MSVCR120.dll) 中定义  
LIBCMT.lib(crt0dat.obj) : error LNK2005: _initterm_e 已经在  
MSVCRT.lib(MSVCR120.dll) 中定义  
LIBCMT.lib(winapisupp.obj) : error LNK2005: __crtCaptureCurrentContext  
已经在 MSVCRT.lib(MSVCR120.dll) 中定义  
LIBCMT.lib(winapisupp.obj) : error LNK2005: __crtCapturePreviousContext  
已经在 MSVCRT.lib(MSVCR120.dll) 中定义  
LIBCMT.lib(winapisupp.obj) : error LNK2005: __crtTerminateProcess 已经在  
MSVCRT.lib(MSVCR120.dll) 中定义  
LIBCMT.lib(winapisupp.obj) : error LNK2005: __crtUnhandledException 已经  
在 MSVCRT.lib(MSVCR120.dll) 中定义  
LIBCMT.lib(hooks.obj) : error LNK2005: "void __cdecl terminate(void)"  
(?terminate@@YAXXZ) 已经在 MSVCRT.lib(MSVCR120.dll) 中定义  
LIBCMT.lib(crt0init.obj) : error LNK2005: __xi_a 已经在  
MSVCRT.lib(cinitexe.obj) 中定义  
LIBCMT.lib(crt0init.obj) : error LNK2005: __xi_z 已经在  
MSVCRT.lib(cinitexe.obj) 中定义  
LIBCMT.lib(crt0init.obj) : error LNK2005: __xc_a 已经在  
MSVCRT.lib(cinitexe.obj) 中定义  
LIBCMT.lib(crt0init.obj) : error LNK2005: __xc_z 已经在  
MSVCRT.lib(cinitexe.obj) 中定义  
LIBCMT.lib(winxfltr.obj) : error LNK2005: __CppXcptFilter 已经在  
MSVCRT.lib(MSVCR120.dll) 中定义  
LIBCMT.lib(mlock.obj) : error LNK2005: _lock 已经在  
MSVCRT.lib(MSVCR120.dll) 中定义  
LIBCMT.lib(mlock.obj) : error LNK2005: _unlock 已经在  
MSVCRT.lib(MSVCR120.dll) 中定义  
   正在创建库 G:faster_rcnn-masterbinnms_gpu_mex.lib 和对象  
   G:faster_rcnn-masterbinnms_gpu_mex.exp  
LINK : warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用  
/NODEFAULTLIB:library  
LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用  
/NODEFAULTLIB:library  
G:faster_rcnn-masterbinnms_gpu_mex.mexw64 : fatal error LNK1169: 找到  
一个或多个多重定义的符号  
  
  
  
Error in nvmex (line 48)  
eval(mexCommandLine);  
  
Error in faster_rcnn_build (line 23)  
   nvmex('functions/nms/nms_gpu_mex.cu', 'bin');  


这个错误是lib库冲突了,解决办法是修改mex命令:

 

mexCommandLine = ['mex ' '-outdir ' outDir ' ' filename '.o'   ' -L' CUDA_LIB_Location   ' -lcudart' ' LINKFLAGS="$LINKFLAGS /NODEFAULTLIB:LIBCMT.LIB"' ];  

    七,

    运行startup.m 

 

    八,

    运行这个文件下载训练好的模型fetch_data/fetch_faster_rcnn_final_model.m ,如果下载不下来也可以在http://pan.baidu.com/s/1hsFKmeK这里直接下载,下载完成后,在faster_rcnn-master目录下解压。output文件夹会被覆盖。

 

    九,

    运行experiments/script_faster_rcnn_demo.m,到了这一步还是会出现一些错误的可能。

    

    a,在script_faster_rcnn_demo.m中,下图可能会因为多一个fileparts或少一个fileparts出现:错误使用 run (line 46)。

                               

    b,单步调试,发现一到这两步就发生崩溃。

                      fast_rcnn_net = caffe.Net(proposal_detection_model.detection_net_def, 'test');
                      fast_rcnn_net.copy_from(proposal_detection_model.detection_net);

    解决办法:

                   1,前面build libcaffe時 沒有加入之前所说的roi_pooling_layer.cu以及cpp。

                   2,将release生成的matcaffe加入matlab的路径中,直接在设置路径里面设置

                 

                     3,然后将release(如果你的caffe.sln是在Debug下生成的,就把Release换成Debug)加入系统变量path。

                                    

   

 十,

    看看实验结果吧,这里拿来检测行人。

    即使到了这一步还是有可能会崩溃的,这基本上是由于显卡内存不足造成的,即使是使用较小的ZF模型也是需要3G内存的。如果实在不行就令opts.use_gpu  = false,使用cpu吧。

    下面是结果图:

                                                 

                                                 

                                                     

最后

以上就是神勇硬币为你收集整理的matlab版faster rcnn的配置 win10+cuda7.5+cudnn7.5+matlab2018a的全部内容,希望文章能够帮你解决matlab版faster rcnn的配置 win10+cuda7.5+cudnn7.5+matlab2018a所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部