windows10+vs2013环境下运行Fast-rcnn(仅CPU)

本人的第一篇博客,内容如果有错误的地方,请不吝赐教

        前一段时间在做目标检测,看到有一篇文章说Fast-rcnn在目标检测方面做的不错,于是想在自己的机器上跑一下,在网上搜了许多教程,奈何总是出现莫名奇妙的错误,进过一番努力,终于能成功运行。

        首先介绍一下自己的电脑配置情况。本人电脑处理器是AMD A6,显卡是HD7670,系统是windows10,这个配置比较尴尬,不能用GPU来进行训练,而许多教程中都是使用了GPU的,有的教程说是可以不用GPU但是也没有明确说明怎么操作,所以决定写下这篇博客,希望遇到和我一样问题的同学可以参考借鉴。毕竟把时间浪费在装软件上是不合算的。好了,废话不多说了,接下来开始重点。

       我下载的是fast-rcnn的python版本的,运行时需要python和caffe。

一、python的安装

windows下安装pthon,网上有许多教程,但是我个人强烈推荐安装Anaconda版本的python(切记,切记),原因是这个版本已经把许多库都集成进来了,不用你自己再去安装库了,毕竟在windows下安装pyhon的库有多痛苦,大家只要只要装过都知道。Anaconda是一个.exe的文件,安装时建议装在默认的路径(C盘),因为我尝试安装在其他盘,但是一直报错。

Anaconda下载地址:https://www.continuum.io/downloads

我下载的是windows,Python2.764位Python2.7的。我建议大家也下64位的,下好后,安装好,按快捷键win+r,输入cmd,进入windows的命令行,输入Python,安装成功应该是这样的


输入conda list,查看已经安装了哪些包,如下图所示,基本上常用的包都有,scipy,matplot,numpy等


好了python的安装就结束了。

二 Caffe的安装

fast-rcnn中用到了caffe的python 接口,所以要安装caffe,在windows下安装caffe,现在有2个版本,一个是微软自己弄得,一个是caffe官方提供的。我开始用的是微软提供的那个,但是但是一直无法生成所需的文件,所以改用第二个了,接下来的安装 教程也是caffe官方提供的版本。

具体可参考这篇博客http://blog.csdn.net/buildgood/article/details/51123312

(1)首先下载caffe的代码

happynear的Caffe源码:https://www.github.com/happynear/caffe-windows

happynear制作的第三方库文件:http://pan.baidu.com/s/1bSzvKa

下载解压好后,caffe源码解压后,文件如下图所示。

(2)将3rdparty文件(bin,include,lib)解压至caffe-windows_ROOT(假设Caffe源码解压后的文件夹名为caffe-windows_ROOT)中的3rdparty文件夹中,并将3rdparty/bin文件夹所在路径添加到环境变量中,使程序可以找到这些第三方库

(3)双击.src/caffe/proto/extract_proto.bat批处理文件来生成caffe.pb.hcaffe.pb.cc两个c++文件,和caffe_pb2.py这个Python使用的文件。

(4)打开./build_cpu_only/Mainbuilder.sln,点击上方工具栏中的绿色三角编译。

三 编译Python接口

(1)在Mainbuilder.sln中选择pycaffe项目,右键选择属性修改两个地方。


(2)把C/C++的附加包含目录中python默认路径(默认是D:\Python27)修改为你自己Python所在的路径。加入你装的是Anaconda,那么你的python路径就是C:\Users\ASUS-PC\Anaconda2\include。具体如下图所示


我的路径配置情况


(3)将链接器-常规-附加库目录修改为你的路径。


(4)右键选择pycaffe项目,点击build编译。编译成功会在caffe-windows_ROOT\python\caffe中生成_caffe.pyd文件。


(5)安装google的protobuf,直接在cmd中使用pip install protobuf安装,如果报错的话,将指令改为

pip --default-timeout=100install protobuf。

protobuf的安装也可使用这种方法,我就是采用的该方法:http://blog.csdn.net/cloud95/article/details/42674183

(6)将这个caffe文件夹复制到D:\Anaconda2\Lib\site-packages中,然后尝试使用import caffe。如果出现no named moudle easydit,那就安装easydit,安装方法如步骤(5)。如果import成功,如下图所示


四 fast-rcnn的安装

可参考这篇博客:http://blog.csdn.net/lien0906/article/details/47007319

(1)下载fast r-cnn:https://github.com/rbgirshick/fast-rcnn,解压

(2)下载fast r-cnn所需的模型文件,提供一个别人的下载地址,http://pan.baidu.com/s/1kTzQYgR下载完成后,请将3个文件夹放置在fast_rcnn_root/data中.

(3)将步骤三中已经编译过的caffe-windows_ROOT/python目录,复制到fast_rcnn_root/caffe-fast-rcnn

(4)用文本编辑器打开fast_rcnn_root/lib/utils/nms.pyx,将第25行的np.int_t修改为np.intp_t

(5)用文本编辑器打开fast_rcnn_root/lib/setup.py,将第18行和23行的"-Wno-cpp", 

"-Wno-unused-function"指令删除,只留下空的中括号[]即可

(6)打开cmd,定位至fast_rcnn_root/lib目录中,执行python setup.py install。 如果提示Unable to find 

vcvarsall.bat的话,请输入以下指令: 
若你安装的是VS2012:SET VS90COMNTOOLS=%VS110COMNTOOLS% 
若你安装的是VS2013:SET VS90COMNTOOLS=%VS120COMNTOOLS%

setup.py安装完成后,到python_root/Lib/site-packages/utils中可以找到两个文件cython_bbox.pyd

