两天没日没夜终于在ubuntu系统上装上了openpose,我饱受折磨后决定把安装步骤记录下来,以及一些参考博客。
安装环境:inter i7,rtx 2060,cuda10,cudnn7.4,opencv 3.2。
安装后续步骤或环境必需的依赖包,依次输入以下命令:
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 apt-get install git cmake build-essential
使用 gedit 命令打开配置文件:
sudo gedit ~/.bashrc
打开后在文件最后加入以下两行内容:
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
保存退出
source ~/.bashrc
进入 https://developer.nvidia.com/cuda-downloads ,依次选择 CUDA 类型然后下载安装即可。
重启后登录进入系统,配置 CUDA 环境变量,使用 gedit 命令打开配置文件:
sudo gedit ~/.bashrc
在该文件最后加入以下两行并保存:
export PATH=/usr/local/cuda-10.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
使该配置生效:
source ~/.bashrc
登录官网:https://developer.nvidia.com/rdp/cudnn-download ,下载对应 cuda 版本且 linux 系统的 cudnn 压缩包,注意官网下载 cudnn 需要注册帐号并登录。
pip install opencv-python==版本号
sudo apt install libopencv-dev python-opencv
对,你没看错直接安装openpose,也可以先安装caffe,这里我直接安装的openpose,用openpose自带的caffe去cmake,不过需要先把caffe解压后的文件放进去。
具体步骤:
需要下载OpenPose官方支持的版本(https://github.com/CMU-Perceptual-Computing-Lab/caffe),解压到openpose/3rdparty中,然后就不用官了。
需要下载pybind11(https://github.com/pybind/pybind11)解压到openpose/3rdparty中,名字叫pybind11。
下载OpenPose:
git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose.git
下载模型(这一步可跳过,因为之后会自动下载):
cd openpose
cd models
./getModels.sh
cd ..
打开cmke软件:
cmake-gui
填写openpose源码目录以及build:
点击Configure按钮, 选择Unix Makefile和use default native compling,点击finish按钮
最后点击Generate按钮。
OpenPose 编译
cd build
make -j`nproc`
编译过程中出现过一个错误 cannot find #include “caffe/proto/caffe.pb.h”
通过下图方法解决问题(在caffe目录下输入如下代码):
解决方案:
protoc src/caffe/proto/caffe.proto --cpp_out=.
mkdir include/caffe/proto
mv src/caffe/proto/caffe.pb.h include/caffe/proto
再次编译
make clean
make all -j8
安装成功!
安装完成后,在openpose文件夹下执行:
视频:
./build/examples/openpose/openpose.bin --video examples/media/video.avi
摄像头:
./build/examples/openpose/openpose.bin --face --hand
图片:
./build/examples/openpose/openpose.bin --image_dir examples/media/ --face --hand
您还可以按任何顺序添加任何可用标志。例如,以下示例在视频 ( --video {PATH}
)上运行,启用面部 ( --face
) 和手部 ( --hand
),并将输出关键点保存在磁盘 ( --write_json {PATH}
)上的 JSON 文件中。
# Ubuntu
./build/examples/openpose/openpose.bin --video examples/media/video.avi --face --hand --write_json output_json_folder/
./build/examples/openpose/openpose.bin --image_dir examples/media/ --write_images examples/media_out/