Background & Motivation

当数据量不足的时候,很主流的一个做法就是迁移学习。当迁移至目标域后,最常见的一个错误就是误分类。因为在源域的 box regressor 本来就是类别无关的,而 classification 是类别相关,由于数据量太少训练难以收敛,所以就导致了误分类。而且此前的小样本学习方法很多都没有考虑到误分类这个问题。

Modeling context,上下文建模也称作背景建模,一直是目标检测的一个挑战。

The main reason is that, objects may have various locations, scales, aspect ratios, and classes. It is often difficult to model such complex instance-level relations by manual design.

此前的很多小样本学习方法动机都是:人类视觉系统对于一个物体能够”过目不忘“,如何能让模型也具有这种能力。但是这个动机本身就是不太科学的。首先对于人类能够过目不忘,有人认为这是因为人类视觉系统是一个超大规模的学习系统。因此当我们看到一个物体时,我们在脑海里实际上已经把它放到了无穷无尽的场景下进行了联想、想象,此时的数据量是任何数据集和数据扩增方法都无法比拟的;其次现在的深度学习模型,本来就是数据驱动的,给多少数据就有多少精度。不给模型喂数据的同时还希望模型具有检测能力,这种想法本身就不合实际。

而这篇文章基于人类视觉系统的 Motivation 是:人类在识别物体的时候会建立起 contextual associations,即会找到物体与物体周围环境(下文称作 contextual field)之间的线索,来完成识别。这一 Motivation 显然比上一种说法要靠谱得多。

Source Detection Transfer

Backbone 采用 SSD,一个原因是多尺度的感受野提供了更丰富的 context,另一个原因是其简洁的设计。

将检测任务分成了 BBOX、BG(background)和 OBJ(object,可以理解为不同类型物体的多分类),其中前两个都可以直接通过微调迁移到 target-domain 上,而最后一个如果直接替换掉模型 top 的 source-domain OBJ 而随机初始化一个 target-domain OBJ 的话,由于参数过多又数据太少将很难将其训练收敛。

本文的做法是保留之前的 source-domain OBJ,在模型的 top 再增加一个 target-domain OBJ(其实就是 prior box 经过 refinement 之后得到的),文中解释  source-domain OBJ 的输出的维度比卷积层的特征通道的数量要小得多,这样做来避免过拟合。

简单的从 source-domain 迁移到 target-domain,很难解决 target-domain 中面临的误分类问题,本文的做法是通过衡量物体周围 context 来应对误分类。

For example, a few images may be discriminative enough to distinguish horse from dog, when we find that these images contain important contents such as a person sits on this animal, the scene is about wild grassland, etc.

Context-Transformer

其结构如下,包含两个子模块:affinity discovery 和 context aggregation。

prior boxes 理解为用预训练模型检测 target-image 输出的 bbox。affinity discovery 首先基于 prior boxes 建立一些 contextual field,之后用 source-domain 学到的特征得到这些 prior box 与 contextual field 之间的关系。 在找到这两者之间的 affinity 之后,对 context 做 Transformer 式的注意力计算将其整合到 prior box 的表征中。

Affinity Discovery

  • Source-Domain Object Knowledge of Prior Boxes

这一步将 target-image 输入到 source-domain 上训练的 SSD 中,得到输出的各 bbox 的 score tensor:

We would like to emphasize that, the score of source-domain classifier often provides rich semantic knowledge about target-domain object categories.

在第 k 尺度上第 m 个长宽比的位置在(h,w)的 prior box 中的物体是 source-domain 中每一个类别 Cs 的概率。

Cs 指的是 source-domain 数据物体的类别数,这里的 bbox 也被称作 prior boxes。

  • Contextual Field Construction via Pooling

得到这些 prior box 之后,我们希望得到它的 contextual field,最直观的做法是采用 SSD 中所有的 anchor box,但是其数量过多给模型学习带来了困难。

Alternatively, humans often check sparse contextual fields, instead of paying attention to every tiny detail in an image.

本文的做法是对 prior box 做空间池化操作,这里做的是 max pooling 得到 contextual field:

  • Affinity Discovery

