apollocv的个人博客分享 http://blog.sciencenet.cn/u/apollocv

博文

1070+cuda8+cudnn5.1+opencv3.1+caffe+fasterrcnn配置文档

已有 3094 次阅读 2017-6-2 09:10 |系统分类:科研笔记|关键词:学者| 深度学习, caffe, fasterrcnn

1070+cuda8+cudnn5.1+opencv3.1+caffe+fasterrcnn配置文档

一、系统安装及联网

ununtu官网上下载ubuntu14.04.iso文件,然后准备一个空的u盘,制作启动盘,百度怎么用u盘安装ubuntu

安装时要注意分配硬盘空间,保证home目录尽量大,其他的参考百度。

安装时调到bios界面,选择从usb启动(就是从u盘启动)

安装完成后要联网:设置ipv4为:

IP202.114.114.250

NetMask:255.255.255.0

Gateway:202.114.114.114

DNS Servers:202.114.96.1,202.103.24.68

部分安装过程中需要用到的软件包和链接地址在白色硬盘的pack.zip中。

第一部分 nVidiaCUDA Toolkit的安装(*.deb方法)

PS:特别推荐*.deb的方法,目前已提供离线版的deb文件,该方法比较简单,不需要切换到tty模式,因此不再提供原来的*.run安装方法,这里以CUDA 7.5为例。

一、CUDARepository

获取CUDA安装包,安装包请自行去NVidia官网下载。(https://developer.nvidia.com/cuda-downloads

Installation Instructions:

  1. `sudo       dpkg -i cuda-repo-ubuntu1404-8-0-local_8.0.44-1_amd64.deb`

  2. `sudo       apt-get update`

  3. `sudo       apt-get install cuda`

第二部分 Matlab安装和调试(以Matlab 2014a为例)

1.下载

由于该软件为商业软件,请大家自行寻找,安装学习,并确保不使用做商业目的,下载24小时删除......

2. 预准备

选择Mathworks.Matlab.R2014a.Unix.iso- 右键 - 使用磁盘映像挂载器打开,进入装载的虚拟光盘,拷贝全部文件至home/Matlab 文件夹(PS:我的原则是能GUIGUI,喜欢CMD的可以参照执行)

复制Crack/install.jar home/Matlab/java/jar/ 并覆盖源文件

$ sudo cp install.jar /home/Matlab/java/jar/

3. 授权安装文件夹

$ chmod a+x Matlab -R

4. 安装

$ sudo ./install

选项:不使用Internet安装

序列号:12345-67890-12345-67890

默认路径:/usr/local/MATLAB/R2014a

勾选从默认启动路径创建符号链接(实现在任意位置运行matlab启动程序)

激活文件:license_405329_R2014a.lic

拷贝libmwservices.so /usr/local/MATLAB/R2014a/bin/glnxa64

$ sudo cp libmwservices.so/usr/local/MATLAB/R2014a/bin/glnxa64/

5.解决编译器gcc/g++版本问题。

因为Ubuntu15.04gcc/g++版本是4.9.2,而Matlab 2014a2015a)的版本是4.7.x所以在使用matla调用mex文件的时候,基本上都会报错,根据报错信息,考虑如下两步解决方案。

A. 降级安装gcc/g++版本为4.7.x

(a). 下载gcc/g++ 4.7.x

$ sudo apt-get install -y gcc-4.7

$ sudo apt-get install -y g++-4.7

(b). 链接gcc/g++实现降级

$ cd /usr/bin

$ sudo rm gcc

$ sudo ln -s gcc-4.7 gcc

$ sudo rm g++

$ sudo ln -s g++-4.7 g++

B. 暴力引用新版本GLIBCXX_3.4.20

$sudo cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20/usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6.0.20 libstdc++.so.6.0.20的版本,可能因为系统不同而不同,使用最新的就可以了。)

目录切换到/usr/local/MATLAB/R2014a/sys/os/glnxa64/ ,非常重要!

$ sudo mv libstdc++.so.6libstdc++.so.6.backup (仅仅是备份,可以不备份,直接删除)。

$ sudo ln -s libstdc++.so.6.0.20libstdc++.so.6

$ sudo ldconfig -v

通过命令“strings/usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6 | grep GLIBCXX_” 可以看一下,是否已经成功包含了GLIBCXX_3.4.21,如果已经存在,基本上就成功了。

6.编译Matlab用到的caffe文件(见第五部分)

第三部分Caffe-Master的安装和测试

对于Caffe的安装严格遵照官网的要求来:http://caffe.berkeleyvision.org/installation.html

