jetsonnano部署openpose姿态检测 cuda10.2

本文记录了一位开发者在英伟达Jetson设备上安装CUDA10.2、opencv、cuDNN以及部署OpenPose和JetsonInference过程中遇到的问题及解决方案。遇到的主要问题包括CUDA版本不兼容、库文件找不到、编译错误等,通过修改配置文件、安装依赖和更新源代码解决了问题。
摘要由CSDN通过智能技术生成

希望这篇踩坑记录能给你启发,不枉我身先士卒,如果沉没成本还不高的朋友们,可以选择装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

在文件最后添加

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

重载文件

source ~/.bashrc

再次执行

nvcc -V #查看系统版本

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

pkg-config opencv4 --modversion

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

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

若出现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 #安装 很快

查看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

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

sudo ldconfig

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

protoc --version
libprotoc 2.6.1

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

在这里插入图片描述
在这里插入图片描述
如出现报错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 图形化界面

在图形化界面中,进行配置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

报错三:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

llllsssq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值