Распознавание отсканированного документа по шаблону при разном размере - PullRequest
0 голосов
/ 07 января 2019

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

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

Однако, моя проблема в том, что я не могу заставить эту работу хорошо работать, когда форма имеет другой размер, чем шаблон - что является очевидной проблемой, потому что любое сканированное изображение будет изменяться в размер в некоторой степени из моего шаблона.

Я использую pyocr, который является оберткой для библиотеки Tesseract OCR. Я нахожу точку привязки и получаю расположение пикселей, а также ширину и высоту якоря в шаблоне. Затем я сравниваю это с якорем, найденным в тестовом документе. Проблема заключается в том, что, когда я масштабирую все свои поля, основываясь на соотношении размеров между якорем тестового документа и якорем шаблона, я обнаруживаю некоторую степень ошибки в вычислениях. Поля, расположенные рядом с якорем, работают хорошо, но чем дальше я удаляюсь от якоря, тем больше область отклоняется от области шаблона.

Я предполагаю, что это потому, что расположение / размер в пикселях якорей, которые я получаю, указаны в целочисленных пикселях (например, 340, 540), но различное соотношение между якорем шаблона и якорем документа неизбежно является долей (например, 3,5555344).

Есть идеи, как с этим справиться?

...