Multi person-pose estimation

几篇人体关键点检测的论文

一、Mask R-CNN

Mask R-CNN
Mask R-CNN同时进行目标检测和实例分割,在Faster-RCNN框架基础上增加mask分支,多任务损失为:
L=Lcls+Lbox+Lmask L = L c l s + L b o x + L m a s k
对于每个RoI,mask分支有 Km2 K m 2 维的输出,表示K个分辨率为 m×m m × m 的二值mask,对应K个类别。使用per-pixel sigmoid生成二值图,定义 Lmask L m a s k 为平均二值交叉熵损失。对于具有真值标签k的RoI, Lmask L m a s k 仅对第k个mask定义,其他的mask对损失无贡献。
分类分支预测类别标记,使用这个标记选择输出的mask。这不同于FCN,使用的是per-pixel softmax 交叉熵损失,不同类间的mask有竞争。

Mask表示
Mask是输入目标的空间布局,而类别标记和box预测是将卷积特征图通过fc层折叠到短向量,而提取mask的空间结构需要对卷积特征图进行点到点的对应。论文使用FCN预测 m×m m × m 的mask,而RoIPool损失了像素的空间结构,作者设计了RoIAlign层。

RoIAlign
RoIPool是提取每个RoI小的特征图的标准操作,RoIPool首先将浮点数的RoI量化为离散粒度的,量化的RoI之后划分为spatial bins(如 7×7 7 × 7 ),并各自量化,之后使用max pooling累积每个bin的特征值。量化的操作为[x/16],16是步长。量化引入了RoI和特征之间的对准误差,这不影响分类,但影响mask预测。

RoIAlign层移除了量化操作,如x/16代替[x/16],使用双线性插值计算输入特征的每个之,操作如下图所示:
这里写图片描述

网络结构
backbone:ResNet-50-C4,ResNet-FPN
网络头:
这里写图片描述
训练过程中IOU>0.5的ROI作为正样本,其余为负样本。mask损失仅对正RoI定义。image-centric训练,每个mini-batch每个GPU有2个图像,每个图像有N个RoIs,正负比为1:3。测试时,proposal的数目是300,预测box并NMS,mask分支对得分最高的100个box预测,每个box有k个mask,仅使用分类分支预测的第k个mask,最后将 m×k m × k 的mask resize到RoI的尺寸。

实例分割结果比对:
这里写图片描述

Mask R-CNN用于关键点检测
将关键点的位置建模为one-hot mask,使用Mask R-CNN预测K个mask,对应K个关键点类型(如,左肩、右肘)。训练的目标是一个one-hot m×m m × m 的而至mask,仅有一个像素标记为前景。训练过程中对于每个真值关键点,最小化 m2way m 2 − w a y softmax交叉熵损失。
关键点检测结果比对:
这里写图片描述
表中方法[6]即为第二篇论文的方法。

二、Realtime multi-person 2d pose estimation using part affinity fields

方法使用Part Affinity Fields(PAF),学习身体部件间的关联。自上而下的方法首先检测人体,然后对每个人进行姿态估计,人越多检测时间越长。自下而上的方法检测图像中所有的关节点,然后将关节点关联到每个人。论文基于Part Affinity Fields,提出的是自下而上的方法,PAF是表示肢体位置和方向的2D向量集。

方法描述
方法的结构如下图所示,系统的输入是一个 w×h w × h 的彩色图,输出图像上每个行人的2D结构关键点。前向传播网络同时预测2D置信度图S,和部件亲和2D向量L,S包含J个置信度图,每个对应一个part, L=(L1,L2,...,LC) L = ( L 1 , L 2 , . . . , L C ) 包含C个向量域,每个肢体一个, Lc L c 中每个图像位置对应一个2D向量。置信度图和亲和字段使用双向匹配解析到所有的人。
这里写图片描述
1. 同时检测和关联
网络结构如下图3所示,同时预测置信度图和亲和字段,网络有俩个分支,图中上面的分支预测置信度图,下面的分支预测亲和字段,每个分支是一个迭代预测结构。
这里写图片描述
图像首先使用VGG-19的前10层分析,生成特征图集输入到第一阶段的两个分支。在第一阶段,网络输出置信度图 S1=ρ1(F) S 1 = ρ 1 ( F ) 及部件亲和字段 L1=ϕ1(F) L 1 = ϕ 1 ( F ) ,其中 rho1(F) r h o 1 ( F ) ϕ1(F) ϕ 1 ( F ) 是第一阶段的推断。在接下来的每个极端,前一阶段两个分支的结果和原始图像特征F,串联用于生成更新的预测:
这里写图片描述
下图显示了每个阶段置信度和亲和字段的变化,每个阶段有两个损失函数,均为 L2 L 2 损失:
这里写图片描述
W是二值掩码,位置p处标记不存在时W(p)=0。梯度replenish的方法用来避免梯度消失问题。总体目标函数为:
f=Tt=1(ftS+ftL) f = ∑ t = 1 T ( f S t + f L t )
2. 置信度图检测
由标记的2D关键点生成置信度图真值 S S ∗ ,置信度图是每个身体部件在每个像素出现的置信度。如果对应的身体部件可见,置信度图中应存在一个波峰,如果有多个人出现,每个人k的可见部件j应有一个波峰。
首先对每个人k生成置信度图 Sj,k S j , k ∗ ,位置p处的值为:
这里写图片描述
真值置信度图是单个置信度图的max算子累计:
Sj(p)=maxkSj,k(p) S j ∗ ( p ) = m a x k S j , k ∗ ( p )
3.部件亲和字段用于部件关联
部件亲和字段如下图所示:
这里写图片描述
对于某个肢体,用2D向量表示肢体中点的方向,每个肢体有一个对应的亲和字段,用于关联两个身体部件。如果点p在肢体上, Lc,k(p) L c , k ∗ ( p ) 是从身体部件起点 j1 j 1 指向终点 j2 j 2 的单位向量,其他点的值为0。部件亲和字段的真值是所有亲和字段的均值。
测试时,通过计算对应PAF上的线积分测量候选部件检测的候选,及链接候选部件位置的线段。对于两个候选部件位置 dj1 d j 1 dj2 d j 2 ,在线段上采样预测的PAF,测量它们关联的置信度:
这里写图片描述 (10)
4. 使用PAF进行多人解析
对于检测到的身体部件子集,需要找到将肢体连起来的部件对,寻找最优的关联即最大化加权双向图匹配问题。图的节点是部件检测结果,边是所有可能的关联。文中使用关联置信度(10)加权,目标是寻找具有最大权值边的匹配:
这里写图片描述
这里有个没有任意两条边共享节点的约束。确定Z是个K维匹配问题,是非确定性多项式问题,作者增加了两个松弛。第一个是选择最小的边数获取人体姿态生成树骨架。第二个是将批评问题划分为双向匹配问题的子集。如下图所示。树节点由PAF显示建模,而非临近节点由CNN隐式建模。
这里写图片描述

实验结果
这里写图片描述

这里写图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值