CPN:Cascaded Pyramid Network for Multi-Person Pose Estimation_及CPN实现

博客围绕多人姿态估计展开,介绍了Cascaded Pyramid Network (CPN) 方法。CPN包含GlobalNet和RefineNet两阶段网络,能兼顾局部与全局信息。多人关键点估计包括人体边界框检测和CPN关键点估计。还分享了实验技巧,如数据增强、大batch训练等,并给出实验结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Cascaded Pyramid Network for Multi-Person Pose Estimation

论文链接
tf实现源码
pytorch实现源码

论文解决的任务场景为多人姿态估计.多人姿态估计所面临的挑战,关键点遮挡,关键点不可见,复杂背景等.提出的 Cascaded Pyramid Network (CPN) 方法,即着重于处理 “困难hard” 关键点.

优点

  1. 提出了一种金字塔型的串接模型,即CPN(cascaded pyramid network),这个模型能够同时兼顾人体关节点的局部信息以及全局信息,结果取得了不错的效果;

  2. 使用了在线难例挖掘(online hard keypoints mining)的技术,这对于人体姿态估计任务中一些存在遮挡的“hard”的关键点的预测有所帮助;

  3. 测试阶段考量了soft-NMS和传统的hard-NMS(非极大值抑制)在human detection阶段产生的影响,结论是soft-NMS对于最后的结果是有所帮助的。

CPN两阶段网络:GlobalNet 和 RefineNet

CPN 包括两阶段网络:GlobalNet 和 RefineNet
[1] - GlobalNet - 特征金字塔网络(feature pyramid network),用于定位估计 “简单simple” 关键点,比如,eyes 和 hands;但难以精确识别遮挡或不可见的关键点.

[2] - RefineNet - 通过将 GlobalNet 得到的所有层次的特征表示整合一起,并结合在线困难关键点挖掘loss(online hard keypoint mining loss),定位检测 “困难hard” 关键点.

一般情况下,多人姿态估计问题的解决方案是 top-down 的,即,首先采用检测器检测人体边界框;然后采用关键点估计方法估计每个人体边界框内的人体关键点. CPN 算法即是对每个人体边界框内进行关键点估计.

此外,CPN 还探索了其它可能影响多人关键点估计的其它因素,比如人体检测器,数据预处理等.

多人关键点估计

主要包括两部分,

[1] - 人体边界框检测 Human Detector

[2] - 关键点估计 CPN

1.人体边界框检测

直接采用基于 FPN 目标检测算法. 其中,采用 Mask R-CNN 中的 ROIAlign 替换 FPN 的 ROIPooling.

目标检测器训练时,使用了 COCO 数据集的全部 18 个类别;但只有人体类别的边界框被用于多人关键点估计任务.

在这里插入图片描述

2. CPN

单人姿态估计算法:

[stacked hourglass] - 堆叠 8 个 hourglass,每个 hourglass 由下采样,上采样,以及残差连接组成;但,实际上堆叠 2 个 hourglass 模块,则足以达到与 8 个 hourglass 模块相当的效果.

CPN(cascaded pyramid network) 网络如下图:
在这里插入图片描述
CPN主要包括两个子网络:

[1] - GlobalNet

基于 ResNet backbone.

我们记不同的 conv 特征的最后一个残差模块分别为 C2,C3,C4,C5. 在 C2 - C5 后接 3x3 conv 核,以生成关键点的 heatmaps.

如下图 中,C2 和 C3 的 feature maps 分辨率较大,但语义信息较少. 而 C4 和 C5 的 feature maps 语义信息较多,但分辨率较低(由于卷积步长和 pooling 的作用).

因此,一般采用 U-型 结构同时保持特征层的空间分辨率和语义信息. 而 FPN 进一步提升.

GlobalNet 采用类似于 FPN 的特征金字塔结构,进行关键点估计. 与 FPN 的不同之处在于,GlobalNet 上采用时,在每个 elem-sum 前添加了 1x1 conv 核.

由下图可知,基于 ResNet backbone 的 GlobalNet 可以有效的定位简单的关键点,如 eyes,但没有精确定位置 hips 关键点的位置. 因此,需要更多的上下文信息.
在这里插入图片描述

[2] - RefineNet

基于 GlobalNet 生成的特征金字塔表示,再添加 RefineNet,定位 “hard” 关键点.

RefineNet 利用了不同层的特征信息,并通过类似于 HyperNet 的上采样和链接,整合不同层的特征信息.

stacked Hourglass 网络仅利用了 hourglass 模块尾部输出的上采样特征,而 RefineNet 链接了所有层的金字塔特征.

实验

技巧

(1)数据增强,提升0.4map

训练数据的处理上使用了随机翻转,(-45度,45度)的随机旋转,(0,7,1.35)的随机尺度变换

(2)大batch的训练,主要针对检测框架,提升0.4-0.7map

(3)在行人检测框架中使用soft NMS取代hard NMS,提升0.3map

(4)随着检测map的提高,关键点的map提升非常有限

(5)online hard keypoints mining
在coco 数据集中有17个关键点需要预测,GolbalNet预测所有的17个点,并计算所有17个点的loss,RefineNet也预测所有的17个点,但是只有最难的8个点的loss 贡献给总loss。作者称这为OHEM。

(6)多模型融合集成,提升1.1-1.5map在coco minval数据集上

实验结果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

参考文章:论文阅读 - Cascaded Pyramid Network for Multi-Person Pose Estimation

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cpp编程小茶馆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值