目录
前言
一、安装前设置
二、安装显卡驱动
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
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)
sudo apt-get install gcc g++ make
sudo vim /etc/modprobe.d/blacklist.conf
在文件末尾加入
blacklist nouveau
options nouveau modeset=0
执行下面的命令生效
sudo update-initramfs -u
此步骤完成后需要重启系统!!!
NVIDIA官网下载合适的驱动,驱动版本对应关系参考官网说明,本次安装440.100版本
为了安装新的Nvidia驱动程序,我们需要停止当前的显示服务器。之后会进入一个新的命令行会话,使用当前的用户名密码登录
sudo telinit 3
sudo chmod +x NVIDIA-Linux-x86_64-440.100.run
sudo ./NVIDIA-Linux-x86_64-440.100.run --o-opengl-files --o-x-check
参数介绍:
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 |
+-----------------------------------------------------------------------------+
去CUDA官网下载合适的版本,本文使用CUDA10.1,最后一个选项是安装包形式,我选择的是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,因为已经安装过显卡驱动,安装时不勾选驱动。
在/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
官网下载cuDNN,注意要与CUDA版本相符,本文使用cuDNN 7.6.5 for CUDA10.2
tar -zxvf cudnn-10.2-linux-x64-v7.6.5.32.tgz #解压安装包
终端输入以下命令将文件复制到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*
终端输入cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 ,显示如下即为安装成功
sudo apt install python3-pip
pip3 install opencv-contrib-python -i https://pypi.tuna.tsinghua.edu.cn/simple #-i指定国内源
参考:https://blog.csdn.net/cocoaqin/article/details/78163171
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
使用Git直接下载Caffe ,没安装git就按照提示安装一下
git clone https://github.com/BVLC/caffe.git
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!
sudo make all -j8
sudo make runtest -j8 #测试
git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose.git
sudo apt-get install cmake-gui
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勾选上
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/
./build/examples/openpose/openpose.bin --video examples/media/video.avi #cpp
./build/examples/tutorial_developer/python_1_pose_from_heatmaps.py #python
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] - 重新安装