随机裁剪

对图片随机0.6~1.0比率大小的区域进行裁剪

然后resize到固定大小。

torch.API

torchvision.transforms.RandomCrop(size,padding=None,pad_if_need=False,fill=0,padding_mode='constant')
 transforms.RandomCrop(32, padding=4),#每边填充4,如把32*32填充至40*40,再随机裁剪出32*32的大小

size:裁剪的大小,可以是tuple

padding:将原图填充多少后,再裁剪,保证可以裁剪到边缘图像。

毕设项目演示地址: 链接

毕业项目设计代做项目方向涵盖:

目标检测、语义分割、深度估计、超分辨率、3D目标检测、CNN、GAN、目标跟踪、竞赛解决方案、去模糊、显著性检测、剪枝、活体检测、人脸关键点检测、3D目标跟踪、视频修复、人脸表情识别、时序动作检测、图像检索、异常检测等

原因

假设类别C的主要特征为F,采集得到的图片包含背景噪声B,即现在C表示为(F, B),我们本来期望学习关系f∗:F→Cf^ ∗ : F → Cf∗:F→C​,结果现在可能学习成关系$\hat{f} : (F, B) \to C $​,从而陷入过拟合。而图像裁剪可以主要保留主要特征F,而裁减掉背景噪声B,从而避免噪声的过拟合影响

深度学习在训练时对图片随机剪裁(random crop)

mixup

  1. 两张图片按0.5的比例叠加
  2. 分类标签:直接按0.5比例设置标签
    位置标签:保持原值,不做任何变化

注意点:

叠加后的图片,取两张图片宽高的最大值,确保新图片可以放下两张图片,同时也不需要对标签做任何转换,很方便。
(600,800)和(900,700)两张图融合得到的新图大小是(900,800),新增的部分取零

原因

增加了样本数量,丰富了目标背景,提高模型的泛化能力。

CutMix

CutMix是CutOut和Mixup的结合,将图片的一部分区域擦除并随机填充训练集中的其他数据区域像素值。(和RandomPatch基本上一模一样)

Random Erasing

具体操作就是:随机选择一个区域,然后采用随机值进行覆盖,模拟遮挡场景

  1. 对于图像I,随机擦除与否是以一定概率p进行的;
  2. 矩形框与图像I的面积比例是随机的;
  3. 矩形框的位置(如,左上角坐标或中心坐标)是随机的;
  4. 矩形框的宽高比是随机的;
  5. 填充值是随机的,其范围为[0,255][0,255][0,255]​。(论文中给出4中填充值:随机值、数据集的均值、0、255,但通过实验发现,随机值填充方式的效果最好。)

原因

把物体遮挡一部分后依然能够分类正确,那么肯定会迫使网络利用局部未遮挡的数据进行识别,加大了训练难度,一定程度会提高泛化能力

cutout

和RE非常像,区别如下:

  1. cutout只有正方形。因为作者发现区域的大小比形状更重要。
  2. cutout区域,不一定完全在原图中,所以在边缘位置,擦除的区域不一定是正方形,比如上图中右下角那个图,就是个长方形。
  3. 填充值只有0或其他纯色填充。

注意:torchvision.transforms.Cutout并不只是,正方形,也可以是任意矩形,感觉和RE一样,只是用的纯色填充罢了,如下图所示。

原因

同RE

把物体遮挡一部分后依然能够分类正确,那么肯定会迫使网络利用局部未遮挡的数据进行识别,加大了训练难度,一定程度会提高泛化能力

mosaic

  1. 随机翻转
  2. 随机缩放
  3. HSV空间的色域变换
  4. 图片贴在四个角
  5. 对图片进行分割,去掉重叠的部分
    分割线为边长0.3到0.6之间(随机)
    缩放比例为1-0.3到0.7+0.2之间

1.每次读取四张图片2.分别对四张图片进行翻转、缩放、色域变化等,并且按照四个方向位置摆好。3.进行图片的组合和框的组合

原因

  1. 丰富数据集:随机使用4张图片,随机缩放,再随机分布进行拼接,大大丰富了检测数据集,特别是随机缩放增加了很多小目标,让网络的鲁棒性更好。
  2. **减少GPU:**可能会有人说,随机缩放,普通的数据增强也可以做,但作者考虑到很多人可能只有一个GPU,因此Mosaic增强训练时,可以直接计算4张图片的数据,使得Mini-batch大小并不需要很大,一个GPU就可以达到比较好的效果。

数据增强:Mixup,Cutout,CutMix | Mosaic

copypaste

将实例分割的目标,随机贴在不同的图片上,以增加数据的多样性。

GridMask

Random Erase、CutOut有可能把图像的可判别区域全部删除或者保留,引入噪声并且效果不佳结构化drop操作,例如均匀分布地删除正方形区域,并且通过控制密度和size参数,来达到平衡,密度就是正方形个数,size就是正方形大小。

bag of freebies

数据扩增

  • 随机缩放

  • 随机裁剪

  • 随机反转

  • 随机旋转

  • 色彩扰动

    • 亮度
    • 对比度
    • 饱和度
    • 色调
    • 高斯噪声
  • 随机擦除(random erasing)

  • cutout

  • GridMask

多图融合

  • Mixup
  • CutMix
  • Mosaic

正则化

类似于输入图像遮挡,在特征图上丢弃某些信息的方法常叫做正则化,最终目的还是防止模型过拟合

  • Dropout
  • DropBlock

数据不平衡的方法

  • OHEM
  • Focal loss

其他方法

  • label smooth
  • 知识蒸馏——获得更好的soft label
  • CIOU loss

