来源丨机器之心

华为诺亚实验室的研究员发现图神经网络(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 的开创性工作可以作为一般视觉任务的基本架构。

本文仅做学术分享,如有侵权,请联系删文。

干货下载与学习

后台回复:巴塞罗自治大学课件,即可下载国外大学沉淀数年3D Vison精品课件

后台回复:计算机视觉书籍,即可下载3D视觉领域经典书籍pdf

后台回复:3D视觉课程,即可学习3D视觉领域精品课程

计算机视觉工坊精品课程官网:3dcver.com

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

11.自动驾驶中的深度学习模型部署实战

12.相机模型与标定(单目+双目+鱼眼)

13.重磅!四旋翼飞行器:算法与实战

14.ROS2从入门到精通:理论与实战

15.国内首个3D缺陷检测教程:理论、源码与实战

重磅!计算机视觉工坊-学习交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~ 

图神经网络也能用作CV骨干模型,华为诺亚ViG架构媲美CNN、Transformer相关推荐

  1. 华为诺亚ViG架构媲美CNN、Transformer,图神经网络也能用作CV骨干模型

    华为诺亚实验室的研究员发现图神经网络(GNN)也能做视觉骨干网络.将图像表示为图结构,通过简洁高效的适配,提出一种新型视觉网络架构 ViG,表现优于传统的卷积网络和 Transformer.在 Ima ...

  2. 性能超越最新序列推荐模型,华为诺亚方舟提出记忆增强的图神经网络

    作者 | Chen Ma, Liheng Ma等 译者 | Rachel 出品 | AI科技大本营(ID:rgznai100) 用户-商品交互的时间顺序可以揭示出推荐系统中用户行为随时间演进的序列性特 ...

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

    #今日论文推荐# 用GNN做CV三大任务的新骨干,同计算成本性能不输CNN.ViT与MLP|中科院&华为诺亚开源 用图神经网络(GNN)做CV的研究有不少,但通常是围绕点云数据做文章,少有直接 ...

  4. 华为诺亚CV方向19篇论文入选ICCV 2019

    点击我爱计算机视觉标星,更快获取CVML新技术 目前,2019年国际计算机视觉大会(ICCV 2019),正在韩国首尔(Seoul)举行.华为公司不仅成为了会议的铂金赞助商,其下属的诺亚方舟实验室更是 ...

  5. 中科院华为诺亚提出ViG:一种全新的骨干网络,性能不输CNN、ViT!

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入-> CV 微信技术交流群 梦晨 发自 凹非寺 转载自:量子位(QbitAI) 用图神经网络( ...

  6. 收藏 | 图像处理Transformer:华为诺亚、北大等IPT模型,刷榜

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:机器之心 AI博士笔记系列推荐 周志华<机器学习> ...

  7. #今日论文推荐#中科院华为诺亚提出ViG:一种全新的骨干网络,性能不输CNN、ViT

    #今日论文推荐#中科院&华为诺亚提出ViG:一种全新的骨干网络,性能不输CNN.ViT 用图神经网络(GNN)做CV的研究有不少,但通常是围绕点云数据做文章,少有直接处理图像数据的. 其实与C ...

  8. 华为诺亚实验室:端侧AI模型的技术进展与未来

    主讲人 | 王云鹤 华为诺亚实验室 量子位编辑 | 公众号 QbitAI 近两年来,端侧AI在技术和应用方面都取得了快速发展.相较于云侧AI,端侧AI具有低时延.保护数据隐私与安全.减少云端能耗.不依 ...

  9. 华为诺亚实验室:端侧AI模型的技术进展与未来|量子位·吃瓜社

    主讲人 | 王云鹤 华为诺亚实验室 量子位编辑 | 公众号 QbitAI 近两年来,端侧AI在技术和应用方面都取得了快速发展.相较于云侧AI,端侧AI具有低时延.保护数据隐私与安全.减少云端能耗.不依 ...

最新文章

  1. python详细安装教程linux-Linux环境下Python的安装方法
  2. System.arraycopy
  3. VSCode生成.vue模版
  4. Mysql备份工具xtrabackup 8 安装图解
  5. java中创建目录_如何在Java中创建目录?
  6. [C++11]move资源的转移
  7. Flink 1.11 SQL 十余项革新大揭秘,哪些演变在便捷你的使用体验?
  8. 数据结构之图的存储结构:邻接多重表
  9. [coursera] [design] Hangman
  10. java中的mod运算_Java源码中Integer类位运算分析
  11. LaTeX tikz初探——基本图形绘制(1)
  12. Tornado部署时那些奇怪的错误
  13. Android 助力云计算
  14. PLSQL 升级到最新版本 以及 破解注册细则
  15. 颜色中英文对照表颜色名字色彩名称
  16. cmd命令跳舞代码_Golang语言元编程之代码生成
  17. stm32指纹考勤机 (程序源码包括app程序+pcb电路图+原件清单)
  18. 没想到印度年轻人这么惨!我们知足吧!
  19. iphone怎么找本地音乐_为什么iPhone会发出蜂鸣声或振动? 这是找出方法
  20. 酒类企业1919获阿里20亿入股 已与天猫及饿了么有深度合作

热门文章

  1. php 跳转qq群代码_一个简单QQ群聊案例代码解析(PHP实现)
  2. 心跳(纯代码制作心形,animation动画)
  3. 2018年系统架构设计师上午真题及答案解析
  4. 美容行业小程序开发功能介绍
  5. 解读FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence
  6. win10系统删除Microsoft帐户
  7. STM32使用gcc编译使用说明
  8. Springboot Resolved [org.springframework.web.multipart.support.MissingServletRequestPartException
  9. 视觉工程师必须知道的工业相机50问,绝对干货!(转载)
  10. 判断kkt条件的例题_浅谈最优化问题的KKT条件