Программа распознавания текста работает над печатной страницей

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

9516 просмотров

В качестве результата распознавания мы должны получить текст в цифровом формате. Существует два вида распознавания: — онлайновый и оффлайновый. Онлайновый — распознавание текста при написании стилусом или пальцем на экране или планшете. Сразу понятно, где написано слово, а где полотно. Первым КПК, который мог распознавать рукописный текст — Apple Newton (1993 год).

​Занятная заметка тех времён.

Программа для распознавания текста | FineReader 11

Оффлайновый — распознавание уже написанного текста на бумаге. Текст предоставляется в виде скана или фотографии документа, страницы книги и т.п. Является более сложным способом, т.к. в случае онлайн-метода можно проследить процесс написания текста и на этом факте построить алгоритм распознавания. Сложность задачи распознавания рукописного текста — это большое разнообразие почерков, форм, размеров букв и многообразие языков. Так же бумага с текстом может содержать “шумы” — дефекты бумаги, посторонние пятна, что так же усложняет весь процесс.

Подходы распознавания

Существует по крайней мере два подхода, которые дают приемлемый результат: с использованием скрытой марковской модели и искусственной нейронной сети (ИНС). На практике так же применяется гибридный подход с использованием одновременно двух подходов.

Подготовка

Подготовка включает выпрямление, пороговую бинаризацию, удаление шумов.

  • Пороговая бинаризация — процесс отделения фона от объекта, в данном случае текст. В результате получаем чёрный текст на белом фоне.
  • Удаление шумов — удаление артефактов с изображения, не затрагивая написанный текст.

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

Сегментация строк, слов и букв

Рассмотрим подробнее несколько из шагов.

Выпрямление

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

Слово до выпрямления​
Слово после выпрямления​
Сегментация слов

Не во всех алгоритмах требуется сегментация. Тем не менее, рассмотрим несколько способов разбиения текста на слова.

Как включить распознавание текста в iOS 15 на iPhone?

  • Страница текста разбивается на строки, затем строка разбивается на слова, где пробел является их разделителем. Для этого на текст последовательно накладываются фильтры для удаления шумов и определения границ слов.
  • Текст разбивается на составные части — компоненты и рассчитывается расстояние между их центрами. В качестве параметра алгоритма принимается какое-то пороговое значение расстояния, которое в дальнейшем можно подобрать исходя из успешности результатов.
  • Следующий подход тоже основан на расчете расстояний. С помощью метода опорных векторов находится плоскость, которая разделяет два разных типа данных (символа), а затем с помощью порогового значения текст разбивается на слова.

​Опорные вектора отмечены окружностями

  • Последний подход использует несколько способов расчета расстояния между и их комбинация.

a — исходный кусок текста, b — ​ограничивающий прямоугольник, с — Евклидово расстояние, d — горизонтальное расстояние

Языковая модель

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

Читайте также:
Программа глобус для заработка отзывы

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

Префиксное дерево

Алгоритм поиска слова по префиксу достаточно быстрый и простой для понимания. Как можно догадаться, используется структура дерево, где рёбра — буквы, а вершина содержит признак слова. Таким образом, слово представляется в виде пути от корневого узла (первой буквы слова) через рёбра — составные буквы слова к вершине с признаком слова.

На иллюстрации можно увидеть представление слов to, too, a, this, that.​
Классификация

На вход классификатора может поступать как изображения отдельных слов, так и целых строк. ИНС состоит из слоёв. Именно здесь и происходит вся магия и математека: сначала используются свёрточные нейронные сети (СНС) — операции свёртки и пулинга, и рекуррентные нейронные сети (РНС), а именно один из типов типы LSTM, mdlstm, IDCN.

Суть свёртки в том, что каждый фрагмент изображения умножается на матрицу (ядро) свёртки поэлементно, а результат суммируется и записывается в аналогичную позицию выходного изображения (формируется карта признаков — feature map). Операция пулинга позволяет существенно уменьшить объём изображения. Пулинг интерпретируется так: если на предыдущей операции свёртки уже были выявлены некоторые признаки, то для дальнейшей обработки настолько подробное изображение уже не нужно, и оно уплотняется до менее подробного — выполняется уменьшение размерности сформированных карт признаков. Так же конечный результат зависит от датасета — набора изображений для модели для каждой буквы разного почерка.

Пост-обработка

