win7下py-faster-rcnn-master下跑通demo.py

原创 2017年01月03日 16:08:38



最近一直在看RCNN相关的内容,看完论文就要实现一下。我的caffe一直用的是windows平台,而很多官方文档都是在linux底下操作的,所以只能求助各种大神(Linux菜鸟一枚。。。)。CSDN博客上大神特别多,他们写的很简单,我就掉进了很多坑,每次掉进去都感觉要爬不上来了。不过,功夫不负有心人,折腾了将近一周,终于跑通了demo。

在此,特别感谢rookie_cz,遇到的很多问题都是请教这位大神,帮了我很多。

平台:Win7
显卡:GTX960
python IDE: Anaconda2(2.7.11)
caffe安装包:Microsoft

下面,开始正文。
1 编译caffe
1.1 从微软的Github下载caffe-master,网址https://github.com/Microsoft/caffe,下载安装包。 这里写图片描述
在网页的下方有详细的安装说明。
这里写图片描述
我简单做了下翻译:
Requirements: Visual Studio 2013
Pre-Build Steps: 将.\windows\CommonSettings.props.example 复制重命名为 .\windows\CommonSettings.props,还是同一个文件夹底下。
这里写图片描述

如果电脑中没有GPU,可以通过调整.\windows \ CommonSettings.props 中的变量禁用CUDA和cuDNN,默认情况下是支持CUDA和cuDNN的。Python在默认情况下禁用,但也可以通过\ windows \ CommonSettings.props启用。Caffe需要的第三方依赖(用过happynear的caffe应该会知道大神自己攒了一个第三方库)关系通过NuGet自动解析。
CUDA
从NVIDIA官网下载自己显卡对应版本的CUDA,目前,除了1080,用的都是CUDA7.5。环境变量会自动添加,就是傻瓜式安装。如果没有GPU,可以在CommonSettings.props 将CpuOnlyBuild 设置为 true ,同时将set UseCuDNN to false.
cuDNN
Download cuDNN v4 or cuDNN v5 from nVidia website. 将下载的zip解压缩到%CUDA_PATH%(由CUDA安装程序设置的环境变量)或者,可以将zip解压缩到任何位置,然后CommonSettings.props.CuDnnPath处添加这个位置,我的解压位置在D:\**\software,cuda文件夹就是解压后的cuDNN。
这里写图片描述

这里写图片描述
Python
因为要使用python接口,我们在\ windows \ CommonSettings.props中将PythonSupport设置为true。微软推荐的是 从Miniconda网站下载Miniconda 2.7 64位Windows安装程序。我用的是Anaconda2,都可以。程序安装完后,会自动添加python的路径到环境变量中。同时,注意设置CommonSettings.props中python的路径。
这里写图片描述
另外,没有安装protobuf的,可以用pip install protobuf安装。
不用pip 安装的话,注意下载最新版本的,否则和caffe有兼容问题。
Build
双击.\windows\Caffe.sl打开caffe的VS工程,右键libcaffe重新生成,编译libcaffe。之后编译pycaffe,之后用的到。
Remark
编译完成后,设置 PythonPath 环境变量值为 \Build\x64\Release\pycaffe
或者复制 \Build\x64\Release\pycaffe\caffe 到\lib\site-packages.

2 编译py-faster-rcnn-master
2.1 下载py-faster-rcnn-master,网址:https://github.com/rbgirshick/py-faster-rcnn,直接点击下载后,下载的压缩文件解压后,里面的caffe-fast-rcnn是空的,所以要点进去下载后,然后解压到caffe-fast-rcnn文件中。
这里写图片描述

