因为自己的电脑没有安装linux环境,显卡也不支持CUDA,所以在实现faster RCNN的demo的过程中还是很麻烦的。

完善项目文件

下图是vs2013 打开的caffe解决方案的工程目录。由于windows版本caffe的不完善,要先在其libcaffe项目中添加roi_poling层的相关支持。(Fast R-CNN的ROIPooling层需要这个源文件编译)

具体做法是对cu&include&src下的layers右键,添加现有的项,分别添加的是roi_pooling_layer对应的.cu/.hpp/.cpp文件。其中.cu和.cpp文件在caffe安装根目录src/caffe/layers下。.hpp在include/caffe/layers下。

P.s:Caffe中的.cu文件,是交给nvcc编译的c++源文件,可以编译成cpu指令或者GPU指令。

修改属性表

在commonSettings.props中修改属性。为了配置caffe的接口,需要在属性表中把python版编译接口打开,并且指出anaconda2的路径。这两行分别在属性表的13行和第48行。

好几个博客都使用的是anaconda2的python安装包,而caffe中默认的是Miniconda2(仅包含conda和 Python)。Anaconda是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项,anaconda2对应Python2版本。对比之下,pycharm、spyder是IDE,可以调试,代码高亮,项目管理等。因为python是解释型的语言,pycharm在新建项目的时候就需要指定interpreter,而这个解释器就可以是anaconda下的python.exe。而在anaconda之中也集成了IDE:jupyter notebook。

从清华大学镜像站下载anaconda,https://repo.continuum.io/archive/Anaconda2-4.2.0-Windows-x86_64.exe

(千万要下载支持python2.7的anaconda2,不然后面会遇到找不到python27.lib)去编译Release版本的pycaffe,好像如果编译Debug版本会出现python27_d.lib找不到什么的。

Matlab也一样,除了打开matlabsupport,还需要修改matlab.exe路径和mxGPUArray.h所在include路径。新版matlab的mxGPUArray.h位置改动了,可以将新位置放在includePath之中,也可以将头文件复制到默认的includePath处。

重新编译

在Build/x64/Release下得到pycaffe文件夹和 matcaffe文件夹。

Pycaffe:

Matcaffe:编译过程中遇到了头文件martix.h找不到的情况,把绝对路径include进去就好了。还遇到了无法打开libmx.lib的问题,在项目属性中添加库目录。

python中安装caffe包

将编译生成的pycaffe中的caffe文件夹拷贝到D:\Program Files\Anaconda2\Lib\site-packages中

在cmd中进入python命令行,然后import caffe,会出现下面问题

因为c++版本中生成的NugetPackages里面包含了依赖项opencv,protobuf等,而python版本还没有。解决办法是退出python,在cmd中conda install protobuf/pip install protobuf,安装成功之后重新import caffe,没有报错。

验证

使用的实例是Texture Synthesis with Convolutional Neural Networks这篇论文的代码,主要实现的是利用噪声生成一张真实图片。下载,解压github上的源码https://github.com/leongatys/DeepTextures

在cmd中cd到解压目录,输入jupyter notebook

可以在localhost:8888/中得到jupyter notebook,顾名思义,这是一个web型的交互式笔记本。显示当前文件夹中的文件。

点击example.ipynb,shift+enter逐步调试.

出现了python.exe停止运行等错误,中断发现应该是GPU不支持的问题,在cmd中的提示验证了这个猜想:

按照下面代码把模式改成CPU:

#if cpu mode we should not call,below 3 line of code is just for using GPU mode.
#gpu = 0
#caffe.set_mode_gpu()
#caffe.set_device(gpu)

在链接1中是将代码写在一个py文件中一次性运行,而且因为不是在解压文件目录下打开jupyter notebook,用了绝对路径。但是不管是分步运行还是一次性运行,都没有报错,都没有图像生成,理论上应该生成代码给的参考图像才对。现在还不知道怎么回事。

我怀疑是我除了anaconda2还安装了一个python,所以运行notebook的时候有两个kernels found,于是用pycharm新建了一个project,选择anaconda2下的python.exe作为interpreter,但是显示找不到caffe等:

Faster rcnn

Python版本的caffe和faster rcnn(链接3):

下载py-faster-rcnn,地址:https://github.com/rbgirshick/py-faster-rcnn

针对windows环境,替换py-faster-rcnn中的lib)https://github.com/MrGF/py-faster-rcnn-windows将其中的文件复制进py-faster-rcnn进行替换。

替换后,在py-faster-rcnn根目录—lib—rpn路径下,编辑proposal_layer.py:

将Caffe根目录—Build文件夹下,找到生成的pycaffe,将其中的caffe文件夹整体复制到py-faster-rcnn根目录—caffe-fast-rcnn—python文件夹下。如果是用Download ZIP(因为我们已经有了Caffe-Microsoft),在py-faster-rcnn的caffe-faster-rcnn下单独创建python文件夹,再将生成的pycaffe下的caffe拷贝进来。官方推荐用命令递归下载,递归的意思是initialize submodules in the clone,自动初始化并更新仓库中的每一个子模块:

git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git

Matlab版本的caffe+faster rcnn(链接4)

按照参考操作就可以了,需要注意的是要下载的是matlab版本的faster rcnn,解压应该在faster-rcnn-master/experiment下。

需要针对cpu-only的环境修改代码。因为不用GPU,所以还需要选择网络较小的zf-5,而不是很大的VGG-16.这两个网络的model在output文件夹下面。

我遇到的问题是:

