Mejore los pasos de procesamiento previo en Tesseract OCR para la captura en time real.

Estoy trabajando en leer la información de la tarjeta de identidad usando la biblioteca de Tesseract. He intentado usar algunas imágenes de Google y obtuve buenos resultados, pero cuando fui a imágenes en time real, es cuando capturé imágenes de una camera de iPhone, no obtuve buenos resultados.

Encontré algunos pasos de procesamiento previo sugeridos por Tesseract.

1. Fijar DPI (si es necesario) 300 DPI es mínimo.

¿Cómo puedo configurar el DPI de la image al capturar la image de la camera del iPhone en time real?

2. Corregir el tamaño del text (por ejemplo, 12 pt debería estar bien).

¿Cómo arreglo el tamaño del text para la image grande creada por la camera del iPhone?

3. Intente arreglar las líneas de text (corrección y deformación del text).

Leí que el Tesseract aplica el text dewarbackpol utilizando la biblioteca Leptonica. ¿Se necesita dewarp o deskew para el text en esta etapa de pre-procesamiento?

4. Intente arreglar la iluminación de la image (p. Ej., Ninguna parte oscura de la image).

¿Puedo realizar la iluminación de la image con OpenCV?

5. Imagen de Binarize y de-noise.

Obtengo pobres imágenes binarizadas cuando aplico un umbral o umbral adaptativo para la image en time real.

¿Cómo puedo binarizar estas imágenes en time real?

    1. y 2: cuando un text tiene un tamaño de punto de 12, significa que ocupa 12 píxeles de altura a 72 DPI. A 300 DPI esto es aproximadamente 50 píxeles. Entonces, lo que debe tomar de 1. y 2. es que debe tratar de hacer la resolución de la image capturada para que las líneas de text tengan unos 50 píxeles de alto. Cómo haría esto depende de cómo esté capturando la image.
    1. Es más fácil pedirle al usuario que mantenga la camera recta 🙂
    1. y 5 … podrías intentar aplicar un poco de filtrado. Una vez más, podría ser más fácil solicitar el uso para garantizar que se aplique una iluminación adecuada.