2011-01-21 3 views
3

Недавно я собрал интерфейс для сканирования и загрузки документов с возможностью поиска в 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, так как требовать от пользователя вручную установить тип и метаданные для каждого загруженного документа может быть проблемой.

+1

Если вы используете tesseract самостоятельно (за пределами Python) в одном из файлов изображений, требуется ли столько времени? Возможно, вам будет лучше задавать этот вопрос в соответствующем списке рассылки. –

+0

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

ответ

1

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

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

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

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

+0

Я уже использую кандидат на выпуск 3.0, который должен выполнить анализ макета страницы по умолчанию. Возможно, мне придется прорвать документацию еще раз, чтобы узнать, что еще нужно включить из файла конфигурации. Спасибо за ответ и ссылку. Это определенно поможет. –

Смежные вопросы