什么是YOLOv4?
YOLOv4(You Only Look Once version 4)是一种先进的目标检测系统,由Alexey Bochkovskiy、Chien-Yao Wang和Hong-Yuan Mark Liao于2020年提出。在计算机视觉领域,目标检测是一项至关重要的技术,广泛应用于自动驾驶、安防监控、医疗影像分析等多个行业。
网络架构
YOLOv4的架构可以分为三个主要部分:Backbone、Neck和Head。
- Backbone:YOLOv4采用了CSPDarknet53作为主干网络。CSPDarknet53的设计中,使用了交叉阶段部分(CSP)技术,通过将特征图分成两部分进行处理,能够有效提取高层次的语义信息并减少计算量。此外,CSPDarknet53还使用了残差连接和稠密连接,提高了特征提取的效率。
- Neck:YOLOv4在Neck部分使用了PANet(路径聚合网络)。PANet的主要作用是通过多层特征融合来增强特征表达能力,从而提高小物体的检测性能。它构建了一种特征金字塔,可以将不同层级的特征信息进行有效融合,使得模型能够在多个尺度上进行目标检测。同时,PANet还通过自底向上的特征传播,捕捉更丰富的上下文信息,增强了小物体的检测能力。
- Head:YOLOv4的输出层设计允许模型在多尺度下进行目标检测。具体实现中,模型将特征图分为三个不同的尺度,分别进行预测。这种多尺度检测策略有效提升了模型对不同尺寸目标的检测能力。
YOLOv4的做法
1。数据增强
Bag of freebies 指的是那些不增加模型复杂度,也不增加推理的计算量,通过改进模型和数据的预处理,来提高模型的准确度。
增加训练成本,显著提高精度,不影响推理速度
数据增强:调整亮度,对比度,色调,随机缩放,剪切,翻转,旋转,
网络正则化 方法:Dropout,Dropblock等
类别不平衡,损失函数设计
数据增强-马赛克数据增强
Random Erase:用随机值活训练集的平均值替换图像区域
Hide and Seek:随机设置隐藏一些补丁
DropBlock
DropBlock是一种正则化技术,主要用于深度神经网络的训练,特别是针对卷积神经网络(CNN)中的特征图。相比于传统的Dropout技术,DropBlock不是随机屏蔽掉一部分特征(注意是对特征图进行屏蔽),而是随机屏蔽掉多个部分连续的区域。这种方法有助于减少神经网络中的冗余连接,从而提高模型的泛化能力。
2.损失函数的改进
IOU损失,即交并比损失(Intersection over Union Loss),是一种衡量预测边界框与真实边界框重叠程度的损失函数。以下是对IOU损失的详细介绍:
IOU损失的定义基于交并比(Intersection over Union,IoU),IoU是两个边界框交集与并集的比值。IOU损失的计算公式为:
IOU Loss = 1 - IoU
其中,IoU的计算公式为:
IoU = (预测框与真实框的交集面积) / (预测框与真实框的并集面积)
- 评估指标:IOU是评估预测边界框与真实边界框重叠度的常用指标,IOU值越高,表示预测框与真实框的重叠程度越高,即预测结果越准确。
- 损失函数:IOU损失函数通过计算预测框与真实框之间的IoU差值,为模型提供了一个直观的训练信号。通过最小化IOU损失函数,可以优化目标检测模型的预测准确度。
- GIoU Loss(Generalized Intersection over Union Loss):GIoU Loss在IOU的基础上增加了对边界框形状的考虑,不仅考虑重叠区域,还考虑边界框的大小和比例。它引入了一个惩罚项,用于衡量预测边界框与真实边界框之间的最小闭包区域面积的差异,从而帮助模型在边界框不重叠时也能进行有效的学习。
- DIoU Loss(Distance Intersection over Union Loss):DIoU Loss进一步考虑了边界框中心点之间的距离,以减少因边界框中心偏离而导致的不准确度。它引入了一个归一化的距离项,用于衡量预测边界框与真实边界框中心点之间的欧氏距离与最小闭包区域对角线长度之间的比例关系。通过最小化DIoU Loss,模型可以学习到更加准确的边界框位置和形状。
- CIoU Loss(Complete Intersection over Union Loss):CIoU Loss是一种更为全面的损失函数,它综合了IOU、GIoU和DIoU的考量,并加入了对宽高比的评估。通过同时考虑重叠区域、边界框形状、中心点距离和宽高比等多个因素,CIoU Loss能够提供更为准确和全面的边界框回归指导。