×

多人脸部\肢体\手部识别OpenPose安装

96
Alex_lxy
2017.08.25 15:03* 字数 1692

项目网址:


https://github.com/CMU-Perceptual-Computing-Lab/openpose
项目需求:

  1. 操作系统: win7, win8, win10; ubuntu14.04, 16.04
  2. cuda: 7.5, 8
  3. cuDNN5.1
pose_face_hands.gif

windows下的安装:


OpenPose目前可以在Win7,Win8或者Win10下成功安装.

安装所需的库文件:

按照顺序安装VS2015 -> CUDA8 -> cuDNN5.1.

双击{openpose_path}\windows\download_3rdparty_and_models.bat
下载所需的依赖文件和模型。
双击{openpose_path}\windows\OpenPose.sln
右键选择VS2015打开工程文件.

尝试编译和执行demo:

右键单击 OpenPoseDemo --> Set as StartUp Project.
将VS2015工程模式从debug改为release.
按F5编译运行. 在编译之后,openpose会自动打开网络摄像头, 对拍摄到的图像进行识别.

在shell中执行exe文件(也就是在VS外执行exe),需要:

  1. 将所有{openpose_folder}\3rdparty\windows\caffe\bin\中的dll文件拷贝到{openpose_folder}\windows\x64\Release.
  2. 将所有{openpose_folder}\3rdparty\windows\opencv\x64\vc14\bin\中的dll文件拷贝到 {openpose_folder}\windows\x64\Release
  3. 打开Window的shell. 同时按下windows键和X键,然后输入A,就可以打开windows的power shell.
  4. 进入OpenPose文件夹, 假设OpenPose下载到了 C:\openpose文件夹中. 在power shell中输入:
    cd C:\openpose\
    运行例子:
    bin\OpenPoseDemo.exe --video examples\media\video.avi --face --hand

在Ubuntu下安装:


目前支持16.04, 14.04以及cuda7.5和cuda8. 最好是cuda8

首先需要配置cuda环境和cuDNN.
之后安装QTcreator, 作为未来Cpp或者python的编程IDE
然后安装opencv(这里可以简单地只用sudo apt-get install libopencv-dev安装老版本的opencv)
如果要安装比较新的opencv, 甚至和constrib这个不太稳定的模块一起安装, 推荐用cmake-gui对opencv的安装文件generate和configure.在configure的时候仔细选择好相关的设置.
设置选项可以参考:

configure成功后,在shell中输入make, sudo make install 完成安装即可.

用cmake-gui安装基本上都没有什么问题,比直接命令行cmake -D XXX .. 成功率高得多.可能是cmake-gui内部做了优化,解决了一些配置上的问题.

安装完opencv后,就是安装caffe了.可以采用openpose自带的caffe.也可以安装自己的caffe. 可以采用openpose自带的caffe(版本似乎是2016年3月发布的caffe版本. ), 也可以自己从官网下载安装.

protobuf版本检查

这里首先需要对protobuf的版本一致性问题进行检查. 这是因为安装caffe的shell脚本(openpose_file/3rdparty/caffe/install_caffe_if_cuda8.sh)会自动下载安装protobuf, 自动下载安装的这个版本是2.6.1, 大概率比系统自带的版本或者python(anaconda)老. 在编译时就会报这样的错误:

In file included from .build_release/src/caffe/proto/caffe.pb.cc:5:0:
.build_release/src/caffe/proto/caffe.pb.h:12:2: error: #error This file was generated by a newer version of protoc which is
 #error This file was generated by a newer version of protoc which is
  ^
.build_release/src/caffe/proto/caffe.pb.h:13:2: error: #error incompatible with your Protocol Buffer headers. Please update
 #error incompatible with your Protocol Buffer headers.  Please update
  ^
.build_release/src/caffe/proto/caffe.pb.h:14:2: error: #error your headers.

检查一下protobuf的版本:
protobuf --version 或者sudo protobuf –-version
就会发现出现的版本号不一致的情况.
另外, 进一步的搜索还可以发现,在anaconda中也安装了protobuf.
为了保持系统内部以及anaconda-protobuf版本的一致性,可以从下载anaconda的protobuf同样版本的protobuf源文件,自己编译安装.

