基于CNN的2D多人姿态估计论文综述
bottom up系列算法(直接获取全图人体关键点):
1.Openpose(coco2016关键点冠军级算法,基于PAM进行关键点分组)
2.轻量版OpenPose
3.基于关联嵌入的关键点分组编码的核心思想
4.YOLO思想下的网格级别姿态估计技术
5.基于生成分区网络实现的人体多个姿态状态估计方法
6.单阶段的人体姿态估计机器
7.融合人体关键点检测与实例分割的技术方案
8.pifpaf算法表现远超传统OpenPose技术水平
9.优化后的HRNet系列在多人关键点估计领域表现卓越
top-down系列算法(通过从全身图像中提取出完整的身体轮廓后,在此轮廓内定位关键点;其本质与单人姿态估计方法相似)
- Joint-to-Person Associations;该方法通过线性规划模型来解决人与人群体之间的拥挤与遮挡问题;
- Deepcut & Deepercut;基于将人体进行聚类处理后利用线性规划模型精确定位关键点;
- G-RMI;该算法是关键点检测的基础方法之一;它包含了许多基本思路;
- alphapsoe1 & alphapsoe2;该组算法主要针对人体边界不准确以及复杂拥挤场景下的姿态估计问题进行优化改进;
- Joint Pose & Segmentation;该网络结合了姿态估计与躯干分割功能;
- Joint Pose & Detection;该网络实现了同时进行姿态估计与目标检测的目标。
1.Openpose(coco2016关键点冠军,利用paf进行group)
该研究提出了一种高效的实时多个人体二维姿态估计方法。
该论文详细描述了基于部分关联场的实时多个人体姿态估计系统。
Official Code: caffe
3rdparty Code:tensorflow1
3rdparty Code:tensorflow2
3rdparty Code:tensorflow3
3rdparty Code:tensorflow4
3rdparty Code:tensorflow5
3rdparty Code:tensorflow6
3rdparty Code:pytorch1
3rdparty Code:pytorch2
3rdparty Code:pytorch3
3rdparty Code:Caffe2
openpoe的训练过程中有两个版本都是基于多阶段设计展开的。每个版本都需要生成两个关键模块:如图1所示(淡蓝色模块负责输出图像中所有人体关键点之间的方向关系;米色模块负责输出人体关键点的位置置信度图)。从整体架构来看, openpoe版本2相较于之前的模型,采用了更为简洁的设计方案(如图2所示,其中CM表示置信度图,PAF表示关键点间方向向量)。通过将计算过程限定在最多6个独立阶段,作者成功实现了对模型参数规模的有效控制
- 首先, PAF必须经过更多的阶段来整合,并从细分阶段中获得更大的利益。
- 增加PAF通道的数量主要能显著提升真阳性的数量,即便这些结果可能不够精确(更高的AP50指标)。然而, 增加置信度图通道的数量则能进一步提高定位精度(更高的AP75指标)。
- 研究者表明,将PAF模块放置在前面,置信度图放置在后面,最终的定位精度明显得到了显著提升,而相反的情况则导致绝对精度下降了4%。即使只有4个阶段(3个PAF和1个CM)的模型也比计算上更为昂贵的6个阶段模型(3个CM和3个PAF)在准确性上更为优异(这也是本文提出改进版本结构的主要原因)。

2.Lightweight OpenPose(轻量级Openpose)
Arivx 2018 | 实时二维多个人体姿态估计在CPU上的轻量级OpenPose | 官方代码库 OpenPose v3:PyTorch
基于OpenPose的技术方案,在Intel®NUC 6i7KYB mini PC上实现了28帧每秒的帧率,在Core i7-6850K CPU上则实现了26帧每秒的帧率。该算法仅占传统OpenPose架构约15%的计算资源却能实现与之相当的效果,并通过结合MobileNetV1结构与空洞卷积设计的新架构实现了OpenPose模型性能的提升。

3.Associative Embedding (关键点分组编码思想)
CVPR 2016 | Associative Embedding: End-to-End Approaches for Joint Detection and Grouping
3rdparty Code:pytorch
3rdparty Code:tensorflow
我们采用堆叠小时glass模型来进行关节点检测,并在此基础上每次下采样阶段增加输出通道的数量。与此同时,在individual layers中将残差模块优化为使用3×3尺寸卷积结构,并保持其他网络架构不变。然而,在输出关键点位置的同时还增加了对应的embedding标签信息。此外,在对不同实例样本进行标签分类(分类依据基于欧氏距离计算)后,并最终通过分类结果将关节定位至各个独立实例中去完成匹配任务

4.Pose Proposal Networks(利用YOLO思想采用网格级别姿态估计)
该研究借鉴了YOLO的目标检测方法,在人体姿态检测领域进行了创新性探索。该方法将人体姿态检测视为一个目标检测问题,并非像传统方法那样依赖像素级别的直接检测。相反地,该系统转而通过网格级别来生成特征图。研究团队表示,在这一框架下使用了一个单次卷积神经网络同时识别身体关节和肢体结构,并模仿OpenPose中的人体姿态分析方法来完成完整的姿态估计过程。

