上周在产线部署RT-DETR时遇到个怪事:模型在测试集上mAP高达78%,但产线反馈说“小零件经常漏检,大箱子倒是准得很”。把数据拉出来一看,心里咯噔一下——数据分布严重长尾:大尺寸目标样本几千张,小零件类别只有几十张。模型果然“偏科”了。长尾不是小问题,是目标检测的“慢性病”长尾分布的本质是数据不平衡的极端表现。在RT-DETR这类端到端检测器中,问题会被放大:DETR系列依赖全局注意力,尾部类别的特征在encoder阶段就容易被头部类别淹没。更麻烦的是,匈牙利匹配阶段,尾部类别的查询向量可能根本匹配不到足够正样本去学习。我试过直接拿原始RT-DETR在长尾数据集上训练,结果很典型:头部类别(如“person”、“car”)AP在70%以上,尾部类别(如“fire_extinguisher”、“traffic_cone”)直接掉到个位数。模型把所有稀有类别都预测成了背景或常见类别。改进思路:从数据、损失、结构三路并进数据层面:重采样不是万能药最简单的想法是重采样。但直接对长尾数据过采样小类别,会导致严重的过拟合——就那么几张图反复学,模型只会记住那几个样本的具体纹理。我的做法是混合采样策略:# 自定义采样器,别直接random oversampling