【原创帖!转载请注明出处:http://www.cnblogs.com/LaplaceAkuir/p/6445189.html

本人最近研究faster-rcnn,在ubuntu成功跑通matlab版本和python版本,但是由于项目开发需要,则要在windows上进行c++版本的faster-rcnn应用,于是参照着http://blog.csdn.net/oYangZi12/article/details/53290426?locationNum=2&fps=1提供的代码,以及Matlab版本faster-rcnn的代码过程,自己整理了C++版本的faster-rcnn,当然只能进行测试,并且model必须是matlab的,过段时间会尝试整理读取py-faster-rcnn模型的c++版本代码。

一:安装环境:

  1、windows10,

  2、Visual Studio 2013

  3、cuda7.5和cudnn5.1

  3、Caffe版本:https://github.com/Microsoft/caffe

二:caffe安装

  将caffe-master/windows/CommonSettings.props.example复制一份就做caffe-master/windows/CommonSettings.prop,用文本编辑器notepad++(Visual stadio 打开也可以)对其进行配置。需要注意的是CPU还是使用GPU,以及是否编译matlab和python的接口。我的配置如下:

  

  本人安装了Anaconda windowsX64 2.7版本来配置python,安装Anaconda2后需要下载必要的python库

cmd下运行

 conda install --yes numpy scipy matplotlib scikit-image pip
pip install protobuf

  上图第二个箭头处,由于本人matlab版本为2016a,在编译微软的caffe版本时遇到了"gpu/mxGPUArray.h" Not Found问题,因此需要在IncludePath处添加上述路径。

  打开caffe-master/windows/caffe.sln,项目选择released模式,修改libcaffe的C++常规设置,将警告视为错误选择否,如果需要使用faster-rcnn,请先看第三步faster-rcnn配置的编译步骤,以免重复编译,如不需要,则直接开始生成解决方案,会出现Nuget还原管理界面,结束后会在caffe-master的同级目录下生成一个NugetPackages的目录,装的是各种依赖库。结果如下图

编译时间很长,耐心等待后没有出现问题就表明编译成了。

三:faster-rcnn配置

1、重新编译caffe

   由于faster-rcnn中使用了roi-pooling-layer层,而微软版本编译时并未添加roi_pooling_layer,所以我们需要将头文件,cu文件和cpp文件手动加入到libcaffe中,为防止出现其他问题。本人将caffe-master/include/caffe下的所有头文件加入到libcaffe项目的头文件中,caffe-master/src/caffe的cpp和cu文件加入到libcaffe的源文件和cu文件中。

添加完成后,再次重新编译整个项目。编译成功后,整个caffe就编译完成了。

 2、新建faster-rcnn-test项目

  在caffe-master/windows/下新建项目。

  本人整理好的第三方依赖项faster_3rdparty,链接:http://pan.baidu.com/s/1qYttnsS密码:d0ud,将其解压到caffe-master/目录下。

  c++包含目录:../../include; ../../faster_3rdparty/include C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v7.5/include(本人cuda安装目录)

  库链接目录:../../Build/x64/Release;../../faster_3rdparty/lib;C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v7.5/lib/x64;

附加依赖项项:opencv_calib3d2410.lib;opencv_contrib2410.lib;opencv_core2410.lib;opencv_features2d2410.lib;opencv_flann2410.lib;opencv_gpu2410.lib;opencv_highgui2410.lib;

opencv_imgproc2410.lib;opencv_legacy2410.lib;opencv_ml2410.lib;opencv_objdetect2410.lib;opencv_ts2410.lib;opencv_video2410.lib;caffe.lib;libcaffe.lib;cudart.lib;cublas.lib;

curand.lib;gflags.lib;libglog.lib;libopenblas.dll.a;libprotobuf.lib;leveldb.lib;lmdb.lib;hdf5.lib;hdf5_hl.lib

  将faster_3rdparty/bin目录添加到系统环境变量中。

  添加本人上传的faster-rcnn c++代码,链接https://github.com/zhanglaplace/Faster_rcnn_Cplusplus_vs2013,代码结合Matlab版本的faster-rcnn以及参考http://blog.csdn.net/oYangZi12/article/details/53290426?locationNum=5&fps=1 提供的代码。下载model,model文件可以从网盘下载,网盘链接:http://pan.baidu.com/s/1dF88JvV ,设置新建项目为启动项目,且只编译该项目。

  运行结果如下:

PS:如果编译成功的话,不要忘了给我的github工程点个star!

  

