【局部自动数据增强】YOCO:将图片一分为二,各自增强后拼合为一

news2024/9/20 14:42:02

【自动数据增强】YOCO:将图片一分为二,各自增强后拼合为一

    • 核心思想
      • 好在哪里?
      • 切哪里、切几次?
      • 何时用?
    • 总结

 


核心思想

论文:https://arxiv.org/pdf/2201.12078.pdf

代码:https://github.com/JunlinHan/YOCO.git
 

YOCO将一张图片分割成两个相等的部分,可以是在高度或宽度方向上。

然后在每个部分内独立执行相同的数据增强操作。

增强后的部分再拼接回一个完整的增强后的图像。

上方的例子显示了YOCO应用于“颜色抖动(Color jitter)”增强的结果,两个部分都进行了增强,生成了一个多样化的完全增强后的图像。

  • 就像把一张照片撕成两半,每半上做不同的变化,这样电脑就能学会怎么分辨图片的不同部分。

下方的例子展示了YOCO应用于“水平翻转(Horizontal flip)”,只有左侧部分进行了增强,生成了一个部分增强的图像。

  • 就好比我们不只从一个方向看一个苹果,而是转来转去看看它的每一面。

通过这种方式,YOCO增加了单个样本的增强多样性,并鼓励神经网络从部分信息中识别对象。

好在哪里?

YOCO 这种数据增强方法好在哪里呢?

现有的数据增强方法大多在图像级别进行,而标准的图像级数据增强忽略了局部区域的特征。

就像所有的食材全都放在一个大碗里搅拌,这样每一口吃上去味道都差不多,整张图片都做一样的变化。

  • 解法:YOCO方法,局部增强应用。
    • 介绍: YOCO通过在非图像级别(片段级别)上执行相同的增强,提高了样本的局部区域多样性,促进神经网络从部分信息中识别对象,从而提高鲁棒性。

YOCO作为一种新的数据增强方法,它的目的是通过在图像的不同部分独立进行增强来提高数据的多样性,这对于提高模型在识别部分信息时的性能特别有用。

加入随机性

  • 这就像咱们在每次做菜时,把食材分成两份,然后在两个小碗里。
  • 这次咱们可能在一个碗里多放点盐,在另一个碗里多加点醋,或者一个碗里用辣椒,另一个不用。
  • 这样一来,每个碗里的食材都有自己独特的味道,最后咱们再把它们混在一起,每一口的味道都有惊喜,就好比YOCO在不同片段上应用不同的随机增强,让模型学会认识更多样化的图片。

多次切割

  • 而如果咱们把食材切得更细,分成更多的小碗,每个小碗里都调整不同的味道,那么最后混合起来的菜肴就更加丰富多彩了。
  • 这就像YOCO在图像的不同方向上多次切割,然后在每一小块上都做不同的调整,这样模型就能从更多角度学习到图像的信息,就像咱们尝到了更多层次的美味一样。

所以,用YOCO的方式做数据增强,就像做了一道口味丰富,层次分明的大餐,让电脑在识别图片的时候,不仅能看到表面,还能品味到每一小块带来的不同信息,这样学到的就更全面,处理问题的能力也就更强了。

 

切哪里、切几次?

YOCO就好像是在做蛋糕时决定要怎么切它,以便在每一块上都涂上不同的奶油。

问题一,切哪里好呢?

就像咱们决定是从中间切开还是随便切一刀。

YOCO用的方法就像扔硬币,让机会来决定切哪里。

为什么这么做呢?

因为有时候切在中间可能让蛋糕两边的味道更均衡,有时候随机切又能带来意外的惊喜。

这就是为什么他们用随机的方式来决定切割位置,想看看哪种方法能让蛋糕(也就是数据)更有味道。

 
问题二,切几刀好呢?

这就像是咱们决定是切成两块、三块还是四块。

开始的时候,他们试了切一刀、两刀和三刀,看看哪种方式能让蛋糕(数据)变得更有趣。

但他们发现切得太多了,蛋糕(数据)就变得太复杂,每块都有不同的味道,反而让人难以享受(学习)。

所以,最后他们发现,通常切一刀就够了,这样能保持蛋糕(数据)的多样性,又不至于太复杂。

总的来说,YOCO就像是在做蛋糕时找到最好的切割方法。

通过实验,他们发现随机选择切割位置并且只切一刀,是最好的方式。

这样做的蛋糕(数据)既有趣味性又不会太乱,让电脑(吃蛋糕的人)更容易学习和享受。

 

何时用?

何时好用:

  1. 在多样性重要的情况下: 如果你的数据集包含多样化的图像,或者你需要模型从不完整或部分信息中学习识别对象,那么YOCO是一个很好的选择。

    因为YOCO通过在不同部分的图像上应用增强,能增加数据的多样性,帮助模型更好地理解和处理各种场景。

  2. 在需要高泛化能力的场景中: 当你的目标是提高模型在各种条件下的表现,特别是在未见过的或者变化大的数据上时,使用YOCO可以提高模型的泛化能力。

    这是因为YOCO能让模型接触到更多变化的数据样本,从而更好地适应新情况。

