openpose安装(Linux_ubuntu_16.04+cuda9+cudnn7.1.4+protobuf2.6.1)---第二次

emmmmmm 老板年前把这台服务器借给一个早已毕业的学长了,原因是他们公司(keep)没有塔式的服务器...然后年后还回来之后...发现我的openpose全坏了,bin文件都不知道被他们搞到哪去了,环境也乱了,图形界面循环登陆......坑学弟......只能重新配了

然后第二天老板跟合作公司的负责人开会...夸下海口:我们去年已经把openpose跑起来了 (???瑟瑟发抖不敢说话)

毕竟之前只成功过一次,还是磕磕绊绊的,虽然有操作记录,但是心里还是没底,而且很久也没装机了。带着研零的学弟学妹完全按照上次的方法操作,创建虚拟环境的时候一直报HTTP 403 Forbidden的错误:

Fetching package metadata: .Error: HTTPError: 403  Forbidden  http://repo.continuum.io/pkgs/pro/linux-64/

怀疑是Miniconda的版本问题,之前用安装完全没有问题。于是换了各种Anaconda2/3和Miniconda版本,虽然可以成功创建虚拟环境,但是在caffe编译时还是碰到了各种奇奇怪怪的问题,遂觉之前的方法可能有问题了,难道是openpose更新了?  于是又开始上网查......查到了这个 感谢:https://blog.csdn.net/qq_35468937/article/details/81514198,这个blog没有用到anaconda。

1、安装linux-ubuntu16.04系统

熟悉的大白菜:

制作好启动U盘之后开始重装系统.....................。

 

2、安装NVIDIA显卡驱动、cuda、cudnn

2.1 ubuntu 16.04默认安装了第三方开源的驱动程序nouveau,安装nvidia显卡驱动首先需要禁用nouveau,不然会碰到冲突的问题,导致无法安装nvidia显卡驱动。

编辑文件blacklist.conf:

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

在文件最后部分插入以下两行内容:

blacklist nouveau

options nouveau modeset=0

更新系统:

sudo update-initramfs -u

重启(必须)后,验证nouveau是否已禁用:

lsmod | grep nouveau

若无任何显示,则说明禁用成功。按ctrl+alt+f1进入命令行界面关闭图形界面,不执行会出错。在命令行界面下输入:

sudo service lightdm stop  

安装:

sudo ./NVIDIA-Linux-x86_64-396.18.run -no-x-check -no-nouveau-check -no-opengl-files 

-no-x-check:安装驱动时关闭X服务

-no-nouveau-check:安装驱动时禁用nouveau

-no-opengl-files:只安装驱动文件,不安装OpenGL文件,只有禁用opengl这样安装才不会出现循环登陆的问题

查看显卡信息:

nvidia-smi

 

2.2安装cuda9.0(这里不需要再安装nvidia显卡驱动)

安装所需依赖:

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

安装cuda9.0:

​sudo sh cuda_9.0.xxxxxxxxxxxx.run

安装结果:

将这三行加入环境变量,并用source命令使其生效:

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export LIBRARY_PATH=/usr/local/cuda/lib64:$LIBRARY_PATH

 

2.3安装cudnn7.1.4

解压tar文件:

sudo tar -xzf cudnn-9.0-linux-x64-v7.1.tgz -C /usr/local

把解压后的cudnn.h和libcudnn*放到cuda安装目录里面去:

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
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

 

3、安装opencv

通过apt-get安装opencv2:

sudo apt update

sudo apt upgrade

sudo apt install libopencv-dev python-opencv

查看是否安装成功:

pkg-config --modversion opencv 

如果输出了对应opencv的版本信息,说明安装成功

 

4、Caffe搭建

安装相关依赖库:

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
 
sudo -H pip install --upgrade numpy protobuf

查看protobuf版本:

protoc --version

若是2.6.1则没问题。

 

下载caffe:

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

检查caffe版本:

cd caffe/
git checkout f019d0dfe86f49d1140961f8c7dec22130c83154

原因(我在上一次的博客中写了):

修改Makefile.config:
1、进入caffe,将 Makefile.config.example 文件复制一份并更名为Makefile.config ,也可以在caffe目录下直接调用以下命令完成复制操作 :

sudo cp Makefile.config.example Makefile.config

2、修改Makefile.config文件,在caffe目录下打开该文件:

修改内容:

...
将
#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、然后修改 /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!
...

编译 ,在caffe目录下执行

sudo make all -j

测试: 

sudo make runtest -j

测试全部通过则可继续下一步。 

 

5、Openpose编译

下载openpose:

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

安装Cmake Gui:

sudo apt-get install cmake-gui

下载模型(这一步可跳过,因为之后会自动下载):

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

打开cmke软件:

cmake-gui

<以下cmake的图片均来源于我参考的博客>

填写openpose源码目录以及build:
è¿éåå¾çæè¿°

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

è¿éåå¾çæè¿°

点击Generate按钮,中间会出现一些红色的可配置项。之后按图操作配置caffe编译路径 :

è¿éåå¾çæè¿°

最后点击Generate按钮。

编译项目:

cd build/
sudo make

编译过程中出现过一个错误 cannot find #include “caffe/proto/caffe.pb.h” 
通过下图方法解决问题(好像是在caffe目录下输入如下代码,最好按照各个路经确认一下):

è¿éåå¾çæè¿°

 测试:

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

若(https://blog.csdn.net/blgpb/article/details/87925768)

可能是因为caffemodel文件下载出错,再下载一遍就好了。

我没下载这个(用不到),直接试了另外一个模型就成功了:

./build/examples/openpose/openpose.bin --video ./examples/media/video.avi --write_video ./video/test.avi --write_json output/ --model_pose COCO

 

 用这行命令可以查看更具体的使用说明(是否显示、是否保存视频以及保存路径、是否保存json以及保存路径、使用的模型...):

./build/examples/openpose/openpose.bin --help

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FnLee_BUPT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值