Ubuntu16.04+caffe的安装和Py-faster-rcnn在CPU电脑的安装-2
来源:互联网 发布:js a标签target 编辑:程序博客网 时间:2024/05/21 22:41
第一步:
重点声明:是在cpu安装,不适用GPU.本教程caffe编译只是编译了通用caffe的Python接口(如果还需要编译MATLAB接口的,请务必先看我的后一篇博客,涉及到一个很重要的版本问题)和faster-rcnn的Python接口。gcc,g++使用的5.3版本。
基本库安装
Python的安装有两种方式:一种是系统自带的python,只需再安装相应的库即可;第二种是直接安装anaconda,很多相应的库已经包含了。第一种直接安装库文件比较简单,不需要修改相应的包含路径和库文件。选择第一种。
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev protobuf-compiler gfortran libjpeg62 libfreeimage-dev
sudo apt-get install libatlas-base-dev git python-dev python-pip libgoogle-glog-dev libbz2-dev libxml2-dev libxslt-dev libffi-dev libssl-dev libgflags-dev liblmdb-dev python-yaml
可能有的同学安装报错不能获取下载地址,可以在Ubuntu的软件更新器的其他软件源全部勾选,就可以了,添加软件源。
安装图像包依赖OpenCV开源库:
因为我之前安装了opencv 2.4.10,所以这里借用 http://blog.csdn.net/zyb19931130/article/details/53842791的内容。表示感谢。
(1)从github上下载安装脚本:https://github.com/jayrambhia/Install-OpenCV
(2)进行Ubuntu/2.4目录,对所有脚本增加可执行权限
(3)安装依赖项
(4)安装opencv 2.4.9开始在Python使用.
出现错误:
File "caffe/io.py", line 2, in <module>
import skimage.io
ImportError: No module named skimage.io
此时只要按照以下命令操作即可:
$ sudo apt-get install python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags cython ipython
$ sudo apt-get update
然后回到编译caffe的目录,重新
$ make pycaffe
- $cd caffe/python
- $python
- >>>import caffe
第三:下面进行Faster-rcnn Python版的安装。
下载项目,里面包含的caffe--rcnn与第一部分的通用的caffe并不相同。
编译cython
到/py-faster-rcnn/lib/目录下修改setup.py文件,然后在/py-faster-rcnn/lib/目录下make,修改如下:
- #CUDA = locate_cuda() //第一处
- #self.set_executable('compiler_so', CUDA['nvcc']) //第二处
- #Extension('nms.gpu_nms', //第三处,就是把cuda,gpu部分修改
- #['nms/nms_kernel.cu', 'nms/gpu_nms.pyx'],
- #library_dirs=[CUDA['lib64']],
- #libraries=['cudart'],
- #language='c++',
- #runtime_library_dirs=[CUDA['lib64']],
- # this syntax is specific to this build system
- # we're only going to use certain compiler args with nvcc and not with
- # gcc the implementation of this trick is in customize_compiler() below
- #extra_compile_args={'gcc': ["-Wno-unused-function"],
- # 'nvcc': ['-arch=sm_35',
- # '--ptxas-options=-v',
- # '-c',
- # '--compiler-options',
- # "'-fPIC'"]},
- #include_dirs = [numpy_include, CUDA['include']]
- #),
到/py-faster-rcnn/caffe-fast-rcnn/目录下,把Makefile.config.exampe复制并重命名为Makefile.config文件,修改Makefile.config文件
(和第一部分中的修改一样)和CMakeLists.txt文件(OFF改成ON),修改如下
- cd ~/py-faster-rcnn/caffe-fast-rcnn
- make -j8&& make pycaffe
第四:测试demo:
首先下载训练好的模型,放在data文件下:
然后修改一些文件:
A:修改/py-faster-rcnn/lib/fast_rcnn/config.py文件(True改成False)
# Use GPU implementation of non-maximum suppression
__C.USE_GPU_NMS = False
B:将/py-faster-rcnn/tools/test_net.py和 /py-faster-rcnn/tools/train_net.py的caffe.set_mode_gpu()修改为caffe.set_mode_cpu().
C:修改/py-faster-rcnn/lib/fast_rcnn/nms_wrapper.py文件(注释该引用,并将False改成True)
#from nms.gpu_nms import gpu_nms
def nms(dets, thresh, force_cpu=True)
最后,运行demo:
但是cpu还是比较慢的。且容易内存溢出。如果我们换成zf网络模型(默认为VGG16)需要
./tools/demo.py --cpu --net zf
参考:
(1)http://caffe.berkeleyvision.org/install_apt.html
(2)https://github.com/BVLC/caffe
(3)https://github.com/rbgirshick/py-faster-rcnn
(4)http://blog.csdn.net/zoro_lov3/article/details/60581174
- Ubuntu16.04+caffe的安装和Py-faster-rcnn在CPU电脑的安装-2
- ubuntu16.04+caffe安装和 py-faster-rcnn的CPU安装
- Ubuntu16.04 caffe py-faster-rcnn安装以及训练自己的数据
- ubuntu14.04安装CPU版caffe以及py-faster-rcnn
- ubuntu14.04、CPU的py-faster-rcnn安装步骤
- Ubuntu16.04+MATLAB2014a+faster-rcnn的CPU安装-3
- AWS-G2-Ubuntu16.04下安装cuda,caffe和py-faster-rcnn
- Faster RCNN 的py-faster-rcnn详细配置安装过程
- Ubuntu16.04环境下安装caffe及运行faster-rcnn
- Ubuntu16.04+GT720M + Cuda8.0+py-faster-rcnn(caffe)
- py-faster-rcnn + cpu安装及训练自己的数据集
- py-faster-rcnn + cpu安装及训练自己的数据集
- ubuntu16.04配置py-faster-rcnn(CPU版)
- faster rcnn caffe安装
- py-faster-rcnn /ubuntu安装遇到的问题
- CUDA8+cudnn+caffe+py-faster-rcnn安装教程
- 小白安装caffe、py-faster-rcnn艰难历程
- py-faster-rcnn windows 安装
- [leetcode]: 409. Longest Palindrome
- 百度分享js代码
- ICE深入理解
- 侦察兵(区间和)
- android开发,volley的二次封装和使用
- Ubuntu16.04+caffe的安装和Py-faster-rcnn在CPU电脑的安装-2
- java中静态代码块的用法
- TCP/IP 协议族的简介
- 记录自已学习之逻辑运算符
- Javascript 操作select控件大全(新增、修改、删除、选中、清空、判断存在等)
- OkHttp之入门篇
- Oracle基础
- 『ORACLE』授予hr用户查看执行计划权限(11g)
- NAT--网络地址转化