深度学习数据增强数据扩增方法相关推荐

  1. [综述类] 一文道尽深度学习中的数据增强方法(上)

    今天带来一次有关于深度学习中的数据增强方法的分享. 00 什么是数据增强 在深度学习项目中,寻找数据花费了相当多的时间.但在很多实际的项目中,我们难以找到充足的数据来完成任务. 为了要保证完美地完成项 ...

  2. 深度学习之:数据增强总结与实战

    因本文篇幅较长,读者可参考目录,看之所需 前言 什么是数据增强 数据增强的作用 图像尺寸预处理 1.缩放 2.裁剪 2.1.使用OpenCV进行裁剪 2.2.使用PIL.Image.crop进行裁剪 ...

  3. 【技术综述】深度学习中的数据增强(下)

    文章首发于微信公众号<有三AI> [技术综述]深度学习中的数据增强(下) 今天带来深度学习中的数据增强方法的下篇.我们将从以下几个方向入手.1,介绍一下什么是无监督的数据增强方法.2,简单 ...

  4. 总结 62 种在深度学习中的数据增强方式

    数据增强 数据增强通常是依赖从现有数据生成新的数据样本来人为地增加数据量的过程 这包括对数据进行不同方向的扰动处理 或使用深度学习模型在原始数据的潜在空间(latent space)中生成新数据点从而 ...

  5. gan 总结 数据增强_深度学习中的数据增强(下)

    言有三 毕业于中国科学院,计算机视觉方向从业者,有三工作室等创始人 编辑 | 言有三 今天带来深度学习中的数据增强方法的下篇.我们将从以下几个方向入手.1,介绍一下什么是无监督的数据增强方法.2,简单 ...

  6. 深度学习中的数据增强(上)

    feic非[技术综述] 深度学习中的数据增强(上) - 知乎 https://zhuanlan.zhihu.com/p/38345420 [技术综述]深度学习中的数据增强(下) - 知乎 https: ...

  7. 如何系统性掌握深度学习中的数据使用

    数据是深度学习系统的输入,对深度学习的发展起着至关重要的作用,但是又容易被很多人忽视,尤其是缺少实战的理论派. 今天便来谈谈这个问题,同时介绍一个好的学习社区供大家讨论与提升. 文/编辑 | 言有三 ...

  8. 【AI白身境】深度学习中的数据可视化​​​​​​​

    文章首发于微信公众号<有三AI> [AI白身境]深度学习中的数据可视化 今天是新专栏<AI白身境>的第八篇,所谓白身,就是什么都不会,还没有进入角色. 上一节我们已经讲述了如何 ...

  9. 对pca降维后的手写体数字图片数据分类_【AI白身境】深度学习中的数据可视化...

    今天是新专栏<AI白身境>的第八篇,所谓白身,就是什么都不会,还没有进入角色. 上一节我们已经讲述了如何用爬虫爬取数据,那爬取完数据之后就应该是进行处理了,一个很常用的手段是数据可视化. ...

  10. 嵌入式AI —— 6. 为糖葫芦加糖,浅谈深度学习中的数据增广

    没有读过本系列前几期文章的朋友,需要先回顾下已发表的文章: 开篇大吉 集成AI模块到系统中 模型的部署 CMSIS-NN介绍 从穿糖葫芦到织深度神经网络 又和大家见面了,上次本程序猿介绍了CMSIS- ...

最新文章

  1. 进一步封装axios并调用其读取数据(吐槽~在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据)
  2. python 获取当前时间和日期
  3. 国外计算机音乐专业,音乐留学干货 | 国外电子音乐专业留学如何?
  4. Vue-resource中post请求将data数据以request payload转换为form data的形式
  5. 蓝桥杯java最小公倍数_蓝桥杯算法训练 最大最小公倍数
  6. java string转enum_java枚举类Enum方法简介(valueof,value,ordinal) (转)
  7. 导入win32_为什么DLL在导入项没有成功解析时会加载失败?
  8. cookies丢失 同域名_后端设置Cookie前端跨域获取丢失问题(基于springboot实现)
  9. java fx 内置图标_图标 – 如何在Windows上为javafx本机程序包图标设置自定义图标...
  10. Qt学习:QDomDocument
  11. 红外探头_问题3: 关于在线近红外光谱仪的探头
  12. cookie中JSESSIONID的由来
  13. linux教程:[4]配置Tomcat开机启动
  14. 直角三角形 纪中 1385 数学_斜率 英文题解
  15. 分享三种计算机专业毕业设计模板附下载地址
  16. 编译google libyuv so库
  17. CCSP认证考试大纲 2022版
  18. 真正靠谱免费的数据恢复软件哪个好用?
  19. android免费商用图标,(干货分享)免费可商用的图标库
  20. ibm 服务器 阵列 加硬盘,IBM服务器增加硬盘

热门文章

  1. c语言rand函数源码路径,C语言中的rand()函数
  2. 相机标定篇——相机标定
  3. dell10代cpu装linux,戴尔10代CPU完美装Win7|DELL 10代CPU装Win7教程
  4. 03 【前端笔试】- 2020 搜狗校招笔试题
  5. 比较小巧带有便签、提醒功能的桌面工具
  6. 微服务架构深度解析与最佳实践
  7. 编译安装nginx并实现反向代理负载均衡和缓存功能
  8. blender2.8 使用教程 贴图纹理快捷键等。
  9. 极视角与山东港口科技集团青岛有限公司共建「AI 赋能智慧港口联合实验室」
  10. oracle语句怎么查工作日,SQL查询工作日 - Oracle开发 - ITPUB论坛-中国专业的IT技术社区...