您的位置:首页 > 编程语言 > Qt开发

深度学习py-faster-rcnn/Qt5.8工作环境搭建教程

2017-07-02 10:22 1146 查看

深度学习工作环境搭建教程

1.安装系统

1.1 选择一个Linux发行版

目前使用的是基于Ubuntu开发的Mint,必须使用x64. 下载地址在这里,推荐使用Mate的皮肤版本。

1.2 使用U盘安装到系统

具体方法不做说明,网上查询”Linux制作U盘启动盘“相关资料。

如果系统无法启动Mint的安装界面,可能需要在BIOS的boot下关闭EFI模式并切换为Legacy模式。

1.3 简单配置Linux系统

更新Linux下载源

(注意中间操作不要中断)



更新GPU驱动



下载需要一定的时间

如果一直卡在这个界面(例如40分钟以上),则需要手动安装驱动。

教程参考这篇文档

安装好驱动以后要重启一次。如果安装完以后无法进入桌面环境(进入命令行或者无法进入操作系统),有可能是你的安装方法、驱动版本下载有误,那就需要你仔细google具体方法了。

2. 安装软件库依赖

2.1 编译安装opencv

接下来编译安装opencv。

去opencv官网下载Linux x64下的源代码,文件大小约为90MB,这里使用2.4.13为例。

具体参考这个教程
apt-get
安装时最好一个一个安装,这样不会漏装。

正常情况下就编译完opencv了,安装时可以使用多线程进行编译,编译时间取决于机器的CPU性能:

$ sudo make install -j16


在apt-get安装很多包前一般需要

$ sudo apt-get update


2.2 安装CUDA

这里下载cuda8.0的deb安装包,安装方法在页面中有描述。注意版本要对应ubuntu16.04(mint18基于ubuntu16.04),安装前可能要给予权限:

$ sudo chmod a+x cuda-instal-file


然后添加CUDA8.0的环境变量:

先安装一个文本编辑器,会用vim就装vim,不会vim就装gedit:

$ sudo apt-get install gedit


/etc/profile
文件末尾添加内容:

$ sudo gedit /etc/profile


export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH


保存退出

然后重启一下计算机。

$ sudo reboot


如果此时没有正常进入桌面,而是黑屏或者进入命令行模式,说明cuda与显卡驱动之间发生冲突,可能需要先重装系统,再手动安装驱动。

2.3 安装CUDNN

CUDNN是faster-rcnn框架必须的计算加速库,下载地址是这里。需要安装基于cuda8.0的V5版本。下载需要注册用户。

CUDNN的安装方法详细见这里,参考其中的cuDNN安装部分。

具体方法是复制include和lib64文件夹到对应目录

然后在
/usr/local/cuda/lib64/


sudo rm -rf libcudnn.so.5 libcudnn.so
sudo chmod 777 libcudnn.so.5.1.5
sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so


实际上它就是建立了一个链接,从libcudnn.so -> libcudnn.so.5 -> libcudnn.so.5.1.5,系统调用时会调用libcudnn.so

2.4 下载py-faster-rcnn

py-faster-rcnn是github上的开源框架,先进入这个地址

然后安装一下git:

sudo apt-get install git


然后按照安装要求下载py-faster-rcnn:

$ cd ~
# Make sure to clone with --recursive
$ git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git[/code] 
/# 后面的部分是注释

Caffe会在Py-faster-rcnn下载的时候一并下载下来。

3. 配置Caffe依赖环境

3.1 安装caffe依赖库

首先要用apt-get安装很多基本的依赖库,参考这个教程

相关库要一个一个安装,防止遗漏。

3.2 编译Caffe环境

相关依赖安装好以后,进入caffe目录

$ cd ~/py-faster-rcnn/caffe-fast-rcnn
$ cp Makefile.config.example Makefile.config


使用gedit将Makefile.config

先不注注释掉USE_CUDNN := 1

# Whatever else you find you need goes here.INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib# 修改为# Whatever else you find you need goes here.INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serialLIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/i386­-linux­-gnu/hdf5/serial


将Makefile中的173行进行修改:

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


<
4000
p>去掉第87行的注释,变为:

WITH_PYTHON_LAYER := 1


然后在
~/py-faster-rcnn/caffe-fast-rcnn/
目录下

$ make all -j12


开始编译

如果中间报错,则需要查找具体原因,具体原因教材中无法全面覆盖,需要自己google。如果编译没有问题,说明GPU下的caffe编译(不带cudnn)没有问题,下面编译cudnn下的caffe。

用gedit编辑Makefile.config,去掉第五行的USE_CUDNN := 1注释,变成:

USE_CUDNN := 1


然后在
~/py-faster-rcnn/caffe-fast-rcnn
目录下:

$ make clean


这一步是消除之前的编译内容。

然后再

$ make all -j12


会出现报错:



