Лучший способ распознать символы в скриншоте?
Что вы посоветуете для распознавания всех персонажей из скриншота? Снимок экрана совершенно ясен (только черный текст на белом фоне), также я могу выбрать любой шрифт starndard для текста (установленного в Windows). Я пробовал некоторые способы распознавания (Tesseract и т.д.), Но он ошибался в распознавании некоторых персонажей (что сбивало меня с толку, поскольку текст был без малейшего шума, а шрифты были наиболее распространенными - Courier New, Fixedsys и т.д.), и мне нужно это на 100% точно. Есть ли какая-нибудь библиотека для этой конкретной цели, какое-то распознавание образов или что-то еще? или я должен получить скриншот с некоторым моноширинным шрифтом и перебрать изображение, перемещающееся вправо + font_size, а затем сравнить захваченную вещь с представлением букв и номером одного и того же шрифта в одном размере? Какой был бы лучший подход к этой проблеме? Большое вам спасибо заранее.
ОБНОВЛЕНИЕ: Наконец-то мне удалось получить 100-процентную точность, обучив Tesseract с моноширинным шрифтом (Courier New) в точном размере, который я снимаю на экране. Надежда, которая поможет кому-то в будущем:)
Ответы
Ответ 1
Поскольку это первый результат в Google для tesseract recognize screenshot
, позвольте мне сделать бит некромантии и добавить гораздо более простое решение.
Tesseract ожидает изображения с разрешением около 300 точек на дюйм и более, а стандартный dpi для Windows - 96. Это означает, что вам нужно перемасштабировать изображение до 300 %. После этого результаты резко улучшаются.
100%
Результат: Whal would you recommend for recognizing all characters from a screensnor 7
200%
Результат: What would you recommend for recognizing all chamcters from a screenth ?
300%
Результат: What would you recommend for recognizing all characters from a screenshot ?
Все, что выше 300%, работает так же хорошо.
Ответ 2
Я был бы удивлен, если OCR даст столь плохие результаты на таком качественном вводе. Вероятно, вы хотите выбрать шрифт с острыми краями, без сглаживания, большего размера шрифта также поможет.
Кроме того, если это приемлемо, попробуйте шрифт OCR, указанный в этом вопросе SO:
Это должно дать вам наилучшие результаты - если это не идет на 100%, тогда я не знаю, что будет...
Не знаю, что вы пробовали рядом с Tesseract, но если вы этого не сделали, возможно, стоит попробовать другие. Они, кажется, обновляются недавно (Tesseract был обновлен год назад):
Есть также некоторые онлайн-версии, например:
который вы можете использовать для проверки образца документа. По этой ссылке:
Кажется, вам, возможно, придется пойти на коммерческую деятельность, чтобы получить то, что вы хотите.
Надеюсь, что это поможет.
Ответ 3
Я знаю, что вы уже решили свою проблему, но в случае, если это поможет кому-то еще. Две проблемы, которые я обнаружил при работе с скриншотами, - это то, что механизмы OCR чувствительны к следующим: (1) неправильное задание в заголовках файлов изображений и ( 2) проблемы прозрачности (то, что выглядит как белый фон, на самом деле является прозрачным). По некоторым причинам эти проблемы часто возникают на снимках экрана.
Кроме того, помимо Tesseract, еще одна возможность - попробовать API в http://www.wisetrend.com/wisetrend_ocr_cloud.shtml на основе механизма ABBYY OCR. (Преимущество состоит в том, что нет ничего, чтобы установить/настроить/etc, чтобы попытаться убедиться, что он будет работать на ваших изображениях - просто сделайте HTTP POST). Отказ от ответственности: WiseTrend - это клиент моей компании.
Ответ 4
У вас есть возможность изменить сглаживание текста на уровне ОС? Воспроизведение с этими настройками (или даже попытка отключить его) может дать вам лучший результат с существующими OCR тоже.