何时不太好用:

  1. 在特定类型的图像上: 对于一些特定类型的图像,比如结构固定、容易识别的对象图像(比如一些数据集中的标志性物体),使用YOCO可能不是最佳选择。

    例如,在进行水平翻转的增强时,如果图像是一个标志性的物体占据了大部分画面,使用YOCO可能会破坏图像的结构和一致性,导致模型学习效果变差。

  2. 在裁剪比率固定的数据集上: 如果数据集中的图像都有固定的裁剪比率,这意味着图像中的对象位置和大小相对固定,这时使用YOCO可能不会带来额外的好处。

    因为YOCO的优势在于处理多样性和不确定性较高的数据,而在这种情况下,标准的图像级增强可能就足够了。

在需要提高数据多样性和模型泛化能力的场景下,YOCO是一个强大的工具。

但在处理结构简单、容易识别的对象或者裁剪比率固定的数据集时,不如传统数据增强。

 


总结

YOCO 组成:

  1. 子问题1:如何增强数据,使神经网络能从部分信息中学习并识别对象?
    • 子解法1:图像分割与独立增强。
      • 介绍: YOCO通过将图像分割成两部分,并在每部分上单独进行数据增强,从而提高样本的多样性。这种方法使神经网络能够更好地从部分信息中学习和识别对象。

· 假设有一张狗的照片。

· 使用YOCO,我们将这张照片分割成两半。

· 在一半上,我们可能加入颜色变化,而在另一半上,我们可能增加模糊效果。

· 这样,神经网络在训练时就不仅仅关注整张图片,而是学习从每个片段中提取有用信息,比如即使只看到狗的一半或者在图像不清晰的情况下也能识别出狗。

  1. 子问题2:如何处理图像级别的增强方法,可能导致的泛化能力和鲁棒性不足的问题?

    • 子解法2:片段级别的数据增强。
      • 介绍: YOCO在非图像级别(即片段级别)进行数据增强,能够在局部区域和整体图像级别上提高多样性,增强模型的泛化能力和鲁棒性。

     
    一组多样化的风景照片。

    如果我们仅在整张照片上应用数据增强(如调整亮度),可能会忽略图片中特定区域的细节。

    但如果使用YOCO,我们可以对图片的一部分进行亮度调整,而对另一部分应用不同的增强,比如对比度增强。

    这样的处理提高了整个数据集在不同增强效果下的表现能力,从而增强了模型在多种环境条件下的适应性。

  2. 子问题3:如何在对比性自监督学习中,提高表示的强度和转移能力?

    • 子解法3:YOCO在对比性预训练中的应用。
      • 介绍: 在对比性自监督学习中应用YOCO,可以产生更强大的表示,这些表示更容易转移到不同的任务中,如分类、检测和分割。

     
    假设我们正在使用自监督学习模型来学习交通标志的表示。

    通过YOCO的应用,模型可能会接触到部分是增强过的交通标志图片,

    比如一半是正常颜色,另一半是更暗的色调。

    这种训练方式使模型能够学习到更丰富和强大的特征表示,从而当它被应用于实际的交通标志检测任务时,无论交通标志处于何种光照或背景条件下,模型都能更准确地进行识别。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1424553.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux逻辑卷(LV)扩容

Linux逻辑卷(LV)扩容 1、准备物理磁盘(分区和不分区都行),可以使用lsblk命令查看新增的磁盘,如下图sde就是我们新增磁盘,容量为600G。 2、将新磁盘变成物理卷(PV) pvcr…

windows平台使用tensorRT部署yolov5详细介绍,整个流程思路以及细节。

目录 Windows平台上使用tensorRT部署yolov5 前言: 环境: 1.为什么要部署? 2.那为什么部署可以解决这个问题?(基于tensorRT) 3.怎么部署(只讨论tensorRT) 3.0部署的流程 3.1怎…

Java动态修改用户Session实战-简单实例准备

锋哥原创的Java动态修改用户Session实战: Java动态修改用户Session实战课程_哔哩哔哩_bilibiliJava动态修改用户Session实战课程,管理员可以修改任意一个用户的session信息作者:java1234_小锋站点:www.java1234.vip喜欢的朋友点赞…

协程 Coroutine 到底是个啥?

