2013-06-20 23 views
11

Qualcuno sa come utilizzare i pattern utente (user_patterns_suffix) in Tesseract? Potresti consigliarmi come utilizzarlo e come testarlo? Ho provato a seguire la guida Tesseract (Tessearct user-patterns ma non ho visto ha interessato il risultato a tutti.Tesseract user-patterns

Grazie.

+0

Hai provato ad aggiungere il file di configurazione 'bazaar'? Vedi [tesseract (1)] (http://tesseract-ocr.googlecode.com/svn/trunk/doc/tesseract.1.html#_config_files_and_augmenting_with_user_data) – pvorb

risposta

16

Tesseract usa un modello a AA sorta di "espressione regolare". Può essere utilizzato se lascia dici che dovesse acquisire un libro con i dati che era tutto nello stesso formato un modello può essere utilizzato per raccontare Tesseract quali formati aspettarsi, ike come si aspettano parole utenti parole di seguito si descrive Tesseract describes how to use patterns:..

Ogni modello può contenere qualsiasi carattere non di spaziatura, tuttavia solo gli schemi che contengono caratteri dall'unicorno della lingua corrispondente saranno utile.

L'unico metaprile è \. Per essere utilizzato in un modello come stringa ordinaria, è necessario eseguire l'escape con \ (ad esempio, la stringa C:\Documents deve essere scritta nel file di pattern come C:\\Documents).

Questa funzione supporta una sintassi di espressioni regolari molto limitata. Si può esprimere un carattere, una certa classe di caratteri e un numero di volte in cui l'entità dovrebbe essere ripetuta nel modello.

per indicare una classe di utilizzo carattere uno dei:

  • \c - UNICHAR per i quali UNICHARSET::get_isalpha() è vero (carattere)
  • \d - UNICHAR per i quali UNICHARSET::get_isdigit() vale
  • \n - UNICHAR per il quale UNICHARSET::get_isdigit() e UNICHARSET::isalpha() sono veri
  • \p - unichar per cui UNICHARSET::get_ispunct() vale
  • \a - UNICHAR per cui UNICHARSET::get_islower() vale
  • \A - UNICHAR per cui UNICHARSET::get_isupper() vale

\* possono essere specificati dopo ogni carattere o modello per indicare che il carattere/modello può essere ripetuto qualsiasi numero di volte prima che si verifichi il prossimo carattere/modello.

Esempi:

1-8\d\d-GOOG-411 sarà ampliato a stringhe: 1-800-GOOG-411, 1-801-GOOG-411, ... 1-899-GOOG-411.

"ww.\n\*.com" sarà ampliato a stringhe come: "ww.a.com""ww.a123.com" ... "ww.ABCDefgHIJKLMNop.com"

Nota: nella scelta di quali modelli per includere prega di essere consapevole del fatto che fornisce modelli molto generici farà correre tesseract più lento. Ad esempio, \n\* all'inizio del modello, Tesseract considererà tutte le combinazioni di scelte di carattere proposte per ciascuna segmentazione, il che sarà inaccettabilmente lento.A causa di potenziali problemi di velocità che potrebbero essere difficili da identificare, ogni modello utente deve avere almeno kSaneNumConcreteChars caratteri in calcestruzzo dallo unicharset all'inizio.

+1

Il link è rotto –

+1

Qui il link dal repository GitHub: https: //github.com/tesseract-ocr/tesseract/blob/442b5b731a3ec49dc143dc6533667b8cb62ee9a0/dict/trie.h#L192 – Federinik

+0

@Federinik Grazie mille! Ho passato molto tempo a cercarlo, finalmente l'ho trovato! –