前置要求
众所周知,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
若有所帮助请点个赞哈