😸KAPAO(ECCV2022) 的主要贡献:
- 提出了一种新的姿态对象(pose object)表示方法,其通过增加一组与对象相关的关键点来扩展传统的对象表示方法,在辅助实验中展示了如何使用多任务损失来学习姿态对象表示。
- 提出了一种单阶段多人人体姿态估计的新方法,该方法不使用热图且同时检测关键点对象(keypoint objects)和人体姿态对象,然后将两者的检测融合起来从而利用这两者的优点。与之前的 SOTA 方法(都使用热图)相比,当不使用 TTA 时,所提出的无热图方法在 Microsoft COCO Keypoints 基准测试上明显更快、更准确。
人体姿态估计简述
😸人体姿态估计根据估计的关节坐标维度分为 2D 姿态估计和 3D 姿态估计
- 2D 人体姿态估计的目标是定位并识别出人体的关键点 ( x , y ) (x, y) (x,y),这些关键点按照关节顺序相连,就可以得到人体的骨架
- 3D 姿态估计的目标是从图像或视频中估计人体基于某点的人体三维关节坐标 ( x , y , z ) (x, y, z) (x,y,z),一般以人体的臀部关节为基点
😸双阶段的人体姿态估计总的来说有两种方式
- 自顶向下:先检测出人的位置,然后再根据检测出的位置为每个人做姿态估计。该方法更加符合人的思维,准确率相对较高,但推理速度较慢
- 自底向上:先检测出所有的人体关键点,再通过聚类将这些节点归为每一个人。该方法推理速度较快,但准确率不如前者。下图为自底向上方法的示意图

😼单阶段的人体姿态估计是通过网络的单次前向传递之后直接预测人体姿态估计,虽然目前主流算法多采用双阶段方法,且单阶段的精度不如双阶段,但单阶段方法往往在拥挤场景中会表现得更好
😸热图法是目前人体姿态估计中最常用的方法之一,其通过以下步骤预测关键点
- 在目标关键点坐标上以具有小方差的 2D 高斯函数来生成目标热图
- 使用深度卷积神经网络对输入图像上的目标热图进行回归
- 根据预测热图中的概率最大值来进行关键点预测
🙀但是热图法也存在着明显的缺点
- 速度问题:大型热图需要通过大量计算来产生,也需要特殊的后处理步骤来优化关键点预测,这会降低推理速度
- 精度问题: 存在量化误差,关键点预测的精度本质上受到热图分辨率的限制;当同类别的两个关键点彼此比较接近时,重叠的热图信号可能会让它们被误认为是同一个关键点
KAPAO
🙀鉴于热图存在的明显缺点,来自加拿大滑铁卢大学的研究者提出一种全新的单阶段 2D 多人关键点和姿态检测方法 KAPAO。该方法以 YOLOv5 为基础,不使用热图,并包含一个高效的网络设计。其同时检测人体姿态对象和关键点对象,并使用简单的匹配算法将这两者融合起来。在测试时,使用一块 TITAN Xp GPU 实时运算,720p 视频的推理速度可达每秒 35 帧,1080p 的视频可达每秒 20 帧。在不使用测试时增强(TTA)时 KAPAO 比此前的单阶段方法(如 DEKR 和 HigherHRNet)更快、更准确。

网络结构

- KAPAO 将图片输入
YOLO-style的特征提取器(使用 YOLOv5,其中包含了CSP 的 bottlenecks 和特征金字塔架构),从而得到四种类型大小的 output grids G ^ s \hat{G}^{s} G^s。其中,上标 s s s 的取值为 8、16、32、64。每种 grid 使用不同的 anchor,较小的 grid 感受野比较大,可预测较大物体;而较大 grid 感受野较小,更适合预测较小物体。 - 经过这组 grid 可得到预测关键点对象 O ^ k \hat{O}^k O^k 和姿态对象 O ^ p \hat{O}^p O^p,而 O ^ k \hat{O}^k O^k和 O ^ p \hat{O}^p O^p 会有冗余现象,可通过非极大值抑制处理得到候选姿态对象 O ^ p ′ \hat{O}^{p^{'}} O^p′ 和关键点对象 O ^ k ′ \hat{O}^{k^{'}} O^k′
- 最后使用匹配算法 φ \varphi φ 将 O ^ p ′ \hat{O}^{p^{'}} O^p′ 和 O ^ k ′ \hat{O}^{k^{'}} O^k′ 融合为最后的姿态估计结果 P ^ \hat{P} P^
❗注:姿态对象与关键点对象既有关联,又有区别
Grid cell 输出

