Область изображения - это набор изображений с аналогичными характеристиками. Например, область изображения может представлять собой группу изображений, полученных в определенных условиях освещения, или изображений с общим набором искажений шума.
Перевод изображения в изображение - это задача переноса стилей и характеристик из одной области изображения в другую. Исходный домен является доменом начального образа. Целевой домен является требуемым доменом после преобразования. Приложения трансляции доменов для трех областей образов образцов включают в себя:
| Приложение | Исходный домен | Конечный домен |
|---|---|---|
| Преобразование стиля «день-сумерки» | Изображения, полученные в дневное время | Изображения, полученные в сумерках |
| Обличение изображения | Изображения с искажением шума | Изображения без видимого шума |
| Сверхразрешение | Изображения с низким разрешением | Изображения с высоким разрешением |
Трансляцию «изображение-изображение» можно выполнять, используя генеративные состязательные сети глубокого обучения (GAN). GAN состоит из генераторной сети и одной или более дискриминаторных сетей, которые обучаются одновременно для максимизации общей производительности. Целью генераторной сети является создание реалистичных изображений в преобразованной области, которые нельзя отличить от изображений в исходной области. Целью дискриминаторных сетей является правильная классификация исходных обучающих данных как реальных и синтезированных генератором изображений как поддельных.
Тип GAN зависит от данных обучения.
Контролируемые GAN имеют сопоставление один к одному между образами в исходном и целевом доменах. Пример см. в разделе Создание изображения на основе карты сегментации с помощью глубокого обучения (панель инструментов компьютерного зрения). В этом примере исходный домен состоит из изображений уличных сцен. Целевая область состоит из категориальных изображений, представляющих семантические карты сегментации. Набор данных обеспечивает базовую карту сегментации истинности для каждого входного обучающего изображения.
Неуправляемые GAN не имеют сопоставления один к одному между образами в исходном и целевом доменах. Пример см. в разделе Перевод изображений в сумерки без присмотра с помощью UNIT. В этом примере исходный и целевой домены состоят из изображений, захваченных в дневные и сумерки, соответственно. Однако содержание сцены дневных и сумерковых изображений отличается, поэтому дневные изображения не имеют соответствующего изображения сумерков с идентичным содержанием сцены.
Toolbox™ обработки изображений предлагает функции, позволяющие создавать популярные сети GAN. При необходимости можно изменить сети путем изменения таких свойств, как количество операций понижающей дискретизации и тип активации и нормализации. В таблице описаны функции, позволяющие создавать и изменять сети GAN.
| Сеть | Функции создания и модификации |
|---|---|
| pix2pixHD генераторная сеть [1] | pix2pixHD GAN выполняет контролируемое обучение. Сеть состоит из одного генератора и одного дискриминатора. Создание сети генератора pix2pixHD с помощью |
| Генераторная сеть CycleGAN [4] | Сеть CycleGAN выполняет неконтролируемое обучение. Сеть состоит из двух генераторов и двух дискриминаторов. Первый генератор принимает изображения из области А и генерирует изображения в области В. Соответствующий дискриминатор принимает изображения, сгенерированные первым генератором, и реальные изображения в области В, и пытается правильно классифицировать изображения как реальные и поддельные. И наоборот, второй генератор принимает изображения из области В и генерирует изображения в области А. Соответствующий дискриминатор принимает изображения, сгенерированные вторым генератором, и реальные изображения в области А и пытается правильно классифицировать изображения как фальшивые и реальные. Создание сети генератора CycleGAN с помощью |
| Генераторная сеть БЛОКА [4] | GAN без контроля преобразования изображения в изображение (UNIT) выполняет без контроля обучение. Сеть состоит из одного генератора и двух дискриминаторов. Генератор принимает изображения в обеих областях, A и B. Генератор возвращает четыре выходных изображения: два преобразованных изображения (A-to-B и B-to-A), и два самостоятельно реконструированных изображения (A-to-A и B-to-B). Первый дискриминатор берет вещественное и сгенерированное изображение из области А и возвращает вероятность того, что изображение является реальным. Аналогично, второй дискриминатор принимает действительное и сгенерированное изображение из области В и возвращает вероятность того, что изображение является действительным. Создание сети генератора UNIT с помощью |
| сеть дискриминатора PatchGAN [3] | Сеть дискриминатора PatchGAN может служить сетью дискриминатора для GAN pix2pixHD, CycleGAN и UNIT, а также пользовательских GAN. Создание сети дискриминатора PatchGAN с помощью Вы также можете использовать |
Некоторые сети требуют дополнительных изменений, помимо опций, доступных в функциях создания сети. Например, может потребоваться заменить дополнительные слои слоями конкатенации глубины, или начальный слой ReLU в сети UNIT должен иметь масштабный коэффициент, отличный от 0,2. Для уточнения существующей сети GAN можно использовать Deep Network Designer (Deep Learning Toolbox). Дополнительные сведения см. в разделе Создание сетей с помощью Deep Network Designer (инструментарий для глубокого обучения).
Если требуется сеть, недоступная с помощью встроенных функций создания, можно создать пользовательские сети GAN из модульных компонентов. Сначала создайте модули кодера и декодера, а затем объедините модули с помощью encoderDecoderNetwork функция. В конце сети можно дополнительно включить мостовое соединение, пропускать соединения или дополнительные слои. Дополнительные сведения см. в разделе Создание модульных нейронных сетей.
Для обучения генераторов GAN и дискриминаторов необходимо использовать пользовательский обучающий цикл. При подготовке пользовательского цикла обучения требуется выполнить несколько шагов. Пример, показывающий весь рабочий процесс, см. в разделе Обучающая генеративная состязательная сеть (GAN) (Deep Learning Toolbox).
Создайте генераторную и дискриминаторную сети.
Создайте одно или несколько хранилищ данных для чтения, предварительной обработки и дополнения учебных данных. Дополнительные сведения см. в разделе Хранилища данных для глубокого обучения (панель инструментов глубокого обучения). Затем создайте minibatchqueue Объект (Deep Learning Toolbox) для каждого хранилища данных, который управляет мини-пакетами наблюдений в индивидуальном цикле обучения.
Определите функцию градиентов модели для каждой сети. Функция принимает за вход сеть и мини-пакет входных данных и возвращает градиенты потерь. Дополнительно можно передать дополнительные аргументы функции градиентов (например, если функция потерь требует дополнительной информации) или вернуть дополнительные аргументы (например, значения потерь). Дополнительные сведения см. в разделе Определение функции градиентов модели для пользовательского цикла обучения (панель инструментов глубокого обучения).
Определите функции потерь. Некоторые типы функций потери обычно используются для приложений преобразования изображения в изображение, хотя реализация каждой потери может варьироваться.
Состязательные потери обычно используются генераторными и дискриминаторными сетями. Эта потеря зависит от пиксельной или разностной разницы между правильной классификацией и предсказанной классификацией дискриминатором.
Потеря целостности цикла обычно используется неконтролируемыми сетями генераторов. Эта потеря основана на принципе, что изображение, переведенное из одного домена в другой, затем обратно в исходный домен, должно быть идентичным исходному изображению.
Укажите такие параметры обучения, как тип решателя и количество периодов. Дополнительные сведения см. в разделе Определение параметров обучения в настраиваемом цикле обучения (панель инструментов глубокого обучения).
Создайте индивидуальный цикл обучения, который будет циклически переходить через мини-пакеты в каждую эпоху. Цикл считывает каждый мини-пакет данных, оценивает градиенты модели с помощью dlfeval (Deep Learning Toolbox) и обновляет параметры сети.
Дополнительно можно включить функции отображения, такие как графики оценок или пакеты созданных изображений, которые позволяют контролировать ход обучения. Дополнительные сведения см. в разделе Мониторинг хода обучения GAN и определение режимов общих сбоев (инструментарий глубокого обучения).
[1]
[2]
[3]
[4]
blockedNetwork | cycleGANGenerator | encoderDecoderNetwork | patchGANDiscriminator | pix2pixHDGlobalGenerator | pretrainedEncoderNetwork | unitGenerator