一、安装BLAS

这里可以选择(ATLASMKL或者OpenBLAS),我这里使用MKL,首先下载并安装英特尔® 数学内核库 Linux* MKL(Intel(R) Parallel Studio XECluster Edition for Linux 2016),下载链接是:https://software.intel.com/en-us/intel-education-offerings使用学生身份(邮件 + 学校)下载Student版,填好各种信息,可以直接下载,同时会给你一个邮件告知序列号(2JXL-2VTGZM8R)。下载完之后,要把文件解压到home文件夹(或直接把tar.gz文件拷贝到home文件夹,为了节省空间,安装完记得把压缩文件给删除喔~),或者其他的ext4的文件系统中。

很多人说,下载不了,本人于2105118日使用该地址下载最新的2016版本,仍然没有问题,请大家细心操作^_^

接下来是安装过程,先授权,然后安装:

$ tar zxvf parallel_studio_xe_2016.tar.gz (如果你是直接拷贝压缩文件过来的)

$ chmod a+x parallel_studio_xe_2016 -R

$ sh install_GUI.sh

PS: 安装的时候,建议使用root权限安装,过程中会要求输入Linuxroot口令。(设置方法:命令行:$ sudo passwd

二、MKLCUDA的环境设置

1. 新建intel_mkl.conf并编辑之:

$ sudo gedit/etc/ld.so.conf.d/intel_mkl.conf

/opt/intel/lib/intel64

/opt/intel/mkl/lib/intel64

2. 新建cuda.conf,并编辑之:

$ sudo gedit /etc/ld.so.conf.d/cuda.conf

/usr/local/cuda/lib64

/lib

3. 完成lib文件的链接操作,执行:

$ sudo ldconfig -v

三、安装OpenCV 3.1.0

1. 下载并编译OpenCV(官网原版OpenCVhttp://opencv.org/),或者使用我提供的修改版的安装包(前面的百度云下载)

安装opencv3.1

sudo apt-get installlibprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-devprotobuf-compiler

  • 1

  • 1

    官网下载一个opencv。然后解压出来。


    sudo /bin/bash -c 'echo"/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'

    sudo ldconfig

    find / -name “cv2.so”

    gedit ~/.bashrc

    cv2.so   /home/apollo/opencv/lib

    export PYTHONPATH=/home/apollo/opencv/lib:$PYTHONPATH

    source~/.bashrc

四、安装其他依赖项

1. Google Logging Libraryglog),下载地址:https://code.google.com/p/google-glog/,然后解压安装:

$ tar zxvf glog-0.3.3.tar.gz

$ ./configure

$ make

$ sudo make install

如果没有权限就chmoda+x glog-0.3.3 -R , 或者索性 chmod 777 glog-0.3.3 -R , 装完之后,这个文件夹就可以kill了。

2. 其他依赖项,确保都成功

$ sudo apt-get install -y libprotobuf-devlibleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-devlibgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compilerprotobuf-c-compiler protobuf-compiler

五、安装Caffe并测试

0. 安装protobuf

$wgethttps://github.com/google/protobuf/archive/v2.6.1.zip

$unzip protobuf-2.6.1.zip

$cd protobuf-2.6.1

下载自github的代码需要首先执行 $ ./autogen.sh 生成configure文件

$ ./configure

$ make

$ make check

$ make install

我使用的是centos系统

usr/local/bin

usr/local/lib,

usr/local/include

是也系统默认路径之一,所以到这一步就可以使用protobuf

$ protoc -I=./ --cpp_out=./test.proto

到你的test.proto文件所在目录使用命令protoc -I=./ --cpp_out=./生成C++版本的协议文件

一切OK的话,你回在当前目录看到.h.cc文件

1. 安装pycaffe必须的一些依赖项:

$ sudo apt-get install -y python-numpypython-scipy python-matplotlib python-sklearn python-skimage python-h5pypython-protobuf python-leveldb python-networkx python-nose python-pandaspython-gflags Cython ipython

2. 安装配置nVidia cuDNN 加速Caffe模型运算

a. 安装前请去先官网下载最新的cuDNN (cudnn-7.0-linux-x64-v4.0-prod)

$ sudo cp include/cudnn.h /usr/local/include

$ sudo cp lib64/libcudnn.* /usr/local/lib

b. 链接cuDNN的库文件

$sudo ln -sf /usr/local/lib/libcudnn.so.4.0.7 /usr/local/lib/libcudnn.so.4

$ sudo ln -sf /usr/local/lib/libcudnn.so.4/usr/local/lib/libcudnn.so

$ sudo ldconfig -v

3. 切换到Caffe-master的文件夹,生成Makefile.config配置文件,执行:

$ cp Makefile.config.example Makefile.config

4. 配置Makefile.config文件(仅列出修改部分)

a. 启用CUDNN,去掉"#"

USE_CUDNN := 1

b. 配置一些引用文件(增加部分主要是解决新版本下,HDF5的路径问题)

INCLUDE_DIRS := $(PYTHON_INCLUDE)/usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib/usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial

c. 启用Intel Parallel Studio XE 2016

BLAS := mkl

d. 配置路径,实现caffePythonMatlab接口的支持

PYTHON_LIB := /usr/local/lib

MATLAB_DIR := /usr/local/MATLAB/R2014a

c. 启用OpenCV 3.0, 去掉"#"

OPENCV_VERSION =3

6. 编译caffe-master!!!"-j16"是使用CPU的多核进行编译,可以极大地加速编译的速度,建议使用。

$ make all -j16

$ maketest -j16

$ makeruntest -j16

编译PythonMatlab用到的caffe文件

$ makepycaffe -j16

$ make matcaffe -j16

六、使用MNIST数据集进行测试

Caffe默认情况会安装在$CAFFE_ROOT,就是解压到那个目录,例如:$ home/username/caffe-master,所以下面的工作,默认已经切换到了该工作目录。下面的工作主要是,用于测试Caffe是否工作正常,不做详细评估。具体设置请参考官网:http://caffe.berkeleyvision.org/gathered/examples/mnist.html

1. 数据预处理

$ sh data/mnist/get_mnist.sh

2. 重建lmdb文件。Caffe支持多种数据格式输入网络,包括Image(.jpg, .png)leveldblmdbHDF5等,根据自己需要选择不同输入吧。

$ sh examples/mnist/create_mnist.sh

生成mnist-train-lmdb mnist-train-lmdb文件夹,这里包含了lmdb格式的数据集

3. 训练mnist

$ sh examples/mnist/train_lenet.sh

三、安装faster-rcnn

复制py-faster-rcnn-person文件夹,然后要删除一些文件:

1lib/datasets/里的pascal_voc.pycimdb.pyc

2output/里的faster_rcnn_alt_opt文件夹

3data里的cache文件夹

4、如果不用行人的数据,而是换了数据的话,就要删除data/vocdevkit2007里的annotations_cache

5、把model文件夹删除,换成py-faster-rcnn文件夹(就是官网上下的没有换过数据的faster-rcnn)里的那个model

然后要把之前caffe里的那个makefile.config复制到caffe_fast_rcnn文件夹下面。

注意要把: WITH_PYTHON_LAYER:=1 放开

mkdirbuild

cdbuild

cmake..

make all -j16

makeruntest -j16(报错也没关系)

$ make pycaffe -j16

编译PythonMatlab用到的caffe文件

Sudo apt-get install python-pip

Pip install easydict

一、修改调用文件

1 prototxt配置文件

models/pascal_voc/ZF/faster_rcnn_alt_opt文件夹下的5个文件,分别为stage1_rpn_trainNaNstage1_fast_rcnn_trainNaNstage2_rpn_trainNaNstage2_fast_rcnn_trainNaNfast_rcnn_testNaN,修改格式如下:

(1)stage1_fast_rcnn_trainNaNstage2_fast_rcnn_trainNaN修改参数num_class:2(识别1+背景1类),cls_scorenum_output2bbox_prednum_output8。(只有这3个)

(2)stage1_rpn_trainNaNstage2_rpn_trainNaN修改参数num_class:2(识别1+背景1类)

(3)fast_rcnn_testNaN修改参数:cls_scorenum_output2bbox_prednum_output8只有这2个)

