YOLOv4 中的数据增强

【YOLOv5-6.x】数据增强代码解析 文章目录前言像素级数据增强HSV色域变换旋转Rotation缩放Scale翻转Flip平移Translate剪切Shear透视Perspective三种常用的图片级数据增强MixupCutoutCutmixMosaic数据增强完整代码及数据Reference 前言 本文使用的YOLOv5版本为v6.1,对YOLOv5-6.x网络结构还不熟悉的同学,可以移步至:【YOLOv5-6.x】网络模型&源码解析 想要尝试改进YOLOv5-6.1的同学,可以参考以下几篇博客: 【魔改YOLOv5-6.x(上)】 阅读详情

作者 | Jacob Solawetz

编译 | ronghuaiyang

导读

YOLOv4的秘密并不在网络结构上,而在数据准备上。

目标检测领域继续快速发展。不到两个月前,谷歌Brain团队发布了针对物体检测的EfficientDet,挑战了YOLOv3作为(接近)实时物体检测的首要模型的地位,并推动了物体检测的可能性。我们写了一系列的文章,比较YOLOv3和EfficientDet,在自定义的数据上训练YOLOv3,在自定义的数据上训练EfficientDet,我们发现了令人印象深刻的结果。

发布的YOLOv4显示,COCO的平均精度(AP)和每秒帧数(FPS)分别提高了10%和12%。在这篇文章中,我们将看到作者是如何通过深入研究YOLOv4中使用的数据增强技术的细节来实现这一突破的。

马赛克增强的发明人Glen Jocher发布了一个名为YOLOv5的新的YOLO训练框架。你可能还想看看我们关于YOLOv5 vs YOLOv4的文章,这篇文章将解释新的YOLOv5框架的一些优点。

YOLOv4的Freebies都有些什么?

YOLOv4的作者在他们题为 “bag of freebies” 的论文中包括了一系列的贡献。这是一系列可以在不增加推断时间延迟的情况下提高模型性能的步骤。由于它们不影响模型的推断时间,所以大多数都是对训练pipeline的数据管理和数据增强进行了改进。这些技术改进并增强了训练集,让模型可以看到原本看不到的场景。计算机视觉中的数据增强是充分利用数据集的关键,最新的研究继续验证这个假设。

计算机视觉中的数据增强

图像增强从现有的训练数据中创建新的训练样本。不可能真正为我们的模型在推理中要看到的每个真实场景捕捉一个图像。因此,调整现有的训练数据以适用于其他情况,可以使模型从更广泛的情况中学习。

YOLOv4的作者列举了一些最终让他们加入bag of freebies的技术。我们在下面提供一个概述。

畸变

光照畸变 — 这包括在一个图像中改变亮度,对比度,饱和度和噪声。

调整图像亮度

几何畸变 — 这包括随机缩放,裁剪,翻转,和旋转。这些类型的增强可能特别棘手,因为包围框也会受到影响,并且必须更新。

翻转图像

这两种方法都是像素级调整,也就是说通过一系列变换可以很容易地恢复原始图像。

图像遮挡

随机擦除 — 这是一种数据增强技术,将图像的区域替换为随机值,或者是训练集的平均像素值,通常采用不同比例的擦除图像和擦除区域的高宽比来实现。在功能上,这成为了一种正则化技术,它可以防止我们的模型记忆训练数据和过拟合。

Cutout —  在训练中掩盖一个正方形区域。Cutout 区域只对CNN的第一层隐藏。这与随机擦除非常相似,但是在遮挡中使用的是一个常数值。目的是相似的:减少过拟合。

Hide and Seek — 将图像分割成一个由SxS patch组成的网格。以一定的概率隐藏每个补丁(p_hide)。这允许模型了解物体的样子,而不只是学习物体的单个部分是什么样子。

Grid Mask — 图像的区域被隐藏在一个网格中。类似于捉迷藏,这迫使我们的模型学习组成物体的组成部分。

MixUp — 图像对及其标签的凸叠加。

YOLOv4中使用的数据增强策略

