RMPE: Regional Multi-Person Pose Estimation (AlphaPose)阅读笔记

news2025/1/11 5:57:24

区域多人姿态估计

ICCV 2017
论文链接
代码链接


摘要: 野外多人姿态估计具有挑战性。sota人体检测器不可避免存在定位和识别误差,这些误差可能导致依赖人体检测器的单人姿态估计器(SPPE)的失败。本文提出了一种新的区域多人姿态估计(RMPE)框架,以在存在不准确人体边界框的情况下进行姿态估计,该框架由三个组件组成:Symmetric Spatial Transformer Network(SSTN)、Parametric Pose NonMaximum-Suppression(NMS)和 Pose-Guided Proposals Generator(PGPG)。我们的方法能够处理不准确的边界框和冗余检测,在MPII数据集上实现76.7 mAP。

文章目录

  • 区域多人姿态估计
  • 1. Introduction
  • 2. Related Work
  • 3. Regional Multi-person Pose Estimation
    • 3.1. Symmetric STN and Parallel SPPE
    • 3.2. Parametric Pose NMS
    • 3.3. Pose-guided Proposals Generator
  • 4. Experiments
    • 4.3. Results
    • 4.4. Ablation studies
    • 4.5. Failure cases
  • 5. Conclusion


1. Introduction

two-step 姿态估计框架的准确度高度依赖于 bbox,part-based框架在多个人彼此靠近时难以准确组合单人姿态,此外,part-based框架仅利用 second-order body parts dependence(二阶身体部位相关性),因此无法从全局姿态视图识别身体部位
我们的方法遵循 two-step 框架,即使在给定不准确 bbox 的情况下也能准确预测姿态。我们应用 sota 目标检测器 Faster-RCNN 和 单人姿态估计器 Stacked Hourglass 来说明问题,图1和图2显示了两个主要问题:定位误差和冗余检测。事实上,SPPE 易受错误边界框的影响,IoU>0.5时边界框被认为是正确,但检测到的人体姿态可能是错误的。由于SPPE为每个给定的边界框生成一个姿态,因此冗余检测会导致冗余姿态。
在这里插入图片描述

图1。边界框定位错误问题。红色框是 gt 边界框,黄色框是IoU>0.5的检测边界框。热图是对应于两个边界框的SPPE输出。从图中可看出,对应于黄色框的热图未检测到相应的身体部位。注意,当IoU>0.5时,黄色框被视为“正确”检测,但即使使用“正确”的边界框,也无法检测人体姿态。

在这里插入图片描述

图2:冗余人体检测问题。左侧图像为检测到的边界框;右图为估计的人体姿态。因为每个边界框都是独立操作的,所以会为一个人检测多个姿态。

为了解决上述问题,我们提出了一种区域多人姿态估计(RMPE)框架,提高了基于SPPE的人体姿态估计算法的性能。我们设计了一个新的 symmetric spatial transformer network(SSTN)连接到SPPE 上来从不准确的边界框中提取高质量的单人区域,引入一种新的 Parallel SPPE 分支来优化该网络。为了解决冗余检测问题,引入了一种 parametric Pose NMS,通过使用新的姿态距离度量比较姿态相似性来消除冗余姿态,应用数据驱动方法来优化姿态距离参数。最后,我们提出了一种新的 pose-guided human proposal generator(PGPG)来增加训练样本,通过学习人体检测器对不同姿态的输出分布模拟人体边界框的生成,从而生成大量训练数据样本。RMPE框架是通用的,适用于不同的人体检测器和单人姿态估计器。

2. Related Work

3. Regional Multi-person Pose Estimation

RMPE pipeline 如图3所示,人体检测器获得的人体边界框喂给 “Symmetric STN + SPPE” 模块来自动生成姿态proposal,之后通过 “parametric Pose NMS” 细化姿态proposal 来估计人体姿态。训练期间引入 “Parallel SPPE” 来避免局部最小值,并进一步利用SSTN的力量。设计一个pose-guided proposals generator (PGPG) 来增加现有的训练样本。下面将介绍框架的三个主要组成部分。

