https://github.com/CMU-Perceptual-Computing-Lab/openpose可以参考官网然后查资料配置。官网只介绍需要哪些东西,至于怎么安装所需的东西,就自己查资料。我这边就总结了我自己配置的过程。
准备工作
更新源:
sudo gedit /etc/apt/sources.list
在最后加上
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
然后更新
sudo apt-get update
sudo apt-get upgrade
安装依赖 (可能有重复的)
sudo apt-get install libprotobuf-dev
sudo apt-get install libleveldb-dev
sudo apt-get install libsnappy-dev
sudo apt-get install libopencv-dev
sudo apt-get install libhdf5-serial-dev
sudo apt-get install protobuf-compiler
sudo apt-get install libgflags-dev
sudo apt-get install libgoogle-glog-dev
sudo apt-get install liblmdb-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev
sudo apt-get install -y protobuf-compiler libatlas-base-dev libhdf5-serial-dev libboost-all-dev libboost-all-dev
--------------------------------------------------------
正式开始
1.caffe配置
下载
进入你下载好的caffe目录,生成Makefile.config文件,这里是将caffe目录下自带的Makefile.config.example文件复制一份并更名为Makefile.config
cp Makefile.config.example Makefile.config
修改Makefile.config
sudo gedit Makefile.config
去掉CPU_ONLY前面的注释
配置引用文件路径
修改前
修改后
添加的内容
/usr/include/hdf5/serial
/usr/lib/x86_64-linux-gnu/hdf5/serial
最后编译caffe
sudo make all
sudo make test
sudo make runtest
运行完测试,出现这样的界面说明编译成功了。
如果出现fatal error: caffe/proto/caffe.pb.h: No such file or directory #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
然后重新编译。
2.安装opencv
前面在安装依赖的时候已经安装了,不过是2.4版本的。apt-get安装的只能是2.4版本,高的不行。
你也可以安装更高的版本opencv3,但是在编译caffe前要把Makefile.config中的OPENCV_VERSION :=3 前面的注释去掉。
3.open pose配置
你也可以直接去https://github.com/CMU-Perceptual-Computing-Lab/openpose看怎么配置,教程都有,只是很简单。
下载
https://github.com/CMU-Perceptual-Computing-Lab/openpose
下载模型
方法一:去你的open pose目录下的models下,执行getModels.sh,就会自动下载模型。---速度超级慢!超级慢!
方法二:https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/prerequisites.md 参考这个下载
方法三:先跳过这步,下面配置的时候会自动下载。---一样下载速度超级慢!
配置cmake
打开camke界面
cmake-gui
填写路径,上面填的是你下载的open pose的根目录,下面是你build出来的路径,我们这边放到了open pose根目录,然后点击configure。
点完后会出现下面的提示,点击yes。
然后出现下面的画面,点击finish。
然后出现下面的画面,提示有错误。
然后修改配置
GPU_MODE选择CPU_ONLY
取消USE_CUDNN
再点击configure
还是出错了,这里会把错误标出来。
继续配置
USE_MKL和BUILD_CAFFE都取消。
Caffe_INCLUDE_DIRS填你下载的caffe目录下的include目录
Caffe_LIBS填你caffe目录下的build/lib/libcaffe.so
然后点击configure。
现在配置全部正确了。会提示Configuring done。如果你的模型前面没有下载,这里会自动去下载,看你有没有打钩DOWNLOAD_BODY__MODEL等选项。如果已经下载了,打钩了也不会下载。
最后点击Generate。
4.编译open pose
进入到caffe根目录,执行下面语句,不然编译会提示缺少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
然后进入刚才cmake生成的build目录下,编译open pose。
sudo make -j4
编译成功后是下面的画面
5.运行Demo
参考
https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/quick_start.md#quick-start
进入到open pose的根目录,执行命令
./build/examples/openpose/openpose.bin --image_dir examples/media/
顺利的话就出现下面的画面,不过会很卡,因为没有GPU。你也可以加上参数
--net_resolution "80x80"
提高运行速度,但是精度会降低。要16的倍数,不然会出错。
如果出现下面的错误:
[libprotobuf ERROR google/protobuf/message_lite.cc:123] Can't parse message of type "caffe.NetParameter" because it is missing required fields: layer[0].clip_param.min, layer[0].clip_param.max
F0703 17:48:42.621987 13304 upgrade_proto.cpp:97] Check failed: ReadProtoFromBinaryFile(param_file, param) Failed to parse NetParameter file: models/pose/body_25/pose_iter_584000.caffemodel
*** Check failure stack trace: ***
换个模型执行看看
./build/examples/openpose/openpose.bin --image_dir examples/media/ --model_pose COCO
./build/examples/openpose/openpose.bin --image_dir examples/media/ --model_pose MPII
如果可以,就说明你的其它模型是好的,把坏的模型删除,然后重新下载。
如果不行,参考https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/faq.md#zero-people-detected看看如何解决。