cython_nms.pyd,把这两个文件复制到fast_rcnn_root/lib/utils中。

(7)这也是最重要的一步,将fast_rcnn_root/tools/中的demo.py打开,将图中圈红圈的注释掉,否则会报务GPU的


然后,如果你的电脑配置不高,运行时会卡死,那么将程序修改为下图红色圈中所示


关于程序的解释,参考:http://blog.csdn.net/xzzppp/article/details/52073107

(8)定位至fast_rcnn_root,执行python tools/demo.py,等待结果



参考资料:

http://blog.csdn.net/lien0906/article/details/47007319

http://blog.csdn.net/lien0906/article/details/47007319


  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: Mask R-CNN、Fast R-CNN和 R-CNN 是计算机视觉领域中的目标检测算法。 首先,R-CNN代表Region-based Convolutional Neural Network,是目标检测领域的里程碑之一。R-CNN的基本思想是将图片分割为许多候选区域,然后对每个区域进行卷积操作,并在每个区域上运行一个支持向量机(SVM)来判断是否包含目标物体。虽然R-CNN在准确性上表现良好,但是其训练和推理速度很慢。 为了克服R-CNN的缺点,Fast R-CNN被提出。Fast R-CNN将整个图像输入到卷积神经网络中,并提取出共享特征图。然后,对于每个候选框,Fast R-CNN通过RoI池化层将候选框映射到特征图上,并利用这些特征进行目标分类和边界框回归。相比R-CNN,Fast R-CNN的训练和推理速度有了大幅提升。 在Fast R-CNN的基础上,Mask R-CNN进一步引入了目标实例的分割。Mask R-CNN通过在每个候选框上添加一个额外的分割头部来实现实例分割。该分割头部是一个全卷积网络,用于为每个像素点预测其属于目标物体的概率,从而生成目标的精确掩码。Mask R-CNN在目标检测和实例分割任务中表现出色,成为当前最先进的模型之一。 综上所述,Mask R-CNN、Fast R-CNN和 R-CNN都是计算机视觉领域中常用的目标检测算法。R-CNN是第一个将深度学习应用于目标检测的算法,Fast R-CNN在其基础上加入了RoI池化层,提升了检测速度,而Mask R-CNN则在Fast R-CNN的基础上进一步引入了目标实例的分割能力,获得了更精确的分割结果。 ### 回答2: mask rcnnfast rcnnrcnn都是计算机视觉领域中常用的目标检测算法。下面我分别介绍一下它们的特点和原理。 首先是rcnn(Region-based Convolutional Neural Networks)。rcnn是目标检测领域的一个重要里程碑,它通过将图像划分为一系列区域(region proposal),然后对每个区域进行单独的卷积神经网络(CNN)特征提取和分类,从而实现目标检测。rcnn的主要特点是每个区域独立处理,计算量较大,但检测精度较。 接下来是fast rcnnFaster Region-based Convolutional Neural Networks)。fast rcnnrcnn进行了改进,主要改进了两个地方:一是将整个图像作为输入,而不是将图像中的每个区域分别作为输入;二是引入了ROI pooling层,将区域映射为固定大小的特征图,从而减少了计算量。fast rcnn的主要优点是在保持检测精度的同时,大大提了检测速度。 最后是mask rcnn,它是在fast rcnn的基础上进一步发展而来。mask rcnn在目标检测的基础上增加了对目标实例分割的支持。具体来说,mask rcnnfast rcnn的基础上引入了一个额外的分支网络,用于生成目标实例的精确分割掩码。mask rcnn的主要优点是在准确检测目标的同时,可以得到每个目标实例的精确分割结果。 综上所述,mask rcnnfast rcnnrcnn都是目标检测算法,它们在计算量和检测精度之间做了不同的权衡和改进,从rcnnfast rcnn再到mask rcnn,不了检测速度,还增加了目标实例分割的能力。这些算法的不断发展推动了计算机视觉领域的进步。 ### 回答3: Mask R-CNN是一种级的目标检测算法,它是在Faster R-CNN基础上进行改进的。它不可以检测出图像中的目标,还可以为每个目标生成一个精确的遮罩(mask)来表示目标的轮廓和形状。 与Faster R-CNN相比,Mask R-CNN引入了一个额外的分支网络,称为全卷积网络(FCN),用于生成目标的遮罩。在提取出候选区域的基础上,Mask R-CNN通过ROI Align对每个候选区域进行精确的特征对齐,并将这些特征送入FCN网络进行遮罩生成。这样一来,Mask R-CNN不可以准确地定位目标,还能够提供更精确的目标遮罩。 Fast R-CNN是另一种目标检测算法,它是R-CNN的改进版本。Fast R-CNN通过引入RoI池化层,可以对整个图像进行一次前向传播,而不是像R-CNN那样对每个候选框都进行前向传播。这样可以大大提模型的计算效率。 R-CNN是目标检测算法的开山之作,它将目标检测任务转化为一系列的二分类问题。首先,R-CNN通过选择性搜索(selective search)等方法从图像中提取候选区域。然后,每个候选区域被调整为固定大小,并送入预训练的卷积神经网络(CNN)中抽取特征。最后,这些特征被输入到线性SVM分类器中进行目标分类,并使用边界框回归来得到精确的目标边界框。 总结来说,R-CNN、Fast R-CNN和Mask R-CNN都是目标检测算法,它们通过引入不同的改进来提检测的准确性和效率。R-CNN是最早的版本,Fast R-CNN在其基础上减少了计算量,而Mask R-CNN则进一步加入了遮罩生成,提供了更精确的目标检测和分割结果。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值