tfpose与openpose区别_基于TensorFlow2.x的实时多人二维姿势估计

作者|Marcelo Rovai

编译|VK

来源|Towards Data Science

介绍

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

然而,什么是姿势估计

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

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

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

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

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

姿势估计的挑战

姿势估计有几个问题,如:每个图像可能包含未知数量的人,这些人可以出现在任何位置或比例。

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

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

为了解决这些问题,一种更令人兴奋的方法是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/challeng... 2017的视频录制(https://www.youtube.com/watch...,以便更好地理解。

TensorFlow 2 OpenPose (tf-pose-estimation)

最初的OpenPose是使用基于模型的VGG预训练网络和Caffe框架开发的。但是,我们将遵循Ildoo Kim 的TensorFlow实现,详细介绍了他的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/@gsethi240...。转到终端并创建一个工作目录(例如,“Pose_Estimation”),并移动到那里:mkdir Pose_Estimation

cd Pose_Estimation创建虚拟环境(例如,Tf2_Py37)conda create --name Tf2_Py37 python=3.7.6 -y

conda activate Tf2_Py37安装TF2pip install --upgrade pip

pip install tensorflow安装开发期间要使用的基本软件包:conda install -c anaconda nump

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值