• jetsonnano部署openpose姿态检测 cuda10.2


    希望这篇踩坑记录能给你启发,不枉我身先士卒,如果沉没成本还不高的朋友们,可以选择装cuda10.0版本的系统,那边教程会比较多。

    emmmm很遗憾,我用cuda10.2做到最后失败了,编译都编译完了,结果一运行程序就死机,希望有好心人有头绪的话,能了我一个心愿哈哈哈哈。
    不过还好老师没指定项目,我用jetson inference的posenet,6h就部署完成了。

    1. 系统安装

    在英伟达官网https://developer.nvidia.com/embedded/downloads,下载对应版本镜像,并刷入sd卡

    2.预设软件检查

    1、检查cuda,先执行次nvcc -V,若失败,则将cuda路径写入环境变量

    此处请根据该路径/usr/local/cuda查看自己系统的cuda版本号并更改下方路径名,惨痛教训

    sudo vim  ~/.bashrc
    
    • 1

    在文件最后添加

    export CUDA_HOME=/usr/local/cuda-10.2
    export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH
    export PATH=/usr/local/cuda-10.2/bin:$PATH
    
    • 1
    • 2
    • 3

    重载文件

    source ~/.bashrc
    
    • 1

    再次执行

    nvcc -V #查看系统版本
    
    • 1

    在这里插入图片描述
    2.检查opencv版本号

    pkg-config opencv4 --modversion
    
    • 1

    会返回对应的版本号,我的是4.1.1
    3.检查cuDnn

    cd /usr/src/cudnn_samples_v7/mnistCUDNN   #进入例子目录
    sudo make     #编译例子
    sudo chmod a+x mnistCUDNN # 为可执行文件添加执行权限
    ./mnistCUDNN # 执行
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    若出现fatal error: FreeImage.h: No such file or directory,则运行sudo apt-get install libfreeimage3 libfreeimage-dev,再继续上述指令,出现test passed,则代表cudnn可正常使用。

    3.准备

    本段摘自这位博主的博文,非常感谢https://blog.csdn.net/weixin_41750643/article/details/105430654

    1.protobuf2.6

    wget https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz
    tar -zxvf protobuf-2.6.1.tar.gz
    sudo apt-get install build-essential #安装依赖
    cd protobuf-2.6.1/
    ./configure #配置安装文件
    make #编译 偏久 别慌
    make check #检测编译安装环境 一点点久
    sudo make install #安装 很快
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    查看protobuf的版本号,如出现protoc: error while loading shared libraries:的报错,则创建bprotobuf.conf文件

    sudo chmod 777 -R /etc/ld.so.conf.d
    sudo vim /etc/ld.so.conf.d/bprotobuf.conf
    #添加的内容为
    /usr/local/lib
    
    • 1
    • 2
    • 3
    • 4

    创建好bprotobuf.conf文件后,在 /etc/ld.so.conf.d/目录下输入命令:

    sudo ldconfig
    
    • 1

    再次检查版本,得到版本号即成功

    protoc --version
    libprotoc 2.6.1
    
    • 1
    • 2

    2.cmake-gui
    安装依赖:

    sudo apt-get install libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev 
     
    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 build-essential
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述
    在这里插入图片描述
    如出现报错Could not find OpenSSL. Install an OpenSSL development package or configure CMake with -DCMAKE_US
    安装openssl依赖apt-get install libssl-dev

    4.下载并编译openpose

    下载openpose、caffe、pybind11的源代码,在openpose的3rdparty文件夹下,将caffe和pyblind11源代码复制进去

    openpose地址:https://github.com/CMU-Perceptual-Computing-Lab/openpose
    openpose 的 caffe 下载地址:
    https://github.com/CMU-Perceptual-Computing-Lab/caffe
    openpose 的 pybind11 下载地址:
    https://github.com/pybind/pybind11/tree/085a29436a8c472caaaf7157aa644b571079bcaa

    mkdir openpose/build #创建build文件夹
    sudo cmake-gui #打开cmake 图形化界面
    
    • 1
    • 2

    在图形化界面中,进行配置where is the source code :选择openpose源码文件夹
    where to build the binaries:选择工程文件文件夹
    后点击generate,选择unix Makefiles,再根据报错安装相应包,再点击Generate,直至输出Generate done

    在这里

    报错一:cuDNN version >3 is required.
    解决方法一:in Openpose change the cmake/cuda.cmake file and the /cmake/modules/FindCuDNN.cmake file.
    Find the line that reads:
    file(READ {CUDNN_INCLUDE}/cudnn.h CUDNN_VERSION_FILE_CONTENTS)
    change to: file(READ {CUDNN_INCLUDE}/cudnn_version.h CUDNN_VERSION_FILE_CONTENTS)
    参考链接:https://blog.csdn.net/weixin_34246656/article/details/112538507
    解决方法二:打开cmake文件夹下

    报错二:CUDA_ARCH
    解决方法:https://blog.csdn.net/tukechao/article/details/109097599

    报错三:

  • 相关阅读:
    [附源码]Python计算机毕业设计Django四川景区管理系统
    低密度奇偶校验码LDPC(十)——LDPC码的密度进化
    一篇五分生信临床模型预测文章代码复现——Figure 2. 生存分析,箱线图表达改变分析(二)
    ORB-SLAM2算法14之局部建图线程Local Mapping
    Arduino开发实例-DIY电能表
    离散粒子群算法(DPSO)求解路径规划(Matlab代码实现)
    关于matlab的各种空格‘ ‘,以及如何删除删不掉的‘ ‘
    MySQL---搜索引擎
    浏览器字体变大|变小怎么办,浏览器字体大小设置方法
    红黑树树插入后自平衡
  • 原文地址:https://blog.csdn.net/weixin_44376152/article/details/126157244