Извлечение текста OCR из изображения пользовательского интерфейса

#python #machine-learning #ocr #tesseract #python-tesseract

Вопрос:

В настоящее время я использую Pytesseract для извлечения текста из изображений, таких как Amazon, ebay, (электронная коммерция) и т.д., Чтобы наблюдать определенные закономерности. Я не хочу использовать веб-обходчик, так как речь идет о распознавании определенных шаблонов из текста на таких сайтах. Пример изображения выглядит следующим образом:

Пример изображения

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

Код дает мне точность около 40%. Но если я обрезаю изображения в меньший размер, это дает мне весь текст правильно.

Есть ли способ взять одно изображение, обрезать его на несколько частей, а затем извлечь текст? Предварительная обработка изображений не помогает. Что я пробовал, так это использовать: масштабирование, удаление шума, смещение, перекос, адаптивная точка,серая шкала, otsu и т. Д., Но я не могу понять, что делать.

 try:
    from PIL import Image
except ImportError:
    import Image
import pytesseract
# import pickle


def ocr_processing(filename):
    """
    This function uses Pillow to open the file and Pytesseract to find string in image.
    """
    text = pytesseract.image_to_data(Image.open(
        filename), lang='eng', config='--psm 6')
    # text = pytesseract.image_to_string(Image.open(
    # filename), lang='eng', config ='--psm 11')
    return text
 

Комментарии:

1. Очистка текста на странице полностью позволит избежать потенциальных проблем с распознаванием текста; похоже, что это разумный выбор.

2. Эй, я понимаю, но текущая проблема, о которой я упоминал, нуждается в распознавании @barny. Есть какие-нибудь идеи о том, как этого можно достичь?

3. tesseract-ocr.github.io/tessdoc/ImproveQuality.html

4. Я перепробовал многие из них, но, похоже, ни один не работает! @барни

5. Попробуйте Keras-OCR , он использует модели распознавания и распознавания текста, которые будут работать с этими изображениями гораздо лучше, чем tesseract.

Ответ №1:

Просто для рекомендации, если у вас много текста, и вы хотите обнаружить его с помощью распознавания текста (пример изображения приведен выше), «Keras» — очень хороший вариант. Намного лучше, чем питессеракт или использование просто ВОСТОКА. Это было предложение, представленное в разделе комментариев. Он смог правильно отследить 98,99% текста.

Вот ссылка на документацию Keras-ocr: https://keras-ocr.readthedocs.io/en/latest/