ubuntu18.04 openpose opencv3

    技术2022-07-10  141

    https://blog.csdn.net/u011117131/article/details/103565254

    安装cuda10.0

        cuda官网选择适合自己电脑的版本下载

        .在终端输入在第一步中选择好版本后官网给出的安装命令。

        由于显卡驱动是之前就单独安装好的,所以在这里安装cuda时注意不要再安装驱动driver了。除了驱动不装,其他的都都安装。一路指令顺序执行下来。

        环境变量的配置。打开 ~/.bashrc 文件补充代码。     在终端输入:

        sudo gedit ~/.bashrc         1

        在打开的文件底端补充:

        export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}     export LD_LIBRARY_PATH=/usr/local     /cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}         1         2         3

        输入完成后,保存并且关闭文档,终端界面上的警告可以忽略。然后再在终端输入:source ~/.bashrc 让配置生效

        创建链接文件,终端输入:

        sudo gedit /etc/ld.so.conf.d/cuda.conf         1

        在打开的文件中添加语句:

        /usr/local/cuda/lib64         1

        文档保存关闭后终端输入:

        sudo ldconfig         1

        查看cuda是否安装成功, 终端输入:nvcc -V

    安装cuDNN-7.6

    这里需要注意的是,cuDNN的版本,要与已安装的CUDA版本对应 移动安装文件到用户根目录下 复制文件到CUDA安装目录

    sudo cp ~/cuda/include/cudnn.h /usr/local/cuda-10.0/include sudo cp ~/cuda/lib64/lib* /usr/local/cuda-10.0/lib64

        1     2

    创建库文件链接: 注意进入相关目录找到对应的.so文件,因为写错了.so名称此处也不会报错

    cd /usr/local/cuda-10.0/lib64 sudo ln -sf libcudnn.so.7.6.5 libcudnn.so.7 sudo ln -sf libcudnn.so.7 libcudnn.so sudo ldconfig -v

        1     2     3     4

    安装opencv3.4.1

    安装依赖项:

    sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff5-dev libdc1394-22-dev         # 处理图像所需的包 sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev sudo apt-get install libxvidcore-dev libx264-dev         # 处理视频所需的包 sudo apt-get install libatlas-base-dev gfortran          # 优化opencv功能 sudo apt-get install ffmpeg

        1     2     3     4     5     6     7

    确保上面依赖项安装了 然后其他参看下面博客安装:

    https://blog.csdn.net/cocoaqin/article/details/78163171

        1

    安装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 # Python libs sudo -H pip install --upgrade numpy protobuf sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

        1     2     3     4     5     6     7     8

    第二步 下载caffe

    使用Git直接下载Caffe ,没安装git就按照提示安装一下

    git clone https://github.com/BVLC/caffe.git cd caffe

        1     2

    第三步 修改Makefile.config

    1、进入 caffe ,将 Makefile.config.example 文件复制一份并更名为 Makefile.config ,也可以在 caffe 目录下直接调用以下命令完成复制操作 :

    sudo cp Makefile.config.example Makefile.config

        1

    复制一份的原因是编译 caffe 时需要的是 Makefile.config 文件,而Makefile.config.example 只是caffe 给出的配置文件例子,不能用来编译 caffe。

    2、修改 Makefile.config 文件,在 caffe 目录下打开该文件:

    sudo gedit Makefile.config

        1

    在文件中替换一下几个地方:

    ... 将 #USE_CUDNN := 1 修改成: USE_CUDNN := 1 ...   ... #如果此处是OpenCV2,则不用修改 将 #OPENCV_VERSION := 3 修改为: OPENCV_VERSION := 3 ...   将  CUDA_DIR := /usr/local/cuda 修改为 CUDA_DIR := /usr/local/cuda-10.0 ... 将 #WITH_PYTHON_LAYER := 1 修改为 WITH_PYTHON_LAYER := 1 ...   ... 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 /usr/local/cuda-10.0/include LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial /usr/local/cuda-10.0/lib64       ...   ... 将 CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \         -gencode arch=compute_20,code=sm_21 \         -gencode arch=compute_30,code=sm_30 \         -gencode arch=compute_35,code=sm_35 \         -gencode arch=compute_50,code=sm_50 \         -gencode arch=compute_52,code=sm_52 \         -gencode arch=compute_60,code=sm_60 \         -gencode arch=compute_61,code=sm_61 \         -gencode arch=compute_61,code=compute_61 修改为 CUDA_ARCH := -gencode arch=compute_30,code=sm_30 \         -gencode arch=compute_35,code=sm_35 \         -gencode arch=compute_50,code=sm_50 \         -gencode arch=compute_52,code=sm_52 \         -gencode arch=compute_60,code=sm_60 \         -gencode arch=compute_61,code=sm_61 \         -gencode arch=compute_61,code=compute_61 ...

        1     2     3     4     5     6     7     8     9     10     11     12     13     14     15     16     17     18     19     20     21     22     23     24     25     26     27     28     29     30     31     32     33     34     35     36     37     38     39     40     41     42     43     44     45     46     47     48     49     50     51     52     53

    3、然后修改 caffe 目录下的 Makefile 文件:

    ... 将: NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS) 替换为: NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS) ...   ... 将: LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5 改为: LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial ...

        1     2     3     4     5     6     7     8     9     10     11     12     13

    4、然后修改 /usr/local/cuda/include/host_config.h 文件

    将 #error-- unsupported GNU version! gcc versions later than 4.9 are not supported! 改为 //#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!

        1     2     3     4

    第四步 编译 在caffe目录下执行

       #jn  就是cpu的核心数,j8也就是八核     sudo make all -j8

        1     2

    测试:

    sudo make runtest -j8

        1

    openpose编译安装: 如果上面caffe按操作来不踩坑,建议参考下面博客编译openpose一般没问题: https://blog.csdn.net/qq_27838651/article/details/89282776

    下载OpenPose:

    git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose.git

        1

    下载模型(这一步可跳过,因为之后会自动下载):

    cd openpose cd models ./getModels.sh cd ..

        1     2     3     4

    打开cmke软件:

    cmake-gui

        1

    填写openpose源码目录以及build: 在这里插入图片描述 点击Configure按钮, 选择Unix Makefile和use default native compling,点击finish按钮

    点击Generate按钮,中间会出现一些红色的可配置项。之后按图操作配置caffe编译路径 : 在这里插入图片描述在这里插入图片描述【如果使用OpenPose的 Python API,需要在 CMake GUI 中设置 BUILD_PYTHON, 并且下载pybind11解压后的文件拷贝到3rdparty/pybind11/下即可】 最后点击Generate按钮

    OpenPose 编译

    cd OPENPOSE_ROOT/build/ make -j`nproc`

        1     2

    编译过程中出现过一个错误: cannot find #include “caffe/proto/caffe.pb.h” 解决办法:首先将caffe.proto中的required改为optional, 然后在caffe目录下输入如下代码:

    protoc src/caffe/proto/caffe.proto --cpp_out=. mkdir include/caffe/proto mv src/caffe/proto/caffe.pb.h include/caffe/proto

        1     2     3

    最后重新编译caffe。 测试:

    ./build/examples/openpose/openpose.bin --video examples/media/video.avi

        1

    其他相关 下面是所有安装用到的东西请下载 链接:https://pan.baidu.com/s/1ud2XTUPQmTLcz3_mOgfqzg&shfl=sharepset 提取码:uqx6

    链接: https://pan.baidu.com/s/1NQeE_NtOIsyG5XUnSNZymw&shfl=shareset 提取码: 4zu3

    两个一样的,如果失效了就留言吧也许会回。

    【注意】 [1] - 编译时不采用 cuDNN:

    在OpenPose 配置中,去除 CMake 的 USE_CUDNN 勾选.

    如果不采用 cuDNN,则需要减少 --net_resolution 设定的尺寸,以避免 GPU 显存不足.

    –net_resolution 可尝试:640x320, 320x240, 320x160, 160x80。

    如:–net_resolution -1x320.

    [2] - 自定义 Caffe 版本:

    在OpenPose 配置中,去除 CMake 的 BUILD_CAFEE 勾选,手工定义 Caffe include路径和 library路径.

    在OpenPose 配置中,如果是从源码编译安装的 OpenCV,导致 OpenPose 不能找到 OpenCV路径,则可以手工指定 OPENCV_DIR 路径. 如:

    cmake -DOpenCV_INCLUDE_DIRS=/home/"${USER}"/softwares/opencv/build/install/include \   -DOpenCV_LIBS_DIR=/home/"${USER}"/softwares/opencv/build/install/lib \   -DCaffe_INCLUDE_DIRS=/home/"${USER}"/softwares/caffe/build/install/include \   -DCaffe_LIBS=/home/"${USER}"/softwares/caffe/build/install/lib/libcaffe.so -DBUILD_CAFFE=OFF ..

    cmake -DOpenCV_CONFIG_FILE=/home/"${USER}"/softwares/opencv/build/install/share/OpenCV/OpenCVConfig.cmake \   -DCaffe_INCLUDE_DIRS=/home/"${USER}"/softwares/caffe/build/install/include \   -DCaffe_LIBS=/home/"${USER}"/softwares/caffe/build/install/lib/libcaffe.so -DBUILD_CAFFE=OFF ..

        1     2     3     4     5     6     7     8

    Python API

    OpenPose的 Python API,需要在 CMake GUI 中设置 BUILD_PYTHON.

    如:./build/examples/tutorial_developer/python_1_pose_from_heatmaps.py.

    CPU 版本

    为了可以手工选择 CPU 版本,则在 CMake GUI 中设置 GPU_MODE 为 CPU_ONLY.

    注:CPU 版本的精度比 CUDA 版本的精度高大约 1%. 故结果可能有不同.

    Ubuntu 中的 OpenPose 利用了 Caffe 的 Intel MKL(Math Kernel Library) 版本. 也可以通过取消选择USE_MKL,利用自定义的 Caffe 版本.

    默认 CPU 版本在 Ubuntu 上大概每秒 0.2 张图像(比 GPU 版本慢 ~50X ). MKL 版本能够提升 2X 的速度,每秒 ~0.4 张图像. OpenPose 重新安装与删除

    [1] - 如果运行了 sudo make install,则,首先在 build/ 中运行 sudo make uninstall.

    [2] - 删除 build/ 路径.

    [3] - CMake GUI 中,点击 File - Delete Cache.

    [4] - 重新安装.(或删除 OPENPOSE_ROOT/ 路径.) https://blog.csdn.net/u011117131/article/details/103565254

    Processed: 0.009, SQL: 9