определить белый текст после предварительной обработки изображения, чтобы извлечь его с помощью OCR + tesseract 4 (python) - PullRequest
0 голосов
/ 23 марта 2020

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

Пожалуйста, найдите прикрепленное изображение после предварительной обработки (то, которое OCR имеет в качестве ввода)

Изображение ввода OCR

Результаты извлечения текста это:

a: если 3 ée a. , сидел, если | aa ai

eczema yt Крем для ремонта рук. BR ie ccm Se c mea se gern

pe COR Egencu C es De Uaeene ai Ml.

TS Qiocoar 4 ": 3 увы,: e

Risted- & recowiniendeda | PE C Ry j.

Также есть способ извлечь текст в круг (изогнутый текст) ??

1 Ответ

0 голосов
/ 23 марта 2020

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

Ввод мусора перед "eczema", вероятно, вызван не белым текстом, а тем, что это lo go с сильно изогнутым текстом. Самый обычный текст написан прямыми линиями слева направо. Таким образом, разумный механизм OCR ожидает, что следующий символ будет сразу же направо и в той же ориентации. Для «о» это, конечно, не имеет значения, но «р» и «д» отличаются только ориентацией. Так что нужно будет рассказать об этом Тессеракту. К счастью, круги - достаточно распространенный случай. Тессеракт имеет режим сегментации страниц 9, точно для слов в кругу.

...