YOLO V3 学习笔记
目录1. YOLO V3简介2. YOLO V3网络结构3. 边界框预测4. 正负样本的分配5. YOLO V3损失函数5.1 置信度损失5.2 分类损失5.3 定位损失6. YOLO V3总结1. YOLO V3简介YOLOYou Only Look Once系列算法是目标检测领域经典的 one‑stage 方法。YOLO V3 在 YOLO V2 基础上做了多项改进在维持高速推理的同时显著提升检测精度小目标检测效果提升尤为明显。2. YOLO V3网络结构YOLO V3 的骨干网络名为 Darknet‑5353个卷积层它由连续的1x1和3x3的卷积层构成并使用了 ResNet 的残差结构。与 Darknet‑19 相比Darknet‑53 层数更深且没有使用池化层而是通过步长为 2 的卷积来实现特征图尺寸的缩减。Darknet‑53 在 ImageNet 上的分类精度与 ResNet‑152 相当但计算速度更快。YOLO V3 使用了类似 FPNFeature Pyramid Network的思想进行多尺度预测。它从骨干网络的不同阶段提取三个尺度的特征图13 × 13、26 × 26、52 × 52分别负责检测大、中、小物体。较小特征图感受野大适合检测大物体较大特征图保留了更丰富的细节信息有利于检测小物体。每层特征图的每个网格会预测 3 个边界框因此最终输出的边界框数量大幅增加提高了密集小物体的召回率。3. 边界框预测YOLO V3 继续沿用 YOLO V2 中引入的锚框Anchor Boxes机制使用 9 个不同尺寸的锚框通过 K‑means 聚类 COCO 数据集的真实目标框得到。9 个锚框分为三组分配到三个多尺度检测分支每个尺度分配 3 个锚框。边界框不直接预测图像绝对像素坐标而是预测相对于网格和锚框的偏移量其中中心点偏移tx、ty经过 Sigmoid 激活函数限制在 0~1 之间约束目标中心落在当前网格内稳定训练梯度有助于模型更快收敛宽高偏移tw、th则通过指数函数缩放锚框尺寸。egcx、cy是当前网格左上角的坐标pw、ph是当前网格分配的锚框宽高。4. 正负样本的分配YOLO V3 根据锚框与真实目标框GT的 IOU 来划分样本默认阈值 0.5。正样本真实目标中心点落在某个网格内与该真实框 IOU 最大的锚框为正样本一个真实框仅匹配一个正样本锚框。忽略样本若锚框和任意真实框 IOU 超过阈值但不是对应真实框重合程度最高的锚框则丢弃。负样本锚框与所有真实目标框的 IOU 均小于阈值判定为负样本。5. YOLO V3损失函数损失函数仍由置信度损失、分类损失和定位损失三部分加权组成但定位部分仍使用均方误差损失而置信度和分类部分使用交叉熵损失。5.1 置信度损失采用二元交叉熵 BCE 损失。正样本置信度标签为 1负样本标签为 0IOU≥0.5 的忽略样本不参与置信度损失计算。5.2 分类损失采用二元交叉熵BCE损失仅正样本参与分类损失优化负样本与忽略样本不计算分类损失。关于为什么采用二元交叉熵BCE损失作者认为同一目标可属于多类比如猫可归为猫类以及动物类这样可以应对更加复杂的场景。5.3 定位损失采用均方误差 MSE 损失仅正样本参与坐标回归计算负样本、忽略样本不计入定位损失。6. YOLO V3总结YOLO V3 在速度和精度之间取得了良好的平衡通过多尺度预测和更深骨干网络有效提升了小物体检测能力。尽管后续版本YOLO V4、YOLO V5、YOLO V8 等在结构和训练技巧上进一步优化YOLO V3 仍然是一个研究目标检测入门的经典模型理解它的设计思路对后续版本的学习非常有帮助。