Jigsaw pre-training以拼图的方式从检测数据集中生成用于主干网络预训练的数据集,而不需要额外的预训练数据集,如ImageNet。另外为了让网络更好的适应拼图数据,论文提出ERF-adaptive密集分类方法,能够很好地扩大预训练主干网络的有效感受域。整体而言,Jigsaw pre-training方便且高效,性能比使用ImageNet预训练模型效果要好。



来源:晓飞的算法工程笔记 公众号

论文: Cheaper Pre-training Lunch: An Efficient Paradigm for Object Detection

Introduction


  目标检测网络一般都使用如ImageNet的大型分类数据集进行主干网络的预训练,借助大规模数据集上学习到的特征表达,能帮助检测算法更快地收敛,但这种方法带来的额外数据集需求和计算消耗是不可忽视的。尽管有一些方法通过改善权值初始化来优化直接训练检测网络的效果,但这种方法通常收敛都比较慢,需要更多的训练时间,主要由于主干网络在直接训练时会面对大量的无效信息,过多的背景会带来冗余的计算消耗,造成收敛过慢且效果不好。

  基于上面的分析,论文提出了很“实惠”的预训练方法Jigsaw pre-training,从检测数据集中提取出目标样本和背景样本,根据目标的长宽比以拼图的方式将其组合成一个训练样本进行模型预训练。为了提高预训练网络的有效感受域,论文设计了ERF-adaptive密集分类策略,根据有效感受域(ERF)来给每个特征点指定平滑标签(soft label)。论文的贡献如下:

  • 提出高效且通用的预训练范式,仅需检测数据集,消除了额外的预训练数据需求。
  • 设计了样本提取规则,以拼图策略和ERF-adaptive密集分类来高效地进行主干网络的预训练,提高了训练效率和最终性能。
  • 在不同的检测框架验证了Jigsaw pre-training的有效性,展示其通用型。

Methodology


  Jigsaw pre-training方法如图1所示,能够用于各种目标检测框架中。给定检测数据集$\mathcal{D}$,从中提取正负目标保存为分类数据集,这些目标以拼图的形式组合并用于检测器主干网络的预训练,训练使用论文提出的ERF-adaptive损失。在完成预训练后,以fine-tuned的方式在$\mathcal{D}$上训练目标检测模型。

Sample Selection

  在目标检测模型训练中,正负样本平衡是十分重要的。为了高效的预训练,论文小心地将原图提取的目标划分为正负样本,正负样本的提取都有其对应的规则。

  • Positive samples

  根据GT bbox从原图提取区域,考虑到上下文信息对特征表达的学习有帮助,随机扩大bbox大小来包含更多的上下文信息。具体做法为移动bbox的左上角和右下角,最大可扩展为原边长的两倍,若bbox超过原图边界则进行裁剪,如上图所示。

  • Negative samples

  为了让预训练模型更适应检测场景,从背景区域提取一些负样本。首先随机生成一些候选区域,然后获取$IoU(pos, neg)=0$的所有负样本,这样正负样本就是互斥的。在论文的实验中,正负样本的比例为10:1。

Jigsaw Assembly

  有很多方法能够处理样本进行预训练,比如warping以及padding,但warping会破坏原本的上下文信息和形状,而padding会加入无意义的填充像素,带来额外的计算时间和资源消耗。为了更有效地进行预训练,论文基于目标的尺寸和长宽比,采用拼图的方式处理样本,每次拼四个目标。在获得所有样本后,根据长宽比将他们分为3组:

  • Group S(square):长宽比在0.5到1.5直接
  • Group T(tall):长宽比小于0.5
  • Group W(wide):长宽比大于1.5

  如上图所示,每次拼图随机选择两个S样本、1个T样本和1个W样本填充到预设的区域中。较小的S样本放置于左上角,较大的S样本放置于右下角,而T样本和W样本分别放置于左下角和右上角。若样本大小不符合预设的拼图区域大小不一致,根据其大小选择填充或随机裁剪,根据实验结果,不会对目标进行缩放和warping。

