OCR для PDF-файлов

Исходный узел: 879686

Введение

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

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


Ищете решение OCR для извлечения информации из PDF-файлов? Даешь нанонетыспин для более высокой точности, большей гибкости, постобработки и широкого набора интеграций!


Достижения в решениях для оптического распознавания текста

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

Традиционное распознавание текста

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

  1. Соберите базу данных известных персонажей.
  2. Используйте фотосенсоры для сбора и отделения отдельных писем от отсканированных документов.
  3. Сравните набор атрибутов, полученных от фотосенсоров, с физическими атрибутами из базы данных.
  4. Преобразуйте каждый набор атрибутов соответственно в известный символ с наибольшим сходством.

Хотя традиционный подход кажется эффективным в большинстве случаев, он уязвим для присущих ему ограничений, основанных на правилах. Одним из важнейших промежуточных шагов OCR является успешное извлечение отдельных букв или знаков из набора / группы текстов. Для этого извлечения требуются определенные шаблоны или правила (например, предварительно установленные размеры / стили шрифта), чтобы оно было очень точным. Введение все большего количества правил для повышения точности создаст дилемму оптического распознавания текста или исправления только для определенных стилей написания. Любые несоответствия освещения во время процесса сканирования также могут привести к ошибкам, если OCR полностью основано на правилах.

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

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

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

Механизмы распознавания текста на основе глубокого обучения

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

Архитектура нейронной сети

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

  • Сверточные нейронные сети (CNN) - CNN - это один из самых доминирующих наборов сетей, используемых сегодня, особенно в сфере компьютерного зрения. Он состоит из нескольких сверточных ядер, которые скользят по изображению для извлечения признаков. В сочетании с традиционными сетевыми уровнями в конце, CNN очень успешно извлекают особенности из данного изображения для выполнения прогнозов. В дальнейшем этот процесс можно перенести на задачу поиска ограничивающих рамок и определения атрибутов символов для дальнейшей классификации в процессе распознавания текста.
  • Долгосрочные кратковременные воспоминания (LSTM) - LSTM - это семейство сетей, применяемых в основном для ввода последовательности. Интуиция проста - для любых последовательных данных (например, погоды, запасов) новые результаты могут сильно зависеть от предыдущих результатов, и поэтому было бы полезно постоянно продвигать предыдущие результаты как часть входных функций при выполнении новых прогнозов. . В случае OCR, ранее обнаруженные буквы могут оказаться большим подспорьем для предсказания следующего, поскольку набор символов обычно должен иметь смысл при объединении (например, английская буква «g» с большей вероятностью появится после «do» чем число «9», несмотря на их схожие атрибуты).

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

  • шумодав - Когда документ отсканирован неправильно, методы, основанные на правилах, могут легко потерпеть неудачу. Недавний подход, принятый технологиями OCR, заключается в применении генерирующей состязательной сети (GAN) для «шумоподавления» входных данных. GAN состоит из двух сетей, генератора и дискриминатора. Генератор постоянно генерирует новые входные данные для дискриминатора, чтобы различать фактические и сгенерированные входные данные, позволяя генератору постоянно совершенствоваться в создании идеального содержимого. В этом случае GAN обучается на основе пары документов с шумоподавлением и с шумом, и цель генератора состоит в том, чтобы сгенерировать документ без шумов, максимально приближенный к достоверным. На этапе подачи заявки GAN, если он хорошо обучен, может затем использоваться на каждом входе для точной настройки любых плохо отсканированных документов.
  • Идентификация документа - Задачи OCR, особенно задачи OCR для PDF-файлов, часто используются для правильного извлечения данных из форм и документов. Следовательно, знание типа документа, обрабатываемого устройством OCR в настоящее время, может значительно повысить точность извлечения данных. В последнее время в искусстве внедрена сиамская сеть, или сеть сравнения, для сравнения документов с уже существующими форматами документов, что позволяет механизму OCR выполнять классификацию документов заранее. Эмпирически показано, что этот дополнительный шаг повышает точность поиска текста.

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


