Измерители диаметра и эксцентриситета. Измеритель диаметра кабеля, трубы, прутка и катанки. Измерители толщины,. Измеритель толщины. Контроль изоляции. ЗАСИ. Машинное зрение.

Архитектура нейронных сетей Vision Transformers для задач компьютерного зрения: кратко о главном

Публикация статьи “Attention Is All You Need” ознаменовала собой поворотный момент в области компьютерного зрения, положив конец господству рекуррентных нейронных сетей (RNN). В силу превосходящей эффективности трансформеров по сравнению с RNN, данная статья посвящена разбору их природы и принципов работы в контексте компьютерного зрения.

Классификация изображений с помощью Vision Transformer меняет подход моделей компьютерного зрения к пониманию изображений, рассматривая их как последовательности, а не как сетки пикселей. Вместо использования сверточных слоев, этот подход применяет архитектуры трансформеров — первоначально разработанные для обработки естественного языка — непосредственно к визуальным данным. Этот сдвиг позволяет моделям более гибко и масштабируемо улавливать дальние взаимосвязи внутри изображения.

В общих чертах, классификация изображений с помощью Vision Transformer работает путем разделения изображения на фрагменты фиксированного размера и преобразования каждого фрагмента в числовое векторное представление. Эти векторные представления обрабатываются слоями кодировщика Transformer, которые изучают глобальный контекст по всему изображению. В результате получается модель, способная распознавать сложные закономерности без использования традиционных операций свертки.

Этот подход оказался особенно эффективным при обучении на больших наборах данных и в сочетании с современными фреймворками глубокого обучения, такими как PyTorch. Благодаря наличию предварительно обученных моделей разработчики теперь могут применять классификацию изображений Vision Transformer к реальным задачам с минимальной настройкой и высокой производительностью.

По мере развития задач компьютерного зрения классификация изображений с помощью Vision Transformer стала практичным и доступным решением для разработчиков, которым важны как точность, так и простота архитектуры. Она устраняет разрыв между передовыми исследованиями и практической реализацией в современных рабочих процессах на Python.

Классификация изображений Vision Transformer фокусируется на обучении модели присваивать осмысленные метки изображению путем анализа его глобальной структуры, а не только локальных закономерностей. Вместо сканирования небольших областей с помощью фильтров, модель рассматривает весь контекст изображения на каждом слое. Это позволяет ей более эффективно понимать взаимосвязи между удаленными объектами, текстурами и формами.

Основная цель классификации изображений с помощью Vision Transformer — получение единого, достоверного предсказания, отражающего доминирующее содержимое изображения. Это делает его особенно полезным для таких задач, как распознавание объектов, понимание сцен и визуальная категоризация. Используя механизмы внимания, модель может автоматически определять приоритетность наиболее информативных областей изображения.

В общих чертах, процесс начинается с разделения изображения на фрагменты, их сглаживания и проецирования в латентное пространство. Затем эти векторные представления фрагментов обогащаются позиционной информацией, чтобы модель понимала пространственные отношения. Слои кодировщика Transformer уточняют эти представления с помощью самовнимания и нейронных сетей прямого распространения.

На заключительном этапе классификации изображений в Vision Transformer используется классификационный модуль, который сопоставляет изученное представление с предопределенным набором меток. Такая конструкция делает модель модульной и адаптируемой, позволяя разработчикам менять наборы данных, дорабатывать модели или интегрировать их в более крупные конвейеры компьютерного зрения. В результате получается чистая и мощная структура для классификации изображений, которая хорошо согласуется с современными методами глубокого обучения.

Краткая история развития искусственного интеллекта

Путь искусственного интеллекта (ИИ) был долгим и тернистым, от зарождения философских идей до современных технологий, меняющих мир. Эта история полна взлётов и падений, прорывов и разочарований, но в конечном итоге привела нас к эпохе, где ИИ стал неотъемлемой частью нашей повседневной жизни.

Предшествующие события и философские основы (до 1940-х годов):

Рисунок 1: Детальная временная линия развития ИИ с 1940-х годов

