论文及代码

论文地址:https://arxiv.org/abs/1904.04402

代码:http://www.svcl.ucsd.edu/projects/universal-detection/

概述

文章提出了一个通用的目标检测系统,适用于不同的图像领域而不需要该领域的先验知识。通过引入一个新的适应层系列(基于SE和新的领域-关注机制)。在所提出的通用检测器中,所有参数和计算都在领域之间共享,并且单个网络始终处理所有领域。作者在新的数据集上做实验(11个不同的目标检测数据集组成),检测效果比一组单领域检测器、一个多领域检测器和通用检测器的baseline都好。

介绍

目标检测任务是多种多样的,有种类差异(人脸、马、医学损伤等等),也有相机视角差异(从飞机、自动驾驶汽车上拍摄的图像等),还有图像风格(比如漫画、剪贴画、水彩画、医学图像等)等。现有的检测器大多是针对某一明确领域的(在单一数据集上进行训练和测试),部分原因是目标检测数据集是多样的且它们之间存在非平凡的领域转换。

众所周知,为不同领域的任务各自设置专门的检测器能达到很好的检测效果。但是实际应用中,系统可能需要处理多个领域的图像。简单粗暴一点的方法,我们要处理D个领域的图像,那么就训练D个检测器分别处理每个领域。但是,系统不一定明确某个时间点出现的是哪个领域的图像,而且模型会很大。所以研究人员提出了两种方案(图像分类),一种是在一个通用模型上解决多任务,另一种是在多个领域解决同一任务。目标检测比分类任务复杂得多。

文中建立了一个新的通用目标检测benckmark(包括11个不同的目标检测数据集),如图1所示:

并提出了一系列系统结构用于通用/多领域的目标检测问题(如图2):

其中D表示不同的领域,O表示输出,A表示领域专用的adapter,DA表示文中提出的领域注意模块,蓝色部分是领域通用,其他颜色表示各领域专用。图2的(a)和(b)是多领域检测器,显然它们都需要领域的先验知识。(a)是一系列领域专用检测器,不共享参数和计算;在(a)的基础上进行卷积层共享以及实现轻量级的领域专用的适应层,即(b)。图2的(c)和(d)是通用检测器,(c)所有领域间参数和计算(除了输出层),很难覆盖所有非平凡转换的领域,所以检测效果比(b)差;(d)是文中提出的方法,加入了DA(domain attention)模块,首先加入一系列通用SE adapter,然后引入基于特征的关注机制以实现对领域的敏感。该模块通过通用SE适配器库学习将网络激活分配给不同的域,并通过领域-注意机制来确定它们的响应,所以adapter可以专注于各自的领域。由于该过程是数据驱动的,所以域的数量不必与数据集的数量相匹配,数据集可以跨越多个域。网络可以利用跨领域的共享知识。

Multi-domain Object Detection

通用目标检测benchmark(UODB):Pascal VOC,WiderFace,KITTI,LISA,DOTA、COCO、Watercolor、Clipart、Comic、Kitchen和DeepLesions。

Single-domain Detector Bank

将Faster R-CNN作为Baseline,在每个数据集上分别训练检测器,得到11个检测器。各个检测器对应的卷积激活的均值和方差如下图:

VOC和COCO的激活分布是相似的,而DOTA、DeepLesion和CrossDomain的分布相对差别较大。此外,不同层的统计结果不同。前面的层对校正领域偏移贡献更大,所以比后面的层差异性更明显,RPN层差异也很明显(虽然它们是类别无关的)。而且很多层在不同的数据集上有相似的统计数据,特别是中间层,这表明至少在一些领域它们是可以数据共享的。

Adaptive Multi-domain Detector

该模型中输出层和RPN层是领域专用的,网络区域部分是共享的(如所有的卷积层)。为了适应新的领域,文中提出了一些额外的领域专用层(补偿领域转移、轻量化)。

使用SE模块构建所有的领域适应检测器,原因如下:领域适应与基于特征的注意力机制相关,而SE模块根据各channel的依赖关系来调节channel的响应,这可以看做是一种基于特征的注意力机制;而且基于SE模块的SENet在ImageNet上具有很好的分类效果,而且是一个轻量化模型。

