OCR en Elixir: El Sentido de la Vista
La capacidad de percibir el mundo a través de la visión es uno de los sensores más poderosos que podemos otorgar a un agente. El Reconocimiento Óptico de Caracteres (OCR) permite transformar imágenes que contienen texto en datos estructurados que el agente puede procesar. En la terminología PEAS, el OCR actúa como un sensor que alimenta la secuencia de perceptos del agente con información visual del entorno.
¿Qué es Tesseract?
Tesseract es un motor de OCR de código abierto originalmente desarrollado por Hewlett-Packard en los años 80 y actualmente mantenido por Google. Es uno de los motores más precisos disponibles y soporta más de 100 idiomas.
Instalación de Tesseract
Para realizar OCR en Elixir, utilizaremos el motor Tesseract. Debes instalarlo en tu sistema operativo antes de continuar:
-
Windows: [source, powershell] ---- choco install tesseract ----
-
Ubuntu/Debian: [source, bash] ---- sudo apt install tesseract-ocr ----
-
macOS: [source, bash] ---- brew install tesseract ----
Verificar la Instalación
tesseract --version (1)
tesseract --list-langs (2)
| 1 | Muestra la versión instalada de Tesseract. |
| 2 | Lista los idiomas disponibles para OCR. |
Idiomas Adicionales
Por defecto, Tesseract se instala con soporte para inglés. Para procesar textos en otros idiomas, necesitas descargar los paquetes correspondientes:
-
Windows (Chocolatey instala los idiomas más comunes automáticamente)
-
Ubuntu/Debian: [source, bash] ---- sudo apt install tesseract-ocr-spa # Español sudo apt install tesseract-ocr-por # Portugués sudo apt install tesseract-ocr-deu # Alemán ----
-
macOS: [source, bash] ---- brew install tesseract-lang # Instala todos los idiomas disponibles ----
|
Para obtener la lista completa de códigos de idioma, consulta la documentación oficial de Tesseract. |
Implementación en Elixir
Utilizaremos la librería tesserax. Añádela a tu mix.exs:
defp deps do
[
{:tesserax, "~> 0.4.0"}
]
end
Importancia del Preprocesamiento
La calidad del OCR depende directamente de la calidad de la imagen de entrada. Antes de enviar una imagen a Tesseract, considera estos factores:
| Factor | Recomendación |
|---|---|
Resolución |
Mínimo 300 DPI para texto impreso. 600 DPI para texto manuscrito. |
Contraste |
Fondo blanco limpio con texto negro. Evitar fondos con texturas o colores. |
Orientación |
La imagen debe estar correctamente orientada. Tesseract puede auto-detectar orientación con |
Ruido |
Eliminar manchas, arrugas o artefactos de escaneo antes del procesamiento. |
|
Para preprocesamiento avanzado de imágenes en Elixir, la librería Evision (bindings de OpenCV) permite aplicar técnicas como binarización, eliminación de ruido y corrección de perspectiva antes de pasar la imagen a Tesseract. |
|
Asegúrate de que la imagen tenga un buen contraste para mejorar la precisión del motor de reconocimiento. Una regla para el agente racional: invertir en la calidad del percepto siempre mejora la calidad de la decisión. |