The Center of Attention: Center-Keypoint Grouping via Attention for Multi-Person Pose Estimation

article/2025/9/10 8:32:45

在这里插入图片描述

该论文发表于ICCV2021

本文是将Transformer应用于关键点分组的创新工作。实际上是自底向上方法中分组操作的优化,利用Transformer进行关键点分组,达到端到端训练与加快模型推理速度的效果。并且,在拥挤图像中,该方法能够拥有更好的效果,以此,探索到注意力机制在关键点分组上的潜力。

摘要:

本文提出了一种利用人体中心点分组,基于注意力机制的框架从一组未划分人体实例的关键点与人体中心点坐标预测估计人体姿态。该方法使用了transformer来获取所有检测到的关键点和中心点的上下文感知嵌入以此直接进行关键点分组。目前的大多数自底向上方法依赖于推理过程中不参与网络训练的聚类操作,本文方法使用了一种完全不同于之前聚类操作的注意力机制进行关键点分组,以此将分组操作与关键点检测一起端到端训练,该方法再提升精度同时具有更快的推理性能。

Introduction:

该节主要分为三个部分讲述:1、研究背景及现状(提出问题)2、研究方法及目标(解决方案) 3、贡献(问题解决的效果)

1、研究背景、研究现状:
目前2D人体姿态估计方法划分为自底向上与自顶向下两种模式。自上而下将人体姿态估计问题划分为:1)识别人(分组) 2)识别单人姿态。(检测关键点)该方法使用单人目标检测器,会在严重遮挡的情况下,出现大幅的性能下降。自底向上方法分为两个步骤:1)关键点检测 2)关键点分组 该方法不依赖于人体目标检测,能够同时处理图像当中的整个关键点集合,使得能够在遮挡情况下优于自顶向下方法。但目前自底向上方法中的分组方法依然有着非常显著的缺点:1)是不参与训练的后处理操作。2)速度慢。
关键点分组问题可以表征为一个图优化问题,各个关键点作为节点,边权值用于表征它们属于同一人体的可能性。因此目前的一些分组方法包括线性规划、图聚类等等,但是这些方法都存在一个问题,它们本身是想要学习一个关键点之间的联系,但实际上只是一个独立于训练学习过程的算法,网络本身并未学习分组联系。
目前的一阶段方法是自底向上方法的一种优化,一般的处理流程为:1)预测人体实例根节点 2)预测其他关键点相对于根节点的偏移。该方法不使用二阶段自底向上方法的分组聚类操作,能够加快模型推理速度。但是,偏移量学习无法有效建模长距离依赖其受限于尺度变化和遮挡,它们的准确性也明显较低。之前的一些单阶段工作都需要很多额外的优化操作。
2、研究方法、研究目标:
不同于一阶段方法中的回归偏移量学习,作者提出了一种CenterGroup方法使用注意力机制来进行人体中心点与关键点之间的匹配。该方法既保留了自底向上方法中关键点预测热图的准确性,又能够与一阶段方法保持相当的推理速度,该方法端到端训练且推理速度快。
首先作者通过热图回归得到一组人体中心点与所有关键点,然后,将该中心点与关键点输入Transformer中,以此输出embeddings,输出的embedding用以进行关键点分组,使人的中心点与属于该人体实例的关键点的注意力得分最大化。
在这里插入图片描述
3、贡献:
1)提出了一个使用多头注意力进行关键点分组的方法,该方法可以进行端到端训练。
2)使用Transformer来编码关键点与中心点之间的相互依赖关系一次得到一个具有上下文增强效果的embeddings,有效提高了方法的有效性。
3)在端到端训练的单阶段方法中,该方法取得了SOTA,且速度比SOTA 2D姿态估计方法相比提高了2.5倍。

Method

