目录

前言

一、安装前设置

二、安装显卡驱动

1.查看当前RTX2060 Super显卡是否被识别

2.安装驱动

2.1 安装依赖

2.2禁止nouveau

2.3下载驱动

2.4停止桌面环境

2.5终端安装

2.6验证是否安装成功

三、安装CUDA10.2

1.下载CUDA

 2.依赖及runfile安装

 3.设置环境变量

四、安装cuDNN10.2

 1.下载cuDNN

 2.复制文件

 3.验证

五、安装opencv

 1.通过pip3安装opencv

2.通过源码安装opencv3

六、Caff搭建

 1.安装依赖库

 2.下载caffe

 3.修改Makefile.config文件

 4.编译caffe​​​​​​

七、Openpose的搭建

 1.下载openpose

 2.安装cmake-gui

 3. 利用Cmake Gui 生成build文件

 4.编译openpose

5.测试

6.其他


前言

本文记录ubuntu18.04下openpose的安装过程。参考官方文档

配置如下:

CPU:i3-10100

内存:DDR4 16G

Chipset:Q470

GPU:RTX 2060 super 8GB


一、安装前设置

安装ubuntu18.04.5操作系统,为了加快安装依赖时的速度,可以将apt源更换为阿里源。

root@AI-S2000:/home/ubuntu# mv /etc/apt/sources.list /etc/apt/sourses.list.backup
root@AI-S2000:/home/ubuntu# vi /etc/apt/sources.list
--------阿里源------
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
root@AI-S2000:/home/ubuntu# apt update
root@AI-S2000:/home/ubuntu# apt upgrade

二、安装显卡驱动

1.查看当前RTX2060 Super显卡是否被识别

root@AI-S2000:/home/ubuntu# lspci | grep NVIDIA
01:00.0 VGA compatible controller: NVIDIA Corporation Device 1f06 (rev a1)
01:00.1 Audio device: NVIDIA Corporation Device 10f9 (rev a1)
01:00.2 USB controller: NVIDIA Corporation Device 1ada (rev a1)
01:00.3 Serial bus controller [0c80]: NVIDIA Corporation Device 1adb (rev a1)

2.安装驱动

2.1 安装依赖

sudo apt-get install gcc g++ make

2.2禁止nouveau

sudo vim /etc/modprobe.d/blacklist.conf  

在文件末尾加入

blacklist nouveau
options nouveau modeset=0 

执行下面的命令生效

sudo update-initramfs -u

此步骤完成后需要重启系统!!! 

2.3下载驱动

NVIDIA官网下载合适的驱动,驱动版本对应关系参考官网说明,本次安装440.100版本

2.4停止桌面环境

为了安装新的Nvidia驱动程序,我们需要停止当前的显示服务器。之后会进入一个新的命令行会话,使用当前的用户名密码登录

 

sudo telinit 3

2.5终端安装

sudo chmod +x NVIDIA-Linux-x86_64-440.100.run 
sudo ./NVIDIA-Linux-x86_64-440.100.run  --o-opengl-files --o-x-check

参数介绍:

  • –no-opengl-files 只安装驱动文件,不安装OpenGL文件。这个参数最重要,不加很有可能出现循环登录,也就是loop login。
  • –no-x-check 安装驱动时不检查X服务 

2.6验证是否安装成功

ubuntu@AI-S2000:~$ nvidia-smi
Mon Sep  7 15:14:31 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.100      Driver Version: 440.100      CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce RTX 206...  Off  | 00000000:01:00.0  On |                  N/A |
| 22%   36C    P8    17W / 175W |     92MiB /  7979MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0       894      G   /usr/lib/xorg/Xorg                            90MiB |
+-----------------------------------------------------------------------------+

三、安装CUDA10.2

1.下载CUDA

CUDA官网下载合适的版本,本文使用CUDA10.1,最后一个选项是安装包形式,我选择的是runfile安装包

 2.依赖及runfile安装

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev #依赖安装

ubuntu@AI-S2000:~/Downloads/cuda10.2$ chmod +x cuda_10.2.89_440.33.01_linux.run 
ubuntu@AI-S2000:~/Downloads/cuda10.2$ sudo ./cuda_10.2.89_440.33.01_linux.run 

 第一步选择accept,因为已经安装过显卡驱动,安装时不勾选驱动。

 3.设置环境变量

在/etc/profile文件末尾加入下面两行

export PATH=/usr/local/cuda-10.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda10.2/lib64 

重启电脑后在终端输入:env,检查环境变量中有无刚加入的变量。

终端输入 : nvcc -V 会输出CUDA的版本信息。

ubuntu@AI-S2000:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:24:38_PDT_2019
Cuda compilation tools, release 10.2, V10.2.89

四、安装cuDNN10.2

 1.下载cuDNN

官网下载cuDNN,注意要与CUDA版本相符,本文使用cuDNN 7.6.5 for CUDA10.2

tar -zxvf cudnn-10.2-linux-x64-v7.6.5.32.tgz  #解压安装包

 2.复制文件

终端输入以下命令将文件复制到CUDA中,复制后即完成cuDNN安装

sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

 3.验证

终端输入cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2  ,显示如下即为安装成功

五、安装opencv

 1.通过pip3安装opencv

 sudo apt install python3-pip 

pip3 install opencv-contrib-python -i https://pypi.tuna.tsinghua.edu.cn/simple  #-i指定国内源

 

2.通过源码安装opencv3

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

六、Caff搭建

 1.安装依赖库

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

 2.下载caffe

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

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

 3.修改Makefile.config文件

3.1 进入 caffe ,将 Makefile.config.example 文件复制一份并更名为 Makefile.config 

sudo cp Makefile.config.example Makefile.config

3.2 修改 Makefile.config 文件,替换如下几个地方

...

#USE_CUDNN := 1
修改成: 
USE_CUDNN := 1
...
 
...
#如果此处是OpenCV2,则不用修改

#OPENCV_VERSION := 3 
修改为: 
OPENCV_VERSION := 3
...
 
...

#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
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial       
...
 
...

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
...

3.3 修改 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
...

3.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!

 4.编译caffe​​​​​​

sudo make all -j8

sudo make runtest -j8    #测试

七、Openpose的搭建

 1.下载openpose

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

 2.安装cmake-gui

sudo apt-get install cmake-gui

 3. 利用Cmake Gui 生成build文件

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

3.1 打开cmke-gui软件,填写openpose源码目录以及build 

3.2 点击Configure按钮, 选择Unix Makefile和use default native compling,点击finish按钮,再点击configure按钮

3.3中间会出现一些红色的可配置项。之后按图操作配置caffe编译路径,需要python的把build_python勾选上

 4.编译openpose

cd build

sudo make -j8

编译过程中出现过一个错误 cannot find #include “caffe/proto/caffe.pb.h” 

进入caffe目录,通过以下的方法解决

protoc src/caffe/proto/caffe.proto --cpp_out=.

mkdir -p include/caffe/proto

mv src/caffe/proto/caffe.pb.h include/caffe/proto/

5.测试

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

./build/examples/tutorial_developer/python_1_pose_from_heatmaps.py          #python

 

6.其他

6.1 编译时不采用 cuDNN:

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

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

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

如:--net_resolution -1x320.

6.2 自定义 Caffe 版本:

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

6.3 自定义 OpenCV 版本:

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

6.4 openpose卸载与重装

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

[2] - 删除 build/ 路径.

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

[4] - 重新安装

 

 

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