深度学习面试八股文(3)—— 目标检测专题
目标检测 (Object Detection) 与 图像分类 (Image Classification) 有什么本质区别?答案:分类:判断图像中“有什么”,通常假设图像主体只有一个,输出类别概率。检测:不仅要判断“有什么”,还要定位“在哪里”。输出包含Bounding Box (边界框)的坐标xywhxywh和对应的类别概率。难点:多尺度 (物体大小不一)、遮挡、背景干扰、密集排列。“检测任务其
目标检测基础与 R-CNN 家族
1. 目标检测任务定义
问题: 目标检测 (Object Detection) 与 图像分类 (Image Classification) 有什么本质区别?
答案:
- 分类:判断图像中“有什么”,通常假设图像主体只有一个,输出类别概率。
- 检测:不仅要判断“有什么”,还要定位“在哪里”。输出包含 Bounding Box (边界框) 的坐标 (x,y,w,h)(x, y, w, h)(x,y,w,h) 和对应的 类别概率。
- 难点:多尺度 (物体大小不一)、遮挡、背景干扰、密集排列。
面试官视角:
“检测任务其实是 分类 (Classification) 和 回归 (Regression) 两个任务的结合。面试中常问:为什么这两个任务的 Loss 可以直接相加?需要平衡权重的参数吗?”
2. IoU (Intersection over Union)
问题: 什么是 IoU?写出其计算公式。
答案:
- 定义:交并比。用于衡量预测框 (Prediction) 和真实框 (Ground Truth) 的重叠程度。
- 公式:
IoU=Area(A∩B)Area(A∪B)IoU = \frac{Area(A \cap B)}{Area(A \cup B)}IoU=Area(A∪B)Area(A∩B)
即:两个框的交集面积除以并集面积。
面试官视角:
“除了计算,你还需要知道 IoU Loss 的演变(IoU -> GIoU -> DIoU -> CIoU),这在 YOLO 专题中会重点考。”
3. NMS (非极大值抑制)
问题: 简述 NMS 的流程。为什么需要它?
答案:
- 目的:目标检测模型通常会在同一个物体周围预测出多个重叠的候选框,NMS 用于去除冗余的框,只保留置信度最高的一个。
- 流程:
- 将所有预测框按置信度从高到低排序。
- 选出置信度最高的框 AAA 作为保留框。
- 计算 AAA 与剩余所有框的 IoU。
- 如果某个框与 AAA 的 IoU 超过阈值 (如 0.5),则将其抑制 (删除)。
- 从剩余未处理的框中重复上述步骤,直到所有框处理完毕。
面试官视角:
“Soft-NMS 是什么?它不是直接删除重叠框,而是降低其置信度,防止密集物体检测时产生漏检 (False Negative)。”
4. mAP (mean Average Precision)
问题: 目标检测中 mAP 是如何计算的?
答案:
- AP (Average Precision):对于某一个类别,绘制 P-R 曲线 (Precision-Recall),AP 即为 P-R 曲线下的面积。
- mAP:所有类别的 AP 的算术平均值。
- mAP@0.5:当 IoU 阈值设为 0.5 时计算出的 mAP。
- mAP@0.5:0.95 (COCO 标准):在 IoU 阈值从 0.5 到 0.95 (步长 0.05) 的范围内计算 mAP,然后求平均。这考察了定位的高精度。
面试官视角:
“COCO mAP 是衡量检测器综合性能的金标准。如果你只看 mAP@0.5,可能会掩盖模型定位不准的问题。”
5. R-CNN (Region-based CNN)
问题: 简述 R-CNN 的基本步骤。为什么它很慢?
答案:
- 步骤:
- 候选区域生成:使用 Selective Search 算法在图像上提取约 2000 个 Region Proposals。
- 特征提取:将每个 Proposal 缩放到固定大小,送入 CNN 提取特征。
- 分类:使用 SVM 对特征进行分类。
- 回归:使用线性回归微调 Bounding Box。
- 慢的原因:重复计算。2000 个框都要经过一次 CNN,大量重叠区域的特征被重复提取,没有共享计算。
面试官视角:
“R-CNN 是开山之作,重点在于它证明了 CNN 可以用于目标检测。现在的面试重点是‘它为什么被淘汰’。”
6. SPP-Net (Spatial Pyramid Pooling)
问题: SPP-Net 解决了 R-CNN 的什么核心问题?
答案:
- 解决的问题:
- 输入尺寸限制:CNN 的全连接层要求固定输入大小,R-CNN 必须对图像进行裁剪或变形。SPP 层允许输入任意尺寸的图像,输出固定长度的向量。
- 重复计算:SPP-Net 只需要对原图进行一次卷积操作得到 Feature Map,然后在 Feature Map 上映射出候选区域的特征,极大地加速了计算。
面试官视角:
“SPP 层的核心思想是使用不同尺度的 Pooling 核 (如 1x1, 2x2, 4x4) 进行池化,拼接后得到固定长度特征。”
7. Fast R-CNN
问题: Fast R-CNN 相比 R-CNN 做了哪些改进?ROI Pooling 的作用是什么?
答案:
- 改进:
- 多任务损失 (Multi-task Loss):将分类 (Softmax) 和回归 (Smooth L1) 统一到一个网络中训练,不再需要分阶段训练 SVM 和 Regressor。
- 特征共享:继承了 SPP-Net 的思想,整张图只进一次 CNN。
- ROI Pooling:SPP 层的简化版。将不同尺寸的 Feature Map 区域 (ROI) 划分为 7×77 \times 77×7 的网格,对每个网格做 Max Pooling,统一输出尺寸,以便送入全连接层。
面试官视角:
“Fast R-CNN 的瓶颈在哪里?在于 Region Proposal 的生成仍然依赖 CPU 上的 Selective Search 算法,这成为了速度的短板。”
8. Faster R-CNN (里程碑)
问题: Faster R-CNN 的核心创新是什么?它是如何实现 End-to-End 训练的?
答案:
- 核心创新:RPN (Region Proposal Network)。它抛弃了 Selective Search,直接用一个全卷积神经网络 (RPN) 来生成候选框。
- 机制:RPN 与检测网络共享底层的卷积特征。RPN 在 Feature Map 上滑动,判断锚框 (Anchor) 是前景还是背景,并进行粗略的坐标回归。
- 结果:实现了从“特征提取”到“框生成”再到“分类回归”的全 GPU 加速,是第一个真正的端到端检测网络。
面试官视角:
“RPN 是 Two-Stage 检测器的灵魂。你需要清楚 RPN 的 Loss 包括两部分:前景/背景分类 Loss 和 边界框回归 Loss。”
9. Anchor (锚框) 机制
问题: 什么是 Anchor?Faster R-CNN 中是如何设计 Anchor 的?
答案:
- 定义:Anchor 是预定义的、固定大小和比例的参照框,均匀分布在 Feature Map 的每个像素点上。
- 设计:Faster R-CNN 通常在每个滑动窗口位置定义 9 个 Anchor:
- 3 种尺度 (Scale): 1282,2562,5122128^2, 256^2, 512^21282,2562,5122
- 3 种长宽比 (Aspect Ratio): 1:1,1:2,2:11:1, 1:2, 2:11:1,1:2,2:1
- 作用:模型不再直接预测框的绝对坐标,而是预测相对于 Anchor 的偏移量 (Offset),这降低了回归难度。
面试官视角:
“Anchor 的设计需要根据数据集调整。例如在人脸检测中,长宽比通常集中在竖长方形,不需要 2:1 的横长 Anchor。”
10. ROI Align (Mask R-CNN 提出)
问题: ROI Pooling 有什么缺陷?ROI Align 是如何改进的?
答案:
- ROI Pooling 的缺陷:存在两次量化误差 (Quantization Error)。
- 将候选框坐标映射到 Feature Map 时取整。
- 划分 7×77 \times 77×7 网格时取整。
这导致小物体的特征位置偏差,影响分割和定位精度。
- ROI Align:取消量化取整。使用 双线性插值 (Bilinear Interpolation) 来计算 ROI 边界内四个坐标点的特征值。这保留了浮点数坐标的精确性。
面试官视角:
“虽然 ROI Align 是在 Mask R-CNN (分割任务) 中提出的,但它显著提升了物体检测的定位精度,现在已成为标准配置。”
11. One-Stage vs Two-Stage
问题: 总结 One-Stage (如 YOLO, SSD) 和 Two-Stage (如 Faster R-CNN) 的核心区别。
答案:
- Two-Stage:
- 流程:先生成 Proposal (RPN),再对 Proposal 进行精细分类和回归 (R-CNN)。
- 特点:精度高,速度慢。
- One-Stage:
- 流程:直接在 Feature Map 上进行密集预测 (Dense Prediction),一步到位输出类别和坐标。
- 特点:速度快,精度相对较低 (早期),易受类别不平衡问题影响。
面试官视角:
“随着 YOLOv4/v5 和 Focal Loss 的出现,One-Stage 算法的精度已经可以媲美甚至超越 Two-Stage,界限正在变得模糊。”
12. SSD (Single Shot MultiBox Detector)
问题: SSD 相比 YOLO v1 (早期) 的主要改进是什么?
答案:
- 核心改进:多尺度特征图检测 (Pyramidal Feature Hierarchy)。
- 机制:
- YOLO v1 仅在最后一层 Feature Map 上做检测,难以检测小物体。
- SSD 在网络的不同深度 (不同分辨率) 的 Feature Map 上分别设置 Anchor 并进行检测。
- 浅层 Feature Map 分辨率高,感受野小,适合检测小物体。
- 深层 Feature Map 分辨率低,感受野大,适合检测大物体。
面试官视角:
“SSD 是第一个广泛应用 Anchor 机制的 One-Stage 算法。”
13. Hard Negative Mining (难负样本挖掘)
问题: 在 SSD 训练中,如何处理正负样本极度不平衡的问题?
答案:
- 现象:在一张图中,匹配到 Ground Truth 的 Anchor (正样本) 极少,绝大多数是背景 (负样本)。
- 策略:Hard Negative Mining。
- 计算所有负样本的 Loss。
- 将负样本按 Loss 从大到小排序 (Loss 大说明模型很难判断它是背景,属于“难负样本”)。
- 只取 Loss 最高的头部负样本参与反向传播,保持正负样本比例为 1:3。
面试官视角:
“这是一种启发式的采样方法。更优雅的解决方案是 Focal Loss (通过权重动态调整)。”
14. Smooth L1 Loss
问题: 目标检测的回归任务为什么常用 Smooth L1 Loss 而不是 L1 或 L2?
答案:
- L2 Loss:对离群点 (Outliers) 过于敏感,梯度大,训练初期容易导致梯度爆炸。
- L1 Loss:在 0 点处不可导,且在误差很小时梯度依然保持不变,不利于收敛到精确解。
- Smooth L1:结合两者优点。
- 当误差 ∣x∣<1|x| < 1∣x∣<1 时,表现为 0.5x20.5x^20.5x2 (L2),平滑可导,收敛慢且稳。
- 当误差 ∣x∣≥1|x| \ge 1∣x∣≥1 时,表现为 ∣x∣−0.5|x| - 0.5∣x∣−0.5 (L1),梯度恒定,防止爆炸。
面试官视角:
“现在更多使用 IoU-based Loss (如 GIoU, CIoU) 直接优化 metric,但在基础理论中,Smooth L1 是必考点。”
15. FPN (Feature Pyramid Network)
问题: FPN 如何解决多尺度检测难的问题?它和 SSD 的多尺度有什么区别?
答案:
- SSD 的问题:虽然用了多层特征,但浅层特征语义信息不够强 (Semantically Weak),不利于分类。
- FPN 结构:
- 自底向上:普通的卷积网络特征提取。
- 自顶向下:将高层强语义特征上采样。
- 横向连接 (Lateral Connection):将上采样后的高层特征与同分辨率的浅层特征相加 (Add)。
- 效果:使得每一层 Feature Map 既有高分辨率 (利于定位小物体),又有强语义信息 (利于分类),是现代检测器 (如 YOLOv3, RetinaNet) 的标配。
面试官视角:
“横向连接通常使用 1x1 卷积来调整通道数。FPN 使得小物体检测性能有了质的飞跃。”
YOLO 家族演进 (v1 - v8)
16. YOLO v1 的核心思想 (Grid Cell)
问题: YOLO v1 是如何将检测问题转化为回归问题的?它的输出张量 S×S×(B×5+C)S \times S \times (B \times 5 + C)S×S×(B×5+C) 代表什么含义?
答案:
- 核心思想:将输入图像划分为 S×SS \times SS×S 个网格 (Grid Cell)。
- 机制:如果一个物体的中心点落入某个网格,该网格就负责检测这个物体。
- 输出张量:S×S×(B×5+C)S \times S \times (B \times 5 + C)S×S×(B×5+C)。
- S×SS \times SS×S:网格数量 (如 7×77 \times 77×7)。
- BBB:每个网格预测的边界框数量 (v1 中 B=2B=2B=2)。
- 555:每个框的 (x,y,w,h,confidence)(x, y, w, h, confidence)(x,y,w,h,confidence)。
- CCC:类别概率 (v1 中一个网格只预测一组类别概率,不支持多标签)。
- 局限:一个网格只能预测一个类别。如果两个物体中心都在同一个网格(如鸟群),YOLO v1 会漏检。
面试官视角:
“YOLO v1 最大的缺陷是没有 Anchor,直接预测坐标极其困难,且对密集小物体效果极差。”
17. YOLO v2 的 K-Means 聚类
问题: YOLO v2 引入了 Anchor,但它的 Anchor 尺寸是怎么确定的?与 Faster R-CNN 有何不同?
答案:
- Faster R-CNN:使用手动设计的 Anchor (Hand-picked),如 128,256,512128, 256, 512128,256,512 等经验值。
- YOLO v2:使用 K-Means 聚类 算法对训练集中的 Ground Truth 框进行聚类,自动找到最匹配当前数据集的 KKK 个先验框尺寸。
- 距离度量:聚类时不使用欧氏距离 (会导致大框误差影响大),而是使用 d(box,centroid)=1−IoU(box,centroid)d(box, centroid) = 1 - IoU(box, centroid)d(box,centroid)=1−IoU(box,centroid)。
面试官视角:
“这是一个数据驱动 (Data-driven) 的改进。面试时可能会让你手写 K-Means 的伪代码,注意距离度量要换成 IoU。”
18. YOLO v3 的网络结构 (Darknet-53)
问题: YOLO v3 的 Backbone 是 Darknet-53,它借鉴了 ResNet 的什么特点?它如何实现多尺度检测?
答案:
- Darknet-53:大量使用了 Residual Block (残差块) 和 Leaky ReLU。它没有最大池化层 (Max Pooling),而是通过步长为 2 的卷积层 (Stride=2 Conv) 来进行下采样,以保留更多特征信息。
- 多尺度检测 (FPN思想):YOLO v3 输出了 3 个不同尺度的 Feature Map (大、中、小),分别检测小、中、大物体。
- Scale 1: 13×1313 \times 1313×13 (适合大物体)
- Scale 2: 26×2626 \times 2626×26 (适合中物体)
- Scale 3: 52×5252 \times 5252×52 (适合小物体)
面试官视角:
“YOLO v3 是 YOLO 系列的巅峰之作,奠定了现代 One-Stage 检测器的基本框架。它在小物体检测上比 v1/v2 强很多,归功于多尺度输出。”
19. YOLO v3 的类别预测 (Sigmoid vs Softmax)
问题: 为什么 YOLO v3 在类别预测时将 Softmax 换成了 Sigmoid?
答案:
- Softmax:假设类别之间是互斥的 (Mutually Exclusive)。即一个物体只能是“猫”或“狗”。
- Sigmoid:对每个类别独立进行二分类逻辑回归。允许多标签分类 (Multi-label Classification)。
- 场景:如果数据集包含“女人”和“人”两个标签,Softmax 会强行二选一,而 Sigmoid 可以让两个标签的概率都较高,更符合实际逻辑。
面试官视角:
“这种设计的灵活性使得 YOLO v3 可以直接迁移到 Open Images 等复杂数据集上。”
20. YOLO v4 的 Mosaic 数据增强
问题: 什么是 Mosaic 数据增强?它对 BN 层有什么影响?
答案:
- 原理:每次读取 4 张图片,随机缩放、裁剪、排布,拼接成一张新的图片作为输入。
- 优点:
- 丰富背景:大大增加了数据的背景复杂度和物体位置的随机性。
- 小物体增多:由于缩放拼接,原图中的物体变小了,变相增加了小样本数量。
- Batch Size 优化:拼接的一张图包含 4 张图的信息,相当于变相增大了 Batch Size,使得在单 GPU 上也能训练出较好的 BN 统计量。
面试官视角:
“这是 YOLO v4 的标志性 Trick。除此之外,还要知道 MixUp (两张图透明度叠加) 和 CutMix (剪切粘贴)。”
21. CSPNet (Cross Stage Partial Network)
问题: YOLO v4/v5 的 Backbone 中使用了 CSP 结构,它的核心思想是什么?
答案:
- 核心思想:将输入特征图在通道维度分成两半。
- 一半经过一系列卷积操作 (ResBlock 等)。
- 另一半直接连接到末尾 (Shortcut)。
- 作用:
- 减少计算量:参数量和 FLOPs 显著下降。
- 梯度流优化:通过梯度的截断和直接传播,增强了梯度的传播效率,防止过拟合。
- 保持准确率:在轻量化的同时几乎不损失精度。
面试官视角:
“CSP 结构是让 YOLO 既快又准的关键组件。注意区分 CSPDarknet 和原始 Darknet。”
22. Mish 激活函数 (YOLO v4)
问题: YOLO v4 引入了 Mish 激活函数,公式是什么?相比 ReLU 有什么优势?
答案:
- 公式:f(x)=x⋅tanh(ln(1+ex))f(x) = x \cdot \tanh(\ln(1 + e^x))f(x)=x⋅tanh(ln(1+ex))。图像是平滑的、非单调的。
- 优势:
- 平滑非单调:允许微小的负梯度流入,避免了 ReLU 的“死神经元”问题。
- 无上界:避免饱和。
- 有下界:起到正则化作用。
- 缺点:计算成本比 ReLU 高 (涉及指数和 tanh)。
面试官视角:
“v5 早期版本用了 Leaky ReLU,后来改为 SiLU (Swish)。Mish 和 SiLU 形状非常相似,都是为了获得比 ReLU 更平滑的梯度流。”
23. YOLO v5 的 Focus 层 (早期版本)
问题: YOLO v5 (6.0版本前) 使用 Focus 层,通过“切片”操作将 W,HW, HW,H 信息转移到通道 CCC,目的是什么?
答案:
- 操作:隔行隔列采样。将 640×640×3640 \times 640 \times 3640×640×3 的图像切片重排为 320×320×12320 \times 320 \times 12320×320×12。
- 目的:
- 减少计算量:用空间换通道。在不损失信息的前提下,将下采样操作提前,减少了后续卷积层的 FLOPs。
- 加速:相比直接用大核卷积下采样,Slice 操作更快。
- 现状:v6.0 版本后改回了 6×66 \times 66×6 卷积,因为 Focus 层的 Slice 操作在部分硬件设备上无法从硬件加速中获益,兼容性不如纯卷积。
面试官视角:
“这是一个工程优化的典型案例:理论更优 vs 硬件部署更优。在端侧部署面试中常考。”
24. SPP vs SPPF (YOLO v5)
问题: YOLO v5 将 SPP 改进为 SPPF (Fast),它是如何加速的?
答案:
- SPP (Spatial Pyramid Pooling):并行的通过 5×5,9×9,13×135 \times 5, 9 \times 9, 13 \times 135×5,9×9,13×13 三个大池化核,最后 Concat。大核池化计算慢。
- SPPF:使用串行的 3 个 5×55 \times 55×5 池化层。
- 两个 5×55 \times 55×5 串联等效于一个 9×99 \times 99×9。
- 三个 5×55 \times 55×5 串联等效于一个 13×1313 \times 1313×13。
- 结果:计算结果完全一致,但小核串联的计算效率远高于大核并行,速度提升显著。
面试官视角:
“非常巧妙的数学等价替换。面试官喜欢这种‘不改变结果但提升效率’的工程 Trick。”
25. 损失函数的演变:IoU -> GIoU -> DIoU -> CIoU
问题: 为什么要从 IoU Loss 进化到 CIoU Loss?它们分别解决了什么问题?
答案:
- IoU Loss:1−IoU1 - IoU1−IoU。缺陷:当两个框不相交时,IoU=0,梯度为 0,无法优化。
- GIoU (Generalized):引入最小外接矩形。解决了不相交时的梯度问题。缺陷:当出现包含关系时退化为 IoU,收敛慢。
- DIoU (Distance):引入中心点距离惩罚项。直接最小化两个框中心点的距离,收敛快。
- CIoU (Complete):在 DIoU 基础上增加了长宽比 (Aspect Ratio) 的惩罚项 αv\alpha vαv。
- 考虑了三要素:重叠面积、中心点距离、长宽比。
面试官视角:
“YOLO v4/v5 默认使用 CIoU。但在某些特定长宽比样本中,CIoU 可能会因为长宽比惩罚项产生阻碍,这时 DIoU 可能是更好的选择。”
26. 正负样本匹配策略 (Label Assignment)
问题: YOLO v5 的正样本匹配策略相比 v3/v4 有什么核心改变?(跨网格匹配)
答案:
- YOLO v3/v4:最大 IoU 原则。一个 GT 只分配给 IoU 最大的那个 Anchor 所在的网格。正样本极少。
- YOLO v5:宽高比 (Shape) 匹配 + 临近网格扩充。
- 宽高比:如果 Anchor 与 GT 的宽高比差异在阈值内 (如 1:4 到 4:1),则匹配成功。
- 扩充:不仅中心点所在的网格负责预测,中心点最近的两个邻域网格也可以负责预测。
- 结果:一个 GT 可以由多个 Anchor (通常 3 个) 预测,正样本数量大幅增加,训练更稳定,加速收敛。
面试官视角:
“这是 v5 收敛速度极快的核心原因之一。增加了正样本的数量和质量。”
27. SimOTA (YOLOX 提出)
问题: YOLOX 提出的 SimOTA 是如何进行动态标签分配的?
答案:
- 背景:之前的分配策略主要看几何位置 (IoU, 中心点),不考虑预测的 Loss。
- SimOTA (Optimal Transport Assignment):
- Cost 计算:计算每个 Anchor 与 GT 的 Cost (由分类 Loss 和回归 Loss 组成)。
- 动态 k:根据 IoU 大小动态决定每个 GT 需要分配多少个正样本 (k)。
- 最优传输:用全局优化的方式,以最小 Cost 将正样本分配给 GT。
- 意义:这是一种自适应的分配策略。对于模糊不清的样本,自动分配较少的正样本;对于清晰的样本,分配较多。
面试官视角:
“SimOTA 是 Anchor-free 检测器迈向 SOTA 的关键一步。它解决了‘谁是正样本’这个定义模糊的问题。”
28. Anchor-Free 的回归 (YOLOX / YOLO v8)
问题: YOLOX 和 YOLO v8 回归到了 Anchor-free 模式,也就是 Decoupled Head (解耦头),为什么要这样做?
答案:
- Decoupled Head (解耦头):将分类分支和回归分支的卷积层分开 (之前是共享的)。
- 原因:分类关注的是纹理特征,回归关注的是边缘特征。两个任务存在冲突 (Misalignment),解耦后精度提升。
- Anchor-free:不再预设 Anchor。
- 预测量:直接预测中心点 (x,y)(x, y)(x,y) 和 距离四边的距离 (l,t,r,b)(l, t, r, b)(l,t,r,b)。
- 优势:减少了超参数 (Anchor size/ratio) 的调优,泛化能力更强,对不同尺度的数据集适应性更好。
面试官视角:
“Anchor-based 属于‘过拟合’数据集分布,Anchor-free 属于‘泛化’几何特征。目前的趋势是 Anchor-free。”
29. Objectness Score (置信度) 的定义变化
问题: 在 YOLO v1 和 YOLO v3/v4 中,预测输出中的 Objectness (Confidence) 标签是如何定义的?
答案:
- 定义:Pr(Object)×IoUpredtruthPr(Object) \times IoU_{pred}^{truth}Pr(Object)×IoUpredtruth。
- 训练时:
- 正样本:标签值为 1 (或者该位置预测框与 GT 的真实 IoU 值,YOLO v1 是 IoU)。
- 负样本:标签值为 0。
- YOLO v4/v5 的变化:正样本的 Objectness 标签不再是 1,而是预测框与 GT 的 CIoU 值。这告诉网络:不仅要预测“有物体”,还要预测“这个框有多准”。
面试官视角:
“这能降低低质量框的置信度,在 NMS 阶段更容易被过滤掉。”
30. YOLO 系列部署相关 (Letterbox & Grid Sensitive)
问题:
- Letterbox:在推理时,如何处理非正方形图片输入?
- Grid Sensitive:YOLO v4 为什么要在 sigmoid 输出后乘以一个系数?
答案: - Letterbox:为了保持长宽比,不直接 Resize。而是缩放后在边缘填充灰边 (Padding) 至 32 的倍数。这能避免物体变形,且减少计算量 (不需要填充到正方形)。
- Grid Sensitive:
- 公式:bx=σ(tx)×scale−(scale−1)/2+cxb_x = \sigma(t_x) \times scale - (scale-1)/2 + c_xbx=σ(tx)×scale−(scale−1)/2+cx。
- 原因:Sigmoid 函数在 0 和 1 处梯度极小。如果物体中心刚好落在网格边界,网络很难输出精确的 0 或 1。通过引入 scale (如 1.05),让输出范围略大于 (0,1)(0, 1)(0,1),使得网络更容易预测边界坐标。
面试官视角:
“这些都是实战部署中的细节。Letterbox 填充的颜色通常是 114 (ImageNet 均值)。”
更多推荐


所有评论(0)