Как выбрать Tesseract и OpenCV?

Недавно я наткнулся на Tesseract и OpenCV. Похоже, что Tesseract является полнофункциональным механизмом OCR, а OpenCV можно использовать в качестве основы для создания приложения/службы OCR.

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

Мои конкретные вопросы заключаются в следующем:

  • Как выбрать Tesseract и использовать OpenCV для создания пользовательского OCR-приложения?
  • Для Tesseract доступны разные обучающие наборы данных для разных языков. Есть ли у OpenCV что-то подобное, так что мне не нужно начинать работу, чтобы добиться OCR?
  • Какой из них лучше для коммерческого применения?

Любые предложения?

Примечание: мне 24 часа в области Computer Vision, но я желаю заложить время и усилия, чтобы изучить предварительные условия.

Ответ 1

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

  • OpenCV, с другой стороны, представляет собой библиотеку компьютерного зрения, которая включает функции, позволяющие выполнять некоторые функции выделения и классификации данных. Вы можете создать простой сегментный блок и классификатор, который выполняет базовое OCR, но это не очень хороший движок OCR (я сделал его на Python до нуля. Это действительно неточно для ввода, который отличается от ваших данных обучения).

Если вы хотите получить базовое представление о том, как работает OCR, попробуйте OpenCV. Tesseract предназначен для реального OCR.

Ответ 2

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

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

Упомянутый вами учебник - это просто попытка, чтобы понять самую простую работу OCR.

Итак, если вы ищете приложение OCR, я бы рекомендовал использовать OpenCV для предварительной обработки изображения, а затем применить движок tesseract.

Ответ 3

Эти два могут быть взаимодополняющими. Если вы прочитаете документ на OpenCV http://tesseract-ocr.googlecode.com/svn/trunk/doc/tesseracticdar2007.pdf

В нем подчеркивается, что "поскольку у HP была независимо разработанная технология анализа макета страницы, которая использовалась в продуктах (и, следовательно, не была выпущена для open-source), Tesseract никогда не нуждался в собственном анализе макета страницы. Следовательно, Tesseract предполагает, что его ввод бинарное изображение с определенными областями заданного полигонального текста."

Этот тип задачи может быть выполнен с помощью OpenCV, и полученный результат передается Tesseract. Вы можете найти образец этого типа кода в репозитории Git: https://github.com/Itseez/opencv_contrib/tree/master/modules/text/samples Образцы используют API Tesseract для преобразования изображений в текст.

Ответ 4

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

От OpenCV.org

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

От Tesseract Github:

..... может использоваться напрямую или (для программистов) с использованием API для извлечения напечатанных, рукописных или печатных текстов из изображений. Он поддерживает широкий спектр языков.