"Después del juego es antes del juego"
Sepp Herberger

viernes, 25 de abril de 2025

Aplicación web local para OCR de documentos.

Muchas veces nos preguntan como convertir un documento escaneado o fotografiado en texto. Aunque hay diversas herramientas gratuitas basadas en Tesseract OCR con el tiempo he visto que los más sencillo es una aplicación web local para toda nuestra red. La solución viene de manos de ScribeOCR.

El interfaz es muy sencillo, nos deja subir uno o varios ficheros con la imagen, hacer algunos ajustes sobre el idioma y la calidad y con "Recognize" lanzar el proceso de reconocimiento.





Una vez concluido nos marca con un resaltado el texto extraído y desde ahí podemos descargarlo en diversos formatos:



El fichero descargado puede abrirse con el editor correspondiente (yo he usado formato .txt), donde aparece el texto bruto ya reconocido (con sus deficiencias que habrá que corregir a mano, como podemos apreciar):

Veamos ahora como se instala ScribeOCR. Lo ideal es hacerlo en un servidor o máquina que esté accesible de forma continua en nuestra red:
# apt-get install npm
# mkdir /opt
# cd /opt
# git clone --recursive https://github.com/scribeocr/scribeocr.git
# cd scribeocr
# npm i
Una vez instalado podemos lanzarlo a mano con:
# npx http-server /opt/scribeocr -p 8081
Ahí nos mostrará con un mensaje que está escuchando en el puerto web 8081. Si abrimos ese puerto en un navegador con http://ip-maquina:8081 tendremos acceso al interface web y podremos realizar el proceso de OCR desde cualquier sitio de la red. Evidentemente tener que levantar a mano el servidor web con ScribeOCR es un fastidio, mejor invocarlo mediante un servicio systemd:
# cat /etc/systemd/system/http-server.service
[Unit]
Description=HTTP Server using npx
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/bin/npx http-server /opt/scribeocr -p 8081
WorkingDirectory=/opt/scribeocr
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target
Una vez creado el fichero .service, activamos el servicio:
# systemctl daemon-reload
# systemctl enable http-server.service
# systemctl start http-server.service
# systemctl status http-server.service
Y ya tenemos listo el servicio de OCR en red para uso del público en general.

No hay comentarios:

Publicar un comentario