在这里插入图片描述

图3。RMPE框架 pipeiline。Symmetric STN 由 STN和SDTN组成,分别连接在SPPE之前和之后,STN接收人体 proposal,SDTN生成姿态 proposal。Parallel SPPE 在训练阶段充当额外的调节器。最后,执行 parametric Pose NMS(p-Pose NMS)来消除冗余姿态估计。不同于传统训练,我们使用PGPG生成的图像训练SSTN+SPE模块。

3.1. Symmetric STN and Parallel SPPE

人体检测器提供的人体 proposal 不太适合 SPPE,因为SPPE专门针对单人图像进行训练,因此对定位错误非常敏感,人体 proposal 微小的 translation 或 cropping 都会显著影响 SPPE 性能。引入 symmetric STN + parallel SPPE 在给定不完美人体 proposal 时增强SPPE。symmetric STN + parallel SPPE 模块如图4所示。

在这里插入图片描述

图4。symmetric STN 架构和 parallel SPPE 训练策略的阐述。使用由Jaderberg等人开发的STN。SDTN采用由定位网生成的参数θ,并计算 de-transformation 的 γ。使用 grid generator and sampler 来提取 human-dominant 区域。对 parallel SPPE 分支指定位于中心的姿态标签。冻结parallel SPPE 所有层的权重来鼓励STN提取占主导的单人proposal。

STN and SDTN. STN 在自动选择 RoI 方面性能优异,本文使用STN来提取高质量的 dominant human proposals。数学上,STN执行2D仿射变换,可以表示为:

在这里插入图片描述
SPPE 生成的姿态被匹配给原始的 human proposal 图像,自然地,需要一个spatial detransformer network(SDTN)将估计的人体姿态重新映射回原始图像坐标。SDTN计算 de-transformation 的 γ,并基于γ生成网格:
在这里插入图片描述
由于SDTN是STN的逆过程,可以获得以下结果:

在这里插入图片描述
为了通过SDTN反向传播,由下列公式推导 ∂ J ( W , b ) ∂ θ \frac{\partial J(W,b)}{\partial θ} θJ(W,b)

在这里插入图片描述
提取出高质量的 dominant human proposal regions 后,我们可以利用现成的SPPE进行精确的姿态估计。训练时,SSTN与SPPE 进行了微调。

Parallel SPPE. 为了进一步帮助STN提取良好的 dominant human proposal regions,我们在训练阶段添加了一个 Parallel SPPE 分支。该分支和 SPPE 共享相同的 STN,但不使用 SDTN。该分支的人体姿态标签指定为居中,具体而言,该SPPE分支的输出直接与中心定位的 gt 姿态标签进行比较。训练阶段冻结该并行SPPE 所有层的权重(权重固定),以将中心位置的姿态误差反向传播给 STN 模块,若 STN 提取的姿态不位于中心,则并行分支将反向传播大的误差。这种方式可以帮助 STN 聚焦正确的区域,并提取高质量的 dominant human proposal regions。测试阶段不使用并行SPPE分支。

Discussions. 训练阶段,Parallel SPPE可被视为正则化器,它有助于避免STN 没有将姿态转换到提取的人体区域中心(局部最小值)。来自SDTN的补偿将使网络产生更少的误差,因此达到局部最小值的可能性增加,这些误差对训练STN是必要的。利用 Parallel SPPE,训练STN将人移动到提取区域的中心,以便于SPPE进行准确的姿态估计。
用一个 center-located poses regression loss 在 SPPE 的输出阶段(SDTN之前)代替 parallel SPPE 似乎很直观,但该方法会降低我们系统的性能。虽然STN可以部分转换输入,但不可能将人完美放置在与标签相同的位置,SPPE 输入和标签间的坐标空间差异将极大削弱其学习姿态估计的能力,这将导致 SPPE 主分支的性能下降。因此,为确保 STN 和 SPPE 都能充分利用各自的力量,冻结权重的Parallel SPPE 是必要的。Parallel SPPE 总是对非中心姿态产生较大误差,以推动STN生成中心定位姿态,而不影响主分支SPPE的性能。