Ищете решение OCR для извлечения информации из PDF-файлов? Даешь нанонетыспин для более высокой точности, большей гибкости, постобработки и широкого набора интеграций!


Приложения программного обеспечения PDF OCR

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

Численный анализ данных

Когда PDF-файлы содержат числовые данные, OCR помогает извлечь их для проведения статистического анализа. В частности, OCR с помощью извлечения таблиц или пар ключ-значение (KVP) может применяться для поиска значимых чисел из разных областей одного заданного текста. Затем мы можем применить статистические методы или даже методы машинного обучения (например, KNN, K-Means, линейную / логистическую регрессию) к моделям различных приложений.

Интерпретация текстовых данных

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

Преимущества PDF OCR

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

Случаи личного использования

PDF-файлы OCR обеспечивают невероятное удобство при решении таких надоедливых задач, как сканирование удостоверений личности и личное финансирование.

Персональные идентификаторы часто требуется преобразовывать в форматы PDF для отправки в различные приложения. Эти идентификационные документы содержат такую ​​информацию, как дата рождения и идентификационные номера, которые часто требуется многократно вводить для разных целей, и поэтому высокоточный PDF OCR, который находит совпадающие поля и соответствующие значения в идентификаторе, будет отличным помощь в выполнении тривиальных ручных задач. Единственная необходимая работа - это просто перепроверить на предмет несоответствия.

Личное финансирование - это еще один процесс, требующий огромного количества ручного труда. Хотя разработки в Excel и электронных таблицах уже упростили такие задачи, как составление личного бюджета, распознавание текста и извлечение данных из счетов-фактур в формате PDF могли бы еще больше ускорить процесс. Эти данные могут быть автоматически помещены в электронные таблицы для анализа, как упоминалось в предыдущих разделах. Можно легко использовать первоначальное время ввода для обдумывания лучших финансовых планов.

Случаи использования в бизнесе

Как крупным корпорациям, так и более мелким организациям приходится иметь дело с тысячами документов в аналогичных форматах, которые очень трудоемки и, тем не менее, непродуктивны (т. Е. Весь труд используется для чего-то, что требует меньше мозгового штурма). Автоматическая классификация документов и сбор / анализ опросов - вот где пригодится OCR.

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

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


Ищете решение OCR для извлечения информации из PDF-файлов? Даешь нанонетыспин для более высокой точности, большей гибкости, постобработки и широкого набора интеграций!


Простой учебник

PDF OCR можно легко запрограммировать лично. Ниже приведен простой конвейер для выполнения распознавания текста в PDF-файлах.

Преобразование PDF в изображения

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

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

pip install pdf2image

После этого можно импортировать библиотеку и использовать любую из двух строк кода для получения изображения в формате PIL следующим образом:

from pdf2image import convert_from_path, convert_from_bytes
from pdf2image.exceptions import ( PDFInfoNotInstalledError, PDFPageCountError, PDFSyntaxError
) images = convert_from_path('/home/belval/example.pdf')
images = convert_from_bytes(open('/home/belval/example.pdf','rb').read())

Для получения дополнительной информации о коде вы можете обратиться к официальной документации в https://pypi.org/project/pdf2image/

OCR изображений

Существует множество API-интерфейсов от крупных технологических компаний с высокоточными OCR. Из-за предположения, что PDF-файлы обычно содержат плотные текстовые данные, наиболее подходящим способом выполнения такого OCR будет использование Google Vision API, в частности Документ_Текст_Аннотация функционировать, поскольку он специально разработан для таких целей. Конкретно, Документ_Текст_Аннотация отправляет код в систему OCR, разработанную Google для плотных текстов, в том числе рукописных текстов на разных языках.

Весь API Google Vision прост в настройке, можно обратиться к его официальному руководству по https://cloud.google.com/vision/docs/quickstart-client-libraries для подробной процедуры настройки.

