||
1070+cuda8+cudnn5.1+opencv3.1+caffe+fasterrcnn配置文档
一、系统安装及联网
到ununtu官网上下载ubuntu14.04.iso文件,然后准备一个空的u盘,制作启动盘,百度怎么用u盘安装ubuntu。
安装时要注意分配硬盘空间,保证home目录尽量大,其他的参考百度。
安装时调到bios界面,选择从usb启动(就是从u盘启动)
安装完成后要联网:设置ipv4为:
IP:202.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: |
|
第二部分 Matlab安装和调试(以Matlab 2014a为例)
1.下载
由于该软件为商业软件,请大家自行寻找,安装学习,并确保不使用做商业目的,下载24小时删除......
2. 预准备
选择Mathworks.Matlab.R2014a.Unix.iso- 右键 - 使用磁盘映像挂载器打开”,进入装载的虚拟光盘,拷贝全部文件至home/Matlab 文件夹(PS:我的原则是能GUI就GUI,喜欢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.04的gcc/g++版本是4.9.2,而Matlab 2014a(2015a)的版本是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
这里可以选择(ATLAS,MKL或者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的文件系统中。
很多人说,下载不了,本人于2105年11月8日使用该地址下载最新的2016版本,仍然没有问题,请大家细心操作^_^。
接下来是安装过程,先授权,然后安装:
$ tar zxvf parallel_studio_xe_2016.tar.gz (如果你是直接拷贝压缩文件过来的)
$ chmod a+x parallel_studio_xe_2016 -R
$ sh install_GUI.sh
PS: 安装的时候,建议使用root权限安装,过程中会要求输入Linux的root口令。(设置方法:命令行:$ sudo passwd)
二、MKL与CUDA的环境设置
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(官网原版OpenCV:http://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 Library(glog),下载地址: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. 配置路径,实现caffe对Python和Matlab接口的支持
PYTHON_LIB := /usr/local/lib
MATLAB_DIR := /usr/local/MATLAB/R2014a
c. 启用OpenCV 3.0, 去掉"#"
OPENCV_VERSION =3
6. 编译caffe-master!!!"-j16"是使用CPU的多核进行编译,可以极大地加速编译的速度,建议使用。
$ maketest -j16
$ makeruntest -j16
编译Python和Matlab用到的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等),leveldb,lmdb,HDF5等,根据自己需要选择不同输入吧。
$ 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文件夹,然后要删除一些文件:
1、lib/datasets/里的pascal_voc.pyc和imdb.pyc
2、output/里的faster_rcnn_alt_opt文件夹
3、data里的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
编译Python和Matlab用到的caffe文件
Sudo apt-get install python-pip
Pip install easydict
一、修改调用文件
1、 prototxt配置文件
models/pascal_voc/ZF/faster_rcnn_alt_opt文件夹下的5个文件,分别为stage1_rpn_trainNaN、stage1_fast_rcnn_trainNaN、stage2_rpn_trainNaN、stage2_fast_rcnn_trainNaN和fast_rcnn_testNaN,修改格式如下:
(1)stage1_fast_rcnn_trainNaN和stage2_fast_rcnn_trainNaN修改参数num_class:2(识别1类+背景1类),cls_score中num_output:2,bbox_pred中num_output:8。(只有这3个)
(2)stage1_rpn_trainNaN和stage2_rpn_trainNaN修改参数num_class:2(识别1类+背景1类)
(3)fast_rcnn_testNaN修改参数:cls_score中num_output:2,bbox_pred中num_output:8(只有这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.py和imdb.py后进入lib/datasets目录下删除原来的pascal_voc.pyc和imdb.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
如果执行错:
cv2 importERROR: apt-get installpython-opencv
yaml importError: apt-get install python-yaml
三、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进行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$
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.py的caffe.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-pipb) 安装ipython
终端输入以下命令:
sudo apt-get install ipythonc) 安装ipython[notebook]
终端输入以下命令:
sudo apt-get install ipython-notebookd) 启动ipython[notebook]终端输入以下命令:
ipython notebook
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-27 08:24
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社