ERF-adaptive Dense Classification

  由于拼图样本可能包含多个类别的目标,因此需要特殊的训练方法,论文先介绍了两种用于对比的策略:

  • Global classification,给整张图片一个全局的标签,该标签为4个目标标签的区域大小加权和,有点类似CutMix数据增强方法,最后使用全局池化,进行交叉熵损失更新。
  • Block-wise classification,保留每个目标的标签,在池化的时候对每个区域对应的特征进行独立的池化和预测,最后也单独地进行交叉熵损失计算。

  但论文通过可视化左上角区域的有效感受域发现,上面两种方法的左上角区域的有效感受域都集中在了对应小S-sample区域,这种局限的有效感受域可能会降低深度模型的性能。

  为了尽量考虑每个像素,论文提出ERF-adaptive密集分类策略,对特征图$X$的每个位置进行分类,而每个位置的soft label基于其对应的有效感受域计算。定义每个区域$R_i$的原标签$y_i$,对于特征图$X$的每个位置$(j,k)$,soft label $\tilde{y}^{j,k}$为4个标签的加权和:

  权重$w{j,k}_i$取决于有效感受域,对于位置$(j,k)$,其对应的输入空间的有效感受域为$G{j,k}\in \mathbb{R}^{H\times W}$后,权重$w{j,k}_i$为有效感受域在区域$i$内的权值之和与整体有效感受域权值之和的比值。另外,如果位置$(j,k)$在区域$i$内,设定$w{j,k}_i$的最小阈值$\tau$,保证$y_i$主导soft label。整体的公式可表示为:

  $M^i \in { 0,1}^{H\times W}$为二值掩膜,用来标记ERF在区域$i$中部分。

  在得到位置$(j,k)$的权重${ w^{j,k}_i }$后,计算每个位置的soft label。在对特征$x^{j,k}$进行稠密分类时,将最后的全连接层替换为$1\times 1$卷积进行预测,最后对预测特征图的每个位置与soft label进行交叉熵损失。为了公平起见,对loss map进行block-wise池化。需要注意的是,权重在每5k次迭代更新一次,而不是每次迭代都更新。

  同样是左上角区域对应的有效感受域的可视化,ERF-adaptive有更大的有效感受域。

  论文也对3种策略的效果进行了对比。

Experiments


  与ImageNet预训练方法对比,Cost为耗时,单位为GPU day。

  不同训练参数的性能差异。

  不同主干网络上的效果对比。

  在多种检测框架和策略上进行对比。

  与直接训练方法的对比。

Conclustion


  论文提出了一种高效的预训练方法Jigsaw pre-training,该方法以拼图的方式从检测数据集中生成用于主干网络预训练的数据集,而不需要额外的预训练数据集,如ImageNet。另外为了让网络更好的适应拼图数据,论文提出ERF-adaptive密集分类方法,能够很好地扩大预训练主干网络的有效感受域。整体而言,Jigsaw pre-training方便且高效,性能比使用ImageNet预训练模型效果要好。





如果本文对你有帮助,麻烦点个赞或在看呗~

更多内容请关注 微信公众号【晓飞的算法工程笔记】

