• 计算机视觉中的数据增强


    数据增强

    在实际工作中有很大一个难题就是收集到足够的数据,而数据就像是燃料,没有足够的数据训练的模型效果不会太好。所以要保证完美完成任务,有两件事必须要做好:

    1. 寻找更多的数据
    2. 充分利用已有的数据进行数据增强

    本文就来聊聊数据增强的话题。

    覆盖主流数据增强算法

    https://github.com/aleju/imgaug

    数据增强注意事项:

    1. 在线使用,不要离线生产样本
    2. 不要过度使用,过多的数据增强可能增加训练难度和事件
    3. 有些任务某些增强不能做,比如姿态估计中随机反转,旋转

    为什么要了解数据增强

    Q: 多少数据才能满足项目要求?

    1. 任务类型有关,越精细任务要求越多(分类 > 检测 > 分割)
    2. 任务难度 ImageNet(每个类约500个),Place365(每个类约5000个)
    3. 精度要求有关(学术任务,工业级产品)

    Q: 数据增强和泛化能力的关系?

    增强模型泛化能力的方法:

    • 显示正则化(模型集成,参数正则化等)
    • 隐式正则化(数据增强,随机梯度下降等)

    Q: 什么是数据增强?

    数据增强也叫数据扩增,意思是在不实质性的增加数据的情况下,让有限的数据产生等价于更多数据的价值。

    eg. 分辨率大小为 256x256 的图像,随机裁剪成 224x224 的代销,一张图就可以产生 32x32 张不同的图,数据量将近扩充 1000 倍。

    Q: 通过裁剪得到的很多图像相似度很高,那么这样的数据增强有效果么?

    操作虽然简单,但是有效果,如果辅助其他数据增强的方法,将获得更好的多样性,这就是数据增强的本质。

    常见数据增强的方法

    单样本几何变换

    翻转,旋转,裁剪,缩放

    没有改变图像本身的内容,选择了图像的一部分或者像素的空间重分布

    单样本像素内容变换

    噪声,模糊,颜色扰动

    内容改动大,多样性强

    多样本插值 SMOT

    Synthetic Minority Over-sampling Technique 方法,近邻样本(Xn,Yn)插值

    Sample Pairing

    随机抽取两张图片分别经过基础数据增强操作(如随机翻转等)处理后,直接叠加合成一个新的样本,标签为原样本标签中的一种

    多样本插值 Mixup

    ICLR2018, Facebook 的研究 Mixup,图像和标签都进行线性插值

    自动选择数据增强方法

    AutoAugmentation

    学习已有数据增强操作的组合,不同的任务,需要不同的数据增强操作。

    AutoAugmentation 原理

    • 从 16 个常用数据增强操作中选择 5 个操作,随机产生使用该操作的概率和相应的幅度,将其称为一个 sub-policy,一共产生 5 个 sub-polices
    • 对训练过程中每一个 batch 的图片,随机采用 5 个 sub-polices 操作中的一种
    • 通过模型在验证集上的泛化能力来反馈,使用的优化方法是增强学习方法
    • 经过 80~100 个 epoch 后网络开始学习到有效的 sub-policies
    • 之后串接这 5 个 sub-policies,然后再进行最后的训练

    16 个常用的数据增强操作

    从零制作新的样本

    GAN

    使用生成对抗网络,生成新的样本。

    开源框架中的数据增强

    • caffe 中数据增强:
      • caffe.proto 中增加参数
      • Datatransform 中 .cpp 函数实现
      • Datatransform 中 .cpp 函数调用
      • train.prototxt 中网络配置
      • caffe.proto 中增加参数
    • TensorFlow 数据增强 —— tf.image API
    • pytorch 数据增强 —— torchvision.transforms API
    • mxnet 数据增强 —— mxnet.image API

    参考文献

    [1] Chawla N V, Bowyer K W, Hall L O, et al. SMOTE: synthetic minority over-sampling technique[J]. Journal of Artificial Intelligence Research, 2002, 16(1):321-357.

    [2] Inoue H. Data Augmentation by Pairing Samples for Images Classification[J]. 2018.

    [3] Zhang H, Cisse M, Dauphin Y N, et al. mixup: Beyond Empirical Risk Minimization[J]. 2017.

    [4] Goodfellow I J, Pouget-Abadie J, Mirza M, et al. Generative Adversarial Networks[J]. Advances in Neural Information Processing Systems, 2014, 3:2672-2680.

    [5] Cubuk E D, Zoph B, Mane D, et al. AutoAugment: Learning Augmentation Policies from Data.[J]. arXiv: Computer Vision and Pattern Recognition, 2018.

  • 相关阅读:
    结对-结对编项目贪吃蛇-开发环境搭建过程
    gitbook serve运行报错TypeError: cb.apply is not a function
    iOS 工程添加的framework转成pod形式加入
    selector not recognized
    Errors were encountered while preparing your device for development. Please check the Devices and Simulators Window.
    podspec 添加xcassets
    后缀自动机(SAM)构造实现过程演示+习题集锦
    数组中存在undefined,0,null,false等的情况该如何去除
    Uncaught TypeError: date.clone is not a function 【报错解决】
    React·前端URL参数丢失符号的解决办法
  • 原文地址:https://www.cnblogs.com/shuiyj/p/13185110.html
Copyright © 2020-2023  润新知