YOLO——yolo v4(1)
文章目录
- 一、Bag of freebies
- 1.数据增强
- (1)马赛克数据增强
- (2)Random Erase
- (3)Hide and Seek
- (4)Self-adversarial-training(SAT)
- 2.标签平滑
- 二、Dropblock正则化
YOLOv4是一种先进的目标检测算法,它在YOLO系列的基础上进行了多项改进和优化。
一、Bag of freebies
指的是那些不增加模型复杂度,也不增加推理的计算量,通过改进模型和数据的预处理,来提高模型的准确度。常见技巧有数据增强、标签平滑等
1.数据增强
通过对输入图像进行各种变换(如旋转、翻转、裁剪、调整亮度、对比度等)来增加数据的多样性,从而提高模型的泛化能力。数据增强技术大大丰富了检测数据集,提高了网络的鲁棒性。v4改进中主要采用了马赛克数据增强、Random Erase、Hide and Seek和Self-adversarial-training(SAT)等数据增强方法。
(1)马赛克数据增强
马赛克数据增强是一种通过将多张图片裁剪并拼接成一张新图片的数据增强方法。这种方法能够增加数据的多样性,提高模型的泛化能力,防止过拟合。
在v4中就使用了马赛克数据增强的方法,在拼接过程中,每张图片都被裁剪成随机大小和位置的部分,并组合在一起形成一张新的图片,同时对应新的图片标签。如下图:
从图中可以看出经过cutmix后的图像各项指标都得到提高,经过多次的测试,我们发现将4张图片进行拼接对应的效果最好。
(2)Random Erase
训练过程中随机选择图像中的一个区域用随机值或训练集的平均像素值替换该区域的像素值,从而生成具有不同遮挡级别的训练图像。有助于降低过拟合的风险,并提高模型的鲁棒性。
(3)Hide and Seek
通过随机遮挡图像中的部分区域,迫使模型学习利用其他区域的特征来识别物体。
(4)Self-adversarial-training(SAT)
通过引入噪音点来增加学习的难度,让神经网络反向更新图像,对图像做改变扰动,然后在这个图像上训练,从而得到鲁棒性更强的模型。有助于防止模型在训练过程中过拟合,并提高模型对未见数据的泛化能力。
2.标签平滑
将传统的硬标签(hard label)转换为软标签(soft label),以减少模型对训练数据的过度自信,从而防止过拟合并提高模型的泛化能力。
在传统的分类问题中,通常使用one-hot编码来表示目标标签,即正确类别的位置为1,其余为0。然而,这种表示方式过于绝对,容易导致模型对训练数据产生过度自信,进而引发过拟合。通过标签平滑,可以将硬标签中的1替换为一个接近但小于1的数值(如0.95),并将剩余位置上的0替换为较小的正数(如0.1/类别总数),从而生成一个软标签。
二、Dropblock正则化
DropBlock是谷歌在2018年提出的一种用于卷积神经网络(CNN)的正则化方法。这是一种用于解决过拟合问题的技术,在训练神经网络时非常有用。过拟合问题是指在训练集上表现很好,但在测试集上表现不佳的问题。
与传统的Dropout方法相比,DropBlock不是随机屏蔽掉一部分特征(注意是对特征图进行屏蔽),而是随机地屏蔽一块区域的神经元。这种结构化的随机失活机制有助于减少过拟合,特别是在数据集相对较小的情况下。通过在网络中引入结构化的失活,DropBlock可以防止模型过于依赖某些局部特征,从而提高模型的泛化能力。