Microsoft работает над технологией распознавания рукописного текста более 15 лет. Все началось с Pen Extensions для Windows 3.0. В связи с улучшенной интеграцией и доступностью компонентов распознавания рукописного текста в Windows Vista мы отмечаем, что число пользователей, использующих рукописный текст для ввода информации в компьютер, растет и рукописный текст используется в различных сферах, включая образование, здравоохранение, банковское дело, страхование, в правительственных и других структурах. Отрадно наблюдать, как эта новая форма естественного ввода информации находит применение в новых сценариях. Безусловно, мы постоянно должны улучшать качество распознавания, а также добавлять новые языки. В этой статье Ивонна (Yvonne), программный менеджер команды User Interface Platform, расскажет об изменениях в технологии распознавания рукописного текста в Windows 7. — Стивен
Добрый день! Меня зовут Ивонна. Я программный менеджер команды Tablet PC and Handwriting Recognition. Эта статья посвящена работе, которую мы проделали, чтобы улучшить распознавание рукописного текста в Windows 7.
Microsoft занимается развитием сенсорных технологий с начала 90-х годов прошлого столетия и с выпуском Windows Vista распознавание рукописного текста стало доступным для 12 языков, включая английский, американский английский, немецкий французский, испанский, итальянский, голландский, бразильский (португальский), китайский (упрощенный и традиционный), японский и корейский. Пользователи часто спрашивают, когда будет доступно распознавание на других языках и почему не поддерживается конкретный язык. Так вот, в Windows 7 мы планируем добавить поддержку новых языков, включая норвежский, шведский, финский, датский, русский и польский. А теперь давайте поговорим о том, чего стоит разработка распознавания для новых языков.
Windows поддерживает полноценное распознавание рукописного текста, то есть вам не потребуется обучаться какому-то специальному письму. На самом деле, мы научили (или «натренировали») Windows распознавать почерк тысяч людей, при этом чем больше вы пишите, тем лучше Windows вас понимает. В течение последних 16 лет мы разработали мощные механизмы распознавания рукописного текста и сегодня продолжаем работу над тем, чтобы сделать процесс распознавания более точным, быстрым и более функциональным. Добавление новых языков распознавания связано не столько с добавлением новых словарей, сколько с крупными инвестициями. Начинается все со сбора различных вариантов почерка, затем анализируются данные и происходит тренировка системы. Как только качество распознавания достигает предварительно определенного уровня, мы добавляем технологию в систему и продолжаем ее совершенствовать.
Сбор информации
Разработка нового механизма распознавания рукописного текста начинается со сбора информации. Мы собираем миллионы слов и символов, написанных десятками тысяч авторов со всего света.
Перед тем, как рассказать о том, с какими трудностями связан сбор информации, мне хотелось бы ответить на вопрос, который нам часто задают пользователи: «Почему нельзя использовать существующий механизм распознавания с новым словарем?» Во-первых, в некоторых языках есть специальные символы или ударения. Но, пожалуй, более важно то, что в разных странах люди учатся писать совершенно по-разному. Это касается стран, использующих один и тот же язык, например, США и Великобритания. Символы, которые вам могут показаться похожими, для компьютера могут оказаться совершенно разными. Именно поэтому мы вынуждены собирать и анализировать реальное написание символов, знаков пунктуации и других элементов почерка.
Сбор статистики очень непрост и требует массу времени, поскольку важно, чтобы собранные данные были достоверными. Поэтому в различных странах, для которых разрабатываются механизмы распознавания, мы очень аккуратно подходим к сбору статистики.
Перед тем, как приступить к сбору данных в лабораториях, мы настраиваем наши инструменты, готовим документацию и создаем языковые скрипты, которые проведут добровольцев через процесс сбора информации. Скрипты тщательно готовят представители тех стран, для которых создается механизм распознавания, — это гарантирует орфографическую достоверность различных вариантов почерка, символов, чисел и знаков, свойственных языку. Перед тем, как попасть в лаборатории все скрипты, проверяются и редактируются.
После того, как инструменты и скрипты готовы, мы открываем лаборатории и приступаем к набору добровольцев для сбора вариантов почерка. В процессе отбора добровольцев необходимо соблюсти демографический баланс по полу, возрасту, ведущей руке и образованию, который отражает основное население страны.
Наблюдатель в лаборатории просит добровольцев написать своим почерком представленный им фрагмент текста. И тут важно то, что мы стремимся собрать такие варианты почерка, которые отражают реальный стиль письма, поэтому просим пользователей считать вариант «перо + планшет» в качестве «ручки и бумаги». Если кто-то из добровольцев обычно пишет размашистым извилистым почерком, нам важно, чтобы в ходе нашего исследования он писал именно так.
Вот как выглядит наш инструмент для сбора информации о почерке:
Сеанс сбора длится, как правило, 60 — 90 минут, поскольку за это время можно собрать массу примеров почерка, а наш доброволец не успевает почувствовать усталость. Собранные данные загружаются в базу данных и готовы для дальнейшего использования. Примеры почерка содержат важную информацию о ударениях, начальных и конечных точках символов, пробелах и иных характеристиках, без которых невозможно натренировать новый механизм распознавания.
Давайте взглянем на некоторые примеры, иллюстрирующие разнообразие почерков, в нашей базе:
Снимок экрана иллюстрирует, как трое добровольцев написали слово «black». Различные цвета применены для того, чтобы подчеркнуть количество штрихов, использованных для написания слова. Два первых добровольца использовали для написания слова пять штрихов, когда как третий использовал четыре. Обратите внимание, как третий доброволец использовал всего один штрих для написания букв «ck», хотя первый использовал для написания той же комбинации букв три штриха. Вся эта информация используется для тренировки механизма распознавания.
Нейросеть и языковая модель
Как только собрано достаточное количество образцов рукописного текста, мы создаем из этих данных тренировочный пакет, используемый разработчиками, и «слепой» пакет, используемый тестовой командой. Тренировочный пакет используется для тренировки нейросети, ответственной за процесс непосредственного распознавания. Реальные образцы рукописного текста крайне важны при разработке высококачественного механизма распознавания; механизм распознавания был бы не так хорош, не будь тренировочного пакета. Чем больше данных поступает в нейросеть, тем более эффективней будет распознавание рукописного текста.
Нейросеть представляет собой нейросеть с временной задержкой (Time-Delay Neural Network или TDNN), которая умеет распознавать объединенные буквы рукописного текста. TDNN при обработке букв, цифр и символов оценивает предстоящий и послестоящий сегменты текста. Возможности TDNN громадны, но не при размашистом почерке, когда между буквами большое расстояние. Для того, чтобы увеличить точность распознавания, нам пришлось использовать информацию, которая выходит далеко за пределы формы букв: мы называем это контекстом языковой модели. Львиную долю контекста можно почерпнуть из лексикона, представляющего собой весь набор слов конкретного языка. Для большинства языков это все тот же лексикон, который используется для проверки орфографии. Вместе TDNN и лексикон просчитывают вероятности слов и предлагают наиболее подходящие варианты.
Тренировка нейросети требует массу времени. Мы всегда экспериментируем с заимствованными из других языков данными с целью увеличить размер тренировочных данных и, как следствие, точность распознавания. Хотя заимствованные из других языков символы не всегда являются ключом к успеху. Как сказано выше, количество штрихов, форма букв, стиль письма и размер букв могут существенно отличаться от пользователя к пользователю и могут негативно влиять на производительность TDNN-сети. Практически всегда требуется проводить несколько заходов для тренировки, повторную тренировку и настройку перед тем, как найти «правильную формулу», обеспечивающую максимальную точность распознавания.
Откуда мы знаем, что при разработке нового механизма распознавания движемся в верном направлении? Это важный вопрос, на который за нас отвечают тестовая команда и носители языка. Тестовая команда создает метрики точности распознавания, которые показывают, насколько хорош механизм. Эти метрики основаны на так называемом «слепом» тестовом наборе, который не может быть использован для тренировки. В дополнение к метрикам нашу работу проверяют носители языка.
Улучшение распознавания с помощью персонализации
В предыдущих разделах я рассказала о том, как разрабатываются высококачественные механизмы распознавания, которые поддерживают совершенно непохожие стили письма. Кроме того, любой пользователь может самостоятельно натренировать механизм распознавания на свой уникальный стиль письма. Тренировка происходит примерно по такой же схеме, по которой тренирует механизм сама Microsoft до выпуска продукта. Единственная разница состоит в том, что мы тренируем механизм на различные варианты письма, а вам нужно будет натренировать систему исключительно на свой. Мы называем эту процедуру персонализацией.
И как показано на снимке, пользователю предлагается написать с помощью пера предложение. Чем больше данных вводится через мастер персонализации, тем более точным становится механизм распознавания. В дополнение к отбору примеров рукописного текста пользователи могут устранять конкретные ошибки при распознавании. Наша функция персонализации весьма непроста и представлена несколькими отдельными модулями, которые позволят оптимально настроить механизм распознавания. Мы с радостью сообщаем, что персонализация будет доступна для всех языков распознавания, которые были представлены в Vista, и для новых языков, которые появятся в Windows 7. Поэтому настоятельно рекомендуем использовать эту функцию для увеличения точности механизма распознавания.
Мы продолжим работать над механизмами распознавания, в том числе с помощью статистики, собранной через систему телеметрии (анонимно, конфиденциально, добровольно). В Windows Vista мы реализовали функцию «Сообщить об ошибке при распознавании», которая позволяла пользователям направлять некорректно распознанные фрагменты текста. После того, как пользователь подправил слово в панели Tablet Input Panel (TIP), он может направить неверно распознанный фрагмент текста вместе с правильной версией на анализ в Microsoft.
Вот как выглядит утилита для отправки некорректного рукописного текста:
В течение недели мы получаем порядка 2000 сообщений об ошибках в распознавании. Каждое сохраняется в базе данных перед тем, как приступить к его анализу для дальнейшего усовершенствования механизма распознавания. Подобного рода сообщения крайне важны, поскольку лишь они позволяют выявить недостатки в нашем механизме распознавания.
Мы благодарны за каждое ваше сообщение. Продолжайте направлять нам свои отзывы, чтобы можно было и далее совершенствовать нынешние и будущие механизмы распознавания.
Источник: http://blogs.msdn.com/e7ru
Tags: Windows Vista