现在我们将了解一下YOLOv4在训练期间使用的数据增强策略。研究过程的特点是一系列的实验,所以我们可以想象,作者实验了更多的策略,但没有进入最终的论文。这进一步证明,在自定义视觉任务中,在自己的训练/测试集上探索各种数据增强策略是很重要的。

CutMix — 通过从一个图像中切割一部分并将其粘贴到增强图像上来组合图像。图像的裁剪迫使模型学会基于大量健壮的特征进行预测。看上面的 “Hide and Seek”,没有裁剪,模型特别依赖狗的头来做预测。如果我们想准确地识别一只头藏在灌木丛后面的狗,这就有问题了。在CutMix中,用另一幅图像的一部分以及第二幅图像的ground truth标记替换该切块。在图像生成过程中设置每个图像的比例(例如0.4/0.6)。在下面的图片中,你可以看到CutMix的作者是如何演示这种技术比简单的MixUp和Cutout效果更好。

马赛克数据增强 — 马赛克数据增强将4张训练图像按一定比例组合成1张。Mosaic是YOLOv4中引入的第一个新的数据增强技术。这使得模型能够学习如何识别比正常尺寸小的物体。它还鼓励模型在框架的不同部分定位不同类型的图像。

类标签平滑 — 类标签平滑不是一个图像处理技术,而是一个直观的对类标签的改变。通常情况下,正确的边界框分类是用类的独热向量[0,0,0,1,0,0,…]来表示,并据此计算损失函数。然而,当一个模型的预测值接近1.0时,它往往会出现错误、过拟合以及在某种程度上过度关注其他预测的复杂性。根据这种直觉,对类标签表示进行编码以在某种程度上衡量不确定性更为合理。通常情况下,作者选择0.9,所以用[0,0,0,0.9,0…]来代表正确的类。

自对抗训练(SAT) — 该技术通过对输入图像的变换,利用模型的状态来通知漏洞。首先,图像经过一个正常的训练步骤。然后,与其通过权重向后传播,损失信号被用来以一种对模型最有害的方式改变图像。在随后的训练中,模型被迫面对这个特别困难的例子并学习它。在我们这里介绍的技术中,这一技术可能是最不直观的,也是最接近于建模方面的技术。

????现在我们有一个YOLOv4中数据增强技术的全面的视图!

在你自己的计算机视觉项目中使用数据增强

我们很高兴地看到,模型性能方面的进步很关注数据的增强,就像关注模型架构一样。在看到YOLOv4和YOLOv3在数据增强方面的区别后,我们怀疑这些 “bag of freebie” 技术对任何架构都有用。

英文原文:

https://towardsdatascience.com/data-augmentation-in-yolov4-c16bd22b2617

欢迎扫码添加小编为好友,共同进步:

YOLOV4-Mosaic数据增强详解 Mosaic数据增强 Mosaic数据增强方法是YOLOV4论文中提出来的,主要思想是将四张图片进行随机裁剪,再拼接到一张图上作为训练数据。这样做的好处是丰富了图片的背景,并且四张图片拼接在一起变相地提高了batch_size,在进行batch normalization的时候也会计算四张图片,所以对本身batch_size不是很依赖,单块GPU就可以训练YOLOV4。 以下是我根据pytorch YOLOV4的代码对Mosaic数据增强进行的整理。 图1 部分代码展示: oh, ow, oc = img 阅读详情

相关推荐

用opencv实现yolov4中的mosaic数据增强

简单看了一个yolov4的介绍,mosaic数据增强简单说就是四张图片合一,长宽随机变化。理想的实现是结合图片集和标签集,对单张图片标注过之后,四张合一的图片就不用再标注。这里只做一个简单的实现,仅仅把四张图片随机合一,生成mosaic图片集,后面需要对这个生成的图片标注。 c++程序: #include <opencv2/opencv.hpp> #include ...

sinat_41852207的博客 4735

YOLOv4中的数据增强

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”作者:Jacob Solawetz编译:ronghuaiyang导读YOLOv4的秘密并不在网络结构上,而在数据准备上。目标检测...

AI公园 6990