3.2. Parametric Pose NMS

本文提出一种 parametric pose NMS 方法来消除冗余,具有 m 个关节的姿态 P i P_i Pi 被表示为: { < k i 1 , c i 1 > , . . . , < k i m , c i m > } , k i j 和 c i j \{<k^1_i , c^1_i>, . . . , <k^m_i , c^m_i>\},k^j_i 和 c^j_i {<ki1,ci1>,...,<kim,cim>}kijcij 分别表示 j-th 关节的位置和置信度。

NMS scheme. 我们重新审视姿态NMS如下:首先,选择置信度最高的姿态作为参考,并通过应用消除准则消除与之接近的一些姿态。对剩余的姿态集重复此过程,直到消除冗余姿态并仅留唯一姿态。

Elimination Criterion 消除准则. 需要定义姿态相似性来消除彼此过于接近和过于相似的姿态。我们定义了姿态距离度量 d ( P i , P j ∣ Λ ) d(P_i, P_j|Λ) d(Pi,Pj∣Λ) 来测量姿态相似性,并定义阈值 η 作为消除标准,Λ 是函数 d(·) 的参数集,消除标准可以写成如下:
在这里插入图片描述
若 d(·) 比 η 更小, f(·) 的输出为 1,表示 P i 对于参照姿态 P j P_i 对于参照姿态 P_j Pi对于参照姿态Pj 冗余,应被消除。

Pose Distance 姿态距离. 现在,我们给出距离函数 d p o s e ( P i , P j ) d_{pose}(P_i,P_j) dpose(PiPj),假设 P i 的框是 B i P_i的框是B_i Pi的框是Bi,定义一个 soft matching 函数:
在这里插入图片描述
tanh操作过滤掉低置信度姿态。当两个对应的关节都具有较高置信度时,输出将接近1。该距离 softly 计算姿态间匹配的关节数。
部位间的空间距离可以写成:
在这里插入图片描述
通过组合等式(8)和(9),最终距离函数可以写成:
在这里插入图片描述
λ是平衡两个距离的权重,Λ={σ1,σ2,λ}。注意,先前的姿态 NMS 手动设置姿态距离参数和阈值,而我们的参数姿态NMS以数据驱动方式确定距离参数和阈值。

Optimization. 给定检测到的冗余姿态,消除准则 f ( P i , P j ∣ Λ , η ) f(P_i, P_j|Λ, η) f(Pi,Pj∣Λ,η) 中的四个参数被优化,以实现验证集的最大mAP。由于4D空间难以穷举搜索,因此通过迭代方式固定两个参数,一次优化另外两个参数。一旦收敛,参数将固定,并在测试阶段使用。

3.3. Pose-guided Proposals Generator

Data Augmentation. 两阶段姿态估计需要适当的数据增强,以使SSTN+SPE模块适应由人体检测器生成的 “不完美” 人体proposal,否则人体检测器测试阶段,模块可能无法正常工作。直观的方法是在训练阶段直接使用由人体检测器生成的边界框,但人体检测器只能为每个人生成一个边界框。通过使用 proposal 生成器,可以大大增加此数量。由于我们已经为每个人提供了 gt 姿态和目标检测边界框,因此可以生成与人体检测器输出分布相同的大量训练 proposal 样本。这种技术能够进一步提高系统性能。

Insight. 我们发现,预测边界框和 gt 边界框间相对偏移的分布在不同姿态间有所不同。 具体而言,存在一个分布 P(δB|P),其中 δB 是预测边界框的坐标与 gt 边界框坐标间的偏移,P是 gt 姿态。若能建模这种分布,就能够生成许多与人体检测器生成的人体 proposal 相同的训练样本。