这一步的作用是找到 prior box 与 contextual field 之间的关系,将 P 和 Q 分别通过一个共享参数的全连接层(公式中的 f 和 g) reshape 成 Dp*Cs 和 Dq *Cs 大小,得到各自的 embedding,其中 Dp 和 Dq 分别为 prior box 和 contextual field 的总数。之后做点乘(即余弦相似度)来比较 P 和 Q,得到 affinity matrix:

其中

的含义为对于第 i 个 prior box,所有 contextual field 的重要性得分。

To sum up, affinity discovery allows a prior box to identify its important contextual fields automatically from various aspect ratios, locations and spatial scales.

Such diversified relations provide discriminative clues to reduce object confusion caused by annotation scarcity.

这里有点 Transformer 里自注意力的意思,用矩阵相乘的思想得到一个框对于其他所有框的注意力得分。

Context Aggregation

  • Context Aggregation

对于第 i 个 prior box 及其重要性得分,计算出调整过权重的 contextual vector:

h 是一个全连接层,与 f 和 g 是否相同不得而知,增加这个全连接层的用来提高学习的灵活性。之后将 L 聚合到原始的 score tensor P 上,得到 prior box 的 context-aware score tensor,相当于对 prior box 完成了一次 refinement。

φ 也是一个全连接层,这时的 P 已经带上了与 context 交互的信息。对于其中的每一行(即一个 prior box),都聚合了不同尺度下不同比例的 contextual field。

上面的全连接层全部都是 residual-style FC layers。

  • Target OBJ

将此时的 P 再聚合到 target-domain OBJ 上,完成最后的分类。

Experiments

有效地减少了误分类。

Few-Shot Object Detection

各个模块的消融实验:

以及 Context-Transformer 中各子模块是按方法的消融实验:

检测精度:

COCO 中60类作为 source-domain,VOC 中的20类作为 target-domain,所以这里的精度是在 VOC 上的精度。上表中 Non-local 是自注意力的方法,可以看出直接使用自注意力行不通。

并且随着 shot 的增加,和 Baseline 之间的差距越来越小。

This matches our insight that, Context-Transformer is preferable to distinguish object confusion caused by low data diversity.

在通用检测任务上也有提升:

Incremental Few-Shot Object Detection

Specifically, we add a residual-style FC layer on top of the pretrained source-domain OBJ, which allows us to construct a new source-domain OBJ that can be more compatible with target-domain OBJ.

Then, we concatenate new source and target OBJs to classify objects in both domains.

可以看出在 source-domain 上的精度也没有掉。

Conclusion

正如文章中所说:

To our best knowledge, Context-Transformer is the first work to investigate context for few-shot object detection.

与背景 context 建模是一种新思路。

感觉 Transformer 里自注意力的方法做的事情就是度量学习要做的,如何将这两者结合起来,这个思路似乎行得通,但是还有很多工作要做。