cut out数据增强_YOLOv4中的数据增强

目标检测领域继续快速发展。不到两个月前,谷歌Brain团队发布了针对物体检测的EfficientDet,挑战了YOLOv3作为(接近)实时物体检测的首要模型的地位,并推动了物体检测的可能性。我们写了一系列的文章,比较YOLOv3和EfficientDet,在自定义的数据上训练YOLOv3,在自定义的数据上训练EfficientDet,我们发现了令人印象深刻的结果。发布的YOLOv4显示,COCO的...

weixin_42356137的博客 594

马赛克数据增强 mosaic

马赛克数据增强

VIEO 4999

目标检测的Tricks | 【Trick7】数据增强——Mosaic(马赛克)

如有错误,恳请指出。 在之前的博客中也有提及到mosaic这种数据增强,然后用这篇博客来进行详细介绍。 文章目录1. Mosaic概要介绍2. Mosaic算法步骤3. Mosaic实现代码4. Mosaic代码说明 1. Mosaic概要介绍 mosaic是yolov4提出的一个tricks,其思路就是将四张图片进行随机裁剪,再拼接到一张图上作为训练数据。这样做的好处是丰富了图片的背景,并且四张图片拼接在一起变相地提高了batch_size,在进行batch normalization的时候也会计算四.

Clichong 1万+

计算机视觉 - 了解Mosaic数据增强

一、简述数据增强包含各种扩展和增强机器学习和深度学习模型数据集的技术。这些方法跨越不同的类别,每种方法都会改变数据以引入多样性并提高模型的稳健性。几何变换(例如旋转、平移、缩放和翻转)会修改图像方向和结构。颜色和对比度调整会改变图像外观,包括亮度、对比度和颜色抖动变化。噪声注入(例如添加高斯噪声或椒盐噪声)会引入随机变化。剪切、滤除和混合技术(例如 Mixup 和 CutMix)会修改图像或其组件以创建新样本。此外,马赛克增强可以从多个原始图像构建合成图像,使数据全面多样化。

学以致用 知行合一 2438

【YOLOv4探讨 之三】mosaic数据增强

最近太忙,久未更新,对不住大家。进入正题,我们聊一聊YOLOv4中使用的mosaic数据增强。关于mosaic数据增强相关文章不少,三个月前这个方面的学习开了个头,那时候各路诸侯都是以TensorFlow框架为主,我这里依然坚持分析研究darknet框架下的数据增强。 mosaic数据增强原理 YOLOv4中在载入图片数据时同步进行mosaic数据增强。 mosaic数据增强基本原理就是在训练集中随机选择若干个(一般是4个)图像,经过裁剪拼接形成新的训练集元素,可以缓解训练集元素少或者增强识别能力,是cut

北溟客的博客 1万+

成分数据的闭合效应对地球化学数据的影响及其解决方案

封闭效应 (Closure Effect),也称为常数和效应 (Constant Sum Effect),是地球化学数据分析中一个需要特别注意的统计现象。它的产生是由于我们通常使用成分数据 (Compositional Data)百分比 (%)百万分率 (ppm)由于这些数据表示的是各组分占总体的比例,它们的总和必然是一个常数 (例如 100% 或 1,000,000 ppm)。这意味着每个元素的含量不是独立的,而是与其他元素的含量相互制约。改变其中一个元素的含量必然会影响其他元素的相对比例。

qq_59349063的博客 1538

睿智的目标检测28——YoloV4当中的Mosaic数据增强方法

睿智的目标检测28——YoloV4当中的Mosaic数据增强方法学习前言什么是Mosaic数据增强方法实现思路全部代码 学习前言 哈哈哈!我又来数据增强了! 什么是Mosaic数据增强方法 Yolov4的mosaic数据增强参考了CutMix数据增强方式,理论上具有一定的相似性! CutMix数据增强方式利用两张图片进行拼接。 但是mosaic利用了四张图片,根据论文所说其拥有一个巨大的优点是...

Bubbliiiing的学习小课堂 4万+

SAP MM委外加工保姆级教程:从BOM配置到MIGO发货的完整避坑指南

