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

作者: 西风酹江月 | 来源:发表于2017-08-25 15:03 被阅读895次

    项目网址:


    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生成的文件,重新编译后才能得到正确的结果.

    相关文章

      网友评论

        本文标题:多人脸部\肢体\手部识别OpenPose安装

        本文链接:https://www.haomeiwen.com/subject/tjmudxtx.html