您的位置:首页 > Web前端

多图超详细Ubuntu16.04下配置CUDA8.0+cuDNN5.1+Caffe+OpenPose

2018-02-06 17:20 1721 查看
前言:参加英特尔杯需要配置Caffe(Intel Caffe的安装这里就没写了)和OpenPose,网上找到的Ubuntu下配置的教程比较少,踩了一天的坑之后决定还是把它写下来,方便后来的人配置开发环境。下面的教程里面默认是N卡,且已经安装好驱动了。

0.安装依赖

因为对linux不怎么熟悉,所以为了保证后面的安装不出奇怪的错误,先把可能的依赖文件都装一下比较稳妥,请各位自行决定是否安装:
依次执行下列语句进行安装:

sudo apt-get update
sudo apt-get install build-essential cmake git pkg-config
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install libatlas-base-dev
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install libopencv-dev


1.安装CUDA8.0

(NVIDIA上下载CUDA的网站最近在维护,所以我先把“cuda_8.0.61_375.26_linux.run”文件传到我的百度网盘上,点击这里下载,密码cx9w)

下载完“cuda_8.0.61_375.26_linux.run”文件后,在想要安装的文件目录下打开控制台,执行下列语句,运行安装文件
sudo sh cuda_8.0.61_375.26_linux.run

接下来输入accept



然后会进入安装配置界面
注意:因为[b]在这之前已经安装过NVIDIA显卡驱动,所以这里不要选择安装显卡驱动。(即在下图输入n)[/b]



其余的都直接默认或者选择是即可。

接下来使用下面的语句打开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的samples

cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

如果显示的结果是关于GPU的一些信息,则说明安装成功(下图以我的笔电为例)



至此,CUDA8.0就算安装完成了

2.CUDNN5.1安装

点这里下载cuDNN
或者直接从我的网盘上下载,密码2m3n
如下图选择要下载的文件





在适当的位置打开控制台后,执行下列语句对安装包进行解压

tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz

再执行下列语句,对安装CUDA的文件夹内的文件进行一些替换,完成安装(这里的文件路径根据CUDA实际安装位置可能需要作出一些调整,如果在这里报错,可以翻一下CUDA文件夹)

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

至此,cuDNN安装完毕

3.OpenPose和Caffe的安装

OpenPose依赖Caffe进行编译,一开始我是根据官方的安装指导进行安装的,但是Caffe的安装总是出现问题(出现caffe.pb.h丢失的fatal error),于是我将OpenPose安装到一半,再对Caffe进行手动安装,修改一些文件后最终解决了这个问题,成功运行OpenPose

首先是OpenPose的前半部分安装

使用下列命令从官网克隆安装文件
git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose[/code] 接下来在OpenPose文件夹下打开控制台,执行下面的命令,检查是否需要更新

git pull origin master


下载并安装CMake GUI

sudo apt-get install cmake-qt-gui

如果电脑中没有安装OpenCV,执行下列命令安装OpenCV

apt-get install libopencv-dev

打开CMake(如果你不知道安装在哪里,可以打开/usr/share/applications查找快捷方式)
如图所示,配置好上面两行的路径(由于在这之前我已经配置好了OpenPose,所以红色区域的信息会显示出来,如果你是第一次运行,这里是空白的),下图是我的配置



就像官方指导中的示例图片一样(下图)



然后点击Configure,会弹出下面的对话框,如图选择,然后点击Finish



接下来会报错(找不到有关Caffe的那两个目录),不要慌,因为没有安装Caffe(其实官方教程里面有一步是使用OpenPose自带的一个文件安装Caffe的,但是我执行过后没有什么用,所以在我的教程里面直接跳过了……感兴趣的可以去看一下官方安装指导
于是我们先将OpenPose放到一边,开始安装Caffe
由于我已经在home下安装了Intel Caffe,所以为了与之区分,BVLC Caffe我就安装在/home/apophis/openpose/3rdparty下了
在/home/apophis/openpose/3rdparty下打开终端,执行下列命令来clone Caffe(在此之前可能要把这个目录下的caffe文件夹给删除一下,不然会无法写入)
git clone https://github.com/BVLC/caffe.git[/code] 
cd caffe

执行下列语句复制出一个配置文件来

cp Makefile.config.example Makefile.config

接着在caffe文件夹下对其进行编辑

sudo gedit Makefile.config


先将Makefile.config文件中

OPENCV_VERSION :=3

注释掉,并保证
USE_OPENCV := 0

是被注释掉的,即:

#USE_OPENCV := 0

修改后的结果:

#USE_OPENCV := 0

#OPENCV_VERSION := 3

如图所示



再将

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib

修改为

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

这是因为Ubuntu16.04相对于之前的版本相关文件路径发生变化所致。修改后如图所示



保存后退出

在caffe根目录下,找到Makefile文件,打开文件,Ctrl+F查找“Derive include and lib directories”一节,找到“LIBRARIES +=”的最后一次出现的那一行,即

LIBRARIES +=opencv_imgcodecs


在它的后面添加(注意有空格)
opencv_imgcodecs opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs

此时

LIBRARIES +=opencv_imgcodecs


应该变为

LIBRARIES += opencv_imgcodecs  opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs

保存后退出

修改结果如下图所示



再接着将

NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)

替换为

NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

修改后的结果如图所示



再将

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


修改后的结果如图所示



再在caffe目录下,执行下面的命令进行编译

make all

编译完成后,执行下面的命令运行测试

make test

make runtest

成功的话应该如图所示



至此,Caffe就安装完毕了,接下来继续OpenPose的安装

打开CMake,如图进行配置
重点是将BUILD_CAFFE的勾取消
Caffe_INCLUDE_DIRS和Caffe_LIBS的路径参考下图



再点击Configure和Generate进行生成
接下来在openpose文件夹下打开终端,执行
cd build/
make -j`nproc`

进行编译,顺利的话就直接编译好了,像我这种运气不太好的会遇到caffe.pb.h丢失的问题




解决方法如下:

找到caffe.proto文件(caffe/src/caffe/proto/caffe.proto)
在这个目录下打开终端,执行下列语句作用是根据caffe.proto生成caffe.pb.h和caffe.pb.cc文件

sudo protoc --cpp out=/home/ caffe.proto<
9732
/pre>
接着在/home目录下找到生成的caffe.pb.h和caffe.pb.cc文件



之后在/openpose/3rdparty/caffe/include/caffe下新建一个叫做proto的文件夹,将生成的caffe.pb.h和caffe.pb.cc文件放进去
之后重新在openpose文件夹下执行

cd build/
make -j`nproc`

安装完成后,在openpose文件夹下执行

./build/examples/openpose/openpose.bin --video examples/media/video.avi

打开openpose的DEMO,如下图所示即为安装成功



关于运行openpose的其他方法,请点击这里查看官方指导
到此为止,教程就全部结束了,这是我的第一篇博客,所以也不知道写的好不好……
参考资料:
1.http://blog.csdn.net/qq_32768743/article/details/72832847

2.http://blog.csdn.net/a1154761720/article/details/52302595

3.http://blog.csdn.net/thomascai001/article/details/53940430

4.https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/installation.md

5.http://caffe.berkeleyvision.org/installation.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息