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