1. Основные этапы OCR

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

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

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

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

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

6. Постобработка. После классификации результаты не на 100% верны, особенно для сложных языков. Для повышения точности систем оптического распознавания символов могут применяться методы постобработки. Эти методы используют обработку естественного языка, геометрический и лингвистический контекст для исправления ошибок в результатах распознавания текста. Например, постпроцессор может использовать средство проверки орфографии и словарь, вероятностные модели, такие как цепи Маркова и n-граммы, для повышения точности. Временная и пространственная сложность постпроцессора не должна быть очень высокой, и применение постпроцессора не должно приводить к новым ошибкам.

Подходы к этапу описания

Приобретение

Процесс получения изображения

Оцифровка, бинаризация, сжатие

Предварительная обработка

Для повышения качества изображения

Удаление шума, Удаление перекосов, прореживание, морфологические операции

Сегментация

Разделить изображение на составляющие его символы

Неявная и явная сегментация

Извлечение функций

Чтобы извлечь функции из изображения

Геометрические элементы, такие как петли, угловые точки. Статистические характеристики, например моменты.

Классификация

Чтобы отнести персонажа к определенному классу

Нейронная сеть, Байесовский, Ближайшее окружение

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

Для повышения точности результатов распознавания текста

Контекстные подходы, множественные классификаторы, словарные подходы

2. Измерение точности OCR

Когда дело доходит до точности распознавания текста, есть два способа измерить надежность распознавания текста:

§ Точность на уровне персонажа

§ Точность на уровне слов

В большинстве случаев точность технологии OCR оценивается по уровню персонажа. Насколько точно программа OCR работает на уровне символа, зависит от того, как часто символ распознается правильно, а не от того, как часто символ распознается неправильно. Точность 99% означает, что 1 из 100 символов является неопределенным. Хотя точность 99,9% означает, что 1 из 1000 символов является неопределенным.

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

Программа OCR вычисляет уровень достоверности для каждого обнаруженного символа. Уровни достоверности слов и страниц можно рассчитать на основе достоверности символов с помощью алгоритмов либо внутри программного обеспечения OCR, либо в качестве внешнего настраиваемого процесса. Программа оптического распознавания текста не знает, правильный ли какой-либо символ или нет - она ​​может быть уверена или не уверена в том, что он правильный. Это даст ему уровень уверенности от 0 до 9. Истинную точность, то есть правильность персонажа, может определить только независимый арбитр, человек. Это можно сделать путем корректуры статей или страниц или путем ручного переназначения всей статьи или страницы и сравнения вывода с выводом OCR. Эти методы требуют очень много времени. На практике уровни достоверности часто используются вместо точности, поскольку определение истинной точности невозможно для больших объемов текста.

3. Способы повышения точности оптического распознавания символов

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

Хотя типичные коммерческие системы OCR сообщают об успешном распознавании символов от 90 до 99%, большая часть производительности зависит от процесса сканирования и подготовки изображения перед фактическим распознаванием символов. Поэтому крайне важно оптимизировать сам процесс сканирования, чтобы максимально повысить эффективность распознавания текста. После цифрового сканирования бумажного документа полученное изображение обрабатывается с помощью ряда алгоритмов, основанных на методах компьютерного зрения. Эти этапы предварительной обработки нацелены на то, чтобы максимально исправить неровности процесса сканирования.

Устранение перекоса: процесс, с помощью которого определяется ограничивающая рамка отсканированного документа и изображение поворачивается таким образом, что документ может отображаться в типичном вертикальном положении, поскольку большинство форм соответствует стандарту. Формат А4.

[Рисунок 1]

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

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

Выравнивание гистограммы: в зависимости от сканирующего устройства некоторые части изображения могут быть более экспонированы, чем другие. Это объясняет, почему одни части итогового документа выглядят ярче других. Выравнивание гистограммы - это метод, призванный сбалансировать самые яркие и самые темные области изображения.

[Рисунок 2]

Сегментация страницы: если отсканированное изображение содержит область, которая находится за пределами документа, эту область следует обнаружить и сегментировать, поскольку это может привести к дополнительным ошибкам во время распознавания символов.

Анализ макета страницы: с обобщением инфраструктуры больших данных проекты оцифровки записей теперь часто включают миллионы документов, отформатированных в сотни, а иногда и тысячи различных макетов. Эти макеты могут включать не только текст, но и изображения, схемы и диаграммы. Чтобы еще больше повысить точность сегментации «строка-слово-символ», документы автоматически классифицируются на основе их макетов.

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

[Рисунок 3]

Распознавание символов

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

Методы, основанные на функциях, основываются на явных характеристиках символа, таких как вертикальные / горизонтальные линии, петли и пересечения линий. Характеристики определенного персонажа сравниваются с набором характеристик из известного набора символов, чтобы определить наиболее похожий символ. Для рукописных документов использовались методы, основанные на признаках, где внешний вид персонажей может сильно различаться в зависимости от автора документа. В список типовых алгоритмов входят k-ближайшие соседи, SVM и нейронные сети.

Безликие методы приобрели популярность в документах, в которых используется согласованный набор символьных шрифтов, или когда процесс сканирования и этапы предварительной обработки успешно устраняют несоответствия в изображении. Эти методы заключаются в идентификации наиболее вероятного символа исключительно на основе значения шкалы серого блока символов. Наилучшие результаты для стандартных наборов данных достигаются с помощью методов, основанных на сверточных нейронных сетях, типе нейронных сетей с прямой связью с несколькими скрытыми слоями. Сверточные нейронные сети стремятся минимизировать влияние ошибок при предварительной обработке изображения. В базе данных рукописных цифр MNIST, управляемой Национальным институтом стандартов и технологий США, метод, основанный на сверточных нейронных сетях, обеспечивает коэффициент ошибок 0,21%.

