Configurazione dei parametri di preprocessing, analisi, riconoscimento e sintesi della pagina
L’elaborazione dei documenti in ABBYY FineReader Engine si compone di diverse fasi: preprocessing della pagina, analisi, riconoscimento, sintesi della pagina, sintesi del documento ed esportazione. Questa sezione riguarda il preprocessing della pagina, l’analisi, il riconoscimento e la sintesi della pagina/del documento. Per i dettagli sui parametri di esportazione, vedere Ottimizzazione dei parametri di esportazione.Esaminiamo le fasi di elaborazione nell’ordine:
Preprocessing della pagina Durante questa fase, FineReader Engine migliora automaticamente la qualità dell’immagine e corregge i difetti che possono interferire con l’Optical Character Recognition (OCR): orientamento della pagina, immagini invertite e distorsioni geometriche.
Analisi del layout Durante l’analisi, FineReader Engine individua le aree che contengono diversi tipi di dati. Queste aree sono chiamate “blocchi”.
Riconoscimento Le parti dell’immagine che si trovano all’interno dei blocchi vengono riconosciute in modi che dipendono dal tipo di blocco.
Sintesi della pagina Vengono rilevati il testo, i colori di sfondo, i collegamenti ipertestuali e altri elementi di formattazione.
Sintesi del documento Infine, vengono ricreati gli stili dei caratteri e la struttura logica del documento: FineReader Engine rileva i titoli nel documento riconosciuto, ricostruisce l’indice, rileva le didascalie di immagini e tabelle e altri elementi della struttura del documento.
Prima dell’elaborazione, è possibile impostare i parametri di preprocessing, analisi, riconoscimento e sintesi della pagina mediante gli oggetti parametro. L’oggetto principale che fornisce l’accesso a tutti i parametri di elaborazione è DocumentProcessingParams. Dispone di un insieme di sotto-oggetti che influiscono sulle diverse fasi di elaborazione.A seconda della fase di elaborazione, ai metodi di elaborazione possono essere passati come parametri di input il puntatore a un oggetto DocumentProcessingParams oppure i puntatori ai suoi sotto-oggetti, influenzando così i risultati dell’elaborazione. Gli oggetti FRDocument e FRPage forniscono metodi per il preprocessing, l’analisi, il riconoscimento e la sintesi della pagina.I processi di preprocessing, analisi, riconoscimento e sintesi della pagina possono inoltre essere configurati mediante profili e gli scenari più comuni sono già coperti da profili predefiniti ampiamente collaudati. Per i dettagli, vedere Utilizzo dei profili.
Per impostare i parametri di elaborazione di ciascuna pagina, utilizzare le proprietà del sotto-oggetto PageProcessingParams dell’oggetto DocumentProcessingParams. L’oggetto PageProcessingParams è l’oggetto padre di un gruppo di oggetti che configurano i parametri di elaborazione della pagina:
L’oggetto PageProcessingParams consente inoltre di attivare o disattivare qualsiasi fase dell’elaborazione. Ad esempio, è possibile impostare su FALSE la proprietà PerformAnalysis dell’oggetto PageProcessingParams se si intende specificare manualmente i blocchi e non si necessita dell’analisi del layout.
Per impostare i parametri di elaborazione dei documenti, oltre ai parametri di elaborazione delle pagine, è necessario impostare anche i parametri di sintesi del documento tramite l’oggetto SynthesisParamsForDocument. Durante la sintesi del documento vengono rilevati gli stili dei font e la formattazione. Gli oggetti di FineReader Engine che gestiscono font e stili del documento assumono significato solo dopo la sintesi del documento.Puoi omettere la fase di sintesi del documento nei seguenti casi:
Se intendi esportare il testo riconosciuto in formato TXT. Durante l’esportazione in questo formato, le informazioni di sintesi non vengono utilizzate.
Se intendi esportare un documento nel formato PDF ImageOnly. In questa modalità, il testo riconosciuto e le informazioni di layout non vengono utilizzati.
In tutti gli altri casi, è necessario eseguire la sintesi del documento. L’omissione della sintesi del documento provocherà errori durante l’esportazione.
I metodi che contengono la parola “Process” nel nome (ad esempio IFRDocument::Process) includono la fase di sintesi del documento. I metodi di elaborazione dell’oggetto FRPage, invece, non la includono; pertanto, dopo averli utilizzati e prima dell’esportazione, è necessario chiamare esplicitamente un metodo che esegua la sintesi del documento.
Puoi velocizzare la fase di sintesi del documento e ridurre l’utilizzo della memoria. Se durante la sintesi della pagina imposti su TRUE la proprietà DetectFontFormattingAtPageLevel dell’oggetto SynthesisParamsForPage, puoi quindi disattivare il rilevamento dei parametri del font e della struttura del documento durante la sintesi del documento (DetectFontFormatting e DetectDocumentStructure dell’oggetto SynthesisParamsForDocument). Tuttavia, la qualità potrebbe peggiorare.Ogni volta che il testo o il layout del documento viene modificato (ad esempio, quando un blocco viene rimosso o aggiunto, oppure il testo viene modificato), consigliamo di richiamare un metodo di sintesi del documento. Tieni presente che il metodo SynthesizePages di FRDocument consente di specificare l’insieme delle pagine del documento che sono state modificate, così da ricalcolare solo i dati necessari.
Configurare le proprietà necessarie del sottooggetto PageProcessingParams. Non è necessario configurare tutte le proprietà di tutti i sottooggetti, perché al momento della creazione vengono inizializzate con valori predefiniti adeguati. È sufficiente ottimizzare solo le proprietà per cui si desiderano valori diversi da quelli predefiniti.
Quando si configurano i parametri da utilizzare per le funzioni di analisi del layout, non dimenticare di impostare i valori corretti delle proprietà dei sottooggetti di PageProcessingParams che influiscono sul riconoscimento. Questo è consigliato, perché tutti questi parametri vengono copiati nei blocchi creati durante l’analisi del layout e successivamente utilizzati per il riconoscimento, nonché perché l’analisi di alcune parti dell’immagine può comportare il riconoscimento.
Se necessario, configurare le proprietà necessarie del sottooggetto SynthesisParamsForDocument. Non è necessario configurare tutte le proprietà di tutti gli oggetti e sottooggetti, perché al momento della creazione vengono inizializzati con valori predefiniti adeguati. È sufficiente ottimizzare solo le proprietà per cui si desiderano valori diversi da quelli predefiniti. Verificare che il valore della proprietà PerformSynthesis dell’oggetto DocumentProcessingParams sia true.
È possibile passare l’oggetto DocumentProcessingParams o un insieme dei suoi sottooggetti a uno dei metodi di elaborazione degli oggetti FRDocument, FRPage e Engine.
Per riconoscere un documento, si consiglia di utilizzare i metodi di elaborazione dell’oggetto FRDocument. Questo oggetto mette a disposizione un’ampia gamma di metodi di elaborazione. Il metodo più pratico, che consente di eseguire preprocessing, analisi, riconoscimento e sintesi con un unico metodo, è Process. Inoltre, sfrutta nel modo più efficiente le funzionalità di elaborazione simultanea dei sistemi multiprocessore e multicore. Tuttavia, è anche possibile eseguire in sequenza preprocessing, analisi, riconoscimento e sintesi utilizzando i metodi corrispondenti.
Codice C#
FREngine.IEngine engine;FREngine.IFRDocument frdoc;// Presumiamo che il documento sia stato creato e che le immagini siano state aggiunte al documento// Creare DocumentProcessingParams e impostare i parametriFREngine.IDocumentProcessingParams dpp = engine.CreateDocumentProcessingParams();FREngine.IPageProcessingParams ppp = dpp.PageProcessingParams;ppp.PagePreprocessingParams.CorrectOrientationMode = COM_Auto;// Utilizzare i parametri per l'elaborazionefrDoc.Process( dpp );
Procedure simili vengono utilizzate nei seguenti esempi di codice: