Разработка механизма OCR с открытым исходным кодом специально для визуализированного текста (скриншоты) - PullRequest
3 голосов
/ 27 декабря 2010

Так что мой текущий личный проект - это возможность автоматически получать скриншоты из игры, распознавать текст и подсчитывать количество вхождений заданных слов.

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

Я перечитывал некоторые другие вопросы, и самым близким, что я нашел, было Механизмы распознавания текста, предназначенные для чтения с экрана .

Мне кажется, что чтение отрендеренного текста должно быть намного проще, чем печатный и отсканированный текст. Линии всегда прямые, и любая данная буква всегда будет отображаться с одинаковым пиксельным представлением (в основном, в любом случае). Кроме того, почему бы не использовать фактический файл шрифта (если он у вас есть) как шпаргалку для распознавания символов? С такой системой мы могли бы достичь 100% точности.

Если у вас есть файл шрифта для шпаргалки, а исходное изображение идеально квадратное и не имеет шумов, как бы вы узнали о распознавании символов на экране?

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

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

Предпочтителен интерфейс Python, но у нищих нет выбора.

EDIT:
Чтобы уточнить, я ищу конструктивные предложения для решения OCR, которое специально разработано для чтения текста со скриншотов. Популярные инструменты, такие как tesseract (упомянутый в связанном вопросе), в лучшем случае сложны в использовании, поскольку они не предназначены для такого типа исходного файла.

Ответы [ 3 ]

2 голосов
/ 01 января 2011

Так что я думал об этом, и я чувствую, что лучшим подходом будет подсчет количества пикселей в каждом BLOB-объекте / глифе / символе. Это действительно должно сократить количество тестов, которые мне нужно сделать, чтобы различать глифы.

К сожалению, я должен быть очень конкретным в отношении шрифтов. Программное обеспечение сможет распознавать шрифты только с правильным разрешением, точным шрифтом, шрифтом и т. Д.

Это не идеально, и я все еще хотел бы видеть кого-то, кто знает больше об этом материале, проектирует OCR для отрендеренного текста; но это будет работать для моего ограниченного случая.

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

Если ваша цель состоит в том, чтобы подсчитывать вхождения определенных событий в игре, OCR на самом деле не является правильным способом добиться этого. Тем не менее, если вы решили использовать OCR, то tesseract-OCR - это широко известный пакет с открытым исходным кодом для оптического распознавания символов. Я не совсем уверен, к чему вы стремитесь в отношении отсканированного и отрендеренного текста, но tesseract, вероятно, будет работать так же хорошо, как любой доступный пакет с открытым исходным кодом. Оптическое распознавание символов все еще сложно, поэтому я не ожидал бы 100% точности.

0 голосов
/ 29 декабря 2010

Это не совсем то, что вы хотите, но вы можете посмотреть на Sikuli .

...