2012-08-12 16 views
6

Estoy tratando de detectar algunos caracteres en mayúsculas de una captura de pantalla. Puedo convertir a blanco y negro con el PIL, y luego usando el ejemplo de código de la página PyTesser, corro tesser.exe en la imagen:Baja tasa de éxito con pytesser? ¿Es esto un problema de ruido o hay algo más que deba hacerse?

from pytesser import * 
image = Image.open('fnord.tif') 
print image_to_string(image)  

estoy usando esta imagen: http://i.imgur.com/so419.png

Pero no lo reconoce como una E, o realmente nada por el hecho. Creo que es una captura lo suficientemente limpia? El ruido en la parte superior no es tirarlo, ¿verdad?

¿Hay algo que me falta?

+2

He ejecutado la línea de comando util que muestra 'Tesseract Open Source OCR Engine v3.02 con Leptonica' - sin una opción' psm' - Obtengo un archivo vacío. Usando '-psm 10' que supuestamente "trata la imagen como un solo caracter" - obtengo '%' seguido de dos nuevas líneas ... –

+0

[Limitando los caracteres que tesseract busca] (http://stackoverflow.com/questions/2363490/limit-characters-tesseract-is-looking-for) me ayudó en el pasado. – user500198

+0

Si los caracteres en mayúscula que está tratando de reconocer están en un tipo de letra único que es claro como se muestra en la pregunta, entonces no hay muchas razones para confiar en tesseract. Algunas características topológicas simples junto con información básica pueden resolver eso directamente. – mmgp

Respuesta

1

Si le preocupa si el ruido es un problema, abra manualmente la imagen en MSPaint o algo similar, elimine el ruido y luego ejecute la nueva imagen a través del OCR. Esta es la mejor manera de aprender cómo funciona el motor de OCR y qué lo confunde y qué no. Cada motor de OCR funciona de manera diferente.

En este caso, podría ser que los pequeños bits de ruido también confunden el proceso de zonificación del personaje. Debería verificar los valores del cuadro delimitador devueltos por el motor de OCR para ver si el motor de OCR está buscando incluso en la ubicación correcta para su palabra o carácter.

Algunos motores de OCR tienen opciones para eliminar el ruido de una imagen durante el proceso de OCR. Esto a menudo se llama depspeckle o eliminación de ruido. Sería posible eliminar el ruido usando Leptonica (http://www.leptonica.org) que ahora es parte de las últimas imágenes de Tesseract.

Las fuentes de pantalla presentan un gran desafío para los motores de OCR porque el DPI es a menudo muy bajo. En el caso de su 'E' debería haber píxeles más que suficientes para ser reconocidos. El peso de la carrera pesada podría confundir el motor.

Además, los motores comerciales suelen ser más precisos que Tesseract, pero también vienen con costosos derechos de licencia.

Cuestiones relacionadas