Запуск с сетями GAN для преобразования изображений в изображения

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

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

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

Выбор GAN

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

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

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

  • Неконтролируемые GAN не имеют взаимно-однозначного отображения между изображениями в исходных и целевых областях. Для получения примера смотрите Unsupervised Day-To-Dusk Изображения Перевод с использованием МОДУЛЯ. В этом примере исходные и целевые области состоят из изображений, захваченных в дневном и сумеречном условиях, соответственно. Однако содержимое сцены дневных и сумеречных изображений отличается, поэтому дневные изображения не имеют соответствующего сумеречного изображения с идентичным содержимым сцены.

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

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

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

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

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

Сеть генераторов CycleGAN [4]

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

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

Сеть генератора UNIT [4]

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

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

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

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

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

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

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

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

Обучите сеть GAN

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

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

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

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

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

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

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

  • Задайте опции обучения, такие как тип решателя и количество эпох. Для получения дополнительной информации смотрите Задать опции обучения в Пользовательском цикле обучения (Deep Learning Toolbox).

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

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

Ссылки

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

[2] Zhu, Jun-Yan, Taesung Park, Phillip Isola, and Alexei A. Efros. «Непарная трансляция изображения в изображение с использованием циклически согласованных состязательных сетей». В 2017 году IEEE International Conference on Компьютерное Зрение (ICCV), 2242-2251. Венеция: IEEE, 2017. https://ieeexplore.ieee.org/document/8237506.

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

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

См. также

| | | | | |

Похожие примеры

Подробнее о