CVPR2018——小目标检测,非局部模块
摘要
一幅图像并非物体对象的简单集合,其中每个对象通过空间和语义关系与其他对象相关。使用关系推理模块,允许在对象之间的信息传递,因此可以改进对象检测的性能。当前的方法将这些专用模块应用于自底向上网络的特定层,或已经检测到的对象之间。本文展示了关系推理过程可以以粗略到精细的方式更好地建模并呈现出一种新颖的框架,顺序地应用非局部模块以沿着自上而下的网络增加特征图的分辨率。通过这种方式,内部关系推理过程可以自然地将信息从较大的对象传递到较小的相关对象。将该模块应用于精细的特征图,还可以利用来自同一类的多个重复对象在小目标本身之间传递信息,实际上,由于非局部模块较大的内存占用率,将此关系推理模块应用于高分辨率特征图是不可行的。本文有效地重新设计了非局部模块,在内存和操作数量方面进行了改进,使其可以放置在网络的任何位置。 本文还以可行有效的方式将相关空间信息纳入模块。 本文通过改进在COCO数据集上检测小目标的结果,mAP超过Faster R-CNN1.5个百分点,超过在自下而上流中使用非局部模块的方法1个百分点。
介绍
所谓自下而上的检测网络,即如R-CNN,Fast R-CNN,Faster R-CNN,YOLO等利用网络最后一层卷积层特征作为特征来进行检测,此后,人们在这种自下而上的网络结构中引入上采样(反卷积)模块以增加上下文信息,如DSSD,FPN,YOLOv3等,这种网络结构将来自高层的上下文信息与在来自较低层的细粒度信息相结合。目前的挑战,也是研究活跃的方向,是如何将图像中对象的关系推理纳入检测系统,通过使用关系推理,图像不仅仅是不相关对象的集合,而是类似于由边(关系,谓词)连接的实体(节点,对象)“场景图”。因此,解决小目标检测的思路有二:利用上下文信息和添加关系推理过程。
将来自图像中同一类的多个重复对象,以及来自相关类的较大对象作为语义线索。如下图,网络可以检测海中的微小人,部分原因是由于岸上较大的人的存在。
![](https://img.haomeiwen.com/i15247407/bb7d1f49f6bd018f.png)
如下图,网络能定位微小的飞行中的球,部分是基于投掷的人和等待的手套。
![](https://img.haomeiwen.com/i15247407/a70c874f8e2cc29f.png)
最近,何恺明提出了非局部神经网络(Non-local Neural Networks),知乎解读,指出传统的卷积操作是局部运算,即特定卷积层的感受野是受限的,非局部指的就是感受野可以很大,而不是一个局部区域,这有助于引入全局信息。特征图中的每个输出像素,聚合了来自所有输入像素
的信息,基于它们与特定输入像素
的相似性
。该模块能够根据其外观在远端像素之间传递信息,并且适用检测小目标的任务。以粗略到精细的方式顺序地使用它,使得能够将来自较大的、易于检测的目标的语义信息传递给较小的目标。在较浅层中应用非局部(NL)模块允许小目标本身之间的信息跳跃。
对于本任务而言,非局部模块有两大缺点,一是计算和内存开销太大,相似性函数的复杂度为
,而且由于本文将此模块应用于低层特征,内存需求将更大。另外,在检测任务中,一般会增加输入图片的尺寸,这使得上述问题更加突出。第二个缺点是相似性函数
缺乏相对位置的编码,图像中的目标是相对地置放于2D网格中的,丢弃此信息源(尤其是在高分辨率要素图中)是不合适的。
本文调整非局部模块来解决上述问题,基于矩阵乘法的结合律,分解已有的相似性函数,以此可以得到复杂度为
的性能相当的非局部模块。在相似性度量中加入相对位置信息,可以让网络有效地利用空间信息。改进后的非局部模块依旧能聚合图像的全局信息,但是并不是所有的区域都是一致的(意即不同区一权重有差),将改进后的非局部模块命名为ENL(Efficient Non Local module),作为推理模块。
主要贡献:
1、重构非局部模块,降低内存和计算开销,可以置于网络的任意位置;2、在ENL模块中引入空间信息;3、按顺序应用这个新模块来增加自顶向下流中的特征图分辨率,以一种从粗到细的方式获得关系推理;4、将该模块应用于Faster R-CNN,COCO数据集上的mAP比当前最好的结果高出1.5个百分点。
此外,本文提出的网络框架不仅仅适用于检测任务,还适用于诸如语义分割、精细定位、图像生成等依赖于图像细节信息,并且使用encoder-decoder模型的任务。
Related works
Bottom Up Top Down Networks:意即在传统的自下而上的检测结构中引入自上而下(上采样)模块,以此增加特征图分辨率和上下文信息,提升检测准确率。
Context modelling:上下文建模,包括局部上下文信息和全局上下文信息。局部上下文信息:通过适当增加感受野从图像中提取有关于ROI的信息;全局上下文信息:同样有助于检测,上下文和检测实际上是双向交互的,因为对象检测也可以帮助全局场景分类。
Modern Relational Reasoning(关系推理):对于场景理解任务(识别、检测、语义分割、图像生成)而言,一般有两种方法:一种是以目标为中心(object centric),事先检测出目标,再建模目标间的相对关系。(通过图神经网络建模关系)。另外一种是直接在特征图上进行关系推理(目标在特征图上是隐式表示的),一般以专用模块嵌入网络,不需要任何额外监督信息,同时能够端到端地学习。特别地,在检测和语义分割任务中,该模块可以嵌入骨架网络,以提供更多额外信息。
Approach
Non Local module(非局部模块):
![](https://img.haomeiwen.com/i15247407/9599af54724df75e.png)
分别为输入输出向量,维度均为
,
代表当前考虑的像素点,
遍历整个输入向量的空间位置,
代表输入向量任意两个位置的相似性,
为标量,
表示第
个空间像素的特征。
,每个像素的特征共有
个通道。该模块根据输入向量中所有像素与第
个像素的相似度对这些像素的信息进行加权求和。相似性函数的取法有多种,如下图。
![](https://img.haomeiwen.com/i15247407/301bfe90903534d2.png)
在这种情况下,归一化因子采用
的形式。
由此,NL模块示意图如下所示:
![](https://img.haomeiwen.com/i15247407/fe7baf343d30a366.png)
之前也提过,原始的非局部模块计算内存开销都很大,而且没有引入空间相对关系信息,因此考虑另外一种形式的相似性函数:
![](https://img.haomeiwen.com/i15247407/b98fce172ccd4345.png)
在这种情况下,是
的矩阵,
,运用矩阵乘法的结合律,可得如下形式:
![](https://img.haomeiwen.com/i15247407/488ac9f6c1dee58b.png)
改进之后的非局部模块(ENL)示意图如下,运算顺序不同:
![](https://img.haomeiwen.com/i15247407/1d5dbca819d998b0.png)
两种模型的内存开销比较。
![](https://img.haomeiwen.com/i15247407/013ed800fe0d704c.png)
Adding Relative Position Encoding
引入相对位置信息。考虑两种引入相对位置关系的函数形式,第一种是基于像素对的
范数形式:
这种形式应用于原始的相似性函数(NL),由此得到完整的相似性函数形式为:
![](https://img.haomeiwen.com/i15247407/d30370e432e9b974.png)
其中,代表按元素乘法或者按元素加法。则相应的非局部模块示意图为:
![](https://img.haomeiwen.com/i15247407/3327d2851d2c06bb.png)
第二种则是在改进之后的非局部模块中(ENL)引入相对位置信息,具体表达式如下:
![](https://img.haomeiwen.com/i15247407/458b3967f853b772.png)
下面介绍如何构造,令
表示一个one-hot图像的二维余弦变换的系数(行向量),将
作为矩阵
的每一行,根据余弦变换的正交性,可得:
是对角矩阵(对角线为1,其余地方为0)。截断系数向量对应着余弦变换中的低频部分,取矩阵
的部分子列,记为
,满足两个目标:一是其是低秩的,可以与
做矩阵乘法,因此可以嵌入ENL模块中;二是
作为低通滤波器。本文使用矩阵
前
列作为二维余弦变换的最低频部分。得到的(类正弦)滤波器对空间位置几乎是保持一致的。
由此可作进一步变换:
![](https://img.haomeiwen.com/i15247407/542e32ba370ddbdb.png)
此处以一种能够保持ENL模块低秩属性的方式添加空间滤波器,引入空间信息的ENL模块示意图为:
![](https://img.haomeiwen.com/i15247407/733353767fe76c18.png)
Implementation
实验及结果
以Faster R-CNN检测框架进行实验,Faster R-CNN以FPN(Resnet-50,ImageNet 预训练模型)为骨架网络。在Caffe2(Detectron)上进行实验,训练策略:360000次迭代,初始学习率0.005,240000次和320000次时学习率变为之前的0.1,SGD,动量0.9,权重衰减0.0001,冻结BN层,替代为仿射变换,这是微调过程中当每张GPU上训练样本较少时的通用策略。
![](https://img.haomeiwen.com/i15247407/1dd2963f37b47166.png)
非局部模块使用:在由上至下的网络中使用非局部模块,总共使用三个,置于空间插值之前(在残差块res5,res4,res3中)。以方差为0.01的高斯参数随机初始化非局部模块,不使用额外的BN层(由于相对较少的样本)及仿射层(无初始化可用)。BU表示在特征提取的由下至上的网络中插入非局部模块,TD表示在上采样的反卷积模块中插入非局部模块。
消融实验
原始NL模块中的归一化因子:
![](https://img.haomeiwen.com/i15247407/7347a5eadcc79b59.png)
在两种非局部模块中使用不同的归一化策略,比较结果,用softmax归一化效果更好。
![](https://img.haomeiwen.com/i15247407/fb06b07a79a4d1f9.png)
添加相对位置编码的四种方式比较,结果如下,按元素加比按元素乘结果好。
![](https://img.haomeiwen.com/i15247407/331a4900215e50d0.png)
Adding the NL block on the TD stream:几种不同的添加非局部模块的方法,conv5代表5乘5的卷积核。
检测示例,效果可观。
![](https://img.haomeiwen.com/i15247407/cf4e3693528d266e.png)
网友评论