5.GPN(生成分区网络用以实现多人姿态估计)
ECCV 2018 | 基于生成分割网络的多个人体姿态估计方法
官方代码:PyTorch实现
为了高效解决具有挑战性的多人姿态估计问题,本研究提出了生成式划分网络(GPN).该网络基于人中心体参数化构建了一个嵌入空间,并通过联合候选节点的分割方法实现了对多人体姿态的准确估计.此外,GPN还引入了局部贪婪推理机制,利用分区信息来进行person实例的位姿估计.GPN首先利用CNN预测(a)联合置信度图以及(b)稠密的联合质心回归图;随后,该网络通过稠密回归对嵌入空间内的所有关节候选点进行了(c)质心聚类处理,最终在人员检测区域内生成了(d)关节分区;最后,GPN采用(e)局部贪婪推理策略,在每个关节分区上独立生成相应的关节构型,从而实现了多个人体的姿态估计结果

6.SPM(单阶段多人姿态估计机器)
该研究探讨了单阶段多人姿态检测技术
本文的核心策略是采用SPR(StructuredPoseRepresentation)方法,并非传统的基于特征提取的人体姿态表示方式。该模块旨在将人体的位置信息与其关键点的位置信息建立联系。具体而言,SPR模块通过一个根节点来表征每个主体在图像中的位置信息,并根据根节点的位置进行编码以获取对应人体所有关键点的位置坐标。此外,在本研究中我们首次提出了一种基于单阶段的多人姿态估计网络模型,并非现有的基于分步预测的方法框架。这种新方法能够同时预测多个体的姿态参数并实现精确的人体重建效果。具体而言,在模型构建过程中我们采用了单阶段多目标检测框架结合深度学习技术对人体会有根节点及其相对偏移量进行了回归分析

7.personlab(将人体关键点检测和实例分割统一到一个网络中)
该研究提出了一种基于bottom-up架构的人体姿态估计与实例分割模型。该模型采用了part-based的设计方案,并结合了几何嵌入的方法来提升分割精度与检测效率。该框架在ECCV 2018会议上获得认可,并提供了对应的Keras与TensorFlow实现版本供研究人员参考使用
作者通过分析图片中的人体各个部位的所有关键点来实现识别过程。接着通过估计任意两个关键点之间的相对位置关系来建立模型,并特别关注于那些相距较远的关键点对的准确预测问题。为此创新性地设计了一种循环流程来解决这一挑战,并显著提升了整体效果水平。最后通过贪婪解码算法将所有检测到的关键点按照各自对应的实例进行精确分组处理。PersonLab采用了先从最容易确定的关键点入手进行图像分割处理的方式而非直接设定一个固定不变的标准比如鼻部这样的基准点来进行分割,在聚类过程中表现出良好的稳定性和准确性表现。

8.pifpaf(效果远超Openpose)
第32届国际计算机视觉与模式识别大会 | PifPaf: 复合场在人体姿态估计中的应用
该研究引入了Part Intensity Field (PIF),用于确定人体各部位的关键点;同时提出了Part Association Field (PAF),该模型旨在识别人体不同部位之间的关联关系。通过分析图像中各区域的Pif特征值,我们能够识别出哪些区域可能是人体的关键点;这样就能实现(1)对图像中的所有关键点进行预测;(2)将同一人体的不同部位关键点进行关联。在COCO关键点任务上取得最先进的成绩,并且超越了现有所有基于bottom-up的方法;此外,在AP/AR指标上较OpenPose提升了约12个单位左右。

