zoukankan      html  css  js  c++  java
  • 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-masterBuildx64Release文件夹下会有一个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

    这里写图片描述

  • 相关阅读:
    跨域踩坑经验总结(内涵:跨域知识科普)
    Nginx location规则匹配
    CentOS 命令
    Centos 修改源
    Ubuntu下获取内核源码
    Ubuntu用户自定义脚本开机启动
    ubuntu 14.04安装x11VNC
    texi格式文件的读取
    更换主机后SSH无法登录的问题
    ubuntu操作系统的目录结构
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9412026.html
Copyright © 2011-2022 走看看