Implementation. 由于不同的人体姿态,很难直接学习分布 P(δB|P),因此,我们试图学习分布P(δB| atom§),其中 atom§ 表示 P 的 atomic 姿态。为从人体姿态标注中导出原子姿态,先对齐所有姿态,使其 torsos (躯干)长度相同。然后使用 k-means 算法聚类对齐的姿态,计算出的聚类中心形成了 atomic 姿态。现在,对共享相同 atomic 姿态 a 的每个人体实例,计算其 gt 边界框和预测边界框间的偏移,然后通过该方向上 gt 边界框的相应边长对偏移进行归一化。之后,偏移量形成频率分布,我们将数据拟合为高斯混合分布。不同的atomic 姿态使用不同的高斯混合参数。图5可视化了一些分布及其对应的聚簇人体姿态。
在这里插入图片描述

图5。几种不同 atomic 姿态的边界框偏移的高斯分布。

Proposals Generation. SSTN+SPE训练阶段,对于训练样本中的每个姿态标注,首先查找对应的 atomic 姿势 a,然后根据 P(δB|a)通过密集采样生成额外的偏移,以生成增强的训练 proposal。

4. Experiments

使用 VGG-based SSD-512 作为人体检测器,为了确保提取出整个人体区域,检测的人体 proposal 沿高度和宽度方向各扩展30%。使用 stacked hourglass 作为姿态估计器。对于STN网络,采用ResNet-18 作为我们的 localization 网络。考虑到存储效率,使用较小的4层沙漏网络作为 Parallel SPPE。
为证明框架的通用性,我们还使用基于 ResNet152 的 Faster-RCNN 作为人体检测器,使用PyraNet 作为姿态估计器,在这种情况下,对人体检测采用多尺度测试,并对 PyraNet 使用 320x256 大小的输入。

4.3. Results

MPII dataset 结果表1,图6:
在这里插入图片描述

表1。MPII multi-person test set 结果(mAP)。“++” 表示使用具有 softnms 的 Faster-RCNN 作为人体检测器,使用输入大小为320x256的 PyraNet 作姿态估计器。

在这里插入图片描述

图6。模型预测结果的可视化。

MSCOCO Keypoints dataset 的结果如表2 所示:

在这里插入图片描述

表2。MSCOCO Keypoint Challenge 数据集结果(AP)。MSCOCO网站仅提供技术概述。我们的结果是在没有 ensembling 的情况下得到的。“++” 表示使用具有 softnms 的 Faster-RCNN 作为人体检测器,使用输入大小为320x256的 PyraNet 作姿态估计器。我们只比较单个模型的结果。

4.4. Ablation studies

在这里插入图片描述

表3。验证集上的消融实验。“w/o X” 表示 pipeline 中没有 X 模块。“random jittering*” 表示通过抖动定位和预测人体边界框的纵横比来生成训练 proposals。“PoseNMS[x]”报告使用论文[x]中开发的 PoseNMS 算法。

4.5. Failure cases

图7展示了一些失败案例。可以看出,SPPE无法处理很少出现的姿态(例如,第一张图像中表演“Human Flag” 的人)。两个高度重叠的人体会迷惑系统(如第二张图像左侧的两个人)。人体检测器的缺失也会导致人体姿态的缺失检测(例如,第三张图像中躺下的人)。最后,类人体可能会欺骗人体检测器和 SPPE,从而导致检测到错误姿态(例如,第四幅图像中的背景物体)。

在这里插入图片描述

图7。我们模型的失败案例。

5. Conclusion

在本文中,提出了一种新的有效的 regional multi-person pose estimation(RMPE)框架,验证了 two-step 框架的潜力。RMPE框架由三个新组件组成:具有 parallel SPPE 的 symmetric STN,parametric pose NMS 和 pose-guided proposals generator (PGPG)。PGPG 通过学习给定人体姿态边界框 proposal 的条件分布来扩充训练数据。symmetric STN 和 parallel SPPE 有助于 SPPE 处理人体定位错误。parametric pose NMS 用于减少冗余检测。我们将在未来工作中探索以端到端的方式联合训练我们的框架与人体检测器。

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

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

相关文章

二、产品经理——【需求收集】【需求管理】