本文提供SAP MM模块中委外加工的完整操作指南,涵盖从BOM配置到MIGO发货的全流程。详细解析委外采购和工序委外两种模式,包括主数据配置、采购订单创建及物料移动等关键步骤,帮助用户规避常见错误,提升供应链管理效率。特别适合制造业企业实施SAP外包业务参考。

weixin_26905487的博客 529

如何更好的理解PFC(功率因数校正)

此电路虽然简单,可以在前期设计的无PFC功能的设备上,简单的增加一个合适的电感(适当的选取L和C的值),从而达到具有PFC的作用,但是这种简单的、低成本的无源PFC输出纹波较大,滤波电容两端的直流电压也较低,电流畸变的校正及功率因数补偿的能力都很差,而且L的绕制及铁芯的质量控制不好,会对图像及伴音产生严重的干扰,只能是对于前期无PFC设备使之能进入市场的临时措施。)在t4~t5期间尽管二极管左边电压在逐步上升,但是由于二极管右边的Uc放电缓慢右边的电压Uc仍旧大于左边,二极管仍旧反偏截止。

U_YAO的博客 951

Yolov4 mosaic 数据增强

mosaic 数据增强 Yolov4的mosaic 数据增强是参考CutMix数据增强,理论上类似,CutMix的理论可以参考这篇CutMix,但是mosaic利用了四张图片,据论文其优点是丰富检测物体的背景,且在BN计算的时候一下子会计算四张图片的数据,使得mini-batch大小不需要很大,那么一个GPU就可以达到比较好的效果。 实现方法 伪代码: for data, target in ba...

popoffpopoff的博客 2万+

COCO数据集缺失文件补全方法

本文代码是以目标检测(object detection)和实例分割(instance segmentation)任务的标签文件为例,即文件。其他任务的标签文件内容略有不同,但是图片来源表示字段完全相同,因此代码可通用。另外如果是非2017版本COCO应该也通用。msgspec是一个高性能的序列化和验证库,支持 JSON、MessagePack、YAML 和 TOML 等多种格式。高性能:在常见协议的编码/解码中表现出色,通常比其他库快10-80倍。零成本的模式验证。

qq_46396470的博客 1996

4. Yolov8 Mosaic数据增强详解

Mosaic数据增强

YXD0514的博客 1万+

如何使用 Python 爬虫爬取滴滴打车信息:获取司机和乘客数据

滴滴打车作为中国最大的打车平台之一,提供了丰富的司机和乘客数据,包括司机的车辆信息、乘客的评价、行程数据等。公开的司机和车辆信息(如司机的名字、车辆类型、评价等)可以通过网页直接获取,而乘客的个人信息和具体行程数据通常会受到隐私保护。在滴滴打车的网页中,司机的信息可能以特定的 HTML 标签存在,例如包含司机名称、车辆类型、车辆等级等信息。我们需要分析网页的 HTML 结构,找到这些数据所在的标签。同时,对于涉及到隐私的用户数据(如乘客的行程信息、用户评价等),我们必须特别谨慎,避免侵犯他人的隐私。

2201_76125261的博客 1918

2025年全国青少年信息素养大赛初赛真题(算法创意实践挑战赛C++初中组:文末附答案)

2025年全国青少年信息素养大赛初赛真题(算法创意实践挑战赛C++初中组:文末附答案)

王老师青少年编程 3399

YOLOv4的Tricks解读一 --- 多图融合的数据增强(MixUp/CutMix/Mosaic)

目录数据增强MixUpCutMix==Mosaic==正则化DropOut==DropBlock== YOLOv4中红涉及到了一推的trick,可以说是目标检测的trick字典,而YOLOv4是精挑细选了一些Trick才使YOLOv4在速度和准确度上相比YOLOv3有了更大的提升。 本文就YOLOv4中涉及和采用的部分tricks进行总结和学习。(注:标题标红的trick为YOLOv4所采用) YOLOv4 = CSPDarknet53 + SPP + PAN + YOLOv3 而YOLOv4采用的tric

梦坠凡尘 1万+