SE Adapters

SE adapter包括如下操作:首先使用一个全局池化层进行Squeeze,然后通过两个全连接层组成的bottleneck结构来建模通道之间的相关性(先将特征维度降低到输入的1/r,然后经过ReLU激活后再通过一个全连接层升回原来的维度),这样可以具有更多的非线性、极大减少参数量和计算量。

文中r取16。FSE是指FC+ReLU+FC 。

将其用于多领域的目标检测(称为SE adapter bank),如图4b所示,给每个领域添加一个SE adapter分支和一个领域开关,可以选择领域关联的SE adapter。实现了图2b的结构,模型大小是图2a的1/5.

Universal Object Detection

在上述方法中,需要有领域的先验信息,而在自动系统中这是不可取的,比如自动驾驶或机器人系统。作者设计了通用检测器来解决这一问题。

Universal Detector

最简单的实现如上图所示,也就是所有task共享同一检测器,而输出层是task-specific的。这种方法简单粗暴,没有特定领域的参数,在所有领域上强制使用相同的参数/表示,检测效果较差。

Domain-attentive Universal Detector

理想情况下,通用检测器应该具有一定的领域敏感性,并且能够适应不同的领域。与多领域检测的区别在于:第一,必须自动推断领域;第二,不需要绑定领域和任务。

而一个常用的领域往往会有很多子领域,以交通场景为例,包含天气条件(晴天、雨天等)、环境(城市、乡村)等子领域。实际上,领域可能没有明确的语义,即它们可以是数据驱动的。在这种情况下,不需要要求每个检测器在单个域中工作,而软域分配更有意义。文章提出DA(domain adaptation)模块来突破网络单独处理单一领域的局限性。如下图所示。

Universal SE Adapter Bank

没有领域switch,通过连接各个域适配器的输出来实现的,以形成一个通用的表示空间。

其中N是adapter的数目。

每个分支(非线性)沿着与特定域的统计信息相匹配的子空间映射输入。然后,注意力组件产生一组域敏感的权重,用于以数据驱动的方式组合这些映射。在这种情况下,不需要事先知道操作域,因为输入映像可以激发多个SE适配器分支。

Domain Attention生成一个领域敏感的权重集,用于组合SE bank映射。DA组件首先对输入特征进行全局池化,然后应用Softmax层(线性层加Softmax函数),即

然后将得到的向量SDA给USE的输出XUSE加权,得到领域适应的响应向量:

最后逐通道进行激活的rescale,即:

其中Fscale是逐通道乘法。

Experiments

实验backbone:Faster R-CNN + SE-ResNet-50(pretrained on ImageNet)

数据集、超参数设置以及单领域检测器的mAP:

mAP比较如下:

只使用了五个数据集。

多领域目标检测器(adaptive)的平均精度相比baseline提升了0.7%,且明显优于BN Adapter和residual adapter(RA)。通用目标检测器只增加了0.5M参数,但平均精度较差(只有72.5%)。领域注意机制的通用检测器效果最好,每个领域参数增加了大约7%,平均精度相对baseline提升了1.6%。如果领域注意机制的参数固定(也就是直接取SE adapter 响应的平均),平均精度则会下降0.5%(相对baseline提升1.1%)。

SE adapter数目的影响

5个adapter左右是最合适的。

实验结果:

domain attention module学到了什么?下图显示了第四和第五个残差块第一阶段残差和最后一阶段残差学到的权重。

official evaluation

上表显示了universal+DA模型在各个官方测试集上的结果,增加了领域自适应后,在多个数据集上的mAP都有不同程度的提升。

