Пишите впереди:
Эту статью яму копал давно.Проект закончился 7 месяцев назад, но я не собираюсь разбираться в коде.Позже выяснилось,что команда с такой же идеей написала ее как бумагу,чтобы занять дыра, и еще меньше было мотивации ее писать. Вчера вечером я узнал, что у моего проекта на гитхабе действительно есть звезды, я почувствовал большую поддержку, и у меня внезапно загорелась мотивация писать статьи, поэтому у меня есть эта статья.
Введение в СРГАН
SRGAN, широко известная статья о сверхвысоком разрешении в CVPR в 2017 году, вывела эффект сверхвысокого разрешения на новый уровень, а EDSR, победитель конкурса сверхвысокого разрешения NTIRE 2017 года, также был основан на варианте SRGAN.
SRGAN обучается на основе метода GAN.Есть генератор и дискриминатор.Основной корпус дискриминатора использует VGG19.Генератор представляет собой серию соединений Residual block.При этом сзади также добавлен субпиксельный модуль модели, заимствованной у Ши и др.Subpixel NetworkИдея [6] заключается в увеличении разрешения изображения в последнем сетевом слое, что улучшает разрешение и снижает потребление вычислительных ресурсов. Для подробного ознакомления рекомендуется непосредственно прочитать статью [1]. В Интернете также есть несколько интерпретирующих статей. Здесь мы непосредственно представим некоторые инновационные детали реализации.
Проблемы с GAN
Проблема с традиционными GAN заключается в том, что вы не можете знать, когда прекратить обучение Генератора и когда прекратить обучение Дискриминатора.Если вы переобучите Дискриминатор, Генератор не сможет обучаться, и наоборот, это приведет к плохой производительности модели. Если есть индикатор потерь, отражающий тренировочную ситуацию, сложность тренировки будет значительно снижена. WGAN [3], предложенная в 2017 году, является важным методом решения этой проблемы.
WGAN используетрасстояние Вассерштейна для описания степени различия между распределениями двух наборов данных.Пока модель преобразована в форму WGAN, степень обучения модели можно отслеживать в соответствии с уникальной потерей. Для объяснения WGAN настоятельно рекомендуется прочитать эту статью:Удивительный Вассерштейн ГАНАвтор вводит Wgan на очень простой языке.
СРГАН в сочетании с РГАН
Потрясающее исполнение SRGAN от
@донхаостороны, он также является одним из авторов тензорного слоя, и его повторный проект находится в разработке.githubЯ получил на нем много звезд, и код автора расширен на его основе.Во-первых, я очень благодарен автору за открытый исходный код.· Последний слой дискриминатора удаляет сигмовидную
Потеря генератора и дискриминатора не лог.
обрезать абсолютные значения параметров дискриминатора не более чем до фиксированной константы c после каждого обновления параметров дискриминатора
Не используйте алгоритмы оптимизации, основанные на моментуме (включая импульс и Адама), рекомендуется RMSProp, также подойдет SGD.
-- от "Удивительный Вассерштейн ГАН》
Согласно введению этой статьи, в код вносятся четыре вышеуказанные модификации, а метод обучения GAN преобразуется в WGAN, а снижение потерь можно отслеживать в тензорной доске. Поэтому автор внес некоторые изменения в исходный проект:
- Код модели был преобразован из приведенного выше WGAN;
- Добавлен Tensorboard для отслеживания падения потерь;
- В авторской model.py ядро свертки последнего слоя Генератора изменено с 1×1 на 9×9, что является структурой, предложенной в исходной статье.
Полный код SRGAN With Wasserstein GAN был открыт на github автора:SRGAN_Wasserstein , есть подробные сведения об изменениях и инструкции по использованию. Зная, что писать код непросто (на 10 человек меньше, если вы пишете код...), поэтому, пожалуйста, перейдите прямо на github, чтобы проверить, если вы считаете, что это хорошо, дайте это звезда!
Ниже приведены некоторые эффекты восстановления суперсчета после воспроизведения:
Вопрос от индустрии
При фактическом производстве и использовании изображения с низким разрешением, с которыми сталкиваются, не обязательно имеют формат PNG (изображения, сжатые без потерь, имеют лучший эффект восстановления) и будут иметь различную степень искажения (артефакты, вызванные сжатием с потерями).Я пробовал много алгоритмов, такие как SRGAN, EDSR, RAISR, Fast Neural Style и т. д. В настоящее время ни один алгоритм суперразрешения для изображений такого типа не может улучшить разрешение при устранении искажений.
@донхаопроекта СРГАНissueЭто также обсуждалось в , и этот вопрос также поднимался в Zhihu:Является ли метод сверхвысокого разрешения SRGAN менее эффективным для восстановления изображения jpg с низким разрешением, чем png с низким разрешением?, к сожалению, нет хорошего ответа. В настоящее время кажется, что в академическом мире нет хорошего алгоритма.Вы можете обсудить его в области комментариев или на github.использованная литература
[1] [1609.04802] Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network
[2] [1609.07009] Is the deconvolution layer the same as a convolutional layer?
[3] [1701.07875] Wasserstein GAN
[4] Удивительный Вассерштейн ГАН