Uubuntu20.04配置openpose
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相关推荐
- Ubuntu16.04 配置记录(持续更新)
Ubuntu16.04 配置记录 1.安装中文输入法 https://www.cnblogs.com/darklights/p/7722861.html 2.修改终端命令行路径长度 https://b ...
- Ubuntu 18.04 配置 国内 apt-get 换源
文章目录 Ubuntu 18.04 配置 国内 apt-get 换源 1 备份文件 2 用vim进入并编辑文件 3 进入网站 https://mirrors.tuna.tsinghua.edu.cn/ ...
- ubuntu 16.04 配置Python2.7 和 Python3.5 同时调用OpenCV
安装OpenCV OpenCV 官网,下载见 SourceForge and GitHub. 若使用官网版本安装不成功,则可试试Github版本. 或者 git clone https://githu ...
- Ubuntu20.04配置Java环境
Ubuntu20.04配置Java环境 下载 解压 添加软链接 update-alternatives说明 环境变量 验证 Hello World测试 下载 去Oracle官网下载jdk https: ...
- linux nginx 配置端口访问,Linux入门教程:ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点,ubuntunginxNginx 使用异步...
Linux入门教程:ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点,ubuntunginxNginx 使用异步 特点: Nginx 可以部署在网络上使用 FastCGI,脚本 ...
- 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 ...
- Ubuntu13.04配置优化(四)转贴
友情提示:可以一次性添加多个ppa,然后再update,以节约时间.由于13.04刚发布不久,有些ppa可能没有13.04对应的软件包,可以暂时禁用:在"Software & Upd ...
- Ubuntu18.04 配置nvidia 460驱动、cuda10.1和cudnn7.6.5
Ubuntu18.04 配置nvidia 460驱动.cuda10.1和cudnn7.6.5,并在同一系统中配置不同的CUDA版本以满足tensorflow版本的需求.以下源自各位大佬的博客,并进行整 ...
- Ubuntu18.04配置YCM
Ubuntu18.04和windows子系统Ubuntu18.04配置vim插件YoucompleteMe YouCompleteMe的安装麻烦程度也算是首屈一指了 目前安装配置方法一堆,坑太多,这里 ...
- Ubuntu18.04配置搭建基于Gazebo的虚拟仿真平台(Px4):无人机(UAV)、无人车等模拟实验平台
这篇我觉得是写得比较详细完整的 摘自:https://dgzc.ganahe.top/ganahe/2021/uavgazebomoni.html Ubuntu18.04配置搭建基于Gazebo的虚拟 ...
最新文章
- 企业架构研究总结(2)——问题的由来和基本概念
- java selenium后报错Element not found in the cache元素定位要重新赋值之前的定义
- 触发器初接触-同步两个表的指定字段
- VTK:Utilities之ShareCamera
- Android studio Error occurred during initialization of VM 问题解决
- 栈计算机术语,计算机数据结构词汇中英对照
- 如何在 Ubuntu 12.04 Server 中安装图形用户界面
- springboot+vue+element+mybatisplus项目(前端)
- mysql和mysqlinnodb_mysql数据库存储引擎和innoDB
- Spark键值对RDD的转化操作
- CodeSmith使用存档
- ES6新特性总结 一
- 如何听节拍器_学琴必备的节拍器,你用对了么?
- Win11 22581.1安装错误0x80070005怎么解决?
- 软件架构模式 mark Richards - 读后总结 4 - 微服务架构
- 垃圾收集器面试总结(一)
- 完美陌生人在线观看_百度云迅雷下载
- 【20保研】大连理工大学软件学院2019年优秀大学生学术夏令营通知
- 深入理解防火墙的工作原理
- 网站处于联机状态,但未对连接尝试做出响应