OCR для банковских чеков - PullRequest
0 голосов
/ 24 мая 2019

enter image description here Я работаю над проблемой распознавания для банковских чеков, и мне нужно извлечь такие данные, как Дата и Номер счета. После обработки ввода я использую Tessaract-OCR (используя pyteserract в python) для того же. Я получил выходной файл hocr, однако я не могу его понять. Как мы извлекаем информацию из выходного файла HOCR? Обратите внимание, что в квитанциях есть номера, заполненные в ячейках, как обычные формы.

Я использовал приведенный ниже текст для извлечения. Должен ли я использовать другую кодировку?

import os
if  os.path.isfile('output.hocr'):
    fp=open('output.hocr','r',encoding='UTF-8')
    text=fp.read()
    fp.close()

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

Ответы [ 2 ]

0 голосов
/ 25 мая 2019

Лично я бы использовал что-то более похожее на tesseract для выполнения OCR, а затем, возможно, что-то вроде opencv с surf для галочек ...

или даже для обнаружения краев с помощью opencv и surf для каждого раздела и ocrэта конкретная область, чтобы сделать ее более надежной, анализируя эту конкретную область, а не весь документ ..

0 голосов
/ 24 мая 2019

Вы можете просто предоставить изображение в качестве входных данных вместо обработки и создания выходного файла HOCR .

Попробуйте: -

from PIL import Image
import pytesseract

im = Image.open("reciept.jpg")

text = pytesseract.image_to_string(im, lang = 'eng')

print(text)

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

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

...