Windows下VS2013 C++编译测试faster-rcnn
【原创帖!转载请注明出处: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的更多相关文章
- windows下用vs2010编译ffmpeg
转载自;http://q1q2q3q4q5q6ln.blog.163.com/blog/static/500794332014666536283/ (注意:请务必先阅读:七,后记补充:) ffmpeg ...
- 【转】Windows下使用VS2008编译OpenCV 2.1 添加Intel TBB和Python支持
Windows下使用VS2008编译OpenCV2.1 添加Intel TBB和Python支持 步骤: 1.仔细阅读OpenCV官网上的InstallGuide:http://opencv.will ...
- 实践详细篇-Windows下使用VS2015编译的Caffe训练mnist数据集
上一篇记录的是学习caffe前的环境准备以及如何创建好自己需要的caffe版本.这一篇记录的是如何使用编译好的caffe做训练mnist数据集,步骤编号延用上一篇 <实践详细篇-Windows下 ...
- Windows下从源代码编译Skia
在PPAPI里面画图,能够结合第三方的图形库.比方Cairo.Skia. Google Chrome.Chromium和Android都使用Skia作为画图引擎.我也来试试Skia,先过编译关. fo ...
- 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)
转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...
- kubernetes实战之consul篇及consul在windows下搭建consul简单测试环境
consul是一款服务发现中间件,1.12版本后增加servicemesh功能.consul是分布式的,可扩展的,高可用的根据官方文档介绍,目前已知最大的consul集群有5000个节点,consul ...
- windows下vs2013使用C++访问redis
刚开始在windows下使用c++访问reids各种报错,经过网上到处搜方案,终于可以在windows下访问redis了,特将注意事项记录下来: 1.获取redis Window下的开发库源码,从gi ...
- 【C#】C#中使用GDAL3(一):Windows下超详细编译C#版GDAL3.3.0(VS2015+.NET 4+32位/64位)
转载请注明原文地址:https://www.cnblogs.com/litou/p/15004877.html 目录 一.介绍 二.编译准备 三.编译SQLite 四.编译LibTiff 五.编译PR ...
- 如何在windows下成功的编译和安装python组件hyperscan
摘要:hyperscan 是英特尔推出的一款高性能正则表达式引擎,一次接口调用可以实现多条规则与多个对象之间的匹配,可以支持多种匹配模式,块模式和流模式,它是以PCRE为原型开发,并以BSD许可证开源 ...
随机推荐
- net Core 中定时任务的设置
接下来的任务 采用定时任务的需求场景: 每天的数据整理,比如库存,每天的零散数据的统计,定时提醒,定时提醒到期未完成的任务-.... 1.采用的第三方类库: quartz 2文档地址:http://w ...
- 更简单高效的HTML数据提取-Xpath
XPath 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. 相比于BeautifulSoup,Xpath在提取数据时会更加的方便. 安装 在Pyth ...
- TASKLIST 显示计算机上的所有进程
Tasklist"是 winxp/win2003/vista/win7/win8下的命令,用来显示运行在本地或远程计算机上的所有进程,带有多个执行参数. 使用格式 tasklist [/s ...
- G - Power Strings
Given two strings a and b we define a*b to be their concatenation. For example, if a = "abc&quo ...
- AngularJS:让submit重新生效
当我们在html中声明了ng-app后,form的submit就会失效,必须通过angularJS来处理.如果这时还是想用普通的方式提交的话,需要修改form标签,如下所示: <form met ...
- 转:Java阳历转农历
package cloud.app.prod.home.utils; import java.text.ParseException; import java.text.SimpleDateForma ...
- 10.3arcmap矢量数据制作步骤
注意:在制作之前需要点将图放到原本大小.并且保存一下不然容易造成数据丢失. 在数据制作之前需要新建一个页面,用来放需要处理的原始数据 勾选ArcMap中Customize——ArcMap Option ...
- sublime -text 删除已安装插件
按ctr+shift +p然后输入remove 回车,再输入要删除的插件名
- JavaWEB开发入门
1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: •静态web资源(如html 页面 ...
- 知识总结1:debug命令汇总(一)
-r 得到当前寄存器状态或修改寄存器状态 -d 跳到默认(CS:IP指定的地址)区间 -d 段地址:偏移地址 跳到(段地址*+偏移地址)区间 -d 段地址:起始偏移地址 终止偏移地址 跳到(段地址*+ ...