Il rilevamento automatico identifica il tipo di una porzione di testo riconosciuta. Viene avviato se la proprietà TextTypes dell’oggetto RecognizerParams è impostata su più costanti. Questa modalità è stata progettata principalmente per il riconoscimento di moduli. Nel caso del normale Optical Character Recognition (OCR), ne consigliamo l’uso solo se strettamente necessario.
Quando il rilevamento automatico è attivo, ABBYY FineReader Engine tenta innanzitutto di determinare il tipo di testo nel blocco specificato o nel gruppo di blocchi specificato (per questi blocchi, la proprietà TextTypes dell’oggetto RecognizerParams è impostata su più costanti). ABBYY FineReader Engine sceglie tra le costanti specificate nella proprietà TextTypes. Questa proprietà contiene una combinazione OR delle costanti dell’enumerazione TextTypeEnum, che indicano i possibili tipi di testo usati per il riconoscimento. Ad esempio, se è impostata su TT_Normal | TT_Index, ABBYY FineReader Engine presuppone che il testo contenga solo normale testo tipografico e cifre scritte nel formato dei codici postali, ignorando tutte le altre varianti. Durante il rilevamento automatico, ABBYY FineReader Engine esegue il riconoscimento per tutti i tipi di testo specificati nella proprietà TextTypes. I risultati OCR vengono quindi confrontati e ABBYY FineReader Engine seleziona il migliore come risultato finale.
Come usare il rilevamento automatico
Il rilevamento automatico deve essere usato per un insieme di blocchi che contengono tutti testo dello stesso tipo. Se invece per ogni blocco deve essere selezionato un tipo di testo diverso, è necessario chiamare il metodo RecognizeBlocks per ciascun blocco e l’oggetto RecognizerParams deve elencare i possibili tipi di testo.
Se un singolo blocco contiene testo di tipi diversi, il riconoscimento verrà eseguito per tutti i tipi di testo, ma verrà selezionato un solo risultato. Di conseguenza, l’intero testo all’interno del blocco verrà riconosciuto come se fosse tutto dello stesso tipo. Per questo motivo, i risultati del riconoscimento per un blocco contenente testo di più tipi possono differire dai risultati di un blocco che contiene testo di un solo tipo. Per ottenere risultati OCR migliori, disegnare blocchi separati per ogni tipo di testo.
Selezione dell’insieme dei tipi di testo
La velocità e la precisione del rilevamento automatico dipendono dall’insieme di tipi di testo specificato nella proprietà TextTypes. Il rilevamento automatico è più rapido per le combinazioni dei tipi TT_Normal, TT_Matrix, TT_Typewriter, TT_OCR_A e TT_OCR_B (che possono essere definite “insieme di rilevamento automatico rapido”). In questo caso, il riconoscitore viene avviato una sola volta, il rilevamento automatico viene eseguito durante l’OCR e per individuare il tipo di testo vengono utilizzate parole singole anziché blocchi. Se è stato specificato un solo tipo di testo, il rilevamento automatico non viene avviato: Engine avvia il riconoscitore corrispondente al tipo di testo specificato.
Se la proprietà TextTypes corrisponde a una qualsiasi combinazione di TT_Matrix, TT_Typewriter, TT_OCR_A e TT_OCR_B, i caratteri in corsivo e apici/pedici non verranno riconosciuti, indipendentemente dai valori delle proprietà ProhibitItalic, ProhibitSubscript e ProhibitSuperscript dell’oggetto RecognizerParams.
Nel caso di testi non inclusi nell‘“insieme di rilevamento automatico rapido”, i tipi di testo vengono rilevati per blocchi, non per singole parole. Ciò significa che il rilevamento automatico è più lento se l’insieme dei possibili tipi di testo include tipi di testo diversi da TT_Normal, TT_Matrix, TT_Typewriter, TT_OCR_A e TT_OCR_B. In questo caso, Engine deve eseguire più volte un OCR preliminare: una volta per i tipi dell‘“insieme di rilevamento automatico rapido” e una sessione di riconoscimento preliminare per ciascun tipo di testo aggiuntivo. Successivamente, i risultati vengono confrontati e viene selezionato il tipo di testo migliore.
- Assicurarsi di ridurre al minimo il numero di tipi di testo nella proprietà TextTypes.
- Se la proprietà TextTypes corrisponde a una qualsiasi combinazione di TT_Handwritten e TT_Index, la proprietà TrainUserPatterns dell’oggetto RecognizerParams non può essere impostata su TRUE.
RecognizerParams
TextTypeEnum