Recientemente me encontré con Tesseract y OpenCV . Parece que Tesseract es un motor de OCR completo y OpenCV se puede utilizar como 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, encontré un tutorial muy simple sobre el uso de OpenCV para realizar OCR usando Python y quedé impresionado. En unos minutos terminé de entrenar el sistema y su precisión fue buena. Pero, por supuesto, adoptar este enfoque significa que necesito entrenar mi sistema extensamente utilizando un gran conjunto de entrenamiento.
Mis preguntas específicas son las siguientes:
- ¿Cómo se elige 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 empezar desde cero para lograr OCR?
- ¿Cuál es mejor para una aplicación comercial aspirante?
¿Alguna sugerencia?
OCR accuracy tests
busque en Google y encontrará algunos gráficos. Y hablando de aplicaciones móviles, la mayoría usa tesseract. Pero si se molesta en descargar algunos de ellos, verá que los resultados son un poco diferentes a las promesas. Por lo general, hacen una demostración de video en un entorno cuidadosamente controlado y la publican en YouTube, pero en la naturaleza, si escanea una página / receta / tarjeta / lo que sea, obtendrá algunos resultados divertidos.Respuestas:
Tesseract es un motor de OCR. Google lo utiliza, trabaja y financia específicamente para leer texto de imágenes, realizar una segmentación básica de documentos y operar con 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 segmentador y clasificador de letras simple que realice OCR básico, pero no es un motor de OCR muy bueno (ya hice uno en Python 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. Tesseract es para OCR real .
fuente
0
como un8
(en el total de $ 20,00). Admito que el dígito fue difícil incluso para mí de descifrar, pero no estaba seguro de qué más se puede hacer para adaptar Tesseract a estas situaciones o quizás introducir un componente de aprendizaje si voy a tener una base de usuarios activa.Soy el autor de ese tutorial de reconocimiento de dígitos que mencionaste, y diría que de ninguna manera sustituye al 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 un intento, para comprender el funcionamiento más simple de OCR.
Por lo tanto, si está buscando una aplicación OCR, le recomendaría que use OpenCV para preprocesar la imagen y luego aplique el motor tesseract.
fuente
Los dos pueden ser complementarios. Si lee el documento sobre OpenCV: https://github.com/tesseract-ocr/docs/blob/master/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 utilizaba en los productos (y, por lo tanto, no se lanzó para código abierto), Tesseract nunca necesitó su propio análisis de diseño de página. Por lo tanto, Tesseract asume que su entrada es una imagen binaria con regiones de texto poligonales opcionales definidas ".
Este tipo de tarea puede ser realizada por OpenCV y la imagen resultante entregada a Tesseract. Puede encontrar una muestra 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 imágenes a texto.
fuente
OpenCV es una librería 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
Desde Tesseract Github :
fuente