⼈体关键点检测综述(1)
-- Background
专业术语:multi-person po estimation诅咒敏感期
多⼈姿态估计的两种研究⽅法——
改变一生⾃顶向下(top-down):先检测出多个⼈,再对每⼀个⼈进⾏姿态估计(先检测单个⼈,再针对单个⼈做single-person po estimation。),可以将⼈体detection的⽅法加上单⼈姿态估计⽅法来实现。
优点:思路直观,⾃然,被绝⼤部分⼈所青睐,且单⼈估计精度⾮常⾼。
⾃底向上(bottom-up):先检测出关节点,再判断每⼀个关节点属于哪⼀个⼈。(先检测joints 和 limbs,
然后将他们group成⼀个⼈。)
优点:整个图像只需要处理⼀遍,速度不随⼈数增加⽽变化。
Part1:Single Person Po Estimation
2015 年之前的⽅法都是回归出精确的关节点坐标( x,y ),采⽤这种⽅法不好的原因是⼈体运动灵活,模型可扩展性较差。
《Flowing ConvNets for Human Po Estimation in Videos》ICCV 2015
2015 年 flow convnet 将姿态估计看作是检测问题,输出是 heatmap。其创新点在于从卷积神经⽹络的 3 和 7 层提取出来,再经过卷积操作,称之为空间融合模型,⽤来提取关节点之间的内在联系;同时使⽤光流信息,⽤来对准相邻帧的 heatmap 预测。最后使⽤参数池化⽅法,将对其的 heatmap 合并成⼀个 scoremap。
评测数据集:FLIC数据集,对于wrist和elbow的平均PCK可以达到92%,可以做到实时性,速度为5fps。但是该⽅法对于po的估计范围有限,只是半⾝的关节点,并不是全⾝的⾝体⾻骼点。
《Convolutional Po Machines》CVPR 2016
2016 年提出的 CPM ⽅法具有很强的鲁棒性,之后的很多⽅法是基于此改进的。CPM 的贡献在于使⽤顺序化的卷积架构来表达空间信息和纹理信息。⽹络分为多个阶段,每⼀个阶段都有监督训练的部分。前⾯的阶段使⽤原始图⽚作为输⼊,后⾯阶段使⽤之前阶段的特征图作为输⼊,主要是为了融合空间信息,纹理信息和中⼼约束。另外,对同⼀个卷积架构同时使⽤多个尺度处理输⼊的特征和响应,既能保证精度,⼜考虑了各部件之间的远近距离关系。
评测数据集:MPII,LSP,FLIC,在MPII数据集上的total PCKh是87.95%(如果加上LSP数据集作为训练,将达到88.52%),在LSP 数据集上的PCKh是84.32%(如果加上MPII数据集作为训练,将达到90.5%),在FLIC数据集上的PCK@0.2分别是
elbows(97.59%),wrist(95.03%)。速度不明,应该⽆法做到实时。
《Stacked Hourglass Networks for Human Po Estimation》ECCV 2016
同年发表的 stacked hourglass 也取得了⾮常不错的效果。对给定的单张 RGB 图像,输出⼈体关键点的精确像素位置,使⽤多尺度特征,捕捉⼈体各关节点的空间位置信息。⽹络结构形似沙漏状,重复使⽤ top-down 到 bottom-up 来推断⼈体的关节点位置。每⼀个 top-down到bottom-up 的结构都是⼀个 hourglass 模块。
评测数据集:在FLIC数据集上的PCK@0.2分别elbows(99%),elbows(97%);
在MPII数据集上如下:Tompson就是flow convnet,Wei就是CPM
《Structured Feature Learning for Po Estimation》CVPR 2016网络语
2017 年王晓刚组的 structured po 也是在 CNN 的基础上进⾏微调,其创新点在于在卷积层使⽤⼏何变换核,能够对关节点之间的依赖关系进⾏建模,此外还提出了双向树模型,这样每个关节的 feature channel 都可以接收其他关节的信息,称之为信息传递,这种树状结构还能针对多⼈进⾏姿态估计。但是这种多⼈姿态估计的准确度不⾼,⽅法还是基于单⼈的⽐较好。
评测数据集:FCIL,LSP,MPII,在 FCIL,LSP均⽐之前的⽅法有所提升,在MPII数据集上也曾暂列榜⾸,PCKh达到91.5%,准确率提升不⼤。
⽬前在MPII数据集上位列榜⾸⽅法来⾃论⽂《Adversarial PoNet: A StructureawareConvolutional Network for Human Po Estimation》,采⽤的GAN的⽅法,效果⽐之前的state-of-the-art仅仅提升了零点⼏个百分点。基本上到hourglass之后的⽅法都是⼀些微调,虽然理论都不太⼀样,但是准确度提升不⼤。
Part2:Multi-Person Po Estimation
《DeepCut: Joint Subt Partition and Labeling for Multi Person Po Estimation》 CVPR 2016
《DeeperCut: A Deeper, Stronger, and Faster Multi-Person Po Estimation Model》 ECCV 2016
2016 年的 deepcut,采⽤⾃顶向下的⽅法,先⽤ CNN 找出所有候选的关节点,将这些关节点组成⼀幅图,对图中的节点进⾏聚类,从⽽判断各个节点属于哪⼀个⼈,这是⼀个优化问题;同时,对各个点进⾏标记,分类属于⾝体的哪⼀部分;两者结合输出姿态估计结果。
Deepercut 是在 deepcut 的基础上使⽤ resnet 进⾏检测提⾼精度,使⽤ image conditioned pairwi ,能够将丰富的候选节点进⾏压缩,提升速度和鲁棒性。
评测数据集:deepcut,对于单⼈姿态估计,在LSP数据集上的PCK达到87.1%,在MPII数据集上的PCK达到82.4%(可见,适⽤于多⼈的姿态估计⽅法和纯粹的单⼈姿态估计⽅法的准确率还有所差距);对于多⼈姿态估计,在WAF数据集上mean PCP达到84.7%,在MPII 多⼈数据集上AP 达到 60.5%,速度⾮常慢。
DeeperCut:和deepcut的评测数据集相同,这⾥主要针对多⼈来看,其准确率和速度都有所提升,尤其是速度⽅⾯。
在MPII数据集上结果如下:
可以看到,DeeperCut最快可以做到230s每帧,⽐deepcut的每帧需要⼏⼗万秒速度有显著提升。单纯对于检测来说,faster r-cnn的⽅法要快很多,不过它的准确度没有deepercut⾼。
在WAF数据集上也有显著速度提升:
《ArtTrack: Articulated Multi-person Tracking in the Wild》CVPR 20171973属什么
2017年的ArtTrack的作者也是DeeperCut 的第⼀作者,是将⼈物姿态估计⽤到了视频跟踪⾥⾯,本⽂的贡献是利⽤现有的单帧姿态估计模型作为基础框架,但是速度却明显加快,这种加快主要通过以下两种⽅式来进⾏:(1)通过简化和稀疏⾝体部位的关系图,使⽤进来的⽅法进⾏快速的推理;(2)不加载⽤于前馈神经⽹络上的⼤规模计算量,这些神经⽹络是为了检测和关联同⼀⼈的⾝体关节。模型仍然是采⽤ top-down 的⽅法,即先⽤ Resnet 检测出body part proposal,然后再根据关联和空间信息将他们归为不同的⼈。
同时,本⽂也提出⼀种 top-down/bottom-up 的模型,即 top-down 部分是⽤来对⼈体做⼀个粗略的估计,之后再⽤bottom-up 进⾏精确调整,使得预测的关节点位置更准确。
评测数据集:WAF数据集和MPII Video Po数据集,相应有所提升。
基于Deep(er)Cut和ArtTrack的po开源实现:(python3+tensorflow,MPII数据
集/COCO数据集)
《Realtime Multi-Person 2D Po Estimation using Part Affinity Fields》CVPR 2017
2017 年的 Part Affinity Fields(PAF)能够针对多⼈做到实时检测,它采⽤的却是⾃底向上的⽅法,⽹络框架分为两路;⼀路使⽤ CNN,根据置信图进⾏关节点预测,另⼀路使⽤CNN 获得每个关节点的 PAF,PAF 可以看作是记录 limb 位置和⽅向的 2D 向量。两路进⾏联合学习和预测。最后就是如何将这些节点两两连接不重复,这转换为图论问题。
评测数据集:COCO 2016关键点检测数据集+MPII multi-person benchmark。对于MPII多⼈po,本⽂⽆论是准确度还是精度上都有质的飞跃,其相⽐于DeeperCut的速度快了4万多倍,准确度也有⼏个百分点的提升。可以做到实时,每帧只需要5毫秒,即200FPS。
在COCO2016 challenge上准确度也有显著提升。
New state-of-the-Art
《Mask R-CNN》ICCV 2017,FAIR,Kaiming He
2017年何凯明的Mask R-CNN,Mask R-CNN 是⽤于⽬标检测分割的框架,即对⼀张图⽚,既输出图⽚中已有的⽬标,还能为每⼀个实例⽣成⼀个⾼质量的分割掩码。mask RCNN是在 faster R-CNN 的基础上,在每⼀个 RoI 都增加⼀个预测分割的mask,这和分类以及bounding box 回归是并⾏的⼀条分⽀。它的训练简单,仅仅⽐ faster RCNN多⼀点计算开销。它易于泛化到多个任务上,例如⼈体姿态估计。在不加任何的 trick的情况下,在COCO 数据集上超越其他的⽅法。因此准确度⽅⾯基本上已经是state-of-the-Art。
母版
应⽤到po estimation,将分割系统中的⽬标改为K个one-hot,m*m的⼆进制mask。准确率⽐COCO
2016 冠军⾼0.9个点,速度达到5 FPS。
《Towards accurate multi-person po estimation in the wild》CVPR 2017 Google
Google的⼈体姿态估计,多数时候在论⽂中简写为G-RMI。
鸡蛋壳手工论⽂采⽤top-down的结构,分为两个阶段:
第⼀阶段使⽤faster rcnn做detection,检测出图⽚中的多个⼈,并对bounding box进⾏image crop;
第⼆阶段采⽤fully convolutional resnet对每⼀个bonding box中的⼈物预测den heatmap和offt;
最后通过heatmap和offt的融合得到关键点的精确定位。
《Associative Embedding:End-to-End Learning for Joint Detection and Grouping》
论⽂提出了⼀种single-stage,end-to-end的关节点检测和分组⽅法,这不同于以往的multi-stage的关节点检测⽅法,在MPII和COCO数据集上达到新的state-of-the-art的效果,超越最近的Mask RCNN和Google GMI。从⼈体姿态估计⽅法上属于bottom-up的⽅法,即先检测关节点,再对关节点进⾏分组。在COCO测试集上mAP达到0.655。历历在目还是沥沥在目
《RMPE: Regional Multi-Person Po Estimation》ICCV 2017,SJTU,Tencent Youtu谈骨气
这篇论⽂是上海交⼤和腾讯优图的论⽂,被 ICCV 2017接收。它对于多⼈姿态估计的⽅法采⽤传统的⾃顶向下的⽅法,即先检测⼈,再识别⼈体姿态。检测使⽤的是SSD-512,识别⼈体姿态使⽤的是state-of-the-art的Stacked Hourglass⽅法。致⼒于解决对于imperfect proposal,通过调整,使得crop的单⼈能够被单⼈姿态估计⽅法很好的识别,从⽽克服检测带来的定位误差。