2015-05-27 3 views
4

РЕШЕНИЕ:цифровые номера на Тессеракт OCR

Я была тренировать свои данные, чтобы попытаться его с OCR. Кажется, что работает хорошо, но я не знаю, почему обученное данные arturaugusto не работает для меня = (

https://github.com/adri1992/Tesseract_sevenSegmentsLetsGoDigital.git

С моими обученных данными, чтобы получить хорошие результаты распознавания текста, я сделал это фазы (я сделал это с OpenCV):

  • Во-первых, преобразовать изображение в черный & Белый
  • Во-вторых, применить к изображению гауссово размывание
  • в-третьих, применить к изображению пороговым фильтр

При этом распознаются семь сегментных цифр.

ВОПРОС:

Я пытаюсь получить OCR через Tesseract на Android, и я тестирую приложение с этим изображением (через Text detection on Seven Segment Display via Tesseract OCR):

OCR test image

I используя данные, подготовленные arturaugusto (https://github.com/arturaugusto/display_ocr), но неправильный результат OCR:

Нуль признан как восьмерка, и я не знаю почему.

я применяю к изображению Гауссово размывание и порог фильтра, с помощью OpenCV, и изображение обрабатывается так:

OCR Image processed

Есть ли какие-либо другие данные подготовлены или вы знаете, каким-либо образом решить проблему?

+0

Эй, адри, любые обновления в вашем решении? :-) –

+0

Привет, Фелипе! Я подготовил свои собственные данные ... Попробуйте https://github.com/adri1992/Tesseract_sevenSegmentsLetsGoDigital и проверьте, работает ли он для вас. Не забудьте сделать все этапы, которые я комментирую в разделе «Решение» сообщения – adri1992

+0

Мне удалось обработать ваше тестовое изображение с помощью подушки python и получить изображение в формате BW, подобное вашему, но когда я запускаю tesseract с вашими обученными данными, он возвращает пустой страница (!). Я не уверен, правильно ли я установил подготовленные данные ... Я скопировал все в папку/opt/local/share/tessdata (я нахожусь в Mac OS X). Когда я запускаю tesseract -list-langs, отображается экран «let». Есть ли у вас какие-либо советы? Кстати, ваши учебные данные перестали ошибочно принимать «0» за «8» (как вы заявили в своем вопросе)? –

ответ

0

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

С OpenCV-python я использую cv2.erode(display,kernel, iterations = erosion_iters) для решения этой проблемы.

+0

Да, я пытался заполнить промежутки между сегментами, но это не работает для меня :( Я обучил свои собственные данные тем же шрифтом, и теперь я не точно знаю, почему OCR хорошо работает с этими новыми данными. Через несколько минут я обновляю вопрос с помощью решения и направления хранилища. Большое спасибо! – adri1992

Смежные вопросы