Рождение и эволюция искусственного интеллекта

Далее мы кратко осветим историю развития искусственного интеллекта (ИИ), начиная с его зарождения в середине XX века.

Ранние годы (1940-1970-е):

Алан Тьюринг, признанный отцом ИИ, в 1950 году опубликовал статью “Computing Machinery and Intelligence”, в которой он сформулировал знаменитый тест Тьюринга для оценки способности машин к мышлению. В 1956 году состоялась Добыртмутская конференция, официально закрепившая ИИ как самостоятельную научную дисциплину и впервые употребившую термин “Artificial Intelligence”.

Период с 1950 по 1970-е годы, известный как “золотые годы” ИИ, ознаменовался созданием первых программ для игры в шашки (Кристофер Стрейчи, 1951), обучением машин игре в шашки (Артур Сэмюэл, 1956) и появлением языка программирования LISP (Джон МакКарти, 1958). Фрэнк Розенблатт создал первый перцептрон – практическую нейронную сеть, способную обучаться.

Рисунок 2: Ключевые вехи в истории развития ИИ

В это время также были разработаны ранние экспертные системы: DENDRAL для анализа химических соединений (1965) и ELIZA, первый чат-бот, имитирующий психотерапевта (1966).

Первая “зима” ИИ (1970-1980-е):

В 1969 году книга Марвина Мински и Сеймура Паперта “Perceptrons” выявила ограничения простых перцептронов, что привело к сокращению финансирования нейронных сетей. Проблемы также заключались в ограниченных вычислительных ресурсах, недостатке данных и переоценке возможностей ранних методов.

Возрождение: экспертные системы (1980-е):

Коммерческий успех ИИ наступил с появлением R1/XCON – экспертной системы для конфигурации компьютеров DEC, которая экономила миллионы долларов в год.

В этот период развивались системы, основанные на знаниях, логическое программирование (Prolog), а Япония запустила проект “Компьютеры пятого поколения”.

Вторая “зима” ИИ (конец 1980-х – начало 1990-х):

Ограничения экспертных систем, сложность их поддержки и масштабирования, а также провал японского проекта привели к очередному сокращению финансирования.

Возрождение машинного обучения (1990-2000-е):

Новые подходы, такие как обратное распространение ошибки (1986) и метод опорных векторов (SVM, 1995), вновь возродили интерес к ИИ.

В этот период произошли важные события: победа компьютера Deep Blue над чемпионом мира по шахматам Гарри Каспаровым (1997) и появление AlphaGo, который победил чемпиона мира по игре Го Ли Седоля (2016).

Эра больших данных и глубокого обучения:

Благодаря росту вычислительной мощности GPU, доступности больших объемов данных в интернете и социальных сетях, а также усовершенствованию алгоритмов, ИИ совершил стремительный прогресс.

Рисунок 3: Временная линия развития глубокого обучения

Появились архитектуры нейронных сетей, такие как Transformer (2017), которые позволили создать мощные модели обработки естественного языка.

Эра глубокого обучения (2010-е)

В течение 2010-х годов были достигнуты весомые прорывы в области искусственного интеллекта, что стало результатом convergence ряда факторов. К ключевым достижениям относятся:

Рисунок 4: AlexNet как поворотный момент в истории ИИ

Факторы, способствовавшие успехам в области искусственного интеллекта:
Эра больших языковых моделей (2020-е):

BERT (Google, 2018), GPT-2 и GPT-3 (OpenAI) продемонстрировали впечатляющие возможности понимания и генерации текста.

Запуск ChatGPT (OpenAI, 2022) с его 100 миллионами пользователей за 2 месяца ознаменовал начало новой эры взаимодействия человека с ИИ.

Развитие продолжается: Qwen от Alibaba, Claude 2 от Anthropic, LLaMA 2 от Meta, Bard от Google, Midjourney V5 для генерации изображений и GPT-4o с голосом и зрением – это лишь некоторые из последних достижений.

Современное состояние искусственного интеллекта

