Можно ли научить нейронную сеть рисовать картинку в определенном стиле? (Таким образом, он берет изображение и перерисовывает его в стиле, для которого он был обучен.)
Есть ли одобренная технология для такого рода вещей? Я знаю об алгоритме DeepArt. Хорошо заполнить основное изображение определенным рисунком (например, vangoghify image), но я ищу что-то другое - например, создание мультфильма в определенном стиле из входного портрета.
Ответы:
Существует соответствующая статья: Л. А. Гатус, А. С. Экер, М. Бетге, 2015, Нейронный алгоритм художественного стиля . Цитирую из аннотации,
Вот рисунок 2 из этой статьи:
Существует также очень популярный реализация с открытым исходным кодом на основе факела здесь , которая довольно проста в использовании. Смотрите ссылку для большего количества примеров.
Имейте в виду, что вычисления являются тяжелыми, и поэтому обработка отдельных изображений является предметом этой работы.
Изменить: после проверки упомянутого проекта DeepArt, кажется, что он использует те же методы. Я не уверен, почему это не то, что вы хотите, потому что концепция передачи стиля является настолько общей, насколько это возможно.
источник
Это довольно сложная проблема для решения. Здесь вы можете увидеть несколько примеров того, как стиль мультфильма, например, от Симпсона, был применен к изображению.
Изображение мультфильма, как правило, не имеет структуры, которая дает этот художественный эффект. Самый простой способ попытаться применить это каким-либо образом - это использовать трекер лица, а затем попытаться выровнять два лица, например, лицо мультфильма и человеческое лицо, и затем применить это. Это может куда-то вас завести, но это также может выглядеть странно. Затем вы можете аннотировать ориентиры на изображениях, чтобы помочь в дальнейшем и сделать нежесткую регистрацию перед этим. Это все еще какое-то дерьмовое решение, но самое близкое, что я могу придумать, может работать для лиц.
Редактировать:
Комментарий @TannerSwett добавляет кое-что к этому, есть возможность зайти на веб-страницы некоторых художников и попытаться найти их иллюстрации и попытаться выучить «их» стиль. Я все еще не думаю, что это удовлетворительно или даст достаточно данных, но это было бы интересно проверить. В настоящее время нет общедоступного решения, но я думаю, что определенно некоторые люди работают над этим, и мы скоро увидим лучшие результаты.
Я думаю, что, возможно, путь не в художественном подходе нейронной сети. Может быть, лучше иметь сеть, которая может классифицировать объекты на изображении, а затем изучать соответствия между объектами и их карикатурными аналогами, а затем смешивать результаты каким-либо значимым образом.
источник
Это не должно быть слишком сложно сделать. Не читал упомянутую статью, вот мой рецепт:
По сути, это дает вам возможность параметризовать «стиль» в вашем случае, например, скажем, насколько широким или размытым должен быть мазок кисти. Материал, который зависит от стиля, которому вы пытаетесь подражать.
В приведенном выше примере различные «морфированные» или «воображаемые» грани являются функцией параметров в скрытом пространстве. На изображении ниже это будет то, что вы получите, изменив материал на уровне кода.
Вот основная идея: оригинальное изображение слева, стилизованная версия того же изображения справа:
Теперь, теоретически, если вы натренируете такую модель на обычном изображении и стилизованном изображении в качестве цели и добавите свертки, вы сможете изучить фильтры ядра , соответствующие типу «мазков кисти», которые использует художник ,
Конечно, это означает, что вам нужно иметь несколько примеров изображений в оригинальной и стилизованной версиях. Такой набор данных было бы неплохо пожертвовать сообществу - если вы в конечном итоге сделаете это, я бы очень хотел увидеть такую работу.
Удачи!
Хорошей отправной точкой будет статья в вики об авто кодировщиках: https://en.wikipedia.org/wiki/Autoencoder
источник