| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 【目标检测】39、一文看懂计算机视觉中的数据增强 -> 正文阅读 |
|
[人工智能]【目标检测】39、一文看懂计算机视觉中的数据增强 |
计算机视觉任务在深度神经网络的推进下,取得了很好的效果,深度神经网络能够学习复杂的多级特征,从而解决不同的视觉任务。现在的深层网络之所以能够取得很好的效果,一个很重要的原因在于其参数量巨大,能够很好的学习到复杂的特征表达,但这也同样容易导致过拟合,影响模型的对不同场景的泛化能力。 故此,出现了很多不同的正则化方法,如数据增强,通过对输入数据做镜像、扣取、翻转、旋转、随机擦除等操作,用于增强模型的鲁棒性。一些常用的数据增强方法介绍如下。 现有的数据增强的方法一般可以分为如下三个类别,前两类主要是让训练数据更好的适应真实世界的情况,最后一种是人为的丢弃一些特征,目标遮挡、覆盖等难处理的情况:
代码大都可以在这里找到:https://github.com/open-mmlab/mmdetection/blob/master/mmdet/datasets/pipelines/transforms.py 目前几个用的比较多的方法:
一、Cutout论文:Improved Regularization of Convolutional Neural Networks with Cutout 1、动机:
2、灵感来源:Cutout 的灵感其实是来源于 dropout 方法(随机丢弃某些神经元),但有两点不同,具体示意如图 1 所示:
3、Cutout 具体做法:
4、Cutout 的优点:
5、Cutout 的效果:
二、Random Erasing论文:Random Erasing Data Augmentation 代码:https://github.com/zhunzhong07/Random-Erasing 1、动机 目标间的相互遮挡是一个很普遍的现象,所以,为了应对遮挡带来的问题,Random Erasing 被提出,该方法通过随机选择一个随机大小的矩形区域,并给该区域赋予随机数值来实现。以此来模拟目标被遮挡的场景,比 cutout 的相同大小的抠图更灵活多变,且模拟引入了噪声。 2、具体方法
3、对不同任务使用随机擦除的可视化效果 4、和 Random Croping 的对比
5、优点:
三、Mixup论文:Mixup: beyond empirical risk minimization 1、动机 现有的数据增强方法,大都是在单个图像内部进行丢弃,没有多个图像之间的融合。 2、方法 对 batch 中的所有图像,两两进行加权加和,进行类间-类内的图像混合,为网络引入了更多不确定因素 在 mini-batch 内部:
优点:
四、CutMix论文:CutMix: Regularization Strategy to Train Strong Classififiers with Localizable Features 1、动机: 虽然 CNN 会过拟合,但总的来说还是 data-angry 的,也就行需要更丰富的数据,别的方法擦除某些区域但也让网络接收的信息更少了,所以能不能在擦除的同时,用别的特征补上去呢? 2、方法: CutMix 可以看做 cutout 的优化,也就是擦除图像中的某个随机区域,然后使用同 batch 中的其他图像的区域来填补上去,真值 label 也同样被 mixed。 CutMix 的过程如下面公式所示:
CutMix 的过程如下: ( x A , y A ) (x_A, y_A) (xA?,yA?) 和 ( x B , y B ) (x_B, y_B) (xB?,yB?) 表示两个训练样本的图像和真值
CutMix 方法伪代码: 3、CutMix 学到了什么? CutMix 提出的动机在于图像分类主要依赖于目标的全局特征,
五、MosaicMosaic 数据增强是在 YOLOv4 中提出来的,其实也是基于 Cutmix 的一个改进版本,能同时引入 4 个图像的信息。将 4 个训练图像进行混合,引入 4 种不同的上下文信息(CutMix 是混合 2 个图像),让网络能得到更多额外的上下文信息,而且,BN 也在每层接受了来自 4 个图像的信息,能够降低 “大 batch size” 的需求。 操作:
优势: 大大丰富了检测数据集,特别是随机缩放增加了很多小目标,让网络的鲁棒性更好 五、Copy-paste论文:Simple Copy-Paste is a Strong Data Augmentation Method for Instance Segmentation 出处:CVPR20221(Oral) 1、动机 如前所述,神经网络是 data-hungry 的,但人工标注费时费力,且之前的 cutmix、mosaic 等方法,难以适用于实例分割,Copy-paste 能够使用简单的方法,将实例扣下来并粘贴到别的图像上,很方便的解决了实例分割(也可用于有实力分割标签的目标检测)的数据增强问题。 2、方法
处理后的图像是什么样子的?说实话和真实场景的图像也很不一样,如图 2 所示,长颈鹿和人出现在一张图里了,而且尺度和平常的有很大不同。 3、效果 六、Grid-Mask论文:GridMask Data Augmentation 1、动机 Grid-mask 方法和 cutout、HaS 等方法类似,都是通过丢弃一部分图像信息来让网络更加鲁棒。但是作者认为移除的图像大小难以把控,移除过多会导致信息丢弃过多,保存的部分可能不足以支撑后续任务,移除过少会使得网络不够鲁棒,所以移除信息的多少难以把控。 Cutout 和 random erasing 方法,都是随机移除图中的某一个小块,有很大的随机性,如果移除的好则效果好,如果移除的效果不好,则会影响模型效果。 HaS 将图像切分为几个小块,然后随机移除其中的多个小块,但仍可能出现某些地方移除过多,有些地方移除过少的情况。 所以作者提出了均匀移除图像块的方法:Grid-mask 2、方法
3、效果 ① 和其他方法的错误率对比 ② 对不同模型添加 grid-mask 的效果 ③ p 的影响 七、Fence-Mask1、动机 Information drop 方法中,如何平衡丢弃部分和保留部分是很重要的,尤其是在复杂的真实场景,目标的大小是不确定的,随机的生成丢弃区域可能会导致重要信息丢失,误导模型。 所以作者提出了一个有规律且稀疏的数据增强方法——fence-mask,虽然打破了图像中像素的连续性,但是可以接受的。 图 2 展示了细粒度的图像分类中,不同目标的差别很小,如果把这些主要差别丢失了,则会严重影响结果。
2、方法 Fence-mask 是一个类似篱笆的形状,其 drop 的区域(或者说模拟遮挡的区域,因为有透明度)是稀疏且有规律的,整幅图像被均匀的遮挡,如图 3 所示。 Fence-mask 的参数: ( W m i n , W m a x , G m i n , G m a x , F ) (W_{min}, W_{max}, G_{min}, G_{max}, F) (Wmin?,Wmax?,Gmin?,Gmax?,F)
给定各个参数的范围,就可以从范围中随机拿值来组成对应的栅栏:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 23:16:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |