Swin Transformer
Узнай, как архитектура Swin Transformer использует смещённые окна для эффективного компьютерного зрения, и изучи рабочие процессы на платформе Ultralytics.
Представленная исследователями Microsoft в знаковой научной работе 2021 года «Swin Transformer: иерархический визуальный трансформер с использованием окон со сдвигом», эта архитектура глубокого обучения (DL) адаптирует механизм внимания для работы со сложными визуальными данными высокого разрешения. В отличие от моделей обработки естественного языка, обрабатывающих текстовые токены одинаковой длины, эта архитектура учитывает, что визуальные элементы могут значительно различаться по масштабу. Благодаря построению иерархического представления и применению уникальной техники работы с окнами она обеспечивает линейную вычислительную сложность относительно размера изображения, что делает её высокоэффективной основой для различных задач компьютерного зрения (CV).
Как работают окна со сдвигом и иерархическая структура#
Основное нововведение заключается в способе организации моделью извлечения признаков. Сначала входное изображение разделяется на небольшие неперекрывающиеся фрагменты. Однако, в отличие от более ранних моделей, на последующих слоях эти соседние фрагменты постепенно объединяются в более крупные области. Такой иерархический подход позволяет сети извлекать содержательные карты признаков, представляющие глобальный контекст в разных масштабах — от мельчайших визуальных деталей до крупных объектов.
Чтобы сохранить вычислительную эффективность, механизм самообслуживания вычисляется только внутри локальных изолированных окон, а не для всего изображения. Чтобы обеспечить передачу информации через эти границы, на последовательных слоях окна «сдвигаются». Такая схема окон со сдвигом эффективно связывает независимые области, обеспечивая полноценные пространственные иерархии разных масштабов без значительных вычислительных затрат, связанных с глобальным вниманием.
Swin Transformer и Vision Transformer (ViT)#
При сравнении современных архитектур важно отличать эту модель от стандартного Vision Transformer (ViT). Исходный ViT рассматривает изображения как последовательность фрагментов фиксированного размера и одновременно вычисляет глобальное внимание для всех них. Несмотря на высокую точность, это приводит к квадратичной вычислительной сложности, то есть время обработки и требования к памяти резко возрастают по мере увеличения разрешения изображения.
В отличие от него, иерархическая архитектура Swin с окнами сохраняет линейную сложность. Это делает её гораздо более практичной для задач плотного предсказания, требующих входных и выходных данных высокого разрешения. Поэтому она показывает результаты уровня state-of-the-art на таких наборах для тестирования, как набор данных COCO test-dev, в задачах [обнаружения объектов](https://ultralytics-translation-1.invalid разных масштабов и на наборе данных семантической сегментации ADE20K для точной сегментации изображений.
Применение в современных системах ИИ#
Благодаря гибкости и эффективности реализация в официальном репозитории Microsoft Research на GitHub была адаптирована для сложных отраслей с высокими требованиями.
- Анализ медицинских изображений: В клинических условиях такие сети, как Swin-Unet, используют эту архитектуру для работы с объёмными 3D-сканами MRI и анализа гистопатологических изображений высокого разрешения. Способность модели сохранять плотные пространственные иерархии помогает выявлять небольшие аномалии, например опухоли на ранних стадиях. Подробнее о последних достижениях в области исследований медицинской визуализации можно узнать здесь.
- Анализ спутниковых изображений: Для экологического мониторинга и дистанционного зондирования крайне важно охватывать крупномасштабный географический контекст. Иерархическая структура эффективно обрабатывает массивные аэрофотографические наборы данных для отслеживания вырубки лесов, городского планирования и мониторинга состояния сельскохозяйственных культур.
Интеграция с PyTorch и Ultralytics#
Для разработчиков, создающих пользовательские нейронные сети, реализовать эту архитектуру несложно с помощью официальной документации PyTorch. Библиотека torchvision включает предварительно обученные версии, например облегчённый вариант Tiny, оптимизированный на ImageNet.
import torch
from torchvision.models import Swin_T_Weights, swin_t
# Load a pre-trained Tiny variant with ImageNet weights
weights = Swin_T_Weights.IMAGENET1K_V1
model = swin_t(weights=weights)
model.eval()
# Run a single batch containing a 3-channel, 224x224 dummy image tensor
dummy_image = torch.randn(1, 3, 224, 224)
output = model(dummy_image)
# The output shape is [1, 1000], representing the 1000 ImageNet classes
print(f"Prediction tensor shape: {output.shape}")Хотя основы на базе Transformer обеспечивают превосходное представление данных в разных масштабах, современные приложения часто требуют полностью сквозной оптимизации для периферийных устройств ИИ. Например, Ultralytics YOLO26 изначально предоставляет сквозную архитектуру, которая меньше, быстрее и отличается высокой точностью из коробки, превосходно работая в периферийных средах реального времени. Независимо от того, используешь ли ты архитектуры с активным применением Transformer или быстрые свёрточные модели, ты можешь управлять всем рабочим процессом — от разметки данных до обучения — через Ultralytics Platform. Эта комплексная облачная цепочка инструментов упрощает и ускоряет развёртывание моделей и постоянный мониторинг моделей.