Области применения:
1. Обработка естественного языка:
2. Компьютерное зрение:
3. Мультимодальные системы:

Модели, такие как Qwen-Omni и GPT-4V, способны анализировать как изображения, так и текст. CLIP обеспечивает связь между изображениями и текстом, а DALL-E 3 генерирует изображения на основе словесных описаний.

Рынок ИИ:
Ключевые уроки истории ИИ:
Современное состояние:

В настоящее время мы находимся в уникальной точке истории, когда ИИ:

История ИИ продолжается, и мы все являемся её свидетелями и участниками. Следующие годы обещают быть не менее захватывающими, чем весь предыдущий путь развития искусственного интеллекта.

Введение в архитектуру Transformer для компьютерного зрения

Трансформаторы представляют собой мощную модель глубокого обучения, которая использует механизм взаимного внимания (self-attention) для определения значимости различных частей входных данных.

Эта архитектура нашла широкое применение в области обработки естественного языка (NLP) и компьютерного зрения (CV).

Подобно рекуррентным нейронным сетям (RNN), трансформеры предназначены для обработки последовательных данных, таких как тексты. Однако, в отличие от RNN, трансформеры обрабатывают всю входную последовательность одновременно, что позволяет им эффективно моделировать долгосрочные зависимости между элементами.

Ключевые преимущества архитектуры Transformer:

В настоящей статье мы сосредоточимся на применении трансформеров в области компьютерного зрения, рассмотрев конкретные примеры и практические задачи.

Эффективность архитектуры трансформеров в задачах обработки естественного языка

Цель нейроязыковых моделей в области обработки естественного языка (NLP) заключается в создании векторных представлений слов (embeddings), которые максимально полно отражают семантическую информацию слова в контексте текста. Важно отметить, что семантика слова не сводится к его определению; многие слова приобретают смысл только в контексте использования.

Пример: В предложении “Трансформеры эффективны, потому что они быстрые” векторное представление слова “они” лишено смысла без учета того, что оно относится к “трансформерам”.

Оптимальные модели должны обладать способностью выявлять зависимости между словами, даже если они разделены значительным расстоянием в тексте. Эта способность кодирования долгосрочных зависимостей является ключевым преимуществом архитектуры трансформеров.

Ограничения рекуррентных нейронных сетей (RNN)

Ранее популярными моделями для обработки текста были рекуррентные нейронные сети (RNN), такие как LSTM (Long Short Term Memory) и GRU (Gated Recurrent Unit). Они способны кодировать богатую семантику слов, обрабатывая текст последовательно и сохраняя “память” всех обработанных токенов.

Рисунок 5: Развёрнутая во времени архитектура RNN

Однако архитектура RNN имеет существенные ограничения:

Несмотря на то, что RNN обладают механизмами “ворот” для управления информацией в памяти, их последовательная природа не позволяет эффективно обрабатывать далекие зависимости между словами.

Ограничения сверточных нейронных сетей (CNN)

Сверточные нейронные сети (CNN) широко используются в задачах компьютерного зрения благодаря своей эффективности и возможности масштабирования при обучении на графических процессорах. Аналогично тому, как двумерные свёртки извлекают признаки из изображений, эти модели применяют одномерные фильтры для обработки текстов, представленных в виде одномерных последовательностей.

Рисунок 6: Общая архитектура свёрточной нейронной сети

Несмотря на свои преимущества, CNN имеют ряд ограничений:

Таким образом, применение CNN для задач, требующих учета долгосрочных зависимостей и адаптации к различным контекстам, может быть ограниченным.

Трансформеры: от машинного перевода к компьютерному зрению

Трансформеры, появившиеся в 2017 году, быстро зарекомендовали себя как эффективный и масштабируемый инструмент для достижения передовых результатов в области машинного перевода. Их успех не ограничился лишь переводом текстов; трансформеры успешно применялись к другим задачам обработки естественного языка (NLP), демонстрируя лидерство в различных бенчмарках, таких как GLUE, SQuAD и SWAG.

Рисунок 7: Общая архитектура Transformer

Ключевыми особенностями архитектуры трансформеров являются:

