Создание технологии распознавания рукописного текста (обновлено)

Распознавание рукописного ввода - это способность компьютера получать и интерпретировать рукописный ввод. Распознавание текста может производиться «офлайновым» методом из уже написанного на бумаге текста (см. оптическое распознавание символов) или «онлайновым» методом считыванием движений кончика ручки, к примеру по поверхности специального компьютерного экрана.

Энциклопедичный YouTube

  • 1 / 5

    Интерфейс онлайнового распознавания обычно состоит из:

    • ручки или стилуса, которым пользователь осуществляет ввод
    • поверхности, чувствительной к касаниям, которая может быть интегрирована с дисплеем
    • программного обеспечения, которое интерпретирует движения стилуса по пишущей поверхности, переводя получившиеся линии в цифровой текст

    Распознавание рукописного ввода широко используется в КПК . Первым КПК, который был способен распознавать рукописный ввод, является Apple Newton .

    Устройства

    Серийные устройства, в которых в качестве альтернативы традиционному вводу с помощью клавиатуры использовался ввод рукописного текста появились в начале 1980-х. Это были, например, терминалы с рукописным вводом, такие как Pencept Penpad и Inforite point-of-sale terminal . С расширением рынка персональных компьютеров появились несколько коммерческих продуктов, призванных заменить клавиатуру и мышь на персональных компьютерах единственной системой, предоставляемые PenCept , CIC and others. Первым, находящимся в открытой продаже, планшетным компьютером был GRiDPad от GRiD Systems, выпущенный в сентябре 1989. Его операционная система была основана на MS-DOS .

    В начале 90-х производители аппаратного обеспечения, включая NCR , IBM и EO, выпустили планшетные компьютеры с операционной системой PenPoint, разработанной GO Corp. PenPoint использовала рукописный ввод повсюду и обеспечивала совместимость со сторонним программным обеспечением. Планшетный компьютер IBM был первым использующим ThinkPad и распознавание рукописного текста IBM. Эта система распознавания была позже портирована в Microsoft Windows for Pen Computing и IBM"s Pen для OS/2 . Ни одна из этих технологий не имела коммерческого успеха.

    Развитие электроники позволили вычислительной мощности, необходимой для распознавания рукописного ввода, умещаться в меньшие размеры, чем у планшетных компьютеров, и использовать распознавание рукописного текста в качестве средства ввода для PDA . Первым PDA , обеспечивающим письменный ввод, был Apple Newton , который продемонстрировал общественности достоинства такого рода пользовательского интерфейса. Однако устройство не было коммерчески удачным вследствие несовершенства программного обеспечения, которое должно было пытаться изучить манеру письма пользователя. После разрыва с Apple Newton , технология была портирована в Mac OS X 10.2 и более поздние в виде технологии Inkwell (Macintosh).

    Современная система распознавания рукописного текста включается в операционные системы Microsoft , используемые на планшетных компьютерах (см. Windows XP Tablet PC Edition и Windows Vista). Она основана на TDNN-классификаторе, названном «Inferno», созданном в Microsoft . Позже версия CalliGrapher, распознающего рукописных ввод программного обеспечения, используемого в Newton OS 2.0, была включена в качестве вторичного распознавателя. Новое поколение CalliGrapher в настоящее время разрабатывается для Windows Mobile корпорацией PhatWare.

    Технология распознавания рукописного ввода «третьего поколения» riteScript, разработанная корпорацией EverNote в 2000-2004, включается в ritePen and EverNote. ritePen также включает технологию, позволяющую комбинировать riteScript со встроенным распознаванием рукописного текста Windows Vista , чтобы улучшить точность распознавания каждого движка распознавания рукописного текста.

    Хотя распознавание рукописного текста - средство ввода, к которому уже привыкла общественность, оно ещё не достигло широкого распространения в настольных компьютерах и ноутбуках. Все ещё считается [ ] , что ввод с помощью клавиатуры быстрее и надежнее. Сейчас существует множество PDA, поддерживающих иногда и естественный рукописный почерк, но точность все ещё не является очень высокой, из-за чего некоторые люди находят даже простую экранную клавиатуру более эффективной.

    Офлайновое распознавание

    Этот вид распознавания считается более сложным по сравнению с онлайновым. Для офлайного распознавания требуется обучение системы распознавания человеком или готовая обучающая выборка. Подобный механизм реализован в ABBYY FineReader . Качество распознавания можно повысить, используя структурированные документы (формы). Кроме того, можно улучшить качество, уменьшив диапазон возможных вводимых символов. Применяется в сферах деятельности, где необходимо обрабатывать большое количество рукописных документов, к примеру, в страховых компаниях.

    Достаточно значимый процент деловых и офисных документов содержит рукописный текст. Согласно исследованиям , эти данные играют ключевую роль и в обязательном порядке попадают в учетные системы путем ручного ввода. Предприятия не пытаются автоматизировать эту работу, в результате, ввод данных отнимает много ресурсов и времени. Почему? Рукописный текст, также как и печатный, можно извлекать из документов, получая при этом максимальную точность. Предлагаемое решение Form Xtra Capture , как нельзя лучше, подходит для этих задач. Теперь распознавание рукописного текста, цифр, образов полностью автоматизировано.


    Привычные многим программы для распознавания текста отличаются от решений по извлечению данных. И на то есть свои причины. Учетным программам нужны данные, а не редактируемые формы с различными графическими элементами (таблицы, рамки, линии, засечки и логотипы). Для автоматизации ввода требуется подготовительный этап — настройка, где пользователь указывает какую информацию извлекать, как ее обрабатывать, распознавать и экспортировать. Для более детального ознакомления с основными этапами работы (в т.ч. и настройки) системы смотрите схему работы . Мы же сосредоточимся на распознавании рукописного текста в документах, выделяя важные особенности:

    • Использование контекстной информации
    • Использование регулярных выражений

      Регулярные выражения — крайне полезный инструмент, который можно использовать для распознавания сложных последовательностей символов.

    • Использование псевдонимов

      Ошибки в проектировании документа могут приводить к неопределенности при ее заполнении. В результате вместо одного варианта написания появляется множество альтернативных вариантов, которые тоже являются правильными. Для примера: Харкiв , мХаркiв (точка находится в ячейке с буквой "м"), м.Харкiв (точка находится в отдельной ячейке). Более того, специфика различных регионов Украины позволяет смело предположить, что люди заполняют документы на родном языке, игнорируя требования и основной язык документа. Пример: Харьков , гХарьков , г.Харьков . Использование псевдонимов (alias) позволяет преобразовать все ответы распознавателя к единственно правильному ответу.

    • Использование скриптов (бизнес-правил)

      Скрипты применяют в качестве логического инструмента при распознавании. Они используют теории имплекации (if, else) или сценариев (use, case) для определения следующего корректного ответа или подтверждения достоверности одного или нескольких полей. Распространенной областью применения является автоматическое заполнение полей с поиском в базе данных (например, если код 00123, то имя, адрес и телефон автоматически должны быть х, у, z).

    • Алгоритмы голосования

      Достаточно часто к извлекаемому рукописному полю предъявляют повышенные требования к точности распознавания. В подобных случаях имеется возможность распознавать одно и тоже поле разными способами или движками (ABBYY FineReader Engee, CuneiForm и прочие), а после, сравнивать ответы для нахождения истины.

    Записную книжку с возможностью распознавать рукописный текст и выполнять простые задачи, например, для конспектирования лекций или записи формул. Приложение работает лишь на узкой прослойке устройств с особыми стилусами - планшетах Microsoft и iPad Pro. Главный редактор TJ потестировал его и пришёл к выводу, что Nebo оказалось интересным, но скорее как рабочий концепт.

    В закладки

    У меня очень плохой почерк. Я не умел красиво или хотя бы разборчиво писать ни в школе, когда я практиковался в этом ежедневно, ни сейчас, когда я пишу от руки хорошо если пару строк в неделю - на столе лежит ежедневник для записей «Не забыть бы» и зарисовок.

    Не могу сказать, что я страдаю от своего почерка: в конце концов, по работе и в личной жизни я в 99% случаев использую клавиатуру, реальную или виртуальную. Кнопки не требуют от меня аккуратно выводить дуги у букв «з» и «ш», чтобы читатели их разобрали с первого раза.

    Тем сильнее было моё удивление, когда мои каракули смог разобрать впервые встретившийся с ними алгоритм Nebo. Перечитывая спустя пару часов то, что я ввёл на экране, я и сам уже не мог понять, что там было написано - а Nebo расшифровал это в машинописный текст.

    С Nebo я столкнулся случайно, увидев трансляцию в Periscope одного из западных журналистов, почему-то посчитавшего, что это продукт Microsoft. На самом деле, в MyScript даже над Microsoft над тем, как медленно корпорация движется на рынке распознавания текста. Из крупных изданий, насколько мне известно, Nebo заметило только , да и то из-за того, что приложение выпущено для платформы Windows.

    MyScript, разработчик приложения, не самая известная компания, хотя и выпустила уже не одну технологию вокруг рукописного ввода. Одна из впечатляющих - , которая и легла в основу Nebo. Она на лету превращает вводимые с помощью активного стилуса данные в векторную графику и анализирует её, распознавая, скажем, геометрические фигуры и текст.

    Nebo умеет немного - всего лишь очень хорошо распознавать ваши каракули.

    В первые несколько недель после релиза Nebo можно скачать бесплатно, однако версия есть только для планшетов и с активным стилусом - то есть Surface и iPad Pro. Пальцем набирать текст нельзя: разработчики объясняют это тем, что у активного стилуса (вроде Apple Pencil) меньше лаг, и поэтому ввод и обработка текста удаются лучше. Кроме того, активный стилус защищает от непредумышленного рисования рукой, лежащей на экране - по-другому вводить большой объём рукописного текста не получается.

    Тот самый западный журналист, о котором я писал выше, отзывался о Nebo как об идеальном инструменте для школьников или студентов. На лекциях можно делать заметки и одновременно записывать текст, лишь при острой необходимости переключаясь на клавиатуру, а потом использовать распознавание прописи для поиска по тому, что написал за время занятий.

    Функций в Nebo немного: это скорее очень примитивная демонстрация возможностей технологии, чем реальный и необходимый для ежедневного использования продукт. В приложении можно писать от руки, редактируя текст интуитивными жестами: провёл черту по слову сверху вниз - разделил его пополам, снизу вверх - соединил два слова в одно.

    Обвёл слово - при конвертации в печатный текст оно выделится маркером. Заштриховал текст - он удалился. Можно быстро помогать программе исправлять распознанный текст, выбирая корректный вариант из списка (чаще всего он есть).

    Количество языков, которые поддерживаются Nebo, огромно: помимо стандартных английского, немецкого, французского и прочих популярных есть русский, украинский, татарский, польский и несколько вариантов китайского.

    Что удивительно, даже в случае моих далеко не самых разборчивых писмен Nebo удавалось распознавать их корректно. Более того, Nebo правильно понимает англоязычные слова в русском тексте и наоборот.

    Помимо текста, в Nebo можно рисовать блок-схемы и править их на лету, перемещая блоки и редактируя текст внутри. Есть и функция распознавания формул, которая в том числе позволяет решать несложные арифметические примеры.

    Разница между приложениями для iOS и Windows только в том, что в версии для Windows экспорт в Microsoft Word. В iOS экспортировать можно либо в обычный текст (тогда не сохранится графика), либо в HTML: в этом случае графика представлена в векторном виде, однако распознанные математические формулы скопировать в документ не получится - придётся делать скриншоты или сохранять весь файл в PDF.

    В целом Nebo сложно удивить человека, плотно работающего с OCR: технологии распознавания текста давно встроены в массовые продукты вроде Evernote, а для промышленного использования есть специальные программные пакеты. Однако здесь текст распознаётся на лету, и не печатный, а рукописный, и в отличие от многих продуктов - с поддержкой русского языка.

    Естественно, как продукт Nebo популярным стать не может. Уж слишком нишевая прослойка эти планшеты с активными стилусами, iPad Pro запредельно дорогой, а Microsoft Surface вообще официально в России не продаётся. Но приятно осознавать, что распознавание твоих закорючек - задача, посильная роботу, и когда-нибудь технология окажется встроена в более популярные продукты.

    Разработчик:

    Во все времена людям была присуща лень, а с появлением техники тяга излишне расслабиться усилилась ешё больше. Если раньше люди с удовольствием использовали сенсорную клавиатуру смартфона, наслаждаясь простотой и удобством такого способа ввода текста, то теперь почти никто не хочет утруждать себя даже этим.

    Простота и удобство - вот главный девиз устройств начала двадцать первого века. Что может быть лучше, чем взять стилус и написать своей рукой текст, который будет корректно распознан смартфоном? Я думаю, ничего. Именно поэтому сегодня я предлагаю поговорить об одной из таких совершенных программ для распознавания рукописного текста - PenReader .

    Penreader - приложение не бесплатное, но, как мне кажется, его стоит купить из - за его некоторых неоспоримых преимуществ:

    • Поддержка русского языка
    • Поддержка всех версия Android
    • Возможность использовать PenRader в любом приложении
    • Возможность создания макросов

    Эти преимущества просто неоспоримы, так как я не смог отыскать ни одного приложения, которое имело бы все эти возможности. Самое главное - PenReader поддерживает русский язык, поэтому это приложение очень широко распространено в России.

    Теперь я расскажу подробнее о том, как работать с PenReader.

    Работа с приложением

    После установки PenReader из Google Play , нам нужно выбрать язык распознавания, зайдя в меню приложения:

    Хочу обратить ваше внимание, что для установки всех языков, кроме Английского, приложению требуется скачать специальную библиотеку.dll из Интернета, а ваш оператор может взять с вам за это деньги. Так что, будьте внимательны.

    После установки нужного языка первое, что нужно сделать - опробовать распознавание текста.

    Чтобы начать писать текст, нужно прикоснуться к полю ввода текста. После этого, вы перейдёте непосредственно на рабочий экран приложения PenReader , на котором вы увидите само поле рисования и некоторые кнопки:

    • «Конфигурация» - нажимая на эту кнопку, вы можете переключаться между языками ввода. Учтите, что выбирать можно только из тех языков, которые отмечены как "Активные" (см. выше)
    • «Назад» - нажав на эту кнопку единожды, ваш указатель будет перемещён на один символ назад. Чтобы перейти в начало строки, нужно удерживать эту кнопку
    • «Пробел» - вставляет пробел на том месте, где находится курсор.
    • «Стереть» - нажав на эту кнопку один раз, вы удалите символ перед курсором. Чтобы удалить всю строку, нужно удерживать кнопку
    • «Дополнительно» -открывает и скрывает дополнительные кнопки:

    -«Hide» - нажав на эту кнопку, Вы выйдите из рабочего экрана PenReader.

    -«Alt» - Переключает режимы ввода. Всего доступна два режима: ввод букв и ввод спецсимволов

    -«Верхний регистр» - Если нажать на эту кнопку, то вы введёте следующую букву в верхнем регистре. При повторном нажатии все буквы, введённые вами станут заглавными (функция, аналогичная функции клавиши Caps Lock).

    Penreader поддерживает разные режимы распознавания рукописного текста. Всего их 4:

    • Слитное распознавание позволяет пользователю писать слова и даже целые предложения привычным для него образом - не отрывая руки от "листа"
    • Побуквенное распознавание позволяет распознавать только ожин символ за определённый промежуток времени. Пытаться вводить несколько букв не имеет смысла - PenReader попытается распознать их как один символ
    • Интеллектуальное распознавание позволяет корректировать результаты распознавания
      прямо в процессе письма. Например, писать букву "А" можно так:
    1. Сначала ввести символ "/"
    2. Затем ввести символ "\"
    3. А после этого поставить между ними чёрточку "-"
      В этом случае программа будет работать так: распознает ввод символа «слэш», затем исправит его на букву Л, а затем - на А.
    • Раздельное распознавание даёт программе сигнал, что каждый написанный вами штрих будет распознан как единый символ. Этот способ немного схож с Побуквенным распознаванием

    По умолчанию в приложении установлен режим Интеллектуального распознавания, поэтому, если он вам не подходит, то обязательно смените его перед началом работы.

    Ниже вы видите пример побуквенного распознавания:

    Настройки приложения

    Некоторые пункта настроек мы уже рассмотрели выше, поэтому сейчас я расскажу только тех вещах, о которых мы ещё не говорили.

    В настройках приложения PenReader есть раздел "Настройка распознавания". В него входят следующие подпункты:

    Также мы можем увидеть раздел "Оформление":

    • Толщина линии - задаёт толщину линии, выводим на рабочем экране PenReader. Она может колебаться от 1 до 30 пикселей
    • Цвет линии - изменяет цвет линии на экране PenReader
    • Расположение экранной клавиатуры - изменяет расположение кнопок на рабочем экране при ландшафтной ориентации планшета
    • Прозрачность экранной клавиатуры - настраивает уровень прозрачности кнопок на экране ввода

    Мы видим очень гибкую систему настроек. С её помощью мы можем подстроить приложение, что называется "под себя", до мельчайших деталей.

    13 января 2012 в 15:37

    Распознавание непрерывного рукописного текста в режиме off-line

    • Искусственный интеллект
    Предисловие
    Как известно, задача распознавания непрерывного рукописного текста в режиме off-line пока считается нерешённой.

    Мне удалось решить эту задачу теоретически и практически. Практическая часть сейчас имеет вид демонстрационной версии программы. Решение общее, оно не ограничивается какой-либо областью применения, языком или размером словаря.

    О программе
    Программа полностью обучаемая. Процесс обучения выглядит просто: вы пишете символы в режиме on-line, программа их обобщает и выделяет алгоритм написания. Это первый этап обучения. Второй этап происходит во время работы. Если встречается символ, общий алгоритм написания которого совпадает с одним из имеющихся в наличии, а значения некоторых свойств выходят за рамки вычисленных на первом этапе диапазонов, то диапазоны расширяются. Конечно, только после подтверждения пользователем общего результата распознавания. К слову сказать, на первом этапе достаточно от трёх до семи предъявлений символа, и алгоритм готов.
    Теория
    Немного о теории. Существует несколько подходов к решению указанной задачи. Их обычно делят на два вида: структурные и эталонные. Первый основан на выделении и анализе различных структурных элементов символа и их признаков, свойств. Второй предполагает сравнение распознаваемого символа с набором заданных эталонов. Эти методы не позволяют решить задачу в общем виде.

    Задача рукописного ввода в режиме on-line полностью и успешно решена. Это решение основано, в любом случае, на создании алгоритмов написания символов, учитывающих траекторию движения пера. То есть, последовательность смены его координат. Были предложения свести задачу распознавания в off-line режиме к распознаванию в режиме on-line. Для этого достаточно правильно считать линии с графической копии текста. Но сделать это принципиально невозможно. Можно считать отрезки линий между пересечениями, но чтобы их правильно соединить, уже нужна интерпретация.

    Остаётся только одно решение - восстанавливать символы в процессе интерпретации отрезков, полученных на этапе считывания с цифровой графической копии текста. Для этого нужны две составляющие: специальное представление алгоритма написания символа, позволяющее это делать, и алгоритм интерпретации отрезков, способный проанализировать все возможные варианты интерпретации.

    Практика
    Это удалось сделать в полной мере. Как известно, главная задача демоверсии - продемонстрировать принципиальное решение поставленной задачи. На что в этом смысле способен тот прототип, который имеется сейчас? Программа способна распознавать одно слово, написанное произвольным непрерывным почерком на белой бумаге. Для перевода в цифровой файл слово может быть либо отсканировано, либо сфотографировано веб-камерой или цифровым фотоаппаратом. В принципе, уже сделано и распознавание текста, но эта функция требует доработки.

    Ниже приведены примеры распознаваемых слов. Как видно, здесь не только обычное написание, но и «усложнённые» варианты: перечёркнутые слова, символы, написанные отрезками, имеющие лишние части и тому подобное. Это показывает, что в полностью готовом виде программа будет способна распознавать достаточно зашумлённые тексты.

    Очевидно, что уверенно распознать можно только те символы, которые имеют все необходимые части примерно на своих местах. Если имеются недостающие или сильно искажённые части, то необходима интерпретация на уровне слов. Наличие словаря повышает процент распознавания, но не решает всех проблем. Бывают такие случаи, когда без понимания смысла фразы некоторые слова однозначно интерпретировать невозможно. Для этого нужна система искусственного интеллекта, способная понимать смысл фраз естественного языка. До недавнего времени информации о наличии таких систем на рынке не было. Сейчас уже есть: фирма ABBYY объявила о создании системы «Compreno» , в которой для перевода используется смысловая интерпретация фраз на основе «модели мира», не зависимой от конкретного языка.

    У меня тоже есть прототип системы ИИ, способной понимать смысл текста. Если судить по той информации о «Compreno», которая сейчас есть в СМИ, моя система функционально гораздо шире. Она обучаема, способна к обобщению информации и к активному поиску знаний в случае, когда их не хватает для выполнения поставленной задачи. Другими словами, такая система вполне способна работать личным секретарём. Но у неё есть один серьёзный недостаток по сравнению с «Compreno» - по степени общей готовности она пока не дотягивает даже до демоверсии.

    Коммерция
    И в конце немного о коммерческой стороне проекта. В интернете есть интервью вице-президента компании ABBYY Lingvo Арама Пахчаняна. В отношении задачи распознавания непрерывного рукописного текста в режиме off-line там сказано, по сути, что эту задачу и не надо решать. Затраты на её решение (надо полагать, очень большие) не окупятся. И, похоже, в основном потому, что непрерывное писание фирма ABBYY Lingvo практически уже сделала неактуальным. Она полностью решила проблему распознавания раздельного рукописного текста, и на все случаи жизни разработала соответствующие бланки.

    Возможно, это была шутка. Но всё равно, имеет смысл сказать следующее. Писать привычным непрерывным почерком удобнее и легче, чем вписывать буквы в квадратики. Если компьютер будет распознавать первое не хуже второго, то второе уйдёт в прошлое так же как перфокарты, чёрно-белые телевизоры и плёнки для фотоаппаратов.

    В следующем короткое видео можно увидеть программу в действии. Возможно, это будет интересно.

    Заключение
    И ещё один важный момент – показатели эффективности, а именно, время и процент распознавания. Конечно, в демоверсии основное внимание уделялось второму критерию. Сейчас достигнут уровень не ниже 70%. В готовом варианте этот показатель можно сформулировать так: если человек сможет прочитать текст, то и программа тоже. О времени распознавания пока можно сказать только то, что его удастся довести до приемлемых величин.

    Если всё пойдёт хорошо, будут ещё статьи о некоторых технических аспектах распознавания текста и об ИИ.

    Благодарю за внимание.
    ____________
    Update.
    Дорогие хабравчане! Спасибо всем за фидбек, нам это очень важно и полезно. В целом топик был встречен положительно, что не может не радовать.

    Негодующим личностям хотелось бы сказать: уважаемые, мы не ярмарочные фокусники. Мы отдаём отчёт в своих словах. Если мы написали, что в готовом продукте точность распознавания будет стремиться к 100%, значит мы в этом уверены.

    Эту статью можете считать анонсом, у неё не было цели подробно раскрыть все технические подробности. Однако учитывая проявленный интерес, через некоторое время будет ещё одна статья, более подробно описывающая процесс распознавания.

    Также будет доступная для скачивания демонстрационная версия программы.



    Бизнес идеи