【异常】飞书OpenClaw机器人 HTTP 401: Invalid Authentication 报错排查与解决方案

HTTP 401 是HTTP协议标准定义的未授权(Unauthorized)状态码,核心含义为请求方身份认证无效,服务端拒绝执行本次请求。飞书开放平台服务端对自建机器人的全链路鉴权校验失败。无论是机器人接收飞书事件推送的上行请求,还是机器人主动调用飞书开放平台API的下行请求,只要身份凭证无效、鉴权逻辑校验不通过,飞书服务端就会返回该报错,并最终透传到飞书客户端会话窗口中。

奶爸的编程之路,也就一周冷个三天 3765

浅谈yolov4中的一部分数据增强

浅谈yolov4中的数据增强前言数据增强数据增强步骤1.对图片进行水平翻转2.对图片进行缩放3.对图片HSV色域变换4. Mosaic数据增强5. 总代码 前言 在接下来的几天,我将解读yolov4,yolo系列一直是很火的目标检测算法。我特别喜欢yolov4。而今天我们来谈下数据增强。 数据增强 计算机视觉中的图像增强,是人为的为视觉不变性(语义不变)引入了先验知识。数据增强也基本上成了提高模型性能的最简单、直接的方法了。首先增强的样本和原来的样本是由强相关性的(裁剪、翻转、旋转、缩放、扭曲等几何变换,还

qq_35914625的博客 3491

OpenHarmony AI系列:神经网络处理单元(NPU)驱动架构与实现详解

NPU(Neural Processing Unit,神经网络处理单元)是专门为神经网络计算设计的硬件加速器。在OpenHarmony系统中,NPU驱动是通过NNRT(Neural Network Runtime,神经网络运行时)框架实现的,它作为中间桥梁连接上层AI推理框架和底层NPU硬件,实现AI模型的跨芯片推理计算。

m0_67505153的博客 665

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

YoloV4当中的Mosaic数据增强方法(附代码讲解)

上一期中讲解了图像分类和目标检测中的数据增强的区别和联系,这期讲解数据增强的进阶版- yolov4中的Mosaic数据增强方法以及CutMix。前言Yolov4的mosaic数据增强参考...

哆啦A梦爱学习的博客 8176

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【python3】YOLOv4中的Mosaic数据增强方式代码

YOLOv4中的Mosaic数据增强方式实现代码 Mosaic是一种通过混合4张训练图像的数据增强方式,示例如下图,这样做也同时混合了四张图片的语义,目的在于使被检测的目标超出它们普遍的语义,使得模型具有更好的鲁棒性。同时,这样做使得训练时的批量归一化(Batch Normalization,BN)操作一次统计了4张图像,能够很好的降低训练时最大的mini-batch的大小。 详细具体步骤代码参考行文最后链接; 裁剪图片为了拼接: # Generate sub-image data c

froot的博客 1785

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

数据增强:YoloV4当中的Mosaic数据增强方法

代码:https://github.com/bubbliiiing/yolo3-pytorch 对数据集转换成VOC格式,代码与上面可得。 yolo3整体的文件夹构架如下: 本文使用VOC格式进行训练。 训练前将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。 训练前将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。 在训练前利用voc2yolo3.py文件生成对应的txt。 再运行根目录下的voc_annotation

qq_44787464的博客 1499

mosaic数据增强_YoloV4当中的Mosaic数据增强方法(附代码详细讲解)

上一期中讲解了图像分类和目标检测中的数据增强的区别和联系,这期讲解数据增强的进阶版- yolov4中的Mosaic数据增强方法以及CutMix。前言Yolov4的mosaic数据增强参考了CutMix数据增强方式, 是CutMix数据增强方法的改进版。不同于一般的数据增强的方式是对一张图片进行扭曲、翻转、色域变化,CutMix数据增强方式是对两张图片进行拼接变为一张新的图片,然后将拼接好了的图片传...

weixin_39558804的博客 1355
上一篇: PyCharm vs VSCode,是时候改变你的 IDE 了!
下一篇: TensorFlow基础入门十大操作总结
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值