0. 学习目标 能够理解并描述需求能够收集并管理需求 1. 如何定义需求 1.1. 需求的定义 原始需求&#xff1a;没有经过任何分析&#xff0c;或者没有经过任何额外解读的需求信息 避免日后纠纷&#xff0c;尽量记录一下原始需求&#xff01;先记录下来&#xff0c;后面再进行分…

MySQL数据库(数据库约束)

目录 数据库约束 数据库约束的类型&#xff1a; null约束 &#xff1a; unique约束&#xff08;唯一约束&#xff09;&#xff1a; default约束&#xff08;默认值约束&#xff09;&#xff1a; primary key约束&#xff08;主键约束&#xff09;&#xff1a; for…

Active Directory 04 - Bronze Bit Attack (CVE-2020-17049)

写在最前 如果你是信息安全爱好者&#xff0c;如果你想考一些证书来提升自己的能力&#xff0c;那么欢迎大家来我的 Discord 频道 Northern Bay。邀请链接在这里&#xff1a; https://discord.gg/9XvvuFq9Wb我会提供备考过程中尽可能多的帮助&#xff0c;并分享学习和实践过程…

buuctf Basic

buuctf Basic 1.Linux Labs 根据提示我们可以知道需要远程连接linux服务器&#xff0c;这里使用xshell进行如下配置 输入ssh的用户名root&#xff0c;密码123456 连接成功 构造命令 ls …/ 查看文件 查看flag cat …/flag.txt 为flag{8fee8783-1ed5-4b67-90eb-a1d603a0208…

1信号的描述

信号的描述 1.1 连续时间与离散时间信号 一 信号 信号可以描述范围极其广泛的物理现象。信号可以分为确知信号与随机信号&#xff0c;也可以分为连续时间信号与离散时间信号。 确知信号可以表示成一个或几个自变量的函数。 信号的描述 连续时间信号 x(t), x(t1, t2)… 离散时间…

[TPAMI‘21] Heatmap Regression via Randomized Rounding

paper: https://arxiv.org/pdf/2009.00225.pdf code: https://github.com/baoshengyu/H3R 总结&#xff1a;本文提出一套编解码方法&#xff1a; 编码&#xff1a;random-round整数化 激活点响应值表征小数部分&#xff0c;使得GT可以通过编码后的heatmap解码得到&#xff1b…

flowable的变量实操及排坑

主要理解一下知识点 一、名字解释 详情解释传送门 setVariables 和 setVariablesLocal区别? 1.流程变量 在流程执行或者任务执行的过程中&#xff0c;用于设置和获取变量&#xff0c;使用流程变量在流程传递的过程中传递业务参数。 对应的表&#xff1a; act_ru_variable&…

操作系统——4.操作系统的运行机制和体系结构

这篇文章&#xff0c;我们一起来学习一下操作系统的运行机制和体系结构 目录 1.概述 2.运行机制 2.1两种指令 2.2两种处理器状态 ​编辑2.3两种程序 ​编辑2.4 操作系统运行机制小结 3.操作系统内核 ​4.操作系统的体系结构 5.小结 1.概述 首先&#xff0c;我们来看一下…

OpenResty | nginx内部发送请求

文章目录一. http请求的API二. 封装http工具函数三. CJSON工具类四. hash均衡(1) 原理(2) 实现一. http请求的API 关于OpenResty如何安装和编写业务逻辑可以参考这篇文章&#xff1a;点击跳转 nginx提供了内部API用以发送http请求&#xff1a; local resp ngx.location.capt…

听说2年以上的自动化测试都有16k+,4年10k的你还要等待奇迹吗?

个人简介学渣一枚&#xff0c;2017年6月某xx学校毕业。从事自动化测试已经4年&#xff0c;。2018年的时候&#xff0c;由于项目的原因&#xff0c;开始使用Robot Framework测试框架&#xff0c;正因为有Python的基础所以很快就理解了Robot Framework框架的工作原理&#xff0c;…

【Vue】浅谈vue2、vue3响应式原理,vue中数组的响应式,响应式常见问题分析

