Press "Enter" to skip to content

ICCV目标检测:用图特征金字塔提升精度(附论文下载)

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

作者:Edison_G

 

特征金字塔 在需要多尺度特征的图像理解任务中已被证明是强大的。多尺度特征学习的最新方法侧重于使用具有固定拓扑结构的神经网络跨空间和尺度执行特征交互。

 

 

公众号ID |ComputerVisionGzq

 

学习群 |扫码在主页获取加入方式

 

 

开源代码: https://arxiv.org/pdf/2108.00580.pdf

 

1

 

前言&背景

 

特征金字塔 在需要多尺度特征的图像理解任务中已被证明是强大的。多尺度特征学习的最新方法侧重于使用具有固定拓扑结构的神经网络跨空间和尺度执行特征交互。

 

 

在今天分享中,研究者提出了 图特征金字塔网络 ,该网络能够使其拓扑结构适应不同的内在图像结构,并支持跨所有尺度的同步特征交互。

 

2

 

特征金字塔

 

特征金字塔网络相当于先进行传统的bottom-up自上而下的特征卷积,然后FPN试图融合左侧特征图的相邻的特征图。 左侧模型叫bottom-up,右侧模型叫top-down,横向的箭头叫横向连接lateral connections。 这幺做的目的是因为高层的特征语义多,低层的特征语义少但位置信息多。

 

左侧模型特征图大小相差1倍,但像AlexNet一样,其实是每在同样大小的feature上卷积几次才进行一次池化操作,我们把在同样大小feature上的卷积称之为一个stage。上图画的图是每个stage的最后一个卷积层,因为每个stage的最后一层feature语义信息最多。

 

 

具体做法是两个特征层的较高层特征2倍上采样(上采样方法很多,上采样几乎都是采用内插值方法,即在原有图像像素的基础上在像素点之间采用合适的插值算法插入新的元素,总之是把feature大小扩大了一倍)。较低层特征通过1×1卷积改变一下低层特征的通道数,然后简单地把将上采样和1×1卷积后的结果对应元素相加。为什幺横向连接要使用1×1卷积呢,为什幺不能原地不动地拿过来呢?原来在于作者想用1×1改变通道数,以达到各个level处理结果的channel都为256-d,便于后面对加起来的特征进行分类。

 

3

 

新框架分析

 

首先为每个输入图像定义一个特定于图像的超像素层次结构,以表示其固有的图像结构。图特征金字塔网络从这个超像素层次结构继承了它的结构。上下文层和hierarchical层旨在实现相同尺度内和不同尺度之间的特征交互。为了使这些层更强大,研究者通过卷积神经网络的全局通道注意力,为图神经网络引入了两种类型的局部通道注意力。 提出的图特征金字塔网络可以增强卷积特征金字塔网络的多尺度特征。

 

主要贡献:

 

提出了一种新的图特征金字塔网络,利用固有的图像结构,支持所有尺度的同时特征交互。该图特征金字塔网络继承了输入图像的超像素层次结构。上下文层和 hierarchical 层的设计分别是为了促进相同规模内和跨不同规模的特性交互;

 

在现有的卷积神经网络全局通道注意机制的基础上,进一步引入了图神经网络的两种局部通道注意机制;

 

在MSCOCO 2017验证和测试数据集上的大量实验表明,无论是否基于特征金字塔,图特征金字塔网络都可以帮助实现比现有的最先进的目标检测方法明显更好的性能。

 

 

GraphFPN旨在通过在超像素层次上构建多尺度图神经网络来增强卷积特征金字塔网络

 

     Superpixel Hierarchy

 

首先一张图片由一个个像素组成(可以看成网格),每个像素可以有一个灰度值(标量)或RGB值(三维向量)。

 

 

现今一张图片动辄1024*1448>100w像素,因此对于图像处理来说,是非常大的维度。 超像素 最大的功能之一,便是作为图像处理其他算法的预处理, 在不牺牲太大精确度的情况下降维! 超像素最直观的解释,便是把一些具有相似特性的像素“聚合”起来,形成一个更具有代表性的大“元素”。 而这个新的元素,将作为其他图像处理算法的基本单位。

 

一来大大降低了维度;

 

二来可以剔除一些异常像素点。

 

     Multi-scale Graph Pyramid

 

研究者构建了一个图金字塔 ,其级别对应于超像素层次的级别。超像素层次中的每个超像素在图金字塔的相应层次上都有一个对应的图节点。因此,当从图金字塔的一层移动到下一层时,节点的数量也会减少4倍。

 

 

研究者为图金字塔定义了2种类型的边。它们被称为 contextual edges 和 hierarchical edges 。 contextual edges 连接同一层次上的2个相邻节点,而 hierarchical edges 连接不同层次上的2个节点,如果它们对应的超像素之间存在ancestor-descendant关系。 c ontextual edges 用于传播 hierarchical edges 用于弥合不同层次之间的语义差距。

 

特别需要注意的是, hierarchical edges 是密集的,因为在每个节点和它的每个ancestor和descendant之间都有这样的边缘。这些密集的连接会产生很大的计算和内存成本。因此,每个 hierarchical edges 都与其节点特征之间的余弦相似度关联,研究者根据它们的余弦特征相似度对 hierarchical edges 进行修剪。在所有关联到节点的分层边缘中,排在最后50%的边缘将被删除。

 

     Graph Neural Network Layers

 

在图金字塔的基础上构造了一个图神经网络GraphFPN。在GraphFPN中有2种类型的层:  contextual layers 和 hierarchical layers 。这2种类型的层在图金字塔中使用相同的节点集,但不同的图边集。 contextual layers只 使用上下文边缘,而 hierarchical layers只使用修剪过的 层次边缘。GraphFPN在最开始有L1 con te xtual layers ,在中间有L2 hierarchical layers ,在最后有L3 con te xtual layers 。更重要的是,每一层都有自己的可学习参数,这些参数不会与任何其他层共享。

 

4

 

实验

 

 

Comparison with state-of-the-art feature pyramid based methods on MS-COCO 2017 test-dev. “AH” and “MT” stand for augmented head and multi-scale training strategies respectively. The backbone of all listed methods is ResNet101.

 

 

Comparison with other popular object detectors on MS-COCO 2017 val set. The backbone of all listed methods is ResNet101.

 

 

Sample detection results from FPN, FPT, and our GraphFPN based method

 

 

The number of learnable parameters, the total computational cost, and the average test speed of a few detection models. All experiments are run on an NVidia TITAN 2080Ti GPU.

 

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。