论文标题:Simple Copy-Paste is a Strong Data Augmentation Method for Instance Segmentation

论文地址:https://arxiv.org/pdf/2012.07177.pdf

非官方代码:https://github.com/qq995431104/Copy-Paste-for-Semantic-Segmentation


目录

1、摘要

2、简介

3、本文的方法

混合粘贴

大尺度抖动

4、实验结果

4.1 模型初始化、抖动尺度方面

4.2 和mixup的对比

4.3 在不同backbone和输入尺寸上的对比

4.4  结合自训练和复制粘贴

4.5 在coco的SOTA模型上的实验

4.6 在 PASCAL VOC目标检测和语义分割上的实验

4.7 LVIS数据集上的实验

5 总结


1、摘要

建立有效的实例分割模型,并能处理罕见的对象类别是计算机视觉中一个重要的挑战。数据增强是应对这一挑战的一个有前途的方向。在这里,我们在实例分割方向对复制-粘贴增强进行了系统的研究,如随机地将对象粘贴到一张图像上。先前对复制粘贴的研究依赖于对周围视觉环境的建模来。然而,我们发现随机粘贴对象的简单机制已经足够好了,并且可以在强baseline之上提供稳定的增益。此外,我们通过半监督方法证明复制-粘贴带来的性能是可叠加的,该方法通过伪标签利用额外的数据(如自训练)。在COCO实例分割上,我们实现了49.1 mask AP和57.3 box AP,相比之前的sota模型,有+0.6 mask AP和+1.5 box AP的改进。我们进一步证明了复制-粘贴可以显著改善LVIS benchmark。我们的baseline模型在罕见类别上比LVIS 2020挑战赛优胜条目高出+3.6 mask AP。

2、简介

通过粘贴不同规模的不同对象到新的背景图像,复制-粘贴有潜力免费获取丰富的和新颖的训练数据。这一点和其他数据增强类似,但是本文的复制粘贴主要用于实例分割,其粘贴的对象是从一张图中抠出mask部分对应的实例,然后随机粘贴到另一张图像。所复制粘贴的对象,是精确到像素级的,这也是其与Cut-mix方法的区别。

在coco基准集上测试了复制粘贴大法的有效性,如下图所示,通过对比标准尺度抖动、大尺度抖动、大尺度抖动+复制粘贴,可以看出增加了复制粘贴大法后,可以明显进一步提高性能。

3、本文的方法

方法很简单,主要思想是:混合粘贴+大尺度抖动。

混合粘贴

是指利用公式将两幅图像的内容混合在一起;公式中,是粘贴对象所在的图像,是主图像,是mask掩模;公式的意思其实很淳朴,就是将中mask部分的像素抠出来,然后粘贴到中,当然,这个过程有很大的随机性:(1)选择用于粘贴的源图和目标图的随机性;(2)选择粘贴源图中哪些对象的随机性;(3)选择粘贴到目标图像的哪些位置的随机性。

混合粘贴的效果如下图:

大尺度抖动

大尺度抖动(Large Scale Jittering,LSJ)是相较于标准尺度抖动(standard scale jittering,SSJ)而言更为大胆的一种尺度抖动方法。在SSJ中,尺度变化的范围是0.8~1.25,而在LSJ中,尺度变化范围是0.1~2.0;如此大范围的抖动,会产生对比强烈的抖动效果。此外,无论LSJ还是SSJ,都使用了随机水平翻转。LSJ的最终效果如下图:

此外,结合自训练,此方法同样能够带来可叠加的收益 。

4、实验结果

4.1 模型初始化、抖动尺度方面

左:使用了预训练/非预训练模型初始化的backbone在使用/不使用复制粘贴情况的下的对比;右:不同抖动尺度下,用和不用复制粘贴的对比。可以看出,无论什么情况,使用了复制粘贴都能带来稳定的收益。

4.2 和mixup的对比

可以看出,在SSJ的实验(左)中,mixup和Copy-Past都能带来收益,但Copy-Past带来的收益更大;但在LSJ的实验(右)中,mixpu带来的收益就几乎没有了,猜测原因应该是LSJ已经足够优秀了,常规的增强方法并不能带来超出LSJ的收益,而Copy-Past就可以。

4.3 在不同backbone和输入尺寸上的对比

从下表可以看出,使用了复制粘贴大法,在所有模型、输入尺度上都能带来稳定收益。

4.4  结合自训练和复制粘贴

自训练利用未标记数据,可带来1.5 Box AP,复制粘贴同样也能带来类似的收益;将两者结合起来用,可以带来“1+1=2”的线性叠加的收益!(能够使收益线性叠加,是真的强!)

将coco中的对象粘贴到coco和粘贴到伪标签数据的对比,可以看出,无论粘贴到哪里都能带来收益,但两者都粘贴则能带来“1+1>2”的收益:

4.5 在coco的SOTA模型上的实验

相比SOTA模型,添加了复制粘贴和自训练的方法后,带来的收益同样可观:

4.6 在 PASCAL VOC目标检测和语义分割上的实验

实验表明,复制粘贴大法对目标检测和实例分割同样有效:

4.7 LVIS数据集上的实验

5 总结

数据增强是许多视觉系统的核心。本文对复制-粘贴数据增强方法进行了严格的研究,发现该方法是非常有效和健壮的。在强大的baseline基础上,无论是在COCO和LVIS实例分割基准集,复制-粘贴在多个实验设置中都能表现良好,并提供了显著的改善。