Jigsaw pre-training:摆脱ImageNet,拼图式主干网络预训练方法 | ECCV 2020的更多相关文章

  1. 【Android Developers Training】 78. 序言:执行网络操作

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  2. ReLabel:自动将ImageNet转化成多标签数据集,更准确地有监督训练 | 2021新文

    人工标注数据集中普遍存在噪声,ReLabel能够自动且低成本地将原本的单标签数据集转化为多标签数据集,并且提出配合random crop使用的高效LabelPooling方法,能够更准确地指导分类网络 ...

  3. (转)A Recipe for Training Neural Networks

    A Recipe for Training Neural Networks Andrej Karpathy blog  2019-04-27 09:37:05 This blog is copied ...

  4. 图像分类(二)GoogLenet Inception_v2:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

    Inception V2网络中的代表是加入了BN(Batch Normalization)层,并且使用 2个 3*3卷积替代 1个5*5卷积的改进版,如下图所示: 其特点如下: 学习VGG用2个 3* ...

  5. 在imagenet预训模型上进行finetune

    所谓fine tune就是用别人训练好的模型,加上我们自己的数据,来训练新的模型.fine tune相当于使用别人的模型的前几层,来提取浅层特征,然后在最后再落入我们自己的分类中. fine tune ...

  6. NLP领域的ImageNet时代到来:词嵌入「已死」,语言模型当立

    http://3g.163.com/all/article/DM995J240511AQHO.html 选自the Gradient 作者:Sebastian Ruder 机器之心编译 计算机视觉领域 ...

  7. ECCV 2018 | Bi-Real net:超XNOR-net 10%的ImageNet分类精度

    这项工作由香港科技大学,腾讯 AI lab,以及华中科技大学合作完成,目的是提升二值化卷积神经网络(1-bit CNN)的精度.虽然 1-bit CNN 压缩程度高,但是其当前在大数据集上的分类精度与 ...

  8. Uncovering the Limits of Adversarial Training against Norm-Bounded Adversarial Examples

    Uncovering the Limits of Adversarial Training against Norm-Bounded Adversarial Examples 目录 概 主要内容 实验 ...

  9. 大规模视觉识别挑战赛ILSVRC2015各团队结果和方法 Large Scale Visual Recognition Challenge 2015

    Large Scale Visual Recognition Challenge 2015 (ILSVRC2015) Legend: Yellow background = winner in thi ...

随机推荐

  1. C/C++编程笔记:C++入门知识丨类和对象

    本篇要学习的内容和知识结构概览 类及其实例化 类的定义 将一组对象的共同特征抽象出来, 从而形成类的概念. 类包括数据成员和成员函数, 不能在类的声明中对数据成员进行初始化 声明类 形式为: clas ...

  2. Typora+PicGo-Core(command line)+SMMS、github、gitee实现Typora图片上传到图床

    Typora+PicGo-Core(command line)+SMMS.github.gitee实现Typora图片上传到图床 1 安装插件2 配置config.json    2.1 设置SMMS ...

  3. Python实现微信读书辅助工具

    [TOC] ##项目来源 这个有意思的项目是我从GitHub上找来的,起因是在不久前微信读书突然就设置了非会员书架数目上限,我总想做点什么来表达我的不满,想到可否用爬虫来获取某一本书的内容, 但是我技 ...

  4. react-ts模板2.0

    最新整理的react模板2.0 - react 16.12.0 - react-router - redux,redux-thunk - hooks,typescript - antd v4,sass ...

  5. 埋在MySQL数据库应用中的17个关键问题!

    作者:扎瓦陈序元 来源:https://blog.csdn.net/weixin_42882439 MySQL的使用非常普遍,跟MySQL有关的话题也非常多,如性能优化.高可用性.强一致性.安全.备份 ...

  6. 实验05——java算术运算符减法

    package cn.tedu.demo; import java.math.BigDecimal; /** * @author 赵瑞鑫 E-mail:1922250303@qq.com * @ver ...

  7. 41-native关键字的理解

    使用 native 关键字说明这个方法是原生函数,也就是这个方法是用 C/C++等非Java 语言实现的,并且被编译成了 DLL,由 java 去调用. (1)为什么要用 native 方法 java ...

  8. 网络安全传输系统-sprint3账号管理子系统设计

    part1:sqlite嵌入式数据库移植 1.数据库系统构成:访问数据库应用-->管理数据库系统-->数据库存储(自上而下) 2.数据库中数据以表的形式而存在.表与表之间可能存在关联关系( ...

  9. day24:多态&魔术方法__new__&单态模式

    目录 1.多态 2.__new__魔术方法 2.1 关于魔术方法__new__ 2.2 基本语法 2.3 __new__ 触发时机快于构造方法 2.4 __new__ 和 __init__ 参数一一对 ...

  10. 久等了,你要的 Python 书籍推荐,来了

    前言 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类人,我给大家提供 ...