Piero V.

Perché evitare Ephesoft Community

Ephesoft è un software che afferma di essere il miglior strumento di automatizzazione dell’acquisizione dei dati.

È una piattaforma web che gestisce le scansioni: è in grado di riconoscere i documenti, li divide automaticamente, li categorizza, ed estrae automaticamente le loro informazioni.

Fondamentalmente si basa su un motore OCR, con cui ricostruisce i testi e li confronta, tramite Apache Lucene, con dei modelli impostati dall’amministratore di sistema.

Viene distribuito in diverse versioni, tra cui una “community”, rilasciata sotto GNU Afferro GPL, che ho provato, ma non mi ha per nulla convinto.

In breve, questa versione è quasi del tutto priva di documentazione, non è aggiornata e sembra che il suo unico scopo, più che far provare il prodotto o rappresentare una soluzione per degli “smanettoni interessati all’argomento” 1, sia di far passare alle versioni a pagamento.

Tuttavia, se la versione a pagamento soffre degli stessi problemi di quella gratuita, allora più che avvicinare al prodotto commerciale, ha l’esito opposto.

Installazione

La documentazione di Ephesoft Community è estremamente scarna, nonché piena di link morti.

Per prima cosa mancano i requisiti di sistema: ufficialmente Ephesoft funziona su Red Hat o su Ubuntu, ma dai miei test su CentOS 7 non c’è stato verso di farlo andare e su Ubuntu sono riuscito solo con la versione 14.04, con la 16.04 non c’è stato nulla da fare.

Nella pagina linkata nella nota 1 c’è il link per scaricarla, ma prima di arrivare lì si fa molta fatica.

In ogni caso il pacchetto è un zip da 800MB che contiene un tarball, un paio di script shell per l’installazione e qualche file di testo con altre informazioni.

Il tarball contiene Ephesoft e il server Apache Tomcat già compilati, più altre dipendenze, alcune precompilate, altre in forma di sorgente.

Le dipendenze erano già vecchie per quando è stato creato quell’archivio. È notevole il caso di checkinstall: è così datato che non si riesce compilarlo sotto CentOS, benché in versioni più aggiornate il problema non sussista. Dunque se proprio vorrete provarlo con CentOS, dovrete anche arrangiarvi a aggiornare anche questi sorgenti.

Infatti non si riesce a installare le dipendenze tramite il proprio gestore di pacchetti, se si usa lo script ufficiale, perché questo vuole installare a qualsiasi costo le dipendenze con cui viene fornito e lo fa a livello di sistema.

Quindi installare Ephesoft significa riempirsi il sistema di pacchetti obsoleti e senza alcun supporto, incluso un software importante come un webserver. Dunque se nella versione di Tomcat allegata venisse trovata una vulerabilità estremamente grave (e non ho controllato che non sia già così), dovreste arrangiarvi a patcharlo, anziché scaricare tramite gestore di pacchetti la versione sicura.

Tutto questo potrebbe essere perdonato se almeno Ephesoft funzionasse su tutte le distribuzioni, ma non in questo caso, dato che il target sono esclusivamente Ubuntu e Red Hat.

Ho però continuato lo stesso e ho portato a termine l’installazione.

Visto che deve compilare diverse dipendenze, tra cui ghostscript e imagemagick, che penso ci siano in ogni distribuzione Linux, la procedura ci impiega veramente tanto tempo, forse si arriva addirittura a un’ora.

Se vorrete anche voi cimentarvi nell’impresa, visti i problemi già descritti, vi consiglio caldamente l’utilizzo di macchine virtuali.

Ho provato a dare un’occhiata agli script shell, ma quello che effettivamente fa l’installazione è parecchio lungo (più di 2000 righe) e quindi di difficile comprensione. La maggior parte del file in realtà è costituito da variabili contenenti le stringhe che verranno poi stampate sul terminale, quindi anche se ci sono poche funzioni, sono chiamate tante volte e con tanti parametri di cui molti sono appunto queste variabili.

Funzionamento

Il funzionamento di Ephesoft non è così banale, almeno se è la prima volta che si utilizza un software di questo tipo.

Fortunatamente ci sono dei video su YouTube. Riguardano una versione precedente, ma l’utilizzo rimane pressoché invariato.

In un’ora-due (compreso il tempo di vedere il video) si prende mano e si riescono a fare le prime prove, che evidenziano i lunghissimi tempi di elaborazione delle immagini. La maggior parte riguarda il riconoscimento dei caratteri da parte di Tesseract, il progetto OCR Open Source che adesso è nelle mani di Google. Ephesoft Community, a differenza delle altre versioni, tratta le immagini singolarmente e in serie, invece le altre dedicano un core a ogni pagina, quindi se il server è dotato di un processore quad core, Ephesoft lavorerà contemporaneamente su 4 pagine.

Sono riuscito a far riconoscere dei documenti, ma per certi altri, tra cui le bollette del più vecchio fornitore italiano di energia, mandano in segmentation fault il Tesseract che Ephesoft ha installato. Provando con una versione più recente, installata dai repo di Ubuntu, il problema non permane, però questa soluzione non funziona comunque, perché fino alla versione 3.02 i file dell’OCR venivano prodotti con estensione .html, invece dalla 3.03 vengono prodotti con estensione .hocr.

Un software che funziona solo con la metà dei documenti ed è estremamente lento non è molto utile.

Compilazione

Il mio primo tentativo di soluzione del problema è stata la modifica dei sorgenti e la loro ricompilazione.

Il progetto è sviluppato con Apache Maven, che è un tool che automatizza la compilazione e lo scaricamento delle dipendenze del progetto da alcuni repository.

Molte dipendenze di Ephesoft sono datate e non più reperibili, il che è comprensibile, visto che anche il sorgente è vecchio, comunque in un modo o nell’altro si risolve. Il vero problema sono i molteplici errori di dipendenze legate ad Ephesoft stesso.

Anche questo fatto mi fa interrograre se questi siano i sorgenti che effettivamente alla Ephesoft usavano per compilare la versione community in qualche modo, oppure se i pom.xml su cui si basa Maven siano stati modificati in modo da rendere difficile la compilazione da parte di terze parti.

Comunque ad un certo punto, fortunatamente ho trovato un repository su GitHub contenente un progetto IntelliJ Idea con lo stesso codice sorgente ma tutte le dipendenze sistemate. Purtroppo io non possiedo la versione Ultimate dell’IDE, ma solo quella Community, quindi non ho potuto costruire la web-app ma solo dei jar dei vari moduli e ho dovuto abbandonare la strada della ricompilazione.

Ho provato allora a compilare tutti i jar e a sostituirli a quelli originali, ma neanche questo ha funzionato, a causa di alcuni errori con Tomcat.

Ha invece funzionato il rimpiazzamento del singolo jar che gestisce tesseract, che avevo modificato per fargli cambiare l’estensione del file prodotto.

Tuttavia non c’è stato verso di far riconoscere le bollette di prima. Il problema però non era più l’OCR, ma la pulizia del file prodotto. Infatti, da come ho capito, dopo che è stato generato il file HTML, viene generato anche un file XML, più leggero e con le sole informazioni utili a Ephesoft.

A questo punto ho deciso di rinunciare completamente ad usare Ephesoft Community, perché le cose da sistemare sono troppe.

Non ho richiesto la prova della versione Enterprise, ma spero solo che non abbia tutte queste problematiche.

Footnotes

  1. Community Edition v4.0.2.0 sul sito ufficiale
    ^top

2 commenti