tfpose与openpose区别_人体姿态识别--Openpose+Tensorflow

目的复现代码

完成视频中的人体姿态识别

复现过程

视频来源:https://www.youtube.com/watch?v=cMhWNGBW1Xg​www.youtube.com

视频动图

检测结果下载的画质本来就不高,再加上两次录屏,画质比较渣。

首先确认工程所需要的依赖:python3

tensorflow 1.4.1+

opencv3, protobuf, python3-tk

slidingwindow

然后进行安装:

$ git clone https://www.github.com/ildoonet/tf-pose-estimation

$ cd tf-pose-estimation

$ pip3 install -r requirements.txt

这里我的当前的环境中,pip对应的版本是python3,所以修改该命令为

pip install -r requirements.txt

遇到以下问题:

Looking in indexes: https://pypi.mirrors.ustc.edu.cn/simple/

Collecting git+https://github.com/ppwwyyxx/tensorpack.git

Cloning https://github.com/ppwwyyxx/tensorpack.git to /tmp/pip-req-build-d9276zkb

Complete output from command python setup.py egg_info:

Traceback (most recent call last):

File "", line 1, in

File "/tmp/pip-req-build-d9276zkb/setup.py", line 7, in

assert version > 30, "Tensorpack installation requires setuptools > 30"

AssertionError: Tensorpack installation requires setuptools > 30

----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-req-build-d9276zkb/

根据提示,是因为setuptools版本太低,于是更新

pip install --ignore-installed --upgrade setuptools

后续又提示几个依赖出现同样的版本问题,可以用上面的命令逐一更新。

最后安装成功显示:

Successfully built tensorpack

Installing collected packages: tensorpack

Successfully installed tensorpack-0.9.4

然后编译C++库

$ cd tf_pose/pafprocess

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

输出:

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

The program 'swig' can be found in the following packages:

* swig

* swig2.0

Try: sudo apt install

根据提示安装swig

sudo apt install swig

再次运行

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

接着遇到了CUDA版本的问题

ImportError: libcublas.so.10.0: cannot open shared object file: No such file or directory

因为之前在python27虚拟环境中使用cuda8,现在在python3中使用cuda10,所以需要更换cuda的路径,这里可以参考:shellyfung:人体姿态识别--AlphaPose+TensorFlow​zhuanlan.zhihu.coma78e5b98d64650492a9b60afa1fed405.png

更换之后运行demo

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

输出以下信息:

Status: CUDA driver version is insufficient for CUDA runtime version

这里需查看以下内容NVIDIA驱动

CUDA版本

tensorflow版本

这三者之间是有版本对应关系的,因为目前切换了cuda10,而对应的nvidia驱动版本过低,因此重新安装NVIDIA驱动,这里大家可以参考网络上的教程,卸载的方式和你安装的方式最好是对应的。安装完成之后,使用nvidia-smi查看安装结果。

然后运行

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

可以在对应的路径下查找输出的结果。

检测视频

作者提供了一个摄像头实时检测的脚本

python run_webcam.py --model=mobilenet_thin --resize=432x368 --camera=0

因为我要检测视频,所以需要修改部分内容。

打开run_webcam.py,查看读取摄像头的代码

作者是使用opencv读取的摄像头,而在opencv中,读取摄像头和读取视频使用的方法是一样的,只不过需要修改传入参数。首先在本地测试读入视频,代码如下:

import cv2

import numpy as np

cap = cv2.VideoCapture("video.mp4")

while 1:

ret, frame = cap.read()

cv2.imshow("capture", frame)

if cv2.waitKey(100) & 0xFF == ord('q'):

break

cap.release()

cv2.destroyAllWindows()

可以成功读取视频,只不过使用的是cpu,画面非常的卡顿。

接着修改脚本中的参数:

# parser.add_argument('--camera', type=int, default=0)

parser.add_argument('--camera', type=str, default='0x0')

然后在终端运行:

python run_webcam.py --model=mobilenet_thin --resize=432x368 --camera=video.mp4

只需要将—camera=后面的内容修改为视频的名称就可以,前提是视频需要和脚本放在同一目录下。

然后就可以看到输出结果了,视频截图:

可以看到,在某些动作比较快的画面下,检测结果的丢帧还是存在的。

完整检测后的视频链接:https://youtu.be/zdIyKFJ4xzg​youtu.be

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值