学习策略对于培训和测试也非常重要。 首先,对数据进行预处理(例如图像增强)有时对于预测合理的结果至关重要。

1. 验证集划分

  • 直接划分:随机划分的方式使得模型的训练数据可能和测试数据差别很大,导致训练出的模型泛化能力不强。
  • LOOCV: Leave-one-out cross-validation,这相当于是k折交叉验证的一个极端情况,即K=N。每次只用一个数据作为测试,其他均为训练集,重复N次(N为数据集数目)
  • kFold,k折交叉验证,每次的测试集将不再只包含一个数据,而是多个,具体数目将根据K的选取决定。比如,如果K=5,那么我们利用五折交叉验证的步骤就是:1)将所有数据集分成5份;2)不重复地每次取其中一份做测试集,用其他四份做训练集训练模型,之后计算该模型在测试集上的Error_i;3)将5次的Error_i取平均得到最后的Error。

2 Image augmentation,图像or数据增强

2.1 传统方法

  • 直方图均衡
    原理是平均分布的图像信息熵最大,也就相当于是说对比度最大。从初始状态转化到直方图均衡状态时,经过一个转移函数,转移函数可由最终想要达到的平均状态作为极限来反推得到。
    具体可参阅:李新春:直方图均衡化

  • 灰度变换
    灰度变换可使图像动态范围增大,对比度得到扩展,使图像清晰、特征明显,是图像增强的重要手段之一。它主要利用图像的点运算来修正像素灰度,由输入像素点的灰度值确定相应输出像素点的灰度值,可以看作是“从像素到像素”的变换操作,不改变图像内的空间关系。像素灰度级的改变是根据输入图像f(x,y)灰度值和输出图像g(x,y)灰度值之间的转换函数g(x,y)=T[f(x,y)]进行的。
    灰度变换包含的方法很多,如逆反处理、阈值变换、灰度拉伸、灰度切分、灰度级修正、动态范围调整等。

  • 图像平滑
    在空间域中进行平滑滤波技术主要用于消除图像中的噪声,主要有邻域平均法、中值滤波法、高斯滤波等等。这种局部平均的方法在削弱噪声的同时,常常会带来图像细节信息的损失。
    上述的滤波方法一般都只是考虑空间域的操作(即相近像素),而忽略了值域空间的相关性,而这正是边缘所在处(值域的剧烈波动)非常重要的因素。因此,有双边滤波(保边滤波)方法,同时考虑了空域和值域,且设置了相应的权重,空域中离关注区域点左边越近,权重系数越大;值域中该值和所关注区域的值接近,其权重系数就大,反之则小,由此可以保住边缘处的信息。
    具体可参阅:bilateral filter双边滤波器的通俗理解

  • 图像锐化
    采集图像变得模糊的原因往往是图像受到了平均或者积分运算,因此,如果对其进行微分运算,就可以使边缘等细节信息变得清晰。这就是在空间域中的图像锐化处理,其基本方法是对图像进行微分处理,并且将运算结果与原图像叠加。从频域中来看,锐化或微分运算意味着对高频分量的提升。常见的连续变量的微分运算有一阶的梯度运算、二阶的拉普拉斯算子运算,它们分别对应离散变量的一阶差分和二阶差分运算。
    图像处理自学(六):图像增强算法总结_TheDayIn_CSDN的博客-CSDN博客

2.2 深度学习中的图像增强(预处理)

这些手段相当于yolo v4中所说的bags of free,意指用这些数据增强的手段,只会改变训练时的策略或者增加训练的时间,但不会对模型的最终的推断时间产生影响,相当于是免费的技巧。因此,yolo v4中用到了大量的数据增强手段,而结果也令人惊喜,得到了几个点的提升。可使用albumentations包,里面包含各类图像增强技术。

  • 几何增强:平移,旋转,剪切等对图像几何改变的方法,可以增强模型的泛化能力。

  • 色彩增强:主要是亮度变换,如使用HSV(HueSaturationValue)增强。

  • Blurring,模糊,诸如高斯滤波,方框滤波,中值滤波等。可以增强模型对模糊图像的泛化能力。

  • mixup,mixup: Beyond empirical risk minimization
    上述的通用数据增强方法则是针对同一类做变换,而mixup则是采用对不同类别之间进行建模的方式实现数据增强。不同的类加上不同的权重,而其得到的损失函数也加上不同的权重,最后再进行反向传导求参数。具体可参阅:数据增强之mixup论文笔记_ouyangfushu的博客-CSDN博客

  • 随机擦除(Random Erasing, RE)增强, [Random erasing data augmentation](Random Erasing Data Augmentation)
    随机擦除,提出的目的主要是模拟遮挡,从而提高模型泛化能力,对遮挡有更好的鲁棒性。随机选择一个区域,然后采用随机值进行覆盖,模拟遮挡场景。

  • Cutout,DeVries et al., 2017, Improved Regularization of Convolutional Neural Networks with Cutout
    其的出发点和随机擦除一样,也是模拟遮挡,目的是提高泛化能力,实现上比Random Erasing简单,随机选择一个固定大小的正方形区域,然后采用全0填充就OK了,当然为了避免填充0值对训练的影响,应该要对数据进行中心归一化操作,norm到0。具体也可参阅:【数据增强】Cutout_weixin_41560402的博客-CSDN博客

  • CutMix, Yun et al., 2019, CutMix: Regularization Strategy to Train Strong Classifiers with Localizable Features
    就是将一部分区域cut掉但不填充0像素而是随机填充训练集中的其他数据的区域像素值,分类结果按一定的比例分配.能让模型更加准确的分类和定位。