После этого мы можем использовать следующие коды для извлечения OCR:

def detect_document(path): """Detects document features in an image.""" from google.cloud import vision import io client = vision.ImageAnnotatorClient() with io.open(path, 'rb') as image_file: content = image_file.read() image = vision.Image(content=content) response = client.document_text_detection(image=image) for page in response.full_text_annotation.pages: for block in page.blocks: print('nBlock confidence: {}n'.format(block.confidence)) for paragraph in block.paragraphs: print('Paragraph confidence: {}'.format( paragraph.confidence)) for word in paragraph.words: word_text = ''.join([ symbol.text for symbol in word.symbols ]) print('Word text: {} (confidence: {})'.format( word_text, word.confidence)) for symbol in word.symbols: print('tSymbol: {} (confidence: {})'.format( symbol.text, symbol.confidence)) if response.error.message: raise Exception( '{}nFor more info on error messages, check: ' 'https://cloud.google.com/apis/design/errors'.format( response.error.message))

Кроме того, Google Vision API также поддерживает несколько языков, например Java и Go. Дополнительные коды, касающиеся использования Google API, можно найти здесь: https://cloud.google.com/vision  

Существуют также другие сервисы / API OCR от Amazon и Microsoft, и вы всегда можете использовать ПиТессеракт библиотека для обучения вашей модели для конкретных целей.


Ищете решение OCR для извлечения информации из PDF-файлов? Даешь нанонетыспин для более высокой точности, большей гибкости, постобработки и широкого набора интеграций!


сравнение

В настоящее время на рынке доступно множество PDF OCR. В то время как некоторые из них бесплатны, быстры и могут быть мгновенно использованы в Интернете, другие предоставляют более точные и продуманные продукты для профессионального использования. Здесь мы опишем несколько вариантов, а также их плюсы и минусы.

Онлайн-PDF OCR

При использовании PDF OCR для личного использования при быстром преобразовании, бесплатная и быстрая работа может быть важнее точности. Существует множество онлайн-сервисов PDF OCR, которые удовлетворяют этим требованиям. Можно просто загрузить PDF-документы и быстро и удобно преобразовать их в письменный текст.

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

Автономное программное обеспечение

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

Существует несколько сервисов OCR, которые нацелены на выполнение таких задач, как создание изображений в дикой природе. Мы пропустили эти услуги, так как в настоящее время сосредоточены только на чтении PDF-документов.

  • ABBYY - ABBYY FineReader PDF - это программа распознавания текста, разработанная ABBYY. Программное обеспечение имеет удобный пользовательский интерфейс, используемый для чтения PDF-файлов и преобразования текста. Однако, учитывая его неинженерный характер (целевые клиенты - нетехнические специалисты в других областях, нуждающиеся в PDF OCR), было бы сложнее включить его в другие программы для дальнейшей обработки.
  • Кофакс - Подобно ABBYY, Kofax - удобная программа для чтения PDF-файлов, требующая покупки. Цена фиксирована для индивидуального использования, для крупных корпораций предусмотрены скидки. 24/7 помощь также доступна в случае каких-либо технических проблем.
  • Глубокий читатель - Deep Reader - это исследовательская работа, опубликованная на конференции ACCV Conference 2019. Она включает в себя несколько современных сетевых архитектур для выполнения таких задач, как сопоставление документов, поиск текста и шумоподавление изображений. Существуют дополнительные функции, такие как таблицы и извлечения пар ключ-значение, которые позволяют извлекать и сохранять данные в организованном порядке.
  • Нанонеты ™ - Nanonets ™ PDF OCR использует глубокое обучение и, следовательно, полностью не зависит от шаблонов и правил. Наносеть может не только работать с определенными типами PDF-файлов, но также может применяться к любому типу документа для поиска текста.

Заключение

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

Источник: https://nanonets.com/blog/pdf-ocr/

Отметка времени:

Больше от ИИ и машинное обучение