当前位置: 首页 > 编程日记 > 正文

基于Co-Attention和Co-Excitation的少样本目标检测 | NeurIPS 2019

「免费学习 60+ 节公开课:投票页面,点击讲师头像」

作者 | VincentLee

来源 | 晓飞的算法工程笔记(ID: gh_084c810bc839)

导读:论文提出CoAE少样本目标检测算法,该算法使用non-local block来提取目标图片与查询图片间的对应特征,使得RPN网络能够准确的获取对应类别对象的位置,另外使用类似SE block的squeeze and co-excitation模块来根据查询图片加强对应的特征纬度,最后结合margin based ranking loss达到了state-of-the-art,论文创新点满满。

  • 论文地址:https://arxiv.org/abs/1911.12529

  • 代码地址:https://github.com/timy90022/One-Shot-Object-Detection


  • 论文认为,人类能够在图片中找出模版对应的物体,是因为人类具备将像素分组,提取独特特征比对以及专注定位的能力。因此,论文希望提出一个具备人类视觉功能的网络来解决one-shot目标检测的问题,给予网络一张未见过的查询模版(query image),然后在目标图片(taget image)中找出其位置。论文提出的one-shot目标检测算法的特征主要来自两种上下文信息:

  • 目标图片能够提供空间上下文,对比其它前景物体和背景来找出特殊对象的位置

  • 目标图片和查询图片能够提供类别上下文,而确切的类别层次则是由模版和目标对象的相同属性(颜色,纹理,形状等)决定的

度量学习(Metric learning)是one-shot分类问题的关键,但不能直接简单地将学习到的度量方法应用到one-shot目标检测中,因为检测器需要先知道哪块区域最有可能包含目标才能进行比较。另外,目标追踪可以认为是少样本目标检测的一个特殊案例,区别在于,少样本目标检测的目标图片中不一定包含查询图片,并且允许图片之间存在明显的外观差异,只要他们有公共的特征进行归类即可。论文推出新的机制squeeze and co-excitation(CoAE)来同时强化新类别对象在查询图片和目标图片上的特征,实验证明,CoAE框架能更好地发掘空间和类别上下文信息,带来很好的性能提醒

方法

定义数据集的类别标签集合为,进一步将其分为,分别用于训练和测试。少样本目标检测的流程定义为,给予查询图片,为集合的一个类别对象,测试就是查找目标图片所有对应的对象,假设每张可用的图片包含至少一个查询对象。

论文的主要架构如1,主要包含4个部分,分别是前面的基础特征提取,然后是Non-local feature的提取,用于提取共同特征,接着是论文提出的squeeze and co-excitation(CoAE)模块,用于强化目标channel,最后是metric模块,用于最好的分类。

Non-local object proposals

定义训练集为,包含类别的bbox,论文采用Faster R-CNN架构进行检测,这会带来一个基础问题,即RPN能否检测出未训练过的类别()的bbox。由于类别与类别可能存在十分明显的区别,因此,RPN不一定能检测出的bbox。为了解决这个问题,论文引入non-local operation来优化卷积特征,non-local operation是一种类似attention的操作,能够根据参考输入来强化目标输入上的特征分布,具体可以看 Non-local neural networks

为目标图片,为查询图片,目标图片的主干网络输出为,查询图片的输出为。将作为参考输入,的non-local block输出为,同样的,以作为参考输入,可以得到之间的相互non-local operations可以认为进行co-attention机制

两个扩展的特征图可以表示为公式1和公式2,是element-wise sum。由于不仅包含了目标图片的特征,还包含了加权特征,所以将RPN接在这层特征上能够发现更多关于查询图片的信息,从而获取更高质量的bbox,即non-local region proposals更适合少样本目标检测

Squeeze and co-excitation

除了关联region proposals和查询图片外,co-attention机制产生了channel数一样的两组特征 ,而这两组特征可以通过论文提出的squeeze-and-co-excitation(SCE)来根据查询图片对N个channel进行自适应重新加权。具体地,squeeze步骤通过GAP(global average pooling)概括了每一个特征图,而co-excitation则同时对进行channel纬度的特征加强,重点加强对最后相似度度量有用的特征。在squeeze层和co-excitation层之间,放置了两个fc/MLP层,跟SE block设计一样

