前言

比较简单的一篇博客。https://github.com/microsoft/caffe 微软的Caffe以在Windows下编译简单而受到了很多人的喜爱(包括我),只用改改prop配置然后无脑重新生成就可以。今天配置了一下Faster R-CNN,还挺好用的。

这里以CPU版本的为例,GPU的一样。

效果

CPU版本的当然很慢。放图:

编译Caffe

有几个地方需要注意。其一是我建议大家采用2016年7月之后的Microsoft Caffe版本,因为在此之后这个Caffe分支添加了roi_pooling_layer.cpp和roi_pooling_layer.cu,Fast R-CNN的ROIPooling层需要这个源文件编译。其二是不建议采用CPU版的折腾,因为….真的很慢。

首先我们打开CommonSettings.props,将这里改为true.



然后我们打开Caffe.sln这个工程,在libcaffe项目的layers文件夹下添加roi_pooling_layer.cpp,GPU版本就还要在cu文件夹下添加roi_pooling_layer.cu.(说来也是奇怪,这两个竟然没用默认加进去。)



重新生成libcaffe后,再生成matcaffe。也可以整个工程都全部重新生成。

最后在caffe-master\Build\x64\Release文件夹下会有一个matcaffe的文件夹,这个就是Matlab调用caffe的库。

运行Faster R-CNN的demo

资源下载

(其实读论文的时候我就有一个感觉,RPN的搜索策略如果没用GPU的话,速度应该会比Selective Search或者滑动窗口慢很多,网络越大越慢。今日试了试果然如此)

接下来下载两个资源:

1、下载这个Matlab版本的Faster R-CNN:https://github.com/ShaoqingRen/faster_rcnn解压后,把我们得到的matcaffe文件夹复制到external/caffe/目录下(因为人家的demo是在这个目录下搜的函数)。

2、然后下载资源faster_rcnn_final_model.zip,下载地址我放到了百度云里:http://pan.baidu.com/s/1mioahvU,下载完成后,在faster_rcnn-master目录下解压。output文件夹会被覆盖。

demo

如果你是CPU版本的,还要做以下修改:在experiments/script_faster_rcnn_demo.m这个文件里,注释掉以下两行,加上caffe.set_mode_cpu,如下:

%% -------------------- CONFIG --------------------
opts.caffe_version = 'caffe_faster_rcnn';
%注释opts.gpu_id = auto_select_gpu;
%注释active_caffe_mex(opts.gpu_id, opts.caffe_version);
caffe.set_mode_cpu;

然后把opts.use_gpu选项改了:

opts.use_gpu                = false;

跳出experiments文件夹,运行demo:

addpath('experiments/')
script_faster_rcnn_demo

有两种网络可以选择,在script_faster_rcnn_demo.m这个地方。上面是VGG-16,下面是zf5,上面的网络太大,奇慢无比。

model_dir                   = fullfile(pwd, 'output', 'faster_rcnn_final', 'faster_rcnn_VOC0712_vgg_16layers'); %% VGG-16
%model_dir = fullfile(pwd, 'output', 'faster_rcnn_final', 'faster_rcnn_VOC0712_ZF'); %% ZF

Windows下如何采用微软的Caffe配置Faster R-CNN的更多相关文章

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

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

  2. Windows下OpenFOAM开发及使用环境配置指南 (1)【转载】

    转载自:http://openfoam.blog.sohu.com/158614863.html *************************************************** ...

  3. Windows下Nginx Virtual Host多站点配置详解

    Windows下Nginx Virtual Host多站点配置详解 此教程适用于Windows系统已经配置好Nginx+Php+Mysql环境的同学. 如果您还未搭建WNMP环境,请查看 window ...

  4. 在windows下用eclipse + pydev插件来配置python的开发环境

    在windows下用eclipse + pydev插件来配置python的开发环境 一.安装 python 可以到网上下个Windows版的python,官网为:https://www.python. ...

  5. Windows下的Anaconda+OpenCV的环境配置

    Windows下的Anaconda+OpenCV的环境配置

  6. Windows下OpenFOAM开发及使用环境配置指南 (2)【转载】

    转载自:http://openfoam.blog.sohu.com/158751915.html *************************************************** ...

  7. windows下安装node.js及环境配置、部署项目

    windows下安装node.js及环境配置.部署项目 一.总结 一句话总结: 安装nodejs软件:就像普普通通的的软件那样安装 配置nodejs安装的全局模块的环境变量 并且安装cnpm(比如cn ...

  8. 让theano在windows下能进行GPU并行的配置步骤

    最近在implement DeepLearning.net上面的程序.对于开源的python,最头疼的就是各种package和各种configuration. 而且还是在windows下. 想要让th ...

  9. 【深度学习】在linux和windows下anaconda+pycharm+tensorflow+cuda的配置

    在linux和windows下anaconda+pycharm+tensorflow+cuda的配置 在linux和windows下anaconda+pycharm+tensorflow+cuda的配 ...

随机推荐

  1. sprinng in action 第四版第六章中的ValidationMessages.properties不起作用

    文件名必须是ValidationMessages.properties,必须放在类的根目录下

  2. 分析Net 内存对象

    .Net 内存对象分析   在生产环境中,通过运行日志我们会发现一些异常问题,此时,我们不能直接拿VS远程到服务器上调试,同时日志输出的信息无法百分百反映内存中对象的状态,比如说我们想查看进程中所有的 ...

  3. Emacs常用快捷键

    基本命令 C-x C-f 打开/新建文件 C-x C-s 保存当前缓冲区 C-x C-w 当前缓冲区另存为 C-x C-v 关闭当前Buffer并打开新文件 C-x i 光标处插入文件 C-x b 切 ...

  4. 致ITFriend用户

    ) 全权处理,相关问题请和他沟通. 祝大家中秋节快乐,一家团团圆圆. 小雷FansUnion   湖北 武汉   2014年9月7日 --------------------------------- ...

  5. 一个Exception catch不住的【异常】

    现象: Controller中的方法接收到前台ajax请求后开始执行, 当执行到某一行时程序终止,前台回调进Error方法. 后台明明catch了Exception异常,但异常并没有被捕获(不进cat ...

  6. iconv简介(1、字符串|文件字符转换:iconv用于将一种已知的字符集文件转换成另一种已知的字符集文件)(2、编程语言函数功能的相似性:iconv不仅再php中有用,而且c语言中也有用,还有linux等)

    iconv简介(1.字符串|文件字符转换:iconv用于将一种已知的字符集文件转换成另一种已知的字符集文件)(2.编程语言函数功能的相似性:iconv不仅再php中有用,而且c语言中也有用,还有lin ...

  7. eclipse 远程debug tomcat web项目

    1.首先须要在linux系统tomcat/bin文件夹下配置catalina.sh这个文件里添加: CATALINA_OPTS="-Xdebug  -Xrunjdwp:transport=d ...

  8. php面试题12(多态web服务器共享session的方法:将session存到数据库)($val=&$data[$key];)

    php面试题12(多态web服务器共享session的方法:将session存到数据库)($val=&$data[$key];) 一.总结 1.多态web服务器共享session的方法: ...

  9. 如何让eclipse输出结果的console栏自动换行?

    在console栏内容上面,鼠标右键有个word-wrap,就行了

  10. Go语言版黑白棋

    1.游戏说明 2.无边框窗口实现 3.背景图.最小化.关闭窗口 4.界面其它设计 5.黑白子提示闪烁效果 6.落子 7.初始化棋子.改变角色 8.倒计时 9.吃子 10.棋子个数统计.胜负判断 11. ...