В своем блоге Эрик Бернхардсонн, программист из команды разработчиков шведского музыкального сервиса Spotify, рассказал о том, как ему удалось научить нейросеть создавать шрифты.
|
Сложности у нейросети возникли именно с теми символами, в начертании которых имеются сложные декоративные элементы и большое количество тонких линий |
«Обучение» проходило в виде «тренировки». Для того чтобы адаптировать нейросеть под создание шрифтов, программист создал массив двоичных растровых изображений. В эксперименте он использовал более 56 000 разных шрифтов, в массив разработчик загрузил по 62 символа из каждого из них. Конвертированные изображения были сжаты до размера 64х64 пикселя.
Подготовив исходные данные, Бернхардсонн дал нейросети тестовое задание. В качестве результата машина выдала изображение пар символов, в которых правый нарисовала обучаемая нейросеть, а левый – это изначальный вариант. Алгоритм плохо отобразил те символы, в которых есть дополнительные элементы, а линии очень тонкие.
|
Нейросеть с помощью изменений в «векторе шрифта» можно научить создать абсолютно новые шрифты |
Далее проводилось тестирование с помощью контрольной группы символов, в которую вошли не использованные в тренировке. В результате выяснилось, что нейросеть вполне справляется с задачей начертить символы классическим шрифтом, однако украшенные декоративными элементами варианты пока для нее очень сложны.
Бернхардсонн дал название своему алгоритму – «вектор шрифта». Так программист назвал общие параметры стиля символов, по которым нейросеть понимает, как их рисовать. Изменение характеристик шрифта с помощью такого вектора позволяет машине создавать собственные варианты написания символов, которые являются промежуточными между уже существующими.
Все желающие могут провести аналогичный эксперимент самостоятельно: исходный программный код своей наработки Бернхардссон опубликовал на GitHub.