Лучший способ распознать персонажей на скриншоте? - PullRequest
19 голосов
/ 18 ноября 2010

Что бы вы порекомендовали для распознавания всех символов на скриншоте?Снимок экрана совершенно четкий (только черный текст на белом фоне), также я могу выбрать любой стандартный шрифт для текста (установлен в Windows).Я пробовал некоторые способы распознавания текста (Тессеракт и тому подобное), но он допустил ошибки в распознавании некоторых символов (это меня расстроило, так как текст без малейшего шума, и шрифты были самыми распространенными - Courier New, Fixedsys и т. Д.),и мне это нужно на 100% точно.Есть ли какая-то библиотека для этой конкретной цели, какое-то распознавание образов или что-то еще?или я должен получить снимок экрана с каким-нибудь моноширинным шрифтом и перебрать изображение, сдвинув его вправо + font_size пикселей, а затем сравнить захваченную вещь с представлением в памяти букв и числа того же шрифта в том же размере?Каков наилучший подход к этой проблеме?Заранее большое спасибо.

ОБНОВЛЕНИЕ: Мне наконец-то удалось добиться 100% точности, обучив Тессеракт моноширинным шрифтом (Courier New) в точном размере, который я снимал с экрана.Надеюсь, что это поможет кому-то в будущем:)

Ответы [ 4 ]

7 голосов
/ 06 августа 2016

Так как это первый результат в Google для tesseract recognize screenshot, позвольте мне сделать небольшую некромантию и добавить гораздо более простое решение.

Тессеракт ожидает изображения со скоростью 300 dpi или более а стандартное разрешение для Windows - 96. Это означает, что вам нужно изменить масштаб изображения до 300%.После этого результаты резко улучшаются.

100%
1x scale
Результат: Whal would you recommend for recognizing all characters from a screensnor 7

200%
2x scale
Результат: What would you recommend for recognizing all chamcters from a screenth ?

300%
3x scale
Результат: What would you recommend for recognizing all characters from a screenshot ?

Все, что выше 300%, работает так же хорошо.

1 голос
/ 18 ноября 2010

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

Также, если это приемлемо, попробуйте шрифт OCR, указанный в этом вопросе SO:

Это должно дать вам наилучшие возможные результаты - если это не будет 100%, то я не знаю, что будет ...

Не знаю, что вы пробовали рядом с Тессерактом, но если вы этого не сделали, возможно, стоит попробовать некоторые другие. Похоже, что они были недавно обновлены (Tesseract был обновлен год назад):

Также есть некоторые онлайн-версии, такие как:

, который можно использовать для проверки образца документа. По этой ссылке:

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

Надеюсь, это поможет.

1 голос
/ 01 декабря 2010

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

Кроме того, кроме Tesseract, другая возможность состоит в том, чтобы попробовать API на http://www.wisetrend.com/wisetrend_ocr_cloud.shtml на основе механизма распознавания ABBYY.(Преимущество в том, что не нужно ничего устанавливать / настраивать / etc, чтобы попробовать, чтобы убедиться, что он будет работать с вашими изображениями - просто сделайте HTTP POST). Отказ от ответственности: WiseTrend является клиентом моей компании.

0 голосов
/ 18 ноября 2010

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

...