- 每个 cell 的输出由存在物体概率 p 0 p_0 p0、边界框 ( t x , t y , t w , t h ) (t_x, t_y, t_w, t_h) (tx,ty,tw,th)、 K + 1 K+1 K+1 个类别( c 1 c_1 c1 判断是否为人,即用于姿态对象,其余用来确定是哪类关节点)、姿态对象的 K K K 类关键点坐标(每个关键点包含 2 个值,COCO 数据集中为 17),故输出通道为 1 + 4 + ( K + 1 ) + 2 × K = 3 K + 6 1+4+(K+1)+2×K= 3K+6 1+4+(K+1)+2×K=3K+6
- 当为姿态对象时(上图
蓝色部分), c 1 c_1 c1 的值为 1,输出的所有值都需要计算损失;由于关键点对象包含在一个框中,该框的中心即为关键点对象的位置,所以若为关键点对象(上图红色部分)则后面姿态对象的关键点坐标值不需要计算损失,当没有物体时(上图绿框), p 0 p_0 p0 为 0,后面所有值都不需要计算损失
关键点对象和姿态对象的理解
- 关键点对象并不包含任何关于人或姿态的信息,所以在使用自底向上方法来做姿态估计时需要将这些关键点解析成人体姿态;而姿态对象允许神经网络学习这些关键点的空间关系,从而可以直接用于姿态估计
- 从上图可以看出,关键点对象存在于姿态对象的一个子空间中。因此,KAPAO 将网络设计为通过一个共享的 network head 同时检测出姿态对象和关键点对象,从而最小化计算开销
- 论文中提出
越精确的关键点对象融合到姿态检测中,越能提高人体姿态预测的精度,个人认为关键点对象在某种意义上可能为姿态对象的另一种模态,通过模态的融合,从而提高精度
边界框和关键点计算
- 边界框 ( t ^ x , t ^ y , t ^ w , t ^ h ) (\hat{t}_x, \hat{t}_y, \hat{t}_w, \hat{t}_h) (t^x,t^y,t^w,t^h) 计算
t ^ x = 2 σ ( t ^ x ′ ) − 0.5 t ^ y = 2 σ ( t ^ y ′ ) − 0.5 t ^ w = A w s ( 2 σ ( t ^ w ′ ) ) 2 t ^ h = A h s ( 2 σ ( t ^ h ′ ) ) 2 \begin{aligned} & \hat{t}_x = 2\sigma(\hat{t}_x^{'}) - 0.5 \\ & \hat{t}_y = 2\sigma(\hat{t}_y^{'}) - 0.5 \\ & \hat{t}_w = \frac{A_w}{s}(2\sigma(\hat{t}_w^{'}))^2 \\ & \hat{t}_h = \frac{A_h}{s}(2\sigma(\hat{t}_h^{'}))^2 \end{aligned} t^x=2σ(t^x′)−0.5t^

本文介绍了一种创新的人体姿态估计算法KAPAO,它基于YOLOv5,不使用热图,同时检测关键点对象和姿态对象,通过融合提升精度与速度。论文对比了单阶段与双阶段方法,强调了KAPAO在拥挤场景的优势和在Microsoft COCO数据集上的优秀性能。
最低0.47元/天 解锁文章
3万+

被折叠的 条评论
为什么被折叠?



