Vision Transformer (ViT)
Изучи возможности Vision Transformers (ViT). Узнай, как self-attention и токенизация патчей преобразуют компьютерное зрение, превосходя CNN, вместе с Ultralytics.
Vision Transformer (ViT) — это архитектура глубокого обучения, адаптирующая механизмы self-attention, изначально разработанные для обработки естественного языка (NLP), для решения задач компьютерного зрения. В отличие от традиционной сверточной нейронной сети (CNN), которая обрабатывает изображения через иерархию локальных сеток пикселей, ViT рассматривает изображение как последовательность отдельных фрагментов. Этот подход получил широкое распространение благодаря знаковой исследовательской работе «Изображение стоит 16×16 слов», показавшей, что чистые архитектуры Transformer могут обеспечивать передовые результаты в области компьютерного зрения (CV) без использования сверточных слоев. Благодаря глобальному attention-механизму ViT может с самого первого слоя учитывать дальние зависимости по всему изображению.
Как работают Vision Transformer#
Ключевая инновация ViT заключается в способе структурирования входных данных. Чтобы сделать изображение совместимым со стандартным Transformer, модель разбивает визуальную информацию на последовательность векторов, имитируя обработку языковой моделью предложения, состоящего из слов.
-
Токенизация фрагментов: Входное изображение делится на сетку квадратов фиксированного размера, обычно 16×16 пикселей. Каждый квадрат преобразуется в вектор, фактически становясь визуальным токеном.
-
Линейная проекция: Эти преобразованные векторы фрагментов проходят через обучаемый линейный слой для создания плотных эмбеддингов. На этом этапе исходные значения пикселей отображаются в многомерное пространство, с которым может работать модель.
-
Позиционное кодирование: Поскольку архитектура обрабатывает последовательности параллельно и не имеет встроенного понимания порядка или пространства, к эмбеддингам фрагментов добавляются обучаемые позиционные кодирования. Это позволяет модели сохранять пространственную информацию о расположении каждого фрагмента в исходном изображении.
-
Механизм self-attention: Последовательность поступает в энкодер Transformer, где self-attention позволяет каждому фрагменту одновременно взаимодействовать со всеми остальными. Благодаря этому сеть учится учитывать глобальный контекст и понимать связь между пикселем в левом верхнем углу и пикселем в правом нижнем.
-
Классификационная голова: Для таких задач, как классификация изображений, в начало последовательности часто добавляется специальный «токен класса». Итоговое состояние этого токена служит обобщенным представлением изображения, которое затем передается классификатору, например многослойному перцептрону (MLP).
Vision Transformer и CNN#
Хотя обе архитектуры предназначены для анализа визуальных данных, их принципы работы существенно различаются. CNN обладают сильным «индуктивным смещением», известным как инвариантность к переносу: они изначально предполагают, что локальные признаки, такие как границы и текстуры, важны независимо от своего положения. Благодаря этому CNN эффективно используют данные и хорошо работают на небольших наборах данных.
В свою очередь, Vision Transformer обладают менее выраженным смещением, специфичным для изображений. Им необходимо с нуля изучать пространственные взаимосвязи, используя огромные объемы обучающих данных, например набор JFT-300M или полный набор ImageNet. Хотя это делает обучение более ресурсоемким, ViT отлично масштабируются: при достаточном объеме данных и вычислительных мощностях они могут превосходить CNN, улавливая сложные глобальные структуры, которые локальные свертки могут не заметить.
Практические применения#
Способность понимать глобальный контекст делает ViT особенно полезными в сложных и ответственных сферах.
- Анализ медицинских изображений: В сфере ИИ для здравоохранения ViT используются для анализа изображений высокого разрешения, таких как МРТ-снимки или гистопатологические препараты. Например, при обнаружении опухолей ViT может сопоставлять едва заметные текстурные аномалии в тканях с более масштабными структурными изменениями на всем препарате, выявляя злокачественные признаки, которые локальная обработка могла бы пропустить.
- Спутниковые снимки и дистанционное зондирование: ViT отлично подходят для анализа спутниковых изображений, где взаимосвязи между объектами охватывают большие расстояния. Например, чтобы связать участок вырубки леса с удаленной лесовозной дорогой, необходимо понимать общую картину ландшафта — задачу, в которой глобальный attention-механизм ViT превосходит ограниченное рецептивное поле стандартных CNN.
Использование Transformer с Ultralytics#
Библиотека ultralytics поддерживает архитектуры на основе Transformer, в частности RT-DETR (трансформер детекции в реальном времени). Хотя флагманскую модель YOLO26 часто выбирают за баланс скорости и точности на периферийных устройствах, RT-DETR предлагает мощную альтернативу для сценариев, в которых приоритетом является глобальный контекст.
Следующий пример на Python демонстрирует, как загрузить предварительно обученную модель на основе Transformer и выполнить инференс:
from ultralytics import RTDETR
# Load a pre-trained RT-DETR model (Vision Transformer-based)
model = RTDETR("rtdetr-l.pt")
# Run inference on an image source
# The model uses self-attention to detect objects globally
results = model("https://ultralytics.com/images/bus.jpg")
# Display the detection results
results[0].show()Перспективы на будущее#
Исследования быстро развиваются, чтобы снизить высокую вычислительную стоимость ViT. Такие методы, как FlashAttention, делают эти модели более быстрыми и эффективными с точки зрения использования памяти. Кроме того, становятся распространенными гибридные архитектуры, сочетающие эффективность CNN с attention-механизмом Transformer. Командам, стремящимся управлять такими сложными рабочими процессами, платформа Ultralytics предлагает единую среду для разметки данных, обучения сложных моделей в облаке и их развертывания на различных конечных устройствах.









