术语表

视觉转换器(ViT)

探索视觉变换器 (ViT) 在计算机视觉中的强大功能。了解它们如何通过捕捉全局图像上下文来超越 CNN。

使用Ultralytics HUB 对YOLO 模型进行简单培训

了解更多

视觉转换器(ViT)是一种神经网络架构,由最初为自然语言处理(NLP)设计的转换器模型改编而来。ViTGoogle 研究人员在论文"An Image Is Worth 16x16 Words "中提出,它将 Transformer 的自我注意机制直接应用于图像片段序列,将图像处理视为序列建模任务。这种方法标志着卷积神经网络 CNN)计算机视觉(CV)领域的主导地位发生了重大转变。

视觉变形器的工作原理

ViT 不使用卷积滤波器逐个像素地处理图像,而是首先将输入图像分割成固定大小、不重叠的斑块。然后将这些斑块扁平化为矢量,进行线性嵌入,并用位置嵌入进行增强,以保留空间信息(类似于 NLP 中单词位置的编码方式)。然后,这一系列向量将被输入标准的 Transformer 编码器,该编码器使用多层多头自我关注来权衡不同片段的相对重要性。Transformer 编码器的最终输出通常会传递给一个简单的分类头(如多层感知器),用于图像分类等任务。这种架构使 ViTs 能够有效地模拟图像中的远距离依赖关系和全局背景。

相关性和应用

视觉变换器因其可扩展性和令人印象深刻的性能,特别是在ImageNet等数据集或更大的专有数据集上进行大规模预训练时的性能,已成为现代深度学习的重要组成部分。它们对全局上下文进行建模的能力使其适用于基本分类之外的各种 CV 任务,包括

ViTs 被越来越多地集成到Ultralytics HUB等平台和Hugging Face Transformers 等库中,使其可用于研究和部署,使用的框架包括 PyTorchTensorFlow.还可以使用以下工具对它们进行优化,以便在NVIDIA Jetson Google EdgeTPU等设备上进行边缘人工智能部署 TensorRT.

ViT 与 CNN

虽然 ViT 和 CNN 都是计算机视觉领域的基础架构(参见 "视觉模型的历史"),但它们在方法上有很大不同:

  • 归纳偏差:CNN 通过其卷积层和池化层对定位和翻译等差性具有很强的归纳偏差。而 ViT 的归纳偏差较弱,更依赖于从数据中学习模式,特别是通过自我关注来学习图像远处之间的关系。
  • 数据依赖性:ViT 通常需要大量的训练数据(或广泛的预训练)才能超越最先进的 CNN。在数据集较小的情况下,CNN 因其内置的偏差,通常会有更好的泛化效果。
  • 计算成本:训练 ViT 可能需要大量计算,通常需要大量GPU 资源。然而,推理速度却很有竞争力,尤其是对于大型模型而言。例如,RT-DETR 模型可提供实时性能,但可能比基于 CNN 的YOLO 模型需要更多资源。
  • 全局背景与局部背景:CNN 可根据局部模式建立分层特征。ViT 可以从最早期的图层中建立斑块之间的全局交互模型,从而更有效地捕捉某些任务的大背景。

在 ViT 和 CNN 之间做出选择通常取决于具体任务、可用数据集和计算资源。当有大量训练数据且全局背景至关重要时,ViT 通常会表现出色。有线网络(CNN),如在 Ultralytics YOLO系列(例如 YOLOv8YOLOv10、YOLO11等)依然高效,尤其适用于在受限设备上进行实时物体检测。将卷积特征与转换层相结合的混合架构(如RT-DETR)也是一个很有前景的方向,它试图利用两种方法的优势。无论是基于 ViT 还是 CNN 的预训练模型,利用迁移学习等技术对其进行微调都是一种常见的做法。

阅读全部