机器之心专栏
机器之心编辑部
华为诺亚实验室的研究员发现图神经网络(GNN)也能做视觉骨干网络。将图像表示为图结构,通过简洁高效的适配,提出一种新型视觉网络架构 ViG,表现优于传统的卷积网络和 Transformer。在 ImageNet 图像识别任务,ViG 在相似计算量情况下 Top-1 正确率达 82.1%,高于 ResNet 和 Swin Transformer。
论文链接:https://arxiv.org/abs/2206.00272
PyTorch 代码:https://github.com/huawei-noah/CV-Backbones
MindSpore 代码:https://gitee.com/mindspore/models/tree/master/research/cv/ViG
引言
在计算机视觉领域,骨干网络一直是特征提取的重要部件。从 AlexNet 到 ResNet,卷积网络 CNN 在很长一段时间内一直是视觉任务的标配。近年来,基于注意力机制的 Transformer 和以全连接层为主的 MLP 网络也开始在计算机视觉领域崭露头角。与现有主流 CNN 模型相比,基于 Transformer 或 MLP 的模型在视觉任务上也显示出了良好的性能。直到现在,关于谁是更好的视觉骨干网络还是一个仍在探索和颇具争议的课题。
传统的卷积网络将图像视作一个矩阵或网格,通过滑动窗口对邻域像素点或特征点进行聚合;视觉 Transformer 或 MLP 则是输入图片切分为若干个图像块,形成一个序列,用注意力机制或全连接层处理序列关系,如图 1 所示。网格或序列表示的方法,对于图像来说显得不够灵活。比如,一个人往往由头部、四肢和躯干构成,这些部位之间有一定连接关系,是一种非规则化的会变化的模式。
图 1:图像的 3 种表示方法。
为了更好地对图像进行表示,本文提出用图结构(Graph)来对图像进行解析。将图像切分成若干图像块,每个图像块视作一个节点来构建图结构。进而提出用图神经网络进行图像识别等任务,首次构建了视觉 GNN,简称 ViG,如下图 2 所示。
图 2:视觉图神经网络 ViG 架构。
直接使用原始 GNN 在图像任务会有过平滑的问题,也就是随着网络的加深,节点特征之间会越来越相似。为了缓解这个问题,ViG 引入前馈神经网络 FFN 模块来增强特征变换能力和特征多样性。通过基础的图卷积模块和 FFN 模块,作者构建了 isotropic 式和金字塔式的 ViG 网络架构。在 ImageNet 基准测试和下游任务上的实验表明了该方法在视觉任务方面的优越性。例如, Pyramid ViG-S 仅用 4.5G FLOPs 就达到了 82.1% 的 ImageNet top-1 正确率,这比计算量相近的 Swin Transformer 和 ResNet 都要高出不少。
方法
用图结构表示图像
图像预处理主要是将 2D 图像转化为一个图结构。图像首先被均匀切分成若干个图像块,每个图像块通过简单的映射转化为特征向量 。这里每个图像块特征视作一个节点,也就是 ,对于每个节点,作者找到它的 K 近邻 ,然后在两者之间连接一条边,从而构建出一个完整的图结构 。
图卷积
图卷积层通过聚集相邻节点的特征,可以在节点之间交换信息。具体而言,图卷积操作如下:
其中 Aggregate 聚合操作通过聚合相邻节点的特征来计算节点的表示,Update 更新操作用来更新聚合后的节点特征。在实际部署时,作者使用了 max-relative 图卷积:
增强节点多样性
直接堆叠图卷积构建视觉图网络的话,由于图像块存在相似性和图卷积的聚合机制,会出现节点过平滑的现象,也就是随着网络的加深,节点特征之间会越来越相似。如下图 3 所示,原始 ResGCN 在图像识别任务上,节点特征多样性会逐渐丧失。为了缓解这个问题,ViG 引入前馈神经网络 FFN 模块以及更多线性变换来增强特征变换能力和特征多样性,更具体的理论证明可以参考原文的附录。
作者在图卷积之前和之后应用一个线性层,将节点特征投影到同一个域中,并增加特征的多样性。在图卷积后插入一个非线性激活函数,以避免多层退化为单层。升级后的模块称为 Grapher 模块:
为了进一步提高特征变换能力和缓解过度平滑现象,在每个节点上使用前馈网络(FFN)。FFN 模块是一个简单的多层感知器,具有两个完全连接的层:
通过 Grapher 模块和 FFN 模块的堆栈构成 ViG 块,ViG 块用作构建网络的基本构建单元。基于图像的图形表示和提出的 ViG 块,可以为视觉任务构建 ViG 网络,如图 2 所示。与 vanilla ResGCN 相比,所述 ViG 可以随着层的加深保持特征多样性(图 3),从而学习更有判别性的特征表示。
图 3:节点特征多样性随着层数加深的变化情况。
ViG 网络架构
通过堆叠 L 个 ViG block,构成作者的 ViG 网络结构。作者给出了 isotropic 式和金字塔式两种网络架构,如下表所示。
表 1:Isotropic ViG 网络结构参数。
表 2:Pyramid ViG 网络结构参数。
实验
Isotropic 架构对比
作者在 ImageNet 2012 数据集上训练和验证 ViG 模型。从下表可以看出,基于图神经网络的 ViG 表现能够媲美甚至超越其他的基于 CNN、transformer、MLP 的 Isotropic 模型。ViG-S 达到 80.4% 的 top-1 精度,这表明使用图结构表示有利于更灵活地提取图像主体结构信息构建强有力的特征表示。
Pyramid 架构对比
随着网络的深入,金字塔结构逐渐缩小了特征地图的空间大小,可以利用图像的尺度不变特性生成多尺度特征。高级网络通常采用金字塔结构,如 ResNet {ResNet}、Swin Transformer {Swin} 和 CycleMLP {CycleMLP}。
作者将作者的金字塔 ViG 与表~\ref {tab:pvig sota} 中具有代表性的金字塔网络进行比较。作者的 Pyramid ViG 系列可以超越或与包括 CNN、MLP 和 transformer 在内的最先进的 Pyramid 网络相媲美。这表明,图形神经网络能够很好地处理视觉任务,有可能成为计算机视觉系统的基本组成部分。
目标检测实验
为了验证 ViG 的泛化能力,作者在 ImageNet 上训练的 Pyramid ViG-S 模型迁移到 COCO 目标检测任务。在 RetinaNet 和 Mask RCNN 检测框架上,使用 ViG 作为骨干网络提取图像特征。下表比较了 ViG 与 ResNet、Swin Transformer 和其他网络的迁移学习结果。ViG 整体上都由于其他网络,显示出了较强的泛化能力。
总结
在这项工作中,作者研究了如何将图像表示为图结构数据,并利用图形神经网络进行视觉任务。作者将图像分割为多个图像块,并将其视为节点。基于这些节点构造图可以更好地表示不规则、复杂的物体。直接在图像的图结构上使用图卷积存在过平滑问题,性能较差。作者在每个节点内部引入更多的特征变换,以鼓励信息的多样性。基于图像的图表示和改进的 ViG block,作者构建了具有各向同性和金字塔结构的视觉 GNN(ViG)网络。
大量的图像识别和目标检测实验证明了该 ViG 结构的优越性。作者希望这项有关 Vision GNN 的开创性工作可以作为一般视觉任务的基本架构。
——The End——
分享
收藏
点赞
在看