SSD网络预测与训练阶段详解
一、预测阶段(Inference)
-
特征提取
- 输入图像通过卷积神经网络(如VGG-16)提取多尺度特征图。
- 特征图尺寸逐层减小(例如:
384×384 → 19×19
),浅层保留高分辨率信息。
-
默认框生成与偏移量预测
- 每个特征图像素点生成预定义的默认框(Default Box),其尺寸和长宽比基于层级动态调整。
- 使用
3×3
小卷积核预测类别概率和边界框偏移量(Δx, Δy, Δw, Δh)。
-
解算真实边界框
- 根据预测偏移量调整默认框:
预测框 = ( x + Δ x ) × ( y + Δ y ) × ( w + Δ w ) × ( h + Δ h ) \text{预测框} = (x + \Delta x) \times (y + \Delta y) \times (w + \Delta w) \times (h + \Delta h) 预测框=(x+Δx)×(y+Δy)×(w+Δw)×(h+Δh)
- 根据预测偏移量调整默认框:
-
非极大值抑制(NMS)
- 按置信度排序候选框,剔除重叠冗余框,输出最终检测结果。
二、训练阶段(Training)
-
数据准备
- 输入图像及其标注(边界框、类别标签)。
- 数据增强:随机裁剪、水平翻转、颜色扰动。
-
默认框匹配
- 真实框与默认框按最高交并比(IoU > 0.5)匹配。
- 允许多重正样本(提升小目标召回率)。
-
前向传播
- 特征提取 → 默认框位置预测(类别、偏移量)。
-
损失函数计算
- 分类损失(Softmax Loss) + 定位损失(Smooth L1 Loss):
KaTeX parse error: Invalid delimiter: 'L' after '\left' at position 36: …ac{1}{N} \left L̲_{\text{conf}}(… - α \alpha α通常设为0.1以平衡两类损失。
- 分类损失(Softmax Loss) + 定位损失(Smooth L1 Loss):
-
反向传播与参数更新
- 使用梯度下降算法(如Adam)优化网络参数。
-
多尺度特征联合训练
- 联合优化基础网络末端的多层特征(如VGG-16的第4~7层)。
三、核心阶段对比
阶段 目标 关键操作 技术要点
预测 实时输出检测结果 特征提取 → NMS筛选 多尺度特征融合、轻量级预测头
训练 优化网络参数(精度 & 鲁棒性) 数据增强 → 损失函数计算 → 参数更新 多重正样本采样、Smooth L1损失函数
四、为什么需要多尺度特征?
- 浅层特征图:高分辨率,检测小目标(如行人、人脸)。
- 深层特征图:低分辨率,检测大目标(如车辆、人体)。
- 联合训练:避免传统方法多次上采样的计算开销。