1. 程式人生 > >多圖超詳細Ubuntu16.04下配置CUDA8.0+cuDNN5.1+Caffe+OpenPose

多圖超詳細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

下載完“cuda_8.0.61_375.26_linux.run”檔案後,在想要安裝的檔案目錄下開啟控制檯,執行下列語句,執行安裝檔案
sudo sh cuda_8.0.61_375.26_linux.run
接下來輸入accept
然後會進入安裝配置介面 注意:因為在這之前已經安裝過NVIDIA顯示卡驅動,所以這裡不要選擇安裝顯示卡驅動。(即在下圖輸入n)



其餘的都直接預設或者選擇是即可。
接下來使用下面的語句開啟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安裝

如下圖選擇要下載的檔案

在適當的位置開啟控制檯後,執行下列語句對安裝包進行解壓
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,所以紅色區域的資訊會顯示出來,如果你是第一次執行,這裡是空白的),下圖是我的配置
就像官方指導中的示例圖片一樣(下圖)


然後點選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
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
接著在/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