摘要
实时多人二维姿态估计是使机器了解人的关键组成部分图像和视频。在这项工作中,我们提出了一种实时检测图像中多个人的二维姿态的方法,被提议的方法使用非参数表示,我们将其称为部分亲和域(paf),以学习将身体部位与之关联图像中的个体。这种自下而上的系统无论人数多少都能实现高精度和实时性的形象,在之前的工作中,paf和身体部位位置估计是在训练阶段同时细化的。我们证明仅对PAF进行细化,而不是PAF和身体部位定位的细化,会导致两者都大幅增加运行时性能和准确性。我们还提出了第一个结合体和脚的关键点探测器,基于内部注释我们已经公开发布了足部数据集。我们证明了联合检测器不仅减少了推理时间按顺序运行它们,但也保持了每个组件单独的准确性。这项工作达到了顶峰,OpenPose,首个用于多人二维姿态检测的开源实时系统,包括身体、脚、手和面部关键点
论文摘要:https://arxiv.org/pdf/1812.08008.pdf 代码链接:https://www.github.com/ildoonet/tf-pose-estimation(如若代码失效,私聊获取) 数据集链接:https://cmu-perceptual-computing-lab.github.io/foot_keypoint_dataset/
一、介绍
在本文中详细了解图片和视频的任务 人类二维姿态估计:或者可以说是一个定位问题,点,“部分的操作” 人类估计主要集中在寻找个体的身体部位。推断圈中多个人的姿势在图片中呈现出独特的挑战。首先,每个图像可能包含一个未知数可以以任何位置或比例出现的人数。第二,人与人之间的互动诱发了复杂的空间由于接触、闭塞或肢体关节造成的干扰。 常用的方法是人侦测器,对每个检测进行单人姿态估计。这些自顶向下的方法直接利用现有的方法,然而自下而上的方法并不直接利用身体其他部位的整体上下 图1:上图多人姿态估计,身体的各个不为都是渴望与同一人相连的,包括脚的关键部位(大脚趾、小脚趾和高跟鞋),左下部分对于肢体的连接手腕和肘部,每个像素中的2d方向和四肢位置作为最终的解析,效率的提高需要昂贵的全局解析推论,每副图像花费几分钟。 本文提出了一种具有竞争性能的多人姿态估计方法多个公共基准。我们通过部分亲和力给出了第一个自底向上的关联分数表示字段(PAFs),一组2D矢量字段,用于编码四肢在图像域中的位置和方向。我们演示了同时推断这些自底向上的检测和关联编码表示足够的全局上下文使贪婪解析达到高质量的结果,结算成本的一小部分。 图2:(a)我们的方法将整个图像作为CNN的输入,共同预测(b)置信度 ?零件关联的paf。(d)解析步骤执行一组二部匹配联想身体部位候选人。(e)我们最终将它们组合成图片中所有人的全身姿势。 PAF:这是一个向量场的集合,其中每一个向量场从属于图像中某一躯体部位,向量场中的每一个向量对应躯体部位区域每一个元素在其中的一个2D向量编码指向下一个关键关节的方向 openpose所带来的贡献(改进方法):
- 证明PAF细化是最大化acc准确率的关键,而身体部分预测的细化不是最重要的。
- 增加了网络深度,但删除了身体部分的阶段(3讲解)
- 这种精细的网络提高了速度和准确分别为200%和7%
- 其次提出了一个公开数据,脚和身体关键点训练保存的模型速度。
- 包含了与Mask的运行时R-CNN和ALpha-Pose,显示计算自下而上方法的有点。
二、相关工作
单人姿势估计的传统方法关节式人体姿态估计是进行推理通过对身体部位的局部观察以及它们之间的空间依赖性。关节位姿模型是基于树形结构的图形模型度量地编码相邻的空间关系遵循运动链的部分,或非树模型增加树形结构额外的边捕捉遮挡,对称,和长范围关系。以获得可靠的局部观测资料卷积神经网络(cnn)广泛应用,显著提高了人体姿态估计的准确性。Tompson等Al .使用了带有图形模型的深层架构其参数与网络联合学习Pfister等人进一步使用cnn隐式捕捉通过设计具有全局空间依赖性的网络。 对于多人姿态估计,大多数方法为自上而下的策略,检测人,然后估计每个检测区域的独立的独立人员。从paf中获得两两分数额外的训练步骤。这些分数足以贪婪的解析以获得高质量的实时结果多人评估性能。并发到这个Insafutdinov等人的进一步简化了他们的身体部分关系图,以便在单帧中更快地推理模型和制定铰接式人体跟踪作为空间时间分组的部分建议等人提出了联想嵌入认为作为标签代表每个关键点的组。他们将具有相似标签的关键点分组为,单个人提出检测单个关键点并预测其相对位移,允许a贪婪解码过程将关键点分组为人实例。Kocabas等人提出了一个姿势残差接收关键点和人员检测的网络,然后将关键点分配给被检测人的边界盒子。Nie等人提出利用密集回归从候选关键点划分保护的所有关键点到图像中人物的质心。 图3:多级CNN的架构。第一组阶段预测paf而最后一组预测了. 每个阶段的预测和他们的对应的图像特征被连接起来随后的阶段。内核大小为7的卷积,原来的方法被替换为内核3的3层convolu,在它们的末端连接。 在这项工作中,我们对前面的工作做了几个扩展工作、。我们证明了PAF的细化是至关重要的,并且足以提高精度,去除身体部分的置信度地图细化,同时增加网络深度。这导致了更快更准确的模型。我们还展示了第一个结合体和脚的关键点探测器,创建来自将公开发布的注释脚数据集。我们证明了结合两种检测方法不会只比运行它们减少了推断时间但同时也保持了他们个人的准确性。最后,我们介绍OpenPose,第一个开源库用于实时的身体、脚、手和面部关键点检测。
三、方法
图2显示了我们方法的整体流程。以w × h的彩色图像作为输入(图2a)并生成解剖关键点的二维位置(图2e)。首先,一个前馈网络预测一组体的二维置信度图S(图2b)和一组的二维向量场L部分亲和场(paf),编码部分之间的关联程度(图2c)。为清晰起见,将部分成对称为四肢,但有些成对是不是人的四肢(如脸)。Lc中的每个图像位置编码一个2D矢量(图1)。最后,置信度映射通过贪婪推理对paf进行解析(图2d)为图像中的所有人输出2D关键点。
3.1网络体系结构
我们的架构,如图3所示,迭代地预测亲和性编码部分到部分关联的字段,用蓝色表示,以及米色的探测置信图。it预测体系结构,遵循[20],细化了连续阶段的预测,t∈{1,…T}每一阶段的中间监督。 网络深度相对于增加。在最初的方法,包括网络体系结构 几个7x7的卷积层。在我们目前的模型中,当计算被保留时,接收域被保留通过将每个7x7卷积核替换为3来减少连续3 x3的内核。而操作的次数前者是2 × 7**2?1 = 97,后者仅为51。另外,输出每个3个卷积内核是按照类似的方法连接的DenseNet。非线性层的数量增加了两倍,网络既可以保持低层次,也可以保持高层次级功能。第5.2节和5.3节分析了准确性和运行时速度的改进。
3.2同时检测与关联
图像由CNN分析(由前10初始化)层的vgg19和微调),生成一组特征映射F是第一阶段的输入。在这个阶段,网络产生一组部分亲和场(PAFs)参考cnn的推断在阶段1。在接下来的每个阶段,预测来自前一阶段与原始图像特征F为连接并用于产生精确的预测。 为t阶段推断的cnn,和TP等于总PAF阶数。TP迭代后,对置信图检测重复这个过程,从最新的PAF预测开始, 为t阶段推断和TC的cnn到总置信度图阶段的数量。这种方法不同于CVPR,在CVPR中,PAF和每个阶段都细化了置信图分支。因此,每一级的计算量减少了一半。我们在第5.2节中通过经验观察到这种精炼的亲和力现场预测提高了置信度图的结果反之则不成立。直觉上,如果我们看PAF通道输出,身体部位位置可猜测。但是,如果我们只看到一堆身体部位信息,我们无法对不同的人进行分析。 图4:右前臂跨阶段paf。虽然左右身体部位和四肢是否混淆在早期阶段,估计越来越精确后期阶段的整体推理。 最新和最精确的PAF预测,导致在信心图的各个阶段几乎没有明显的差异。引导网络对人体paf进行迭代预测第一个分支中的部分和第二个分支中的置信映射分支,我们在每个阶段的最后应用一个损失函数。我们在估计的预测和地面真理地图和田野。在这里,我们计算损失空间功能来解决一些实际问题数据集不能完全标记所有人。具体来说,ti阶段PAF分支的损失函数和损失函数的置信映射分支在阶段tk为: L在哪里和真实的paf对比,置信映射,W为W§ = 0的二进制掩码当注释在像素p处缺失时用来避免惩罚真正积极的预测 在培训。各阶段的中间监督通过补充来解决渐变消失的问题 梯度周期性地为CVPR。总体目标是
3.3零件检测的置信度图
为了训练时评估中的fs我们生成了groundtrutch的用法和样例,每个置信映射都是一个的二维表示相信身体的某个特定部位可以位于任何给定的像素。理想情况下,如果图像中出现了一个人,在每个置信图中应该存在一个峰值,如果对应部分可见;如果有很多人。图像中,应该有对应于每个可见峰 在第j个部分的k,我们首先生成个体置信图S,假设xj,k属于R2为真是位置,图中的人物k,位置的值为p属于R2,在sjk的图里面 控制峰值的扩散。的groundtruth网络预测的置信图是一个聚合通过Max算子得到的个体置信映射 图5:部分关联策略。(a)身体部位检测候选人(红点和蓝点)为两种身体部位类型和所有连接候选者(灰色线)。(b)连接使用中点(黄点)表示的结果:正确连接(黑线)和错误连接(绿线)也满足关联约束。?结果使用paf(黄色箭头)。通过编码位置在支撑肢体的方向上,paf消除,错误的联想 取的最大值,而不是置信度,这一平均值使得附近山峰的精确度得以保持,清晰的,如右图所示。在测试时间,我们预测置信度图,获得候选身体部位通过执行非最大抑制
3.4部件关联字段用于部件关联
给定一组检测到的身体部位(显示为红色和图5a中的蓝色点,我们如何组装它们形成不知多少人的全身姿势?我们需要对每一对的关联进行置信度测量身体部位的检测,也就是说,们属于同一个人的人。衡量这种关联的一种可能的方法是检测每对零件之间的一个额外的中点并检查其在候选人之间的关联零件检测如图5b所示。然而,当人们把这些中点挤在一起——这是他们的习惯可能支持错误的联想(用绿色表示图5b)。这种错误的联想源于两个原因表示的局限性:(1)它只编码每个肢体的位置,而不是方向;(2)减少支撑点支撑点的支撑点. 部分亲和字段(paf)解决了这些限制。它们保存位置和方向信息(如图5c所示)。每个PAF是每个肢体的2D向量场,也如所示图1 d。对于属于特定区域的每个像素一个2D矢量编码了指向的方向把肢体的一部分换到另一部分。每一种肢体都有一个对应的PAF连接它的两个相关的身体部分. 整个区域所有像素的编码向量(一个像素可能对应多个躯体部位)求和平均组成了PAF。看下图,训练时如果P点在部位区域内,P点的向量的ground truth就是归一化的向量v, 如果不在就是零向量 图6:图匹配。(a)带有部分检测的原始图像。(b) K-partite图。?树状结构。(d)一套一式两份的图 groundtruth部分的亲和力场平均了图像中所有人的亲和力场 其中nc§是在点穿过所有k个人的非零向量的个数。在测试过程中,我们通过沿着连接候选部件位置的线段计算对应PAF上的线积分来测量candi日期部件检测之间的关联。换句话说,我们通过连接检测到的身体部位来测量预测的PAF与候选肢体的对齐。具体来说,对于两个候选的部分位置dj1和dj2,我们沿着线段对预测的部分亲和场Lc进行采样,以测量其关联的置信度: 其中p(u)插入身体的两个部分dj1和dj2 在实践中,我们通过对u的等间距值进行抽样和求和来近似积分.
3.5使用Paf的多人解析
我们对检测置信映射进行非最大抑制,以获得一个离散的部分候选项集。对于每个部分,我们可能会有几个候选人,由于图像中有多个人或假样本(图6b)。这些候选部分定义了大量可能的肢体。我们使用PAF上的线积分计算对每个候选肢体进行评分,定义在Eq. 11中。寻找最优解析的问题对应于已知为NP-Hard[54]的k维匹配问题(图6c)。在本文中,我们提出了一种持续产生高质量匹配的贪婪松弛。我们推测原因是,由于PAF网络的接受域很大,两两关联得分隐式地编码全局背景。 形式上,我们首先得到一组适合多人的身体部位检测候选DJ,其中DJ = {dmj: for j∈{1…J}, m∈{1…NJ}},nj的候选人是j,和d mj∈R2是m的位置检测部位j。这些检测部分候选人的候选人仍然需要与其他部分相同的人,换句话说,我们需要找到对部分检测实际上是连接四肢。我们定义一个变量zmn j1j2∈{0,1}来表示两个候选检测对象dmj1和dnj2是否连通,目标是找到所有可能连接集的最优分配, Z = {Z mnj1j2:对于j1, j2∈{1,…J}, m∈{1…Nj1}, n∈{1…Nj2}}。 如果我们考虑第c肢体的一对部件j1和j2(例如,颈部和右髋关节),寻找最优关联可简化为最大权值二部图匹配问题。这种情况如图所示。5 b。在这个图匹配问题中,图的节点是身体部位检测候选dj1和Dj2,边缘是对检测候选之间所有可能的连接。此外,每条边的权重由公式11 -部分亲和聚合。二部图中的匹配是边的子集,选择的方法是不让任何两条边共享一个节点。我们的目标是为所选的边找到一个权值最大的匹配 这里Ec是来自肢体类型c的匹配的总权重,Zc是肢体类型c的Z的子集,.Eq中定义的部分dmj1和dnj2之间的部分亲和力。14和15强制两条边不能共用一个节点,即同一类型的两条肢体(如左前臂)不能共用一个部分。我们可以使用匈牙利算法来获得最优匹配。 当涉及到寻找完整的身体姿势多人,确定Z是一个k维匹配问题。这个问题是NP-Hard[54]和许多放松存在。在这个工作中,我们在优化中添加了两个松弛,专门针对我们的领域。首先,我们选择最小数量的边来获得人体姿态的生成树骨架,而不是使用完整图,如图6c所示。其次,我们将匹配问题进一步分解为一组二部匹配子问题,并在中悬置确定相邻树节点的匹配,如图6d所示。我们在第5.1节中给出了ison结果的详细比较,证明了最小贪婪推理以很小的计算代价很好地逼近了全局解。原因在于,相邻的树节点之间的关系是由paf显式建模的,而在内部,非相邻的树节点之间的关系是由CNN隐式建模的。之所以出现这种性质,是因为CNN是用一个大的接受域训练的,而paf来自于非相邻的树节点也会影响预测的PAF。 图7:冗余PAF连接的重要性。(a)由于错误的脖子鼻子连接,两个不同的人错误地合并在一起。(b)右耳肩连接的高置信度,避免了错误的鼻颈连接 因此,我们使用Eqns. 13- 15分别获得每种肢体类型的肢体连接候选。通过所有肢体连接候选,我们可以将共享相同部位检测候选的连接组合成多个人的全身姿势。我们在树形结构上的优化方案比在全连接图上的优化方案快几个数量级。 我们目前的模型还包含了冗余的PAF con连接(例如,耳朵和肩膀之间,手腕和肩膀ders,等等)。这种冗余特别提高了拥挤图像中的accuracy,如图7所示。为了处理这些冗余连接,我们稍微修改了多人解析算法。原来的方法是从根组件开始的,我们的算法根据它们的PAF评分对所有可能的配对连接进行排序。如果一个连接试图连接两个已经被分配给不同人的身体部位,算法会识别出这将与一个具有更高置信度的PAF连接相冲突,当前的连接随后被忽略。
四、OpenPose
越来越多的计算机视觉和机器学习应用需要二维人体姿态估计作为系统的输入。为了帮助研究团体推进他们的工作,我们公开发布了OpenPose,第一个实时多人系统,联合检测人体、脚、手和面部的关键点(共135个关键点)在单一图像。整个系统的示例如图8所示。 图8:OpenPose输出,实时检测身体、脚、手、面部关键点。OpenPose对遮挡具有鲁棒性,包括在人机交互过程中。
4.1制度
可用的2D身体姿态估计库,如Mask R-CNN[5]或Alpha-Pose[6],要求其用户实现的大部分管道,他们自己的帧读取器(例如,视频,图像,或相机流),可视化结果的显示,输出文件生成的结果(例如,JSON或XML文件)等。此外,现有的面部和身体关键点探测器并没有结合在一起,每一个目的都需要一个不同的库。OpenPose克服了所有的困难它可以在不同的平台上运行,包括Ubuntu、Windows、Mac OSX和嵌入式系统(如Nvidia Tegra TX2)。它还提供了对不同硬件的支持,如CUDA gpu、OpenCL gpu和CPUonly设备。用户可以在图像、视频、网络摄像头和IP摄像头流之间选择输入。他还可以选择是否显示结果或将其保存在磁盘上,启用或禁用每个检测器(身体、脚、脸和手),启用像素坐标归一化,控制使用多少gpu,跳过帧以更快地处理,等等。 OpenPose由三个不同的模块组成:(a)身体+脚检测,(b)手检测,?人脸检测。核心块是组合体+脚键点探测器(章节4.2)。它可以选择使用原来的身体模型训练COCO和MPII 数据集。基于身体检测器的输出,可以从身体的某些部位,特别是耳朵、眼睛、鼻子和脖子,粗略估计面部边界盒建议。类似地,手边界框的建议是与手臂关键点生成的。这种方法继承了第1节中讨论的自顶向下方法的问题。手关键点检测器算法在中进行了详细的阐述,而面部关键点检测器的训练方式与手关键点检测器的训练方式相同。该库还包括3D关键点位形检测,通过对多个同步摄像机视图的结果进行非线性Levenberg-Marquardt优化进行3D三角测量。 OpenPose的推理时间优于所有状态最先进的方法,同时保持高质量的结果。它能够在一台Nvidia GTX 1080 Ti的机器上运行约22 FPS,同时保持高精度(Section 5.3)。这项研究已经使用了OpenPose基于gan的视频重定位人脸和身体human - computer In interaction , 3D姿态估计,3D人体网格模型生成[61]。此外,OpenCV库在其深度神经网络(DNN)模块中包含了OpenPose和我们基于paf的网络架构结构
4.2扩展脚关键点检测
现有的人体姿势数据集包含有限的身体部位类型。MPII数据集注释脚踝、膝盖、臀部、肩膀、肘部、手腕、脖子、躯干和头部,而COCO[67]也包括一些面部关键点。对于这两个数据集,脚部注释仅限于踝关节位置。然而,图形应用,如化身重新定位或3D人体形状re构造([61],[68])需要足部关键点,如大脚趾和脚跟。如果没有足部信息,这些方法就会受到糖果包装效应、地板渗透和脚滑等问题的困扰。为了解决这些问题,使用Clickworker平台标记了COCO数据集的脚实例的一小部分。它由来自COCO训练集的14K注释和来自验证集的545注释分开。共标记6英尺关键点(见图9a)。我们考虑足部关键点的三维坐标,而不是表面位置。例如,对于准确的脚趾位置,我们标记了指甲与皮肤连接的区域,同时也考虑了深度,标记了脚趾的中心而不是表面 图9:脚关键点分析。(a)脚部关键点标注,包括大脚趾、小脚趾、后跟。(b)右脚踝没有正确配对的纯身体模型示例。?类比体+足模型示例,足部信息有助于预测右脚踝位置 使用我们的数据集,我们训练一个脚关键点检测算法。一个幼稚的脚关键点探测器可以通过使用身体关键点探测器生成脚边界盒提案,然后训练一个脚探测器在它上面。然而,这种方法遇到了第1节中提到的topdown问题。相反,之前描述的身体估计的archi结构被训练来预测身体和脚的位置。图10为三个数据集(COCO, MPII, COCO+foot)的关键点分布。身体+脚模型也inorporates之间的臀部之间的一个插值点,以允许两腿的连接,即使上半身是闭塞或从图像。我们发现有证据表明,脚部关键点的检测含蓄地帮助网络更准确地预测身体的一些关键点,特别是腿部的关键点,比如脚踝的位置。图9b显示了一个仅使用身体网络无法预测踝关节位置的例子。通过在训练中加入足部关键点,同时保持同样的身体标注,算法可以正确预测图9c中脚踝的位置。我们定量分析了第5节的准确性差异。
五、数据集和评估
我们在三个基准上评估了我们的方法,用于多人的姿势估计:(1)MPII人多人数据集[66],其中包括3844个训练和1758个测试组,多个相互作用的个体在高度关节后姿态,有14个身体部位;(2) COCO keypoint challenge数据集[67],该数据集需要同时检测人并定位每个子(包括12个人体部位和5个面部关键点)中的17个关键点(身体部位);(3) foot数据集,它是COCO关键点数据集的15K注释子集。这些数据集收集不同场景下的图像,这些场景包含许多现实世界的挑战,如拥挤、比例变化、遮挡和接触。我们的方法在首届COCO 2016关键点挑战中位居首位[70],显著超过了此前MPII多人基准测试的最先进结果。并对Mask R-CNN和Alpha-Pose进行了运行时分析比较,量化了系统的效率,分析了主要故障情况 图10:3个数据集的关键点注释配置。
5.1MPII多人数据集的结果
为了在MPII数据集上进行比较,我们使用工具包来测量所有身体部位的平均平均精度(mAP),遵循中的“PCKh”度量。表1 com比较了我们的方法和官方MPII测试集上其他方法的mAP性能。我们还比较了每幅图像的平均推理/优化时间(以秒计)。对于288张图像子集,我们的方法outper形成了之前最先进的自下而上方法[2]的8.5% mAP。值得注意的是,我们的推理时间减少了6个数量级。我们将在第5.3节中报告更详细的运行时分析。对于整个MPII测试集,我们的方法在没有规模搜索的情况下已经大大超过了之前的状态最先进的方法,即mAP上的绝对增长了13%。使用3规模搜索(×0.7, ×1和×1.3)进一步将性能提高到75.6% mAP。mAP与以往的自底向上方法的比较表明,我们的新特征表示,paf,关联身体部位的有效性。基于树结构的贪婪解析方法比基于完全连通图结构的图切优化公式具有更好的准确率。 在表2中,我们给出了图6中不同骨架结构的对比结果。我们创建了一个自定义的val提示集,其中包含来自原始MPII训练集的343张图像。我们基于一个完全连通图训练我们的模型,通过选择所有边(图6b,通过整数线性规划近似求解)和最小树边(图6c,通过整数线性规划近似求解,图6d,通过贪婪求解)来比较结果本文提出的算法)。两种方法都得到了相似的结果,证明了使用最小边就足够了。为了充分利用网络容量,我们训练最终模型只学习最小的边,如图6d (sep)所示。这种方法优于图6c甚至图6b,同时保持了效率。较少的部分关联通道(树的13条边vs图的91条边)有助于训练收敛 表1:MPII数据集的结果。Top:[1]中定义的测试子集上的比较结果。中间:比较整个测试集上的ison结果。无比例搜索的测试记为“(一个比例)”。 表2:自定义验证集上不同结构的比较。 图11:MPII验证集上不同PCKh阈值的mAP曲线。(a)自比较实验的mAP曲线。(b)各阶段paf的mAP曲线。 图11a显示了对我们验证集的消融分析。对于PCKh-0.5的阈值[66],我们的PAF方法的准确率比一个中点高2.9%,比两个中点高2.3%,总体优于中点表示方法。PAFs编码了人体四肢的位置和方向信息,能够更好地区分常见的交叉情况,如手臂重叠。使用un标签人员的口罩进行训练,进一步提高了2.3%的表现,因为它避免了在训练期间损失的真实积极预测的惩罚。如果我们在解析算法中使用ground-truth关键点定位,我们可以得到88.3%的mAP。在图11a中,由于没有定位错误,使用GT检测进行解析得到的mAP在不同PCKh阈值上是恒定的。使用GT连接与我们的关键点检测实现了81.6%的mAP。值得注意的是,我们基于paf的解析算法获得了与基于GT连接时相似的mAP (79.4% vs 81.6%)。这表明基于paf的解析在匹配正确的零件检测方面是相当健壮的。图11b显示了各阶段性能的比较。mAP单调地增加与迭代细化框架。图4显示了各阶段预测的定性改进。
5.2COCO关键点挑战的结果
COCO训练集由超过100K人在姿态标记超过100万个关键点组成。测试集包含“test-challenge”和“test-dev”子集,每个子集大约有20K个图像。COCO评价定义了对象关键点相似度(OKS),并使用超过10个OKS阈值的平均平均精度(AP)作为主要竞争度量[70]。在对象检测中,ok与IoU的作用相同。它是根据人的规模和预测点与GT点之间的距离计算出来的。表3显示了挑战中顶级团队的结果。值得注意的是,我们的方法在只考虑高尺度人群(APL)时,准确率有更高的下降 表3:COCO test-dev排行榜,“*”表示未提供引文。顶部:一些最高的顶部下来的结果。底部:最高的自下而上的结果。 表4:COCO val试验集的自比较实验。我们的新体+脚模型比[3]的原作品高出6.9%。 在表4中,我们报告了COCO验证集上的自比较。如果我们使用GT边界框和sin单人CPM[20],我们可以使用CPM实现自顶向下方法的上界,这是62.7% AP。如果我们使用最先进的对象检测器,Single Shot MultiBox detector (SSD),性能下降10%。这一对比表明,自顶向下方法的性能严重依赖于人探测器。相比之下,我们最初的自下而上方法获得了58.4%的AP。如果我们通过在我们方法解析的估计人员的每个重新标度区域上应用单个人CPM来细化结果,我们获得了2.6%的整体AP增长。我们只更新两种方法大致一致的预测的估计,从而提高了精度和召回率。没有CPM细化的新架构大约比原来的方法提高了7%的精确度,同时提高了速度×2 表5:COCO vali试验集的自比较实验。CM为置信图,其中的数字表示PAF和CM的估计阶段数。阶段是指PAF和CM阶段的数量。减少阶段的数量可以提高运行时性能。 我们在表5中分析了PAF细化对置信图估计的影响。我们将计算固定为最多6个阶段,不同地分布在PAF和置信图分支。从这个实验中我们可以得出三个结论。首先,PAF需要更多的阶段来聚合,并从细化阶段中获益更多。第二,增加PAF通道的数量主要是提高了真实数据集的数量,即使它们可能不是太准确(更高的AP50)。然而,增加置信图通道的数量进一步提高了定位精度(更高的AP75)。第三,我们证明了当使用PAF作为先验时,零件置信度映射的精度大大提高,而反之则会导致绝对精度降低4%。即使只有4个阶段的模型(3 PAF - 1 CM)也比首先预测置信度图(3 CM - 3 PAF)的6个阶段模型更精确。其他一些增加的内容进一步提高了新模型相对于原始工作的准确性,如PReLU在ReLU层之上和Adam优化,而不是SGD与动量。与不同的是,我们没有使用CPM来改进当前的方法,以避免损害速度。
5.3nference运行时分析
我们比较了3个最先进的、维护良好的、在上广泛使用的多人姿态估计库,OpenPose[4],基于这项工作,Mask R-CNN[5],和Alpha-Pose[6]。我们在图12中分析了3种方法的推理运行时性能。Megvii (Face++)[43]和MSRA [44] GitHub存储库不包括他们使用的人检测器,只提供裁剪后的人的姿态估计结果。因此,我们无法知道它们的确切运行时性能,因此被排除在此分析之外。掩码R-CNN只与Nvidia显卡兼容,所以我们在一个带有Nvidia 1080 Ti的系统上进行分析。在自上而下的方法下,Mask R-CNN、Alpha-Pose、Megvii和MSRA的推断次数大致与图像中的人数成正比。更准确地说,它们与人探测器提取的建议数量成正比。相反,我们自下而上的方法的推断时间是不变的图像中的人数。OpenPose的运行时间主要由两部分组成:(1)CNN的处理时间,其复杂度为O(1),随人数的变化而恒定;(2)多人解析时间,复杂度为O(n2),其中n为人数。然而,解析时间比CNN处理时间少两个数量级。例如,9个人解析需要0.58 ms,而CNN需要36 ms. 图12:OpenPose、Mask R-CNN和Alpha-Pose(快速Pytorch版本)的推理时间比较。当OpenPose推理时间不变时,Mask R-CNN和Alpha-Pose运行时间随人数线性增长。有尺度搜索和没有尺度搜索的测试分别表示为“最大精度”和“1尺度”。该分析是使用相同的图像为每个算法和批大小为1。每次分析重复1000次,然后取平均值。这一切都是在一个带有Nvidia 1080 Ti和CUDA 8的系统上完成的。 表6:在OpenPose中发布的三种型号CUDA和CPU版本之间的运行时间差异,运行在NVIDIA GeForce GTX-1080 Ti GPU和i7-6850K CPU。MPII和COCO模型参考了我们在[3]中的工作 表6:在OpenPose中发布的三种型号CUDA和CPU版本之间的运行时间差异,运行在NVIDIA GeForce GTX-1080 Ti GPU和i7-6850K CPU。在表6中,我们分析了OpenPose中发布的模型,即[3]的MPII和COCO模型以及新的body+foot模型之间的推断时间差异。我们的新组合模型不仅更准确,而且在使用GPU版本时比原来的模型更快×2。有趣的是,CPU版本的运行时比原始模型慢了5倍。新的体系结构由更多的层组成,这需要更多的内存,而操作的数量则大大减少。图形卡似乎从操作数量的减少中获益更多,而CPU版本似乎由于更高的内存需求而明显慢了很多。OpenCL和CUDA的性能不能直接比较,因为它们需要不同的硬件,特别是不同的GPU品牌。MPII和COCO模型参考了我们在[3]中的工作。
5.4速度和准确性之间的权衡
与自下而上的方法相比,特别是对于有多个人的图像。自下而上方法精度较低的主要原因是其分辨率有限。自上而下的方法将每个被检测到的人单独裁剪并将其输入到他们的网络中,而自下而上的方法必须一次将整个图像输入,这导致人均分辨率更低。例如,表明,与其他自顶向下的方法相比,对[3]中的原始工作进行细化(通过应用更大的裁剪图像patch)可以获得更高的精度提升。随着硬件速度的提高和内存的增加,具有更高分辨率的自底向上方法可能能够减少与自顶向下方法的精度差距. 此外,目前的人体姿势性能指标纯粹基于关键点的准确性,而忽略了速度。为了提供一个更完整的比较,我们在图13中显示了COCO挑战中排名前几名的参赛作品的速度和准确性。考虑到这些结果,应该选择单个比例的OpenPose以获得最大速度,选择AlphaPose以获得最大精度,选择METU以在两者之间进行的交易。剩下的方法都比这三种方法中至少一种更慢,更不准确。总的来说,自顶向下的方法(如AlphaPose)对于人数较少的图像提供了更好的结果,但对于人数较多的图像,其速度明显下降。我们还观察到,准确性指标可能是mis领先。我们在5.2节中看到,PersonLab[49]实现了比我们的方法更高的精度。然而,与报告运行时结果的版本相比,我们的多尺度方法同时提供了更高的速度和准确性。注意,[49]中没有为最精确(但较慢)的模型提供运行时结果。
5.5脚点检测
为了评估从我们的脚关键点数据集获得的脚关键点检测结果,我们计算了超过10个ok的平均精度和召回率,就像在COCO评估度量中所做的那样。在组合和仅靠身体的方法之间只有很小的区别。在联合训练方案中,存在两个独立的、完全独立的数据集。较大的数据集包含主体注释,较小的数据集同时包含主体注释和脚注释。用于纯身体训练的批次大小与用于联合训练的批次大小相同。然而,它一次只包含来自一个数据集的注释。定义一个概率比来选择要从中挑选每一批的数据集。从更大的数据集中选择一批数据的概率更高,因为注释的数量和多样性要高得多。脚关键点在只包含身体的数据集的反向传播过程中被屏蔽,以避免使用未标记的数据伤害网络。此外,主体注释也从脚数据集中屏蔽掉。保留这些注释会导致精度的小幅下降,可能是由于过拟合,因为这些样本在两个数据集中都是重复的。方法AP AR AP75 AR75 Body+foot model (5 PAF - 1 CM) 77.9 82.5 82.1 85.6表7:足部验证集上的足部关键点分析 在表8中,我们表明,对于只使用主体注释训练的相同网络体系结构,COCO测试开发集几乎没有精确度差异。我们比较了包含5个PAF和1个confi map阶段的模型,95%的概率从COCO body-only数据集中选择一批,5%的概率从body+foot数据集中选择一批。除了增加了输出数量,包括足部CM和paf之外,与只使用身体的模型相比,没有结构上的差异。
5.6车辆姿态估计
图14:来自验证集的车辆关键点检测示例。在具有挑战性的情况下,包括车辆重叠、裁剪车辆和不同规模的情况下,成功地估计关键点位置。 图15:常见故障案例:(a)罕见的姿势或外观,(b)缺失或假零件检测,?重叠部分,即两个人共有的零件检测,(d)两个人零件连接错误,(e-f)雕像或动物假样本。 我们的方法不仅限于人体或脚上的关键点,而且可以推广到任何关键点标注任务。为了证明这一点,我们对车辆关键点检测任务运行了相同的网络架构,我们的方法不仅限于人体或脚上的关键点,而且可以推广到任何关键点标注任务。为了证明这一点,我们在车辆关键点检测任务中运行了相同的网络架构
5.7失败案例分析
我们分析了当前ap方法在MPII、COCO和COCO+足部验证集中失败的主要案例。图15显示了主体失效案例的概述,而图16显示了主要的足部失效案例。图15a是指非典型姿势和倒置的例子,在这些例子中,预测通常是失败的。增加视觉上的旋转增强似乎部分解决了这些问题,但在COCO验证集上的全局精度降低了约5%。另一种选择是使用不同的旋转来运行网络,并以更高的自信保持姿态。身体闭塞也会导致假阴性和高定位误差。这个问题继承自数据集注释,其中不包括被遮挡的关键点。在高度拥挤的图像中,人们重叠在一起,这种方法倾向于合并来自不同人的注释,而忽略其他人,因为到重叠的paf,使得贪婪的多人解析失败。动物和雕像也经常导致误报。这个问题可以通过在训练中添加更多的负面例子来缓解,以帮助网络区分人类和其他类人形象。
6、结尾
实时多人二维姿态估计是使机器能够在视觉上理解和解释人类及其交互的关键组成部分。在本文中,我们提出了一个显式非参数表示的关键点关联编码的位置和方向。其次,我们设计了一个联合学习零件检测和关联的体系结构。第三,我们证明了贪婪解析算法足以产生高质量的身体姿态解析,并且无论人数多少都保持了效率。第四,我们证明了PAF细化远比结合PAF和身体部位定位细化更重要,这导致了运行时性能和准确性的大幅提高。第五,结合身体和脚的估计到一个单一的模型,提高了每个组件的准确性,并减少了连续运行它们的推断时间。我们已经创建了一个脚关键点数据集,包含15K脚关键点实例,我们将公开发布。最后,我们将这项工作开源为OpenPose,这是第一个用于身体、脚、手和面部关键点检测的实时系统。该图书馆目前被广泛用于人类分析的许多研究课题,如人类再识别、再定位和人机交互。此外,OpenPose已经包含在OpenCV库中
6.1结果展示
声明:此处是根据论文的翻译,翻译一下感觉对理解也是很有提升,如果出现文字问题,或者理解有误请私聊沟通修改,感谢
|