Ubuntu20.04 RTX3060 安装openpose CUDA11.5.2 CUDNN

因为毕设需要用到openpose这个姿态识别库做一些工作,实在是遇到太多坑了,时间长怕又忘了,把具体的一些步骤记录下来。

1. Ubuntu安装
最开始在使用的时候直接就按照openpose的github教程一通操作,因为最开始自己安装的是ubunu18, 没有注意太多细节。后来在openpose编译的过程中才发现各种报错,搞了很久,最后才考虑到自己的显卡型号还要和环境的版本匹配起来,尤其因为他用到的caffe这种非常老的库,兼容性都非常差,最好就完全按照别人已经成功过的版本来做。因为我这里用的电脑显卡是RTX3060,于是按照openpose的github说明重新从系统开始按照对应版本全部重新装了一遍。

Ubuntu的安装在网上直接搜索和win10双系统的安装教程就可以找到,这里不再赘述。

装好系统之后第一步先安装后面要用到的cmkae,要求版本是>= 3.12

可以直接在网上官网下载,ubuntu20以上可以直接

sudo apt-get update
sudo apt-get install cmake-qt-gui
cmake --verison#查看我们的cmake版本
gcc --version#gcc版本,应该是用默认安装好的就可以了

下面是我的显示

y@y:~$ cmake --version
cmake version 3.16.3CMake suite maintained and supported by Kitware (kitware.com/cmake).
y@y:~$ gcc --version
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

2. Cuda11.5.2安装
这里特别要注意的就是Cuda的版本是和你的显卡型号对应的,要查清除哪个cuda对应你的显卡,不然后面编译会报错。

这里还有需要我们先安装nvidia显卡驱动,但是我在试错的过程中发现cuda的安装还会把我的显卡驱动给更新

nvidia-smi#可以查看已经安装的显卡驱动版本

我刚装好系统的时候显示如下

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.47.03    Driver Version: 510.47.03    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   44C    P0    N/A /  N/A |     10MiB /  6144MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------++-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1158      G   /usr/lib/xorg/Xorg                  4MiB |
|    0   N/A  N/A      1710      G   /usr/lib/xorg/Xorg                  4MiB |
+-----------------------------------------------------------------------------+

下面代码可以查看系统中安装了哪些nvidia的驱动

sudo dpkg --list | grep nvidia-*

有的教程会希望我们先卸载掉已经安装的nvidia/Cuda包,但是因为我的系统直接重装了,所以我并没有做下面这一步。

#(a)
#Open a terminal window and type the following three commands to
#get rid of any NVIDIA/CUDA packages you may already have installed:sudo rm /etc/apt/sources.list.d/cuda*
sudo apt remove --autoremove nvidia-cuda-toolkit
sudo apt remove --autoremove nvidia-*#(b)
#Purge any remaining NVIDIA configuration files and the associated dependencies
#that they may have been installed with.$ sudo apt-get purge nvidia*
$ sudo apt-get autoremove
$ sudo apt-get autoclean#(c) Remove any existing CUDA folders you may have in /usr/local/#This threw me for a loop the first several times I tried installing CUDA. #There shouldn’t be any folders with the name “cuda” or “cuda-anything” #in usr/local/ at this point!$ sudo rm -rf /usr/local/cuda*

下面是cuda11.5.2的安装链接,完全按照教程安装即可

https://developer.nvidia.com/cuda-11-5-2-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=deb_local

下载安装之后需要修改环境变量

sudo gedit ~/.bashrc

在文件最后添加以下环境变量到 ~/.bashrc 并保存退出。

export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cudaor
export PATH=/usr/local/cuda-11.4/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cudaexport PATH=/usr/local/cuda-11.4/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
orecho 'export PATH=/usr/local/cuda-11.4/bin:$PATH' >> ~/.bashrc
echo  'export LD_LIBRARY_PATH=/usr/local/cuda/lib64' >> ~/.bashrc

激活环境变量

source ~/.bashrc

检查

nvcc -V
nvidia-smi

下面是我的显示

y@y:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Thu_Nov_18_09:45:30_PST_2021
Cuda compilation tools, release 11.5, V11.5.119
Build cuda_11.5.r11.5/compiler.30672275_0y@y:~$ nvidia-smi
Wed Jul  6 05:48:58 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 495.29.05    Driver Version: 495.29.05    CUDA Version: 11.5     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  On   | 00000000:01:00.0 Off |                  N/A |
| N/A   45C    P8    13W /  N/A |     10MiB /  5946MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------++-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1204      G   /usr/lib/xorg/Xorg                  4MiB |
|    0   N/A  N/A      1860      G   /usr/lib/xorg/Xorg                  4MiB |
+-----------------------------------------------------------------------------+

