Associative Embedding: End-to-End Learning for Joint Detection and Grouping-多人关键点检测

本文提出了一种名为associative embedding的端到端学习框架,适用于多人姿态估计任务。该方法通过在网络输出中添加tag通道,使得相同tag值的关键点属于同一人体,以此实现多人姿态的检测与分组。通过训练网络优化分组损失函数,确保了同类关键点在同组内的tag值接近,不同组间的tag值差异大。在MPII和MS-COCO数据集上,该方法取得了最佳结果。
摘要由CSDN通过智能技术生成

Associative Embedding: End-to-End Learning for Joint Detection and Grouping

一句话总结

本文主要内容是:提出了一种通用检测分组方法,并成功的将单人姿态估计方法迁移应用到多人姿态估计上。具体方法是在hourglass的输出中多加m个tag通道,每个关键点都有对应的tag,相同的tag属于同一组,所以就可以进行关键点的分组,从而实现多人姿态估计。

摘要

  • 本文介绍了一种新奇的方法用来做检测、分组任务的方法 – associative
    embedding,不少的计算机视觉问题可以构建在这个框架中(多人关键点检测、实例分割、多目标追踪)。

  • 通常检测对象分组需需要通过多步pipelines完成,然而我们的方法是教网络同时输出预测结果和分组结果。这个计数可以容易的整合进SOTA方法中产生像素级的预测结果。【核心】

  • 本文展示了如何应用此方法进多人姿态估计中,并且在MPII和MS-COCO数据集中产生了最好的结果。

1、介绍

  • 许多的计算机视觉任务都可以视作检测和分组的过程:先检测出小的视觉单元、然后将他们分组组成更大的视觉对象。例如:在多人关键点检测中,先检测出每个人的关键点,然后把属于同一个人的关键点分到同一组中。多目标追踪和语义分割任务也是如此,假设语义分割的类别是21,那么语义分割网络输出21通道的宽高与原图相同的特征图,每个通道的特征图对应于一个类别,特征图上的每个像素对应于原图上每个像素的分类。相同分类的像素作为一组,就可以把具有相同语义信息的对象切割出来。
  • 以往的方法是先检测再分组(two-stage),通过一些方法对检测到的对象进行分组,典型的两阶段任务,但这方法不是最优的,因为检测和分组是紧密结合的,再检测的同时就可以判断手腕和手臂是否属于同一个躯体。
  • 本文提出的方法不用two-stage网络,可以end-to-end进行训练 – associative
    embedding。基本想法是引入分组标签,给预测到的属于同一人的关键点打上相同的标签,则具有相同标签的关键点就属于同一个人。结合单人关键点检测方法输出的heatmaps,找到超过阈值的score最高的关键点,以及相应的位置,查找tags图中相对应的tag,得到此关键点的坐标以及分组。如此对整张图操作就可以找到每个人拥有的关键点。
  • 为了训练网络产生正确的tags,设计了一个损失函数鼓励属于同一组的关键点具有相同的tag值,不同组的关键点的值不同。但是并不在意具体的tag值是多少,只需要知道这个关键点属于哪一组,而不属于另外一组即可,所以关键点的tag值是随意的,不需要手动设定规则,只需要保证可以区分组别即可。
  • 将这种方法用到了多人关键点检测中,为了实现多人关键点检测,将AE融入进了hourglass网络中,输出多张热力图(一种关键点一个热力图)和对应的tags图。相近的tag值对应的关键点作为一个人。
  • 本文贡献如下:
    • 提出了AE方法,具有通用性可以应用到相近的视觉任务中。
    • 把这个方法用到了多人关键点检测中,在两个公共数据集中达到了最好的效果。

2、相关工作

。。。

3、方法

associative embedding这个方法除了对每个候选者预测score外,还预测相应的embedding,也就是组的tag:相近的tag可以被视为一组。在多人姿态估计中,具有相似tag的关键点组成一个人,tag的值是任意的,只要保证 不同组的tag值不同即可

