Python OCR/Handwwitten Text (Tesseract или другой движок)

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

Моя среда:

Ubuntu 18.04
Python 3

Мой подход с Tesseract (4.0):

Сначала я применяю некоторые этапы предварительной обработки (вращение, фильтрация, бинаризация и т. Д.). OCR, кажется, работает достаточно надежно, но, как вы можете догадаться, распознавание рукописного ввода является проблемой. Сначала я бы применил подход к обучению тессеракту с помощью рукописных букв, но здесь у меня возникли неожиданные проблемы. Во-первых, я еще не нашел подходящий набор данных (на немецком языке), знаете ли вы источник, который помог бы мне? С другой стороны, этапы обучения вызывают у меня головную боль, потому что это занимает много времени, и из документации Тессеракта я не могу понять, как правильно ее тренировать. Есть ли у вас какие-либо дополнительные документы, подробно объясняющие обучение Tesseract 4.0, может быть, примеры?

Другие возможные подходы:

Я посмотрел на API Google Cloud Vision, который кажется очень продвинутым и, вероятно, даст лучшие результаты. Тем не менее, я хотел бы избежать его использования.

Я также подумал о системе распознавания рукописного текста (HTR), реализованной с помощью TensorFlow (TF). Но мне интересно, стоит ли это усилий, особенно из-за отсутствия наборов данных. Кроме того, я думаю, что Tesseract достигает лучших результатов, чем нейронная сеть, которую я обучал, потому что над Tesseract работало гораздо больше и больше умных людей, чем я.

Мой последний вопрос: какой подход лучше всего подходит для моей проблемы? Мне определенно придется больше углубляться в тему, но я бы хотел, чтобы мне дали направление, чтобы я не заблудился в заблуждениях. С текущей точки зрения было бы лучше использовать тессеракт (OCR из коробки) с обученной моделью для HTR. Я также был бы рад получить общую помощь для обучения Тессеракту, а также заметку о немецких наборах данных.

Большое спасибо и поздравления.

//Редактировать:
"В ожидании, потому что слишком широк" - ну, это ранняя фаза этого проекта. Мне не нужна "Ikea-подобная" инструкция, а несколько общих советов.
Как я описал выше, с моей точки зрения, наиболее целесообразно использовать Tesseract и расширить функциональность распознавания рукописного ввода. Улучшите меня, если я полностью неправ (очевидно, этот вопрос слишком неопределен для некоторых людей). Кроме того, я посмотрю на реализацию в TF ниже (большое спасибо). Поэтому моя конкретная проблема на данный момент заключается в том, что у меня пока нет доступа к подходящему набору данных (что, конечно, зависит от реализации, насколько я знаю, Tesseract построен как распознаватель текстовых строк). Поэтому вопрос: подходит ли Tesseract в качестве HTR (я читаю что-то о точности только 90% в других проектах), и есть ли у вас опыт работы с соответствующим процессом обучения? Процесс обучения изменился с версией 4.0, поэтому в Интернете не так много информации.

0 ответов

Другие вопросы по тегам