安装完成后, 从openpose_file/3rdparty/caffe/install_caffe_if_cuda8.sh 去掉和protobuf相关的下载安装命令,保留其它.

# sudo apt-get --assume-yes install libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler # default protobuf2.6.1 conflicts with system protobuf and anaconda-protobuf version
sudo atp-get --assume-yes install libleveldb-dev libsnappy-dev libhdf5-serial-dev
sudo apt-get --assume-yes install --no-install-recommends libboost-all-dev

如果返回无法找到 caffe.pb.h的错误,可以自己编译 (参考这里:http://blog.csdn.net/lanchunhui/article/details/58245582) 该文件后放入指定的路径(openpose_file/3rdparty/caffe/include/proto)中.

caffe的设置

在安装caffe之前,还需要修改openpose_file/3rdparty/caffe/Makefile.config.Ubuntu16_cuda8.example文件中的相关设置.

首先需要注释掉所有python相关的设置. 特别是caffe官方支持的anaconda是python2.x版本的anaconda2, 如果要编译anaconda3的pycaffe, 请慎重. 这是因为anaconda3自带的文件和系统文件会发生冲突, 编译时返回类似于std::CXX_11_xxx之类的错误. 详见后面补充二.

openpose的安装

安装好之后就是opencv和openpose的安装. 使用的是在ubuntu文件夹下的install_openpose_if_cuda8.sh脚本.期间可能会报错,类似:
libQt5Core.so.5: undefined reference to xxx
原因是QT安装在了用户目录下,当时没有配置环境变量,出现了链接错误.
解决方案:利用export 命令设置环境变量:[Qt安装目录下/version number /gcc_64/lib]
在终端输入:export LD_LIBRARY_PATH=/home/dl/Software/Qt5.5.1/5.5/gcc_64/lib/
如果是编译opencv相关的部分时出现了QT相关的错误信息, 很有可能是在opencv安装时没有配置with QT=on. 重新安装opencv, caffe 和openpose即可.
安装完成后,将shell的当前工作路径切换到OpenPose的根目录下, 输入
./build/examples/openpose/openpose.bin --video examples/media/video.avi --face --hand

参考:


protobuf的不一致性:http://blog.csdn.net/elysion122/article/details/64523339
protobuf源代码安装简单教程:http://blog.csdn.net/missdaddio/article/details/67631777
opencv 3.2.0安装详解 (但是更推荐用cmake-gui安装.)http://www.cnblogs.com/arkenstone/p/6490017.html

补充一:


QT5.5.1安装
1.进入Qt5.3.1的安装目录:例如我的目录:cd /home/warsllon/SoftWare/Qt5.3.1;
2.运行命令:./MaintenanceTool;
3.进入图形化界面,按照操作卸载即可。
在ubuntu下使用Qt 编译时候遇上了cannot find -lGL错误,使用命令
sudo apt-get install libqt4-dev或者sudo apt-get install libgl1-mesa-dev或者libgl1-mesa-dev或者libglu1-mesa-dev
就可以解决问题

补充二:


这里需要记录一下的是, 网上有种方法是在编译时首先注释掉Makefile.config.Ubuntu16_cuda8.example文件中anaconda3的相关设置,然后等待编译到pycaffe再取消注释继续make. 具体而言,就是:

  1. 将终端路径修改为openopse_file文件夹下,输入:
    bash ./ubuntu/install_caffe_and_openpose_if_cuda8.sh
  2. 运行脚本. 编译到pycaffe时,会报错.这时候再修改openpose_file/3rdparty/caffe/Makefile.config.Ubuntu16_cuda8.example
    文件,恢复python-anaconda的设置.
  3. 再次运行
    bash ./ubuntu/install_caffe_and_openpose_if_cuda8.sh
    就可以完成caffe的安装.

但是这样即便make成功,安装也成功,但是在anaconda3支持的所有python环境中,始终都不能成功import caffe包.

补充三:


Issues with compiling caffe with python, undefined reference to `std::__cxx11::…'
出现这种错误就是因为anaconda的文件和系统文件冲突的缘故.

补充四:


在编译caffe时遇到错误需要重新编译时(anaconda的那个问题不包括在内),需要在生成文件夹下输入:
make clean
清除make生成的文件,重新编译后才能得到正确的结果.

计算机视觉
Web note ad 1