Google Brain смоделировала процесс отрисовки шрифтов

В Google Brain смоделировали процесс отрисовки шрифтов

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

Постановка задачи и данные

Цель исследования заключалась в том, чтобы научить сеть генерировать шрифты, используя данные из SVG формата. На выходе модели вместо набора пикселей исследователи планировали получить список SVG команд для отрисовки объекта.

Выборка состояла из 14 миллионов символов в сумме и 62 уникальных категорий символов (0-9, a-z, A-Z). Каждый набор символов (файл со шрифтом) был преобразован из SFD в SVG и нормализован. При конвертации из одного формата в другой исследователи ограничили список SVG команд до четырех: moveTo, lineTo, cubicBezier и EOS. Подробнее процесс обработки и нормализации описан в оригинальной статье. Итоговая обучающая выборка состояла из 12.6 миллионов примеров, а тестовая — из 1.4 миллионов.

Архитектура модели

Модель имела двухступенчатую структуру:

  1. Сначала на вход вариационному автоэкодеру (VAE) поступала картинка в SVG формате;
  2. SVG декодер принимал на вход предсказанный класс (тип символа) и его векторное представление и выдавал сгенерированный символ.

SVG декодер состоял из нескольких LSTM и одной Mixture Density Network (MDN).

Архитектура модели.
Архитектура модели

Результаты

Ученые использовали качественную оценку результатов работы модели. Ниже представлены отобранные примеры сгенерированных шрифтов.

Результаты работы модели
Результаты работы модели

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

В попытке квантифицировать оценку модели исследователи выбрали два способа. На картинках (a) изображены графики функции потери для обучающей/тестовой выборок (верхняя) и отдельных классов символов (нижняя). На картинках (b) визуализированы функции потери на тестовой выборке для двух классов: “8” (верхняя) и “7” (нижняя).

Negative Log Likelihood на обучающей и тестовой выборках и для отдельных классов.
Negative Log Likelihood на обучающей и тестовой выборках и для отдельных классов

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

Ограничения и дальнейшая работа

Первое ограничение модели заключается в том, что на одном из этапов обучения она выбирает команды с низкой вероятностью. Это, в свою очередь, ведет к серии ошибок. Примером этого являются сгенерированные символы “3” (красная линия означает совершенную ошибку) и “6” (разрыв линии наверху).

Примеры ошибок модели
Примеры ошибок модели

Кроме того, низкая степень уверенности модели ведет к тому, что сгенерированные символы получаются нечеткими. Векторное пространство символов визуализировано на изображении выше: чем ярче зеленый, тем выше уверенность модели (ниже дисперсия VAE). Розовым отмечен пример, когда степень уверенности модели высокая, обратный случай указан голубым цветом. Данные ограничения будут приняты во внимание в будущих исследованиях.

обучение с без учителя, с подкреплением

Обучение нейросети с учителем, без учителя, с подкреплением — в чем отличие? Какой алгоритм лучше?

Обучить нейронную сеть можно разными способами: с учителем, без учителя, с подкреплением. Но как выбрать оптимальный алгоритм и чем они отличаются? Есть несколько способов собрать мебель из IKEA. Каждый из них приводит к собранному дивану или стулу. Но в зависимости от предмета мебели и…
piano-genie

Google AI представили Piano Genie — контроллер для импровизации с сетью энкодер-декодер

Команда разработчиков Google AI представили Piano Genie — 8-клавишный контроллер на основе нейронных сетей для импровизации на фортепиано. Интерактивная демо-версия есть в открытом доступе. Посмотрите импровизацию на Piano Genie, которую опубликовали разработчики контроллера: Как работает Piano Genie После первичного нажатия на кнопку контроллера проигрывается…
neural network nlp architectures

7 архитектур нейронных сетей для решения задач NLP

Искусственная нейронная сеть (ИНС) — вычислительная нелинейная модель, в основе которой лежит нейронная структура мозга, способная обучаться выполнению задач классификации, предсказания, принятия решений, визуализации и некоторых других только благодаря рассмотрению примеров. Любая архитектура ИНС состоит из искусственных нейронов — элементов обработки, имеющих структуру 3…
вариационный автоэнкодер vae

Как работает вариационный автоэнкодер (VAE)

В противоположность использованию нейросетей в качестве регрессоров или классификаторов, вариационный автоэнкодер (Variational Autoencoder – VAE) — генеративная модель, которая находит применение во многих областях исследований: от генерации новых человеческих лиц до создания полностью искусственной музыки. Эта статья рассказывает о том, что такое вариационный автоэнкодер,…
face-resolution-upscaling-facial-component-heatmap

Тепловые карты компонент помогают восстановить лица на фотографиях с низким разрешением

Результаты многих техник анализа лица полагаются на соответствующее разрешение изображения. Например, распознавание лица не будет работать корректно, если разрешение лица на фотографии низкое. Что такое Super-Resolution Face super-resolution (FSR) или лицевая галлюцинация (face hallucination) восстанавливает изображение лица в высоком разрешении (HR) из картинки низкого…
DAE-deforming-autoencoders-e1537543914660

Деформирующие автоэнкодеры

В настоящее время генеративные модели привлекают к себе огромное внимание в мировой среде машинного обучения. Этот тип моделей имеет практическое применение в различных сферах. Одни из самых эффективных и широко используемых типов данной модели – это Вариационные Автоэнкодеры (Variational Autoencoders – VAE) и Генеративные…
автоэнкодер

Автоэнкодеры: типы архитектур и применение

Autoencoder (автокодер, автоэнкодер, AE) — нейронная сеть, которая копирует входные данные на выход. По архитектуре похож на персептрон. Автоэнкодеры сжимают входные данные для представления их в latent-space (скрытое пространство), а затем восстанавливают из этого представления output (выходные данные). Цель — получить на выходном слое отклик, наиболее близкий…
svedenie trekov neironnye seti

Сведение треков при помощи генеративных нейронных сетей

В своих выступлениях диджеи часто разделяют плэйлисты по настроению (агрессивная, душевная, меланхоличная музыка) и темпу (медленный, средний и быстрый битрейт), а не по музыкальному жанру. Опытные диджеи делают переход между двумя треками (сведение) незаметным, что заставляет микс звучать как единое целое. Но иногда возникают…
Neural Network Compresses Images Without Loss Of Quality

Нейросеть сжимает изображения без потери качества

Графическая информация требует больших ресурсов для хранения, и основная задача разработчиков — научиться сжимать изображения без потери качества. Решение от Computer Vision Laboratory Группа исследователей из швейцарской лаборатории Computer Vision предложили способ обработки изображений и видео, позволяющий значительно сократить объемы памяти, требуемой для хранения графической информации. По их…