计算机视觉与多模态 面试题
计算机视觉面试题:考什么、怎么准备
CV 岗的面试早就不只问 ResNet 有几层。面试官会顺着你简历里的检测/分割/多模态项目往下挖:数据怎么来、类别不平衡怎么处理、指标为什么这么选、部署时怎么压延迟。答不出取舍,就会被判定为"只会调库"。
这个方向在考什么
- 检测与分割主线的演进:从 R-CNN 到 YOLO 再到 DETR,各自解决了前一代的什么问题
- 数据侧的真实问题:标注噪声、类别极不平衡、小目标、域偏移,以及你实际用了什么手段
- 指标与业务的对齐:mAP 高但线上漏检多,问题通常出在阈值、后处理或数据分布
- 部署约束:量化、剪枝、TensorRT/ONNX,以及精度掉了多少、怎么补回来
最常见的几个坑
- 只讲模型结构不讲数据:面试官问"你的缺陷样本怎么来的"时答不上来
- 把 mAP 当成唯一指标,说不出漏检和误检在业务上的代价差异
- 多模态项目只会说"用了 CLIP",讲不清对齐训练的目标函数
七天准备路线
- 第 1 天把简历里每个 CV 项目按"背景-数据-方案-难点-结果"重写一遍,每个项目准备 3 个可追问点
- 第 2-3 天过一遍检测/分割主线模型的动机,重点准备"为什么换掉上一代"
- 第 4 天补数据侧:不平衡、小目标、标注噪声各准备一个你真实处理过的例子
- 第 5 天补部署:量化/蒸馏/推理框架,准备"精度掉了多少、怎么评估"
- 第 6-7 天用本站题库按方向刷 20 题,重点练追问链,而不是背答案
计算机视觉与多模态高频面试题
- 工业缺陷检测里缺陷样本极少。你简历写"准确率 85%→95%",请说明:类别不平衡你具体怎么处理的?为什么在这种情况下"准确率"往往不是个好指标? · 1-3 年
- 你用 YOLOv5s 训一个 4 类缺陷检测(输入 640×640,8000 张训练图),验证集整体 mAP@0.5=0.82,但尺寸在 16~24px 的小目标那一类占比 12%、AP 只有 0.31。部署在边缘设备上,batch=1 时单帧 22ms,延迟预算是 30ms。现在要求你把小类的 AP 提上去且不能突破延迟预算。请给出你的排查顺序,以及每一步具体要动哪个配置/参数、预期效果和验证方式。 · 1-3 年
- 某产线质检场景:6 路 1080p 摄像头,每路需要 25 FPS,合计 150 FPS 吞吐;检测 5 类缺陷,其中最小缺陷在 1080p 画面里约 20×20 像素;可用一张约 100 TOPS 的推理卡;单路单帧延迟预算 40ms,其中预处理+后处理实测已占 8ms。请给出你会选 YOLO 哪个版本、哪个尺寸档,推理预算怎么算,小目标怎么保证,以及你打算用什么指标证明方案达标。 · 3-5 年
- 团队在边缘 SoC(INT8 约 4 TOPS,attention 类算子支持很差)上跑一个量产的实时检测模型,现状是 1080p 输入下 30ms、mAP 0.42。硬件不能换,业务要求端到端 15ms 且 mAP 不低于 0.42。候选路线有三条:(A) 换成 YOLOv8/v10 这类较新版本;(B) 保留现有 anchor-based 结构,只改 backbone/neck 和输入策略;(C) 降输入分辨率,再级联一个只跑 ROI 的二阶段补检。请给出你的技术判断:你会用哪些判据来选路线,两周内怎么做出可辩护的决策,以及怎么让算法、部署、业务三方都接受这个结论。 · 5 年以上
- 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 变好了。 · 1-3 年
- 一个离线批处理任务:20 万张图,30 类,目标普遍偏小且同类目标常成簇叠在一起(一张图里同类可叠 20 个以上),允许 8 卡跑 12 小时,评测只看精度不看延迟。团队有人提议用 YOLO 一把梭,你会不会改用 Faster R-CNN?说明判断依据,以及如果用它,RPN 的 anchor 和 ROI 采样你会怎么配。 · 3-5 年
- 线上有一套跑了两年的两阶段检测服务(Faster R-CNN + FPN,T4 上单图 80ms 预算),用于工业缺陷检测。当前问题是边长小于 16px 的缺陷召回只有 60%,同时每个新类目上线要拖一个多月。业务希望三个月内把该尺度召回提到 80%,并且能两周上一个新类目。有人主张直接换成一阶段 anchor-free 或 DETR 系,有人主张继续在两阶段框架内改。请给出你的技术判断:你会从哪些维度论证,并给出一个三个月内能交付的分阶段方案。 · 5 年以上
- Faster R-CNN 的 RPN 在特征图每个位置放 3 种尺度×3 种长宽比共 9 个 anchor。输入是 800×600 的图像,主干下采样 16 倍得到约 50×38 的特征图。请回答:(1) 一共生成多少个 anchor?(2) 训练 RPN 时,一个 anchor 被判为正样本、负样本、直接忽略的条件分别是什么?(3) 正样本数量远少于负样本,训练时怎么处理? · 校招
- 你用 DETR 做 8 类检测,每张图平均约 40 个目标。训练了 300 epoch,mAP 只有 0.40,小目标 AP 只有 0.12,收敛曲线到 200 epoch 才基本平。团队里有人提议「把 Hungarian 匹配 cost 里的分类项权重调大」,另一个人提议「反正 DETR 就是要训 500 epoch,再加 200 epoch 就行」。请分别判断这两个建议,并给出你会从哪几个环节改、每个环节的预期收益和副作用。 · 1-3 年
- PCB 元件检测场景:单图最多可能出现 300 个密集小元件,共 12 类,图像为 4K。有人提案直接上 DETR,使用默认 100 个 object query 和单尺度特征。请说明直接这么做会发生什么,你会怎么改造,以及和 YOLO、Faster R-CNN 相比这个场景你最终选谁、为什么。 · 3-5 年
- 团队想用 DETR 系(如 Deformable DETR / DINO)替换现有检测器,理由是「端到端无 NMS、结构统一、便于后续扩展」。你们的数据现状是 5 万张标注图、8 个类目、长尾比大约 1:200,推理侧要求单图 40ms(T4),部署链路走 ONNX 导出。请给出判断:在什么条件下你会同意换、什么条件下会拒绝;如果同意,你会怎么设计训练方案、验收指标和上线风险控制。 · 5 年以上
- DETR 每张图固定输出 N=100 个预测框,而一张图通常只有几个目标。请回答:(1) 这 100 个预测在训练时怎么和 GT 建立对应关系?(2) 没有和任何 GT 对应的那些预测,损失怎么算?(3) DETR 为什么可以不用 NMS? · 校招
- 做一个 8 类语义分割,训练集 5000 张。其中「细长裂缝」类的像素占比只有 0.3%,验证集上该类 IoU 只有 0.15,其余类都在 0.7 以上,整体 mIoU 被拉得很低。团队里 A 说「直接把 CrossEntropy 换成 Dice loss 就行」,B 说「加一个 boundary loss 更有效」。请评估这两条建议,并说明你会怎么设计 loss 组合、怎么处理多类 Dice 的工程细节、以及用什么指标来验收,避免被总体 mIoU 掩盖问题。 · 1-3 年
- 工业质检:2K×2K 灰度图做像素级缺陷分割,3 类缺陷,部分缺陷只有 20×20 像素;训练集 2000 张(标注贵),线上单张要求小于 200ms,单卡 40GB 显存。请给出你会选的结构、输入分辨率与训练/推理策略,并说明你怎么保证那 20×20 的缺陷不被下采样吃掉。 · 3-5 年
- 业务要把检测从框级标注升级到像素级分割,目前手里只有 8000 张框标注和 2000 张像素标注,共 12 个类目,其中 4 个类目的边界精度是硬指标但样本最少。推理侧要求单图 50ms(T4)。请给出你的技术路线:怎么用既有弱标注补数据、网络结构怎么选、输出分辨率与上采样策略怎么定、边界质量用什么指标验收、上线后 mask 后处理怎么处理。 · 5 年以上
- 你要训练一个 512×512 输入的语义分割模型,主干把特征图一路下采样 32 倍,最后只剩 16×16,然后直接上采样回 512×512 做逐像素预测,结果小目标和物体边界都很差。请回答:(1) 效果差的根本原因是什么?(2) 至少给出两种网络结构层面的改法,并分别说明它们的代价。 · 校招
- 某产线一条工位用同一台工业相机连续拍了 30 天,共 50 万张图,其中质检员框选标注出的缺陷图 300 张,缺陷类型有划痕、脏污、凹坑三种。数据按采集时间顺序存放在同一个目录里,同一件产品经过该工位时会被连拍 8~10 帧。你接手后,从拿到这批数据到切出可用的 train/val/test,你会做哪几件事?划分方式为什么这么选? · 1-3 年
- 某厂两条产线要做统一的缺陷检测模型。A 线每天产出约 20 万张图,良品率 99.5%,累计缺陷图 1000 张(划痕 600、脏污 300、其他 100)。B 线是新产品,收集两周只有 80 张缺陷图(类别与 A 线不完全重合),良品图 5 万张。你会怎么构建和划分数据集?请具体说清:以什么单元划分 train/val/test、跨线数据怎么用、长尾的“其他”类怎么处理、测试集怎么设计才能反映上线后的真实表现。 · 3-5 年
- 你接手一条产线的缺陷检测项目:A 线有 18 个月历史图像,但缺陷定义在这期间改过 3 次(标签体系漂移,比如原来叫“划伤”的现在被拆成“线性划伤”和“压痕划伤”);B、C 线刚上线 2 个月,只有 300 张已标注图,标注由质检员兼职完成,同一张图两个人标的框 IoU 只有 0.4。你的目标是 6 个月内把模型迭代到可上线。请说清楚:第一版训练集你怎么组、历史数据用不用怎么用、标注一致性你怎么管、以及你会向产线/质量团队要什么配合。 · 5 年以上
共 61 道,这里列出前 20 道。 去题库检索
针对你的简历,生成一套这个方向的题
题目会挂回你简历里的项目,并按真实面试顺序追问。