2 修改lib/datasets/pascal_voc.py

self._classes = ('__background__', # alwaysindex 0
                            'person')
(只有这一类)

3、修改lib/datasets/imdb.py

数据整理,在一行代码为 boxes[:, 2] = widths[i] - oldx1 - 1下加入代码:
for b in range(len(boxes)):

    if boxes[b][2]< boxes[b][0]:

       boxes[b][0] = 0

4、修改完pascal_voc.pyimdb.py后进入lib/datasets目录下删除原来的pascal_voc.pycimdb.pyc文件,重新生成这两个文件,因为这两个文件是python编译后的文件,系统会直接调用。

终端进入lib/datasets文件目录输入:

python(此处应出现python的版本)

>>>importpy_compile

>>>py_compile.compile(r'imdb.py')

>>>py_compile.compile(r'pascal_voc.py')

二、训练自己的数据

终端进入py-faster-rcnn下输入:

./experiments/scripts/faster_rcnn_alt_opt.sh0ZF pascal_voc

如果执行错:

    1. cv2 importERROR apt-get installpython-opencv

    2. yaml importError:      apt-get install python-yaml

    3. 三、demo自己刚刚生成的ZF_models

      1、训练完成之后,将output/faster_rcnn_alt_opt/voc_2007_trainval中的最终模型ZF_faster_rcnn_final.caffemodel拷贝到data/faster_rcnn_models(删除以前生成类似的model)中。

      2、修改/tools/demo.py为:

      (1) CLASSES =('__background__',

                'people')(只有这两类)

      (2) NETS ={'vgg16': ('VGG16',

                                       'VGG16_faster_rcnn_final.caffemodel'),

                         'zf': ('ZF',

                                        'ZF_faster_rcnn_final.caffemodel')}

      (3)在训练集图片中找一张出来放入py-faster-rcnn/data/demo文件夹中,命名为000001.jpg

        im_names = ['000001.jpg'](只需这一类图片的一张,其他删除或注销)

        for im_name in im_names:

            print'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'

            print'Demo for data/demo/{}'.format(im_name)

            demo(net, im_name)

      3、运行demo,即在py-faster-rcnn文件夹下终端输入:

      ./tools/demo.py --net zf

      结果如图:

      四. Cpu运行faster rcnn