问题原因:py-faster-rcnn在开发时使用了更早的cudnn库,因此调用出现错误。解决方法:去caffe项目主页git clone一个最新的caffe,然后替换相关的文件。

具体操作教程在这里

然后再

$ make clean
$ make all -j12


我这边编译就没有出现问题了

然后是编译一个caffe测试环境:

$ make test -j12


接着是

$ make runtest -j12


会出现报错:



解决方法看这里



然后继续编译

$ make runtest -j12


最后会运行一遍test程序,确保每个caffe功能都正常。这样caffe编译工作结束。

3.3 配置py-caffe依赖环境

py-caffe就是caffe的python接口

使用
sudo apt-get install
安装下列依赖:

python-dev
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


然后编译pycaffe:

$ cd ~/py-faster-rcnn/caffe-fast-rcnn
$ make pycaffe


然后在系统中加入pycaffe的环境变量:

$ gedit ~/.bashrc
# 在最后一行加入:
export PYTHONPATH=/home/your_username/py-faster-rcnn/caffe-fast-rcnn/python:$PYTHONPATH
$ source ~/.bashrc
$ python

>>> import caffe
>>>


如果没有报错的话说明python可以调用caffe了。第一次matplotlib可能需要缓冲一下。

4. 配置Qt工程环境

4.1 安装Qt5.8

下载Qt,地址在这里。下载需要先注册用户账户。

下载qt-opensource-linux-x64-5.8.0.run

安装前先赋予它一个权限:

$ sudo chmod 755 qt-opensource-linux-x64-5.8.0.run
$ sudo ./qt-opensource-linux-x64-5.8.0.run


一般会安装在
/opt/
目录下

最后检查一下是否正确安装:

$ cd /opt
$ ls


然后你就可以在开始菜单搜索“qt”,就可以打开QT的IDE了。

4.2 工程代码编译测试

将工程测试文件复制到桌面,用Qt IDE打开。注意要关闭影子编译(shadow build)模式:



将训练好的Caffemodel文件和模型配件pt文件到你的系统路径下,改名:

xxx.pt
xxx.caffemodel


xxx.pt是模型结构文件

xxx.caffemodel是模型参数文件

然后将工程文件的所有环境变量地址换成本机的,在项目文件下。

具体可以参考这篇博客,这篇博客使用了C++调用Py-faster-rcnn的模型接口。

然后需要安装一些依赖和解决报错问题,下面一个一个来:

如果工程中使用了vlc调取视频流,那么就需要安装两个东西:

$ sudo apt-get install libvlc-dev


再去软件中心输入vlc,安装vlc

报错:



解决方法看这里:



报错:



cannot find -lcaffe
解决方法:

$ cd ~/py-faster-rcnn/caffe-fast-rcnn/
$ make distribute


原因是工程需要调用caffe的python接口,但是py-faster-rcnn里面没有做python接口的库文件。

cannot find -lgpu_nms
的解决方法:

这个问题是因为
~/rootdir/lib/nms


下没有单独编译gpu_nms.so库,但是编译文件已经在Makefile文件里写好了,所以直接make就可以了。

这里
rootdir
~/py-faster-rcnn/
为了方便后面都用这个路径指代根目录。

因此:

$ sudo apt-get install python-setuptools
$ cd /rootdir/lib
$ sudo make
$ cd nms
$ cp gpu_nms.so libgpu_nms.so


还有一个类似的问题,是工程需要调用
gpu_nms.cpp
文件,这里也一并解决掉:

$ sudo apt-get install python-setuptools
$ cd /rootdir/lib
$ sudo python setup.py install


这样就在
/lib/nms
下产生了
gpu_nms.cpp
文件

接着会报错:



这是因为工程中引用了一个外部库用以产生声音所致,解决方法在这里

后面会报错:

no module named rpn.proposal_layer


这是因为你的Qt环境变量里面导入了错误的PYTHON环境变量。

方法:

左边栏的“Project”里面,进入“Build Environment“,然后修改PYTHONPATH,将路径改成你的计算机的py-faster-rcnn/caffe-fast-rcnn/python路径。

再后面会出现一系列库缺失的报错:

$ No module named ymal
...


方法就是一个一个地安装就可以了:

sudo apt-get install python-yaml


$ No module named easydict


这个有点不太一样

$ sudo apt-get install python-pip
$ sudo pip install easydict


再后面就可以将工程运行起来了。

配置好就可以正常运行程序了。

4.3 克隆系统环境

前面安装的那么辛苦,有时候一个包管理错误都有可能找不到原因,所以工作环境配置好以后有必要对磁盘镜像进行克隆。

方法就是用Clonezilla这个发行版对磁盘进行克隆。方法和Linux安装类似,首先下载镜像->安装到U盘系统盘->准备一个移动硬盘->克隆整个系统磁盘(注意不要把克隆和恢复搞反了)

镜像下载地址

具体的使用方法这里就不做说明了,可以google到。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  深度学习 ubuntu
相关文章推荐