[论文地址]
Outline
本文针对一个更具挑战的任务:同时进行姿态检测和跟踪。
- 单人姿态估计(ResNet backbone + deconvolutional layers)
- 贪婪匹配方法用于姿态跟踪(Detect and Track)
- use optical flow based pose propagation and similarity measurement
Result: 74.6 mAP, 57.8 MOTA
网络结构

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

单帧姿态估计
通过在帧间指派 id 来跟踪人体姿态
当处理第k帧 Ik 时,我们已经得到了第k-1帧 Ik−1 中人实例的集合 Pk−1=pi,pi=(jointsi,idi),其中 id 表示轨迹;以及实例集合 Pk=pj,pj=(jointsj,idj=None).
如果 pj 链接到一个 pi,那么 idi 分配给 idj,否则一个新的 id 被指派给 pj,表示一个新的轨迹。
采用光流的 box propagation
直接采用基于图像的检测器(e.g. R-FCN)存在的问题:由于视频帧的运动模糊和遮挡,可能会漏检和误检。通常引入时间信息来生成更鲁棒的检测结果。
本文提出通过光流表示的时间信息来从相邻帧获得boxes。给定帧 Ik−1 中人的实例 pi=(jointsi,idi) 以及帧 Ik−1 和帧 Ik 间的光流,我们可以利用光流位移 pi 的关节坐标来估计帧 Ik 中对应的 ^pj=(^jointsj,idj)。然后本文通过扩大 ^jointsj 的 min 和 max 范围(实验中为15%)来计算传播得到的边界框。
基于流的姿态相似性
相邻帧采用边界框 IoU 作为相似性度量(SBbox)来联系实例在下述场景中会存在问题:当一个实例移动得很快,相邻帧的边界框没有重叠,且其处于一个密集的场景中。一个更精细的度量是姿态相似性(SPose),它通过目标关键点相似性(OKS)来计算两个实例间的人体关节距离。姿态相似性在同一个人在不同的帧间姿态变化时可能存在问题。本文提出了一个基于流的姿态相似性度量。
利用 Ik 和 Il 帧间的光流位移人体关节坐标来从 pi 得到 ^pi。可利用 Il 中的 pj 和 ^pi 的相似性来代理 pj 和 pi 是同一个人的相似性。
给定帧 Ik 中的实例集合 Pk=pi 以及帧 Il 中的实例集合 Pl=pj ,基于流的姿态相似性度量如下表示:
SFlow(Pk,Pl)=OKS(^Pk,Pl)
由于不同的人和物体之间会产生遮挡,人可能在视频中消失又重新出现。仅考虑连续的两帧是不够的,因此我们的姿态相似性度量考虑了多帧(Multi−Sflow),意味着 ^Pk 可能从多帧之前位移得到。
基于流的姿态跟踪算法

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



PoseTrack 姿态估计和跟踪
- Task 1:单帧姿态估计 mAP
- Task 2:多帧姿态估计 mAP,可使用帧间的时间信息
- Task 3:姿态跟踪 MOTA



