Я возился со StyleGAN последние пару недель, и результаты были действительно странными и крутыми. Просто поразительно, насколько далеко за последние несколько лет GAN добились прогресса.

Человек, купивший этот ужасный портрет с кляксой в прошлом году за 432 тысячи долларов, возможно, бросил вызов, потому что теперь GAN могут создавать потрясающие реалистичные и красивые фотографии.



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



Я говорю «прилично», потому что, к сожалению, все еще требуется немало часов и долларов на обучение, чтобы получить хоть какие-то реалистичные результаты, которых добилась команда NVidia.

По мере того, как будут сделаны новые открытия, я уверен, что требования к обучению / вычислениям будут снижаться, но сейчас плебеи, подобные мне, все еще застревают в создании изображений искусства или ландшафтов с низким разрешением. Это сам по себе огромный шаг, так как я, по крайней мере, теперь могу создавать фотографии низкого качества по сравнению с каплями, которые вы получали с DCGAN пару лет назад.

Я искал способы повысить качество результатов GAN, и у меня появилась идея.

Идея

Благодаря замечательному курсу fastai, который преподает Джереми Ховард, год назад я наткнулся на классную технику: https://arxiv.org/abs/1603.08155

Основная идея заключалась в том, чтобы использовать потерю восприятия для преобразования характеристик изображения в другое изображение, и все это без использования GAN. Используя это, я смог раскрасить черно-белые фотографии.



Перенесемся в сегодняшний день, когда я создавал эти размытые фотографии из StyleGAN, я задавался вопросом, действительно ли я могу использовать эту технику для улучшения качества конечного результата. Итак, обучите модель преобразовывать фотографии низкого качества в фотографии высокого качества и используйте это в моих результатах, сгенерированных GAN.

Вот как был поставлен эксперимент.

  • Используйте предварительно обученную модель StyleGAN для обучения вашей собственной модели на определенном наборе изображений. Вы можете начать с кода NVidia StyleGAN и одной из их предварительно обученных моделей: https://github.com/NVlabs/stylegan

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

  • После того, как вы закончите обучение, сгенерируйте и сохраните несколько случайных выборок из вашей окончательной модели.
  • Создайте модель сверхвысокого разрешения на основе того же набора данных. Для этого у нас будет исходный набор данных, который будет нашими исходными данными, и целевой набор данных с преобразованными изображениями. Для этого упражнения это может быть так же просто, как повторное сохранение исходных изображений до меньшего размера с более низким качеством. Затем вы можете создать модель, которая попытается восстановить эти изображения до их исходной формы, то есть сделать их более качественными. Вы можете найти сценарий для этого здесь: https://github.com/fastai/course-v3/blob/master/nbs/dl1/lesson7-superres.ipynb
  • Наконец, как только вы обучили модель, которая может адекватно восстанавливать исходное изображение из низкокачественного, вы можете увидеть, как с помощью этой техники получаются ваши образцы GAN.

Вот некоторые результаты, которые я получил от LandscapeGAN.

Я уверен, что смог бы получить гораздо более качественные конечные результаты, если бы тренировал свою модель StyleGAN и Super-Resolution дольше с большим количеством данных.

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

Используя сверхвысокое разрешение, мы можем заставить наши модели GAN создавать изображения, качество которых составляет 80–90% от качества изображений / видео, которые мы хотим, и применять к ним сверхвысокое разрешение, чтобы в конечном итоге получить высококачественные результаты. Это заняло бы у нас гораздо больше времени (и стоило бы намного больше), если бы мы продолжали тренировать наши GAN, чтобы становиться все лучше и лучше.

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