先是出现invalid mex-file,添加了vs的dll文件在m文件目录下,将build/x64/release路径添加到系统环境变量。

然后出现了load使用错误的原因,其实是model文件和测试图片的路径错了,按照提示改一下就好了。

下面是demo自带图像的测试结果:

Reference:

1.      下载anaconda2:https://www.cnblogs.com/billyzh/p/6307716.html

2.      Jupyter:https://blog.csdn.net/zb1165048017/article/details/52980102

3.      Py Faster RCNN:https://blog.csdn.net/u011185952/article/details/71079038

4.      Mat faster rcnn:https://blog.csdn.net/mr_curry/article/details/54745116

5.      翻墙获取faster_rcnn_models:https://blog.csdn.net/hongbin_xu/article/details/76100132

6.      修改setup.py到CPU:http://www.caffecn.cn/?/question/13

caffe下matlab、python的配置和faster RCNN的运行相关推荐

  1. Win10下的Python环境配置

    Win10下的Python环境配置 原料 64位Windows10 专业版 安装Python 访问python的官方网站www.python.org,点击download,如图一 选择2.7版本,如图 ...

  2. Tensorflow下用自己的数据集对Faster RCNN进行训练和测试(二)1

    原 Tensorflow下用自己的数据集对Faster RCNN进行训练和测试(二) 2018年08月21日 22:20:38 子季鹰才 阅读数:1811 对于Tensorflow版本的Faster ...

  3. 后 R-CNN时代, Faster R-CNN、SSD、YOLO 各类变体统治下的目标检测综述:Faster R-CNN系列胜了吗?,(知乎ChenJoya大佬,讲的挺好的,记录一下)

    我们检测到你可能使用了 AdBlock 或 Adblock Plus,它的部分策略可能会影响到正常功能的使用(如关注). 你可以设定特殊规则或将知乎加入白名单,以便我们更好地提供服务. (为什么?) ...

  4. linux apache部署php,Linux下apache虚拟主机配置多版本php同时运行 | 系统运维

    学习本教程须掌握: 1.Linux下指定版本编译安装LAMP 2.Linux下Apache虚拟主机配置 3.CentOS 7.x编译安装Nginx1.10.3+MySQL5.7.16+PHP5.2 5 ...

  5. windows10安装python环境_在windows10下安装python(配置环境变量),Windows10

    建议使用:anaconda(环境管理和包管理)+Pycharm (强大的IDE开发工具) python环境变量设置: window系统高级设置-> 系统环境变量里 变量名: PYTHONPATH ...

  6. 【MATLAB深度学习】采用Faster R-CNN实现车辆目标检测

    本文展示了如何使用MATLAB训练Faster R-CNN目标检测器,实现对车辆的检测.本例使用一个包含295张图像的小标记数据集.每个图像包含一个或两个已标记的车辆目标.一个小的数据集对于探索 Fa ...

  7. linux下caffe编译以及python环境配置手记

    caffe是一个深度学习的库,相信搞深度学习的话,不是用这个库就是用theano吧.要想使用caffe首先第一步就是要配置好caffe的环境.在这里,我主要说的是在debian的linux环境下如何配 ...

  8. 【泡咖啡1】linux下caffe编译以及python环境配置手记

    caffe是一个深度学习的库,相信搞深度学习的话,不是用这个库就是用theano吧.要想使用caffe首先第一步就是要配置好caffe的环境.在这里,我主要说的是在debian的linux环境下如何配 ...

  9. ubuntu安装python_Linux下的Python开发配置鸭

    linxu下python环境的开发配置 前言 linux是目前为止最好上手的系统也是最适合新手学习的系统而python是可以最快让大家知道怎么写出东西的语言,简单的几十个小时的学习之后就只需要看懂库的 ...

最新文章

  1. 团队项目技术规格说明书---客户端
  2. 学python可以做什么产品-学习Python到底有什么用?
  3. 一个ApplicationContext.xml的配置
  4. 单步调试学习NgRx createSelector 工具函数的使用方式
  5. mysql边备份边导入么_MySQL 怎么导入导出操作
  6. Android Sutiod报错:Dx unsupported class file version 52.0(解决)
  7. 前台数据数组转化为json数据
  8. python中如何生成项目帮助文档
  9. 飞行控制PID算法——无人机飞控
  10. 全球及中国医疗体制改革行业运作前景与发展策略研究报告2022年
  11. 打砖块android代码,打砖块游戏的源代码
  12. Mobi格式的书籍整理
  13. 虚拟机安装+win10系统
  14. oracle量子,中国科学院量子信息重点实验室
  15. 通过PS把素色的旗袍换成青花瓷样式的旗袍
  16. 谷歌Chrome浏览器自动翻译导致前端页面数据错乱问题
  17. 为什么要写房卡麻将系列文章
  18. SQL(面试实战01)
  19. 杰理的蓝牙芯片的key是什么?以及该如何添加key?杰理key文件原理
  20. 洛谷 p1010 幂次方

热门文章

  1. CS 期刊哪家强?CCF 发布最新期刊分级目录!
  2. 【小夕精选】YJango 7分钟带你领略你未曾想过的线性代数+微积分
  3. Spring Boot 2.2 正式发布,大幅性能提升 + Java 13 支持
  4. java程序员的发展之路和职业规划
  5. 论文浅尝 | 基于神经网络的知识推理
  6. Wasserstein metric的通俗解释
  7. Go语言交叉编译工具gox
  8. C# WebBrowser 设置独立的代理
  9. C++primer 13.6.2节练习
  10. 如何在A用户下建立视图,这个视图是A的表与B的表进行关联的?