Windows下VS2013 C++编译测试faster-rcnn的更多相关文章

  1. windows下用vs2010编译ffmpeg

    转载自;http://q1q2q3q4q5q6ln.blog.163.com/blog/static/500794332014666536283/ (注意:请务必先阅读:七,后记补充:) ffmpeg ...

  2. 【转】Windows下使用VS2008编译OpenCV 2.1 添加Intel TBB和Python支持

    Windows下使用VS2008编译OpenCV2.1 添加Intel TBB和Python支持 步骤: 1.仔细阅读OpenCV官网上的InstallGuide:http://opencv.will ...

  3. 实践详细篇-Windows下使用VS2015编译的Caffe训练mnist数据集

    上一篇记录的是学习caffe前的环境准备以及如何创建好自己需要的caffe版本.这一篇记录的是如何使用编译好的caffe做训练mnist数据集,步骤编号延用上一篇 <实践详细篇-Windows下 ...

  4. Windows下从源代码编译Skia

    在PPAPI里面画图,能够结合第三方的图形库.比方Cairo.Skia. Google Chrome.Chromium和Android都使用Skia作为画图引擎.我也来试试Skia,先过编译关. fo ...

  5. 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)

    转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...

  6. kubernetes实战之consul篇及consul在windows下搭建consul简单测试环境

    consul是一款服务发现中间件,1.12版本后增加servicemesh功能.consul是分布式的,可扩展的,高可用的根据官方文档介绍,目前已知最大的consul集群有5000个节点,consul ...

  7. windows下vs2013使用C++访问redis

    刚开始在windows下使用c++访问reids各种报错,经过网上到处搜方案,终于可以在windows下访问redis了,特将注意事项记录下来: 1.获取redis Window下的开发库源码,从gi ...

  8. 【C#】C#中使用GDAL3(一):Windows下超详细编译C#版GDAL3.3.0(VS2015+.NET 4+32位/64位)

    转载请注明原文地址:https://www.cnblogs.com/litou/p/15004877.html 目录 一.介绍 二.编译准备 三.编译SQLite 四.编译LibTiff 五.编译PR ...

  9. 如何在windows下成功的编译和安装python组件hyperscan

    摘要:hyperscan 是英特尔推出的一款高性能正则表达式引擎,一次接口调用可以实现多条规则与多个对象之间的匹配,可以支持多种匹配模式,块模式和流模式,它是以PCRE为原型开发,并以BSD许可证开源 ...

随机推荐

  1. Huawei-R&S-网络工程师实验笔记20190527-华为设备密码重置、设置web管理

    >Huawei-R&S-网络工程师实验笔记20190527-华为设备密码重置.设置web管理 >>实验开始(使用SecureCRT 等工具软件): 一.华为设备密码重置,通过 ...

  2. Linux I/O scheduler for solid-state drives

    An I/O scheduler and a method for scheduling I/O requests to a solid-state drive (SSD) is disclosed. ...

  3. N天学习一个Linux命令之grep

    前言任何系统都会出问题,出了问题一般怎么排查BUG?这个时候程序中记录的异常日志以及关键节点的日志就非常重要了,面对一大堆的日志文件,怎么找出我们需要的有用信息呢?linux中可以使用grep命令查找 ...

  4. 微信推送给服务器的XML消息解析-springmvc 解析xml数据流

    微信推送给服务器的XML消息解析: 可以使用request.getInputStream(); 获取输入的消息流:但是需要自己解析流: spring mvc自带解析功能: controller中: @ ...

  5. [Tools] Using colours in a NodeJS terminal - make your output pop

    Use can use colour and styles to make it easy to spot errors and group common functionality into blo ...

  6. Buy or Build (poj 2784 最小生成树)

    Buy or Build Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 1348   Accepted: 533 Descr ...

  7. Extjs显示图片

    1.首先做一个容器 xtype : 'container', // 第2行 anchor : '100%', layout : 'column', items : [{ columnWidth : 0 ...

  8. Openfire 配置连接SQL SERVER(非默认实例)

    安装好Openfire之后,紧接着进行配置. 连接数据库的时候遇上问题. 打算用我本机上的一个SQL SERVER做为数据库.但是,我本机装了几个SQL SERVER实例,现在我打算使用的是那个非默认 ...

  9. 生活的 tricks

    1. 远距离传递 传真(需要附近有传真机):发 QQ.微信拍照,自己打印: 2. 超市的设计 如果是两层的话,入口一定在第一楼,出口在第二楼,也即当你需要出去的时候,需要贯穿整个超市: 用的在第一楼: ...

  10. IJ:Idea 常用代码

    ylbtech-IJ:Idea 常用代码 1.返回顶部 1. 1.JeePlus/代码生成器http://localhost:8081/a/login 2.manager/Java基础框架http:/ ...