2012-07-02 9 views
3

Я создал базовое приложение для распознавания текста с помощью Tesseract API от Google и интегрировал его с моим приложением для камеры. Он работает нормально, но единственной проблемой является точность, так как иногда текст распознается как случайный набор символов, и я думаю, что точность составляет около 50 процентов.Как повысить точность текста OCR от Tesseract?

Кроме того, при попытке сканирования более четырех слов на изображении приложение выходит из строя.

String ocrText = baseApi.getUTF8Text(); 
baseApi.end(); 

где baseApi является объектом класса API Тессеракт.

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

+2

Все, что вам нужно лучше OCR-двигатель – Tomato

ответ

1

Класс API Tesseract предоставляет метод isValidWord, чтобы проверить, является ли строка допустимым словом. Вы можете использовать это для проверки распознанных символов. Это повысит точность вывода.

Я разрабатываю с использованием Tess4j. Это Java JNA-обертка для tesseract-ocr, и это дает неплохие результаты после проверки.

Неточные результаты могут быть связаны с размером текста, отметьте this. В нем говорится: «Точность снижается ниже 10pt x 300dpi, быстро ниже 8pt x 300dpi».

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

+0

Спасибо, но я хотел знать, как мы можем улучшить признание? Как, например, если вы видите проект, загруженный Робертом Тейсом на https://github.com/rmtheis/android-ocr, то вы можете видеть, что он использовал алгоритмы улучшения изображения, и хотя он использует тот же API Tesseract, что и мое признание ставка выше – Android2390

+1

О, конечно, предварительная обработка изображения повысит точность движка OCR, но с дополнительной стоимостью времени. для предварительной обработки вы можете: Увеличить DPI изображения, изменить размер изображения, а также вы можете проверить Bluring/Sharpening. Высокий контраст между текстом и фоном распознается намного лучше. после этого попробуйте де-шумировать его и выровнять изображение. Это повышает точность. – nexus

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