AI-Agent 面试题汇总 - 计算机视觉篇(目标检测)
1. 从 R-CNN 到 Faster R-CNN 的演变
- R-CNN:Selective Search 提候选框,逐框CNN提特征,慢。
- Fast R-CNN:整图卷积 + RoI Pooling,共享特征,速度提升。
- Faster R-CNN:引入 RPN 生成候选框,实现端到端 two-stage 检测。
2. 目标检测 two-stage 模型有哪些?
典型 two-stage:
- Faster R-CNN
- Mask R-CNN
- Cascade R-CNN特点:精度高,尤其对小目标和复杂场景更稳;但速度一般慢于 one-stage。
3. 说一下 NMS 的处理思想
NMS(非极大值抑制)用于去重框:按置信度排序,保留最高分框,删除与其 IoU 超阈值的重复框,迭代直到结束。目标是减少多重检测。
def nms(boxes, scores, iou_th=0.5):
idxs = scores.argsort(descending=True)
keep = []
while len(idxs) > 0:
i = idxs[0]
keep.append(i.item())
if len(idxs) == 1: break
ious = iou(boxes[i].unsqueeze(0), boxes[idxs[1:]]).squeeze(0)
idxs = idxs[1:][ious <= iou_th]
return keep
4. Soft-NMS 为什么可以提升检测效果?
Soft-NMS不直接删除重叠框,而是根据重叠程度衰减其分数,避免误删真正目标(尤其密集场景)。因此通常提升召回率与mAP。
5. 描述一下 IoU 的作用
IoU(Intersection over Union)衡量预测框和真实框重叠程度。用于:
- 正负样本分配
- NMS判定
- 评估指标(mAP@IoU阈值)
def iou_xyxy(a, b):
x1 = max(a[0], b[0]); y1 = max(a[1], b[1])
x2 = min(a[2], b[2]); y2 = min(a[3], b[3])
inter = max(0, x2-x1) * max(0, y2-y1)
area1 = (a[2]-a[0]) * (a[3]-a[1])
area2 = (b[2]-b[0]) * (b[3]-b[1])
return inter / (area1 + area2 - inter + 1e-9)
6. RoI Pooling 如何实现坐标映射?
RoI Pooling把原图候选框按特征图缩放比例映射到特征图上,再划分固定网格(如7×7)做池化,输出固定维度特征。缺点是量化误差,后续 RoI Align 通过双线性插值避免该误差。
7. SPP(或SPP-Net)在检测中的作用
在检测中,SPP可将不同尺寸候选区域转为固定长度特征,减少重复卷积并适配多尺度输入。思想与空间金字塔池化一致,强调多尺度汇聚。
8. RPN 的作用是什么?
RPN(Region Proposal Network)在共享特征图上滑窗,预测 anchor 的前景概率和边框偏移,快速生成高质量候选框,替代传统Selective Search。
9. 说一下 Faster R-CNN 的损失函数
Faster R-CNN是多任务损失:[L = L{cls} + \lambda L{reg}]其中分类损失用于前景/类别判定,回归损失用于框偏移(常用Smooth L1)。RPN和RoI head通常都有各自的分类+回归损失。
10. Faster R-CNN 如何筛选正负 anchor?
通常按 IoU 与 GT 的关系:
- IoU ≥ 正阈值(如0.7)→ 正样本
- IoU ≤ 负阈值(如0.3)→ 负样本
- 中间忽略并控制正负比(如1:1或1:3)稳定训练。
11. 为什么使用 Focal Loss?
在 one-stage 检测中,负样本远多于正样本,易被大量“简单负样本”主导。Focal Loss通过降低易分类样本权重、提高困难样本权重,缓解类别不平衡。
# 二分类 focal loss 简化版
import torch
def focal_loss(p, y, alpha=0.25, gamma=2.0, eps=1e-8):
p = torch.clamp(p, eps, 1-eps)
pt = torch.where(y==1, p, 1-p)
at = torch.where(y==1, torch.tensor(alpha), torch.tensor(1-alpha))
return -(at * (1-pt)**gamma * torch.log(pt)).mean()
12. 目标检测 one-stage 模型有哪些?
常见 one-stage:
- YOLO 系列(v1~v10及衍生)
- SSD
- RetinaNet特点:速度快、部署友好;早期精度略低于two-stage,但新版本差距已明显缩小。
13. SSD 如何生成目标框(default box)?
SSD在不同尺度特征图上为每个位置预设多种比例与尺度的 default boxes;训练时用 IoU 将 GT 与 default box 匹配,学习类别和偏移量,实现多尺度检测。
14. YOLOv1 如何生成目标框?
YOLOv1把图像划分为 (S \times S) 网格,每个网格预测固定数量框及类别概率。由“网格负责其中心落入该网格的目标”完成检测,速度快但对小目标和密集目标较弱。
本专栏聚焦 AI-Agent 面试高频考点,内容来自真实面试与项目实践。系统覆盖大模型基础、Prompt工程、RAG、Agent架构、工具调用、多Agent协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.