Ubuntu16.04 caffe py-faster-rcnn安装以及训练自己的数据

来源:互联网 发布:安装ubuntu没有win引导 编辑:程序博客网 时间:2024/05/22 04:53

Ubunt 16.04安装caffepyfasterrcnn,以及用rcnn训练自己的数据


1.安装caffe

1)安装相关依赖项

sudoapt-getinstall libprotobuf-devlibleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-devprotobuf-compiler

sudoapt-getinstall --no-install-recommendslibboost-all-dev

sudoapt-getinstalllibopenblas-dev liblapack-dev libatlas-base-dev

sudoapt-getinstalllibgflags-dev libgoogle-glog-dev liblmdb-dev

sudoapt-get install libprotobuf-dev libleveldb-dev libsnappy-devlibopencv-dev libhdf5-serial-dev protobuf-compiler

sudo apt-get install --no-install-recommends libboost-all-devsudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-devsudo apt-get install python-skimagesudo apt-get install python-protobufsudo apt-get install python-yaml   sudo pip install cythonsudo pip install easydict


2安装NVIDIA驱动

1)首先去官网 (http://www.nvidia.com/Download/index.aspx?lang=en-us )查看适合自己显卡的驱动并下载:

比如咱们的电脑的显卡是泰坦X,系统是64Linux,我们根据提示选择(.run)文件,如图:



















点 右下角的
SEARCH















点击
DOWNLOAD

我们下载的驱动是:NVIDIA-Linux-x86_64-384.98.run,放在根目录(home/xxx)目录下。

2)安装驱动;

在终端下输入:sudogedit /etc/modprobe.d/blacklist.conf输入密码后在最后一行加上blacklistnouveau.这里是将Ubuntu自带的显卡驱动加入黑名单。在终端输入: sudoupdate-initramfs -u;重启电脑(reboot)这里要尤其注意,安装显卡驱动要先切换到文字界面(tty),(Ctrl+Alt+F1~F6(咱们的电脑按Ctrl+Alt+F1),输入自己电脑的Name,然后输入密码。输入命令sudoservice lightdm stop,回到自己的根目录:

cd~,输入命令:sudo(sh)./NVIDIA-Linux-x86_64-384.98.run,根据提示安装驱动。安装结束,重启(reboot)。

安装完成之后输入以下指令进行验证: sudonvidia-smi ,若列出了GPU的信息列表则表示驱动安装成功。如下图:





















3)安装CUDA

1)下载CUDA,首先在官网上(https://developer.nvidia.com/cuda-80-ga2-download-archive)下载CUDA
































2)下载完成后(将下载好的cuda_8.0.61_375.26_linux.run文件放在home目录下)行以下命令:

sudochmod777cuda_8.0.61_375.26_linux.run

sudo  ./cuda_8.0.61_375.26_linux.run注意:执行后会有一系列提示让你确认,但是注意,有个让你选择是否安装nvidia375驱动 时,一定要选择否: Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.48? 因为前面我们已经安装了更加新的nvidia384,所以这里不要选择安装。其余的都直接默认 或者选择是即可。3)配置环境变量:打开~/.bashrc文件:sudo vim ~/.bashrc
将以下内容写入到~/.bashrc尾部:export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}export LD_LIBRARY_PATH=/usr/local/cuda8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}vim用法,按i插入,按esc退出编译,按输入wq保存退出)4)测试CUDAsamples输入:cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuerysudo makesudo ./deviceQuery如图所示表示安装cuda成功:


























4
)配置cudnn
首先去官网https://developer.nvidia.com/rdp/cudnn-download下载cuDNN,需要注册一个账号才能下载。下载版本号如下图:




















下载完成后,解压:
sudotar -zxvf ./cudnn-8.0-linux-x64-v5.1.tgz解压后进行如下操作: a.复制头文件:cd cuda/includesudocp cudnn.h /usr/local/cuda/include  #复制头文件 b.建立软连接(这一步可能要多次执行cd cudasudo cp lib64/libcudnn.* /usr/local/lib#复制动态链接库cd /usr/local/cuda/lib64/sudorm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件sudoln -s libcudnn.so.5.0.5 libcudnn.so.5 #生成软衔接sudoln -s libcudnn.so.5 libcudnn.so #生成软链接 5)安装opencv从官网(http://opencv.org/downloads.html)下载Opencv,并解压home目录下:unzip opencv-3.1.0.zipsudo mv opencv-3.1.0 opencv编译安装opencvcd ~/opencv&&mkdir build&&cd buildsudo aptinstall cmakesudo cmake -D CMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..因为opecv3.0cuda8.0不兼容。需要修改/opencv/modules/cudalegacy/src/graphcuts.cpp文件内容,如图: 















其中,
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)||(CUDART_VERSION>=8000)是修改完的部分,原来的被注释掉了。
Sudo make -j8sudo make install6)配置caffe1)下载caffegit clone https://github.com/BVLC/caffe.git2)修改Makefile文件a.将:NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)替换为:NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)b.将:LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5 改为:LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial(3)sudo cp Makefile.config.example Makefile.config修改Makefile.config文件:a.:#USE_CUDNN := 1修改成: USE_CUDNN := 1b.若使用的opencv版本是3的,则:#OPENCV_VERSION := 3 修改为OPENCV_VERSION := 3c.若要使用python来编写layer,则将#WITH_PYTHON_LAYER := 1  修改为 WITH_PYTHON_LAYER := 1 d.重要的一项 :将 # Whatever else you find you need goes here. 下面的1 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include2 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib 

