Подтвердить что ты не робот

Может ли программное обеспечение OCR надежно считывать значения из таблицы?

Будет ли программное обеспечение OCR надежно преобразовывать изображение, такое как следующее, в список значений?
Table of values

UPDATE:

Более подробно задача такова:

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

Пользователь выбирает область отчета, содержащую таблицу. Использование мыши.

Теперь мы хотим преобразовать выбранную таблицу в значения - используя наш инструмент OCR.

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

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

4b9b3361

Ответ 1

Простой ответ: ДА, вы должны просто выбрать нужные инструменты.

Я не знаю, сможет ли с открытым исходным кодом приблизиться к 100% точности на этих изображениях, но на основе ответов здесь, вероятно, да, если вы потратите некоторое время на обучение и решите проблему анализа таблицы и тому подобное.

Когда мы говорим о коммерческом OCR, таком как ABBYY или другом, он предоставит вам 99% + точность из коробки, и он автоматически обнаружит таблицы. Нет обучения, ничего, просто работает. Недостатком является то, что вы должны заплатить за него $$. Кто-то возразил бы, что для открытого источника вы платите свое время, чтобы настроить его и использовать, но все решают для себя здесь.

Однако, если мы говорим о коммерческих инструментах, на самом деле существует больше выбора. И это зависит от того, чего вы хотите. Изделия в штучной упаковке, такие как FineReader, на самом деле нацелены на преобразование входных документов в редактируемые документы, такие как Word или Excell. Поскольку вы действительно хотите получать данные, а не документ Word, вам может потребоваться изучить другую категорию продукта - Data Capture, которая по существу является OCR и дополнительной логикой для поиска необходимых данных на странице. В случае счета-фактуры это может быть название компании, общая сумма, дата погашения, позиции в таблице и т.д.

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

И есть также OCR SDK, который даст вам доступ к API для результатов распознавания, и вы сможете запрограммировать, что делать с данными.

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

UPDATE

Так что вы делаете в основном приложение Data Capture, но не полностью автоматизированное, используя так называемый подход "click to index". На рынке существует множество приложений: вы просматриваете изображения и клики оператора на текст на изображении (или рисуете прямоугольник вокруг него), а затем заполняете поля в базу данных. Это хороший подход, когда количество изображений для обработки относительно невелико, а ручная рабочая нагрузка недостаточно велика, чтобы оправдать стоимость полностью автоматизированного приложения (да, есть полностью автоматизированные системы, которые могут делать изображения с разными шрифтами, интервалом, макетом, количеством строки в таблицах и т.д.).

Если вы решили развить материал и вместо того, чтобы покупать, тогда вам нужно всего лишь выбрать OCR SDK. Весь пользовательский интерфейс, который вы собираетесь написать сами, не так ли? Большой выбор - решить: с открытым исходным кодом или коммерческий.

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

Commercial OCR даст более высокую точность, но будет стоить вам денег. Я думаю, вы все равно должны посмотреть, стоит ли это, или tesserack достаточно для вас. Я думаю, что самым простым способом было бы загрузить пробную версию какого-либо окна OCR prouct, например FineReader. Вы получите представление о том, какая точность будет в OCR SDK.

Ответ 2

Если у вас всегда есть сплошные границы в таблице, вы можете попробовать это решение:

  • Найдите горизонтальные и вертикальные линии на каждой странице (длинные прогоны черные пиксели)
  • Сегмент изображения в ячейки с использованием координат линии
  • Очистите каждую ячейку (удалите границы, порог на черно-белый)
  • Выполните OCR для каждой ячейки
  • Соберите результаты в 2D-массив

В противном случае ваш документ имеет таблицу без полей, вы можете попробовать следовать этой строке:

Оптическое распознавание символов - довольно удивительный материал, но это не всегда совершенен. Чтобы получить наилучшие результаты, он помогает использовать самый чистый вход вы можете. В моих первоначальных экспериментах я обнаружил, что выполнение OCR по всему документу действительно работало довольно хорошо, как когда я удалил границы ячеек (длинный горизонтальный и вертикальный линии). Однако программное обеспечение сжимало все пробелы в одном пустое место. Поскольку в моих входных документах было несколько столбцов с несколько слов в каждом столбце, границы ячеек терялись. Сохранение отношения между ячейками было очень важным, поэтому один возможным решением было нарисовать уникальный характер, например "^" на каждом граница ячейки - то, что OCR все равно распознает и что я может использовать позже, чтобы разбить результирующие строки.

Я нашел всю эту информацию в этой ссылке, прося Google "OCR to table". Автор опубликовал полный алгоритм с использованием Python и Tesseract, как с открытым исходным кодом!

Если вы хотите попробовать силу Tesseract, возможно, вам стоит попробовать этот сайт:

http://www.free-ocr.com/

Ответ 3

Какой OCR вы говорите?
Будете ли вы разрабатывать коды на основе этого OCR или вы будете что-то использовать с полок?

FYI: Tesseract OCR

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

Ответ 4

Это действительно зависит от реализации.

Есть несколько параметров, которые влияют на способность распознавания распознавания:
1. Насколько хорошо обучено OCR - размер и качество базы данных примеров
2. Как хорошо его обучают обнаруживать "мусор" (помимо того, что знаете письмо, вам нужно знать, что НЕ является буквой).
3. Дизайн и тип OCR
4. Если это Nerural Network, структура Nerural Network влияет на ее способность учиться и "решать".

Итак, если вы не делаете свой собственный, это просто вопрос тестирования разных типов, пока вы не найдете подходящий.

Ответ 5

Вы можете попробовать другой подход. С помощью tesseract (или другого OCRS) вы можете получить координаты для каждого слова. Затем вы можете попытаться сгруппировать эти слова с помощью vercital и горизонтальных координат, чтобы получить строки/столбцы. Например, чтобы разделить пробел и пространство табуляции. Для получения хороших результатов требуется определенная практика, но это возможно. С помощью этого метода вы можете обнаруживать таблицы, даже если в таблицах используются невидимые разделители - нет строк. Координаты слова - это основа для таблицы recog

Ответ 6

Мы также боролись с проблемой распознавания текста внутри таблиц. Есть два решения, которые делают это из коробки, ABBYY Recognition Server и ABBYY FlexiCapture. Rec Server - это серверный инструмент OCR с большим объемом, предназначенный для преобразования больших объемов документов в формат, доступный для поиска. Хотя он доступен с API для этих видов использования, мы рекомендуем FlexiCapture. FlexiCapture обеспечивает низкий уровень контроля над извлечением данных из форматов таблицы, включая автоматическое обнаружение элементов таблицы на странице. Он доступен в полной версии API без переднего конца или в оффшорной версии, которую мы продаем. Подойдите ко мне, если хотите узнать больше.