Este sistema permite extraer información de imágenes de DNI españoles mediante técnicas avanzadas de OCR (Reconocimiento Óptico de Caracteres) combinadas con análisis inteligente.
- Extracción precisa de nombres, apellidos, números de documento, fechas y otros datos relevantes
- Preprocesamiento de imágenes adaptado específicamente a DNI españoles
- Detección por regiones específicas para mayor precisión
- Análisis contextual para mejorar la precisión en campos críticos
- Combinación de OCR local (Tesseract) con API de OpenAI para resultados óptimos
- Python 3.7 o superior
- Tesseract OCR 5.0 o superior (con soporte para idioma español)
- Bibliotecas Python: pytesseract, opencv-python, numpy, pillow, python-dateutil, python-dotenv
- Descargar el instalador desde UB Mannheim Tesseract
- Durante la instalación, seleccionar "Spanish" en la lista de idiomas adicionales
- Agregar Tesseract a la variable de entorno PATH (normalmente:
C:\Program Files\Tesseract-OCR)
sudo apt update sudo apt install tesseract-ocr sudo apt install tesseract-ocr-spabrew install tesseract brew install tesseract-langpip install pytesseract pillow opencv-python python-dateutil python-dotenvCrear un archivo .env en el directorio raíz con las siguientes variables:
OPENAI_API_KEY=tu_clave_de_api_aquí fromIDAnalyzerimportprocess_dni_image# Procesar una imagen de DNI con OpenAIresultado=process_dni_image("ruta/a/tu/imagen_dni.jpg", use_openai=True) print(resultado) # Procesar utilizando solo análisis local sin OpenAIresultado_local=process_dni_image("ruta/a/tu/imagen_dni.jpg", use_openai=False) print(resultado_local)El resultado será un diccionario con los siguientes campos:
{"Nombre": "NOMBRE_PERSONA", "Apellido": "APELLIDOS_PERSONA", "Documento": "12345678A", "FechaDeNacimiento": "01/01/1990", "TipoDocumento": "DNI", "Sexo": "M", "Nacionalidad": "ESP", "FechaValidez": "01/01/2030" }Modificar la línea en IDAnalyzer.py:
pytesseract.pytesseract.tesseract_cmd=r'C:\Program Files\Tesseract-OCR\tesseract.exe'# Ajustar a tu rutaVerificar que los archivos de idioma español estén correctamente instalados:
- Windows: Carpeta
tessdatadentro del directorio de instalación de Tesseract - Linux:
/usr/share/tesseract-ocr/4.00/tessdata/ - macOS:
/usr/local/share/tessdata/
El archivo spa.traineddata debe estar presente.
Para mejorar el reconocimiento:
- Utilizar imágenes de alta resolución (mínimo 300 DPI)
- Asegurar iluminación uniforme sin sombras o reflejos
- Capturar la imagen con el DNI completamente visible y sin inclinación
Este proyecto es de código abierto bajo la licencia MIT.