Исправления после обработки

Даже самые лучшие алгоритмы OCR по-прежнему дают ошибки. Например, 99% производительности или 1 ошибка из 100 символов могут привести к ненужным затратам или потере информации. Типичные ошибки включают ошибки подстановки (например, неправильное определение «m» вместо «n»), ошибки удаления (например, пропуск символа в слове), ошибки вставки (например, добавление символа, который не был частью исходного текста). По этой причине исправления постобработки часто выполняются после распознавания символов. Исправления обычно состоят из проверки орфографии на основе специализированного словаря или другой контекстной лексики, адаптированной к конкретному оцифрованному тексту.

Подход на основе словаря заменяет слова наиболее вероятными словами в словаре. Мера правдоподобия определяется с помощью метрики расстояния между словами, такой как расстояние Дамерау-Левенштейна [6]. Однако чисто словарные исправления не учитывают контекстную информацию, содержащуюся в предложении. Например, «Медицинская история» может быть исправлена ​​на «Медицинская тайна», поскольку «Тайна» является наиболее вероятным словом для «истории» при анализе вне контекста. Тем не менее, контекстная коррекция должна указывать на «Историю болезни» как на правильный ответ.

Контекстно-ориентированные подходы обычно основываются на статистическом моделировании языков (SLM), методике обработки естественного языка (NLP), которая направлена ​​на моделирование регулярных выражений и совпадений слов. В предыдущем примере лексика, относящаяся к поставщику или плательщику, должна четко указывать на «История болезни» как на правильный ответ. Матрица совместной встречаемости определяется как соответствие между словом и регулярным выражением. В нашем примере «История» будет более тесно связана с «Историей болезни», чем «Тайна». Таким образом, матрица совместной встречаемости моделирует статистическое распределение словесных ассоциаций в регулярных выражениях. Затем эта модель используется методами оптимизации, такими как Точечная взаимная информация, чтобы правильно назначить наиболее вероятное слово с учетом контекста данного предложения.

ПРИЛОЖЕНИЕ I

Механизмы с открытым исходным кодом для OCR

1. Tesseract - это движок оптического распознавания символов для различных операционных систем. Это бесплатное программное обеспечение, выпущенное под лицензией Apache, версия 2.0, а разработка спонсируется Google с 2006 года.

2. GOCR (или JOCR) - это бесплатная программа оптического распознавания символов. Его можно использовать для преобразования или сканирования файлов изображений (портативных растровых изображений или PCX) в текстовые файлы.

3. Ocrad - программа оптического распознавания символов, входящая в состав Проекта GNU. Это свободное программное обеспечение, лицензированное под GNU GPL. Основываясь на методе извлечения признаков, он считывает изображения в форматах портативных растровых изображений, известных как Portable anymap, и производит текст в байтовых (8-битных) форматах или UTF-8.

4. CuneiForm Cognitive OpenOCR - свободно распространяемая система распознавания текста с открытым исходным кодом, разработанная российской компанией-разработчиком программного обеспечения Cognitive Technologies.

5. OCRopus - это бесплатная система анализа документов и оптического распознавания символов (OCR), выпущенная под лицензией Apache License v2.0 с очень модульной конструкцией с использованием интерфейсов командной строки. ».

6. OCRFeeder - это пакет оптического распознавания символов для GNOME, который также поддерживает практически любой движок OCR командной строки, такой как CuneiForm, GOCR, Ocrad и Tesseract. ». Он преобразует бумажные документы в файлы цифровых документов и может сделать их доступными для пользователей с ослабленным зрением.

Инструменты с открытым исходным кодом для предварительной обработки изображений

§ Leptonica: универсальная библиотека для обработки и анализа изображений, а также инструмент командной строки. Leptonica - это также библиотека, используемая Tesseract OCR для преобразования изображений в двоичную форму.

§ OpenCV: библиотека обработки изображений с открытым исходным кодом и привязками для C ++, C, Python и Java. OpenCV был разработан для вычислительной эффективности и с упором на приложения реального времени.

§ ImageMagick: библиотека для обработки изображений общего назначения и инструмент командной строки. Для любого вида обработки изображений доступен длинный список параметров командной строки.

§ unpaper: название говорит само за себя. Unpaper - это библиотека пост-обработки, специально созданная для устранения всех проблем, связанных с бумагой, из отсканированного документа. Если вы хотите получить достойные результаты без каких-либо настроек, не смотрите дальше и используйте Unpaper.

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

ПРИЛОЖЕНИЕ II

Примеры использования OCR

Страхование

Защита от мошенничества: используйте OCR для извлечения цифровой информации из физических записей (устаревших и текущих) и оцените соответствующую часть, чтобы вывести любые отклонения в контракте, претензиях, условиях претензий и сценариях.

Корректировка рисков. Определите риски, связанные со страхованием (медицинским или личным), путем цифрового извлечения данных из документов о претензиях и определите условия, связанные с определенными профилями рисков с высоким-средним-низким уровнем для оптимальной оценки страхового взноса.

Банковское дело

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

Здравоохранение

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

Диагностика заболеваний и группа риска для пациентов: OCR с CAD (компьютерная диагностика) может помочь идентифицировать критические медицинские состояния по цифровым записям и помочь выявить предварительные условия.

Производство / телекоммуникации

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