SCE operation如公式3,为重新加强后的特征图,是co-excitation向量,而表示element-wise product

通过公式3,查询图片可以表示为公式4,同样RPN提取的区域特征可以同样得出,例如对的裁剪区域进行channel-wise的GAP

Proposal ranking

论文设计了一个两层MLP网络M,以二分类softmax结尾,RPN根据查询图片选出K个bbox,K一般为128。在训练阶段,K个bbox会根据IoU是否大于0.5分成前景(label 1)和背景(label 0),接着使用margin-based ranking loss来指导度量学习,使得最相关的bbox出现在bbox列表的前面。因此,论文将每个bbox的特征向量分别和查询图片特征进行concatenate,标记为,网络M的层输出分布

论文定义margin-based ranking loss为公式5,为前景的预测的置信度,为Iverson bracket,括号内为true则输出1,否则输出0,为前景的下限,为背景的上线,在实际中,一般分别设为0.7和0.3

margin-based loss分为两部分,前部分为限制前景和背景的置信度,前景必须大于0.7,背景必须小于0.3,否则产生loss。而另一部分则是ranking的loss,初始的顺序是根据RPN的置信度输出。这里可以看出,论文没有设定真正意义的先后顺序,而是限制了正负样本间的置信度差,同类别样本间置信度差要小于0.3,而不同类别样本间置信度差则要大于0.7

最后的总loss如公式7,前两个loss为交叉熵和Faster R-CNN的回归loss

实验


数据集和超参数

Table1展示了VOC上的seen和unseen类别,而在COCO上,则对80个类进行4等分,然后随机选取3个作为seen类别,剩下一个为unseen类别,如图2所示。训练使用SGD优化器,momentum为0.9,训练10个周期,batch size为128,使用8块v100,学习率为0.01,每4个周期下降10倍,margin-based ranking loss的

生成目标和查询对

对于VOC,直接裁剪gt bbox作为查询图片,而对于COCO,由于目标太小且对于人也太难辨认,不能直接裁剪,因此,使用预训练的Mask R-CNN去掉过小和过难的目标。另外,实验仅使用Mask R-CNN检测出来的GT。在训练时,对于目标图片,随机获取图片上的seen类别作为查询图片。而在测试时,先使用图片ID作为种子,随机打乱查询图片的顺序,然后选取前五个查询图片,最后计算mAP。打乱顺序能保证获取的5个查询图片上随机的,从而保证验证结果上准确的

ImageNet预训练

为了保证实验的严格性,使用缩减后的ImageNet对ResNet-50进行重新训练,将COCO-related ImageNet类别去掉,大约933052张图片,剩下725类,精度top-1 75.8%,完整的ImageNet包含1284168张图片,共1000类

性能

对于VOC,Table1中可以看到,使用缩减的数据集训练的模型依然优于baseline模型,而使用完整的数据集训练的模型则是性能有很明显地提升。unseen类别性能比seen类别好,这是由于部分类别的对象差异较大,比如plant, bottle, chair

对于COCO,Table2中可以看出,论文的模型在seen类别和unseen类别上优于Siamese Mask-RCNN

消融实验

  • Co-attention, co-excitation, and margin-based ranking loss

论文研究了不同的策略的共享,如Table3。首先,不使用Co-attention和Co-excitation的模型表现最差,而分别单独加入non-local RPN和SCE在VOC和COCO上能分别能带来6.3/4.4mAP和9.8/8.2AP(%)提升,同时加入则分别进一步带来0.9/1.8mAP(%)和0.3/1.9AP(%)提升,这意味着co-attention和co-exciation对性能表现都很关键,而margin-based ranking loss也是很重要的。

  • Visualizing the distribution of non-local object proposals

为了分析non-local bbox的性能,将bbox分布以heatmap方式可视化, 如Figure3,co-attention模块让RPN更专注于查询图片的相似区域。

  • Visualizing the characteristics of co-excitation

