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

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

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

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

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

515b2f06599c9cf07345011a4f681978.png

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

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

该来的总要来的。

459af7c455ab40b50022793906c3c7e4.png

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

An Image is Worth Graph of Nodes

4f1d6159c96682328395317f0442531d.png

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

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

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

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

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

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

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

355b9a1d9b08e24f1192bb63236089ac.png

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

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

1e72a0e49895ce156be735901c9073f9.png

同算力成本下不输CNN和ViT

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

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

9a33cd84bd07bfd96ab068d7a6339a1d.png

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

3bd570e345fddf00526167639134fd65.png

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

48617be693242f222b98422b408256c6.png

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

3d4b3421424f197267067db4bef1e63c.png

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

dbba5e9877d18d89c0d6d9ec9a8d22e3.png

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

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

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

猜你喜欢

转载自blog.csdn.net/QbitAI/article/details/125213612