复制-粘贴增强策略简单,易于插入到任何实例分割代码库中,并且不会增加训练成本或推理时间。我们还展示了复制-粘贴对于在训练过程中合并额外的未标记图像是有用的,并且能够与自训练技术的带来的收益相加。我们希望它足够令人信服,以使复制-粘贴增强可以作为训练实例分割模型时的标准数据增强手段。

复制-粘贴大法(Copy-Paste):简单而有效的数据增强相关推荐

  1. java怎么实现复制粘贴的操作,java简单实现复制 粘贴 剪切功能代码分享

    废话不多说,直接上代码,小伙伴们仔细看下注释吧. /*简单的复制 剪切 粘贴 功能 操作: 复制测试: 输入文本选择文本,点击复制,然后将光标放在右边的TextArea,点击粘贴 剪切测试:输入文本选 ...

  2. Linux shell 下的复制和粘贴(Copy Paste Operation on Linux shell)

    1. Copy:CTRL+SHIFT+C Paste:CTRL+SHIFT+V 2. 左键选中 单击鼠标中键,或SHIFT+INSERT 即粘贴到命令行 3. gconftool-2 -t str - ...

  3. eclipse复制粘贴失效copy ctrl+c

    先说一下,百度真垃圾.用谷歌 不是版本问题!!!!我用的是最新4.3. 为啥出现这个问题呢?突然eclipse不能粘贴了,也不能复制了,但是能剪切.原因不明.但是什么情况下会出现,查到了. 原来是我同 ...

  4. 如何在Windows和centOS系统之间实现复制粘贴?步骤如下

    如何在Windows和centOS系统之间实现复制粘贴?只需简单几步即可! vmtools安装 vmtools安装 安装vmtools步骤: 1.进入centOS 2.点击vm菜单的 -> in ...

  5. Ubuntu的复制粘贴操作及常用快捷键

    Ubuntu的复制粘贴操作 1.最为简单,最为常用的应该是鼠标右键操作了,可以选中文件,字符等,右键鼠标,复制,到目的地右键鼠标,粘贴就结束了. 2.快捷键.一般通用的是Ctrl+C与Ctrl+V.不 ...

  6. python这个软件学会能做什么工作-不要再复制粘贴了 !学会Python,分分钟搞定一整天的工作...

    上周末,好友小晶告诉我她想辞职了. 小晶在深圳一家电商公司做了 2 年的市场运营,为了更好的完成业绩,每天都赶着最后一班地铁回家. 虽然她才毕业 2 年,不过算上加班时长,我说她工作了 3 年真的不过 ...

  7. java读取word文档内容_合并多个Word文档内容,还在复制粘贴就out了,同事五秒轻松搞定...

    在我们工作中,我们经常会编写多个Word文档内容,那么怎么将多个单个的Word文档合并到一个文档中,这就会显得有些难度. 如上图所示,我们需要将三个不同的案例,快速的汇总到我们的案例汇总表当中.许多朋 ...

  8. vim如何与外界复制粘贴

    导读 在使用 vim 的时候我们会遇到一个问题,在vim之外复制的内容使用p确不能粘贴到vim里面.那么,如何把vim外面复制的内容粘贴到vim里面呢? vim缓存区和系统剪贴板 vim 里面复制粘贴 ...

  9. 【Windows】运维:Windows 远程桌面无法复制粘贴

    1.基本信息 1.1.服务器系统类型 Windows Server 2016 Datacenter 1.2.问题描述 可以通过mstsc 远程 服务器,情况如下: 功能 是/否支持 服务器上的数据复制 ...

  10. 【项目实战课】人人免费可学!基于Pytorch的图像分类简单任务数据增强实战

    欢迎大家来到我们的项目实战课,本期内容是<基于Pytorch的图像分类简单任务数据增强实战>.所谓项目实战课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个主题,进行代码级的 ...

最新文章

  1. python之互斥锁
  2. RS232 波特率时钟产生方法?
  3. java for 执行顺序_java – @BeforeMethod和继承 – 执行顺序(TestNG)
  4. 通过libusb操作usb设备扫描二维码
  5. 计算机电缆 耐火,耐火计算机电缆ZR-NH-DJVVP
  6. Java Web:使用jstl标签
  7. 新生代的他们,正在续写“黑客”传奇
  8. 代码块_Dynamo?Get 7.1 什么是代码块
  9. 【Matlab学习笔记】保存图片(待续)
  10. 回溯法——素数环C++实现
  11. Android RecyclerView之SnapHelper原理解析(一)
  12. 数据结构与算法之递推算法 C++与PHP实现
  13. java枚举转换_java枚举类(转)
  14. cox回归模型python实现_cox回归模型python实现_生存分析Cox回归模型(比例风险模型)的spss操作实例...
  15. c语言编程基础 王森,《C语言编程基础第2版》王森版 习题答案
  16. Angular CLI简介
  17. 红孩儿编辑器的模块设计9
  18. C++统计正数数目和负数的数目,并计算平均值
  19. html中img显示图片的两种常用方式
  20. 什么是互联网大厂_请问22届应届毕业生应该如何准备互联网秋招?

热门文章

  1. 分类与聚类的区别以及聚类的方法分类
  2. java中的implement怎么用?
  3. GBIC模块、SFP模块、SFF模块介绍
  4. 【Elasticsearch教程8】Mapping字段类型之keyword
  5. 字节跳动前端开发面试题总结,需要的小伙伴来看!
  6. 富集分析:(一)概述
  7. 世界一流学科排名计算机科学,2021软科世界一流学科排名:计算机科学与工程...
  8. 科技云报道:资本涌入的计算机视觉,却逃不开商业化“摆烂”?
  9. 定位技术的发展过程,从GPS开始
  10. 板凳——————————————————c++(104)