赞
踩
作者|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提出的方法使用一个非参数表示,称为部分亲和力场(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),以便更好地理解。
最初的OpenPose是使用基于模型的VGG预训练网络和Caffe框架开发的。但是,我们将遵循Ildoo Kim 的TensorFlow实现,详细介绍了他的tf-pose-estimation。
Github链接:https://github.com/ildoonet/tf-pose-estimation
tf-pose-estimation是一种“Openpose”算法,它是利用Tensorflow实现的。它还提供了几个变体,这些变体对网络结构进行了一些更改,以便在CPU或低功耗嵌入式设备上进行实时处理。
tf-pose-estimation的GitHub页面展示了几种不同模型的实验,如:
本文的研究是在mobilenet V1(“mobilenet_thin”)上进行的,它在计算预算和延迟方面具有中等性能:
我们参考了Gunjan Seth的文章Pose Estimation with TensorFlow 2.0(https://medium.com/@gsethi2409/pose-estimation-with-tensorflow-2-0-a51162c095ba)。
mkdir Pose_Estimation
cd Pose_Est
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。