Ink One

【论文笔记】Simple Baselines for Human Pose Estimation and Tracking

[论文地址]

Outline

本文针对一个更具挑战的任务:同时进行姿态检测和跟踪。

  • 单人姿态估计(ResNet backbone + deconvolutional layers)
  • 贪婪匹配方法用于姿态跟踪(Detect and Track)
    • use optical flow based pose propagation and similarity measurement

Result: 74.6 mAP, 57.8 MOTA

网络结构

network.png

与 Hourglass 网络和 CPN 对比:

Hourglass & CPN 采用了上采样来增大模型分辨率,并将卷积参数用于其他的模块;而本文方法将上采样和卷积参数以转置卷积(deconvolutional layer)的方式结合,不使用跳跃连接(skip layer connections)。

算法框架

framework.png
  1. 单帧姿态估计

  2. 通过在帧间指派 id 来跟踪人体姿态

    当处理第k帧 Ik 时,我们已经得到了第k-1帧 Ik1 中人实例的集合 Pk1=pi,pi=(jointsi,idi),其中 id 表示轨迹;以及实例集合 Pk=pj,pj=(jointsj,idj=None).

    如果 pj 链接到一个 pi,那么 idi 分配给 idj,否则一个新的 id 被指派给 pj,表示一个新的轨迹。

采用光流的 box propagation

直接采用基于图像的检测器(e.g. R-FCN)存在的问题:由于视频帧的运动模糊和遮挡,可能会漏检和误检。通常引入时间信息来生成更鲁棒的检测结果。

本文提出通过光流表示的时间信息来从相邻帧获得boxes。给定帧 Ik1 中人的实例 pi=(jointsi,idi) 以及帧 Ik1 和帧 Ik 间的光流,我们可以利用光流位移 pi 的关节坐标来估计帧 Ik 中对应的 ^pj=(^jointsj,idj)。然后本文通过扩大 ^jointsj 的 min 和 max 范围(实验中为15%)来计算传播得到的边界框。

基于流的姿态相似性

相邻帧采用边界框 IoU 作为相似性度量(SBbox)来联系实例在下述场景中会存在问题:当一个实例移动得很快,相邻帧的边界框没有重叠,且其处于一个密集的场景中。一个更精细的度量是姿态相似性(SPose),它通过目标关键点相似性(OKS)来计算两个实例间的人体关节距离。姿态相似性在同一个人在不同的帧间姿态变化时可能存在问题。本文提出了一个基于流的姿态相似性度量。

利用 IkIl 帧间的光流位移人体关节坐标来从 pi 得到 ^pi。可利用 Il 中的 pj^pi 的相似性来代理 pjpi 是同一个人的相似性。

给定帧 Ik 中的实例集合 Pk=pi 以及帧 Il 中的实例集合 Pl=pj ,基于流的姿态相似性度量如下表示:
SFlow(Pk,Pl)=OKS(^Pk,Pl)


由于不同的人和物体之间会产生遮挡,人可能在视频中消失又重新出现。仅考虑连续的两帧是不够的,因此我们的姿态相似性度量考虑了多帧(MultiSflow),意味着 ^Pk 可能从多帧之前位移得到。

基于流的姿态跟踪算法

algorithm.png
  1. 姿态估计。对于当前处理帧,检测框由行人检测器和之前帧利用光流得到的框组成,并进行非极大抑制(NMS)操作。然后将剪裁和缩放的图片送入姿态估计网络进行姿态估计。
  2. 跟踪。将跟踪的实例储存在一个记忆池 Ppool 中,它在视频的第一帧初始化,可以用来捕获多帧的联系。对于第 i 帧 Ii,我们计算未跟踪的 Pi(id 为 None)和 Ppool 基于流的姿态相似性矩阵 Sim。然后采用贪婪匹配和 Sim 将 id 分配给 Pi。最后将新的实例结果 Pi 加入 PpoolPpool 由一个长度固定的两端队列(Deque)实现,队列长度 poollen 表示进行匹配时考虑的前帧数。

实验结果

COCO 姿态估计

ablation_coco.png compare_achi.png exp_coco.png

PoseTrack 姿态估计和跟踪

  • Task 1:单帧姿态估计 mAP
  • Task 2:多帧姿态估计 mAP,可使用帧间的时间信息
  • Task 3:姿态跟踪 MOTA
ablation_posetrack.png compare_posetrack.png compare_mota.png result_posetrack.png