В своем блоге Эрик Бернхардсонн, программист из команды разработчиков шведского музыкального сервиса Spotify, рассказал о том, как ему удалось научить нейросеть создавать шрифты.

Нейросеть научили создавать шрифты

Сложности у нейросети возникли именно с теми символами, в начертании которых имеются сложные декоративные элементы и большое количество тонких линий
Фото: erikbern.com

«Обучение» проходило в виде «тренировки». Для того чтобы адаптировать нейросеть под создание шрифтов, программист создал массив двоичных растровых изображений. В эксперименте он использовал более 56 000 разных шрифтов, в массив разработчик загрузил по 62 символа из каждого из них. Конвертированные изображения были сжаты до размера 64х64 пикселя.

Подготовив исходные данные,  Бернхардсонн дал нейросети тестовое задание. В качестве результата машина выдала изображение пар символов, в которых правый нарисовала обучаемая нейросеть, а левый – это изначальный вариант. Алгоритм плохо отобразил те символы, в которых есть дополнительные элементы, а линии очень тонкие.

Нейросеть научили создавать шрифты

Нейросеть с помощью изменений в «векторе шрифта» можно научить создать абсолютно новые шрифты
Фото: erikbern.com

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

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

Все желающие могут провести аналогичный эксперимент самостоятельно: исходный программный код своей наработки Бернхардссон опубликовал на GitHub.