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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

让 步( 写的太好了!)

一个不懂得为亲人让步,为朋友让步,为爱人让步,为合作伙伴让步的人,是缺乏胸襟的人,最无能和不可交的人。试问一个连自己人都斤斤计较的人可交往吗!长不大的人最重要的标志,就是跟自己人&#xf…

Android学习手记(2) Activity生命周期

1. 单个Activity的生命周期 当只有一个Activity的时候, 首先执行onCreate->onStart->onResume。 这时, 窗口便显示在屏幕上了。 然后我们按返回键退到桌面的时候,便执行onPause->onStop。这时候, 如果我们在最近使用程序…

MySQL二级比office二级_如何快速拿到计算机office二级

计算机二级考试是全国计算机等级考试(简称NCRE)四个等级中的一个等级,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。计算机二级考试采用全国统一命题、统一考试的形式。多被国企和大型企业考核员工薪资的一个标准同时也是在信息化时…

墙角的父亲(一篇让千万人潸然泪下好文)

前言:拥有思想的瞬间,是幸福的;拥有感受的快意,是幸福的;拥有父爱也是幸福的。帮老乡大将搬家。在整理一堆旧书籍的时候,大将蹲在地上呜呜大哭起来。大将打开的是一个笔记本,上面记着日常开支&a…

移动广告效果监测

android渠道包自动化验证 酷传应用统计 友盟统计分析平台 机锋统计 怎样监控移动互联网广告的效果 talkingdata AD tracking转载于:https://www.cnblogs.com/terrylin/p/4865462.html

react遍历对象的值_React 原理之实现 createElement 和 render 方法

前言在 React 中,我们都知道可以写 jsx 代码会被编译成真正的 DOM 插入到要显示的页面上。这具体是怎么实现的,今天我们就自己动手做一下。实现 createElement 方法这个方法平时开发我们并不会用到,因为它是经 babel 编译后的代码&#xff0c…

成熟就是深谙世故却不世故

对于一个打小在农村长大的孩子而言,被夸作“早熟”是一种荣耀。它意味着你足够懂事,可以分担父母的一些忧愁。但这也是一个怪圈,因为你常要背负这种光环去做一些超乎自己年龄的事,强迫自己变得坚忍、不可战胜。那年,我…

2015/10/9 Python核编初级部分学习总结

终于在十一长假之后的两天看完了《Python核心编程》的初级部分。虽然到后来两章,类和环境看得越来越慢,越来越难以理解。很多东西只能靠强记,也没办法真正掌握了,我想了想,还是不强迫自己去背下这些知识,累…

SQl常用语句总结(持续更新……)

创建示例数据库USE master;GOIF DB_ID (Nmytest) IS NOT NULLDROP DATABASE mytest;GOCREATE DATABASE mytest;GOUSE mytest;GOIF OBJECT_ID(Ndbo.Orders) IS NOT NULLDROP TABLE dbo.Orders;GOCREATE TABLE dbo.Orders(ProductID INT NOT NULL,MadeFrom CHAR(20),Sales MONEY …

大话设计模式笔记 享元模式

享元模式(Flyweigh),运用共享技术有效地支持大量细粒度的对象。 package flyweight;//可以接受并作用于外部状态 public abstract class Flyweight {public abstract void operation(int extrinsicState);} package flyweight;//为内部状态增…

python12岁_12岁。Python操作Excel,12Python,excel

excel在Python中的应用存测试数据有的时候大批量的数据,存到txt文件里显然不是最佳的方式,我们可以存到excel文件里面,第一方便我们存储数据和做数据,一方面方便我们读取数据,比较明朗。测试的时候就从数据库中读取出来…

什么叫工作到位?很深刻!

1、汇报工作说结果不要告诉老板工作过程多艰辛,你多么不容易!老板不傻,否则做不到今天。举重若轻的人老板最喜欢,一定要把结果给老板,结果思维是第一思维。2、请示工作说方案不要让老板做问答题,而是要让老…

react 给一个引用的组件添加新属性_高阶组件在React中的应用

高阶组件的定义接受React组件作为输入,输出一个新的React组件。概念源自于高阶函数,将函数作为参数,或者输出一个函数,如map,reduce,sort。 用haskell的函数签名来表示: hocFactory:: W: React.…

杂想 · 警醒

今天无意间看到CSDN上一位大牛师姐的博客,真的是好惊讶啊!很多时候总是太过自以为是,以为自己做不到的事情别人也很难做到。恰恰相反,成功总是伴随那些谦逊、努力、认真的人的!曾几何时,自己或许也是一个认…

好好的活,简简单单过!

生命,每个人只有一次,或长或短;生活,每个人都在继续,或悲或欢;人生,每个人都在旅途,或起或伏。人无完人,事无完美,有些小人,你不须计较&#xff0…

SQL Server 中创建数据库、更改主文件组示例

以下示例在 SQL Server 实例上创建了一个数据库。该数据库包括一个主数据文件、一个用户定义文件组和一个日志文件。主数据文件在主文件组中,而用户定义文件组包含两个次要数据文件。ALTER DATABASE 语句将用户定义文件组指定为默认文件组。然后通过指定用户定义文件…

lunixs 退出mysql_MySQL的基本操作

1、数据库登录格式:mysql -h主机地址 -u用户名 -p用户密码 -P端口 -D数据库 -e “SQL内容”[rootwulaoer ~]# mysql -uroot -p2、修改密码格式:mysqladmin -u用户名 -p旧密码 password 新密码[rootwulaoer ~]# mysqladmin -uroot password 123456注&…

交际中你所不知道的说话的12个技巧!

1.“有一说一”和“自以为是”不同,别把粗鲁当成真性情与 他人相处,要遵循一个基本原则:己所不欲,勿施于人。你可以真挚地描述自己的感受,前提是不要带有攻击性,至于对他人做出评价和判断,则需要…

宽客的人amp;amp;事件映射

看完《宽客》这本书,叙事介绍20世纪华尔街对冲基金、股票、投资者依赖股市从直觉交易数学家的早期演化、物理学家用数学模型开发过程中的交易,这些进入金融数学家、物理学家依靠大数据分析、稍纵即逝的交易机会来买入卖出;同一时候找出交易模…