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í
from IDAnalyzer import process_dni_image
# Procesar una imagen de DNI con OpenAI
resultado = process_dni_image("ruta/a/tu/imagen_dni.jpg", use_openai=True)
print(resultado)
# Procesar utilizando solo análisis local sin OpenAI
resultado_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.