Задача трансляции изображений — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Pix2Pix)
(Pix2Pix)
Строка 44: Строка 44:
  
 
=== Архитектура ===
 
=== Архитектура ===
 +
 +
[[File:Training_CGAN_pix2pix.png|400px|right|thumb|Пример процесса обучения генератора и дискриминатора для Pix2Pix.]]
  
 
Pix2Pix реализует архитектуру условных порождающих состязательных сетей (англ. CGAN), где для генератора взята U-Net<ref>[https://sci-hub.do/10.1007/978-3-319-24574-4_28 U-Net: Convolutional Networks for Biomedical Image Segmentation]</ref>-основанная архитектура, а для дискриминатора используется сверточный классификатор PatchGAN<ref>[https://sci-hub.do/10.1007/978-3-319-46487-9_43 Precomputed Real-Time Texture Synthesis with Markovian Generative Adversarial Networks]</ref>, который штрафует структуру только в масштабе участков изображения.
 
Pix2Pix реализует архитектуру условных порождающих состязательных сетей (англ. CGAN), где для генератора взята U-Net<ref>[https://sci-hub.do/10.1007/978-3-319-24574-4_28 U-Net: Convolutional Networks for Biomedical Image Segmentation]</ref>-основанная архитектура, а для дискриминатора используется сверточный классификатор PatchGAN<ref>[https://sci-hub.do/10.1007/978-3-319-46487-9_43 Precomputed Real-Time Texture Synthesis with Markovian Generative Adversarial Networks]</ref>, который штрафует структуру только в масштабе участков изображения.
Строка 52: Строка 54:
 
Генератор обучается с целью, чтобы его выходящие изображения максимально правдоподобными, дискриминатор же учится как можно лучше отличать фальшивые изображения от реальных.
 
Генератор обучается с целью, чтобы его выходящие изображения максимально правдоподобными, дискриминатор же учится как можно лучше отличать фальшивые изображения от реальных.
  
[[File:Training_CGAN_pix2pix.png|700px|center|thumb|Пример процесса обучения генератора и дискриминатора для Pix2Pix.]]
+
 
  
 
=== Примеры ===
 
=== Примеры ===

Версия 19:29, 9 января 2021

Эта статья находится в разработке!


Определение:
Задача трансляции изображения (англ. Image-to-image translation) — это область задач компьютерного зрения, цель которой состоит в том, чтобы научиться строить соответствия между входным и выходным изображениями, используя тренировочные данные.

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

Пример работы трансляции изображения: превращение лошади в зебру, и наоборот. (CycleGan)[1]

Описание задачи

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

Виды тренировочных данных для задачи трансляции изображений.

Обучение на парах изображений

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

Примерами приложения являются следующие трансляции изображений:

  • черно-белое изображение — цветное
  • сегментация изображения (англ. segmentation map) — реальная картинка
  • линии-края (англ. edges) — фотография
  • генерация разных поз и одежды на человеке
  • описывающий изображение текст — фотография
Примеры применения задачи трансляции изображения с парными тренировочными данными. (Pix2Pix)[2]

Обучение на независимых множествах

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

Пример:

  • тренировочные данные — два множества: {реальные фотографии}, {картины К.Моне}
  • приложение — взяли любую фотографию, например, поле с цветами; получили поле с цветами в стиле К.Моне.
Примеры применения задачи трансляции изображения с непарными тренировочными данными. (CycleGan)[1]

Pix2Pix

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

Архитектура

Пример процесса обучения генератора и дискриминатора для Pix2Pix.

Pix2Pix реализует архитектуру условных порождающих состязательных сетей (англ. CGAN), где для генератора взята U-Net[3]-основанная архитектура, а для дискриминатора используется сверточный классификатор PatchGAN[4], который штрафует структуру только в масштабе участков изображения.

Генератор CGAN'a работает следующим образом: на вход подается one-hot вектор класса x и вектор шума z, в результате прохода через условный генератор выдается сгенерированное изображение этого класса, [math]G: \{x,z\} \to y[/math].
В генератор Pix2Pix работает похожим образом, но вместо вектора класса подается изображение, а вектор шума и вовсе убирается, потому что он не вносит значительной случайности для результата работы генератора.

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


Примеры

Pix2PixHD

См. также

Примечания

Источники информации