DETRPose: Real-Time End-to-End Multi-Person Pose Estimation via Modified Transformer Decoder and Novel Denoising Keypoints¶
会议: ECCV2026
论文: ECCV 原文
代码: https://github.com/SebastianJanampa/DETRPose
领域: 人体理解 / 多人 2D 姿态估计
关键词: 多人姿态估计, 实时推理, DETR, 去噪训练, 关键点相似度
一句话总结¶
DETRPose 把 D-FINE 的实时检测架构搬到多人 2D 姿态估计上,用基于关键点相似度(KS,即 COCO 的 OKS)的去噪关键点策略、KSVF 损失和轻量 Pose-LQE 分类头改造 GroupPose 解码器,得到首个端到端实时 Transformer 姿态模型:COCO val 上 DETRPose-X 达 73.3 AP,DETRPose-L 在 test-dev 上 71.2 AP / 4.66 ms,比 GroupPose-R50 快一个数量级以上且少 37% 参数。
研究背景与动机¶
多人 2D 姿态估计要为图中每个人定位 17 个身体关节,它是动作识别、2D-to-3D 人体姿态估计、VR 等下游任务的预处理环节,所以延迟和精度同样重要。当前跑得快的方法基本落在两类:自顶向下方法先检测出每个人、裁剪出各自区域再做姿态估计,精度通常更高,但推理时间随图中人数线性增长;单阶段方法(YOLOv8-Pose、YOLO11-Pose、RTMO)一次前向就同时出人和关键点,速度与精度的折中做得不错,代价是推理时依赖非极大值抑制(NMS)做后处理,而 NMS 的开销随检测框数量浮动,延迟因此不稳定。
DETR 系方法(PETR、QueryPose、ED-Pose、GroupPose)用查询加匈牙利匹配取代了 NMS,延迟恒定、精度也不弱,但它们无一例外把精度排在速度前面:在 COCO test-dev 上,ED-Pose-Swin-L 的推理要 94.11 ms、GroupPose-Swin-L 要 96.77 ms,而 RTMO-L 只要 4.89 ms——差了将近二十倍。与此同时,目标检测领域早就有了 RT-DETR、D-FINE、DEIM 这类实时 DETR 检测器,姿态估计却始终没有一个实时版本,Transformer 姿态模型被挡在实时应用之外。GroupPose 的解码器之所以慢,症结在组自注意力:它要在「同一个人内部的关键点」与「跨人的同类关节」两级之间反复转置张量,打断了张量的内存连续性,这个开销在 FLOPs 上看不出来,却实实在在压在墙上时间上。
本文选择的切入角度是把问题当成「实时 DETR 架构的姿态适配」而不是「再堆一个更强的解码器」:骨干与编码器直接沿用 D-FINE 并用它的 Object365 权重初始化,解码器在 GroupPose 基础上砍掉投影层、接入 D-FINE 的 pre-pose 与 FDR 细化层;更关键的是把两项训练期技术从「框」搬到「关键点」上。其一是去噪:DN-DETR/DINO 用平移、缩放 GT 框的方式构造正负查询来稳定匈牙利匹配,可关键点只是一个点、没有宽高,偏移多远没有天然尺度,ED-Pose 只敢在检测层用去噪框、进入关键点层前就把去噪查询丢掉,GroupPose 索性不做去噪。其二是分类分数:姿态模型没有「物体性」可依靠,需要一个能反映位姿质量的新度量。核心 idea:把 COCO 的关键点相似度(KS/OKS)当作贯穿全文的一把尺子——既用它反解出每个去噪查询该偏移多远,也用它当分类的软标签定义 KSVF 损失,再补一个轻量 Pose-LQE 头把图像内容证据并入分类分数,从而把实例查询数从 100 压到 60,直接削掉「每个关键点都要付一次」的解码器计算量。
方法详解¶
整体框架¶
DETRPose 的输入是一张图,输出是图中每个人的 17 个关键点坐标及其分类分数,全过程一次前向、无 NMS、无后处理分组。模型结构上就是 D-FINE 的「层次化骨干 HGNetv2 + hybrid 编码器 + Transformer 解码器」三件套,骨干与编码器直接沿用 D-FINE 的设计并用其 Object365 预训练权重初始化;真正被改写的是解码器——它把 GroupPose 的组自注意力保留下来(这是不需要专门检测解码层就能同时出人和关键点的关键),同时去掉层内的投影层、接入 D-FINE 的 pre-pose 与 FDR 细化头,并在每一层挂上 Pose-LQE 分类头。
查询是这样构造的:编码器特征图先过一个线性层,选出最可能含人的 top-N 个像素位置;对每个被选中的像素,另一个线性层生成 K 个关键点,把这个人的 K 个关键点的均值当作实例查询(instance query)。因此解码器一共收到 N·(K+1) 个查询,每个关键点都是一个独立查询,这也是后文「减少检测人数能直接省 FLOPs」的根源。解码器的每一层依次做三件事:同一人内部关键点之间的 within-instance 自注意力、同类关节跨人之间的 across-instance 自注意力(这里用注意力掩码把去噪负查询、去噪正查询、预测查询三组互相隔离),以及让所有查询到编码器特征图上取特征的 deformable attention。训练时还会额外注入一批由 KS 采样出来的去噪关键点查询,并用 KSVF 损失监督。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["输入图像"] --> B["HGNetv2 backbone<br/>+ hybrid encoder"]
B --> C["查询选择<br/>top-N 像素 → K 关键点"]
G["去噪关键点<br/>按 KS 采样正负查询"] -->|训练时注入| D["改造的 GroupPose 解码器<br/>组自注意力 + FDR 细化"]
C --> D
D --> E["Pose-LQE 分类头"]
E --> F["实例 + 关键点 + 分类分数"]
D -->|训练监督| H["KSVF 损失<br/>OKS 作软标签"]
关键设计¶
1. 去噪关键点策略:用 KS 反解出一个关键点该被移动多远
DETR 的匈牙利匹配在训练早期极不稳定,DN-DETR/DINO 的解法是往解码器输入里塞一批「加噪的 GT 查询」,让模型学会接受靠近 GT 的查询、拒绝远离 GT 的查询,从而给匹配提供稳定的梯度信号。但已有的去噪技术全部做在框上——框有四个角点,按 GT 的宽高随机平移或缩放就能同时造出正样本和负样本,尺度由框自己的宽高给定。姿态估计的实例是单个关键点,一个点既没有宽高,也不知道该往哪个方向移、移多远;更难的是 17 类关节的空间容差天差地别,眼睛偏 10 像素已是严重错误,髋部偏 10 像素几乎无所谓。ED-Pose 因此只在检测层用 DINO 的去噪框、进入关键点层前就把去噪查询丢掉,GroupPose 则完全不做去噪。
本文的做法是借 COCO 的 OKS 度量把「容差」显式算出来,逐关键点的相似度 KS 定义为
其中 \(d\) 是采样关键点与 GT 关键点的距离,\(\kappa>0\) 是逐关节的衰减常数(取自 COCO 与 CrowdPose 官方评测代码:眼睛小、髋部大),\(s^{2}\) 是该人的分割面积,\(0\le s^{2}\le HW\)。把采样点写成沿随机单位向量 \(\hat n\) 的位移 \(\hat p=p+\alpha_{pose}\hat n\),由于 \(d(p,\hat p)=\alpha_{pose}\),代回上式即可解出位移幅度
于是「造查询」被拆成先抽相似度、再反解距离两步:正查询从 \(U(0.5,1)\) 抽 KS,负查询从 \(U(0.1,0.5)\) 抽 KS,方向 \(\hat n\) 在单位圆上均匀随机,训练时固定用 100 个正查询加 100 个负查询。这样采样的好处是同一套超参对不同关节、不同体型自动缩放:\(s\) 大的实例,同一个 KS 值换算出的绝对位移更大;而 \(\kappa\) 小的关节只要偏一点点 KS 就掉下来。换句话说,去噪查询的「扰动尺度」不是拍脑袋定的超参,而是复用评测指标本身的容差定义,这也是它比「手动设一个固定像素偏移」更稳的原因。去噪组与预测组之间靠注意力掩码隔离:去噪组可以看预测组,预测组不能看回去,去噪组之间也互相屏蔽,避免噪声查询污染真实推理路径。CrowdPose 没有掩码标注,作者用包围框面积近似 \(s^{2}=A_{box}\cdot 0.53\)(0.53 取自 CrowdPose 评测代码)。
2. 改造 GroupPose 解码器:砍掉投影层、用 FDR 细化关键点
GroupPose 的解码器有两个延迟来源。一个是组自注意力本身的结构性开销——它要在关键点级与实例级之间来回转置张量,转置打断内存连续性,所以即便 FLOPs 与 YOLO 系列接近,实际延迟仍然偏高,这也是作者在结论里承认 DETRPose 比同 FLOPs 的 YOLO 更慢的原因。另一个是层内把特征在两级表示之间搬运的投影层,它们不带来新的表达能力,只是维持 GroupPose 原有的张量形状约定。
DETRPose 的改法是「减法 + 换头」:先把这些投影层整体删掉,再接入 D-FINE 的两个组件。pre-pose 层先在细化之前给出一个粗糙的初始关键点预测,作为后续细化的起点;FDR(Fine-Grained Distribution Refinement)层则把关键点坐标回归从「直接回归一个点」改成「回归偏移量的分布并逐层细化」——从 Fig. 3 的图注看,FDR 头对每个关键点输出的是垂直与水平两个方向的偏移。这一改动的作用不只是精度:分布式的表示让每一层只需要做小的增量修正,浅层解码器也能给出可用的结果,这也解释了后文 Table 8 中把 6 层砍到 4 层仍只掉 1.2 AP 而延迟降 13.5%。⚠️ 论文正文没有展开 FDR 在关键点上的具体参数化形式(分布的分箱数、逐层细化的具体算子),此处按 D-FINE 原始设计与 Fig. 3 图注理解,细节以原文或官方代码为准。
3. Pose-LQE 分类层:从关键点所在位置取内容特征来修正分类分数
DETR 系检测器可以靠「物体性」或定位质量估计(LQE,如 GFLv2、D-FINE 解码器里的同类层)来评价一个查询靠不靠谱,姿态模型没有这个抓手——它不预测框,预测的是一组点,一组点「像不像一个人」很难从回归量本身直接读出。分类分数因此更容易虚高,而虚假的高分查询既会污染匈牙利匹配,也会在推理时挤掉真正的实例。
Pose-LQE 的思路是在关键点处补一次「内容证据的取证」:在编码器空间分辨率最高的那张特征图上,按每个关键点的预测坐标取特征,得到一条内容向量;这条向量不直接全用,而是只保留响应最强的 top-k 个通道——相当于让网络自己挑出对这类型关节最有判别力的少数通道,再过一个线性层,与传统分类分支的输出相加得到最终分类分数。这样分数同时看到三样东西:查询本身、它预测出的关键点位置、以及那个位置在图像上真实存在的证据。设计上刻意保持极轻:只在最高分辨率的单张特征图上逐点采样、只保留 top-k 通道,所以几乎不增加延迟(消融中加上它延迟只从 4.58 ms 升到 4.66 ms)。这一点很关键,因为论文的出发点就是实时性,任何「加精度但加延迟」的组件在这里都是不可接受的。
4. Keypoint Similarity VariFocal 损失:让分类分数等于「这个人的位姿有多准」
由于不预测包围框,DETRPose 用不了基于 IoU 的定位质量损失,而 RT-DETR/D-FINE 那套 Varifocal Loss 的软标签正是 IoU。作者把它换成了 OKS——分类目标不再是 0/1,而是这个预测与 GT 之间的关键点相似度,于是损失变成
其中 \(q\) 是预测与 GT 的 OKS,\(\tilde c\) 是预测分类分数,\(\alpha=0.25\)、\(\gamma=2.0\) 控制低相似度样本的权重。正样本项的权重就是 \(q\) 本身:一个只对上一半的位姿,它的分类目标也只有 0.5,模型被拉着把「分数」和「位置准不准」对齐,而不是把所有匹配上的查询都推到 1;负样本项用 \(\tilde c^{\gamma}\) 压制已经分得很低的负样本的梯度,避免海量背景查询主导训练。这样做最直接的收益是假阳性大幅减少——分数不再虚高的副作用是可以少要人:所需实例查询数从 100 降到 60,而每个关键点都是一个查询,查询数直接乘进解码器 FLOPs(消融中 FLOPs 从 121.6 G 降到 107.1 G、延迟从 5.24 ms 降到 4.58 ms)。「损失函数质量 → 分类分数可靠性 → 查询数量 → 计算量」这条传导链是这篇论文里最值得复用的一环。
一个完整示例¶
举一个去噪关键点的具体采样:假设图中某人的分割面积 \(s^{2}=20000\) 像素(\(s\approx141.4\)),为便于口算取 \(\kappa=0.1\)(⚠️ 真实的 \(\kappa\) 来自 COCO/CrowdPose 官方逐关节常数而非 0.1,这里只用来说明量级)。那么:
- 抽到 \(KS=0.9\) 时,\(\alpha_{pose}=141.4\times0.1\times\sqrt{-2\ln 0.9}\approx 6.5\) 像素——这是正查询,采样点落在 GT 附近 6.5 像素内;
- 抽到 \(KS=0.2\) 时,\(\alpha_{pose}=141.4\times0.1\times\sqrt{-2\ln 0.2}\approx 25.4\) 像素——这是负查询,采样点被推到 GT 之外 25 像素;
- \(KS=0.5\) 正好是正负查询的分界,对应的位移是 \(\approx16.6\) 像素。
方向 \(\hat n\) 从单位圆上均匀取,所以同一个手腕关节在训练中会被采样出各个方向、各个距离的正负查询;换成 \(s\) 更大的人,同一组 KS 值给出的位移按比例放大,而换成 \(\kappa\) 更小的关节(如眼睛),同样的 KS 阈值对应的位移会明显收缩。这就是「用指标当尺子」的直观含义。
损失函数 / 训练策略¶
训练用 AdamW,batch size 16,4 张 Tesla V100。数据增强沿用 DEIM 的协议:水平翻转、颜色抖动、mosaic 拼接、mix-up、多尺度采样,但不使用 DEIM 的余弦退火策略。骨干与编码器按 RTMO 的迁移学习策略,用 D-FINE 的 Object365 预训练权重初始化。四个型号的超参见下:解码器层数 3/4/6/6,隐藏维度 256/256/256/384,骨干 HGNetv2-B0/B2/B4/B5,训练轮数 96/60/48/48,学习率统一 1e-4(骨干学习率 1e-4/1e-5/1e-5/5e-5),检测人数固定 60。匹配仍走匈牙利匹配,但匹配代价不含框,只能由关键点侧的相似度与坐标回归误差构成(⚠️ 论文未展开匹配代价的具体构成,以原文或代码为准)。推理时输入统一缩放到 640×640,延迟用 TensorRT FP16 在 RTX A5500 上测量,并采用 Roboflow 的基准工具报告中位数而非均值——这个细节很重要,因为 NMS 类方法的延迟波动正是本文要回避的问题。
实验关键数据¶
主实验¶
COCO 上的对比(延迟均为 TensorRT FP16、RTX A5500;带 * 的 ED-Pose/GroupPose 用 800×1300 输入,延迟不可与 640×640 的模型直接对齐):
| 模型 | 骨干 | 参数量 | 延迟 (ms) | FLOPs (G) | AP (val) | AP (test-dev) |
|---|---|---|---|---|---|---|
| YOLOv8-X-Pose | - | 69.4M | 5.23 | 263 | 67.3 | - |
| YOLO11-X-Pose | - | 58.8M | 4.93 | 203 | 67.2 | - |
| RTMO-L | CSPDarknet | 44.7M | 4.89 | 68 | 72.4 | 71.6 |
| ED-Pose-R50* | ResNet-50 | 48.0M | 68.10 | 591 | 71.6 | 69.8 |
| GroupPose-R50* | ResNet-50 | 52.4M | 70.44 | 614 | 71.5 | 70.2 |
| ED-Pose-Swin-L* | Swin-L | 218.4M | 94.11 | 1954 | 74.2 | 72.7 |
| GroupPose-Swin-L* | Swin-L | 219.6M | 96.77 | 1977 | 68.1 | 74.8 |
| DETRPose-S | HGNetv2-B0 | 11.5M | 2.39 | 33 | 67.0 | 66.5 |
| DETRPose-M | HGNetv2-B2 | 20.8M | 3.47 | 67 | 69.4 | 68.5 |
| DETRPose-L | HGNetv2-B4 | 32.8M | 4.66 | 107 | 72.7 | 71.2 |
| DETRPose-X | HGNetv2-B5 | 73.3M | 7.36 | 240 | 73.3 | 72.2 |
跨数据集结果(CrowdPose test / OCHuman test,OCHuman 上所有模型都只在 COCO 训练集上训练,因此是纯粹的分布外测试):
| 数据集 | 模型 | 参数量 | 延迟 (ms) | FLOPs (G) | AP |
|---|---|---|---|---|---|
| CrowdPose | RTMO-L | 44.5M | 4.68 | 68 | 73.2 |
| CrowdPose | ED-Pose-R50* | 48.0M | 66.91 | 578 | 69.7 |
| CrowdPose | ED-Pose-Swin-L-5S* | 218.6M | 367.45 | 3048 | 76.5 |
| CrowdPose | DETRPose-L | 32.7M | 4.52 | 104 | 73.3 |
| CrowdPose | DETRPose-X | 73.3M | 7.11 | 232 | 75.1 |
| OCHuman | RTMO-L | 44.7M | 4.43 | - | 41.6 |
| OCHuman | GroupPose-R50* | 52.4M | 70.44 | - | 36.6 |
| OCHuman | ED-Pose-Swin-L* | 218.4M | 94.11 | - | 31.2 |
| OCHuman | DETRPose-S | 11.5M | 2.39 | - | 42.2 |
| OCHuman | DETRPose-X | 73.3M | 7.36 | - | 45.8 |
消融实验¶
逐组件消融(DETRPose-L,COCO val,均从零训练):
| 配置 | KSVF | Pose-LQE | 去噪关键点 | 预训练 | AP | FLOPs (G) | 延迟 (ms) |
|---|---|---|---|---|---|---|---|
| ① RT-GroupPose(100 查询) | - | - | - | 无 | 69.9 | 121.6 | 5.24 |
| ② 检测数降到 60 | - | - | - | 无 | 68.9 | 107.1 | 4.58 |
| ③ ②+KSVF | ✓ | 无 | 69.9 | 107.1 | 4.58 | ||
| ④ ②+Pose-LQE | ✓ | 无 | 69.5 | 107.1 | 4.66 | ||
| ⑤ ②+去噪关键点 | ✓ | 无 | 70.0 | 107.1 | 4.58 | ||
| ⑥ KSVF+Pose-LQE | ✓ | ✓ | 无 | 69.6 | 107.1 | 4.66 | |
| ⑦ KSVF+去噪 | ✓ | ✓ | 无 | 70.9 | 107.1 | 4.58 | |
| ⑧ Pose-LQE+去噪 | ✓ | ✓ | 无 | 70.5 | 107.1 | 4.66 | |
| ⑨ 三者全用 | ✓ | ✓ | ✓ | 无 | 71.5 | 107.1 | 4.66 |
| ⑩ ⑨+COCO 权重 | ✓ | ✓ | ✓ | COCO | 71.1 | 107.1 | 4.66 |
| ⑪ ⑨+Obj2Coco 权重 | ✓ | ✓ | ✓ | Obj2Coco | 72.4 | 107.1 | 4.66 |
| ⑫ ⑨+Object365 权重 | ✓ | ✓ | ✓ | Object365 | 72.7 | 107.1 | 4.66 |
去噪关键点的先验信息消融:
| κ 的取法 | s² 的取法 | AP |
|---|---|---|
| 常数 κ=1/(#keypoints) | 框面积近似 \(A_{box}\cdot0.53\) | 71.1 |
| COCO 官方 κ | 框面积近似 | 71.2 |
| 常数 κ | 分割掩码 | 71.3 |
| COCO 官方 κ | 分割掩码 | 71.5 |
关键发现¶
- 三个组件里贡献最大的是去噪关键点:以「检测数降到 60」的 Model 2(68.9 AP)为基准,单独加入 KSVF 到 69.9(+1.0)、单独加入 Pose-LQE 到 69.5(+0.6)、单独加入去噪关键点到 70.0(+1.1),三者合用到 71.5(+2.6 AP)。注意 Model 1(100 查询,69.9)到 Model 2(60 查询,68.9)掉了 1.0 AP,但换来了 14.5 G 的 FLOPs 与 0.66 ms 延迟——这一笔「用 1 个点换实时性」的交易是后面所有组件增益的起点。
- 组合并非单调:KSVF 分别与去噪(70.9)、与 Pose-LQE(70.5)搭配都有效,但去噪与 Pose-LQE 一起用反而回落到 69.6——低于单用去噪的 70.0,也仅与单用 Pose-LQE 的 69.5 基本持平。作者没有解释原因,这是一个值得追问的现象。
- 预训练不是必需:完全不加载预训练权重就有 71.5 AP,反而高于加载 D-FINE 的 COCO 权重(71.1);只有 Object365 权重带来明显增益(72.7)。也就是说 DETRPose 在缺乏大规模预训练数据的自定义 2D 姿态数据集上可以直接训练。
- 去噪先验可以「降级」使用:即便把 κ 设为常数、用框面积近似分割面积(完全不依赖掩码标注),仍能拿到 71.1 AP,比同时用 COCO κ 与掩码的 71.5 只差 0.4。这意味着方法可在没有分割标注的自定义数据集上微调,必要时用 SAM 类模型补掩码还能再加约 0.2。
- 模型可裁剪而无需重训:在训练好的 DETRPose-L 上直接减少解码器层数或查询数,6/5/4/3 层对应 72.7/72.6/71.8/70.6 AP 与 4.66/4.25/4.03/3.69 ms;查询数 60/50/40/30/25 对应 72.7/72.6/72.4/71.9/71.5 AP。25 查询 + 4 层仍有 70.7 AP @ 3.53 ms,精度超过 YOLOv8/11-X 而速度快过 YOLOv8/11-L。作者解释查询数影响小的原因是:COCO 中每张图的人数均值与最大值都远低于 40。
- 分布外泛化是最大亮点:OCHuman 上 DETRPose-S 的 42.2 AP 超过所有对比方法至少 0.6,且比 RTMO-L(41.6 AP)快 1.85 倍;而参数量大得多的 ED-Pose-Swin-L 只有 31.2 AP,说明这些大模型在 COCO 上过拟合。模型缩放上,RTMO 从 S 到 L 只涨 0.7 AP,DETRPose 涨 3.0 AP,说明 DETRPose 的缩放性在分布外数据上更好。
亮点与洞察¶
- 把评测指标反过来当训练信号的尺子:KS/OKS 本来是评测用的相似度,本文用它同时解决了「去噪查询该偏移多远」(反解 α)和「分类的软标签是什么」(KSVF 的 q)两个看似无关的问题。这种「指标即先验」的思路可以迁移到任何自带标准化相似度的任务上——比如 3D 关键点、mesh 顶点、点云配准,只要评测协议定义了容差尺度,就能拿来构造去噪扰动。
- 用损失函数的质量换计算量:KSVF 让分类分数变准,从而允许把实例查询从 100 降到 60,而每个关键点都是查询,所以这一步直接省下 12% FLOPs。把「预测质量的提升」显式折算成「可裁掉的计算」是一个很少被写明的设计动机链条,值得在其他 DETR 变体上复用。
- 关键点去噪是一个被跳过的空白:DN-DETR/DINO 的去噪框技术已经很成熟,但姿态模型要么不用(GroupPose)、要么只在检测层用(ED-Pose)。本文指出「框有四个角点可以缩放、关键点是一个点不能」这个看似简单的障碍其实是空白的原因,然后用相似度度量绕过它。这种「找别人绕过去的坑并给出机制性解法」的选题方式很有参考价值。
- 训练好的模型还能继续当推理旋钮用:层数与查询数可以直接在推理时裁剪而不重训,得到一系列精度—延迟工作点,天然支持弹性推理和 anytime 场景。
局限与展望¶
- 作者承认的局限是延迟仍高于 YOLO 系列:在 FLOPs 相近的情况下 DETRPose 更慢,原因是组自注意力需要多次转置操作、打断张量连续性。这一点在图 1 的实时性对比里表现为曲线位置而非 FLOPs 对比。
- 论文没有给出完整的损失函数清单(除了 KSVF 之外的关键点回归项、匹配代价里各项权重的形式都未展开),复现时需要依赖官方代码。
- 消融里去噪与 Pose-LQE 组合退化、以及「COCO 预训练反而比不预训练低 0.4」这两处现象都没有给出解释,属于分析上的空隙。
- 实验只在 17 关键点的人体姿态上做,没有验证到人脸、手部、动物等关键点定义不同的场景;这类场景的 κ 需要重新标定,能否沿用同一套流程未知。
- 改进方向:若能把组自注意力的两级交互改写成不打断内存连续性的等价算子(例如按关节类型重排布局后做批量注意力),有机会把延迟进一步压到与同 FLOPs 的 YOLO 持平。
相关工作与启发¶
- vs GroupPose:GroupPose 用组自注意力省掉了检测专用解码层,是本文的直接基座,但它不做去噪、解码器里保留了大量投影层,实测延迟 70.44 ms。本文保留其组自注意力结构,去掉投影层并接入 FDR 与 Pose-LQE,把延迟压到 4.66 ms。
- vs ED-Pose:ED-Pose 也用 DETR 做姿态,但采用串行解码器层级——前几层做检测、后几层估关键点,去噪只施加在检测层且随后被丢弃。本文把去噪直接做在关键点上,且不做检测层的显式监督,架构上更简洁。
- vs D-FINE / RT-DETR:这两个是实时 DETR 检测器,本文直接沿用 D-FINE 的骨干、编码器与 FDR 细化层并复用其 Object365 权重,本质上是把「实时 DETR 检测」的成果迁移到「实时 DETR 姿态」,差异在于用 KS 取代 IoU 作为分类与匹配的质量度量。
- vs RTMO / YOLOv8-Pose / YOLO11-Pose:这些单阶段方法依赖 NMS、延迟随人数波动。精度上 DETRPose-L 与 RTMO-L 基本持平(71.2 vs 71.6 AP,test-dev),但参数量少 27%、AR 高 4%;DETRPose-S 用 11.5M 参数匹配 YOLOv8-X-Pose 的 67.3 AP 与 YOLO11-X-Pose 的 67.2 AP(67.0 AP),参数少 81%、快 52%。
评分¶
- 新颖性: ⭐⭐⭐⭐ 去噪关键点、KSVF、Pose-LQE 三个组件单看都是对已有技术的移植与改写,但「用 KS 统一去噪与分类质量」的组合确实填补了实时 DETR 姿态估计的空白。
- 实验充分度: ⭐⭐⭐⭐ 三个数据集、四个规模、组件/先验/可裁剪性三组消融,实时性与参数量报告规范;扣分在于缺少损失函数全貌与两处未解释的消融反常。
- 写作质量: ⭐⭐⭐ 方法与公式讲得清楚,但存在个别内部不一致(CrowdPose 上 ED-Pose-SwinL-5S 的 AP 在摘要写 76.6、表 4 写 76.5;正文称 DETRPose-S/-M 的训练轮数是 RTMO 的「4.5×、9.7× 更多」,按表中 RTMO 700 轮与 156/72 轮的实际关系应为更少),需要读者自行核对。
- 价值: ⭐⭐⭐⭐ 证明了 DETR 系姿态模型可以做到实时且延迟恒定,开源代码,对需要稳定延迟的实时姿态应用(VR、动作识别前端)有直接参考价值。