【目标检测-YOLO】YOLO v4 总结(第四篇)
1. YOLO v4 架构总结

| YOLO | Input | Backbone | Neck | Head | 置信度Loss | 坐标回归Loss | 分类Loss |
|---|---|---|---|---|---|---|---|
| v1 | 448*448 | GoogleNet | FC*2 | MSE | |||
| v2 | 32x | DarkNet-19 | Passthrough | Conv | MSE | ||
| v3 | 32x | DarkNet-53 | FPN | Conv | BCE | (x,y) BCE (w,h) MSE | BCE |
| v4 | 32x | CSPDarkNet-53 | SPP PAN | 同v3 | BCE | CIOU | BCE |
2. YOLOv4 损失函数
正负样本划分
在YOLOv3中,每一个标注框都只有一个正样本。
YOLO v3 在正负样本分配方面进行了参考性研究:
在损失函数设计中引入了权重参数w_c和w_b分别用于类别平衡和定位精度的调节:
在分类器设计中提出了将锚框与目标框进行匹配以确定正样本的技术:
针对数据集进行了系列实验并获得了令人满意的实验结果:
该算法采用了基于Multi Anchor策略的设计理念,在预测阶段将候选锚框与目标框进行匹配时引入了IoU(交并比)指标作为判断依据。具体而言,在预测阶段若目标框与其锚框(位于该目标框中心位置)之间的IoU超过设定阈值,则将该候选锚框标记为对应的目标框匹配锚框;若其对应的多个候选锚框均未能满足这一条件,则不再存在未标记为正负样本的情况。值得注意的是,在这一改进过程中,并非所有的潜在小目标都会被识别出来——这些原本在YOLOv3中会被忽略掉的小目标尺寸异常的小物体,在改进后的算法设计中则被重新识别并标记为有效的正样本候选体。这种改进不仅能够使算法更好地捕捉到更多潜在的目标实例,在实际应用中的检测性能也会因此得到显著提升。
YOLO v5 又不同了:把周围3×3邻域里的anchor box全给考虑进来。待填坑...
YOLOv4网络结构采用了多层次卷积操作对图像进行特征提取,并结合先进的锚框生成机制实现目标检测的核心算法。该方法通过多层卷积操作提取图像特征的同时能够有效识别复杂的物体并进行精准定位其在网络中的应用已在多个领域取得了显著的效果
负样本置信度损失和v3一样

正样本
置信度损失

分类损失
坐标损失: 定位损失采用的是CIoU损失



该算法新增了多个功能模块,在实现目标检测的同时也加入了优化技术以提升整体性能水平。其中重点在于目标检测精度的优化以及后端计算能力的增强。具体而言,模型速度提升了约8%, 检测精度提高了1.5%, 并且推理时间缩短至0.03秒左右以内的水平。经过这些优化,YOLOv4在目标检测任务中不仅提升了精度,还显著加快了运行速度,展现出更强的整体效能。

综上,总的损失为:
![L_{all}=L+L+L+L=um_{i=0}{w}\sum_{j=0}{h}um_{n=0}{A}1_{maxIOU<0.7}[-ln(1-C)]+\sum_{t=0}{T}um_{n=0}^{A}1_{maxIOU=>0.7}eft +L_{CIOU}+um_{cls=0}^{classes}ight](https://ad.itadn.com/c/weblog/blog-img/images/2024-12-13/mNqyRDMP4wLAF9iTCWjY5ExIz1eG.png)
