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