CV算法的数据增强策略

数据增强在计算机视觉领域中起着关键作用,通过各种变换如旋转、翻转、缩放等来扩充训练数据,以提高模型的泛化能力和应对实际应用中的不确定性。本文介绍了基本的数据增强方法,并探讨了在SSD、医学图像分割等场景中的应用策略,强调了数据增强的合理性和随机性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

从AlexNet夺取ImageNet的冠军,到RCNN的出现,再到后来的SSD算法,数据增强仿佛像是一位功成名就的老者,虽然数据增强对于算法性能的提升起到重要的作用,但是他从来不居功,默默在背后付出"众里寻他千百度",只为让你"蓦然回首,她在灯火阑珊处"。

数据增强(Data Augmentation)的目的与作用

卷积神经网络能够鲁棒地将物体分类,即便物体放置在不同的方向上,这也就是所说不变性的性质,即使卷积神经网络被放在不同方向上,它也能进行对象分类。更具体的说,卷积神经网络对平移、视角、尺寸或照度(或以上组合)保持不变性。
这就是数据增强的本质前提。在现实世界中,我们可能会有一组在有限的条件下拍摄的图像 。但是,我们的目标应用可能是在多变的环境中,例如,不同的方向、位置、比例、亮度等。我们通过使用经综合修改过的数据来训练神经网络,以应对这些情形。

数据少的负面影响:

  1. 模型训练的时候可能无法收敛,少量训练数据难以提供足够的信息给模型学习
  2. 过拟合,模型容易将训练数据的完全不相关信息学习进去,如噪声
  3. 容易陷入局部最优值
  4. 难以衡量模型好坏,除了训练数据,测试数据也非常少,少量数据整的与否可能对结果产生较大影响。

数据不平衡的负面影响:
最常见的就是模型的权值更新被数据多的一个方向带跑偏了。

数据增强的作用

  1. 补充数据样本不足
  2. 减少网络的过拟合现象,通过对训练图片进行变换可以得到泛化能力更强的网络,更好的适应应用场景。

基本方法

现在最常用的数据方案是
数据增强的基本方法无非就是图像的基本操作进行排列组合,生成千万种数据增强的可能性:

  • 旋转/反射变换(Rotation/reflection): 随机旋转图像一定角度; 改变图像内容的朝向;
  • 翻转变换(flip): 沿着水平或者垂直方向翻转图像;
  • 缩放变换(zoom): 按照一定的比例放大或者缩小图像;
  • 平移变换(shift): 在图像平面上对图像以一定方式进行平移;
  • 可以采用随机或人为定义的方式指定平移范围和平移步长, 沿水平或竖直方向进行平移. 改变图像内容的位置;
  • 尺度变换(scale): 对图像按照指定的尺度因子, 进行放大或缩小; 或者参照SIFT特征提取思想, 利用指定的尺度因子对图像滤波构造尺度空间. 改变图像内容的大小或模糊程度;
  • 对比度变换(contrast): 在图像的HSV颜色空间,改变饱和度S和V亮度分量,保持色调H不变. 对每个像素的S和V分量进行指数运算(指数因子在0.25到4之间), 增加光照变化;
  • 噪声扰动(noise): 对图像的每个像素RGB进行随机扰动, 常用的噪声模式是椒盐噪声和高斯噪声;
  • 颜色变化:在图像通道上添加随机扰动。
  • PCA Jittering
    首先,按照 RGB 三个颜色通道计算均值和方差,规范网络输入数据;
    然后,计算整个训练数据集的协方差矩阵,进行特征分解,得到特征向量和特征值,以作 PCA Jittering.

caffe中的数据增强

caffe/src/caffe/data_transformer.cpp
只发现mirror、scale、crop三种。 其中Data_Transformer被调用的时候,会采用1/2的随机镜像,以及对应输入参数的scale和crop进行生成新的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值