3.1、网络架构

  • 本文方法要求输出输入图片每个像素的detection scorevector embedding(分组编码)。
    主干网络采用stacked hourglass架构,这个方法是之前用来做单人关键点检测的,采用一系列标准的卷积和池化操作降低分辨率获取更高维度的特征,然后进行上采样操作恢复分辨率到输入图片大小。重复进行bottom-up、top-down【bottom-up即下采样操作,获取更高维度特征.top-down即上采样操作,提高分辨率,降低特征维度】推理可以获得更精确的预测结果。具体方法参考论文【】
  • 堆叠沙漏模型最初是为单人人体姿态估计而开发的,并被设计用于输出目标人的每个身体关节的热图。热图激活度最高的像素用作该关节的预测位置。该网络整合了全局和局部特征,以捕获关于身体的完整结构的信息,同时保持关于精确定位的详细信息。在预测多名人员的姿势时,这种全局和局部之间的平衡同样重要。本文对hourglass网络做了一定的修改,使之能够承受多人姿态估计的难度。每次分辨率下降时,特征通道的数量都会增加(256→384→512→640→768),另一个改动是将每一层的残差块改为3*3卷积,其余skip connect仍然保持。

3.2 检测分组

  • 对于多人关键点检测部分,与之前的单人关键点检测保持一致,不同的是同一张预测图会存在多个峰值,这些峰值属于不同人的相同类别关键点,而单人同一张预测图中只存在一个峰值。(不同类别的关键点不同的通道特征图,一类关键点一个特征图,,比如说左手腕关键点有一张专属的特征图,多人因为存在多个左手腕,所以这张特征图上会有多个峰值点,而单人仅有一个左手腕,所以只有一个峰值)
  • 检测部分的损失函数 计算预测热力图与GT热力图(每个关键点做高斯滤波)的均方误差。
  • 对于关键点分组部分, 一个关键点对应于一个tag,而不是多维tag表示,tag的维度并不重要,如果tag的维度是高维的,那么网络也有足够的能力把他学成1D表示。
  • 每个关键点热力图都有其对应的tag图,所以如果有m种关键点,那么最终预测输出通道数应为2m( m for detection and m for grouping.每类关键点对应一个通道,相应tag一个通道,共有2m个通道)。
  • 具体分组方法是: 首先获得关键点热力图上的峰值定位,然后获取相应tag图上对应的tag值。通过比较tag值对全图检测对象进行分组,匹配足够接近的tag值相近的那些点,组成一个人。
  • 分组部分的损失函数:遵循类内最小,类间最大的原则,同一个人的所有关键点的tag值应该相近,不同人的同类关键点对应的tag值应相差较大,所以分组损失函数设计如下:
    L g ( h , T ) = 1 N K ∑ n ∑ k ( h ‾ n − h k ( x n k ) ) 2 ⏞ A + 1 N 2 ∑ n ∑ n ′ e x p { − 1 2 σ 2 ( h ‾ n − h ‾ n ′ ) 2 } ⏟ B L_g(h,T)=\overbrace{\frac{1}{NK}\sum_n \sum_k(\overline h_n-h_k(x_nk))^2}^{A}+\underbrace {\frac{1}{N^2}\sum_n\sum_{n^{\prime}} exp\{-\frac{1}{2\sigma^2} (\overline h_n-\overline h_{n^{\prime}})^2\}}_{B} Lg(h,T)=NK1nk(hnhk(xnk))2 A+B N21nnexp{2σ21(hnhn)2}
    • A部分是组内均方误差,越小越好,靠近组内tag平均值。B部分是组间误差,越大越好,根据高斯函数的特性,任意两组的tag平均值相差的越大,值反而越小,所以这个损失函数很好的反映了类内最小,类间最大的原则。
      在这里插入图片描述

    3.3、解析网络输出

网络经过训练后,输出的解析就变得很容易。

  • 首先进行非极大值抑制和阈值处理获取score最高的一系列关键点,从相应的tag图中的相应位置获取tag值。
  • 一个个的遍历所有关键点,一种遍历的顺序是从头部和躯干开始逐渐移动到四肢。首先将所有的同一类关键点(如head),组织成一个初始化池(同一类每个关键点都代表一个人),然后查找初始化池中的节点查找最近的评分最高的且tag值最接近的下一类节点(如neck),如此循环,就可以找到每个人及其所属的关键点。
  • 如果存在遮挡或者丢失的情况也是可以推理出来的,在上一步中如果还有未匹配到的置信度较高的关键点,那么就需要新建一个人来容纳(因为上一步的点预测是环环相扣的,如果有一个人的头被遮挡但是其他部分都存在,那么仅依靠上一步计算会被遗漏,所以针对未被匹配到的关键点需要新建一个人)

实验

在那个时候的 MS-COCO and MPII Human Pose都取得了最好的结果。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值