OpenPose Ubuntu18.04+CUDA10+CUDNN7.4.1

本文详细介绍了在Ubuntu 18.04系统上,使用CUDA 10.0和CUDNN 7.4.1环境编译安装OpenPose的步骤,包括解决cmake版本、caffe版本、Python版本和cudnn版本的问题,以及测试和运行过程中的注意事项。

2020.06.28 部署和编译OpenPose

几个可能导致部署失败的因素:

* cmake版本问题

* caffe版本问题

* Python版本问题

* cudnn版本问题

 

一、环境说明:

1、Ubuntu 18.04

2、RTX2080

3、CUDA10.0

4、CUDNN7.4.1

5、Anaconda3-5.2.0

补充:caffe 编译使用5.0以上gcc,3.0以下的protobuf(建议2.6.1)我用的是3.0可以没事。

g++ --version
protobuf --version

查看他们的版本,如果不符合先解决这个问题。

二、准备工作

1、卸载预装cmake:

sudo apt remove cmake
sudo apt purge --auto-remove cmake
sudo apt purge cmake-qt-gui

2、安装新的:

https://cmake.org/files/v3.13/

下载一个大于3.12的版本,比如 https://cmake.org/files/v3.13/cmake-3.13.3.tar.gz

sudo apt-get install qtbase5-dev
#解压cmake-3.13.3.tar.gz
./configure --qt-gui
./bootstrap && make -j`nproc` && sudo make install -j`nproc`
cmake --version
#确认cmake版本
source ~/.bashrc
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff5-dev libdc1394-22-dev    
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev  
sudo apt-get install libatlas-base-dev gfortran 
sudo apt-get install ffmpeg
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
pip install --upgrade numpy protobuf (这个命令基于anaconda 记得修改pip源)

下载项目源码,不需要科学上网:

sudo apt install git
git clone https://gitee.com/situyufeng/openpose.git
cd 3rdparty/caffe
git clone https://gitee.com/situyufeng/caffe.git

三、编译caffe

1、修改Makefile.config
#进入 caffe ,将 Makefile.config.example 文件复制一份并更名为 Makefile.config ,也可以在 caffe 目录下直接调用以下命令完成复制操作 :
sudo cp Makefile.config.example Makefile.config
#复制一份的原因是编译 caffe 时需要的是 Makefile.config 文件,而Makefile.config.example 只是caffe 给出的配置文件例子,不能用来编译 caffe。
2、修改 Makefile.config 文件,在 caffe 目录下打开该文件:
sudo gedit 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、然后修改 caffe 目录下的 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
...
4、改完后编译:
cd openpose/3rdparty/caffe
sudo make all -j nproc
5、测试
sudo make runtest
6、如果caffe安装正常的话是有绿的passed 2027 tests.

最好测试下mnist的例程,这里一步一个坑!

四、编译OpenPose

sudo apt-get install cmake-gui

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

图是错的,要选build_caffe,build_examples,build_shared_libs这三个

点击Generate按钮

配置caffe_libs路径,按照这个配置就可以

最后点击Generate按钮

正式编译:

cd OPENPOSE_ROOT/build/
make clean & sudo make
# 编译的特别久
# 千万不要用 -j x 这个有毒

下载权重:

http://posefs1.perception.cs.cmu.edu/OpenPose/models/face/pose_iter_116000.caffemodel

http://posefs1.perception.cs.cmu.edu/OpenPose/models/hand/pose_iter_102000.caffemodel

http://posefs1.perception.cs.cmu.edu/OpenPose/models/pose/mpi/pose_iter_160000.caffemodel

http://posefs1.perception.cs.cmu.edu/OpenPose/models/pose/coco/pose_iter_440000.caffemodel

http://posefs1.perception.cs.cmu.edu/OpenPose/models/pose/body_25/pose_iter_584000.caffemodel

用迅雷下载,按照getModes.sh里面的路径放进文件里面。

五、测试

./build/examples/openpose/openpose.bin --video examples/media/video.avi
# 直接运行就可以,项目源码包含视频

补充,会有找不到libcuda*.so.10.0,运行:

sudo cp /usr/local/cuda-10.0/lib64/libcudart.so.10.0 /usr/local/lib/libcudart.so.10.0 && sudo ldconfig
sudo cp /usr/local/cuda-10.0/lib64/libcublas.so.10.0 /usr/local/lib/libcublas.so.10.0 && sudo ldconfig
sudo cp /usr/local/cuda-10.0/lib64/libcurand.so.10.0 /usr/local/lib/libcurand.so.10.0 && sudo ldconfig

参考链接:

https://cmake.org/files/v3.13/

https://blog.csdn.net/yuanjiteng/article/details/102616749

https://blog.csdn.net/qq_35468937/article/details/81514198#%E4%BA%94%E3%80%81Caff%E6%90%AD%E5%BB%BA

https://blog.csdn.net/qq_27838651/article/details/89282776

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值