9.HigherHrnet(改进hrnet用于多人关键点估计,达到目前最优)
该文提出了一种基于从底-Up高分辨率网络的多个人体姿态估计方法。(https://arxiv.org/pdf/1908.10357.pdf)该项目的官方代码实现基于PyTorch框架。(https://github.com/HRNet/Higher-HRNet-Human-Pose-Estimation)
为了降低计算开销,在HRNet架构中引入了一个高效反卷积模块;随后提出了HigherHRNet模型;通过多尺度特征学习与热图融合策略优化了模型性能;实验结果表明该方法在bottom-up目标检测任务中取得了优异成绩(AP=70.1%)。

#------------------
top-down
1.Joint-to-Person Associations(利用线性规划尝试解决拥挤和遮挡问题)
ECCVworkshop 2016 | Multi-Person Pose Estimation with Local Joint-to-Person Associations
该算法旨在实现多个关键点的精确检测。
随后系统识别并定位出图像中所有的身体。
接着在每个身体轮廓内识别并提取其内部的所有关键点位置。
然后将这些关键点作为顶点节点,并通过连接边形成一个完整的图结构。
最后针对每个独立的身体区域内的图结构运用线性规划模型求解获得最优的连接方案。
The proposed method demonstrates improved performance in handling occlusions andcrowded scenarios compared to the conventional top-down approach.

2.Deepcut & Deepercut(基于人体聚类后利用线性规划获取关键点)
[CVPR 2016, DeepCut-based Joint Subset Partition and Labeling for Multi-Person Pose Estimation] (https://arxiv.org/pdf/1511.06645.pdf)
[ECCV 2016, DeepCut-based A Deeper, Stronger, and Faster Multi-Person Pose Estimation Model] (https://arxiv.org/pdf/1605.03170.pdf)
[Official Code: caffe] (https://github.com/eldar/deepcut)
Deepcut:
该算法提出了一种联合解决检测和姿态估计的方法,首先利用CNN的方法提取图像中的所有关键点,所有的关键点作为节点组成一个dense graph(密度图)。其次利用Fasterrcnn获取人体位置,并联合密度图。最终将属于同一个人的关键点(节点)归为一类,每个人作为一个单独类。
本文的思路具有以下几个优势:
1)可以解决未知个数人的图像,通过归类得到有多少个人
2)通过图论节点的聚类,有效的进行了非极大值抑制
3)优化问题表示为 Integer Linear Program (ILP),可以有效求解

Deepercut:
该算法基于Deepcut进行了优化,并主要基于以下两个方面进行优化:
(1)采用最新的残差网络技术用于关键点提取,在检测精度上显著提升。
(2)通过Image-Conditioned Pairwise Terms的方法有效减少候选区域节点的数量至更少数量。
该方法的核心原理在于通过分析候选节点之间的距离来识别其重要性。

3.G-RMI(关键点检测基石,有许多基础思路)
本研究提出了一种基于关键点的人体姿态估计方法,该方法属于自上而下模型范畴,并划分为两个主要阶段.第一阶段旨在识别图片中人体的姿态与体型,为此我们采用了Faster RCNN检测器进行处理.第二阶段则聚焦于预测每个体态框内潜在的关键点位置.针对每一种特定的关键点类型,我们通过全卷积神经网络ResNet推断出各关键点的热图及其坐标偏移量.为了整合这些推断结果,我们提出了一个创新性的聚类机制以实现对关键点位置的精细定位.此外,本文还创新性地采用基于关键点的人体姿态估计中的非极大值抑制准则,而非传统的基于目标框的人体姿势估计策略.这种改进使得后续相关研究在此基础上取得了显著进展.

4.alphapsoe1 & alphapsoe2(解决人体框不准和拥挤场景姿态估计)
(ICCV 2017 | RMPE: Regional Multi-person Pose Estimation)(https://arxiv.org/pdf/1612.00137.pdf)
(ArXiv 2018 | Efficient Crowded Scenes Pose Estimation and a New Benchmark)(https://arxiv.org/pdf/1812.00324.pdf)
(Official Code: caffe)(https://github.com/Fang-Haoshu/RMPE)
(Official Code: pytorch)(https://github.com/MVIG-SJTU/AlphaPose)
RMRE(该方法能够实现对不准确边界框的处理,并具备冗余检测能力)

在论文中值得借鉴的创新思路主要包括两个方面:其中第一个创新点是基于单人姿态估计的技术框架,在该框架下通过引入候选点概念并设计相应的损失函数来抑制不属于当前人体实例的特征点。该方法能够有效提取了复杂场景中的关键人体特征,并实现了对拥挤人体关键点的提取。第二个创新方法涉及全局最优关节关联问题,在该问题上我们发现基于特定姿态估计网络检测到的关键点数量往往超过实际需求。因此我们采用图论方法,并借助线性规划模型求解最优配对关系以实现最优图构建进而完成最优实例链接工作

5.Joint Pose & Segmentation(联合姿态估计和躯干分割网络)
CVPR 2017 | Joint Multi-Person Pose Estimation and Semantic Part Segmentation
该算法的整体架构如图所示,在系统初始化阶段首先利用Fastrcnn等技术提取多个人体在图像中的Bounding Box,并借助PoseFCn生成初始的人体姿态得分图。与此同时,在现有Bounding Box基础上运用PartFcnn进行人体上半身初筛,并将这两部分的结果输入至全连接CRF模型中以结合分割结果进一步优化关键点的姿态预测。随后,在第二步处理中将更为精确的关键点姿态得分图作为输入并以这些精确的姿态信息作为基础完成上半身细分工作。该方法通过两种结果的相辅相成最终在两个结果上都取得了显著提升效果

6.Joint Pose & Detection(联合姿态估计和目标检测网络)
该论文于2018年在ECCV上发表,并提出了一种称为MultiPoseNet的方法来高效解决多人姿态估计问题
该算法被命名为MultiPoseNet,并且能够协同处理人体检测与关键点定位问题。基于位体残差网络(PRN)的方法实现了新的姿态分配方案。然而,在实际应用中存在两个主要挑战:一是现有的基于全局图的人体姿态估计方法(如OpenPose)面临着性能瓶颈挑战;二是基于单人姿态估计技术(如AlphaPose)虽然在处理效率上有所提升,但随着人数增多会出现计算开销显著增加的问题。为此,MultiPoseNet网络首先通过全局图的人体姿态估计过程获取整体布局信息;随后结合用于人体检测的功能层提取相关人体边界框;最后将这些边界框输入到位体残差网络中完成精确的姿态估计任务。通过这种设计思路,在保证精度的同时实现了时间开销与性能表现之间良好的平衡。

