Программист Эрик Бернхардссон, работавший в Spotify над алгоритмом рекомендации музыки пользователям, приспособил нейросеть для изменения и создания шрифтов. Подробнее можно прочитать в блоге автора.
Сначала программист загрузил более 56 тысяч разных шрифтов, содержащих в себе данные по 62 символам — латинским буквам и арабским цифрам. После этого автор начал конвертировать шрифты в формат двоичного растрового изображения. Начав с размера 512
Тестовое задание, в каждой паре символов правый нарисован нейросетью по примеру остальных символов шрифта, левый — изначальное начертание символа. Хуже всего алгоритм справился с символами, в начертании которых используются тонкие линии и дополнительные элементы.
После этого разработчик проверил результат на контрольной группе символов, отобранных из разных шрифтов и не использовавшихся при тренировке, при этом остальные символы шрифта были известны программе и ей оставалось самой нарисовать нужную букву или цифру нужным шрифтом. Оказалось, что алгоритм неплохо справляется с классическими шрифтами, однако дает сбои, если в шрифте используются дополнительные декоративные элементы или тонкие линии.
При этом разработчику удалось создать «вектор шрифта» — так он назвал общую характеристику конкретного шрифта, по которой нейросеть может определить его начертание. Благодаря изменению параметров «вектора шрифта» алгоритм может рисовать промежуточные варианты между разными уже известными шрифтами, если генерировать для «векторов шрифта» случайные значения, то можно создавать абсолютно новые шрифты, отмечает автор. Для всех желающих самостоятельно экспериментировать с шрифтами Эрик Бернхардссон опубликовал ссылку на использованные данные, исходный код программного обеспечения доступен в репозитории GitHub.
Ранее другую интересную работу по обработке шрифтов проделал создатель шрифта Avería. Он взял большое количество изображений символов и наложил их друг на друга с прозрачным фоном, чтобы создать «самый средний» шрифт. Результат, после небольшой доработки, опубликован для свободного использования в Font Library.
Николай Воронцов