Текст после классификации может быть проверен на орфографию. На данном этапе в нашем распоряжении только текстовая информация без исходных графических данных. Например, текст разбивается на слова, затем проверяется на наличие в словаре. Если в словаре нет слова, но оно похоже на какое-то, предлагается вариант для исправления. Исправления можно так же тренировать параллельно от классификатора.

Заключение

Максимальная точность распознавания рукописного текста на английском, результаты которого удалось найти в открытых источниках, достигает величины от 55 до 75%. Пост-обработка дает улучшение результатов в среднем на 15% для каких-то алгоритмов, а может и ухудшить результаты (до 3-6%).

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

Если вас заинтересовала тема глубокого обучения, советую для прочтения эту книгу. Пример реализации алгоритма для распознавания рукописного текста можно найти на GitHub, например, у этого автора.

Источник: vc.ru

Программа распознавания текста работает над печатной страницей

  • 12
  • 16
  • 9
  • 11
  • 3
  • 2

5 лет назад

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

5 лет назад

Очень полезно. А есть ли еще доступные программы для распознавания голоса, чтобы надиктовывать текст. а не набирать? Сколько сил и времени они могли бы сохранить.

5 лет назад

Очень полезно. А есть ли еще доступные программы для распознавания голоса, чтобы надиктовывать текст. а не набирать? Сколько сил и времени они могли бы сохранить.

Читайте также:
В какой программе верстать брошюры

5 лет назад

Алексей, Не так давно, что-то похожее видел смотрите комментарии.
http://sos.mirtesen.ru/blog/43113845531/Ustanovka-Diktograf?utm_campaign=transitutm_medium=page_0paid=1https://pomogaemkompu.temaretik.com/1346421934289586216/raspoznavanie-napechatannogo-teksta-s-kartinki-rejting-luchshih-programm-i-printsipy-ih-raboty/» target=»_blank»]pomogaemkompu.temaretik.com[/mask_link]

Отсканировать страницу текста, выполнить его распознавание и (при необходимости) корректировку. Результат сохранить в текстовом документе.

Рассмотрим выполнение данного задания с помощью программы FineReader 6.0. Расположим исходную страницу текста в сканере, откроем программу FineReader. Программа работает со сканерами через TWAIN-интерфейс. Это единый международный стандарт для унификации взаимодействия устройств ввода изображений в компьютер с внешними приложениями. Возможно два варианта взаимодействия программы со сканерами через TWAIN-драйвер:

· через интерфейс FineReader доступно сканирование в цикле на сканерах без автоподатчика, сохранение опций сканирования в отдельный файл Шаблон пакета (*.fbt) и возможность применения этих опций в других пакетах;

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

Можно переключаться между этими режимами на закладке Сканирование / Открытие пункта Опции (меню Сервис > Опции), нужно установить переключатель в одно из положений:

1. Использовать интерфейс TWAIN-драйвера сканера.

2. Использовать интерфейс FineReader.

Чтобы запустить сканирование, можно нажать кнопку Сканировать или в меню Файл выбрать пункт Cканировать.

Спустя некоторое время в Главном окне программы появится окно Изображение с изображением вставленного листа.

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

Тип изображения — серый, черно-белый, цветной. Для системы распознавания оптимальным является сканирование в сером режиме, при этом проводится автоматический подбор яркости. Черно-белый режим экономит время сканирования, но может потерять информацию о буквах. Цветной режим выбирают, если нужно сохранить цветные элементы текста.

Разрешение. Следует использовать разрешение 300 dpi для обычных текстов и 400–600 dpi для текстов, набранных мелким шрифтом.

Яркость — в большинстве случаев подходит среднее значение яркости — 50%.

Чтобы установить параметры сканирования, нужно выбрать меню Сервис и пункт Настройки сканера. Появится следующее окно, где можно установить приведенные параметры.

Применив указанные настройки, получим следующее изображение листа:

Перед распознаванием следует проверить и откорректировать полученное изображение листа. Изображение может содержать много лишних точек, возникших в результате сканирования документов среднего или плохого качества. Чтобы уменьшить количество лишних точек, можно воспользоваться опцией Очистить от мусора. Для этого в меню Изображение следует выбрать пункт Очистить изображение от мусора. Если требуется очистить от “мусора” отдельный блок, то следует выбрать пункт Очистить блок от мусора.

Если нужно какой-то участок текста исключить из распознавания, то можно стереть такие участки. Для этого нужно выбрать инструмент Ластик (на панели в окне Изображение) и, нажав на левую кнопку мыши, выделить требуемый участок изображения, и отпустить кнопку. Выделенная часть изображения будет удалена.

