Прототип ML-кернинга

Какой сервис в наше время обходится без приписки Powered by AI? Хочется чтобы typlr.app тоже получил красивый шильдик. Для этого я придумал прототип автоматического кернинга и протестировал его в работе.

Обычно кернингом занимается шрифтовик вручную или использует какой-нибудь оптический алгоритм. Но почему бы не попробовать для этого машинное обучение.

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

Архитектура

Классы на выходе — это апроши — значение расстояния от крайних границ букв, округленные до пяти единиц и ограниченные в диапазоне от минус 250 до плюс 250.

Апроши

Чтобы это измерить, нужно извлечь из шрифтового файла полуапроши пары и значение кернинга, и сложить их вместе.

В качестве обучающей выборки был выбраны гугл-шрифты с лицензией OFL. В репозитории гугл-шрифтов более 3000 бесплатных шрифтов. Для теста были взяты только две сотни случайных шрифтов.

К слову о свертке. Свертка — специальная архитектура нейронных сетей, применяющая определенные «фильтры» для анализа характерных качеств изображений. Пример визуализации второго слоя для букв.

Визуализация активации фильтрами

Модель обучалась 9 эпох батчами по 16 наблюдений из выборки в 408884 пар латинских заглавных и строчных букв. Где к 9-й эпохе была достигнута точность на тестовой выборке в 54,9%.

В результатах встречаются неожиданные предсказания, но есть заметная верная тенденция, как в парах VA или TJ. Важно учитывать, что выборка была случайная, и не имела других дополнительных параметров. Шрифты в примерах в обучении не участвовали.

График


Жирный график


Таймс нью роман

Новая функция встроена в редактор шрифтов typlr.app, но доступна только для тестирования. 

Тайплер Санс. Парами — сверху без кернинга, внизу с предсказанным кернингом

Женя, что же ты наделал!

Привет! Меня зовут Женя Агасьянц. Я дизайнер интерфейсов, логотипов, и всего что можно показать на экране или напечатать в типографии. Продюсировал фотосессии.

Создаю шрифты и делаю редактор шрифтов в вебеtyplr.app