2009-01-20 14 views

Respuesta

7

He estado investigando esto mucho últimamente. Lo mejor es simplemente Tesseract. Si necesita un análisis de diseño en la parte superior del OCR, vaya con Ocropus (que a su vez usa Tesseract para hacer el OCR). El análisis de diseño se refiere a la capacidad de detectar la posición del texto en la imagen y hacer cosas como segmentación de líneas, segmentación de bloques, etc.

He encontrado algunos consejos muy buenos a través de la experimentación con Tesseract que vale la pena compartir. Básicamente tuve que hacer un montón de preprocesamiento para la imagen.

  1. Aumenta/reduce la imagen de entrada a 300 ppp.
  2. Elimina el color de la imagen. La escala de grises es buena. De hecho, utilicé un umbral de oscilación e hice mi entrada en blanco y negro.
  3. Recorta basura innecesaria de tu imagen. Para las tres anteriores utilicé netbpm (un conjunto de herramientas de manipulación de imágenes para Unix) para llegar al punto en el que obtuve una precisión del 100 por ciento de lo que necesitaba.

Si tiene una fuente altamente personalizada y va solo con tesseract, tiene que "entrenar" el sistema; básicamente, tiene que alimentar una gran cantidad de datos de entrenamiento. Esto está bien documentado en el sitio tesseract-ocr. Básicamente, crea un nuevo "idioma" para su fuente y lo pasa con el parámetro -l.

El otro mecanismo de entrenamiento que encontré fue con Ocropus usando el entrenamiento de net red (bpnet). Requiere una gran cantidad de datos de entrada para construir un buen modelo estadístico.

En términos de invocación de Tesseract/Ocropus son ambos C++. No será tan simple como ReadLines (Image), pero hay una API que puede consultar. También puede invocar a través de la línea de comando.

+0

saber de cualquier buena documentación para Ocropus .... especialmente una aplicación de C++. – Zombies

+0

Lamentablemente, la mejor documentación está en su sitio web y leyendo los archivos de cabecera y los scripts de LUA que proporcionan. – Ish

5

Aunque no puedo recomendar uno en particular, el término que está buscando es OCR (Reconocimiento óptico de caracteres).

+0

Gracias, eso es útil. No pude encontrar nada en google con lo que estaba usando. – Zombies

3

hay tesseract-ocr que es una biblioteca profesional para hacer esto.

Desde allí sitio web

el motor Tesseract OCR fue uno de los 3 mejores motores de la prueba de precisión 1995 UNLV. Entre 1995 y 2006 tuvo poco trabajo hecho en él, pero es probable uno de los motores más precisos OCR de código abierto disponibles

1

Creo que lo que quiere es Conjecture. Solía ​​ser el proyecto libgocr. No lo he usado durante algunos años, pero solía ser muy confiable si configuraba una clave.

0

El Tesseract OCR library da resultados bastante precisos, es una biblioteca C y C++. Mis resultados iniciales fueron aproximadamente del 80% de precisión, pero al aplicar el preprocesado en las imágenes antes de suministrar OCR, los resultados fueron aproximadamente del 95% de precisión. ¿Qué es pre-preprocesamiento:

1) Binarize el mapa de bits (B & W funcionó mejor para mí).How it could be done

2) Remuestreo su imagen a 300 ppp

3) guardar la imagen en un formato sin pérdida, como LZW TIFF o TIFF CCITT Grupo 4.

Cuestiones relacionadas