Разработчики из Facebook создали нейросеть, способную переносить визуальный стиль надписи на новый текст, используя лишь один пример. Статья опубликована на сайте исследовательского подразделения Facebook.
Любая надпись — неважно, это рукописная открытка, вывеска на магазине или название бренда на пачке еды, — состоит из двух частей: собственно текста, то есть смысловой составляющей, и визуального стиля. Люди могут с той или иной точностью, в зависимости от навыков рисования, копировать стиль написания текста и рисовать в этом стиле новые надписи. Алгоритмы для переноса стиля между изображениями существуют давно, но в основном они работают с рисунками. Исследователи также занимаются проблемой переноса текста, но пока с меньшим успехом: алгоритмам требуется длительное обучение конкретному стилю.
Правин Кришнан (Praveen Krishnan) и его коллеги из исследовательского подразделения Facebook создали алгоритм переноса стиля текста, которому достаточно лишь одного примера целевого стиля. Он состоит из нескольких нейросетей. На первом этапе все данные подаются на два кодировщика: для контента (текста) и стиля. Кодировщик контента принимает текстовую строку, которая преобразуется в изображение с этим же текстом, набранным шрифтом Verily Serif Mono на белом фоне. А на кодировщик стиля подается изображение целевого стиля с выделенной на нем надписью.
Затем оба сжатых представления с кодировщиков подаются на нейросеть-генератор. Она основана на архитектуре StyleGAN2 от NVIDIA, но модифицирована разработчиками для лучшей работы с текстом. В отличие от оригинальной StyleGAN2, новый генератор работает как условная нейросеть (Conditional Neural Network) с двумя условиями в виде данных с кодировщиков. Еще одна модификация заключается в том, что если данные с кодировщика контента подаются сразу на первый слой генератора, то данные с кодировщика текста подаются иным образом.
Для лучшей передачи всех отличительных особенностей стиля разработчики разместили между кодировщиком стиля и генератором еще одну нейросеть, которая кодирует различные аспекты стиля и передает их на отдельные слои генератора. В результате алгоритм хорошо передает на сгенерированном изображении с новым текстом низкоуровневые и высокоуровневые особенности визуального стиля исходного текста.
Поскольку существует практически бесчисленное множество стилей надписей, разработчики использовали подход с самообучением алгоритма без размеченных данных. Для этого они применили при обучении несколько функций потерь, контролирующих перенос как стиля, так и контента. Также разработчики создали свой датасет рукописного текста Imgur5K. Они отобрали пять тысяч публично доступных изображений английского рукописного текста с сервиса Imgur и выделили из них 135 тысяч слов. Также авторы использовали и уже существующие датасеты ICDAR 2013, ICDAR 2015, TextVQA и IAM Handwriting Database, а кроме того, создали синтетические изображения с текстом, наложенным на изображения.
В результате разработчики создали первый алгоритм, способный с одного примера переносить стиль рукописного и машинного текста. Вместе с успехами, авторы отметили и ограничения алгоритма. Например, он не всегда хорошо справляется с короткими надписями (три буквы или меньше), и с текстом, написанным курсивом. В качестве потенциального применения Facebook предлагает использовать подобную технологию в будущем в очках дополненной реальности для реалистичного перевода текста на объектах перед пользователем.
Нейросетевые алгоритмы для переноса стиля применяются не только для изображений, но и для других типов данных. Например, мы рассказывали о нейросети, превратившей песню Рианны в симфонию Моцарта.
*Facebook принадлежит компании Meta, деятельность которой в России запрещена.
Григорий Копиев