前言&#xff1a;此处响应式指的是数据响应式变化&#xff0c;而不是页面的响应式布局&#xff0c;页面的响应式布局在我的其他文章中有提到。 一、什么是vue响应式 Vue 最标志性的功能就是其低侵入性的响应式系统。组件状态都是由响应式的 JavaScript 对象组成的。当更改它们…

以太网基础

1.系统概述网卡(Network Interface Card&#xff0c;简称NIC)&#xff0c;也称网络适配器&#xff0c;一个网卡主要包括OSI的最下面的两层&#xff0c;物理层和数据链路层。物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等&#xff0c;并…

Ambire 最新消息——2023 年 1 月

大家好&#xff0c;这里是我们在过去几周所做的一切的快速回顾。 发展 整个钱包的交易模拟和余额预测 我们推出了一项真正改变加密钱包 UX 游戏规则的功能&#xff1a;Ambire 现在向用户显示他们的钱包余额将如何更新&#xff0c;甚至在签署交易之前。 这项新功能可以分解为 Am…

PMP证书在哪个行业比较有用?

PMP 各个行业都能用&#xff0c;PMP 的知识体系是通用的&#xff0c;管理层的考试也有借鉴PMP知识的地方。历年考生考的最多的是IT 行业&#xff0c;其他行业也都有分布。PMP认证从国外引进大陆这么多年了&#xff0c;其火热程度依然不减&#xff0c;我个人认为是取决于市场的运…

34、基于51单片机锂电池电压电流容量检测仪表LCD液晶显示 原理图PCB程序设计

方案选择 单片机的选择 方案一&#xff1a;AT89C52是美国ATMEL公司生产的低电压&#xff0c;高性能CMOS型8位单片机&#xff0c;器件采用ATMEL公司的高密度、非易失性存储技术生产&#xff0c;兼容标准MCS-51指令系统&#xff0c;片内置通用8位中央处理器(CPU)和Flash存储单元…

水泥|物流行业停车场电动发卡机读卡器K720的维护及使用注意事项

水泥|物流行业停车场电动发卡机读卡器K720采用工业级设计&#xff0c;表面烤漆处理&#xff0c;具有良好的耐磨耐腐蚀性。适应各种高、低温&#xff0c; 多灰尘等恶劣 环境。其发卡原理为拟人型摩擦式发卡&#xff0c;对各类变形卡有非常好的适应性。预留了活动式票箱安装位&am…

MyBatis 插件 + 注解轻松实现数据脱敏

问题在项目中需要对用户敏感数据进行脱敏处理&#xff0c;例如身份号、手机号等信息进行加密再入库。解决思路就是&#xff1a;一种最简单直接的方式&#xff0c;在所有涉及数据敏感的查询到对插入时进行密码加解密方法二&#xff1a;有方法一到出现对所有重大问题的影响&#…

C++如何实现系统语言切换功能,MessageBox的确认/取消按钮语言显示如何跟程序一致

文章目录前言 一、新建工程二、添加多国语言的资源三、程序语言设置四、语言切换五、字符串处理六、MessageBox的问题七、相关函数和类型参考文章前言 目前很多软件都是要出口到多个国家&#xff0c;多个地区&#xff0c;因此&#xff0c;为软件提供多国语言支持就成为了一个基…

20230215使用X99主板的电脑的性能测试(intel E5-2696V3 )

20230215使用X99主板的电脑的性能测试 2023/2/15 22:59 1850&#xffe5; 套餐七 模拟器参考20开 18核心36线程单路 适用 设计渲染 模拟器虚拟机工作室游戏多开 处理器 intel E5-2696V3 主频2.3G 18核心36线程 散热器 定制12CM大六铜管温控静音 主板 intel芯片X99-D3全固态大…

[项目篇] 音乐播放器开发报告

文章目录1. 项目描述:2. 项目上线展现&#xff1a;3. 项目具体实现&#xff1a;1. 登录2. 注册3.退出系统4.添加音乐4.1前后端交互约定4.2上传文件业务逻辑&#xff1a;4.3创建model包中的music类4.4在MusicMapper接口中&#xff0c;声明insertMusic抽象方法4.5在mybatis包中添…