3. cuDNN8.3.2安装
链接如下:

https://developer.nvidia.com/rdp/cudnn-archive

下载之后在本地文件夹解压,然后进到解压出来的文件,里面有incldue和lib两个文件

$ sudo cp include/cudnn*.h /usr/local/cuda/include
$ sudo cp -P lib/libcudnn* /usr/local/cuda/lib64  # reset the read and write permissions of the cudnn.h file
$ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

测试安装

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR
lude/cudnn_version.h | grep CUDNN_MAJOR
#define CUDNN_MAJOR 8
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2lude/cudnn_version.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 3
#define CUDNN_PATCHLEVEL 2
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)#endif /* CUDNN_VERSION_H */

如果下载的是deb文件格式安装之后似乎还有一个样例可以测试,但是因为我下载的tar文件,参考大部分教程只需要复制文件夹就可以了,所以找不到可以测试的sample。

4. OpenCV安装

其实openpose的github上提供了一个opencv的依赖包说可以直接运行,但是我之前做的时候总会有一些奇奇怪怪的错误,避免万一自己再重新编译一遍opencv。

我参考的以下这篇文章里面安装opencv的方式

https://www.cnblogs.com/adiTech/p/14255744.html

git下载opencv的时候不要使用sudo

5. Caffe和openpose安装

因为openpose安装过程会自己编译caffe,所以我们只需要安装好caffe的依赖就好了。也有看到很多教程自己编译的了caffe,但是因为caffe的编译需要自己修改makefile文件,我本身对cmake不熟悉,容易出错,所以我就没有自己编译。

从git上下载openpose

git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose
cd openpose/
git submodule update --init --recursive --remote

Install Caffe prerequisites:

cd openpose
sudo bash ./scripts/ubuntu/install_deps.sh

CMake config generation prerequisites:

sudo apt install protobuf-compiler libgoogle-glog-dev

github上有一个python opencv的依赖包(其实不是很确定),但是我这里选择也把他装上

sudo apt-get install libopencv-dev

Clone Caffe and Pybind11 to 3rdparty folder:

我们刚下下来的git里面第三方依赖库是空的,我们需要自己下载对应的库到文件夹里面。

cd openpose/3rdparty/
git clone https://github.com/CMU-Perceptual-Computing-Lab/caffe.git

(Pybind11 is required to build OpenPose for its python API.)

git clone https://github.com/pybind/pybind11

接下来回到build目录里面

cmake-gui ..

然后按照需求generate之后在build文件夹里

make -j`nproc`

在openpose文件夹内跑例程验证

$./build/examples/openpose/openpose.bin --video examples/media/video.avi
$./build/examples/openpose/openpose.bin --video examples/media/video.avi --face --hand

如果要输出到python:

#Compile the Openpose sourcesudo make install#Compile and build the python Openposecd openpose/build/python/openpose
sudo make install#Test: Go to tutorial_api_python run test image using python3cd openpose/build/examples/tutorial_api_python
python3 01_body_from_image.py

Python API

#To use Openpose API in your python script use the import of Openpose like the belowimport sys
sys.path.append('/usr/local/python')
from openpose import pyopenpose as op

写在最后:
虽然算是跑起来了,但是其实还有很多问题,比如cmake如果打开了cudnn开关,在跑例程的时候加入–face或者–hand都是报错:

Check failed: error == CUDNN_STATUS_SUCCESS (4 vs. 0) CUDNN_STATUS_INTERNAL_ERROR

而且我的现存大概是有6g的,但是我只能将–net_resolution设置到非常低才会不报out of memory的错误。
最后只能把cudnn的选项去掉进行cmake才能勉强跑起来。

如果有朋友有经验如果解决这些问题,欢迎来指导和讨论~

