Digitalización, scanning y OCR con Alfresco

alfresco-logoEn el paradigma “oficina sin papeles”, intervienen muchos actores, siendo los principales las personas, que deben ajustarse a una serie de procedimientos y metodologías, y los sistemas de información, que deben proveer soluciones al paradigma.

En cuanto a complejidad, un proyecto de “Paperless Office” es tan difícil y en ocasiones frustrante como un proyecto de “Single Sign” o “Identity Management” en grandes organizaciones consolidadas ya sean públicas o privadas. El problema principal son, por un lado las soluciones Open Source de calidad, que no son muchas, los requerimientos técnicos del cliente dados muchas veces por aplicaciones obsoletas y heredadas.

Con Alfresco, gracias a características como el soporte CIFS, Webdav, reglas, transformación de formatos, workflow o indexación, conseguimos aproximarnos a nuestro objetivo, aunque en una oficina sin papeles necesitaríamos integrarnos con otras soluciones como firma digital, etc, que ya contemplaré algún día por estos lares.

En este caso me gustaría contar qué puede hacer Alfresco por nosotros en cuanto a digitalización de documentos, escaneo masivo (bulk scan) y OCR:

a) Ad-hoc scanning: usando CIFS o Webdav con la extracción de metadatos automática (por defecto). La mayoría de las impresoras/escaner multifunción modernas de oficina y de cierta envergadura soporta montar volúmenes remotos (conectarse a carpetas de red) para colocar la documentación escaneada. También podríamos hacerlo desde un escaner conectado a nuestra estación de trabajo. De esta forma se almacenarían los documentos directamente en Alfresco y posteriormente se pueden lanzar workflows, transformaciones, reglas, etc. Por ejemplo, una hoja de gastos, hoja de reclamaciones, actas, pedidos de clientes, documentos de identificación en puestos de control, etc.

En el caso anterior, que hemos llamado Ad-hoc scanning, no se contempla indexación del contenido de los documentos ya que estas grandes impresoras por defecto no hacen reconocimiento de texto (OCR), por lo que el documento escaneado, aun conteniendo texto, sería como una imagen. Para salvar este escollo se puede integrar con Alfresco una solución gratuita llamada Intelliant, basada en la SDK de Tiger OCR. Esta solución, que sólo funciona si el servidor Alfresco está instalado en un sistema operativo MS Windows, nos permitirá, a través de reglas y transformaciones, extraer todo el texto de un documento escaneado de forma que se pueda indexar y podamos hacer búsquedas por el contenido, algo realmente cómodo.

b) Batch scanning: Cuando necesitamos escanear cientos de documentos tipo plantilla, por ejemplo hojas de matrícula, facturas, exámenes, etc, y de éstos documentos queremos extraer la información y poder vincularla a metadatos de Alfresco, ya sea del modelo de datos por defecto o de un modelo personalizado, necesitaremos una solución que permita mapear la información existente en la plantilla/documento escaneado de turno, con un tipo de contenido de Alfresco, campo del documento con un metadato en Alfresco, etc. Esta solución se llama Kofax Ascent Capture, Alfresco dispone de un plugin gratuito y disponible en la forja de Alfresco [http://forge.alfresco.com]. Este software utiliza la API de WebServices de Alfresco para realizar su trabajo. El plugin sólo funciona en MS Windows.

Kofax Ascent Capture tiene las siguientes características (fuente):

  • Corrección y mejora automática de imágenes.
  • Separado automático de documentos e identificación automática de formularios.
  • OCR, ICR y OMR para reconocimiento de texto impreso o escrito a mano en cientos de idiomas, códigos de barras y otros tipos de códigos.
  • Certificado para funcionar con la mayoría de scanners, ver listado.
  • Integración con Alfresco y gestión de procesos de negocio.

La opción a) es completamente gratuita y la opción b) depende del propio software Kofax Ascent Capture, que no es gratuito.