1. 在一切都正常的情况下,对caffe-fast-rcnn进行makemake 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$

2 在安装配置好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.pycaffe.set_mode_gpu()修改为caffe.set_mode_cpu().

C>~/py-faster-rcnn/lib/setup.py中,含有'nms.gpu_nms’的部分去掉,去掉后的内容如下:

112 ext_modules = [

113    Extension(

114         "utils.cython_bbox",

115        ["utils/bbox.pyx"],

116        extra_compile_args={'gcc': ["-Wno-cpp", "-Wno-unused-function"]},

117        include_dirs = [numpy_include]

118     ),

119    Extension(

120         "nms.cpu_nms",

121        ["nms/cpu_nms.pyx"],

122        extra_compile_args={'gcc': ["-Wno-cpp", "-Wno-unused-function"]},

123        include_dirs = [numpy_include]

124     ),

125    Extension(

126         'pycocotools._mask',

127        sources=['pycocotools/maskApi.c', 'pycocotools/_mask.pyx'],

128        include_dirs = [numpy_include, 'pycocotools'],

129        extra_compile_args={

130            'gcc': ['-Wno-cpp', '-Wno-unused-function', '-std=c99']},

131     ),

132 ]

D>做到上面三部后,还是不够的,还需要将:

../lib/fast_rcnn/nms_wrapper.py:9:#from nms.gpu_nms import gpu_nms

注释掉:

否则,会抛出如下的异常:

Traceback (most recent call last):

File "./demo.py", line 18, in

from fast_rcnn.test import im_detect

File ".../py-faster-rcnn-master/tools/../lib/fast_rcnn/test.py", line 17, in

from fast_rcnn.nms_wrapper import nms

File ".../py-faster-rcnn-master/tools/../lib/fast_rcnn/nms_wrapper.py", line 11, in

from nms.gpu_nms import gpu_nms

ImportError: No module named gpu_nms

3. 修改train_faster_rcnn_alt_opt.py:

1)下列语句:

修改为:

2)下列语句

修改为:

4. 打开faster_rcnn_alt_opt.sh

1) 找到下列语句:

修改为:

3. 训练:

终端进入py-faster-rcnn下输入:

./experiments/scripts/faster_rcnn_alt_opt.sh   ZF pascal_voc

五.ipython notebook for ubuntu14.04 安装步骤(真的超级简单)1. 环境操作系统:ubuntu 14.04 / 尤麒麟2. 操作步骤

a)  安装pip工具

终端输入以下命令:

sudo apt-get install python-pip

b) 安装ipython

终端输入以下命令:

sudo apt-get install ipython

c) 安装ipython[notebook]

终端输入以下命令:

sudo apt-get install ipython-notebookd) 启动ipython[notebook]

终端输入以下命令:

ipython notebook




https://m.sciencenet.cn/blog-3330899-1058554.html

上一篇:1070+cuda8+cudnn5.1+opencv3.1+caffe+fasterrcnn配置文档
下一篇:武汉大学测绘遥感国家重点实验室种衍文教授2017年研究生招生宣传

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-24 19:04

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部