修改为:

1 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial2 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial       (4)make -j8 && make test && make runtest注意:make 过程中如遇到有关libcudnn的问题,需要重新进行上面提及的软连接操作如图:说明caffe配置成功7MNIST数据集测试:cd ~/caffe下载MNIST数据库并解压缩:./data/mnist/get_mnist.sh将其转换成Lmdb数据库格式:./examples/mnist/create_mnist.sh训练网络:./examples/mnist/train_lenet.sh完成训练。2.安装配置Py-faster-rcnn1)下载Py-faster-rcnngit clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git2)安装相关依赖项:pip install cython 

    sudoapt-get install python-opencv

    pip install easydict

3编译Cythonmodules

cdpy-faster-rcnn/lib&&make

4)修改有关cudnn文件(因为py-faster-rcnn里的cudnn的版本过旧):

:

/home/zxj/py-faster-rcnn/caffe-fast-rcnn/include/caffe/util/

/home/zxj/py-faster-rcnn/caffe-fast-rcnn/include/caffe/layers/

/home/zxj/py-faster-rcnn/caffe-fast-rcnn/src/caffe/layers/

/home/zxj/py-faster-rcnn/caffe-fast-rcnn/src/caffe/util/

中所有有关cudnn的文件替换成我们刚编译的新caffe里相对应的文件。

5)将新编译的caffe里的MakefileMakefile.config文件复制到/home/zxj/py-faster-rcnn/caffe-fast- rcnn/目录下。

6修改文件:

py-faster-rcnn/caffe-fast-rcnn/src/caffe/test/test_smooth_L1_loss_layer.cpp

删除或者注释第十一行:#include"caffe/vision_layers.hpp"

7make-j8&&make test&&makeruntest

注意:make过程中如遇到有关libcudnn的问题,需要重新进行上面提及的软连接操作

如图
















makepycaffe

安装成功。

8测试:

cdpy-faster-rcnn

./tools/demo.py

如图:















安装成功。







3.py-faster-rcnn训练自己的数据

1制作数据集目录格式

下载

下载VOC2007数据集,附:http://pan.baidu.com/s/1gfdSFRX
删除:
data/VOCdevkit2007/VOC2007
下所有文件

新建

./data/VOCdevkit2007/VOC2007新建AnnotationsImageSets/Main;JPEGImages

说明:

Annotations:保存标签txt转换的xml文件
JPEGImages
:图片文件
ImageSets/Main
:文件名列表(不含后缀)
训练集:train.txt
训练验证集:trainval.txt
测试集:test.txt
验证集:val.txt

2)训练前的一些修改

1修改prototxt配置文件:

models/pascal_voc/ZF(VGG)/faster_rcnn_alt_opt文件夹下的5个文件,分别为:(a)stage1_rpn_train.ptstage1_fast_rcnn_train.pt

stage2_rpn_train.ptstage2_fast_rcnn_train.pt

    (b) fast_rcnn_test.pt

rpn_train.pt文件修改:num_class:1+n(识别1+背景n类)

ast_rcnn_train.pt文件修改:

num_class:1+n(识别n+背景1类)

cls_scorenum_outputnum_class:1+n(识别n+背景1类)

bbox_prednum_outputnum_class:1+n×4(识别n+背景1类)

(2)修改lib/datasets/pascal_voc.py

self._classes=('__background__',#alwaysindex 0

    'people')(写上自己训练的类别)

(3) 修改lib/datasets/imdb.pyappend_flipped_images(self)函数

boxes[:,2] = widths[i] - oldx1 - 1下加入代码:

    forb in range(len(boxes)):

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

      boxes[b][0] = 0


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

    importpy_compile

    py_compile.compile(r'imdb.py')

    py_compile.compile(r'pascal_voc.py')


(5)删除缓存文件
删除output/
删除py-faster-rcnn/data/cache中的文件和
py-faster-rcnn/data/VOCdevkit2007/annotations_cache
中的文件删除。

(6)调参
① 学习率等之类的设置:

py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_alt_opt中的solve文件设置



② 迭代次数:
py-faster-rcnn/tools/train_faster_rcnn_alt_opt.py
中修改
py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_alt_opt
里对应的solver文件(有4个)也修改,stepsize小于上面修改的数值。

(7)训练
./experiments/scripts/faster_rcnn_alt_opt.sh0 ZF pascal_voc





阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 大秦之剑神临空 落九霄 北京临空皇冠假日酒店 孝感临空经济区吧 北九水风景区 北九水 北九水旅游攻略 崂山 北九水 青岛北九水住宿 崂山北九水住宿 崂山北九水酒店 青岛北九水 青岛北九水风景区 青岛崂山北九水住宿 崂山北九水风景区门票价格 崂山北九水风景区门票 青岛北九水旅游攻略 北二外考研复试 北二外专升本 北二外 德语 北二外金融学 北二外研究生学费 北二外英语培训 北二外南门宾馆 北二外成人高考 北二外分数线 北二外 mba 北二外好不好 北京二外 北二外国际部 北二外地址 北二环 石家庄北二环附近楼盘 北油所交易规则 北京北五环 北京北五环二手房 北京北五环房价 北交大原校长逝世 北交大研究生院 北交大邮箱 北交大爆炸事故 北交大什么档次