看了很多博客,也看了些在线课堂的课程。大神们说的协程 Coroutine 的概念,一直含糊不清。今天自己动手做做实验理解下。 1. 代码如下 private const val i1 1000000000class MainViewModel : ViewModel() {companion object {private const val TAG …

MySQL数据库基础第一篇(SQL通用语法与分类)

文章目录 一、SQL通用语法二、SQL分类三、DDL语句四、DML语句1.案例代码2.读出结果 五、DQL语句1.DQL-基本查询2.DQL-条件查询3.DQL-聚合函数4.DQL-分组查询5.DQL-排序查询6.DQL-分页查询7.DQL语句-执行顺序1.案例代码2.读出结果 六、DCL语句1.DCL-管理用户2.DCL-权限控制1.案例…

C++ 数论相关题目:容斥原理。能被整除的数

给定一个整数 n 和 m 个不同的质数 p1,p2,…,pm 。 请你求出 1∼n 中能被 p1,p2,…,pm 中的至少一个数整除的整数有多少个。 输入格式 第一行包含整数 n 和 m 。 第二行包含 m 个质数。 输出格式 输出一个整数,表示满足条件的整数的个数。 数据范围 1≤m≤16 ,…

中移(苏州)软件技术有限公司面试问题与解答(5)—— Linux进程调度参数调优是如何通过代码实际完成的1

接前一篇文章:中移(苏州)软件技术有限公司面试问题与解答(0)—— 面试感悟与问题记录 本文对于中移(苏州)软件技术有限公司面试问题中的“(11)Linux进程调度参数调优是如…

python-自动化篇-办公-文件-加解密

解说 要使⽤Python进⾏⽂件的加密和解密,可以使⽤第三⽅加密库,如cryptography或pycryptodome。 ⼀个基本的⽰例,演⽰如何使⽤cryptography库对⽂件进⾏加密和解密: 安装cryptography库: pip install cryptography⽂…

docker中三种常用的持久化数据的方式

文章目录 介绍1.docker run -v2.volumes3.bind mounts 介绍 “前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。” 在Docker中,有以下三种常用的持久化数据的方式,可…

AI智能分析+明厨亮灶智慧管理平台助力“舌尖上的安全”

春节是中国最重要的传统节日之一,在春节期间,人们聚餐需求激增,餐饮业也迎来了高峰期。在这个时期,餐饮企业需要更加注重食品安全和卫生质量,以保证消费者的健康和权益,明厨亮灶智慧管理成为了餐饮业中备受…

代码随想录刷题第21天

第一题是二叉搜索树的最小绝对差,初始思路是中序遍历将二叉搜索树转换为有序数组,在有序数组中进行遍历。一遍过了。(手机打代码真的麻烦)看卡哥讲解会了双指针法遍历。 第二题是二叉搜索树中的众数,还是只想到了中序…

基于spring boot实现邮箱发送和邮箱验证

目录 一、邮箱发送实现1. 开通邮箱服务2. 添加邮箱依赖3.添加配置4.添加邮箱通用类5. 测试类 二、邮箱验证实现1.添加依赖2. 添加配置3.添加controller4. 测试 项目地址: https://gitee.com/nssnail/springboot-email 一、邮箱发送实现 1. 开通邮箱服务 使用qq邮箱、163邮箱都…

1月无代码资讯 | 两项低代码无代码行业报告相继重磅发布;GitHub Copilot Chat全面开放使用

栏目导读:无代码资讯栏目从全球视角出发,带您了解无代码相关最新资讯。 TOP3 大事件 1、ResearchAndMarkets.com "低代码无代码开发平台市场—— 2018-2028 年全球行业规模、份额、趋势、机遇及预测"报告发布 据雅虎财经近日资讯显示&#xf…

推荐一个可以采集众多国内外电商网站数据的API接口【附请求代码】

目前专门针对各大电商平台的数据分析工具很多,也支持数据导出。如针对亚马逊的helium10和junglescout等。 但这些工具对于需要随时跨平台采集数据是无能为力的。 这时,你需要一个万能的采集工具(也就是通用的爬虫工具)。 本文推…

whistle 抓包工具使用

安装配置whistle,本机环境是win10 1、whistle 安装,首先电脑上需要安装node.js,然后就可以使用npm命令安装whistle: npm install -g whistle 2、安装完后就可以使用whistle命令了: 启动:w2 start 重启&#…

分布式搜索引擎_学习笔记_2

分布式搜索引擎_学习笔记_2 在昨天的学习中,我们已经导入了大量数据到elasticsearch中,实现了elasticsearch的数据存储功能。但elasticsearch最擅长的还是搜索和数据分析。 所以今天,我们研究下elasticsearch的数据搜索功能。我们会分别使用…

数据库空间爆了怎么处理

作者: 马文斌 时间: 2024-1-29 标签: mysql 磁盘空间 爆满 binlog 背景 近期数据库空间一直告警,平时这套数据库集群是不会有磁盘空间告警的,难道是最近业务量猛增了吗?咱们来瞧瞧到底怎么回事&…

springboot142新冠病毒密接者跟踪系统

新冠病毒密接者跟踪系统设计与实现 摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲&#xff…

故障诊断 | 一文解决,SVM支持向量机的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | 一文解决,SVM支持向量机的故障诊断(Matlab) 支持向量机(Support Vector Machine,SVM)是一种常用的监督学习算法,用于分类和回归分析。SVM的主要目标是找到一个最优的超平面(或者在非线性情况下是一个最优的超曲面),将不同类别的样本分开…

第二证券:沪指再度失守2800点,2月行情怎么走?

周三A股三大指数继续下行,上证指数再度失守2800点。 1月31日,沪深股指早盘小幅收拾后快速下行,盘中一度克复部分跌幅,但午后沪深股指再次回落。到收盘,沪指指数跌1.48%,深证成指跌1.95%,创业板…