阅读笔记-YOLO_Pose:Enhancing YOLO for Multi Person Pose Estimation Using Object Keypoint Similarity Loss

YOLO-Pose: Enhancing YOLO for Multi Person Pose Estimation Using Object Keypoint Similarity Loss

原文链接:https://arxiv.org/pdf/2204.06806.pdf

行文结构

摘要

目前算法的问题:

  1. 不是端到端训练,同时无法直接依据姿态检测的指标OKS进行训练,而是使用L1 Loss进行替代。

所提算法允许进行端到端地训练模型并优化 OKS 指标本身。所提出的模型学习在单次前向传递中联合检测多人的边界框及其相应的 2D 姿势。

image-20220525201239786image-20220525201313195
算法可视化对比 :YOLO-pose(左), HigherHRNetW32(右)

上图中HRNet需要先运行一次目标检测网络然后才能对框定的bbox进行姿态估计。

介绍

**2D人体姿态估计:**多人 2D 姿势估计是理解图像中的人类的任务。 给定输入图像,目标是检测每个人并定位他们的身体关节。 由于图像中的人数可变、比例变化、身体部位的遮挡、人体的非刚性以及各种其他原因,推断图像中多人的姿势可能具有挑战性。

提出的姿态估计技术可以很容易地集成到任何运行目标检测的计算机视觉系统中,计算量几乎为零。

YOLO-Pose整体结构

image-20220525204036320

就是相当于YOLOv5在之前的bbox分支基础上重新增加了一个Head去回归目标的姿态。整体的预测向量如下:
$$
\begin{array}{l}
P_{v}=\left{C_{x}, C_{y}, W, H, \text { box }{\text {conf }}, \text { class }{\text {conf }}, K_{x}^{1}, K_{y}^{1}, K_{\text {conf }}^{1}, \ldots\right., K_{x}^{n}, K_{y}^{n}, K_{\text {conf }}}^{n}
\end{array}
$$

其中$n=17$代表需要预测17个人体关键点,每个关键点由位置$x,y$和关键点置信度$K_{conf}$衡量。在推理时保留置信度高于0.5的关键点。

OKS损失计算

$$
\begin{aligned}
\mathcal{L}{k p t s}(s, i, j, k) &=1-\sum{n=1}^{N_{k p t s}} O K S \
&=1-\frac{\sum_{n=1}^{N_{k p t s}} \exp \left(\frac{d_{n}^{2}}{2 s^{2} k_{n}^{2}}\right) \delta\left(v_{n}>0\right)}{\sum_{n=1}^{N_{k p t s}} \delta\left(v_{n}>0\right)}
\end{aligned}
$$

$d_n$表示第$n$个关键点GT与Pred之间的欧氏距离;

$s$表示目标的尺度(也即anchor bbox的尺度),其他描述又说是目标关键点轮廓的面积;

$k_n$表示第$n$个关键点的权重;

$\delta(v_n)$表示关键点可见度符号函数,当真实可见度$v_n > 0$时,$\delta(v_n)$等于1。

SOTA结果对比

image-20220526093441077

L1 Loss和OKS Loss的对比分析

image-20220526093646961

MACs与FLOPs的比较

img