为了分析co-excitation机制是否学习到了不同类别的权重分布,论文收集了测试时不同类别的查询图片的co-excitation权重,最后对其求平均得到类别的单一向量,再用欧式距离计算类别单一向量间的距离。从图4的结果可以看出,co-excitation模块学习到了有意义的权重分布,相似的物体的向量距离比较近,而person类别则远离其它所有类别,表明person类别的权重与其它类别基本不同。

  • Analyzing the co-excitation mechanism

论文进行了两个相反的实验,首先对同一张目标图片使用不同的查询图片,从图5的结果可以看出,p1和p2的颜色与目标相似,而p3和p4则截然不同,从结果来看,结论是前两张图片更注重颜色,而后两张则更注重形状特征。另外一个则是对不同的目标图片使用同一张查询图片,从图6结果可以看出,I1和I2更注重纹理而I3和I4更注重形状特征。

结论

论文提出CoAE少样本目标检测算法能够根据查询图片提取对应的特征,不依赖于训练数据的标注信息,在COCO和VOC上达到state-of-the-art,未来的工作是将网络推广到k-shot(k0)目标检测中。

参考内容

  • Non-local neural networks

(*本文为AI科技大本营转载文章,转载请联系原作者)

精彩推荐

点击阅读原文,或扫描文首贴片二维码

所有CSDN 用户都可参与投票和抽奖活动

加入福利群,每周还有精选学习资料、技术图书等福利发送

推荐阅读

  • 微信9年:张小龙指明方向,微信AI全面开放NLP能力

  • 想知道与你最般配的伴侣长什么样?这个“夫妻相”生成器要火

  • 2020年趋势一览:AutoML、联邦学习、云寡头时代的终结

  • 达摩院 2020 预测:感知智能的“天花板”和认知智能的“野望”

  • 十大新兴前端框架大盘点

  • 联盟链走向何方

  • 拿下微软、Google、Adobe,印度为何盛产科技圈 CEO?

  • 你点的每个“在看”,我都认真当成了AI

相关文章:

服务器架设笔记——搭建用户注册和验证功能

之前介绍的Apache Httpd相关内容,都是些零散的知识点。而实际运用中,我们要根据不同的业务,将这些知识点连接起来以形成各种组合,来满足我们的需求。(转载请指明出于breaksoftware的csdn博客) 本文我将以用…

项目管理过程中应注意的问题

软件项目从角色分工方面可以划分为研发、开发和实施三类,每个类型的项目有各自的管理过程。下面笔者就公司实施类项目的经历,从项目经理的角度谈一谈实施类项目管理过程中应该注意的一些问题,希望大家共勉。确定项目概况俗话说:“…

原创jQuery移动设备弹出框插件——msgalert.js

最近开发经常会用到顶部弹出框,虽然有现成的(bootstrap等),但是都很臃肿,对于有些时候移动端活动页面有点大材小用。所以今晚花了20分钟写了一个通用的插件,我将其命名为msgalert.js。因为定位是jQuery插件&#xff0c…

AbutionGraph:构建以知识图谱为核心的下一代数据中台

