Как дать наилучшие шансы на успех программному обеспечению OCR? - PullRequest
2 голосов
/ 26 августа 2009

Я использую Tesseract OCR (через pytesser ) и PIL (библиотека изображений Python) для автоматического тестирования приложения.

Я проверяю правильность отображаемого текста, делая снимок экрана и получая текст благодаря tesseract.

У меня были некоторые проблемы в начале, и, кажется, это работает лучше, так как я увеличил размер скриншота благодаря бикубической интерполяции PIL.

К сожалению, у меня все еще есть некоторые ошибки, такие как путаница между «0» и «O». Я могу себе представить, что у меня будут другие подобные проблемы в будущем.

Я хотел бы знать, существуют ли какие-либо методы для подготовки изображения для помощи при распознавании. Любая идея приветствуется.

Заранее спасибо

Ответы [ 4 ]

1 голос
/ 05 ноября 2013
  1. Поезд тессеракт распознает ваш шрифт
  2. Сделать изображение очень чистым и с достаточным количеством свободного места вокруг символов
  3. Прибыль:)

Вот несколько примеров из реальной жизни.

  • Первое изображение - исходное изображение (номера счетчика мощности)
  • Второе изображение слегка очищено в GIMP, точность распознавания около 50% в тессеракте
  • Третье изображение полностью очищено - распознавание 100% без какого-либо обучения!

enter image description here enter image description here enter image description here

1 голос
/ 26 августа 2009

Бесстыдная вилка и отказ от ответственности: моя компания пакеты Tesseract для использования в .NET

Tesseract - это исправный OCR-движок. Он может многое пропустить и легко запутывается нетекстом. Лучшее, что вы можете для этого сделать, - убедиться, что он получает только текст. Следующая лучшая вещь - дать ему что-то разумно бинаризованное (адаптивный или динамический порог, чтобы добраться туда) или градации серого и позволить ему попытаться выполнить бинаризацию.

0 голосов
/ 26 августа 2009

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

0 голосов
/ 26 августа 2009

Для различия между 0 и O, одним простым решением является выбор шрифта, который различает оба (например: 0 имеет тире или точку в середине). Будет ли это приемлемым в вашей заявке?

Другим решением является применение шага на основе словаря после посимвольного анализа текста - подача распознанного текста в некоторую форму проверки орфографии или валидатора для различения сложных символов.

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

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