前言

比较简单的一篇博客。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. js闭包作用(避免使用全局变量)

    js闭包作用(避免使用全局变量) 一.总结 1.优点::可以把局部变量驻留在内存中,可以避免使用全局变量; 2.缺点:也有占用更多内存的缺点,用完要及时让垃圾回收器回收  fn=null //应及时解 ...

  2. 关于心理的二十五种倾向(查理&#183;芒格)-3

    9)回馈倾向人们早就发现.和猿类,猴类,狗类等其它很多认知能力较为低下的物种同样,人类身上也有以德报德,以牙还牙的极端倾向:这样的倾向明显能够促进有利于成员利益的团体合作.这跟非常多社会性的动物的基因 ...

  3. [Preact] Use State and Props in the Component Render Function

    Preact offers, in addition to the regular component API from React, the ability to access both props ...

  4. Android使用BitmapFactory.Options解决加载大图片内存溢出问题

    由于Android对图片使用内存有限制,若是加载几兆的大图片便内存溢出.Bitmap会将图片的所有像素(即长x宽)加载到内存中,如果图片分辨率过大,会直接导致内存溢出(java.lang.OutOfM ...

  5. Ubuntu下成功安装QQ2013

    阳光小强最近用Win8系统感觉特别不爽,中午果断换了一个win7系统,又想着能不能搞个双系统(最近在看一些linux东西),于是就开始整起来.结果并不好,linux虽然整好了,但是硬盘全部格式化了,当 ...

  6. (四)RabbitMQ消息队列-服务详细配置与日常监控管理

    原文:(四)RabbitMQ消息队列-服务详细配置与日常监控管理 RabbitMQ服务管理 启动服务:rabbitmq-server -detached[ /usr/local/rabbitmq/sb ...

  7. spring-如何在项目启动的情况下获取Bean实例

    十年阿里,就只剩下这套Java开发体系了 >>>   大家都知道,项目启动的时候,spring读取xml文件,将配置的bean 或者 注解下的controller service d ...

  8. ios开发runtime学习四:动态添加属性

    #import "ViewController.h" #import "Person.h" #import "NSObject+Property.h& ...

  9. 【编程】常见概念的理解 —— inplace、vanity url、vanilla(code/software)、编译、链接、build、(delegate、proxy)

    inplace: 如修改一个文件等对象时, inplace=True,不创建新的对象,直接在原始对象上尽心修改: inplace=False,在对原始对象进行修改,而会创建新的对象: vanity u ...

  10. C#生成6位随机验证码

    private string VerifyCode() { Random random = new Random(); , ).ToString(); }