用GNN做CV三大任务的新骨干,同计算成本性能不输CNN、ViT与MLP|中科院&华为诺亚开源

An Image is Worth Graph of Nodes

梦晨 发自 凹非寺
量子位 | 公众号 QbitAI

图神经网络(GNN)做CV的研究有不少,但通常是围绕点云数据做文章,少有直接处理图像数据的。

其实与CNN把一张图片看成一个网格、Transformer把图片拉直成一个序列相比,图方法更适合学习不规则和复杂物体的特征。

现在,中科院与华为诺亚方舟实验室等提出一种全新的骨干网络,把图片表示成图结构数据,让GNN也能完成经典CV三大任务。

用GNN做CV三大任务的新骨干网络ViG,中科院&华为诺亚开源

论文一出,立即引起GNN学者广泛关注。

有人认为GNN领域积累多年的技巧都将涌入这一新方向,带来一波研究热潮。

该来的总要来的。

用GNN做CV三大任务的新骨干网络ViG,中科院&华为诺亚开源

新架构ViG命名上致敬了ViT,论文标题也采用同一句式,点出了核心思想:

An Image is Worth Graph of Nodes

用GNN做CV三大任务的新骨干网络ViG,中科院&华为诺亚开源

在研究团队看来,图结构是一种更通用的数据结构。甚至网格和序列可以当作图结构的特例,用图结构来做视觉感知会更加灵活。

图数据由节点和边组成,如果把每个像素都看作节点计算难度过于大了,因此研究团队采用了切块(patch)方法。

对于224×224分辨率的图像,每16×16像素为一个Patch,也就是图数据中的一个节点,总共有196个节点

对每个节点搜索他们距离最近的节点构成,边的数量随网络深度而增加。

接下来,网络架构分为两部分:

一个图卷积网络(GCN),负责处理图数据、聚合相邻节点中的特征。

一个前馈神经网络(FFN),结构比较简单是两个全连接层的MLP,负责特征的转换。

用GNN做CV三大任务的新骨干网络ViG,中科院&华为诺亚开源

传统GCN会出现过度平滑现象,为解决这个问题,团队在图卷积层前后各增加一个线性层,图卷积层后再增加一个激活函数。

实验表明,用上新方法,当层数较多时ViG学习到的特征会比传统ResGCN更为多样。

用GNN做CV三大任务的新骨干网络ViG,中科院&华为诺亚开源

同算力成本下不输CNN和ViT

为了更准确评估ViG的性能,研究团队设计了ViT常用的同质结构(isotropic)和CNN常用的金字塔结构(Pyramid)两种ViG网络,来分别做对比实验。

同质架构ViG分为下面三种规格。

用GNN做CV三大任务的新骨干网络ViG,中科院&华为诺亚开源

与常见的同质结构CNN、ViT与MLP网络相比,ViG在同等算力成本下ImageNet图像分类的表现更好。

用GNN做CV三大任务的新骨干网络ViG,中科院&华为诺亚开源

金字塔结构的ViG网络具体设置如下。

用GNN做CV三大任务的新骨干网络ViG,中科院&华为诺亚开源

同等算力成本下,ViG也与最先进的CNN、ViT和MLP相比,性能也能超越或表现相当。

用GNN做CV三大任务的新骨干网络ViG,中科院&华为诺亚开源

在目标检测和实例分割测试上,ViG表现也与同等规模的Swin Transformer相当。

用GNN做CV三大任务的新骨干网络ViG,中科院&华为诺亚开源

最后,研究团队希望这项工作能作为GNN在通用视觉任务上的基础架构,Pytorch版本和Mindspore版本代码都会分别开源。

论文地址:
http://arxiv.org/abs/2206.00272

开源地址:
https://github.com/huawei-noah/CV-Backbones
https://gitee.com/mindspore/models

版权所有,未经授权不得以任何形式转载及使用,违者必究。