探索视觉变换器 (ViT) 在计算机视觉中的强大功能。了解它们如何通过捕捉全局图像上下文来超越 CNN。
视觉转换器(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 等库中,使其可用于研究和部署,使用的框架包括 PyTorch和 TensorFlow.还可以使用以下工具对它们进行优化,以便在NVIDIA Jetson Google EdgeTPU等设备上进行边缘人工智能部署 TensorRT.
虽然 ViT 和 CNN 都是计算机视觉领域的基础架构(参见 "视觉模型的历史"),但它们在方法上有很大不同:
在 ViT 和 CNN 之间做出选择通常取决于具体任务、可用数据集和计算资源。当有大量训练数据且全局背景至关重要时,ViT 通常会表现出色。有线网络(CNN),如在 Ultralytics YOLO系列(例如 YOLOv8、YOLOv10、YOLO11等)依然高效,尤其适用于在受限设备上进行实时物体检测。将卷积特征与转换层相结合的混合架构(如RT-DETR)也是一个很有前景的方向,它试图利用两种方法的优势。无论是基于 ViT 还是 CNN 的预训练模型,利用迁移学习等技术对其进行微调都是一种常见的做法。