Hay otras soluciones como usar un escaner con soporte eCopy, cuyo conector con Alfresco ha sido desarrollado por SIRA Systems. Este conector permite a un usuario escanear un documento y ponerlo directamente en Alfresco. Este software se instala en el escaner y hace de interfaz entre el escaner y Alfresco. Sería una solución del tipo a) ya que no contempla selección ni mapeo de datos de los documentos escaneados, aunque si permite la indexación del contenido ya que incorpora un OCR, esta solución cuesta 2.495USD. Más información sobre el conector de SIRA Systems aquí.

18 thoughts to “Digitalización, scanning y OCR con Alfresco”

  1. Hola Toni, muy bueno el artículo, si señor.
    Este es un tema en el que siempre he estado interesado y del que he indagado bastante.
    Según mi propia experiencia, a dia de hoy contamos con una serie de “componentes”, independientes entre si, cuya integración nos permitiría implementar un aplicativo que cumpla las funciones de interfaz del proceso de scaneo del documento y posteriormente brinde la posibilidad de almacenarlo en Alfresco con sus metadatos correspondientes (en funcion del tipo). A partir de ahí, como bien dices, se puede utilizar el conjunto de funcionalidades propias de Alfresco (reglas, flujos, conversiones de formato, acciones etc..) para organizar todo este contenido en el repositorio.
    Incluso en el sector de OCRs libres existe otra alternativa a valorar : http://code.google.com/p/tesseract-ocr/ (la verdad que en su dia estuve probando intelliant y en aquel momento los resultados fueron muy pobres).
    Tenemos la intención de realizar un estudio profundo del “desafio”, espero poder trasladar la información recopilada a la comunidad (y en el mejor de los casos .. en forma de proyecto).
    De nuevo, enhorabuena por el artículo .. y como no por tu blog : un lugar de referencia ;).
    Saludos!

  2. Hola Redcomm, perdona que no haya publicado tu comentario antes, el sistema antispam me ha vuelto a jugar una mala pasada, ya sabes, si en un comentario se pone una URL se entiende como SPAM…

    Hice un comentario al hilo de Google Code en el foro de Alfresco en español (http://forums.alfresco.com/es/viewtopic.php?f=17&t=1807#p7185)

    Muchas gracias a ti por leer y comentar en el blog, espero poder leer ese estudio pronto!!

    Saludos.

  3. Muy bueno,
    el problema es que no se como hacer convivir por ejemplo CIFS y SMB simultaneamente en una máquina Windows. Por lo visto dan conflicto. En Linux es posible usar puertos no privilegiados y a través de Iptables se pueden redireccionar. Pero en Windows no se puede o por lo menos no lo he conseguido. Digo esto porque cuando me planteo hacer uso de estas utilidades pero me limita el uso de SMB si uso Alfresco.

    Un saludo.

  4. Hola Pablo,
    Si pueden convivir perfectamente el CIFS de Alfresco con el de Windows, lo único que necesitas es que el nombre de máquina netbios sea diferente entre el CIFS nativo de Windows (nombre de host) y el que implementa Alfresco, para ello debes ajustar el archivo “file-server-custom.xml” en la sección correspondiente a CIFS.

    En ese caso no hay problema con los puertos.

    Saludos.

  5. Bueno, en realidad si funciona, lo que pasa es que se bloquea de vez en cuando, sobre todo cuando copias ficheros de forma masiva.

    El config de CIFS en file-server.xml es

    Alfresco CIFS Server


    ${cifs.broadcast}


    ${cifs.bindto}


    <!–
    –>

    <!–

    –>





    <!– Also see the config in the ‘Filesystem Security’ section below –>
    <!–

    ALFRESCO\adsrv1,ADOMAIN\adsrv2,adsrv1
    TCPIP,NetBIOS
    60

    –>


    <!–

    192.168.1.240
    WIN2003.ALFRESCO.ORG
    password

    –>


    <!–

    –>


    <!–

    –>



    30


    <!–

    1.2.3.4
    5.6.7.8

    –>


    y el properties:

    filesystem.name=Alfresco

    cifs.enabled=true
    cifs.localname=${localname}
    cifs.domain=
    cifs.broadcast=255.255.255.255
    cifs.bindto=0.0.0.0
    cifs.ipv6=disabled
    cifs.hostannounce=true

    http://ftp.enabled=true
    http://ftp.ipv6=disabled

    nfs.enabled=false

    Lo que me he dado cuenta es que ahora existe una carpeta
    tomcat\webapps\alfresco\WEB-INF\classes\alfresco\subsystems\fileServers\default
    donde se pueden configurar el servidor de ficheros. Te hablo en la versión 3.2 Community.

    Saludos.

  6. Lo siento, pero el contenido de los ficheros no ha salido. De todas formas, no se que configuración es la que hay que hacer exactamente. Porque el nombre del servidor CIFS es distinto puesto que le pone una A al final. No se si hay que cambiar algo más. La cosa es que cuando estás trabajando con CIFS se corta y da problemas. Por lo menos con la versión 3.2 Community bajo Windows XP.

  7. Ya he publicado tu post con el fichero de configuración, perdona, al tener url se había marcado como spam.

    Si, en la Community Labs 3.2 hay un properties que facilita un poco la configuración. Para que convivan el CIFS de Windows y el de Alfresco debes poner el parámetro “cifs.localname=${localname}” deberás poner algo como “cifs.localname=${localname}A” o “cifs.localname=servidoralfresco” para que sea diferente al host name del servidor donde esté instalado Alfresco.

    Recuerda tocar siempre los archivos de configuración dentro del extension, si tocas dentro del WEB-INF (war desplegado) perderás la configuración cuando actualices o “re-despliegues” el war.

    Saludos.

  8. Hola Pablo,

    La versión Community Labs no la he tenido nunca en producción, por lo que no te puedo decir, además no está recomendada para entornos en producción críticos. La Enterprise si que está probada tanto CIFS como otros protocolos, y tanto con Windows 2003 Server como con Linux, no ha habido ningún problema al respecto.
    Saludos.

  9. Hola, Toni.

    Felicitaciones por tu blog y por tu vocación para ayudar a la gente interesada en Alfresco.

    Escenario: Estoy evaluando Alfresco como solución para automatizar una serie de requerimientos, y uno muy importante es el manejo de activos digitales, escaneados y por escanear. Estos activos son documentos que en su gran mayoría son archivos .PDF y no cuentan con metadatos en los tags internos del archivo, de tal modo que preveo una actividad manual de llenado de tags para escribir reglas y transformaciones que alimenten la bd de Alfresco cuando los documentos sean cargados al repositorio. Por otra parte, nuestra plataforma es exclusivamente software libre, y no es nuestra opción adquirir plugins comerciales, y menos sobre Windows.

    Pregunta: ¿Es posible escribir alguna regla o transformación que permita invocar a un software OCR por linea de comandos de Linux, y que tome como parámetro un archivo del repositorio Alfresco, se genere un .XML o .TXT como salida del OCR, y luego que otra regla o transformación tome ese archivo producido y con él alimente la bd de Alfresco, para indexar el .PDF asociado?

    Muchas gracias de antemano por tu ayuda.

  10. Hola Alvaro, gracias por tus felicitaciones.

    Aunque no lo he probado si que estuve mirando Tesseract, http://code.google.com/p/tesseract-ocr/. Se puede poner/crear en una acción y aplicar al contenido entrante para que realice alguna tarea. Échale un vistazo, posiblemente se ajuste a lo que necesites.

    Saludos.

  11. Hola,

    Hay herramientas comerciales que permiten la digitalización y reconocimiento de las facturas y sus líneas, incluso su posterior contabilización integrándose con el ERP. Un ejemplo de las que he visto es DOXiS4 InvoiceMaster de SER Solutions.
    ¿Hay alguna solución Open Source que cubra todo este alcance?
    He estado haciendo alguna prueba con Ephesoft, pero parece que no incluye el mapeo de campos de las líneas de las facturas.

    Muchas gracias

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.