Введение

Изначально мы планировали сделать размытие изображения лица с помощью модели GANS. Однако мы поняли, что модель GANS устарела и доступны другие современные методы. Профессор посоветовал нам искать другие модели, поскольку производительность GANS плохая. Модель MAXIM была предложена к.т.н. Студент, поскольку он не дискриминирует определенные лица, а также его отличные характеристики.

Мотивация

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

Первоначально мы намеревались сделать проект, вдохновленный этой статьей, для сверхвысокого разрешения.



Что очаровало нас в генеративных моделях?

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

Некоторые приложения генеративных моделей:

  1. Изобретение алгоритма. Одним из применений генеративных моделей является помощь исследователям в изобретении новых алгоритмов машинного обучения. До сих пор этот процесс выполнялся в основном вручную, но с помощью генеративных моделей его можно автоматизировать.
  2. Увеличение данных: увеличение данных — это метод, используемый в машинном обучении для улучшения качества данных. Он состоит в искусственном дополнении набора данных дополнительными данными, которые аналогичны исходному набору данных, но которые ранее не встречались. Это часто используется в глубоком обучении для повышения производительности нейронных сетей.
  3. Генерация текста: Генерация текста — это процесс автоматического создания текстовых документов. Генераторы текста AI можно использовать для создания резюме статей, описания продуктов или написания сообщений в блогах.
  4. Креативное задавание вопросов (CQA): это форма машинного обучения, цель которой состоит не в том, чтобы отвечать на вопросы, а в том, чтобы творчески задавать их и улучшать будущие поколения, включая предыдущие ответы в последующие поколения. Например, используйте Smart Reply в Gmail, чтобы генерировать лучшие предложения автозаполнения.
  5. Генерация изображений. Еще одним применением генеративных моделей является создание изображений. Это можно использовать для создания новых изображений в исследовательских целях или для создания реалистичных изображений, которые можно использовать в приложениях компьютерной графики.

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

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

Модель GAN: генеративно-состязательные сети

Две нейронные сети, образующие модель GAN, называются генератором и дискриминатором. Descrimonator берет данные реального мира, такие как изображения реального мира, и классифицирует их, является ли это реальным изображением или изображением, сгенерированным сетью генераторов GAN.

Дискриминатор:

Дискриминатор GAN — это классификатор.

  • Он различает реальные данные и данные, сгенерированные генератором GAN.
  • Дискриминатор обучается на двух типах данных. Первый — это данные реального мира, такие как изображения реального мира.
  • Второй — артефакты, создаваемые генератором. Они используются в качестве наземных меток правды о том, как выглядит «поддельный» артефакт.

Процесс обучения дискриминатора работает следующим образом:

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

Генератор:

  • Генераторная часть GAN учится использовать обратную связь дискриминатора для создания поддельных данных.
  • Его цель — заставить дискриминатор классифицировать свой фальшивый вывод как настоящий.
  • Обратное распространение выполняется через сети дискриминатора и генератора для получения градиентов.
  • Эти градиенты используются только для настройки весов генератора, чтобы сгенерированный контент с большей вероятностью обманул дискриминатор в следующий раз.

Проблемы с ГАН

Многие модели GAN страдают следующими основными проблемами:

  • Несходимость: параметры модели дестабилизируются и никогда не сходятся
  • Коллапс режима: генератор коллапсирует, что приводит к ограниченному количеству выборок.
  • Уменьшенный градиент: дискриминатор становится слишком успешным, чтобы градиент генератора исчезал и ничего не узнавал
  • Дисбаланс между генератором и дискриминатором приводит к переоснащению
  • Высокая чувствительность к выбору гиперпараметров

Введение в MAXIM

Были предприняты новые инициативы по моделям Transformers и Multi-layer perceptron (MLP), которые обеспечивают новые сетевые архитектурные решения для задач компьютерного зрения. Хотя эти модели оказались эффективными во многих задачах зрения, таких как распознавание изображений, остаются проблемы с их адаптацией для низкоуровневого зрения. Отсутствие гибкости для поддержки изображений с высоким разрешением и ограниченность местного внимания, пожалуй, являются основными узкими местами.

MAXIM — это многоосевая архитектура на основе MLP, которая может служить эффективной и гибкой основой машинного зрения общего назначения для задач обработки изображений. MAXIM использует иерархическую структуру в форме UNet и поддерживает взаимодействия на большом расстоянии, обеспечиваемые пространственно закрытыми MLP. В частности, MAXIM содержит два строительных блока на основе MLP: MLP с многоосевым стробированием, который позволяет эффективно и масштабируемо пространственно смешивать локальные и глобальные визуальные сигналы, и блок cross-gate, альтернативу перекрестному вниманию, который учитывает перекрестное внимание. -кондиционирование признаков. Оба этих модуля основаны исключительно на MLP, но также имеют преимущество в том, что они являются глобальными и «полностью сверточными» — два свойства, которые желательны для обработки изображений. Предлагаемая модель MAXIM обеспечивает самую современную производительность по более чем десяти эталонным тестам в различных задачах обработки изображений, включая шумоподавление, удаление размытия, устранение мутности и улучшение, при этом требуется меньшее или сравнимое количество параметров и FLOP, чем у конкурирующих моделей. .

Архитектура MAXIM представлена ​​ниже:

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

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

Верхний показывает примеры из GoPro, а нижний — из HIDE.

Результаты и анализ

-› После запуска модели мы увидели, что изображение размером 50x50 пикселей было увеличено до 256x256 пикселей.

-> Модель смогла произвести следующий вывод:

-› Мы видим, что улучшение невелико, однако мы видим, что второе изображение менее пикселизировано, чем первое.

Обсуждение (подводные камни/пробелы)

  • Когда мы попытались изменить параметры пикселей с 256 на 512, но похоже, что предварительно обученная модель работает только для 256 пикселей, поскольку она выдавала ошибку Keras с несколькими ядрами. Мы можем поработать над внесением этого изменения в базовую предварительно обученную модель и посмотреть, даст ли она улучшенные изображения.
  • Исходная модель на основе JAX говорит о различных метриках изображения, таких как PSNR и SSIM, которые мы не рассчитывали. Мы можем реализовать это, чтобы количественно увидеть разницу между входным и предсказанным изображением.
  • Трудно отлаживать код, где задействована обработка изображений, так как операторы printf() не будут работать везде.

Будущие работы

  • Хотя это современная модель, мы можем работать с изображениями разных размеров, такими как 520x520 пикселей, даже 720x720 пикселей, если мы сможем получить доступ к премиальным графическим процессорам.
  • Существует много возможностей для улучшения предварительной обработки данных.
  • В настоящее время мы продемонстрировали модель только на дополненных изображениях. Однако мы можем использовать различные типы обработки изображений, такие как шкала серого, нормализация и стандартизация изображения.
  • Помимо различных типов обработки изображений, мы можем работать с другими библиотеками Python, такими как OpenCV и scikit-image.

Ссылки на репозиторий GitHub:

Справочная работа:

Соавторы: Манви Махаджан, Санджо Шаджу, Амрит Прадхан, Алекс Ю,

Пурва Тивари, Йилинь (Пол) Вэнь