你用 DETR 做 8 类检测,每张图平均约 40 个目标。训练了 300 epoch,mAP 只有 0.40,小目标 AP 只有 0.12,收敛曲线到 200 epoch 才基本平。团队里有人提议「把 Hungarian 匹配 cost 里的分类项权重调大」,另一个人提议「反正 DETR 就是要训 500 epoch,再加 200 epoch 就行」。请分别判断这两个建议,并给出你会从哪几个环节改、每个环节的预期收益和副作用。
面试官在考什么
判断候选人是否真正理解 DETR 的 one-to-one 匹配带来的稀疏监督问题,以及匹配 cost 与训练 loss 的区别,能否把「收敛慢/小目标差」对应到具体结构或训练策略上而不是玄学调参。
回答框架 · 前两步
- 问题根因是 one-to-one 匹配:每张图每个 GT 只匹配一个 query,正样本监督信号极稀疏,直接导致收敛慢、对密集目标和长尾类不友好,这也是原论文需要很长 epoch 的主要原因。
- 匹配 cost 与训练 loss 不是同一套:cost 用于选匹配对,loss 用于反向传播;调 cost 里的分类权重会改变匹配结果,要观察匹配是否在训练中频繁切换(匹配不稳定会让收敛更差)。单纯加 epoch 是有效的但收益递减,成本高,应作为兜底而不是首选。
还有 3 条答案要点、 3 层追问、 5 个常见坑, 以及针对你简历的追问路径,在定制报告里。
延伸阅读
想看这个方向的整体准备路线? 进入「CV 与多模态」方向页
同一能力域的其他题
- 你用 YOLOv5s 训一个 4 类缺陷检测(输入 640×640,8000 张训练图),验证集整体 mAP@0.5=0.82,但尺寸在 16~24px 的小目标那一类占比 12%、AP 只有 0.31。部署在边缘设备上,batch=1 时单帧 22ms,延迟预算是 30ms。现在要求你把小类的 AP 提上去且不能突破延迟预算。请给出你的排查顺序,以及每一步具体要动哪个配置/参数、预期效果和验证方式。
- 某产线质检场景:6 路 1080p 摄像头,每路需要 25 FPS,合计 150 FPS 吞吐;检测 5 类缺陷,其中最小缺陷在 1080p 画面里约 20×20 像素;可用一张约 100 TOPS 的推理卡;单路单帧延迟预算 40ms,其中预处理+后处理实测已占 8ms。请给出你会选 YOLO 哪个版本、哪个尺寸档,推理预算怎么算,小目标怎么保证,以及你打算用什么指标证明方案达标。
- 团队在边缘 SoC(INT8 约 4 TOPS,attention 类算子支持很差)上跑一个量产的实时检测模型,现状是 1080p 输入下 30ms、mAP 0.42。硬件不能换,业务要求端到端 15ms 且 mAP 不低于 0.42。候选路线有三条:(A) 换成 YOLOv8/v10 这类较新版本;(B) 保留现有 anchor-based 结构,只改 backbone/neck 和输入策略;(C) 降输入分辨率,再级联一个只跑 ROI 的二阶段补检。请给出你的技术判断:你会用哪些判据来选路线,两周内怎么做出可辩护的决策,以及怎么让算法、部署、业务三方都接受这个结论。
- YOLOv3 常被描述为“三个尺度预测”。假设输入 416×416,主干输出 13×13、26×26、52×52 三个尺度的特征图,每个格点配 3 个 anchor,检测 80 类。请回答:(1) 一张图总共输出多少个预测框?(2) 每个预测框的向量是多少维、每一维分别代表什么?(3) 为什么是小尺寸的特征图负责大目标,而不是反过来?
- 你接手一个 Faster R-CNN(ResNet-50 + FPN)检测项目,12 类,数据里存在宽高比约 1:8 的细长目标。RPN 使用默认的 3 个 scale × 3 个 ratio 的 anchor,输入 800×1333。你测出 RPN 在 IoU=0.7 阈值下召回只有 0.55,而送到 ROI head 的 proposal 里正样本比例只有 8%。团队里有人建议「把 RPN 的正负样本比例从 1:3 改成 1:1,再把 batch size 调大」。请评估这个建议,并说明你会改哪些参数、依据是什么、怎么验证改了以后 RPN 而不是 head 变好了。
- 一个离线批处理任务:20 万张图,30 类,目标普遍偏小且同类目标常成簇叠在一起(一张图里同类可叠 20 个以上),允许 8 卡跑 12 小时,评测只看精度不看延迟。团队有人提议用 YOLO 一把梭,你会不会改用 Faster R-CNN?说明判断依据,以及如果用它,RPN 的 anchor 和 ROI 采样你会怎么配。