Проблемы с производительностью при использовании Tesseract OCR из приложения Python - PullRequest
3 голосов
/ 22 января 2011

Недавно я собрал интерфейс для сканирования и загрузки документов с возможностью поиска в 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 страниц менее чем за минуту, почти идеально заботясь о макете страницы и ориентации текста (я понимаю, поэтому ABBYY стоит денег). К сожалению, использование этого программного обеспечения для сканирования является более сложным для пользователей и охватывает только шаги 1-3.

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

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

1 Ответ

1 голос
/ 27 января 2011

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

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

...