当前位置:   article > 正文

基于TensorFlow2.x的实时多人二维姿势估计_vue tensorflow 人体图像绘制

vue tensorflow 人体图像绘制

作者|Marcelo Rovai 编译|VK 来源|Towards Data Science

介绍

正如Zhe Cao在其2017年的论文中所述,实时多人二维姿势估计对于机器理解图像和视频中的人至关重要。

然而,什么是姿势估计

顾名思义,它是一种用来估计一个人身体位置的技术,比如站着、坐着或躺下。获得这一估计值的一种方法是找到18个“身体关节”或人工智能领域中命名的“关键点(Key Points)”。下面的图像显示了我们的目标,即在图像中找到这些点:

关键点从0点(上颈部)向下延伸到身体关节,然后回到头部,最后是第17点(右耳)。

使用人工智能方法出现的第一个有意义的工作是DeepPose,2014年由谷歌的Toshev和Zegedy撰写的论文。提出了一种基于深度神经网络(DNNs)的人体姿势估计方法,该方法将人体姿势估计归结为一个基于DNN的人体关节回归问题。

该模型由一个AlexNet后端(7层)和一个额外的目标层,输出2k个关节坐标。这种方法的一个重要问题是,首先,模型应用程序必须检测到一个人(经典的对象检测)。因此,在图像上发现的每个人体必须分开处理,这大大增加了处理图像的时间。

这种方法被称为“自上而下”,因为首先要找到身体,然后从中找到与其相关联的关节。

姿势估计的挑战

姿势估计有几个问题,如:

  1. 每个图像可能包含未知数量的人,这些人可以出现在任何位置或比例。

  2. 人与人之间的相互作用会导致复杂的空间干扰,这是由于接触或肢体关节连接,使得关节的关联变得困难。

  3. 运行时的复杂性往往随着图像中的人数而增加,这使得实时性能成为一个挑战。

为了解决这些问题,一种更令人兴奋的方法是OpenPose,这是2016年由卡内基梅隆大学机器人研究所的ZheCao和他的同事们引入的。

OpenPose

OpenPose提出的方法使用一个非参数表示,称为部分亲和力场(PAFs)来“连接”图像上的每个身体关节,将它们与个人联系起来。

换句话说,OpenPose与DeepPose相反,首先在图像上找到所有关节,然后“向上”搜索最有可能包含该关节的身体,而不使用检测人的检测器(“自下而上”方法)。OpenPose可以找到图像上的关键点,而不管图像上有多少人。下面的图片是从ILSVRC和COCO研讨会2016上的OpenPose演示中检索到的,它让我们了解了这个过程。

下图显示了用于训练的两个多阶段CNN模型的结构。首先,前馈网络同时预测一组人体部位位置的二维置信度映射(关键点标注来自(dataset/COCO/annotations/)和一组二维的部分亲和力场(L)。

在每一个阶段之后,两个分支的预测以及图像特征被连接到下一个阶段。最后,利用贪婪的推理对置信图和相似域进行解析,输出图像中所有人的二维关键点。

在项目执行过程中,我们将回到其中一些概念进行澄清。但是,强烈建议你遵循2016年的OpenPose ILSVRC和COCO研讨会演示(http://image-net.org/challenges/talks/2016/Multi-person%20pose%20estimation-CMU.pdf)和CVPR 2017的视频录制(https://www.youtube.com/watch?v=OgQLDEAjAZ8&list=PLvsYSxrlO0Cl4J_fgMhj2ElVmGR5UWKpB),以便更好地理解。

TensorFlow 2 OpenPose (tf-pose-estimation)

最初的OpenPose是使用基于模型的VGG预训练网络和Caffe框架开发的。但是,我们将遵循Ildoo Kim 的TensorFlow实现,详细介绍了他的tf-pose-estimation。

Github链接:https://github.com/ildoonet/tf-pose-estimation

什么是tf-pose-estimation?

tf-pose-estimation是一种“Openpose”算法,它是利用Tensorflow实现的。它还提供了几个变体,这些变体对网络结构进行了一些更改,以便在CPU或低功耗嵌入式设备上进行实时处理。

tf-pose-estimation的GitHub页面展示了几种不同模型的实验,如:

  • cmu:原论文中描述的基于模型的VGG预训练网络的权值是Caffe格式,将其转换并用于TensorFlow。
  • dsconv:除了mobilenet的深度可分离卷积之外,与cmu版本的架构相同。
  • mobilenet:基于mobilenet V1论文,使用12个卷积层作为特征提取层。
  • mobilenet v2:与mobilenet相似,但使用了它的改进版本。

本文的研究是在mobilenet V1(“mobilenet_thin”)上进行的,它在计算预算和延迟方面具有中等性能:

第1部分-安装 tf-pose-estimation

我们参考了Gunjan Seth的文章Pose Estimation with TensorFlow 2.0(https://medium.com/@gsethi2409/pose-estimation-with-tensorflow-2-0-a51162c095ba)。

  • 转到终端并创建一个工作目录(例如,“Pose_Estimation”),并移动到那里:
mkdir Pose_Estimation
cd Pose_Est
  • 1
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号