Windows下如何采用微软的Caffe配置Faster R-CNN
前言
比较简单的一篇博客。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的更多相关文章
- 实践详细篇-Windows下使用VS2015编译的Caffe训练mnist数据集
上一篇记录的是学习caffe前的环境准备以及如何创建好自己需要的caffe版本.这一篇记录的是如何使用编译好的caffe做训练mnist数据集,步骤编号延用上一篇 <实践详细篇-Windows下 ...
- Windows下OpenFOAM开发及使用环境配置指南 (1)【转载】
转载自:http://openfoam.blog.sohu.com/158614863.html *************************************************** ...
- Windows下Nginx Virtual Host多站点配置详解
Windows下Nginx Virtual Host多站点配置详解 此教程适用于Windows系统已经配置好Nginx+Php+Mysql环境的同学. 如果您还未搭建WNMP环境,请查看 window ...
- 在windows下用eclipse + pydev插件来配置python的开发环境
在windows下用eclipse + pydev插件来配置python的开发环境 一.安装 python 可以到网上下个Windows版的python,官网为:https://www.python. ...
- Windows下的Anaconda+OpenCV的环境配置
Windows下的Anaconda+OpenCV的环境配置
- Windows下OpenFOAM开发及使用环境配置指南 (2)【转载】
转载自:http://openfoam.blog.sohu.com/158751915.html *************************************************** ...
- windows下安装node.js及环境配置、部署项目
windows下安装node.js及环境配置.部署项目 一.总结 一句话总结: 安装nodejs软件:就像普普通通的的软件那样安装 配置nodejs安装的全局模块的环境变量 并且安装cnpm(比如cn ...
- 让theano在windows下能进行GPU并行的配置步骤
最近在implement DeepLearning.net上面的程序.对于开源的python,最头疼的就是各种package和各种configuration. 而且还是在windows下. 想要让th ...
- 【深度学习】在linux和windows下anaconda+pycharm+tensorflow+cuda的配置
在linux和windows下anaconda+pycharm+tensorflow+cuda的配置 在linux和windows下anaconda+pycharm+tensorflow+cuda的配 ...
随机推荐
- js闭包作用(避免使用全局变量)
js闭包作用(避免使用全局变量) 一.总结 1.优点::可以把局部变量驻留在内存中,可以避免使用全局变量; 2.缺点:也有占用更多内存的缺点,用完要及时让垃圾回收器回收 fn=null //应及时解 ...
- 关于心理的二十五种倾向(查理·芒格)-3
9)回馈倾向人们早就发现.和猿类,猴类,狗类等其它很多认知能力较为低下的物种同样,人类身上也有以德报德,以牙还牙的极端倾向:这样的倾向明显能够促进有利于成员利益的团体合作.这跟非常多社会性的动物的基因 ...
- [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 ...
- Android使用BitmapFactory.Options解决加载大图片内存溢出问题
由于Android对图片使用内存有限制,若是加载几兆的大图片便内存溢出.Bitmap会将图片的所有像素(即长x宽)加载到内存中,如果图片分辨率过大,会直接导致内存溢出(java.lang.OutOfM ...
- Ubuntu下成功安装QQ2013
阳光小强最近用Win8系统感觉特别不爽,中午果断换了一个win7系统,又想着能不能搞个双系统(最近在看一些linux东西),于是就开始整起来.结果并不好,linux虽然整好了,但是硬盘全部格式化了,当 ...
- (四)RabbitMQ消息队列-服务详细配置与日常监控管理
原文:(四)RabbitMQ消息队列-服务详细配置与日常监控管理 RabbitMQ服务管理 启动服务:rabbitmq-server -detached[ /usr/local/rabbitmq/sb ...
- spring-如何在项目启动的情况下获取Bean实例
十年阿里,就只剩下这套Java开发体系了 >>> 大家都知道,项目启动的时候,spring读取xml文件,将配置的bean 或者 注解下的controller service d ...
- ios开发runtime学习四:动态添加属性
#import "ViewController.h" #import "Person.h" #import "NSObject+Property.h& ...
- 【编程】常见概念的理解 —— inplace、vanity url、vanilla(code/software)、编译、链接、build、(delegate、proxy)
inplace: 如修改一个文件等对象时, inplace=True,不创建新的对象,直接在原始对象上尽心修改: inplace=False,在对原始对象进行修改,而会创建新的对象: vanity u ...
- C#生成6位随机验证码
private string VerifyCode() { Random random = new Random(); , ).ToString(); }