Обычно трансформеры обучаются в крупных версиях и затем адаптируются для решения конкретных задач. Эта особенность делает их особенно полезными в ситуациях с ограниченным количеством данных. Несмотря на то, что некоторые модели трансформеров насчитывают миллиарды параметров, их производительность, по-видимому, не достигла предела. Наблюдается тенденция: чем больше модель, тем выше ее точность и тем больше новых возможностей она демонстрирует (см. GPT-3).

Успешное применение трансформеров в области обработки языка не гарантировало их эффективность в других областях. Для проверки этой гипотезы был создан Vision Transformer, архитектура которого основывалась на энкодере трансформера с минимальными модификациями. Vision Transformer был затем протестирован на задачах классификации изображений.

Классификация изображений

Задача классификации изображений заключается в определении класса объекта, представленного на входном изображении. В качестве иллюстрации: на схеме ниже прогнозируется класс “Собака” для входного изображения, поскольку оно демонстрирует наивысшую степень достоверности после применения функции softmax.

Процесс классификации изображения включает в себя следующие этапы:

  1. Предобработка: нормализация и изменение размера изображения для обеспечения единообразного представления данных.
  2. Извлечение признаков: преобразование изображения в векторное представление, отражающее его ключевые характеристики.
  3. Классификация: применение обученного классификатора к вектору признаков для получения вероятностей принадлежности изображения к различным классам.
  4. Постобработка: выбор класса с максимальной вероятностью как окончательная классификация изображения.

Архитектуры Vision Transformers (ViT) демонстрируют высокую эффективность в задачах классификации изображений. Обучаясь на обширных наборах данных (более 100 миллионов изображений), ViT достигают сопоставимых с современными сверточными нейронными сетями (CNN, такими как ResNet) результатов при использовании существенно меньших вычислительных ресурсов (в четыре раза меньше). Перенос предварительно обученных моделей ViT на средние и малые тестовые наборы также показывает превосходные результаты в задачах распознавания изображений.

Архитектура Vision Transformer: Подробное описание

Для лучшего понимания архитектуры Vision Transformer (ViT), ее можно разделить на три основных компонента:

Рисунок 8: Детальная архитектура Vision Transformer

Шаг 1: Встраивание изображения в модель

Первый этап обработки входного изображения включает в себя его разделение на участки фиксированного размера (патчи) и последующее линейное преобразование этих участков.

Рисунок 9: Процесс разбиения изображения на патчи и их встраивание

Математическое описание:

где:

Данный процесс осуществляется следующим образом:

Для учета информации о пространственном расположении патчей и сохранения порядка следования, к линейно встроенным векторам патчей добавляется позиционное кодирование.

Кроме того, в модель включается обучаемый токен класса, который используется для агрегации информации.

Зачем необходимо позиционное кодирование?

Архитектура Transformer, используемая в данной модели, не способна запоминать порядок или последовательность входных данных. Перестановка патчей изображения приведет к потере информации о его исходном виде.
Позиционное кодирование позволяет сохранить информацию о пространственном расположении патчей и избежать этой проблемы.

Пример расчета размерностей:

Для иллюстрации, рассмотрим изображение размера 224x224x3:

Итоговая размерность введенных данных будет равна [197, 768], где 196 соответствует количеству патчей, а 1 – токену класса.

Шаг 2: Энкодер трансформера

Архитектура энкодера трансформера аналогична той, что упоминалась в статье «Attention Is All You Need». Он состоит из нескольких стеков одинаковых блоков.

Рисунок 10: Детальная архитектура блока энкодера трансформера

Структура блока энкодера:
Блок энкодера:
├── Layer Normalization
├── Multi-Head Self-Attention
├── Residual Connection
├── Layer Normalization
├── Feed-Forward Network
└── Residual Connection
Многоголовое Внимание (Multi-Head Attention)

Рисунок 11: Механизм Multi-Head Attention

Основным компонентом блока Multi-Head Attention является Scaled Dot-Product Attention:

Attention(Q, K, V) = softmax(QK^T / √d_k)V

