exponenta event banner

Начало работы с GAN для преобразования образа в образ

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

Перевод изображения в изображение - это задача переноса стилей и характеристик из одной области изображения в другую. Исходный домен является доменом начального образа. Целевой домен является требуемым доменом после преобразования. Приложения трансляции доменов для трех областей образов образцов включают в себя:

ПриложениеИсходный доменКонечный домен
Преобразование стиля «день-сумерки»Изображения, полученные в дневное времяИзображения, полученные в сумерках
Обличение изображенияИзображения с искажением шумаИзображения без видимого шума
СверхразрешениеИзображения с низким разрешениемИзображения с высоким разрешением

Выбор GAN

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

Тип GAN зависит от данных обучения.

  • Контролируемые GAN имеют сопоставление один к одному между образами в исходном и целевом доменах. Пример см. в разделе Создание изображения на основе карты сегментации с помощью глубокого обучения (панель инструментов компьютерного зрения). В этом примере исходный домен состоит из изображений уличных сцен. Целевая область состоит из категориальных изображений, представляющих семантические карты сегментации. Набор данных обеспечивает базовую карту сегментации истинности для каждого входного обучающего изображения.

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

Создание сетей GAN

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

СетьФункции создания и модификации
pix2pixHD генераторная сеть [1]

pix2pixHD GAN выполняет контролируемое обучение. Сеть состоит из одного генератора и одного дискриминатора.

Создание сети генератора pix2pixHD с помощью pix2pixHDGlobalGenerator. Добавление локального усилителя в сеть pix2pixHD с помощью addPix2PixHDLocalEnhancer функция.

Генераторная сеть CycleGAN [4]

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

Создание сети генератора CycleGAN с помощью cycleGANGenerator функция.

Генераторная сеть БЛОКА [4]

GAN без контроля преобразования изображения в изображение (UNIT) выполняет без контроля обучение. Сеть состоит из одного генератора и двух дискриминаторов. Генератор принимает изображения в обеих областях, A и B. Генератор возвращает четыре выходных изображения: два преобразованных изображения (A-to-B и B-to-A), и два самостоятельно реконструированных изображения (A-to-A и B-to-B). Первый дискриминатор берет вещественное и сгенерированное изображение из области А и возвращает вероятность того, что изображение является реальным. Аналогично, второй дискриминатор принимает действительное и сгенерированное изображение из области В и возвращает вероятность того, что изображение является действительным.

Создание сети генератора UNIT с помощью unitGenerator функция. Выполните преобразование изображения в изображение в обученной сети UNIT с помощью unitPredict функция.

сеть дискриминатора PatchGAN [3]

Сеть дискриминатора PatchGAN может служить сетью дискриминатора для GAN pix2pixHD, CycleGAN и UNIT, а также пользовательских GAN.

Создание сети дискриминатора PatchGAN с помощью patchGANDiscriminator функция. Дискриминатор решает на уровне патча, является ли изображение реальным или поддельным. При работе с исправлением вместо пикселей PatchGAN фокусируется на общем стиле ввода, а не на определенном содержимом.

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

Некоторые сети требуют дополнительных изменений, помимо опций, доступных в функциях создания сети. Например, может потребоваться заменить дополнительные слои слоями конкатенации глубины, или начальный слой ReLU в сети UNIT должен иметь масштабный коэффициент, отличный от 0,2. Для уточнения существующей сети GAN можно использовать Deep Network Designer (Deep Learning Toolbox). Дополнительные сведения см. в разделе Создание сетей с помощью Deep Network Designer (инструментарий для глубокого обучения).

Если требуется сеть, недоступная с помощью встроенных функций создания, можно создать пользовательские сети GAN из модульных компонентов. Сначала создайте модули кодера и декодера, а затем объедините модули с помощью encoderDecoderNetwork функция. В конце сети можно дополнительно включить мостовое соединение, пропускать соединения или дополнительные слои. Дополнительные сведения см. в разделе Создание модульных нейронных сетей.

Сеть GAN поезда

Для обучения генераторов GAN и дискриминаторов необходимо использовать пользовательский обучающий цикл. При подготовке пользовательского цикла обучения требуется выполнить несколько шагов. Пример, показывающий весь рабочий процесс, см. в разделе Обучающая генеративная состязательная сеть (GAN) (Deep Learning Toolbox).

  • Создайте генераторную и дискриминаторную сети.

  • Создайте одно или несколько хранилищ данных для чтения, предварительной обработки и дополнения учебных данных. Дополнительные сведения см. в разделе Хранилища данных для глубокого обучения (панель инструментов глубокого обучения). Затем создайте minibatchqueue Объект (Deep Learning Toolbox) для каждого хранилища данных, который управляет мини-пакетами наблюдений в индивидуальном цикле обучения.

  • Определите функцию градиентов модели для каждой сети. Функция принимает за вход сеть и мини-пакет входных данных и возвращает градиенты потерь. Дополнительно можно передать дополнительные аргументы функции градиентов (например, если функция потерь требует дополнительной информации) или вернуть дополнительные аргументы (например, значения потерь). Дополнительные сведения см. в разделе Определение функции градиентов модели для пользовательского цикла обучения (панель инструментов глубокого обучения).

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

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

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

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

  • Создайте индивидуальный цикл обучения, который будет циклически переходить через мини-пакеты в каждую эпоху. Цикл считывает каждый мини-пакет данных, оценивает градиенты модели с помощью dlfeval (Deep Learning Toolbox) и обновляет параметры сети.

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

Ссылки

[1] Ван, Тин-Чунь, Мин-Ю Лю, Цзюнь-Янь Чжу, Эндрю Тао, Ян Каутц и Брайан Катандзаро. «Синтез изображений высокого разрешения и семантическая манипуляция с условными GAN». В 2018 году Конференция IEEE/CVF по компьютерному зрению и распознаванию образов, 8798-8807. Солт-Лейк-Сити, УТ, США: IEEE, 2018. https://doi.org/10.1109/CVPR.2018.00917.

[2] Чжу, Цзюнь-Янь, парк Тэсунг, Филлип Изола и Алексей А. Эфрос. «Непарный перевод образа в образ с использованием совместимых с циклом состязательных сетей». В 2017 году Международная конференция IEEE по компьютерному зрению (ICCV), 2242-2251. Венеция: IEEE, 2017. https://ieeexplore.ieee.org/document/8237506.

[3] Изола, Филлип, Цзюнь-Янь Чжу, Тинхуй Чжоу и Алексей А. Эфрос. «Преобразование образа в образ с помощью условных состязательных сетей». В 2017 году Конференция IEEE по компьютерному зрению и распознаванию образов (CVPR), 5967-76. Гонолулу, HI: IEEE, 2017. https://arxiv.org/abs/1611.07004.

[4] Лю, Мин-Ю, Томас Бреуэль и Ян Каутц. «Неподконтрольные сети преобразования изображений в изображения». Достижения в системах обработки нейронной информации 30 (NIPS 2017). Лонг-Бич, Калифорния: 2017. https://arxiv.org/abs/1703.00848.

См. также

| | | | | |

Связанные примеры

Подробнее