本文为 RT-DETR 改进系列纯净发布稿写法采用模块化技术博文形式先讲痛点再讲结构再给配置、训练方式、实验表格和注意事项。全文仅保留技术正文便于直接发布。摘要本文围绕2D 轻量解码展开。该版本属于结构裁剪方向目标是在 RT-DETR 端到端检测框架中完成可复现、可对照、可训练的结构设计。相比只给模型文件本文更关注为什么这样改、改在什么位置、如何训练、如何做消融以及实验时应该重点观察哪些指标。一、为什么要做这个改进RT-DETR 在保持端到端检测优势的同时颈部多尺度融合仍然会带来一定计算开销。2D 版本的核心思想是减少一次下采样融合路径将解码器输入重组为更短的多尺度链路从而优先压低 neck 端的计算量和延迟。对于目标检测任务来说结构改进不能只看单次训练的 mAP还要看参数量、计算量、显存占用、FPS、收敛速度以及小目标表现。尤其是 RT-DETR 这类端到端检测器解码器输入特征的质量会直接影响最终预测框和类别分数。二、核心思想2D 轻量解码不是简单删层而是围绕解码器输入做结构重组。它保留 P3/P4 与高层语义特征的有效连接同时去掉一段额外的下采样、拼接和 RepC3 处理让 RTDETRDecoder 直接接收更短路径上的多尺度特征。可以把这篇文章的核心理解为一句话轻装上阵实时优先。对比维度关注内容实验观察点精度mAP50、mAP50-95、召回率是否稳定高于基线速度FPS、单张推理耗时是否适合实时检测复杂度Params、GFLOPs、显存是否增加部署压力稳定性多次训练波动是否容易复现三、网络结构变化主要变化发生在 head/neck 后半段原始基线包含第二次 downsample_convs.1、cat Y5 和 pan_blocks.12D 版本移除这段路径并把 RTDETRDecoder 的输入调整为 [[21, 24, 12]]。输入图像 | Backbone 提取 P3/P4/P5 多尺度特征 | Hybrid Encoder / Neck 特征融合 | 2D 轻量解码 | RTDETRDecoder 端到端解码 | 输出预测框、类别和置信度关键位置如下层号位置模块/结构说明3backbone-# This variant ports the corresponding YOLO26 improvement into the RT-DETR neck/backbone while preserving RTDETRDecoder.48head/neckRTDETRDecoder- [[21, 24, 12], 1, RTDETRDecoder, [nc]] # RT-DETR 2-downsample neck decoder inputs四、YAML 配置片段本文对应配置文件ultralytics/cfg/models/rt-detr/rtdetr-l-2D.yaml。001:002:# Ultralytics RT-DETR-l hybrid object detection model with P3/8 - P5/32 outputs003:# This variant ports the corresponding YOLO26 improvement into the RT-DETR neck/backbone while preserving RTDETRDecoder.004:005:# Parameters...046:-[-1,3,RepC3,[256]]# F4 (24), pan_blocks.0047:048:-[[21,24,12],1,RTDETRDecoder,[nc]]# RT-DETR 2-downsample neck decoder inputs与基线配置的差异摘录如下--- rtdetr-l.yaml current.yaml -8,7 8,7 -# RT-DETR-l backbone (base) # RT-DETR-l backbone (2D) -45,8 45,4 - - [-1, 1, Conv, [256, 3, 2]] # 25, downsample_convs.1 - - [[-1, 12], 1, Concat, [1]] # cat Y5 - - [-1, 3, RepC3, [256]] # F5 (27), pan_blocks.1 - - - [[21, 24, 27], 1, RTDETRDecoder, [nc]] # Detect(P3, P4, P5) - [[21, 24, 12], 1, RTDETRDecoder, [nc]] # RT-DETR 2-downsample neck decoder inputs五、训练方式Python 训练入口如下fromultralyticsimportRTDETR modelRTDETR(ultralytics/cfg/models/rt-detr/rtdetr-l-2D.yaml)resultsmodel.train(datacoco128.yaml,epochs1000,imgsz640,optimizerMuSGD,)命令行训练方式如下yolo detect trainmodelultralytics/cfg/models/rt-detr/rtdetr-l-2D.yamldatacoco128.yamlepochs1000imgsz640optimizerMuSGD如果训练自己的数据集只需要把datacoco128.yaml改成自己的数据集配置文件即可。六、实验记录模板模型配置文件ParamsGFLOPsmAP50mAP50-95FPS备注RT-DETR-lrtdetr-l.yaml待测待测待测待测待测基线RT-DETR 2D 轻量解码rtdetr-l-2D.yaml待测待测待测待测待测本文改进建议再补充一张小目标统计表模型AP-smallAP-mediumAP-largeRecall误检变化基线待测待测待测待测待分析改进待测待测待测待测待分析七、消融实验建议编号实验设置目的A0原始rtdetr-l.yaml建立统一对照A1rtdetr-l-2D.yaml验证单模块收益A2相同配置增加训练轮次判断是否只是收敛速度变化A3更换输入尺寸观察小目标和速度变化A4导出部署模型检查推理端真实速度八、注意事项不建议一次叠加多个模块否则无法判断收益来自哪里。训练前先确认模型能正常构建和前向传播。实验记录必须固定数据集划分、输入尺寸、训练轮次和增强策略。如果出现通道不匹配优先检查 YAML 中 RTDETRDecoder 的输入层索引。如果 FPS 没有提升需要进一步检查导出格式、推理后端和 batch 设置。九、总结2D 轻量解码是 RT-DETR 改进系列中的第 2 篇。本文围绕结构裁剪展开重点不是堆砌模块名称而是把改进动机、结构位置、训练入口和消融方式讲清楚。后续只要保持同一套实验条件就可以把该版本与更多模块进行公平对照。关键词RT-DETR,轻量化,目标检测,实时检测