论文阅读《Context-Transformer:Tackling Object Confusion for Few-Shot Detection》相关推荐

  1. 《基于卷积神经网络的深度迁移学习,用于燃气轮机燃烧室的故障检测》论文阅读

    目录 突出 抽象 引言 1.1动机 1.2文献综述获得的结论 1.3贡献 1.4组织 2方法 2.1燃汽轮机组故障知识共享 2.2迁移学习 2.3 基于卷积神经网络的深度迁移学习 2.4用于燃气轮机燃 ...

  2. 基于卷积神经网络和投票机制的三维模型分类与检索 2019 论文笔记

    作者:白静 计算机辅助设计与图形学学报 1.解决的问题 由于三维模型投影得到的视图是由不同视点得到,具有相对独立性,这种像素级的融合运算并没有直接的物理或者几何意义,更有可能造成图像有益信息淹没和混淆 ...

  3. TextCNN——基于卷积神经网络的文本分类学习

    1.CNN基础内容 CNN的全称是Convolutional Neural Network,是一种前馈神经网络.由一个或多个卷积层.池化层以及顶部的全连接层组成,在图像处理领域表现出色. 本文主要学习 ...

  4. 读懂深度迁移学习,看这文就够了 | 赠书

    百度前首席科学家.斯坦福大学副教授吴恩达(Andrew Ng)曾经说过:迁移学习将是继监督学习之后的下一个促使机器学习成功商业化的驱动力. 本文选自<深度学习500问:AI工程师面试宝典> ...

  5. 一种基于卷积神经网络的图像去雾研究-含matlab代码

    目录 一.绪论 二.去雾卷积网络 2.1 特征提取 2.2 多尺度映射 2.3 局部均值 2.4 非线性回归 三.实验与分析 四.Matlab代码获取 一.绪论 雾是一种常见的大气现象,空气中悬浮的水 ...

  6. 机械臂论文笔记(一)【基于卷积神经网络的二指机械手 抓取姿态生成研究 】

    基于卷积神经网络的二指机械手 抓取姿态生成研究 论文下载 摘要 第1章 绪论 1.1 抓取生成国内外研究现状 1.1.1已知物体抓取生成 1.1.2相似物体抓取生成 1.1.3 未知物体抓取生成 1. ...

  7. 毕业设计 - 基于卷积神经网络的乳腺癌分类 深度学习 医学图像

    文章目录 1 前言 2 前言 3 数据集 3.1 良性样本 3.2 病变样本 4 开发环境 5 代码实现 5.1 实现流程 5.2 部分代码实现 5.2.1 导入库 5.2.2 图像加载 5.2.3 ...

  8. 基于卷积神经网络与迁移学习的油茶病害图像识别

    基于卷积神经网络与迁移学习的油茶病害图像识别 1.研究思路 利用深度卷积神经网络强大的特征学习和特征表达能力来自动学习油茶病害特征,并借助迁移学习方法将AlexNet模型在ImageNet图像数据集上 ...

  9. Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类)

    Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类) 1.卷积神经网络 1.1卷积神经网络简介 1.2卷积运算 1.3 深度学习与小数据问题的相关性 2.下载数据 2.1下载原始数据 ...

  10. 基于卷积神经网络实现图片风格的迁移 1

    卷积神经网络详解 一.实验介绍 1.1 实验内容 Prisma 是最近很火的一款APP,它能够将一张普通的图像转换成各种艺术风格的图像.本课程基于卷积神经网络,使用Caffe框架,探讨图片风格迁移背后 ...

最新文章

  1. 循环语句——7月23日
  2. android 返回字符串,android – 如何从异步回调使用Retrofit返回String或JSONObject?
  3. LIstview滑动时不加载图片,停止时加载!
  4. 4、CSS 外边距margin
  5. 多类别分类问题由 confusion matrix 到分类准确率(accuracy)的计算
  6. RecyclerView异步加载图片
  7. 微软私有云资源链接总结分享
  8. oracle11g本地安装,windows64位机oracle11g+pl/sql安装教程图解
  9. php 阿里云短信接口 demo最新
  10. 控制理论PID的理解
  11. APP添加人脸识别功能
  12. win10系统20H2版本更新以后桌面底下弹出了对话框,说我们在加载你的信息流时遇到了问题?
  13. 报错: EBUSY: resource busy or locked, lstat ‘C:\hiberfil.sys‘
  14. 关于atmel芯片security bit的取消
  15. App测试中IOS和安卓测试的区别
  16. stm32mp15x环境搭建基于linux环境(上)
  17. linux设备模型:devtmpfs虚拟文件系统分析
  18. FLy_buck 拓扑结构
  19. TypeScript从入门到放弃
  20. 口语:英语单词发音规则

热门文章

  1. php判断caj文件页数,CAJ转Word有没有既免费还不限制页数的转换工具?
  2. springboot banner制作
  3. 尚学堂怎么样?给你讲讲我的亲身经历
  4. 我喜欢的作品风格: 韩国daksha作品IF YOU GO AWAY…
  5. *jqwidgets jqxgrid 使用心得 jqxgrid教程 jqxgrid+SpringMVC(初级) 集成JAVA SSM
  6. matlab学霸表白公式,【爱情物理学】520来了,看看理科学霸们创意的表白方式
  7. [分享]一次中移物联网校园招聘javaweb的笔试题
  8. 猜数字游戏(伪随机数对猜数字游戏的影响)
  9. 如何申请微信号测试账号,进行微信开发
  10. 怎么使qq推广效果最大化