где:

Процесс вычисления внимания:
  1. Линейные проекцииQ = XW_QK = XW_KV = XW_V
  2. Скалярное произведениеQK^T
  3. Масштабирование: деление на √d_k
  4. Softmax: нормализация весов внимания
  5. Взвешенная сумма: умножение на значения V
Multi-Head механизм:
MultiHead(Q, K, V) = Concat(head_1, ..., head_h)W^O
где head_i = Attention(QW_i^Q, KW_i^K, VW_i^V)

Масштабированное скалярное произведение внимания применяется h раз (обычно h = 8), чтобы получить h голов внимания. Эти головы внимания объединяются и проходят через плотный слой.

Шаг 3: Голова MLP

Когда у нас есть вектор контекста C, нас интересует только токен контекста c_0 для целей классификации. Этот токен контекста проходит через голову MLP для получения окончательного предсказания.

Структура головы MLP:
MLP Head:
├── Layer Normalization
├── Linear Layer (D → num_classes)
└── Softmax (для вероятностей)
Различия в обучении:

Обучение Vision Transformer

Процесс обучения Vision Transformer разделён на два основных этапа:

1. Предварительное обучение

Рисунок 12: Процесс предварительного обучения и тонкой настройки ViT

Наборы данных для предобучения:
  1. ImageNet-1K (1.3M изображений)
  2. ImageNet-21K (14M изображений)
  3. JFT-300M (300M изображений)
Гиперпараметры предобучения:
Архитектуры моделей:

Модель

Слои

Скрытая размерность

Головы MHA

Параметры

ViT-Base/16

12

768

12

86M

ViT-Large/16

24

1024

16

307M

ViT-Huge/14

32

1280

16

632M

2. Тонкая настройка

После предварительного обучения модели настраиваются на целевых наборах данных:

Гиперпараметры тонкой настройки:

Эксперименты

Ключевые наблюдения:
Результаты на ImageNet:

Модель

Top-1 Accuracy

Параметры

TPU-дни

BiT-L/16

87.5%

928M

9943

Noisy Student

88.4%

480M

ViT-L/16

87.8%

307M

2443

ViT-H/14

88.6%

632M

2500

Преимущества ViT:
  1. Вычислительная эффективность: в 4 раза меньше ресурсов
  2. Масштабируемость: лучшая производительность на больших данных
  3. Универсальность: хорошие результаты на разных задачах
Результаты на VTAB-1k

Vision Transformer показывает отличные результаты на разнообразном наборе задач VTAB-1k (19 задач по 1000 примеров каждая):

Категории задач:
  1. Natural: естественные изображения (CIFAR, Caltech101, DTD, Oxford Flowers, Oxford Pets, SVHN, SUN397)
  2. Specialized: специализированные данные (Camelyon, EuroSAT, Resisc45, Retinopathy)
  3. Structured: структурированные данные (Clevr/count, Clevr/distance, DMLab, KITTI, dSpr/loc, dSpr/ori, SmallNORB/azi, SmallNORB/ele)

Преимущества архитектуры Vision Transformer

Анализ механизма внимания:

Изображение демонстрирует работу механизма Multi-Head Attention в модели Vision Transformer (ViT), где 12 “голов” внимания (Head 1 – Head 12) анализируют изображение.

Ключевые характеристики механизма внимания:

Преимущества ViT по сравнению с сверточными нейронными сетями (CNN):

  1. Глобальное рецептивное поле: в отличие от CNN, у которых рецептивное поле ограничено в начальных слоях, ViT с самого начала имеет доступ ко всей информации изображения.
  2. Адаптивность: ViT динамически определяет важность различных областей изображения, в то время как CNN используют фиксированные фильтры.
  3. Масштабируемость: ViT эффективно масштабируется на большие объемы данных, что представляет собой сложность для CNN.
  4. Интерпретируемость: карты внимания ViT позволяют лучше понять, на какие части изображения модель обращает внимание.

Анализ обученных представлений:

Сравнение Vision Transformers (ViT) и свёрточных нейронных сетей (CNN)

