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

前言:参加英特尔杯需要配置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
多图超详细Ubuntu16.04下配置CUDA8.0+cuDNN5.1+Caffe+OpenPose_第1张图片
然后会进入安装配置界面
注意:因为在这之前已经安装过NVIDIA显卡驱动,所以这里不要选择安装显卡驱动。(即在下图输入n)

多图超详细Ubuntu16.04下配置CUDA8.0+cuDNN5.1+Caffe+OpenPose_第2张图片

其余的都直接默认或者选择是即可。
接下来使用下面的语句打开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
多图超详细Ubuntu16.04下配置CUDA8.0+cuDNN5.1+Caffe+OpenPose_第3张图片
注意不要有空格

接下来重启电脑(不用命令行直接手动重启也可以)
sudo reboot
依次执行下列语句测试CUDA的samples
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
如果显示的结果是关于GPU的一些信息,则说明安装成功(下图以我的笔电为例)

多图超详细Ubuntu16.04下配置CUDA8.0+cuDNN5.1+Caffe+OpenPose_第4张图片
至此,CUDA8.0就算安装完成了

2.CUDNN5.1安装

点这里下载cuDNN
或者直接从我的网盘上下载,密码2m3n
如下图选择要下载的文件
多图超详细Ubuntu16.04下配置CUDA8.0+cuDNN5.1+Caffe+OpenPose_第5张图片
多图超详细Ubuntu16.04下配置CUDA8.0+cuDNN5.1+Caffe+OpenPose_第6张图片
在适当的位置打开控制台后,执行下列语句对安装包进行解压
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
接下来在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,所以红色区域的信息会显示出来,如果你是第一次运行,这里是空白的),下图是我的配置
多图超详细Ubuntu16.04下配置CUDA8.0+cuDNN5.1+Caffe+OpenPose_第7张图片
就像官方指导中的示例图片一样(下图)

多图超详细Ubuntu16.04下配置CUDA8.0+cuDNN5.1+Caffe+OpenPose_第8张图片
然后点击Configure,会弹出下面的对话框,如图选择,然后点击Finish
多图超详细Ubuntu16.04下配置CUDA8.0+cuDNN5.1+Caffe+OpenPose_第9张图片
接下来会报错(找不到有关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
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
如图所示
多图超详细Ubuntu16.04下配置CUDA8.0+cuDNN5.1+Caffe+OpenPose_第10张图片
再将
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相对于之前的版本相关文件路径发生变化所致。修改后如图所示
多图超详细Ubuntu16.04下配置CUDA8.0+cuDNN5.1+Caffe+OpenPose_第11张图片
保存后退出

在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
保存后退出
修改结果如下图所示
多图超详细Ubuntu16.04下配置CUDA8.0+cuDNN5.1+Caffe+OpenPose_第12张图片
再接着将
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
修改后的结果如图所示
多图超详细Ubuntu16.04下配置CUDA8.0+cuDNN5.1+Caffe+OpenPose_第13张图片
再将
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
修改后的结果如图所示
多图超详细Ubuntu16.04下配置CUDA8.0+cuDNN5.1+Caffe+OpenPose_第14张图片
再在caffe目录下,执行下面的命令进行编译
make all
编译完成后,执行下面的命令运行测试
make test
make runtest
成功的话应该如图所示
多图超详细Ubuntu16.04下配置CUDA8.0+cuDNN5.1+Caffe+OpenPose_第15张图片

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

打开CMake,如图进行配置
重点是将BUILD_CAFFE的勾取消
Caffe_INCLUDE_DIRS和Caffe_LIBS的路径参考下图
多图超详细Ubuntu16.04下配置CUDA8.0+cuDNN5.1+Caffe+OpenPose_第16张图片
再点击Configure和Generate进行生成
接下来在openpose文件夹下打开终端,执行
cd build/
make -j`nproc`
进行编译,顺利的话就直接编译好了,像我这种运气不太好的会 遇到caffe.pb.h丢失的问题
多图超详细Ubuntu16.04下配置CUDA8.0+cuDNN5.1+Caffe+OpenPose_第17张图片
解决方法如下:

找到 caffe.proto文件(caffe/src/caffe/proto/caffe.proto)
在这个目录下打开终端,执行下列语句作用是根据caffe.proto生成caffe.pb.h和caffe.pb.cc文件
sudo protoc --cpp out=/home/ caffe.proto
接着在/home目录下找到生成的 caffe.pb.h和caffe.pb.cc文件
多图超详细Ubuntu16.04下配置CUDA8.0+cuDNN5.1+Caffe+OpenPose_第18张图片
之后在/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,如下图所示即为安装成功
多图超详细Ubuntu16.04下配置CUDA8.0+cuDNN5.1+Caffe+OpenPose_第19张图片
关于运行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

你可能感兴趣的:(开发环境搭建)