2.2 编译lib\setup.py,但这个setup是不能直接编译的。我用的是rookie_cz重新整理好的newsetup.py和setup_cuda.py,链接:http://blog.csdn.net/chenzhi1992/article/details/53374265
然后,直接cd到lib下面,执行 python newsetup.py install 和python setup_cuda.py install。如果遇到找不到cl.exe之类的问题,把cl.exe路径添加到环境变量中去就行了。
2.3 其实编译完之后就可以测试demo了,然而,呵呵。。。重点来了,运行demo的时候报错说找不到roi pooling layer。然后我就比较了一下caffe-root和rbg的caffe分支,发现\py-faster-rcnn-master\caffe-fast-rcnn\include\caffe底下多了个fast_rcnn_layers,这是roi和smooth L1的声明文件,然后别的都一样,真的是都一样啊。caffe-root的\src\caffe\layers底下有roi_pooling_layer.cpp/cu和smooth_l1_loss_layer.cpp/cu,这四个文件都有;然后\src\caffe\proto中caffe.proto文件中也有roi的注册,那些写博客要添加这些东西的大神们,让我抑郁了很久。然并卵,再次运行demo,还是找不到roi,然后我又郁闷了很久。时间过的好快,然后元旦我就出去玩了三天。
这里写图片描述
回来之后发现,一直忽略了VS工程中打开的libcaffe以及pycaffe,然后检查了一下libcaffe,果然,真想骂人!!工程中没有添加roi_pooling_layer.cpp和cu,smooth的cpp和cu倒是有。没办法了,把roi_pooling_layer.cpp和cu还有那个fast_rcnn_layers.hpp粘贴到工程中相应位置,然后重新编译caffe,编译的过程慢的不行不行的啊。。。。顺便重新编译下pycaffe,然后把生成的 \Build\x64\Release\pycaffe\caffe 复制到\lib\site-packages替换掉原来的caffe。这样基本上问题就解决了。测试demo.py结果如下:
这里写图片描述
此外还有一些我遇到的其他问题:
1 no module named _caffe
这是pycaffe没有编译好,重新编译一下。但是我有一次发现,faster-rcnn-master\caffe-fast-rcnn\python\caffe报错,no module named _caffe。我重新编译了之后还是有问题。然后我就把py-faster-rcnn-master\caffe-fast-rcnn\python\caffe用编译后的release\pycaffe\caffe替换,就可以了。
2 proposal_layer.py 中 pre_nms_topN = cfg[cfg_key].RPN_PRE_NMS_TOP_N, keyerror = 1
解决方法 :
进行如下修改
cfg_key = str(self.phase) # either ‘TRAIN’ or ‘TEST’
cfg_key = str(‘TRAIN’ if self.phase == 0 else ‘TEST’)
3 cannot import name set_random_seed
解决方法:参考https://github.com/BVLC/caffe/pull/4351/files#diff-9b973c3db5bcd89fc0a5e1977f7cd70aL57
4 最后再说一句,如果电脑上装了mingw,编译setup_cuda.py的时候可能会碰到g++的问题,我把ming卸载了就没问题了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

caffe(无CUDA,caffe在CPU下运行)+Ubuntu14.0.4详解---(适合于初学者配置)

http://blog.csdn.net/autocyz/article/details/51783857  (2016.6月份的博文,本文没有参考这篇博客,不过感觉写的挺好 贴上连接) http...

win7 caffe 仅cpu 安装教程 + caffe使用

http://blog.csdn.net/xierhacker/article/details/51834563 1. 查看电脑是否有GPU 右键“我的电脑”–属性(打开系统属性)–“硬件”选项下...

Ubuntu下跑通py-faster-rcnn、详解demo运作流程

在不同的服务器不同的机器上做过很多次实验,分别遇到各种不一样的错误并且跑通Py-Faster-RCNN,因此,在这里做一个流程的汇总: 一、下载文件: 首先,文件的下载可以有两种途径: 1、需要在官网...

faster rcnn demo.py:在一个窗口显示所有类别标注

faster rcnn 的demo.py运行时,对于同一个图像,每个类别显示一个窗口,看起来不太方便,顺便小改一下,让一幅图像中检测到的所有类别物体都在一个窗口下标注,就方便多了。 代码改动也不复杂,...
  • 10km
  • 10km
  • 2017-03-31 16:10
  • 1178

cuDNN兼容性问题造成的caffe/mnist,py-faster-rcnn/demo运行结果错误

问题描述我有两台电脑,一台笔记本GTX965M显卡,台式机是GTX1060显卡 两台电脑上的软件环境都一样:ubuntu16+cuda8.0+cuDNN4,显卡驱动nvidia-378 在笔记本上...
  • 10km
  • 10km
  • 2017-03-16 13:30
  • 1313

Py-faster-rcnn实现自己的数据train和demo

在我的上两个博客中已经对py-faster-rcnn配置运行demo.py和py-faster-rcnn配置运行faster_rcnn_end2end—VGG_CNN_M_1024做出了相应说明,在本...

Faster-Rcnn demo.py解析

目录1. 源代码注解对代码中比较重要的地方添加注释,包括自己的理解和一些参考。2.相关知识点补充补充IoU, 非极大值抑制, python的argparse模块等相关知识点。import _init_...

faster-rcnn demo.py详解

Faster-rcnn demo.py详解#程序功能:调用caffemodel,画出检测到的人脸并显示#用来指定用什么解释器运行脚本,以及解释器所在位置,这样就可以直接执行脚本 #!/usr/bin/...

Faster—RCNN源代码解析之demo.py

1、模型选择,以及分类类型:CLASSES = ('__background__', 'aeroplane', 'bicycle', 'bird', 'boat', ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)