Проблемы с производительностью с использованием Tesseract OCR из приложения Python

StackOverflow https://stackoverflow.com/questions/4763956

  •  16-10-2019
  •  | 
  •  

Вопрос

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

Вот платформа:

#    OS: Ubuntu Desktop 10.04
#    GUI Toolkit: wxPython
#    OCR package: Tesseract 3.00 (compiled executable)

А вот основной процесс:

#    1. Retrieve individual page images from scanner
#    2. Call Tesseract OCR executable to produce HOCR data for each page
#    3. Run extracted words against English dictionary to guess if page orientation is correct
#        3a. If word matches are below threshold, rotate page 90 degrees and try again
#    4. Detect document type and retrieve metadata from HOCR data
#    5. Merge scanned pages and HOCR data into a finished PDF
#    6. Upload PDF and attached metadata to document management system through KnowledgeTree's API

Он работает красиво, за исключением того, что шаг 2 очень медленно на определенных типах документов. Он проходит прямо через базовые текстовые отчеты с фиксированной шириной, но бросает там несколько логотипов, линий и другого нечитаемого контента, и иногда он может тратить минуты на одной странице. Не говоря уже о том, что он может повторить это до 4 раза, если он попытается переориентироваться. Для сравнения, программное обеспечение, упакованное с сканером, использует Abbyy OCR, и может сократить 50+ страниц менее чем за минуту, почти идеально заботясь о макете страницы и ориентации текста (я понимаю, почему Эбби стоит деньги). К сожалению, использование этого программного обеспечения для сканирования является более сложным для пользователей и самостоятельно охватывает только шаги 1-3.

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

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

Это было полезно?

Решение

Проблема, которую у вас возникает, заключается в том, что Tesseract - это программный обеспечение для анализа макетов страниц. А Сайт Tesseract говорит, что версия 3.0, вероятно, будет включать анализ макета страниц.

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

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

Вы можете посмотреть Ocrfeeder, чтобы увидеть его решение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top