¿Cómo puedo elegir entre Tesseract y OpenCV?


Recientemente me encontré con Tesseract y OpenCV. Parece que Tesseract es un motor de OCR completo y OpenCV se puede utilizar como un marco para crear una aplicación/servicio de OCR.

Intenté usar Tesseract en algunas de mis imágenes y su precisión parece decente. Más tarde, me encontré con un tutorial muy simple sobre el uso de OpenCV para realizar OCR usando Python y me impresionó. En pocos minutos, terminé de entrenar el sistema y su precisión fue buena. Pero de por supuesto, tomar este enfoque significa que necesito entrenar mi sistema ampliamente utilizando un gran conjunto de entrenamiento.

Mis preguntas específicas son las siguientes:

  • ¿Cómo se puede elegir entre Tesseract y OpenCV para crear una aplicación OCR personalizada?
  • Hay conjuntos de datos de entrenamiento disponibles para Tesseract para diferentes idiomas. ¿OpenCV tiene algo similar para que no tenga que comenzar desde cero para lograr OCR?
  • ¿Cuál es mejor para un wanna-be comercial ¿solicitud?

Alguna sugerencia?

Nota : Tengo 24 horas de edad en el área de la Visión por Computadora, pero estoy dispuesto a dedicar tiempo y esfuerzo para aprender los requisitos previos.

Author: Community, 2012-07-15

4 answers

  • Tesseract es un motor OCR. Es utilizado, trabajado y financiado por Google específicamente para leer texto de imágenes, realizar segmentación básica de documentos y operar en entradas de imágenes específicas (una sola palabra, línea, párrafo, página, diccionarios limitados, etc.).

  • OpenCV, por otro lado, es una biblioteca de visión por computadora que incluye características que le permiten realizar alguna extracción de características y clasificación de datos. Puede crear un simple segmentador de letras y clasificador que realiza OCR básico, pero no es un motor de OCR muy bueno (he hecho uno en Python antes desde cero. Es realmente inexacto para la entrada que se desvía de sus datos de entrenamiento).

Si desea obtener una comprensión básica de lo difícil que es el OCR, pruebe OpenCV. Teseracto es para OCR real .

 65
Author: Blender,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-21 22:05:42

Soy el autor de ese tutorial de reconocimiento de dígitos que mencionaste, y diría que no es un sustituto para tesseract.

Tesseract es un motor de OCR realmente bueno, puede ser el mejor motor de OCR de código abierto.

El tutorial que mencionaste es solo una prueba, para entender el funcionamiento más simple del OCR.

Entonces, si está buscando una aplicación OCR, le recomendaría usar OpenCV para el preprocesamiento de la imagen y luego aplicar tesseract engine.

 60
Author: Abid Rahman K,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-15 06:21:17

Los dos pueden ser complementarios. Si lee el artículo sobre OpenCV http://tesseract-ocr.googlecode.com/svn/trunk/doc/tesseracticdar2007.pdf

Destaca que "Dado que HP había desarrollado de forma independiente la tecnología de análisis de diseño de página que se utiliza en los productos, (y por lo tanto no lanzado para el código abierto) Tesseract nunca necesitó su propio análisis de diseño de página. Tesseract asume por lo tanto que su entrada es una imagen binaria con regiones de texto poligonales opcionales definido."

Este tipo de tarea puede ser realizada por OpenCV y la imagen resultante se transmite a Tesseract. Puedes encontrar un ejemplo de este tipo de código en el repositorio de Git: https://github.com/Itseez/opencv_contrib/tree/master/modules/text/samples Las muestras utilizan las API de Tesseract para realizar la conversión de imagen a texto.

 7
Author: user2957542,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-13 01:50:15

OpenCV es una biblioteca para CV, utilizada para analizar y procesar imágenes en general. Tesseract es una biblioteca para OCR , que es un subconjunto especializado de CV que se dedica a extraer texto de imágenes.

De OpenCV.org

.....se utiliza para detectar y reconocer caras, identificar objetos, clasificar acciones humanas en videos, rastrear movimientos de cámara, rastrear objetos en movimiento, extraer modelos 3D de objetos, producir nubes de puntos 3D de cámaras estéreo, coser imágenes juntas para producir una imagen de alta resolución de una escena completa, encontrar imágenes similares de una base de datos de imágenes, eliminar los ojos rojos de las imágenes tomadas con flash, seguir los movimientos de los ojos, reconocer el paisaje y establecer marcadores para superponerlo con realidad aumentada, etc

De Teseracto Github :

.....se puede usar directamente, o (para programadores) usando una API para extraer texto escrito, escrito a mano o impreso de imágenes. Es compatible con una amplia variedad de idioma.

 0
Author: Aniruddha Varma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-26 03:25:50