**Ubuntu14.04+CPU+Python+Opencv配置Fast RCNN**

Ubuntu14.04+CPU+Python+Opencv配置Fast RCNN
一、安装ubuntu系统
首先要先下载安装ubuntu系统,我此处下载安装的是ubuntu14.04系统。由于cuda配置版本支持目前还没有ubuntu16.04,虽然网上有人说16.04也可以用14.04版本的cuda,但建议还是装14.04。
二、安装依赖项

sudo apt-get install build-essential  # basic requirement
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler #required by caffe
sudo apt-get install vim cmake git

使用上述指令后依赖库基本安装完成。
三、更新gcc g++
终端输入命令
g++ –version
查看g++版本,由于编译需要至少4.8版本的g++,一般来说,自带版本应该时4.8。如果想要升级g++,这里也提供以下下载方式,并且设置默认编译的g++为最新版
sudo add-apt-repository ppa:ubuntu-toolchain-r/test #用来添加库信息的帮助脚本。
sudo apt-get update
#sudo apt-get install gcc-4.9 o apt-get install g++-4.9 #更新g++,gcc
sudo ln -sf /usr/bin/gcc-4.9 /usr/bin/gcc #在调用的gcc库上做一个与最新版本的软连接,更改g++的默认版本
sudo ln -sf /usr/bin/gcc-ar-4.9 /usr/bin/gcc-ar
sudo ln -sf/usr/bin/gcc-ranlib-4.9 /usr/bin/gcc-ranlib
四、安装aconda
安装anaconda,建议安装。
anaconda面集成了很多包,如ipython,mkl,numpy等都预装了, 省去了很多麻烦。如果有 edu 邮箱的话,还可以获得 anaconda accelerate,在矩阵运算的时候,可以启用并行计算,速度快很多,这里需要注意加速版本,前提也是需要64位,可怜的32位,无形中增加了不少限制。
1,首先是去anoconda官网下载,需要所需版本。官网如下:https://www.continuum.io/downloads,这是软件安装的官方教程,提供了简单明了的安装方式。https://docs.continuum.io/anaconda/install
2,打开终端,输入
bash ~/Downloads/Anaconda3-4.0.0-Linux-x86_64.sh #注意这里的名字要换成自己对应版本的sh。
安装过程中记得一直选择默认的就行,傻瓜式安装。
3,是否在bashrc中添加路径,这里选择“yes”就可以,否则后面报错的话,你需要将以下代码添加到你的bash shell环境变量中,记得
cd ~ #转到主目录,准备执行shell,注意其他目录不行。
vim .bashrc
export PATH=”/home/username/anaconda/bin”:$PATH
#最下面一行添加就行,:wq保存退出。记得对应更改自己的用户名和anaconda名字,我的后面加了一个2.
source .bashrc #更新
关掉终端,完成安装。
五、安装opencv
1,去官网下载源码,保存在默认位置。官网链接: http://opencv.org/downloads.html。建议下载2.4.12稳定版本,由于新版3.0还有些文件缺失,有时候用起来反而不方便。
2,添加必要的库。 (这边我实际没有做)
打开终端,添加代码。

sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake Python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev 

3,解压,使用unzip或者tar命令,解压后,将执行目录chang directory your 解压目录。

mkdir build 
cd build 
cmake -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_TIFF=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..  
make #编译 
sudo make install #安装 

六、安装easydict

sudo pip install easydict

七、安装atlas

sudo apt-get install libatlas-base-dev #安装atlas简单易行。 

八、编译caffe

bigtop@bigtop-SdcOS-Hypervisor:~/py-faster-rcnn/caffe-fast-rcnn$ ls
build       CMakeLists.txt   data        examples    LICENSE          Makefile.config~         models     scripts
caffe.cloc  CONTRIBUTING.md  distribute  include     Makefile         Makefile.config.example  python     src
cmake       CONTRIBUTORS.md  docs        INSTALL.md  Makefile.config  matlab                   README.md  tools
bigtop@bigtop-SdcOS-Hypervisor:~/py-faster-rcnn/caffe-fast-rcnn$ pwd
/home/bigtop/py-faster-rcnn/caffe-fast-rcnn

修改这个目录下的Makefile.config(如果没有这个文件,就直接cp Makefile.config.example Makefile.config)

将CPU_ONLY := 1开关和WITH_PYTHON_LAYER开关打开:
这里写图片描述
这里写图片描述
然后在该目录下执行:make –j2 && make pycaffe
如果此时出现python包缺失,则可单独安装一下python包,一般来说没问题。j2代表2个线程,由于我虚拟机只有单核双线程,所以用j2。
在一切都正常的情况下,对caffe-fast-rcnn进行make和make pycaffe的结果如下:这里写图片描述
编译好caffe-fast-rcnn后,在py-faster-rcnn/lib中执行make命令:

bigtop@bigtop-SdcOS-Hypervisor:~/py-faster-rcnn/lib$ make
python setup.py build_ext --inplace
running build_ext
skipping 'utils/bbox.c' Cython extension (up-to-date)
skipping 'nms/cpu_nms.c' Cython extension (up-to-date)
skipping 'pycocotools/_mask.c' Cython extension (up-to-date)
rm -rf build
bigtop@bigtop-SdcOS-Hypervisor:~/py-faster-rcnn/lib$
  1. 在安装配置好caffe-fast-rcnn后,修改py-faster-rcnn相关配置,让其模型可以在没有GPU的环境下运行:

A>将 ~/py-faster-rcnn/lib/fast_rcnn/config.py的如下内容:
这里写图片描述
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/setup.py中,含有’nms.gpu_nms’的部分去掉,去掉后的内容如下:

ext_modules = [
    Extension(
        "utils.cython_bbox",
        ["utils/bbox.pyx"],
        extra_compile_args={'gcc': ["-Wno-cpp", "-Wno-unused-function"]},
        include_dirs = [numpy_include]
    ),
    Extension(
        "nms.cpu_nms",
        ["nms/cpu_nms.pyx"],
        extra_compile_args={'gcc': ["-Wno-cpp", "-Wno-unused-function"]},
        include_dirs = [numpy_include]
    ),
    Extension(
        'pycocotools._mask',
        sources=['pycocotools/maskApi.c', 'pycocotools/_mask.pyx'],
        include_dirs = [numpy_include, 'pycocotools'],
        extra_compile_args={
            'gcc': ['-Wno-cpp', '-Wno-unused-function', '-std=c99']},
    ),
]

4.运行demo.py
在环境一切就绪的情况下,将faster的模型下载下来:

bigtop@bigtop-SdcOS-Hypervisor:~/py-fast-rcnn/data/scripts$ ls
fetch_fast_rcnn_models.sh  fetch_imagenet_models.sh  fetch_selective_search_data.sh

由于这边下载速度比较慢,所以我实际采用的是将URL拷进迅雷进行下载。将下载好的fetch_fast_rcnn_models放在data目录下。

在/home/bigtop/py-faster-rcnn/tools目录下运行, python demo.py --cpu此时运行到最后可能会出现内存溢出现象,添加执行参数 –net caffenet 即采用小型模型进行训练。

最后的结果如下:
这里写图片描述
这里写图片描述
这里写图片描述

猜你喜欢

转载自blog.csdn.net/u010977034/article/details/52575015