Uubuntu20.04配置openpose相关推荐

  1. Ubuntu16.04 配置记录(持续更新)

    Ubuntu16.04 配置记录 1.安装中文输入法 https://www.cnblogs.com/darklights/p/7722861.html 2.修改终端命令行路径长度 https://b ...

  2. Ubuntu 18.04 配置 国内 apt-get 换源

    文章目录 Ubuntu 18.04 配置 国内 apt-get 换源 1 备份文件 2 用vim进入并编辑文件 3 进入网站 https://mirrors.tuna.tsinghua.edu.cn/ ...

  3. ubuntu 16.04 配置Python2.7 和 Python3.5 同时调用OpenCV

    安装OpenCV OpenCV 官网,下载见 SourceForge and GitHub. 若使用官网版本安装不成功,则可试试Github版本. 或者 git clone https://githu ...

  4. Ubuntu20.04配置Java环境

    Ubuntu20.04配置Java环境 下载 解压 添加软链接 update-alternatives说明 环境变量 验证 Hello World测试 下载 去Oracle官网下载jdk https: ...

  5. linux nginx 配置端口访问,Linux入门教程:ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点,ubuntunginxNginx 使用异步...

    Linux入门教程:ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点,ubuntunginxNginx 使用异步 特点: Nginx 可以部署在网络上使用 FastCGI,脚本 ...

  6. Ubuntu 16.04配置CUDA 9.0+cudnn 7.0以及解决Nvidia显卡导致黑屏问题

    Ubuntu 16.04配置CUDA 9.0+cudnn 7.0以及解决Nvidia显卡导致黑屏问题 参考文章: (1)Ubuntu 16.04配置CUDA 9.0+cudnn 7.0以及解决Nvid ...

  7. Ubuntu13.04配置优化(四)转贴

    友情提示:可以一次性添加多个ppa,然后再update,以节约时间.由于13.04刚发布不久,有些ppa可能没有13.04对应的软件包,可以暂时禁用:在"Software & Upd ...

  8. Ubuntu18.04 配置nvidia 460驱动、cuda10.1和cudnn7.6.5

    Ubuntu18.04 配置nvidia 460驱动.cuda10.1和cudnn7.6.5,并在同一系统中配置不同的CUDA版本以满足tensorflow版本的需求.以下源自各位大佬的博客,并进行整 ...

  9. Ubuntu18.04配置YCM

    Ubuntu18.04和windows子系统Ubuntu18.04配置vim插件YoucompleteMe YouCompleteMe的安装麻烦程度也算是首屈一指了 目前安装配置方法一堆,坑太多,这里 ...

  10. Ubuntu18.04配置搭建基于Gazebo的虚拟仿真平台(Px4):无人机(UAV)、无人车等模拟实验平台

    这篇我觉得是写得比较详细完整的 摘自:https://dgzc.ganahe.top/ganahe/2021/uavgazebomoni.html Ubuntu18.04配置搭建基于Gazebo的虚拟 ...

最新文章

  1. 企业架构研究总结(2)——问题的由来和基本概念
  2. java selenium后报错Element not found in the cache元素定位要重新赋值之前的定义
  3. 触发器初接触-同步两个表的指定字段
  4. VTK:Utilities之ShareCamera
  5. Android studio Error occurred during initialization of VM 问题解决
  6. 栈计算机术语,计算机数据结构词汇中英对照
  7. 如何在 Ubuntu 12.04 Server 中安装图形用户界面
  8. springboot+vue+element+mybatisplus项目(前端)
  9. mysql和mysqlinnodb_mysql数据库存储引擎和innoDB
  10. Spark键值对RDD的转化操作
  11. CodeSmith使用存档
  12. ES6新特性总结 一
  13. 如何听节拍器_学琴必备的节拍器,你用对了么?
  14. Win11 22581.1安装错误0x80070005怎么解决?
  15. 软件架构模式 mark Richards - 读后总结 4 - 微服务架构
  16. 垃圾收集器面试总结(一)
  17. 完美陌生人在线观看_百度云迅雷下载
  18. 【20保研】大连理工大学软件学院2019年优秀大学生学术夏令营通知
  19. 深入理解防火墙的工作原理
  20. 网站处于联机状态,但未对连接尝试做出响应

热门文章

  1. arduino做一个表白程序
  2. 三维随机介质模型matlab,基于随机介质理论的复合材料孔隙二维形貌几何仿真
  3. 下载Instagram的图片
  4. 怎么删除手机html,两种方法教你如何删除手机模拟大师
  5. Echarts教程1_ ECharts官方教程(一)【5分钟上手ECharts】
  6. Centos7配置AirPrint(解决手机执行多次打印后搜索不到打印机的情况)
  7. 利用natapp做内网穿透
  8. android 头像修改
  9. 微信发红包的测试用例
  10. 备考系统集成项目管理工程师,其实很简单!(干货)