这里写目录标题

  • 参考
  • 前言
    • cnn与transformer
    • 如何在cnn中插入transformer
  • 2021 ICCV-Conformer(国科大&华为&鹏城)
    • 详情
    • 框架概述

参考

1.CNN+Transformer算法总结

前言

  • 总结了2021年以来,所有将CNN与Transformer框架结合的CV算法
  • 在卷积神经网络(CNN)中,卷积运算擅长提取局部特征,但在捕获全局特征表示方面还是有一定的局限性。 在Vision Transformer中,级联自注意力模块可以捕获长距离的特征依赖,但会忽略局部特征的细节。

cnn与transformer

CNN具有非常良好的性能。这在很大程度上归因于卷积操作,
优点:它以分层的方式收集局部特征以获得更好的图像表示。
缺点:尽管在局部特征提取方面具有优势,但CNN捕获全局表示的能力还是不足,这对很多high-level的计算机视觉任务又是非常重要的。
一个最直观的解决方案是扩大感受野,但是这就会破坏池化层的操作

Transformer

  1. ViT方法
  • 通过将每个图像分割为具有位置嵌入的Patch来构建一系列token;
  • 然后用Transformer Block来提取参数化向量作为视觉表示。
    由于自注意力机制(Self-Attention)和多层感知机(MLP)结构,Vision Transformer能够反映了复杂的空间变换和长距离特征依赖性,从而获得全局特征表示。
    缺点:Vision Transformer会忽略了局部特征细节,这降低了背景和前景之间的可辨别性

因此,一些工作提出了一个tokenization模块或利用CNN特征图作为输入token来捕获特征的邻近信息。然而,这些方法依旧没有从根本上解决好局部建模和全局建模之间的关系。

如何在cnn中插入transformer

类似的工作比如说DETR,用CNN提取图像特征,在之后接了Transformer的encoder和decoder。

例如:2021年1月27日在arxiv上发的一篇文章Bottleneck Transformers for Visual Recognition同样是采用了CNN+Transformer,但在我看来,似乎是更加elegant的做法:

  1. 将Transformer的Self-attention融入了一个CNN的backbone中,而非叠加;

  2. 具体来说是在ResNet的最后三个bottleneck blocks中用MHSA(多头自注意力层,Multi-Head Self-attention)替换了原本的3x3卷积(下图)。这些新的blocks被命名为BoT blocks,这一新的网络被命名为BotNet


好处:

  1. 能够利用成熟的、经过检验的CNN网络结构提取特征,CNN在视觉领域是有一些先验或者inductive biases的;

  2. CNN对输入图像做了下采样后,再由self-attention进行运算,相比于直接使用self-attention在原图上处理,能够降低运算量;

  3. 这样的设计能够与其他方法结合,例如可能作为backbone应用于DETR中。

在MHSA层中,特征输入X经过WQ, WK, WV三个矩阵映射成q,k,v,分别代表query,key和value。Self-attention的操作一般是对qkv进行计算。

2021 ICCV-Conformer(国科大&华为&鹏城)

详情

2021 IEEE/CVF International Conference on Computer Vision (ICCV) -9 May
论文:原论文
代码:代码
参考:
1CNN+Transformer=Better,国科大&华为&鹏城实验室提出Conformer,84.1% Top-1准确率
2.论文笔记32 – Conformer: Local Features Coupling Global Representations for Visual Recognition

本文提出了一种混合网络结构,称为Conformer,将(卷积操作)和(自注意力机制)结合增强特征表示的学习。Conformer 依靠特征耦合单元(FCU),以交互的方式在不同分辨率下融合局部特征表示和全局特征表示。此外,Conformer采用并行结构,以最大限度地保留局部特征和全局表示。
作者通过实验证明,在相似的参数和复杂度下,Conformer在ImageNet上比DeiT-B好2.3%。在MS-COCO数据集上,它在目标检测和实例分割任务上,分别比ResNet-101高出3.7%和3.6%的mAP。

框架概述

双网络结构Conformer,能够将基于CNN的局部特征与基于Transformer的全局表示相结合,以增强表示学习。Conformer由一个CNN分支和一个Transformer分支组成,这两个分支由局部卷积块、自我注意模块和MLP单元的组合而成。在训练过程中,交叉熵损失函数被用于监督CNN和Transformer两个分支的训练,以获得同时具备CNN风格和Transformer风格的特征。

考虑到CNN与Vision Transformer特征之间的不对称性,作者设计了特性耦合单元(FCU)作为CNN与Vision Transformer 之间的桥接
一方面,为了融合两种风格的特征,FCU 利用1×1卷积对齐通道尺寸,用下/上采样策略对齐特征分辨率,用LayerNorm和BatchNorm对齐特征值 。
另一方面,由于CNN和Vision Transformer分支倾向于捕获不同级别的特征(局部和全局),因此将FCU插入到每个block中,以 连续 交互的方式消除它们之间的语义差异 。这种融合过程可以极大地提高局部特征的全局感知能力和全局表示的局部细节。

