当前位置: 首页 > news >正文

CNN vs ViT:图像世界的范式演进

一、图像建模,是不是也可以“大一统”

在前文中我们提到,多模态大模型打破“只能处理文字”的限制。

在 NLP 世界里,Transformer 已经证明自己是理解语言的王者。那么在图像世界,我们是否也能有一种“通用架构”,让模型像“理解语言”一样理解图像呢?

这篇文章,我们同样从开发者熟悉的角度,讲清楚 CNN 和 ViT 的核心原理与区别,以及为什么 ViT 被称为“视觉的 BERT”,开启了图像建模的新时代

二、图像是怎么被“看懂”的?——介绍 CNN

想象你正在处理一张图片,比如一张猫的照片。你不是用人眼看,而是交给一个“滤镜系统”处理。

这时候,卷积核就像是一组特定用途的图像滤镜,比如:

  • 有些滤镜专门“强调边缘”;

  • 有些滤镜“只在看到竖线时有反应”;

  • 有些滤镜“喜欢曲线”或“角落状的区域”;

当你用这些滤镜一层层地扫描整张猫图时(如上图):

  • 第一层滤镜可能捕捉到了猫耳朵的轮廓、胡须的线条、眼睛的对比边缘;

  • 第二层把这些低级特征组合起来,形成“猫眼睛”或“猫耳朵区域”的高级特征;

  • 更深的层能捕捉出“这可能是一只猫”的抽象概念。

这个过程可以理解成是Conv2D和MaxPooling2D的堆叠

从优缺点上来看,CNN非常高效,部署成熟,以及“平移不变性”和“局部性”的特性,所以数据量不大也能训练出不错的模型。

但它也有明显局限:

  • 缺乏全局建模能力,无法直接理解图像中远距离的元素之间的关系(比如“天空”和“地面”的相对位置)

  • 架构复杂且难统一,不同任务需要设计不同网络结构(ResNet、EfficientNet 等)

三、ViT 的崛起:把图像变成 Token,统一进 Transformer

 

那有没有一种架构,既能保留 CNN 的特征提取能力,又能拥有更强的全局建模能力?

2020 年,Google 提出了 Vision Transformer(ViT),提出了一个惊人的想法:

    图像也可以像句子一样,切分为 Token,然后直接输入 Transformer。

如上图,Transformer中一个重要特性是注意力机制(self-attention),当前token跟其他每个token计算重要程度。远距离也可以很好捕捉

Bert、ChatGPT等现在主流的模型都是用到Transformer架构,那架构上也实现了统一

四、ViT如何实现分词

之前文章中,我们讲到文本首先要“分词”,更专业称呼为Tokenization。

那ViT是如何实现tokenizer的呢?——切成一个个patch

如下面九宫格,将原始图片分成的一个一个patch。而每个patch,等同于自然语言中的token。

原始图片

九宫格

铺平

针对这个“九宫格”进行铺平,就变成了自然语言中长度为9的概念。

五、ViT 的意义:视觉也能加入“大模型俱乐部”

ViT 的真正意义在于:它让图像建模也走向 Transformer 范式,从而进入大模型时代。

有了 ViT,我们可以:

  • 把图像和文本一起作为 token 输入 Transformer,实现图文统一理解

  • 用文本 prompt 控制视觉模型,发展多模态交互(LLaVA)

  • 将视觉编码结果作为语言模型的提示,让模型“看图说话”(Qwen-VL)

这些技术的基础,都是 ViT 将图像表示 token 化,并送入 Transformer 架构的能力。

六、总结

本篇粗略介绍了CNN和ViT这种更通用的“图像语言处理器”,即图像也能像语言一样,被统一处理。

后面,我们从更多案例出发,打下更多的认知基础。

相关文章:

  • 英伟达CEO黄仁勋COMPUTEX 2025演讲实录:AI工厂时代已来,Blackwell架构全面投产
  • Java之函数式接口、lambda表达式、stream流操作、Optional容器、方法引用
  • 基于两阶段交互控制框架的互联多能系统协同自治优化
  • 架构图 C4 规范简介
  • vscode打开的文件被覆盖/只能打开两个文件(Visual Studio Code)
  • ollama使用gpu运行大模型
  • 【Java学习方法】类变量
  • STM32单片机GUI系统1 GUI基本内容
  • 六台升降台完整的限位保护逻辑
  • java 在用redis 的时候,如何合理的处理分页问题? redis应当如何存储性能最佳
  • 【聚合MQ管理 第一章】一个项目管理多种MQ 之 ActiveMq
  • Manus与DeepSeek 的区别
  • Swagger在java的运用
  • Java基础 Day17
  • 云渲染技术解析与渲酷平台深度测评:如何实现高效3D创作?
  • OpenCV CUDA模块特征检测与描述------用于创建一个最大值盒式滤波器(Max Box Filter)函数createBoxMaxFilter()
  • Redis全攻略:解锁高性能数据存储与处理的奥秘
  • 为一套现有RAC搭建一个单实例备库,组成DG高可用架构
  • vue3+uniapp中使用高德地图实现撒点效果
  • Linux中的文件介绍
  • 建网站视频教程/开发外包网站
  • 网站建设 业务走下坡/百度视频推广怎么收费
  • 顶尖的锦州网站建设/广州seo排名外包