跳转至

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 定义为

\[KS=\exp\left(-\frac{d^{2}}{2s^{2}\kappa^{2}}\right)\]

其中 \(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}\),代回上式即可解出位移幅度

\[\alpha_{pose}=s\kappa\sqrt{-2\ln(KS)}\]

于是「造查询」被拆成先抽相似度、再反解距离两步:正查询从 \(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 之间的关键点相似度,于是损失变成

\[\mathrm{KSVF}(q,\tilde c)= \begin{cases} -q\left(q\log \tilde c+(1-q)\log(1-\tilde c)\right), & q>0\\[4pt] -\alpha\,\tilde c^{\gamma}\log(1-\tilde c), & q=0 \end{cases}\]

其中 \(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、动作识别前端)有直接参考价值。