方法

【深度学习】CNN+Transformer汇总相关推荐

  1. 深度学习-CNN模型汇总

    目录 1.AlexNet网络模型 2.VGG网络模型 3.Inception模型(googleNet) 3.1[v1] 3.2[v2] 3.3[v3] 4 ResNet 1.AlexNet网络模型 2 ...

  2. [转载]机器学习深度学习经典资料汇总,全到让人震惊

    自学成才秘籍!机器学习&深度学习经典资料汇总 转自:中国大数据: http://www.thebigdata.cn/JiShuBoKe/13299.html [日期:2015-01-27] 来 ...

  3. 【深度学习】Transformer在语义分割上的应用探索

    [深度学习]Transformer在语义分割上的应用探索 文章目录 1 Segmenter 2 Swin-Unet:Unet形状的纯Transformer的医学图像分割 3 复旦大学提出SETR:基于 ...

  4. 深度学习cnn人脸检测_用于对象检测的深度学习方法:解释了R-CNN

    深度学习cnn人脸检测 介绍 (Introduction) CNN's have been extensively used to classify images. But to detect an ...

  5. 【信号识别】基于matlab深度学习CNN信号调制分类【含Matlab源码 2066期】

    ⛄一.深度学习CNN信号调制分类概述 1 背景介绍 在通信信号处理领域, 特别是在非协作通信信号盲解调研究领域, 每时隙突发信号的调制方式不同, 必须进行信号的调制方式自动识别.信号的调制方式识别效果 ...

  6. 2019 到目前为止的深度学习研究进展汇总

    本文为 AI 研习社编译的技术博客,原标题 : Best Deep Learning Research of 2019 So Far 作者 | ODSC - Open Data Science 翻译 ...

  7. 深度学习入门 错误汇总

    深度学习入门 错误汇总 新程序一打开一堆错误 解决:配置环境 不能正常训练,且报错 OMP: Error #15: Initializing libiomp5md.dll, but found lib ...

  8. 神经网络及深度学习CNN

    神经网络及深度学习CNN 一.传统人工神经网络(ANN) 二.CNN 1.CNN层次 1.1 输入层 1.2 卷积层 1.3 激励层 1.4 池化层 1.4 全连接层 1.5 归一化层 2.CNN的应 ...

  9. 机器学习_深度学习毕设题目汇总——遥感

    下面是该类的一些题目: 题目 光学遥感图像典型目标检测方法研究 内蒙古草地生产力时空分析及产草量遥感估算和预测 双支路深度神经网络下的遥感图像配准及多分辨率融合分类 可见光遥感图像海面目标自动检测关键 ...

  10. 机器学习_深度学习毕设题目汇总

    机器学习深度学习毕设题目汇总目录 1 计算机视觉(CV) 1.1 OCR 1.2 边缘检测 1.3 表情情感 1.4 场景 1.5 车辆车牌 1.6 唇语 1.7 导航 1.8 点云 1.9 风格转换 ...

最新文章

  1. Linux/Centos7系统管理之进程与计划任务管理
  2. cas单点登陆。就这一篇就够了!!!!!
  3. eclipse调试一个struts2例子时遇到的一些问题总结
  4. 基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET - 系统架构
  5. tomcat如何查找请求资源的?
  6. centos yum “The requested URL returned error: 404”错误
  7. ORACLE 多版本读一致性
  8. CSS中id选择器和class选择器
  9. Python机器学习:决策树003使用信息熵寻找最优划分
  10. 原来人生真的是一场苦的修行
  11. JavaScript的OO特性:静态方法
  12. 谨防病毒利用气象软件锁定浏览器主页
  13. 转:WaitForSingleObject()函数、WaitForMultipleObject()函数
  14. 邪恶力量第一至九季/全集Supernatural迅雷下载
  15. java宿舍信息管理系统_Java宿舍管理系统
  16. 金蝶移动bos开发教程_移动BOS开发 -- 移动表单
  17. 《计算机网络教程》(微课版 第五版)复习补充题
  18. 大话USB驱动之基础概念
  19. 获取必应每日壁纸(api)
  20. VUE设置浏览器标题及图标

热门文章

  1. Python—网络编程_Mail
  2. python背景图添加_Python实例讲解 -- tkinter canvas (设置背景图片及文字)
  3. 2022.8.22 小W的玻璃弹珠 题解
  4. 无线Beacon帧解析
  5. 多态和特殊类 -->特殊类
  6. Weblogic缓存清理
  7. 10大动图:秒懂各种常用通信协议原理
  8. Android系统启动之BOOT_COMPLETED广播
  9. python中fn是什么意思_按Fn键Python 3
  10. 随手写一篇关于rabbitMQ的安装教程