在这里插入图片描述
该方法输入一个多人RGB图像,使用HigherHRNet作为特征提取骨干网络预测一组关键点与人体中心点热图,将该热图进行位置编码后送入Transformer的编码器,输出一组包含了上下文感知信息的embeddings,最后将这些embeddings输入注意力模块中用以将关键点分配给各个人体中心点。
总体网络架构分为以下三个部分:
1. Keypoint and center detection.
使用HigherHRNet得到一组关键点与中心点热图,输出是一系列位置数量的高评分关键点和中心点检测坐标。
2.Encoding keypoints and centers.
将检测出的关键点和中心点坐标映射到骨干网络最后一层卷积层以提取相应特征,并编码其空间位置的embeddings提供给Transformer编码器,产生具有上下文信息的embeddings。
3.Keypoint grouping.
利用前一阶段获得的embeddings,计算人体中心点与各关键点之间的点积注意力得分,对其进行归一化以此进行分配。
![在这里插入图片描述](https://img-blog.csdnimg.cn/58b5ae4be880466e891cc536bc7857dc.png在这里插入图片描述

分组模块:中心点嵌入作为Q,各关键点嵌入结合关键点分类标签编码作为K,V

Result

在这里插入图片描述
【思考】
事实上,从近两年2D多人姿态估计方法的工作来看,都从两个角度去优化
1、识别人(自顶向下方法中为ROI裁剪,自底向上方法中为分组)
本文方法与FCOS(CVPR2021)、解构实例网络(CVPR2022)等。对于识别人来说,需要明确关系,多用注意力方式强化特征提取等以更清楚划分人。
2、识别姿态(关键点检测)
DEKR(解构关键点回归 CVPR2021) SWAHR(CVPR2021)、LOGO-CAP(CVPR2022)等。对于关键点检测来说,需要集中注意关键点区域等优化可见关键点检测精度,需要强化建模关节关系推断不可见关键点。
且目前的一系列方法都有朝单阶段走的趋势。不把分组与检测隔离开,以达到速度和精度上的提升,保留更多的上下文信息。


http://chatgpt.dhexx.cn/article/ULrnHWiD.shtml

相关文章

计算机视觉论文速递(六)GANet: A Keypoint-based Global Association Network for Lane Detection 基于关键点建模的全局关联网络

计算机视觉论文速递(六)GANet: A Keypoint-based Global Association Network for Lane Detection 基于关键点建模的全局关联网络 1. 摘要2. 方法动机3. 方法介绍3.1 车道线构建-全局关键点关联3.1.1关键点预测3.1.2 偏移量预测3.1.3 起始点采样 3.2 车道…

torchvision使用keypoint rcnn 进行人体关键点定位

系统:Windows 11 pytorch版本:1.11.0 torchvision版本:0.12.0 使用图片地址:vision/person1.jpg at main pytorch/vision GitHub 使用代码: import torch import torchvision.transforms from torchvision.model…

CenterNet: Keypoint Triplets for Object Detection

论文地址:https://arxiv.org/pdf/1904.08189.pdf 在本文中,作者将一个对象建模为一个单点,即其包围框的中心点。并使用关键点估计来找到中心点,并回归到所有其他对象属性,如大小、3D位置、方向,甚至姿势。C…

COCO数据集keypoint部分

COCO数据集总体格式如下: {"info": {...},"licenses": [...],"images": [...],"annotation": [...],"categories": [...], }coco数据集的使用: from pycocotools.coco import COCO import matplotl…

Rethinking Keypoint Representations: Modeling Keypoints and Poses as Objects for Multi-Person Human

该论文发表于ECCV2022 题目:重新思考关键点表征方法:将关键点和人体姿态作为目标建模以进行多人姿态估计 Abstract In keypoint estimation tasks such as human pose estimation,heatmap-based regression is the dominant approach despite possess…

[1] A Keypoint-based Global Association Network for Lane Detection

A Keypoint-based Global Association Network for Lane Detection 0. 摘要 概括车道线检测方法: (1)基于Anchor定位的方法,自顶向下根据路线图把预设定的Anchor回归到车道线上。缺点是对复杂车道线不够灵活; &#…

cv::KeyPoint中response的介绍

1. Opencv中的KeyPoint类介绍 KeyPoint类的构造函数如下: KeyPoint(); KeyPoint(Point2f _pt, float _size, float _angle-1, float _response0, int _octave0, int _class_id-1); KeyPoint(float x, float y, float _size, float _angle-1, float _response0, int _octave0…

11种Anchor-free目标检测综述 -- Keypoint-based篇

点击上方“3D视觉工坊”,选择“星标” 干货第一时间送达 导读 anchor-free目标检测算法分为两种,一种是DenseBox为代表的Dense Prediction类型,另一种则是以CornerNet为代表的Keypoint-bsaed Detection类型,以检测目标关键点为主…

SMOKE: Single-Stage Monocular 3D Object Detection via Keypoint Estimation

动机: in this paper that predicts a 3D bounding box for each detected object by combining a single keypoint estimate with regressed 3D variables. As a second contribution, we propose a multi-step disentangling approach for constructing the 3D b…

《PCL Docs 案例详解》KeyPoint——SIFT 关键点提取

SIFT 关键点提取 本节演示如何检测点云的SIFT 关键点。SIFT 即尺度不变特征变换(Scale-invariant feature transform,SIFT) ,最初用于图像处理领域的一种描述。这种描述具有尺度不变性,可以在图像中检测出关键点,是一种局部特征描述。 完整…

OpenCV中KeyPoint类

https://blog.csdn.net/u010821666/article/details/52883580 Opencv中KeyPoint类中的默认构造函数如下: CV_WRAP KeyPoint() : pt(0,0), size(0), angle(-1), response(0), octave(0), class_id(-1) {} 现分析各项属性 pt(x,y):关键点的点坐标; si…

Anchor-free目标检测综述 -- Keypoint-based篇

早期目标检测研究以anchor-based为主,设定初始anchor,预测anchor的修正值,分为two-stage目标检测与one-stage目标检测,分别以Faster R-CNN和SSD作为代表。后来,有研究者觉得初始anchor的设定对准确率的影响很大&#x…

Opencv中特征点Keypoint的解读(特征点与坐标的相互转换)

Opencv中特征点Keypoint的解读 特征点的生成特征点到坐标的转换坐标到特征点的转换 在我们学习特征点检测时,使用特征点检测器,比如ORB和SIFT生成特征点(FAST和SURF好像已经申请专利,较新版本可能用不了),通常生成的特征点形式是一…

COCO数据集Keypoint标注格式梳理和使用COCO-Annotator在自有数据集上进行标注

这里写自定义目录标题 COCO数据集Keypoint标注格式COCO数据集官网Keypoint Detection关键点检测统一数据格式Keypoint标注 使用COCO-Annotator标注自有数据集在Ubuntu 18.04上安装COCO-Annotator安装Docker和Docker-Compose安装COCO Annotator启动COCO Annotator使用COCO Annot…

OpenCV学习之KeyPoint

OpenCV中CV_EXPORTS类别KeyPoint与KeyPointsFilter头文件分析 用OpenCV一段时间了,说实话KeyPoint接触也算比较多,一直没有时间对其数据结构进行分析。今天打开源码对其keypoint.cpp文件进行简单分析一下:keypoint.cpp主要包含两个类KeyPoint…

ubuntu引导删除+win10引导修复

Windowsubuntu双系统,删除安装linux磁盘后没有删除其引导,删其引导的步骤为 使用快捷键winx,打开Windows PowerShell(管理员)(A),依次输入如下命令: 打开diskpart diskpart 列出系统中所有的磁盘 list disk 选择…

win10+ubuntu18.04 双系统修复ubuntu启动引导

win10ubuntu18.04 双系统修复ubuntu启动引导 因为windows是不能引导linux的,而每次win10升级或恢复都会将linux的启动引导覆盖掉,导致无法进入linux, 所以一直就禁止了win10更新.这几天win10出了点小毛病,所以就狠下心来恢复了系…

ubuntu 双系统启动引导修复

1、 准备一个安装U盘,插入电脑开机>选择U盘启动>选择试用Try ubuntu without install。 2、 进入系统后,用CtrlAltT快捷键打开终端,获取root权限,执行以下命令: sodu passwd sudo apt-get install s…

win10+ubuntu双系统,重装win10后修复ubuntu引导的方法

笔记本型号:联想拯救者Y7000P 2019版 操作系统:Windows 10Ubuntu 18.04 LTS 问题:重装系统后发现没办法进入到Ubuntu 解决办法: 首先,我们需要准备一个Ubuntu安装U盘,也就是我们之前进行Ubuntu系统安装…

Windows\Ubuntu修复UEFI引导

目录 1、修复Windows引导2、修复Ubuntu的引导 1、修复Windows引导 修复Windows的EFI引导需要使用到的工具为大白菜装机工具,官网是http://www.winbaicai.com/。使用大白菜制作好装机工具以后,重启选择U盘启动(一定要选“UEFI:你的…