Хотя эта функция востребована немногими пользователями, всё же модуль Google Handwriting Input для клавиатуры Gboard позволяет набирать текст на мобильных устройствах с помощью рукописного ввода. Это полезно, например, при использовании цифрового пера. К моменту запуска в 2015 году функция работала с 82 языками, а за прошлый год их количество превысило сотню. Продолжая совершенствовать распознавание рукописного текста, наиболее заметного результата Google добилась с помощью машинного обучения.
В первоначальном подходе Google строка разбивалась на отдельные письменные символы, каждый из которых ассоциировался с несколькими вариантами подходящих букв, а затем подбирались наиболее вероятные слова. Теперь же происходит анализ последовательности ключевых точек с учётом временных меток и штрихов между ними, которая затем нормализируется и преобразуется в кубические кривые Безье. Этот процесс декодирования символов предоставляет вводные данные для многослойной рекуррентной нейронной сети (RNN). Экспериментируя с различными типами RNN, разработчики Google остановились на квазирекуррентных нейронных сетях (QRNN). Они обеспечивают лучшие результаты прогнозирования, что становится возможным благодаря чередованию свёрточных и рекуррентных слоёв.
Рекуррентная нейронная сеть создает матрицу, в которой каждый столбец соответствует одной входной кривой, а каждая строка соответствует букве в алфавите. Столбец для конкретной кривой можно рассматривать как распределение вероятностей по всем буквам алфавита (яркость ячейки соответствует степени вероятности). Однако каждая буква может состоять из нескольких кривых. Например, g и o на приведённом изображении состоят из четырёх и трёх кривых соответственно. Распознаватель на основе QRNN преобразует последовательность кривых в последовательность вероятностей символов. В матрице декодера встречаются в основном пробелы и яркие точки для символов «g» и «o», в результате чего выводится текст «go».
Новый подход позволил существенно, на 20–40 %, уменьшить количество ошибок при распознавании рукописного текста. Но для обеспечения удобного пользовательского окружения недостаточно добиться точной работы, её нужно сделать ещё и быстрой. Поэтому разработчики сконвертировали обученные в TensorFlow модели в модели TensorFlow Lite, вчетверо сократив нагрузку, и достигли минимальных задержек в клавиатуре Gboard при исполнении всех задач на самом мобильном устройстве.
Оставить сообщение