Характеристики

Vision Transformers (ViT)

Свёрточные нейронные сети (CNN)

Извлечение признаков

Использует самовнимание между патчами изображения

Использует свёрточные фильтры для извлечения локальных признаков

Глобальный контекст

Захватывает глобальные связи между патчами в одном слое

Требует глубоких слоёв для построения глобального понимания из локальных признаков

Обработка изображений

Разделяет изображение на неперекрывающиеся патчи

Сканирует изображение с помощью перекрывающихся рецептивных полей (фильтров)

Позиционное кодирование

Требует явного позиционного кодирования для осведомлённости о расположении патчей

Неявно кодирует позицию через свёрточную структуру

Сложность модели

Более высокая вычислительная стоимость из-за механизма внимания

Обычно менее вычислительно затратны чем ViT

Требования к данным

Требует больших наборов данных для хорошей работы

Хорошо работает как на малых, так и на больших наборах данных

Масштабируемость

Высоко масштабируемы с большими наборами данных и моделями

Хорошо масштабируются, но склонны к переобучению на малых данных

Индуктивные смещения

Минимальные индуктивные смещения; изучает связи напрямую из данных

Сильные индуктивные смещения к локальным признакам (края, текстуры)

Производительность на малых данных

Склонны к переобучению на малых наборах данных

Лучше работают на меньших наборах данных благодаря встроенным смещениям

Интерпретируемость

Сложно интерпретировать из-за механизма внимания

Легче интерпретировать через изученные фильтры (например, детекторы краёв)

 

Преимущества и рекомендации по применению Vision Transformers (ViT) и Сверточных Нейронных Сетей (CNN)

Vision Transformers  (ViT) обладают рядом преимуществ:

Сверточные Нейронные Сети (CNN) также обладают своими достоинствами:

Рекомендации по использованию:

ViT следует использовать, когда:
CNN следует использовать, когда:

Ограничения и перспективные направления развития

Текущие ограничения:
Возможные направления развития:

Заключение

В данной работе представлено исследование Vision Transformer (ViT), инновационной архитектуры, основанной на механизме внимания, которая демонстрирует впечатляющие результаты в области компьютерного зрения.

Основные достижения ViT:
Влияние ViT на область компьютерного зрения:

ViT представляет собой парадигмальный сдвиг от использования сверточных операций к механизму внимания, что открывает новые горизонты в разработке алгоритмов компьютерного зрения.

Работа ViT стимулировала множество последующих исследований и разработок новых архитектур, основанных на внимании.

Практическое применение:

ViT уже внедряется в реальные системы, такие как системы распознавания изображений, сегментации объектов и анализа видео.

Междисциплинарный характер ViT:

ViT демонстрирует успешное объединение идей из области обработки естественного языка (NLP) и компьютерного зрения (CV).

Будущие перспективы:

ViT открывает новые возможности для:

В заключение, ViT является значительным прорывом в области компьютерного зрения, демонстрируя эффективность архитектур, основанных на внимании. ViT открывает новые возможности для разработки более эффективных и универсальных систем искусственного интеллекта.

Дополнительно

Практическое руководство по классификации изображений с использованием Vision Transformer на Python.

Этот пошаговый алгоритм демонстрирует, как применять классификацию изображений с помощью Vision Transformer, используя простой и практичный скрипт на Python.

Цель кода — взять одно изображение, правильно его предварительно обработать, пропустить через предварительно обученную модель Vision Transformer и получить понятный результат классификации.

Вместо абстрактной теории, здесь акцент делается на понимании того, как каждая часть кода вносит свой вклад в полный конвейер вывода результатов.

Приведенный код демонстрирует реалистичный сквозной сценарий, с которым часто сталкиваются разработчики при работе с современными моделями компьютерного зрения.

Он начинается с загрузки и подготовки изображения с помощью OpenCV, продолжается инициализацией модели и процессора из библиотеки Transformers и заканчивается визуальным отображением предсказанной метки на самом изображении.

