2009-08-26 12 views
3

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

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

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

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

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

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

+0

Если этот вопрос по-прежнему актуален: Имеет ли это быть Тессеракт? Существуют OCR-движки (такие как ABBYY), которые отлично подходят для низкокачественных входных изображений и автоматически выполняют предварительную обработку изображений для вас. Существует REST API для OCR, который использует движок ABBYY по адресу http://www.wisetrend.com/wisetrend_ocr_cloud.shtml - у него есть бесплатная пробная версия, поэтому вы можете попробовать несколько изображений для себя –

ответ

1

Shameless плагин и отказ от ответственности: my company пакеты Тессеракта для использования в .NET

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

+0

Я согласен с этим. Он был смущен краем диалогового окна и преобразован в «я». Когда он получает только текстовые изображения, он делает хорошую работу. бинаризация также является хорошей идеей. Благодарю. – luc

0

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

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

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

+0

К сожалению, у меня нет контроля над шрифт. Не могли бы вы объяснить немного больше, что вы подразумеваете под словом на основе словаря? – luc

0

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

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

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

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

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