「免费学习 60 节公开课:投票页面,点击讲师头像」作者 | 图特摩斯科技创始人闭雨哲出品 | AI科技大本营(ID:rgznai100)前言图特摩斯科技(Thutmose)基于自研的图形数据库AbutionGraph(实时多维数…

服务器架设笔记——多模块和全局数据

随着项目工程的发展,多模块设计和性能优化是在所难免的。本文我将基于一些现实中可能遇到的需求,讲解如何在Apache的Httpd插件体系中实现这些功能。(转载请指明出于breaksoftware的csdn博客) 之前我碰到两个需求: 需要…

JSP学习笔记(七):使用JavaBean

bean.java publicclassB1 { publicString getString() { return"content"; } }page.jsp <%B1 b1 newB1(); out.print(b1.getString());%>

折返(Reentrancy)VS线程安全(Thread safety)

在Wiki上&#xff0c;折返例如&#xff0c;下面的定义&#xff08;接&#xff09; In computing, a computer program or subroutine is called reentrant if it can be interrupted in the middle of its execution and then safely called again ("re-entered") be…

服务器架设笔记——httpd插件支持mysql字符集选择

mysql数据库默认的字符集是latin1。默认情况下&#xff0c;我们编译的httpd插件是可以正常读取该类型的数据库&#xff0c;并且不会出现乱码。但是&#xff0c;如果我们的数据库变成其他格式&#xff0c;比如UTF8&#xff0c;那么默认读取出来的数据就是乱码&#xff0c;且无论…

只需3行代码自动生成高性能模型,支持4项任务,亚马逊发布开源库AutoGluon

作者 | KYLE WIGGERS编译 | AI科技大本营&#xff08;ID:rgznai100&#xff09;构建涉及图像、文本和表格数据集的机器学习应用并不容易。它需要特征工程或使用数据领域知识来创建使AI算法起作用的特征&#xff0c;还需要进行大量数据预处理&#xff0c;以确保训练模型时不会出…

在客户端(IE中)无法登录Citrix MetaFrame server的原因

当在IE中登录服务器时如果出现这面的错误提示&#xff1a; ERROR: The Citrix MetaFrame servers cannot process your request at this time. The Citrix XML Service object was not found. [404 Not Found] 我的原因是IE使用了8080端口&#xff0c;而我的Citrix XML servic…

虚拟化--015 配置VMware View Event database失败:

015 配置VMware View Event database失败&#xff1a;参考链接http://url.cn/VTq4zN 转载于:https://blog.51cto.com/williamliuwen/1686536

以金山界面库(openkui)为例思考和分析界面库的设计和实现——代码结构(完)

三年前&#xff0c;准备将金山界面库做一个全面的剖析。后来由于种种原因&#xff0c;这个系列被中断而一直没有更新。时过境迁&#xff0c;现在在windows上从事开发的人员越来越少&#xff0c;关注这块的技术的朋友也很少了。本以为这系列也随着技术的没落而不再被人所关注&am…

一包烟钱买到电动剃须刀,小米有品告诉你什么叫性价比

男人身上长得最快的是什么&#xff1f;答案是胡须。一名健康男性的胡须每天都要生长超过 0.4mm&#xff0c;比咱们头发的生长速度还快&#xff0c;这也是男人隔三差五就要剃须的原因之一。男人的一生是与胡子战斗一生&#xff0c;也是被剃须刀拖累的一生。出差办事儿&#xff0…

Label控件属性AssociatedControlID

可以使用Label控件来标注一个HTML表单字段。Label控件拥有属性AssociatedControlID,可以设置此属性来指向表示表单字段的ASP.NET控件。 例如,代码清单2-3中的页面含有一个简单的表单,表单包含两个字段用于输入名和姓。Label控件用于标注这两个TextBox控件。 Code<% Page Lan…

2015_8_21作业——有自翻译有复制他人的英语太差

date作用&#xff1a;打印或设置系统日期和时间格式:date [OPTION]...[FORMAT]date [u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]|是或 多选一的选项 ...代表同类内容可多次选项&#xff1a;注意短选项后不可加号-d,--dateSTRING显示时间字符串但不是立即&#xff1a;如date…

WMI技术介绍和应用——接收事件

时隔两三年&#xff0c;再次更新WMI系列博文。好在功能在三年前就已经实现了&#xff0c;现在只要补充些实例即可。 之前介绍的基本都是查询静态数据&#xff0c;而本文将要介绍非常有意思的事件接收功能。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 监控…

WML标签速查手册

WML标签速查手册 结构相关标签语法及属性<wml><wml xml:lang"lang" >    content</wml> WML元素的共有属性主要有3个&#xff0c;即id、class和xml:lang属性。WML的所有元素都有两个核心属性&#xff0c;即标识(id)和类(class)属性。它们主要用…

Python 三十大实践、建议和技巧

所有参与投票的 CSDN 用户都参加抽奖活动群内公布奖项&#xff0c;还有更多福利赠送作者 | Erik-Jan van Baaren译者 | 凯隐编辑 | Jane出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;【导读】2020年&#xff0c;你又立了什么新的 Flag&#xff1f;新一年…

点击通知栏后打开Activity,并传参

为什么80%的码农都做不了架构师&#xff1f;>>> Reciver中intent new Intent(context, MessageDetailsaActivity_.class);intent.putExtra("freshMessageId", String.valueOf(push.getObid()));intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Inten…

WMI技术介绍和应用——执行方法

在之前的博文中&#xff0c;我们主要介绍了如何使用WMI查询信息和接收事件。本文将介绍WMI的另一种用法——执行方法。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 这块的内容在msdn中有详细的介绍&#xff0c;如果想看原版的可以参阅《Example: Calling a…

动态指定超链接参数的几种方法(Passing a JavaScript variable into href of )

情景&#xff1a;有些环境下我们需要根据页面中JavaScript变量的值来确定某个&#xff08;某些&#xff09;超链接的参数&#xff0c;如“http://www.bla.com/test.aspx?var1”中&#xff0c;究竟var1等于多少&#xff0c;要根据JavaScript变量来判定 方法一&#xff1a;很简单…

知乎「致知计划之科学季」颁奖,创作者分享80万元奖金

1月11日&#xff0c;「致知计划之科学季」颁奖典礼在北京798艺术中心举行&#xff0c;近500名创作者到场参加。 为了激励创作者&#xff0c;推动优质内容持续产出&#xff0c;知乎的「致知计划」从四个方面对创作者进行了扶持。一是流量扶持&#xff0c;让专业、优质的内容获得…

Inno Setup制作应用程序安装包

我最近写了一个MFC应用程序&#xff0c;想发给其他的小伙伴玩一玩&#xff0c;直接发了个exe文件过去&#xff0c;结果发现小伙伴那边打不开。原来这个exe文件虽然是MFC静态编译的&#xff0c;但是还依赖了其他几个.dll文件&#xff0c;需要把这几个dll文件和exe文件放在同一个…

WMI技术介绍和应用——事件通知

在《WMI技术介绍和应用——WMI概述》中&#xff0c;我们使用了下图介绍WMI构架&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 我们之前介绍的使用WMI查询系统、硬件等信息的功能&#xff0c;是通过查询WMI静态数据的空间实现的。这个功能的核心是在上图中2&a…

OpenWebSpider 安装使用

OpenWebSpider 是一个很好用的网络爬虫,也可以叫做“网络蜘蛛”. 安装&#xff1a; 1.使用Vs.net 2003 编译&#xff0c; 记得要copy libmysql.dll到工程里 2.配置文件openwebspider.conf 将已经启动了的 mysql数据库用户名&#xff0c;密码填写好 3.数据库建立 执行 sql_struc…

杂谈 | 当前知识蒸馏与迁移学习有哪些可用的开源工具?

所有参与投票的 CSDN 用户都参加抽奖活动群内公布奖项&#xff0c;还有更多福利赠送作者&编辑 | 言有三来源 | 有三AI&#xff08;ID:yanyousan_ai&#xff09;【导读】知识蒸馏与迁移学习不仅仅属于模型优化的重要技术之一&#xff0c;也是提升模型跨领域泛化能力的重要技…

对 Thinking in java 4th Edition I/O DirList.java的疑问

2019独角兽企业重金招聘Python工程师标准>>> 以下原文代码&#xff1a; //: io/DirList.java // Display a directory listing using regular expressions. // {Args: "D.*\.java"} import java.util.regex.*; import java.io.*; import java.util.*; pub…

WMI技术介绍和应用——Instance/Method Provider

在《WMI技术介绍和应用——事件通知》一文中&#xff0c;我们提到了提供者&#xff08;Provider&#xff09;这个概念。我们还是要引入WMI的结构图&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 我们在1这层的Native C/C里可以看到若干Provider&#xff0c;这…

SSH 组建轻量级架构 附录 -- 遇到的问题和解答

action: nulljava.lang.ClassNotFoundException: org.springframework.web.struts.ContextLoaderPlugIn解决方法&#xff1a;加载 spring.jar 包 报 无法初始化at org.apache.struts.action.ActionServlet.initModulePlugIns(解决方法&#xff1a;删除 asm-2.2.3.jar springda…

TIOBE 1月编程语言排行榜:C语言再度「C 位」出道,Python惜败

整理 | 屠敏来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;【导读】在 2020 年初雪来临之际&#xff0c;TIOBE 官方在最新发布的 1 月编程语言榜单中为我们最终揭开了「 2019 年度编程语言」的神秘面纱&#xff0c;然意料之外情理之中&#xff0c;获此殊荣的并非是…