Недавно я собрал интерфейс для сканирования и загрузки документов с возможностью поиска в KnowledgeTree, нашу систему управления документами. У нас есть доступ к множеству отдельных инструментов для разных частей этого процесса, но я хотел объединить все в один интерфейс, чтобы все было просто для пользователей.Проблемы с производительностью с использованием OCR Tesseract из приложения Python
Вот платформа:
# 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, так как требовать от пользователя вручную установить тип и метаданные для каждого загруженного документа может быть проблемой.
Если вы используете tesseract самостоятельно (за пределами Python) в одном из файлов изображений, требуется ли столько времени? Возможно, вам будет лучше задавать этот вопрос в соответствующем списке рассылки. –
Я протестировал несколько разных страниц, и разница, как правило, составляет долю секунды. Спасибо. –