前置要求
衆所周知,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_DIRS和LIBRARY_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
若有所幫助請點個贊哈