Towards Universal Object Detection by Domain Attention的更多相关文章

  1. object detection 总结

    1.基础 自己对于YOLOV1,2,3都比较熟悉. RCNN也比较熟悉.这个是自己目前掌握的基础2.第一步 看一下2019年的井喷的anchor free的网络3.第二步 看一下以往,引用多的网路4. ...

  2. (转)Awesome Object Detection

    Awesome Object Detection 2018-08-10 09:30:40 This blog is copied from: https://github.com/amusi/awes ...

  3. Viola–Jones object detection framework--Rapid Object Detection using a Boosted Cascade of Simple Features中文翻译 及 matlab实现(见文末链接)

    ACCEPTED CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION 2001 Rapid Object Detection using a B ...

  4. Rapid Object Detection using a Boosted Cascade of Simple Features 部分翻译

    Rapid ObjectDetection using a Boosted Cascade of Simple Features 使用简单特征级联分类器的快速目标检测 注:部分翻译不准处以红色字体给出 ...

  5. paper 27 :图像/视觉显著性检测技术发展情况梳理(Saliency Detection、Visual Attention)

    1. 早期C. Koch与S. Ullman的研究工作. 他们提出了非常有影响力的生物启发模型. C. Koch and S. Ullman . Shifts in selective visual ...

  6. Object Detection · RCNN论文解读

    转载请注明作者:梦里茶 Object Detection,顾名思义就是从图像中检测出目标对象,具体而言是找到对象的位置,常见的数据集是PASCAL VOC系列.2010年-2012年,Object D ...

  7. 论文阅读笔记五十三:Libra R-CNN: Towards Balanced Learning for Object Detection(CVPR2019)

    论文原址:https://arxiv.org/pdf/1904.02701.pdf github:https://github.com/OceanPang/Libra_R-CNN 摘要 相比模型的结构 ...

  8. 论文阅读笔记五十二:CornerNet-Lite: Efficient Keypoint Based Object Detection(CVPR2019)

    论文原址:https://arxiv.org/pdf/1904.08900.pdf github:https://github.com/princeton-vl/CornerNet-Lite 摘要 基 ...

  9. (不断更新)关于显著性检测的调研-Salient Object Detection: A Survey

    <Salient Object Detection: A Survey>作者:Ali Borji.Ming-Ming Cheng.Huaizu Jiang and Jia Li 基本按照文 ...

随机推荐

  1. day14作业

    文件内容如下,标题为:姓名,性别,年纪,薪资 egon male 18 3000 alex male 38 30000 wupeiqi female 28 20000 yuanhao female 2 ...

  2. Java基础(二十七)Java IO(4)字符流(Character Stream)

    字符流用于处理字符数据的读取和写入,它以字符为单位. 一.Reader类与Writer类 1.Reader类是所有字符输入流的父类,它定义了操作字符输入流的各种方法. 2.Writer类是所有字符输出 ...

  3. Java基础(十五)异常(Exception)

    1.处理错误的要求 如果由于出现错误而使得某些操作没有完成,程序应该: 返回到一种安全状态,并能够让用户执行一些其他的命令. 允许用户保存所有操作的结果,并以妥善的方式终止程序. 2.程序中可能出现的 ...

  4. Springboot与任务整合(四)

    一 异步任务 启动类 @MapperScan("com.topcheer.*.*.dao") @SpringBootApplication @EnableCaching @Enab ...

  5. 手撕公司SSO登陆原理

    Single Sign-on SSO是老生常谈的话题了,但部分同学对SSO可能掌握的也是云里雾里,一知半解.本次手撕公司的SSO登陆原理,试图以一种简单,流畅的形式为你提供 有用的SSO登陆原理. 按 ...

  6. 模板(ac):启发式合并

    首先说明一点:线段树合并不是启发式合并. 启发式合并的大概内容就是:把小的数据结构按照这个数据结构的正常插入方法,一个一个地暴力塞进去. 而线段树合并显然不是这个东西. 这道题的题解太烂了,所以耽误了 ...

  7. Redis实战--Redis整合SpringBoot示例

    echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 该文章 ...

  8. Docker的centos7容器中如何安装mongodb

    下载安装包: wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.12.tgz 解压安装包 tar -zxvf mongodb ...

  9. ElasticSearch(三):通分词器(Analyzer)进行分词(Analysis)

    ElasticSearch(三):通过分词器(Analyzer)进行分词(Analysis) 学习课程链接<Elasticsearch核心技术与实战> Analysis与Analyzer ...

  10. 『题解』BZOJ3172 [TJOI2013]单词

    原文地址 Problem Portal Portal1:BZOJ Portal2:Luogu Description 某人读论文,一篇论文是由许多单词组成.但他发现一个单词会在论文中出现很多次,现在想 ...