UBUNTU16下配置gpu版本openpose以及配置過程中相關問題的解決

前置要求

衆所周知,Openpose人體骨骼檢測框架是基於Caffe框架的,所以在安裝openpose前應該把caffe框架配置完成。配置Caffe是一個令人頭疼的事,這裏強烈推薦使用CMU專門提供給openpose框架的Caffe版本。
該Caffe版本可以從此下載:https://github.com/CMU-Perceptual-Computing-Lab/caffe

Caffe的安裝

1.在目錄中找個位置把Caffe的代碼git下來:

git clone https://github.com/CMU-Perceptual-Computing-Lab/caffe

2.安裝Caffe所需要的依賴包:

sudo apt-get --assume-yes install build-essential
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo  pip install --upgrade numpy protobuf

如果找不到相關的包,輸入下面的命令,然後繼續裝上面的包,總會裝上的,我用的是清華源,實在不行就一行一行裝,重複幾次下面的命令就好

sudo apt-get update --fix-missing

3.修改Makefile.config文件
openpose版本的Caffe在目錄下面已經有好幾個對應的Makefile.config文件了,我的系統是Ubuntu16,cuda10,乍一看沒有對應的Makefile.config,於是我用了Makefile.config.Ubuntu16_cuda8.example這個版本,先將文件重命名

mv Makefile.config.Ubuntu16_cuda8.example Makefile.config

下面是Makefile.config裏面需要修改的地方

//把下面幾處前的#號去掉
# USE_CUDNN := 1
# OPENCV_VERSION := 3 (若你使用的是opencv2,則忽略該條)
# WITH_PYTHON_LAYER := 1

修改INCLUDE_DIRSLIBRARY_DIRS的路徑爲虛線下部分

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

4.修改Caffe目錄下的Makefile文件

NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC$(COMMON_FLAGS)
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
----------------------------修改爲如下------------------------------------------
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

看到有文章說要把**/usr/local/cuda/include/host_config.h**中的下面這行給註釋掉。因爲我係統中沒有該文件,就沒管了

#error-- unsupported GNU version! gcc versionslater than 4.9 are not supported!
----------------------------修改爲如下------------------------------------------
// #error-- unsupported GNU version! gcc versionslater than 4.9 are not supported!

5.編譯
在Caffe目錄下輸入命令

sudo make all -j8  (8核並行,當然不用-j8也行)

編譯沒問題就可以測試Caffe了

sudo make runtest

6.在編譯的時候報錯了

LD -o .build_release/lib/libcaffe.so.1.0.0
CXX tools/caffe.cpp
CXX tools/compute_image_mean.cpp
CXX tools/convert_imageset.cpp
/usr/bin/ld: 找不到 -lcblas
/usr/bin/ld: 找不到 -latlas
collect2: error: ld returned 1 exit status
Makefile:582: recipe for target '.build_release/lib/libcaffe.so.1.0.0' failed
make: *** [.build_release/lib/libcaffe.so.1.0.0] Error 1
make: *** 正在等待未完成的任務....

提示找不到lcblas和latlas的庫文件,這種情況多半是包沒有安裝到,或者Makefile.config中的鏈接路徑問題,百度一搜發現是openblas包沒裝上

sudo apt-get install libopenblas-dev

然後修改Makefile.config文件中的Blas路徑如下

BLAS := open
BLAS_INCLUDE := /usr/include/openblas
BLAS_LIB := /usr/lib

然後再次重來第5步的編譯

openpose的配置

1.先把openpose下載到目錄

git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose

2.安裝CMAKE和CMAKE-GUI

sudo apt-get install cmake
sudo apt-get install cmake-qt-gui

3.在openpose目錄中的3rdparty下建立Caffe的軟連接,並且在openpose目錄下新建build文件夾

ln -s Caffe目錄的絕對路徑   (openpose所在目錄)/openpose/3rdparty/caffe
mkdir build

4.打開CMAKE,直接在命令行輸入cmake-gui,或者在菜單中搜cmake點擊打開。填好openpose相關路徑後點擊configure
在這裏插入圖片描述在這裏插入圖片描述
(1)首選項BUILD_CAFFE可以不用勾選了(因爲之前我們已經編譯過CAFFE)
(2)Caffe_INCLUDE_DIRS的路徑爲openpose/3rdparty/caffe/include
(3)Caffe_LIBS的路徑爲openpose/3rdparty/caffe/build/lib/libcaffe.so。
(4)別點Generate,先把模型下載好,然後覆蓋到openpose/models.
openpose的模型的百度網盤鏈接爲: https://pan.baidu.com/s/1Y-0vTsVCVJyMeEmXJllpJg 提取碼: sg79
(5)點擊configure,再點擊generate

5.命令行進入openpose/build中,編譯openpose

sudo make -j8 (-j8如前面一樣,加不加隨意,加了編譯快)

6.編譯過程報了個小錯,提示找不到 #include “caffe/proto/caffe.pb.h“,百度了一下,命令行輸入

protoc src/caffe/proto/caffe.proto --cpp_out=.
mkdir include/caffe/proto
mv src/caffe/proto/caffe.pb.h include/caffe/proto

繼續第5步。

7.編譯完成後測試,命令行回到openpose目錄,測試openpose提供的小demo

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

若有所幫助請點個贊哈

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章