Reasoning-RCNN 论文笔记
前言
大规模目标检测指的是识别与定位图像中大量的属于不同类别的目标,类别之间的不平衡(有的类别的样本很少)、遮挡、模糊和小目标问题是大规模目标检测面临的主要挑战。当前的很多目标检测方法都是对每个候选区域独立地进行检测,因此需要高质量的特征表示,以及每个类别的充足的标记数据,它们并没有考虑目标之间的语义依赖关系,因此缺乏在常识的帮助下进行推理的能力。
上图说明了全局知识推理的一个例子。当一个人看到图(a)中红色框内的小目标CCTV时,关于这个东西是什么,会经历以下推理阶段:
- 首先在大脑里搜寻有没有曾经见过的东西与它很相似;
- 然后这个人注意到这个东西被装在建筑物上,并且监视着马路上来来往往的车辆,因此这个东西是CCTV!
作者认为人们丰富的常识可以用知识图谱来表达,然后通过视觉推理整合到detection pipeline中。
目前关于视觉推理的工作可以通过知识整合策略被分为两类:
- 不依赖人的先验知识。这种方法对图像自身的空间关系进行建模,也就是说它学到的是每个候选区域内部的关系,而没有考虑候选区域之间的关系,并且学习的方式是隐式的不受控制的,因此系统性能有限;
- 依赖人的先验知识。这种方法通过定义知识图谱将人的语义先验知识整合到网络中,但是它只考虑通过固定的先验知识在图像中的局部传播特征,也就是说,当图像中存在遮挡或模糊问题时,依然不能成功进行推理,并且它通过GRU将3个推理模块堆叠起来,结构非常的复杂。
本文提出Reasoning-RCNN网络,它不仅传播图像上的视觉特征,还涉及到所有类别的高级语义表示,也就是说无需担心一些很弱的视觉特征,比如遮挡和模糊,因为它们可以被推理出来。
Reasoning-RCNN的工作方式有以下几步:
- 建立一个对于所有类别的全局语义池(global semantic pool),每个类别的权重来自于传统目标检测网络中的分类层。
- 设计一个类别级别的知识图谱来编码存在的语义知识(比如属性和关系)。在语义池中的不同类别的高级语义信息根据知识图谱中的连接节点进行传播。但是并没有传播所有的语义信息,因为它们中的有些是噪声,自适应全局推理通过attention机制进一步对当前图像进行自适应编码,以自动发现与每个目标有关的特征的大多数相关类别。
- 被增强的类别信息通过soft-mapping机制被映射回原始region中,可以对先前阶段中不正确的分类结果进行优化,也就是对分类特征的增强。
- 最后每个region中新的被增强的特征与原始特征结合起来,提高分类与定位的性能。
本文采用两种知识形式:关系和属性。
因此Reasoning-RCNN通过增强的特征可以处理遮挡、模糊和小目标问题,并且通过共享和提取frequent/rare类别中的基本特征,可以缓解类别不平衡问题。
设计方法
Reasoning-RCNN可以被堆叠到任意一个one/two stage的目标检测方法中,如下图所示是Reasoning-RCNN的整体结构。从图中可以看出,由base detector中的分类层的权重生成全局语义池,然后知识图谱被引入,在语义池中的不同类别的高级语义信息根据知识图谱中的连接节点进行传播。然后被送入自适应全局推理模块中,输出增强的类别特征,然后将增强的类别特征通过soft-mapping机制映射回原始region中。最终,将每个region中新的被增强的特征与原始特征结合起来,提升分类与定位的性能。接下来着重介绍一下全局推理模型
全局推理模块
设f={fi}i=1Nr,fi∈RDf=\lbrace f_{i}\rbrace^{N_r}_{i=1},f_i\in \Bbb{R}^{D}f={fi}i=1Nr,fi∈RD,是从所有region proposal中提取的视觉特征的集合,Nr=∣N∣N_r=|N|Nr=∣N∣是region proposal的数量。接下来的目的就是增强原始的特征fff,具体的方法是利用确定的常识知识形式,比如成对儿的关系知识(man rides bicycles)和一些属性知识(apple is red)。
上图是自适应全局推理模块的整体结构。一个整体的描述就是:
- 全局池化层MMM整合了所有类别的高级语义表示,其中类别的权重来自于base deteactor中的分类层;
- 然后根据知识图谱GGG传播MMM中的信息进行全局推理;
- 引入attention机制强调每个图像中更具有相关性的类别
- 被增强的特征fff通过soft-mapping机制被映射回原始proposal中,得到f′f^{'}f′;
- 最后将fff与f′f^{'}f′结合起来,送入新的bbox回归层和分类层来得到检测结果。
1. 全局语义池M
作者认为大多数现有的方法都是在region之间局部地传播视觉特征,而这样做会导致图推理失败,因为会出现很多很糟糕的特征表示,比如遮挡和模糊问题。本文在图推理过程中使用的是所有类别的信息,而不仅仅是出现在图像上的类别。因此,需要建造一个全局语义池来存放所有类别的高级语义信息。
为了生成这种全局语义池,现有的方法一般会对特征取平均,或者利用聚类的思想来找到一个中心点作为每个类别的特征表示。然而,这些方法的计算量是非常大的,并且不能被端到端的训练。本文受zero/few-shot检测问题中去识别unseen/unfamiliar的启发,提出了一种新的方法来生成全局语义池。在分类器中,每个类别的权重其实已经包含了高级语义信息,因此设M∈RC×DM\in \Bbb{R}^{C\times D}M∈RC×D表示整个全局语义池,这个值来自于base detector的分类器中所有CCC个类别的权重。由于在训练时分类器是不断更新的,因此MMM也会变得越来越准确。
2. 通过图推理增强特征
设知识图G:G=<N,ϵ>G:G=<N,\epsilon>G:G=<N,ϵ>,NNN是类别的节点的集合,ϵ\epsilonϵ是边的集合,每条边ei,j∈ϵe_{i,j}\in\epsilonei,j∈ϵ表示两个节点间的一种知识类型。
在建立全局语义池之后,接下来就要进行图推理的部分了。在图GGG中,边ϵ∈RC×C\epsilon \in\Bbb{R}^{C\times C}ϵ∈RC×C说明了节点中的类别信息MMM如何传递,注意边矩阵ϵ∈RC×C\epsilon \in\Bbb{R}^{C\times C}ϵ∈RC×C的构成取决于先验的常识知识。在经过知识图谱之后,所有CCC个类别的特征可以被表示为ϵM\epsilon MϵM。为了增强region上的特征,需要找到NrN_rNr个region proposal与CCC个类别之间的映射。从直觉上来说,在base detector的分类器中就可以得到映射结果,这种称为hard-mapping,然而作者在这里使用的是soft-mapping,即每个类别的映射是一个类别概率P∈RNr×CP\in \Bbb{R}^{N_r\times C}P∈RNr×C的形式。PPP是通过对base detector的分类器输出的CCC个类别的分数应用soft-max方程得到的。
那么整个过程就可以被描述为一个矩阵乘法:PϵMWGP\epsilon MW_GPϵMWG
- PPP是所有类别映射的一个概率分布;
- ϵ\epsilonϵ是边的矩阵;
- MMM是全局语义池中高级语义信息的权重矩阵;
- WG∈RD×EW_G\in \Bbb{R}^{D\times E}WG∈RD×E是所有图共享的一个权重转换矩阵,其中EEE是推理模块输出的维度。
由于全局推理是基于所有类别的,因此可能会有噪声的干扰。
3. 自适应attention
在得到全局特征ϵM\epsilon MϵM后,需要强调有用的相关信息,压制无用的信息。需要注意的是,在一个图像中并非所有的类别信息对识别物体都是有用的,当人处在一个场景中时,只会考虑几个类别来识别物体。因此,本文采用《squeeze-and-excitation》这篇文章的思路来增强分类特征。
- 在squeeze这一步,将整个图像的特征F∈RW×H×DF \in \Bbb{R}^{W\times H\times D }F∈RW×H×D作为输入,然后通过一个CNN(3×\times× 3的卷积核,输出的通道数为D/64D/64D/64)和一个全局池化操作将它的大小squeeze为原来的一半;
- excitation阶段是一个全连接层,其输入为zs∈RD/64z_s \in \Bbb{R}^{D/64}zs∈RD/64,然后用一个soft-max函数得到类别的attention:α=softmax(zsWsMT)\alpha=softmax(z_sW_sM^T)α=softmax(zsWsMT),其中Ws∈RD/64×DW_s \in \Bbb{R}^{D/64\times D}Ws∈RD/64×D是全连接层的权重,α∈RC\alpha \in \Bbb{R}^Cα∈RC
最后增强的特征f′f^{'}f′可以被描述为:
其中⨂\bigotimes⨂是channel-wise的乘积,其余的都是矩阵乘法。f′∈RNr×Ef^{'} \in \Bbb{R}^{N_r\times E}f′∈RNr×E是通过自适应全局图推理得到的增强特征,它的维数是EEE,下图是自适应全局推理的流程图:
- 首先根据先验知识图的边ϵ\epsilonϵ对全局语义池MMM进行全局推理,根据squeeze-and-excitation过程计算出自适应attention α\alphaα;
- 通过一个channle-wise的乘积得到自适应全局推理的结果α⨂ϵM\alpha \bigotimes \epsilon Mα⨂ϵM;
- 然后根据PPP,用soft-mapping得到region与类别之间的映射;
- 最后用一个全连接层的权重WGW_GWG,通过矩阵乘法得到增强特征f′f^{'}f′
最后将增强特征f′f^{'}f′与原始特征fff连结在一起,[f;f′][f;f^{'}][f;f′]作为新特征被送入边界框回归层和分类层得到最终的检测结果。注意到f′f^{'}f′是从相连的节点间提取的信息,而由边连结起来的节点具有相似的属性或关系。因此,通过共享相似类别之间的特征可以缓和小样本问题。
实验
- training:将带有FPN的Faster R-CNN作为baseline,将在ImageNet上预训练过的Res-Net-101作为backbone,训练时采用水平图像翻转和多尺度图像缩放作为数据增强方式,特征金字塔每个层级的特征图都要应用RPN网络。在NMS后采样了一个minibatch,它包含512个region proposal,将与gt的IoU大于0.7的作为正样本,小于0.3的作为负样本。
- inference:在NMS后,根据IoU阈值大于0.6,选择2000个region proposal
实验中没有使用hard example mining技术。
结论
本文提出的全局自适应推理模块缓解了大规模目标检测中的遮挡、模糊、小目标问题,通过引入外部的知识图谱通过推理的方式解决这些问题。同时由于增强特征是从相连的类别节点中提取出来的,这些节点具有相似的属性或关系,因此共享这些相似类别的特征还可以解决小样本问题。作者认为本文的推理模块也可以被应用到其它的任务中。
Reasoning-RCNN 论文笔记相关推荐
- 最详细的R-CNN论文笔记
个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-69.html RBG大佬的论文<Rich feature ...
- 最详细的Faster RCNN论文笔记
个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-76.html 论文:Shaoqing Ren, Kaiming ...
- 何恺明大神巨作:Faster R-CNN 论文笔记
视频链接:https://www.bilibili.com/video/BV1j5411e7aH/ 何恺明大神奠基Two-stage目标检测算法的一篇巨作. 1.看abstract时候的问题(看其他部 ...
- Faster R-CNN论文笔记——FR
转载自:http://blog.csdn.net/qq_17448289/article/details/52871461 在介绍Faster R-CNN之前,先来介绍一些前验知识,为Faster R ...
- Light Head R-CNN论文笔记
先上链接: 论文:Light-Head R-CNN: In Defense of Two-Stage Object Detector 链接:https://arxiv.org/abs/1711.0 ...
- 最详细的Mask R-CNN论文笔记
个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-111.html 论文:Kaiming He Georgia G ...
- 最详细的Fast RCNN论文笔记
个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-75.html 论文:Ross Girshick.Fast R- ...
- Faster R-CNN 论文笔记
论文地址:https://arxiv.org/abs/1506.01497 Fast R-CNN提出后,降低目标检测时间的主要瓶颈就来到了待选区域的计算上,于是诞生了Faster R-CNN.作者提出 ...
- 深度学习_目标检测 R-CNN 论文笔记
向AI转型的程序员都关注了这个号
- [论文笔记] Oriented R-CNN 阅读笔记
Oriented R-CNN 阅读笔记 Oriented R-CNN for Object Detection(ICCV 2021) 摘要 引言 Oriented R-CNN Oriented RPN ...
最新文章
- JDBC--代码实现增删改查、及SQL注入问题解决
- 翻译关于ViewController的一篇文章
- 知乎推荐页Ranking构建历程和经验分享
- 从零开始学习jQuery (十) jQueryUI常用功能实战
- hdu3694(四边形的费马点)
- “炉石”以上,“万智”未满《符文之地传奇》为何能有好开局?
- LiveVideoStack:祝大家 2019 新年快乐!
- 静态代码块和单例混合
- 洛谷——P1567 统计天数
- 求两个整数中的最大值(不能用比较语句,循环语句)
- python打不开text_python-无法启动并使用TextBlob运行
- 空间换时间时间换空间
- Preparing Your Data for Use with robot_localization 准备 robot_localization 数据
- VMware硬盘不足踩坑记录:扩容分区 + 删除.cache文件夹
- 人生的DoR和DoD:志向、遗产
- html怎么混合颜色,CSS3 多色混合背景
- 阀门定位器调试顺序详解
- 上周,裤衩都亏掉了...
- Promise(一)介绍、fs读取文件、AJAX请求
- mysql error 1677_MySQL slave error 1677
热门文章
- linux csv乱码,CSV格式文件中文乱码问题解决
- Docker 容器镜像制作指令详解
- Error: The project seems to require yarn but it‘s not installed.
- openMSP430 介绍
- Python之使用代理服务器访问网页
- 2022-4-16 c++ 杂记 mutex GUARDED_BY std::unique_ptr unordered_map ::开头
- 英语四级口语考试计算机考吗,听说四六级改革了,那英语四级考口语吗?
- 读书笔记-《启示录--打造用户喜爱的产品》
- 郑州统考英语计算机培训,2016年郑州大学远程教育英语统考练习题
- 【雅思】【写作】【大作文】Discuss both views and give your own opinion