Прежде чем приступить к распознаванию, следует указать программе, какие участки изображения надо распознавать. Для этого проводится анализ макета страницы, во время которого выделяются блоки с текстом, картинки, таблицы. Автоматический анализ производится по кнопке 2 Распознать одновременно с распознаванием текста. При автоматическом анализе макета страницы FineReader сам выделяет блоки, содержащие тексты, таблицы, картинки.

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

1. Зона Распознавания — блок используется для распознавания и автоматического анализа части изображения.

Читайте также:
Нужна ли программа криптопро для ЭЦП

2. Текст — блок используется для обозначения текста. Он должен содержать только одноколоночный текст. Если внутри текста содержатся картинки, нужно выделить их в отдельные блоки.

3. Таблица — этот блок используется для обозначения таблиц или текста, имеющего табличную структуру. При распознавании программа разбивает данный блок на строки и столбцы и формирует табличную структуру. В выходном тексте данный блок передается таблицей.

4. Картинка — этот блок используется для обозначения картинок. Он может содержать картинку или любую другую часть текста, которую нужно передать в распознанный текст в качестве картинки.

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

5. Язык распознавания. Программа поддерживает распознавание как одноязычных, так и многоязычных документов. Чтобы указать язык распознаваемого текста, нужно выбрать соответствующую строку в списке на панели Распознавание. Если требуется распознать документ, написанный на нескольких языках, следует в списке языков на панели Стандартная выбрать пункт Выбор нескольких языков… В открывшемся диалоге Язык распознаваемого текста укажите несколько языков.

1. Тип печати распознанного текста. Для большинства текстов тип печати определяется автоматически. При распознавании текстов, напечатанных на матричном принтере в черновом режиме или на пишущей машинке, можно добиться более высокого качества распознавания, установив правильный Тип печати:

· Пишущая машинка — для текстов, напечатанных на пишущей машинке;

· Матричный принтер — для текстов, напечатанных на матричном принтере.

Чтобы поменять тип печати на закладке Распознавание диалога Опции (меню Сервис>Опции), в группе Тип печати можно выбирать требуемый пункт.

2. Тип страницы. Для большинства изображений расположение текста на странице определяется автоматически, чему соответствует значение Авто на закладке Распознавание в группе Тип страницы (меню Сервис > Опции), устанавливаемое системой по умолчанию.

В некоторых случаях может потребоваться установить значение типа страницы вручную. Для этого на закладке Распознавание диалога Опции (меню Сервис>Опции) в группе Тип страницы нужно выбрать нужный пункт.

Укажем некоторые типы страницы:

1. Автоматическое определение — указывает, что расположение текста на странице определяется автоматически. Это значение устанавливается системой по умолчанию, подходит для распознавания всех видов текстов, в том числе многоколоночного текста, текста с таблицами и картинками.

2. Одна колонка —указывает, что текст на странице напечатан в одну колонку. Эта опция используется в случае, если автоматическое определение ошибочно сегментировало страницу как многоколоночный текст.

3. Форматированный пробелами текст —указывает, что текст на странице расположен в одну колонку и напечатан моноширинным шрифтом одного размера. В распознанном тексте сохраняется деление на строки; отступы от левого края передаются пробелами; каждая строка выделяется в отдельный абзац, и расстояния между абзацами передаются пустыми строками. Используется, например, для распознавания распечаток текстов программ.

Зададим опции распознавания в следующем окне:

После завершения распознавания результат появляется в окне Текст:

Окно Текст — это встроенный редактор программы FineReader; в нем можно проверить результаты распознавания и отредактировать распознанный текст. Одна из возможностей текстового редактора FineReader — это встроенная проверка орфографии. Система встроенной проверки орфографии позволяет:

1. Находить неуверенно распознанные слова (слова, в которых есть неуверенно распознанные символы).

2. Находить орфографические ошибки (неправильно написанные слова).

3. Добавлять неизвестные системе FineReader слова в словарь для того, чтобы они распознавались уверенно.

Неуверенно распознанные символы и слова, которых нет в словаре, выделяются различными цветами. По умолчанию для выделения неуверенно распознанных символов используется голубой, для несловарных слов — розовый. Чтобы проверить результаты распознавания, нужно нажать кнопку 3 Проверить на панели Scanhttps://cyberpedia.su/17x8c97.html» target=»_blank»]cyberpedia.su[/mask_link]

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru