ViT、DETR 和 Swin Transformer :基于 Transformer 的计算机视觉(CV)模型

ops/2025/3/21 11:12:38/

1️⃣ Vision Transformer(ViT)

📌 主要特点:

  • 直接将图像切成固定大小的 Patch(如 16×16),然后展平并当作 Transformer 的输入(类似 NLP 处理 Token)。
  • 全局注意力(Self-Attention),可以看到整个图像,但计算复杂度高。
  • 用于图像分类任务(如 ImageNet 分类)。

📌 主要缺点:

  • 计算复杂度高,尤其是大图像时,O(N²) 复杂度
  • 不能自适应感受野(固定 Patch 大小)。

📌 适用场景:

  • 图像分类(如 ImageNet)
  • Fine-tuning 适用于医疗影像、卫星图像分析等

图像(224x224)
  ↓ 切成 16×16 小块
  ↓ 线性投影为 Patch Embedding
  ↓ 位置编码 + Transformer 层
  ↓ MLP 进行分类

2️⃣ DEtection TRansformer(DETR)

📌 主要特点:

  • 基于 Transformer 的目标检测模型,将检测问题转换为**集合匹配(Set Prediction)**问题。
  • 直接用 Transformer 替代了 CNN 目标检测中的 RPN(Region Proposal Network)
  • 使用二分匹配(Hungarian Matching) 来优化目标检测框的位置和类别。

📌 主要优点:

  • End-to-End 训练,不需要额外的后处理(如 NMS)。
  • 检测多个目标,不需要手工设计 Anchor Boxes(对小目标、遮挡目标更友好)。

📌 主要缺点:

  • 计算复杂度较高,尤其是在高分辨率图像上。
  • 收敛速度较慢,相比于传统的 Faster R-CNN 需要更长时间训练。

📌 适用场景:

  • 目标检测(Object Detection)
  • 实例分割(Instance Segmentation)
  • 行人检测、自动驾驶等

图像输入 → CNN Backbone(提取特征) → Transformer(全局注意力) → 输出目标检测框和类别

3️⃣ Swin Transformer

📌 主要特点:

  • 采用滑动窗口(Shifted Window)自注意力机制,减少计算量,适应大分辨率图像。
  • 层次化设计(Hierarchical Feature Representation),更接近 CNN 方式,适用于下游任务(目标检测、分割等)。
  • 可以在不同分辨率下提取特征,适合密集预测任务(如目标检测、分割)。

📌 主要优点:

  • 计算量更小,相比 ViT 适用于更大图像
  • 支持多尺度特征提取(类似 CNN 的 FPN 结构),适用于目标检测、语义分割。
  • 能够在 ImageNet 训练后迁移到其他任务,通用性更强。

📌 主要缺点:

  • 相比 ViT 复杂度更高(但比标准 Transformer 低)。
  • 由于窗口大小固定,可能在处理超大物体或小目标时不如 CNN+Transformer 组合方法。

📌 适用场景:

  • 图像分类
  • 目标检测(比 ViT 更适合 YOLO/Faster R-CNN 任务)
  • 语义分割(适用于城市、医学影像等)
  • 多任务 CV 任务(如 Action Recognition、Pose Estimation)

图像输入 → 线性 Patch Embedding → Swin Transformer Block(窗口注意力) → 多尺度特征提取 → 适用于分类、检测、分割

📊 总结对比

模型主要任务注意力机制计算复杂度适用场景
ViT图像分类全局注意力(O(N²))高(需要大数据)分类
DETR目标检测Transformer 全局注意力高(慢收敛)目标检测
Swin Transformer目标检测、分割、分类Shifted Window 注意力低(比 ViT 好)分类 + 检测 + 分割

 


http://www.ppmy.cn/ops/167160.html

相关文章

基于Spring Boot的线上教育培训办公系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

GenICam GenTL 标准 ver1.5(1)GenICam简介与框架

好文链接:GenICam GenTL 标准 ver1.5(1)GenICam简介与框架 文章目录 GenICam GenTL 标准 ver1.0(1)GenICam简介与框架一、GenICam简介二、GenICam框架(一)核心组件(二)框…

ESP32-H2芯片模组方案,设备物联网通信,智能化无线控制联动

在当今数字化浪潮席卷全球的时代,物联网已不再是一个遥远的概念,它正以迅雷不及掩耳之势,渗透进我们生活与生产的每一个角落。 清晨,阳光透过智能窗帘洒在脸上,智能音箱贴心地播放着今日的新闻与天气;出门…

#mapreduce打包#maven:could not resolve dependencies for project

打包报错: #报错信息: [ERROR] Failed to execute goal on project mapreduce_teacher1: Could not resolve dependencies for project org.example:mapreduce_teacher1:jar:1.0-SNAPSHOT: Failed to collect dependencies at org.apache.hive:hive-exe…

【Linux网络编程】网络基础

目录 1、OSI分层思想2、数据的封装3、ip地址ipv4的ip地址分类:为什么这样划分?举例 4、端口号5、tcp三次握手为什么需要三次握手?tcp连接的标识为什么 IP 地址不能单独标识一条连接? 6、tcp四次挥手为什么需要四次挥手为什么需要三…

基于django+vue的购物商城系统

开发语言:Python框架:djangoPython版本:python3.8数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 系统首页 热卖商品 优惠资讯 个人中心 后台登录 管理员功能界面 用户管理 商品分类管理…

[RH342]iscsi配置与排错

[RH342]iscsi配置与排错 1. 服务端配置1.1 安装targetcli1.2 准备磁盘1.3 服务端配置1.4 防火墙配置 2. 客户端配置2.1 安装客户端软件2.2 配置客户端2.3 连接登录服务端2.4 挂载使用 3. 安全验证扩展3.1 服务端3.2 客户端 4. 常见的排错点4.1 服务端常见错误4.2 客户端常见错误…

Go Ebiten小游戏开发:2048

项目简介 这是一个使用Go语言和Ebiten游戏引擎开发的2048游戏。2048是一款经典的数字滑块游戏,玩家通过上下左右移动合并相同数字,目标是获得2048数字方块。 核心算法实现 游戏数据结构 const (gridSize 4 // 4x4网格 )var (grid [gridSize][gridS…