Тренинг Tesseract 3 по распознаванию чисел из реальных изображений газовых счетчиков - PullRequest
9 голосов
/ 18 июля 2011

Я пытаюсь научить тессеракт распознавать числа из реальных изображений газовых счетчиков.

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

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

Ответы [ 4 ]

2 голосов
/ 05 ноября 2013

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

Мне нужна помощь с OpenCV, потому что я не знаю, как программировать в OpenCV.1004 * Вот несколько примеров из реальной жизни.

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

first image second image third image

1 голос
/ 18 июля 2014

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

Существует несколько ключевых указателей, которые значительно улучшают распознавание:

  1. Удалить фоновый шум.В основном это означает использование среднего адаптивного порога.Я бы также позаботился о том, чтобы символы были черными, а фон - белым.
  2. Используйте правильное разрешение.Если вы получаете плохие результаты, масштабируйте изображение вверх или вниз, пока не получите хорошие результаты.Вы хотите стремиться к ок.размер шрифта 14 при 300 dpi;в моем программном обеспечении, которое обрабатывает счета, которые работают лучше всего.
  3. Не хранить изображения в формате JPEG;используйте BMP или PNG или что-то еще, что не делает изображение шумным.
  4. Если вы используете только один или два шрифта, попробуйте обучить tesseract для этих шрифтов.

Какдля пункта 4, если вы знаете, какой шрифт будет использоваться, есть некоторые более эффективные решения, чем использование Tesseract, например сопоставление этих шрифтов непосредственно на изображениях ... Основной алгоритм - найти цифры и сопоставить их со всеми возможными символами (которые только 10) ... тем не менее, реализация хитрая.

1 голос
/ 10 января 2014

Я предлагаю вам:

  • использовать инструмент для редактирования полей, например jTessBoxEditor , это очень полезно и позволяет выиграть время.Вы можете легко установить его с здесь
  • это хорошая идея для обучения букв реальной ситуации (шумно, размыто).Ваш тренировочный набор все еще ограничен, вы можете добавить больше обучающих образцов.
  • Я рекомендую вам использовать API Тессеракта для улучшения изображения (denoise, normalize, sharpen ...), например: Boxa * tesseract::TessBaseAPI::GetConnectedComponents(Pixa** pixa) (позволяет получить доступ к ограничительным рамкам каждого символа)

    Pix * pimg = tess_api-> GetThresholdedImage ();

Здесь вы найдете несколько примеров

1 голос
/ 19 августа 2012

Сначала я бы попробовал эту простую команду ImageMagick:

 convert          \
    original.jpg  \
   -threshold 50% \
    result.jpg

(немного поиграть с параметром 50% - попробуйте с меньшими и большими значениями ...)

У порогового значения в основном остаются только 2 значения, ноль или максимум, для каждого цветового канала. Значения ниже порога устанавливаются в 0, значения выше него устанавливаются в 255 (или 65535, если работают на 16-битной глубине).

В зависимости от вашего original.jpg, в результате вы можете получить работающее, очень высококонтрастное изображение с возможностью распознавания текста.

...