Faster R-CNN 的 RPN 在特征图每个位置放 3 种尺度×3 种长宽比共 9 个 anchor。输入是 800×600 的图像,主干下采样 16 倍得到约 50×38 的特征图。请回答:(1) 一共生成多少个 anchor?(2) 训练 RPN 时,一个 anchor 被判为正样本、负样本、直接忽略的条件分别是什么?(3) 正样本数量远少于负样本,训练时怎么处理?
面试官在考什么
判断候选人是否理解 RPN 的 anchor 机制与训练样本分配,而不是只会画 Faster R-CNN 的整体框图。
回答框架 · 前两步
- anchor 数 = 50×38×9 ≈ 17100 个(写成 50×38×9 即可)
- 正样本:与某个 GT 的 IoU 最大,或与任一 GT 的 IoU>0.7;负样本:与所有 GT 的 IoU 都<0.3;IoU 落在 0.3~0.7 之间的 anchor 直接忽略、不计 loss
还有 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 采样你会怎么配。