Такой подход помогает преодолеть разрыв между теорией моделей и реальным применением.

В общих чертах, цель кода — это вывод, а не обучение.

Предполагается, что Vision Transformer уже изучил визуальные представления на основе больших наборов данных, и основное внимание уделяется эффективному повторному использованию этих знаний.

Это делает данный учебный материал идеальным для разработчиков, которым нужны быстрые результаты без необходимости управления наборами данных или длительных циклов обучения.

В этом руководстве, с помощью подробного разбора скрипта, объясняется, как классификация изображений Vision Transformer вписывается в типичный рабочий процесс компьютерного зрения на Python.

Каждый шаг разработан таким образом, чтобы быть понятным, модульным и легко адаптируемым для различных изображений или задач классификации.
В результате получается практическая основа, которую можно расширить до более крупных проектов или готовых к внедрению систем. 

Рисунок 14: Классификация изображений Vision Transformer

Ссылка на видеоурок: https://youtu.be/8k6oNjl2EgE

Код для обучающего видео здесь  или здесь

Ссылка на статью для пользователей Medium: https://medium.com/vision-transformers-tutorials/how-to-use-vision-transformer-for-image-classification-fe4d8a197f02

Хотите начать изучать компьютерное зрение или вывести свои навыки на новый уровень?

Отличный интерактивный курс : «Глубокое обучение для обработки изображений с помощью PyTorch» здесь: https://datacamp.pxf.io/zxWxnm

Если вы только начинаете, я рекомендую этот пошаговый курс, разработанный для ознакомления с основами компьютерного зрения —  Полный курс по компьютерному зрению с использованием PyTorch и TensorFlow.

Если у вас уже есть опыт и вы ищете более продвинутые методы, ознакомьтесь с этим углубленным курсом –  Современное компьютерное зрение: GPT, PyTorch, Keras, OpenCV4

Как использовать Vision Transformer для классификации изображений

Классификация изображений с помощью Vision Transformer стала одним из наиболее практичных способов применения моделей трансформеров к реальным задачам компьютерного зрения.

Вместо того чтобы полагаться только на сверточные слои, Vision Transformer разбивает изображение на фрагменты и изучает глобальные взаимосвязи с помощью механизма самовнимания.

Это делает их отличным решением для современных рабочих процессов на Python, где требуются высокие результаты без создания полноценного конвейера обучения.

В этом руководстве мы создадим полноценный, работающий скрипт классификации изображений Vision Transformer.

Вы настроите чистую среду Conda, установите необходимые версии, запустите вывод с помощью предварительно обученной модели ViT от Hugging Face и запишете предсказанную метку обратно на изображение с помощью OpenCV.

В результате вы получите простой конвейер, который сможете использовать для своих собственных изображений и демонстраций.

Больше уроков по Vision Transformer

Настройка среды и установка зависимостей.

Перед запуском кода важна правильная настройка. Этот скрипт установки создает чистую среду Conda, устанавливает совместимую с CUDA сборку PyTorch и закрепляет ключевые библиотеки, используемые в руководстве. Если ваши версии различаются, вы можете столкнуться со странными ошибками во время выполнения, поэтому согласованность этого раздела сэкономит время.

После этого ваша среда будет готова к запуску классификации изображений Vision Transformer точно так же, как описано в руководстве.

Если вы используете другую версию CUDA, отличную от 12.4, следите за тем, чтобы версии PyTorch соответствовали вашей системе, чтобы избежать проблем с установкой.

Основы и вспомогательные понятия

Литература

  1. Dosovitskiy, A., et al. (2020). An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale. arXiv preprint arXiv:2010.11929.
  2. Vaswani, A., et al. (2017). Attention is All You Need. Advances in Neural Information Processing Systems, 30.
  3. He, K., et al. (2016). Deep Residual Learning for Image Recognition. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.
  4. Devlin, J., et al. (2018). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv preprint arXiv:1810.04805.
  5. Kolesnikov, A., et al. (2020). Big Transfer (BiT): General Visual Representation Learning. European Conference on Computer Vision.
Exit mobile version