热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

RelationNet:学习目标间关系来增强特征以及去除NMS|CVPR2018

论文基于NLP的注意力机制提出了目标关系模块,通过与其它目标的比对增强当前目标的特征,而且还可以代替NMS进行端到端的重复结果去除,思想十分新颖,效果也不错 来源:晓飞的算法工程笔

论文基于NLP的注意力机制提出了目标关系模块,通过与其它目标的比对增强当前目标的特征,而且还可以代替NMS进行端到端的重复结果去除,思想十分新颖,效果也不错



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


论文: Relation Networks for Object Detection



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

  • 论文代码:https://github.com/msracver/Relation-Networks-for-Object-Detection


Introduction

  当前大多数目标检测算法仍专注于单独识别目标,没有尝试在训练时挖掘目标之间的关系,受限于当前简单的网络结构,无法对无规律的目标关系进行建模。参考自然语言处理中的注意力机制,论文提出了用于目标检测的自适应注意力机制 -- 目标关系模块(object relation module),学习目标间的关系来增强特征以及去除重复结果。

  检测目标有2D空间分布和不同的长宽比,比文本的场景要复杂些,所以论文拓展了NLP的注意力权重,分为两个权重:



  • 基于目标特征产生的权重,跟NLP权重类似。

  • 基于目标相对几何位置产生的权重,相对几何位置保证平移不变性。

  目标关系模块接收可变输入并行计算,是可微的in-place操作,可作为基础构建block嵌入到任意目标检测算法中,嵌入方式如图1所示,用于目标识别部分以及重复目标去除:



  • 目标识别部分(instance recognition):利用目标关系模块,联合所有的检测目标来进行特征增强,再进行后续的识别。

  • 重复目标去除(du-plicate remova):在识别完成后,常规的做法使用NMS进行重复目标的去除,而论文使用轻量级网关系网络进行该做法的替换。


Object Relation Module

  常规的注意力机制为ScaledDot-Product Attention,计算为:

  给定查询目标$q$,计算与其它目标$K$的相似度,然后softmax归一化为权重,最后乘以各向量的值$V$得到加权后的特征,这3个值一般都是对目标特征进行embedding得到的。

  对于目标检测中的相似性计算,每个目标包含几何特征$f_G$和外观特征$f_A$,给定$N$个目标${(f^n_A, fn_G)}N_{n=1}$,可计算每个目标相对于其它目标的关系特征(relation feature)$f_R(n)$:

  关系特征实际为所有目标的外观特征的加权和,$W_V$为线性变化,相当于将外观特征embedding为公式1的值$V$。权值$w^{mn}$表明其它目标相对于当前目标的重要性,计算方法为:

  公式3实际上等同于公式1中的softmax,唯一不同的是除了外观权值$w{mn}_A$,还额外使用几何权值$w{mn}_G$进行加权。

  外观权值$w^{mn}_A$的计算跟公式1的softmax括号内的计算一样,具体为:

  $W_K$和$W_Q$同样为线性变化,分别将对比目标和当前目标的外观特征embedding成公式1的$K$和$Q$,embedding后的特征维度为$d_k$。

  几何权值$w^{mn}_G$的计算为:

  几何特征一般就是简单的四维bbox,所以公式5在计算几何权值包含两个步骤:



  • 将当前目标和对比目标的几何特征通过$\varepsilon_G$embedding成高维特征,为了保证平移和尺寸不变性,几何特征转为相对值$(log(\frac{|x_m-x_n|}{w_m}), log(\frac{|y_m-y_n|}{h_m}), log(\frac{w_n}{w_m}), log(\frac{h_n}{h_m}) )$,embedding方法跟Attention Is All You Need里的位置编码一样,使用正弦函数和余弦函数。

  • 使用$W_G$将高维几何特征转换为标量权值,小于0时设为0。

  论文在几何特征的使用上也尝试了其它方法:1) none,直接将$w^{mn}_G$设为1.0计算权值,即不使用。 2) unary,将高维几何特征直接与外观特征融合,然后跟none一样计算权值。实验部分的表1有相关的结果对比,论文选择的公式5加权方法比较有效。

  在实现时,类似于multi-head attention,一个目标关系模块(object relation module)包含$N_r$个关系特征,每个特征的维度为输入特征$f^m_A$的$\frac{1}{N_r}$,图2可能会有一点问题,几何特征写了两个,但是外观特征只写了一个,大家根据公式理解就好,最后通过相加对输入目标的外观特征进行增强:

  目标关系模块的计算逻辑如算法1所示,其空间复杂度和时间复杂度为:

  一般而言,目标关系模块的整体计算量不会很大,而且输出特征的维度和输入特征的维度一致,可作为基础构建block嵌入到任何网络中。


Relation Networks For Object Detection

  论文主要讨论将目标关系模块嵌入到region-based目标检测网络中,region-based目标检测网络一般包含四个步骤:1) 通过主干网络生成整图特征 2) 生成候选框的区域特征 3) 进行各实例识别和调整 4) 去除重复的检测结果,目标关系模块的嵌入主要在步骤3和步骤4。


Relation for Instance Recognition

  目标分类和目标回归一般使用两个1024维全连接层对目标的RoI池化特征进行处理:

  目标关系模块可直接增强所有目标的1024维,不改变特征的维度,不仅可以在任意位置插入,还可以多次堆叠:

  $r_1$和$r_2$为目标关系模块重复的次数,添加目标关系模块能够目标特征,提高识别的准确率,公式10的可视化如图a所示。


Relation for Duplicate Removal

  去除重复目标这个任务本身就需要穷尽目标间的关系,比如启发式的NMS,高分目标可抹去其附近的低分目标。尽管NMS十分简单,但其去重的方式并不总是最优的,为此,论文采用目标关系模块去除重复目标。

  如图b所示,输入目标的分数、1024维外观特征以及几何特征,重复目标去除包含以下几个步骤:



  • 对目标分数进行名次的转换,采用几何特征的embedding方式将分数转换成128维特征,将外观特征降维为128维特征,将两个特征相加。

  • 跟前面描述的目标关系模块一样与其它目标计算,输出关系特征。

  • 通过线性变化$W_s$和sigmoid函数输出概率$s_1\in [0, 1]$,对原分数进行加权。

  • 分数高于阈值的即为最终的结果。

  在训练时直接对最终的分数使用交叉熵损失迭代,虽然大部分的目标都是重复的,但由于其最终分数都很小,所以不会对网络造成很大的偏差。而在推理时,先按分类的分数过滤一轮,这样能减轻计算量,论文实测大约增加2ms,相对的,NMS和SoftNMS增加5ms左右。


Experiments

  各位置设置的对比实验。

  重复目标去重效果对比。

  在各网络中的效果对比,分别对比2fc+SoftNMS、2fc+RM+SoftNMS和2fc+RM+e2e的效果。


Conclusion

  论文基于NLP的注意力机制提出了目标关系模块,通过与其它目标的比对增强当前目标的特征,而且还可以代替NMS进行端到端的重复结果去除,思想十分新颖,效果也不错。






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

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


work-life balance.



推荐阅读
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • 「爆干7天7夜」入门AI人工智能学习路线一条龙,真的不能再透彻了
    前言应广大粉丝要求,今天迪迦来和大家讲解一下如何去入门人工智能,也算是迪迦对自己学习人工智能这么多年的一个总结吧,本条学习路线并不会那么 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 标题: ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
author-avatar
解忧花
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有