tfpose与openpose区别_【tf-pose-estimation】人体姿态识别tensorflow版OpenPose Ubuntu16.04安装全过程...

孔砚
2023-12-01

3记录一下openpose tf版本的安装全流程,踩了所有的坑,希望你可以一次性安装成功。

环境:Ubuntu16.04+Anaconda3

code:https://github.com/ildoonet/tf-pose-estimation

paper:https://arxiv.org/pdf/1611.08050.pdf

1)创建虚拟环境+安装cuda+cudnn+tensorflow-gpu:

首先创建一个python3.6的虚拟环境,设置conda国内镜像源,然后使用conda来安装tensorflow-gpu,conda安装的好处会自动装上一系列依赖,包括cuda和cudnn(这个前提是安装好了对应显卡的驱动,如何安装驱动有很多教程就不赘述。比起在官网自己下载设置cuda和cudnn,使用conda安装,非常方便。) 会自动安装好tensorflow-gpu 1.4.1所对应的cuda和cudnn版本。

conda create -n openposetf python=3.6

source activate openposetf

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

conda config --set show_channel_urls yes

conda install tensorflow-gpu=1.4.1

然后测试是否安装成功:

python

import tensorflow as tf

sess=tf.Session(config=tf.ConfigProto(log_device_placement=True))

如果输出了gpu信息,就算安装成功了。

2)安装opencv3:

这里我使用conda来安装的opencv,安装成功了,但是在后面跑demo的时候出现了问题,最后也解决了问题。所以我这里给出了两种方法:

(1)使用conda安装opencv,再修复一些错误。这是我使用的方法,虽然我碰到了很多麻烦,但是总结一下照着走应该不会有任何问题。

(2)直接用pip来安装opencv,网上很多都是这样安装的,但是我没有尝试过,所以不能保证不会遇到bug。。

先说第一种:

直接用conda一键安装

conda install opencv

安装的是opencv3.3,可以import cv2测试一下是否安装成功。但是如果这样就当安装成功就大错特错了,一开始我直接这样去跑demo,对照片是可以运行的,但是无法运行视频文件。会报错:

OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow, file /opt/conda/conda-bld/opencv_1491943970124/work/opencv-3.1.0/modules/highgui/src/window.cpp, line 527

这个错误网上有很多七七八八的方法,试了一下都不行,后来在一个博客找到了成功的办法,依然是一句命令行:

conda install --channel https://conda.anaconda.org/menpo opencv3

这是opencv变成了3.1版本,但是仍然只能跑图片无法跑视频,这时的错误是:

Error opening video stream or file

无法读取视频,cap.isOpened()都返回False,解决方法:将conda安装的opencv3卸掉再重装:

conda uninstall opencv3

pip install opencv-python

就好了。。可以读取视频了。。这时的opencv是4,0版本。那么问题来了,为什么我一开始要用conda安装opencv再删掉再用pip安装呢???哈哈哈我也不知道。反正最后成了,我感天动地。所以第二种方法就是直接用pip安装,虽然网上一般都是用pip安装,但是谁知道能不能成功呢?万一我用conda装的时候装了什么依赖pip没包含进去呢?fine,反正如果有人pip一键成功的希望评论告诉我,下回我也可以直接pip安装拉。

第二种:

pip install opencv-python

3)安装requirements:

下载code:https://github.com/ildoonet/tf-pose-estimation

安装依赖:

pip install protobuf

pip install python3-tk

打开tf-pose-estimation-master文件夹,安装requirement:

pip install -r requirements.txt

其中有一条是pip+git,如果网速不好的可以单独下载压缩包,再在本地安装(如果网速好的就忽视这一条):

pip install master.zip #本地安装包

还需要安装swig支持:

cd tf_pose/pafprocess

sudo apt install swig

swig -python -c++ pafprocess.i && python3 setup.py build_ext --inplace

到此,环境已经搭建好了,后面再跑demo的时候可能还会缺少一些包,再pip install就行。

4)运行demo:

检测图像:

python run.py --model=mobilenet_thin --resize=432x368 --image=./images/p2.jpg

检测视频时,发现输出并没有包含关节,在github的issue中找到了解决方案。将run_video.py的45行

humans = e.inference(image)   改成:humans = e.inference(image, resize_to_default=True, upsample_size=4.0)

就可以了,检测视频:

python run_video.py --model=mobilenet_thin --resolution=432x368 --video=test.mp4

大功告成!另外还可以调用摄像头,但是台式机没有摄像头,所以没有尝试。

 类似资料: