В качестве задачи выбрано преобразование между картинами Исаака Левитана и фотографиями. Для решения задачи используется архитектура CycleGAN. Картины Левитана получены с wikiart.org, из них отобрано 369 пейзажей, изображения доступны по ссылке. Второй набор изображений - фотографии - взят из датасета monet2photo.
CycleGAN реализован согласно описаниям в оригинальной статье и обучен по рекомендациям оттуда же. Подробности обучения доступны в ipynb в соответствующей директории. Итоговые модели (а также неудачные варианты задач) доступны по ссылке.
Результаты, полученные в процессе обучения (верхний ряд - реальные изображения, нижний - результат генерации):
Результаты преобразования различных фотографий в картины:
Генерация изображений доступна в двух местах:
- Веб-приложение - https://iktovr.github.io/photo2levitan/ - генерирует изображения размера 256x256 (генерация происходит на стороне клиента)
Телеграм бот - @photo2levitan_bot - поддерживает изображения любого размера, но приводит их к размеру 512 по меньшей стороне
Подробности реализации приведены в соответствующих ветках