上述三种数据增强的区别:cutout和cutmix就是填充区域像素值的区别;mixup和cutmix是混合两种样本方式上的区别:mixup是将两张图按比例进行插值来混合样本,cutmix是采用cut部分区域再补丁的形式去混合图像,不会有图像混合后不自然的情形.

  • mosaic
    mosaic数据增强是参考CutMix数据增强,理论上类似.但cutmix使用2张图片,而mosaic则使用4张图片,其优点是丰富检测物体的背景,且在BN计算的时候一下子会计算四张图片的数据,使得mini-batch大小不需要很大,那么一个GPU就可以达到比较好的效果。

深度学习策略之图像预处理相关推荐

  1. 深度学习中图像预处理均值

    图像中的均值,均方差等名字解释 均值 表示信号中直流分量的大小,一般用E(x)表示,其公式为: 对于高斯白噪声而言,其均值为0. 均方值 表示信号平方后的均值,一般用E(x^2)表示,一般是用来表示信 ...

  2. 图像预处理 mean=[0.485, 0.456, 0.406] std=[0.229, 0.224, 0.225] 的由来以及使用

    为什么一些深度学习的图像预处理使用mean=[0.485, 0.456, 0.406] and std=[0.229, 0.224, 0.225]来正则化? Using the mean and st ...

  3. opencv ocr字符识别_OCR深度实践系列:图像预处理

    近一个半月时间没更了,在这段时间里针对OCR业务进行了深入研究,业务也已上线,谨以此篇作为OCR系列的开篇. 目前NLP+OCR的落地应用在市场上愈加火热,如金融领域的研报分析.司法领域的合同审核甚至 ...

  4. 深度学习图像预处理——分类

    利用python进行图像预处理--分类 from pexels.com 在计算机视觉的分类任务中,需要给不同类别的数据打上标签.常见的深度学习框架一般可以直接处理**文件夹**,并按照文件夹来给图像打 ...

  5. 计算机视觉实战的深度学习实战二:图像预处理

    图像预处理 更多精彩内容请关注微信公众号:听潮庭. 写在前面: 图像显示与存储原理 图像增强的目标 点运算:基于直方图的对比度增强 形态学处理 空间与处理:卷积 卷积的应用(平滑.边缘检测.锐化等) ...

  6. 基于深度学习的图像超分辨率——综述

    2021-Deep Learning for Image Super-resolution:A Survey 基本信息 作者: Zhihao Wang, Jian Chen, Steven C.H. ...

  7. 基于深度学习的图像边缘和轮廓提取

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 导读:边缘和轮廓的提取是一个非常棘手的工作,细节也许就会被过强的图 ...

  8. 资深大佬:基于深度学习的图像边缘和轮廓提取方法介绍

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:AI算法与图像处理 导读 边缘和轮廓的提取是一个非常棘手 ...

  9. 读“基于深度学习的图像风格迁移研究综述”有感

    前言 关于传统非参数的图像风格迁移方法和现如今基于深度学习的图像风格迁移方法. 基于深度学习的图像风格迁移方法:基于图像迭代和模型迭代的两种方法的优缺点. 基于深度学习的图像风格迁移方法的存在问题及其 ...

  10. TensorFlow实现基于深度学习的图像补全

    第一步:将图像理解为一个概率分布的样本 你是怎样补全缺失信息的呢? 但是怎样着手统计呢?这些都是图像啊. 那么我们怎样补全图像? 第二步:快速生成假图像 在未知概率分布情况下,学习生成新样本 [ML- ...

最新文章

  1. ubuntu查看文件和文件夹大小
  2. Azkaban 外部接口的使用与开发
  3. ORM数据库框架 LitePal SQLite MD
  4. c语言代码大全和详细解释_最详细的Simulink代码生成(C语言)
  5. iOS 程序打包,安装流程
  6. 植物大战僵尸修改存档用户名、关卡、金钱说明
  7. 如何将图片做成内外边框HTML,如何用html给图片加边框
  8. ASP实现倒计时功能
  9. java xss漏洞修复_全局存储型XSS漏洞修复
  10. 荣耀畅玩7c能用鸿蒙吗,荣耀畅玩7C评测:人脸识别双摄 超高性价比
  11. python下载电影_python爬取电影并下载
  12. AutoSAR系列讲解 - 总目录
  13. ORA-12505, TNS:listener does not currently know of SID given in connect descript 错误 更改方法
  14. Shiro 通过配置Cookie 解决多个二级域名的单点登录问题。
  15. FMRI及NMR简介
  16. 猪呀,羊呀,送到哪里去?
  17. oracle为表空间增加数据文件,创建Oracle表空间,增加数据文件的步骤
  18. PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问
  19. 叉车限速5公里是否是强制规定?
  20. MT6771 MFNR

热门文章

  1. 关于python中.item()的用法
  2. 设置matlab关联文件,matlab2014b怎样设置文件关联
  3. python文字处理dummy_python – 使用’dummy’变量创建数学函数,以便稍后进行评估...
  4. 小白怎样使用EXCEL导入MATLAB画出图像
  5. 模式识别学习笔记(8)——隐马尔可夫模型
  6. 浅论三维标注技术的重要性
  7. 金山词霸2009牛津with SP3完全破解版(含全部本地词库和语音包)
  8. C# 下繁体字与简体字的转化
  9. mysql中year函数算年龄_MySQL中的YEAR函数
  10. 讲真的,大厂员工都在使用的赚钱小技能Python!