ITRM20130022A1 - Procedimento e apparato di riconoscimento di scrittura a mano - Google Patents
Procedimento e apparato di riconoscimento di scrittura a manoInfo
- Publication number
- ITRM20130022A1 ITRM20130022A1 IT000022A ITRM20130022A ITRM20130022A1 IT RM20130022 A1 ITRM20130022 A1 IT RM20130022A1 IT 000022 A IT000022 A IT 000022A IT RM20130022 A ITRM20130022 A IT RM20130022A IT RM20130022 A1 ITRM20130022 A1 IT RM20130022A1
- Authority
- IT
- Italy
- Prior art keywords
- strokes
- classified
- character
- image
- cursive
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 101
- 239000012634 fragment Substances 0.000 claims description 209
- 238000004422 calculation algorithm Methods 0.000 claims description 63
- 230000011218 segmentation Effects 0.000 claims description 50
- 238000013518 transcription Methods 0.000 claims description 45
- 230000035897 transcription Effects 0.000 claims description 45
- 239000013598 vector Substances 0.000 claims description 43
- 238000012549 training Methods 0.000 claims description 41
- 230000008569 process Effects 0.000 claims description 36
- 238000009826 distribution Methods 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 20
- 238000010200 validation analysis Methods 0.000 claims description 17
- 230000006870 function Effects 0.000 claims description 15
- 238000004458 analytical method Methods 0.000 claims description 12
- 230000002123 temporal effect Effects 0.000 claims description 9
- 238000013528 artificial neural network Methods 0.000 claims description 8
- 238000000354 decomposition reaction Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 241000863929 Naxa Species 0.000 claims description 4
- 230000007423 decrease Effects 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 claims description 4
- 230000001131 transforming effect Effects 0.000 claims description 4
- 230000003247 decreasing effect Effects 0.000 claims description 2
- 230000007717 exclusion Effects 0.000 claims description 2
- 238000012795 verification Methods 0.000 claims description 2
- 239000000976 ink Substances 0.000 description 48
- 238000012937 correction Methods 0.000 description 9
- 238000002372 labelling Methods 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 7
- 101100048228 Homo sapiens UBP1 gene Proteins 0.000 description 6
- 101100117629 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) LCB3 gene Proteins 0.000 description 6
- 101100500049 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) YSR3 gene Proteins 0.000 description 6
- 102100040065 Upstream-binding protein 1 Human genes 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 5
- 230000009467 reduction Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 238000003909 pattern recognition Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 101100446027 Caenorhabditis elegans lbp-4 gene Proteins 0.000 description 2
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000012015 optical character recognition Methods 0.000 description 2
- 230000003304 psychophysiological effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 241001649081 Dina Species 0.000 description 1
- 241001123862 Mico Species 0.000 description 1
- 241001237728 Precis Species 0.000 description 1
- 241000288906 Primates Species 0.000 description 1
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 1
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 125000004122 cyclic group Chemical class 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 229910052742 iron Inorganic materials 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 102220047090 rs6152 Human genes 0.000 description 1
- 238000011524 similarity measure Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/148—Segmentation of character regions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/28—Determining representative reference patterns, e.g. by averaging or distorting; Generating dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/191—Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
- G06V30/1914—Determining representative reference patterns, e.g. averaging or distorting patterns; Generating dictionaries, e.g. user dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/22—Character recognition characterised by the type of writing
- G06V30/226—Character recognition characterised by the type of writing of cursive writing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/22—Character recognition characterised by the type of writing
- G06V30/226—Character recognition characterised by the type of writing of cursive writing
- G06V30/2264—Character recognition characterised by the type of writing of cursive writing using word shape
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/22—Character recognition characterised by the type of writing
- G06V30/226—Character recognition characterised by the type of writing of cursive writing
- G06V30/2268—Character recognition characterised by the type of writing of cursive writing using stroke segmentation
- G06V30/2272—Character recognition characterised by the type of writing of cursive writing using stroke segmentation with lexical matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/26—Techniques for post-processing, e.g. correcting the recognition result
- G06V30/262—Techniques for post-processing, e.g. correcting the recognition result using context analysis, e.g. lexical, syntactic or semantic context
- G06V30/268—Lexical context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/32—Digital ink
- G06V30/333—Preprocessing; Feature extraction
- G06V30/347—Sampling; Contour coding; Stroke extraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/32—Digital ink
- G06V30/36—Matching; Classification
- G06V30/373—Matching; Classification using a special pattern or subpattern alphabet
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/50—Maintenance of biometric data or enrolment thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Character Discrimination (AREA)
- Exchange Systems With Centralized Control (AREA)
Description
PROCEDIMENTO E APPARATO DI RICONOSCIMENTO DI SCRITTURA A MANO
La presente invenzione riguarda un procedimento di riconoscimento di scrittura a mano che consente in modo efficiente, affidabile ed economico di riconoscere la scrittura a mano di un autore sulla base di aspetti psico-fisiologici della modalità di scrittura a mano, derivando dalla traccia sulla carta (od un qualsiasi altro mezzo sul quale l’autore scrive a mano) l’interpretazione della scrittura, ovvero la sequenza di caratteri che la traccia intende rappresentare.
La presente invenzione riguarda altresì l’apparato configurato per eseguire tale procedimento di scrittura a mano, e gli strumenti che consentono l’esecuzione del procedimento stesso.
Sebbene nel seguito venga principalmente fatto riferimento ad una applicazione del procedimento secondo l’invenzione al riconoscimento di scrittura a mano con inchiostro su carta, esso può essere applicato per riconoscere scrittura a mano su qualsiasi altro mezzo sul quale un autore può scrivere a mano, come ad esempio nel caso di tavolette elettroniche (tablet) sulle quali un utente può scrivere mediante uno stilo, rimanendo nell’ambito di protezione come definito dalle rivendicazioni allegate.
Nel contesto del riconoscimento automatico della scrittura (nel quale si inseriscono ad esempio le tecniche OCR di riconoscimento ottico dei caratteri), una significativa e crescente importanza à ̈ rivestita dalle tecniche di riconoscimento della scrittura a mano.
Le tecniche di riconoscimento della scrittura a mano attualmente esistenti possono essere suddivise in due macro-categorie: le tecniche analitiche e le tecniche olistiche, che tipicamente fanno entrambe uso di reti neurali.
I procedimenti della prima categoria assumono che le unità elementari da riconoscere siano i singoli caratteri, e pertanto comprendono le fasi di segmentare le tracce in sotto-parti, ognuna delle quali si assume che rappresenti un carattere, codificare ogni sotto-parte tramite un adeguato insieme di caratteristiche, ed infine classificare ogni sotto-parte comparando le sue caratteristiche con quelle associate ad un insieme di prototipi ognuno associato ad una differente classe, i.e. ad un differente carattere. Le tecniche analitiche sono dunque potenzialmente in grado di riconoscere qualsiasi sequenza di caratteri scritti in un dato alfabeto. Alcuni procedimenti di questa prima categoria sono descritti nei documenti US 4718103 A, US 5303312 A, US 5307423 A, EP 0892360 A1 e US 2006/282575 A1.
Tuttavia, le tecniche analitiche soffrono dell’inconveniente di essere estremamente sensibili ad errori di segmentazione. Inoltre, tali tecniche modellano ogni classe (i.e. ogni carattere) indipendentemente l’una dall’altra, e poiché nella parola scritta a mano la forma effettiva di un carattere à ̈ influenzata dalla forma almeno del carattere che lo precede e/o da quello che lo segue, le tecniche analitiche richiedono degli insiemi di addestramento o degli insiemi di prototipi molto numerosi per poter tener conto della variabilità mostrata dalle varie istanze del medesimo carattere in differenti parole e ridurre il tasso di errore di riconoscimento. I procedimenti analitici più sofisticati integrano le procedure di segmentazione e di riconoscimento, ovvero forniscono ipotesi di segmentazione alternative e fanno affidamento su un motore di riconoscimento di caratteri per validare o rigettare ogni ipotesi, nell’ipotesi che, allo scopo di essere correttamente riconosciuto, un carattere deve essere stato correttamente segmentato.
I procedimenti delle tecniche olistiche assumono, invece, un’intera parola quale unità elementare da riconoscere, e di conseguenza rappresentano ogni traccia tramite un adeguato insieme di caratteristiche di cui eseguono una classificazione comparando tale insieme con quelli di un insieme di prototipi, ognuno associato ad una differente classe, i.e. ad una differente parola. Le tecniche olistiche presentano il vantaggio di non richiedere una segmentazione dei tratti di scrittura a mano. Procedimenti appartenenti alle tecniche olistiche sono descritti nei documenti US5515455A e US6754386B1.
Tuttavia, le tecniche olistiche soffrono dell’inconveniente di avere necessità di tante classi differenti quante sono le differenti parole da riconoscere. Inoltre, esse richiedono un insieme di addestramento molto ampio, contenente un numero sufficiente di istanze di ogni parola nel lessico riconoscibile, per addestrare i prototipi delle classi. Ciò limita l’applicazione delle tecniche olistiche a lessici di poche migliaia di parole, come nel caso dell’elaborazione di sicurezza degli assegni bancari o del riconoscimento della scrittura a mano utilizzata per gli indirizzi di plichi postali.
Recentemente, sulla base dei progressi nella comprensione degli aspetti del controllo motorio coinvolto nella scrittura a mano e nello sviluppo di corrispondenti modelli computazionali, gli esperti del ramo hanno accertato che la scrittura a mano à ̈ un movimento discreto, risultante dalla sovrapposizione temporale di movimenti elementari, chiamati “stroke†, e che la velocità di movimento varia lungo la traccia, in modo tale che le parti della traccia che sono prodotte più lentamente corrispondono all’intersezione tra stroke successivi. In conformità a questo, sono stati proposti alcuni metodi di riconoscimento di scrittura a mano, che fanno tipicamente uso di Hidden Markov Models (Modelli nascosti di Markov), che adottano gli stroke come unità elementari per segmentare la traccia. Da questa rappresentazione della traccia basata sugli stroke, un modello probabilistico della variazione sia della forma degli stroke che delle sequenze di essi per ogni classe (una classe può corrispondere ad un carattere o ad una parola a seconda dell’approccio adottato) à ̈ stimato ed utilizzato per il riconoscimento. I metodi basati sugli stroke sono stati adottati con successo in una vasta maggioranza di sistemi di riconoscimento di scrittura a mano on-line, e ci sono solo pochi tentativi di utilizzarli in sistemi di riconoscimento off-line. La ragione à ̈ che nel primo caso il sistema esegue il riconoscimento mentre la traccia viene prodotta per mezzo di un dispositivo, come ad esempio un tablet elettronico, che fornisce anche informazioni dinamiche sulla velocità della punta della penna (o dello stilo), e pertanto gli effettivi movimenti elementari (stroke) effettuati dall’autore durante la scrittura possono essere affidabilmente estratti dall’analisi del profilo di velocità della traccia. Nell’altro caso, invece, tali informazioni dinamiche non sono disponibili, e pertanto estrarre gli effettivi stroke dalla traccia diventa molto più difficile ed i risultati sono meno robusti e meno affidabili, per cui differenti rappresentazioni possono essere associate con tracce prodotte dalla medesima sequenza di stroke effettivi.
Tuttavia, anche i metodi con rappresentazione basata sugli stroke soffrono di alcuni inconvenienti dovuti al fatto che essi hanno bisogno di modellare la sequenza di stroke, i.e. di modellare sia la variabilità degli stroke che la variabilità con cui gli stroke sono disposti nelle sequenze che rappresentano le tracce che si vorrebbero ascrivere alla medesima classe. Per affrontare entrambe le fonti di variabilità , la fase di addestramento di tali sistemi, che mira a costruire il modello, richiede insiemi di addestramento estremamente ampli, tanto da essere difficili da collezionare ed anche molto costosi.
Lo scopo della presente invenzione à ̈, pertanto, quello di consentire di riconoscere la scrittura a mano in modo efficiente, affidabile ed economico.
Forma oggetto specifico della presente invenzione un procedimento di riconoscimento di scrittura a mano comprendente una modalità di esecuzione in cui il procedimento esegue le fasi di:
A. avere a disposizione almeno una immagine digitale di almeno una traccia corsiva corrispondente ad almeno una parola incognita da riconoscere, detta almeno una immagine comprendendo un insieme di pixel rappresentativi di un inchiostro in almeno un primo colore su un fondo di pixel in almeno un secondo colore differente da detto almeno un primo colore, B. elaborare detta almeno una immagine digitale sulla base di un Lexicon comprendente una pluralità di parole note in almeno un alfabeto,
C. fornire in uscita almeno una stringa di uno o più caratteri quale interpretazione di detta almeno una traccia corsiva, detta almeno una stringa di caratteri essendo selezionata tra le parole note incluse nel Lexicon, oppure rigettare detta almeno una parola incognita,
il procedimento essendo caratterizzato dal fatto che la fase B comprende le seguenti operazioni:
B1. decomporre detta almeno una traccia corsiva in modo da estrarre da detta almeno una immagine digitale uno o più frammenti d’immagine e da classificare ognuno di detti uno o più frammenti d’immagine come carattere isolato o come porzione di scrittura corsiva;
B2. se uno o più frammenti d’immagine sono stati classificati come caratteri isolati, riconoscere i caratteri isolati in detti uno o più frammenti (201) d’immagine classificati come caratteri isolati in modo da fornire una lista di una o più interpretazioni per ogni frammento d’immagine classificato come carattere isolato ed un costo di classificazione per ogni interpretazione e da fornire una posizione relativa per ogni frammento d’immagine classificato come carattere isolato in detta almeno una traccia corsiva;
B3. se uno o più frammenti d’immagine sono stati classificati come porzioni di scrittura corsiva, segmentare ognuno di detti uno o più frammenti d’immagine classificati come porzioni di scrittura corsiva in una sequenza di uno o più stroke;
B4. se uno o più frammenti d’immagine sono stati classificati come caratteri isolati, sulla base del Lexicon, di detti uno o più frammenti d’immagine classificati come caratteri isolati e della loro posizione relativa in detta almeno una traccia corsiva, determinare un Lexicon dinamico comprendente una o più parole note incluse nel Lexicon che contengono, nelle posizioni corrispondenti a detti uno o più frammenti d’immagine classificati come caratteri isolati, un carattere corrispondente alle interpretazioni contenute nelle liste di una o più interpretazioni fornite per ogni frammento d’immagine classificato come carattere isolato e, per ogni parola nota del Lexicon dinamico, un costo associato pari alla somma dei costi di classificazione delle interpretazione di ogni frammento d’immagine classificato come carattere isolato corrispondente al carattere della parola nota del Lexicon dinamico nella posizione corrispondente;
B5. se uno o più frammenti d’immagine sono stati classificati come porzioni di scrittura corsiva, sulla base del Lexicon dinamico e di un Reference Set, il quale Reference Set comprende una pluralità di sequenze di stroke corrispondenti a porzioni di scrittura corsiva note e per ogni sequenza di stroke corrispondente ad una porzione di scrittura corsiva nota una rispettiva trascrizione comprendente una stringa di tanti caratteri quante sono gli stroke della sequenza in modo tale che ogni stroke della sequenza à ̈ associato ad un carattere della rispettiva trascrizione, determinare un Reference Set dinamico comprendente una o più sequenze di stroke estratte dal Reference Set la cui trascrizione corrisponde almeno parzialmente con una o più sotto-sequenze di due o più caratteri incluse in dette una o più parole note incluse nel Lexicon dinamico nelle posizioni corrispondenti a detti uno o più frammenti d’immagine classificati come porzioni di scrittura corsiva;
B6. se uno o più frammenti d’immagine sono stati classificati come porzioni di scrittura corsiva, confrontare le sequenze di uno o più stroke in cui sono stati segmentati detti uno o più frammenti d’immagine classificati come porzioni di scrittura corsiva con dette una o più sequenze di stroke incluse nel Reference Set dinamico e, nel caso in cui un insieme di criteri di corrispondenza sia soddisfatto, fornire per ogni frammento d’immagine classificato come porzione di scrittura corsiva una o più interpretazioni corsive; e B7. validare dette una o più interpretazioni corsive di detti uno o più frammenti d’immagine classificati come porzioni di scrittura corsiva, se esistenti, e calcolare un costo totale di ogni parola nota del Lexicon dinamico per la quale sono state trovate una o più interpretazioni corsive di detti uno o più frammenti d’immagine classificati come porzioni di scrittura corsiva, se esistenti, combinando il costo associato determinato nell’operazione B.3 ed i costi di dette una o più interpretazioni corsive;
la fase C fornendo in uscita quale interpretazione di detta almeno una traccia corsiva la parola nota del Lexicon dinamico avente costo totale di classificazione più basso oppure rigettando detta almeno una parola incognita nel caso in cui il costo totale di classificazione più basso à ̈ superiore ad una soglia di costo.
Secondo un altro aspetto dell’invenzione, l’operazione B4 può determinare il Lexicon dinamico anche sulla base delle sequenze di uno o più stroke in cui sono stati segmentati detti uno o più frammenti d’immagine classificati come porzioni di scrittura corsiva, se esistenti, escludendo dal Lexicon dinamico le parole note incluse nel Lexicon che comprendono almeno una sequenza di stroke corrispondente ad una porzione di scrittura corsiva nota del Reference Set, avente un numero atteso Sexpdi stroke, in una posizione corrispondente ad un frammento d’immagine classificato come porzioni di scrittura corsiva, la cui sequenza di uno o più stroke ha un numero effettivo Sactdi stroke, tale che la differenza tra il numero atteso Sexpdi stroke ed il numero effettivo Sactdi stroke à ̈ superiore ad una soglia di esclusione.
Secondo un ulteriore aspetto dell’invenzione, l’operazione B2 può comprendere, per ognuno di detti uno o più frammenti d’immagine classificati come caratteri isolati, le seguenti sotto-fasi:
B2.1 associare all’immagine del frammento d’immagine classificato come carattere isolato un vettore di caratteristiche, il vettore di caratteristiche comprendendo preferibilmente Momenti Geometrici Centrali CGM dell’immagine del frammento d’immagine classificato come carattere isolato fino al 7° ordine ed un insieme di medie dei pixel appartenenti a sotto-immagini disgiunte estratte dall’immagine del frammento d’immagine classificato come carattere isolato,
B2.2 eseguire una classificazione multi-esperto a L esperti E={E1, …, EL}, preferibilmente basata su almeno una rete neurale, del frammento d’immagine classificato come carattere isolato per fornire L risultati {e1, ... , eL}, più preferibilmente avente L=20 esperti ottenuti utilizzando come schema di classificazione una rete neurale di tipo feed-forward addestrata con algoritmo di retropropagazione in cui 10 primi esperti sono addestrati utilizzando un insieme di addestramento di Momenti Geometrici Centrali CGM fino al 7° ordine e 10 secondi esperti sono addestrati utilizzando un insieme di addestramento di medie di pixel appartenenti a sotto-immagini disgiunte.
B2.3 combinare i risultati {e1, ... , eL} della classificazione multi-esperto fornendo in uscita la lista di una o più interpretazioni per il frammento d’immagine classificato come carattere isolato ed un costo di classificazione per ogni interpretazione, utilizzando preferibilmente una rete bayesiana per dedurre automaticamente una distribuzione di probabilità per ogni carattere isolato noto e definendo una nuova regola di voto a maggioranza pesata, la rete bayesiana utilizzando più preferibilmente una strategia di addestramento supervisionato che osserva sia i risultati {e1, ... , eL} della classificazione multi-esperto che il carattere isolato noto c per ogni frammento d’immagine di un insieme di addestramento al fine di calcolare una probabilità congiunta p(c, e1, … , eL), in cui la rete bayesiana utilizza probabilità congiunte come pesi per combinare i risultati {e1, ... , eL} della classificazione multi-esperto, in modo tale che la rete bayesiana riconosce il carattere isolato del frammento d’immagine classificato come carattere isolato interpretandolo come carattere isolato c* mediante la formula:
c* =mk Caxkwk ri<,>k
dove ri,kà ̈ una funzione il cui valore à ̈ 1 quando il classificatore Eiclassifica frammento d’immagine classificato come carattere isolato noto k, e 0 altrimenti, mentre wkrappresenta il peso relativo al k-esimo carattere isolato noto ed à ̈ impostato pari alla probabilità congiunta:
wk= p(c=k, e1, … , eL)
le interpretazioni essendo ordinate progressivamente e l’operazione B2 includendo nella lista di una o più interpretazioni per il frammento d’immagine classificato come carattere isolato la migliore interpretazione e le interpretazioni ordinate successivamente per le quali la differenza rispetto alla precedente à ̈ inferiore ad una soglia Î ̧ di interpretazione, il costo di classificazione di ogni interpretazione inclusa nella lista di una o più interpretazioni essendo pari al rispettivo prodotto wkri,k.
Secondo un aspetto aggiuntivo dell’invenzione, l’operazione B3 può comprendere, per ogni frammento d’immagine classificato come porzione di scrittura corsiva, le seguenti sotto-fasi ordinate:
B3.1 effettuare una scheletrizzazione del frammento d’immagine classificato come porzione di scrittura corsiva, trasformando l’inchiostro in uno scheletro comprendente una linea di larghezza pari ad un singolo pixel preferibilmente mediante trasformata asse mediano MAT,
B3.2 correggere distorsioni, se esistenti, introdotte dalla scheletrizzazione, preferibilmente rimuovendo rami spuri, se esistenti, ed effettuando una approssimazione poligonale di ogni ramo dello scheletro e più preferibilmente correggendo distorsioni di tipo a V e/o di tipo a X e/o di tipo a T, se esistenti,
B3.3 effettuare una sbrogliatura dello scheletro corretto ottenuto dalla sottofase B3.2, fornendo una sequenza temporale di punti che compongono l’inchiostro,
B3.4 segmentare, sulla base della sequenza di punti di sbrogliatura, lo scheletro corretto sbrogliato ottenuto dalla sotto-fase B3.3 in una sequenza di stroke separati da punti di segmentazione,
B3.5 effettuare una validazione dello scheletro corretto sbrogliato segmentato ottenuto dalla sotto-fase B3.4 sulla base di un insieme di criteri di validazione e, nel caso in cui detto insieme di criteri non siano soddisfatti ripetere dalla sotto-fase B3.3 per produrre una differente sbrogliatura dello scheletro,
B3.6 nel caso in cui la fase B3.5 accerti che detto insieme di criteri à ̈ soddisfatto, assegnare ad ogni stroke una caratteristica distintiva, che preferibilmente tiene conto di una forma globale dello stroke e della sua posizione relativa in detta almeno una traccia corsiva, fornendo la sequenza di stroke e la corrispondente sequenza di caratteristiche.
Secondo un altro aspetto dell’invenzione, la sotto-fase B3.3 può fornire la sequenza temporale dei punti dello scheletro corretto sulla base di una ricerca in un grafo, comprendente una pluralità di nodi ed una pluralità di archi di connessione tra nodi, che descrive proprietà topologiche di una polilinea associata allo scheletro corretto ottenuto dalla sotto-fase B3.2, in cui ogni nodo del grafo ha un tipo, selezionato tra punto terminale EP e punto BP di diramazione, ed un grado, pari al numero di archi di connessione che si diramano dal nodo stesso e che dipende dal numero di linee della polilinea che attraversano il nodo, la sotto-fase B3.3 comprendendo:
- trasformare il grafo in un grafo semi-euleriano, selezionando i nodi iniziale e finale tra i nodi di grado dispari e trasformando tutti i rimanenti nodi di grado dispari in nodi di grado pari aggiungendo archi di connessione tra di loro, preferibilmente aggiungendo archi di connessione tra coppie di nodi dispari sulla base di un criterio di vicinanza,
- ottenere la sbrogliatura selezionando un percorso all’interno del grafo semi-euleriano che attraversa tutti i nodi e che minimizza il numero di nodi attraversati più di una volta, preferibilmente mediante un algoritmo di Fleury modificato sulla base di criteri di generazione di scrittura a mano, preferibilmente ordinando gli archi di connessione partendo dal nodo iniziale e, in ogni nodo di tipo punto BP di diramazione, andando lungo gli archi di connessione secondo l’ordine seguente:
a) arco semplice di connessione, che parte da un nodo di tipo punto BP di diramazione e termina in un altro nodo di tipo punto BP di diramazione;
b) ciclo, che à ̈ un arco di connessione che inizia e finisce nel medesimo nodo di tipo punto BP di diramazione,
c) circuito a due vie, che à ̈ un arco di connessione che parte in un nodo di tipo punto BP di diramazione e termina in un nodo terminale EP,
d) circuito a tre vie, che à ̈ formato da due archi di connessione che partono e terminano nel medesimo nodo di tipo punto BP di diramazione;
e) ponti, che sono archi semplici di connessione la cui rimozione disconnette il grafo.
Secondo un ulteriore aspetto dell’invenzione, la sotto-fase B3.4 può segmentare lo scheletro corretto sbrogliato mediante un metodo di decomposizione che usa un concetto di salienza percettiva basato su una rappresentazione multiscala dello scheletro corretto sbrogliato ottenuto dalla sotto-fase B3.3 che viene utilizzata per costruire una mappa di salienza per evidenziare i punti dello scheletro corretto sbrogliato in cui sono registrate variazioni di curvatura in scale diverse superiori ad una soglia di variazione di curvatura ed assumere tali punti dello scheletro corretto sbrogliato come punti di segmentazione, in cui il metodo di decomposizione preferibilmente comprende:
- costruire rappresentazioni dello scheletro corretto sbrogliato utilizzando come scala ï ³ differenti livelli di risoluzione del frammento d’immagine classificato come porzione di scrittura corsiva, la minima risoluzione includendo più preferibilmente tre punti per rappresentare l’intero scheletro corretto sbrogliato,
- calcolare una curvatura c ( σ) ad ogni risoluzione σ:
c ( σ)=limΔλ->0Δα/Δλ
dove λ à ̈ un’ascissa curvilinea sullo scheletro corretto sbrogliato,
- quantizzare la curvatura in Q intervalli, con Q più preferibilmente pari a 16, e codificare ciascun intervallo da una etichetta in modo tale che ad ogni scala la forma dello stroke à ̈ descritta da una stringa di tante etichette quanto à ̈ il numero di punti utilizzati per descrivere lo scheletro corretto sbrogliato meno uno;
- costruire una mappa di salienza contando il numero di volte un punto dello scheletro corretto sbrogliato à ̈ un massimo locale di curvatura alle diverse scale;
- selezionare come punti di segmentazione i punti di massimo locale della mappa di salienza il cui valore à ̈ maggiore alla soglia di variazione di curvatura pari alla media di valori della mappa;
- selezionare la migliore scala per descrivere la forma degli stroke calcolando la distanza tra un vettore c( σ) ed un vettore <c( σ)>.
Secondo un aspetto aggiuntivo dell’invenzione, la sotto-fase B3.5 può analizzare la sequenza di stroke ottenuta dalla sotto-fase B3.4 per mezzo dei seguenti criteri di validazione:
- individuare un errore di segmentazione quando uno stroke inizia o termina nelle vicinanze di un punto di fine od un punto di inizio di un tratto d’inchiostro, la vicinanza essendo valutata confrontando la distanza tra il punto di segmentazione e quello iniziale o finale con una soglia di distanza, preferibilmente pari a 3 pixel;
- individuare un errore di segmentazione quando due o più stroke iniziano nelle vicinanze di un punto di tipo BP di diramazione, la vicinanza essendo valutata confrontando la distanza tra il punto di segmentazione ed il punto di tipo BP di diramazione con la soglia di distanza,
e, se il numero di errori individuati supera una soglia di errore, preferibilmente pari a 2, la sotto-fase B3.5 rigetta lo scheletro corretto sbrogliato segmentato ottenuto dalla sotto-fase B3.4 ed il procedimento ripete la sotto-fase B3.3, mentre se il numero di errori individuati à ̈ maggiore di zero ed inferiore alla soglia di errore, il procedimento ripete la sotto-fase B3.3 sfruttando gli errori individuati per modificare:
- la selezione del nodo iniziale e del nodo finale, e/o
- l’introduzione di archi di connessione addizionali, e/o
- la selezione del percorso all’interno del grafo semi-euleriano.
Secondo un altro aspetto dell’invenzione, l’operazione B6 può effettuare, per ogni frammento d’immagine classificato come porzione di scrittura corsiva, il confronto misurando la similarità della forma della sequenza di uno o più stroke in cui à ̈ stato segmentato il frammento d’immagine con la forma di dette una o più sequenze di stroke incluse nel Reference Set dinamico a scale differenti sulla base di una rappresentazione multi-scala della sequenza di uno o più stroke in cui à ̈ stato segmentato il frammento d’immagine che viene utilizzata per costruire una mappa di salienza per evidenziare le sequenze di stroke incluse nel Reference Set dinamico più simili alla sequenza di uno o più stroke in cui à ̈ stato segmentato il frammento d’immagine, la rappresentazione multi-scala preferibilmente utilizzando come scala di partenza la lunghezza K, pari al numero di stroke, della più lunga sequenza comune di stroke compatibili tra la sequenza di uno o più stroke in cui à ̈ stato segmentato il frammento d’immagine e la sequenza di stroke inclusa nel Reference Set dinamico con cui viene effettuato il confronto, le scale successive essendo ottenute considerando le sotto-sequenze di stroke compatibili di lunghezza progressivamente decrementata di 1, per cui sono ottenute K-1 mappe di similarità , il confronto essendo più preferibilmente effettuato sulla base di uno o più criteri di compatibilità .
Secondo un ulteriore aspetto dell’invenzione, nell’operazione B6 la forma di uno stroke può essere descritta da un codice di catena che codifica le orientazioni dei segmenti della polilinea che descrive lo stroke alla risoluzione ï ³, e l’operazione B6 può comprendere le seguenti sotto-fasi ordinate:
B6.1. misurare la similarità tra due stroke mediante una distanza pesata WED di scrittura tra i rispettivi codici di catena, in cui il codice di catena di lunghezza Lminpiù corta tra i due da comparare viene stirato fino al codice di catena di lunghezza Lmaxpiù lunga, preferibilmente in modo che da calcolare la parte intera I del rapporto (Lmax/Lmin) ed ogni simbolo del codice di catena più corto viene replicato per (I-1) volte ed i restanti ((Lmax- Lmin)·I) simboli vengono aggiunti posizionandoli uniformemente nel codice di catena stirato, la distanza WED tra un primo codice di catena X=(x1, x2, …, xL) ed un secondo codice di catena Y =(y1, y2, …, yL) essendo pari a:
 L
 SD  ED(xi, y i )
maxï€ ïƒ§ 
WED(X,Y )ï€1⁄2 WED max iï€1⁄2 1ïƒ ̈ L ïƒ ̧

 SD max 
  [W1]
dove:
- ED(xi,yi) Ã ̈ la distanza simmetrica di scrittura tra il simbolo xidel primo codice di catena ed il simbolo yidel second codice di catena, - L Ã ̈ la lunghezza dei codici di catena X e Y,
- SDmaxà ̈ la distanza massima tra due simboli, preferibilmente pari a 8, e - WEDmaxà ̈ la distanza WED massima, preferibilmente pari a 100, B6.2 calcolare il valore medio Î1⁄4(WED) sui valori WEDijche sono diversi da zero, B6.3 inizializzare gli NxM elementi Sijdella mappa S di salienza a zero, B6.4 individuare la lunghezza K della più lunga sequenza comune di stroke compatibili e, per ogni coppia di stroke p e q di tale sequenza tale che WEDpq> Î1⁄4(WED), incrementare di una unità la salienza della coppia di stroke p e q, i.e.: Spq= Spq+1,
B6.5 decrementare di una unità la lunghezza K (i.e. K=K-1) e, finché la lunghezza K à ̈ maggiore o uguale a 2 (i.e. K ≥ 2), ricercare le sequenze di lunghezza K e ripetere dalla sotto-fase B6.1,
B6.6 calcolare il valore medio Î1⁄4(S) sui valori Sijche sono diversi da zero, B6.7 selezionare secondo un criterio di corrispondenza una o più sequenze di stroke incluse nel Reference Set dinamico più simili alla sequenza di uno o più stroke in cui à ̈ stato segmentato il frammento d’immagine come interpretazione corsiva, il costo per ogni interpretazione corsiva essendo pari al valore medio della distanza WED della sequenza di stroke inclusa nel Reference Set dinamico dalla sequenza di uno o più stroke in cui à ̈ stato segmentato il frammento d’immagine.
Secondo un aspetto aggiuntivo dell’invenzione, l’operazione B7 può comprendere le seguenti sotto-fasi:
B7.1 costruire un grafo orientato pesato i cui i nodi sono le corrispondenze tra stroke della sequenza di uno o più stroke in cui à ̈ stato segmentato il frammento d’immagine classificato come porzione di scrittura corsiva e la sequenza di stroke inclusa nel Reference Set dinamico, ad ogni nodo essendo associata un’etichetta corrispondente alla sequenza di caratteri codificata dalla sequenza di stroke corrispondenti, ed i cui archi sono i possibili collegamenti tra coppie di corrispondenze consecutive, ogni percorso del grafo essendo associato ad una stringa ottenuta unendo le etichette di ogni nodo attraversato lungo il percorso, i nodi del grafo essendo preferibilmente determinati sulla base delle seguenti tre regole:
1) una corrispondenza diventa un nodo se la sua etichetta à ̈ una sottostringa contenuta all’interno dell’interpretazione corsiva del frammento d’immagine classificato come porzione di scrittura corsiva; 2) due o più corrispondenze sono unite in una singola corrispondenza se sono completamente sovrapposte ed hanno in comune la medesima etichetta;
3) due corrispondenze sono associate a nodi diversi se non sono sovrapposte o se sono parzialmente sovrapposte e le etichette degli stroke sovrapposte sono diverse,
ed il costo assegnato ai nodi determinati da tali tre regole essendo preferibilmente uguale, per ogni nodo, alla differenza tra il numero massimo di corrispondenze assegnate ad uno dei nodi per il frammento d’immagine classificato come porzione di scrittura corsiva ed il numero di corrispondenze associato al nodo del grafo,
gli archi del grafo essendo determinati sulla base delle seguenti tre regole:
4) un arco tra due nodi à ̈ creato se e solo se le sequenze associate ai due nodi collegati dall’arco non sono sovrapposte e l’unione delle sequenze dà luogo ad una sottostringa contenuta all’interno dell’interpretazione corsiva del frammento d’immagine classificato come porzione di scrittura corsiva;
5) un arco tra due nodi à ̈ creato se e solo se le sequenze associate ai due nodi collegati dall’arco sono sovrapposte per al più un numero massimo b di stroke, gli stroke sovrapposti hanno la stessa etichetta e l’unione delle sequenze dà luogo ad una sottostringa contenuta all’interno dell’interpretazione corsiva del frammento d’immagine classificato come porzione di scrittura corsiva;
6) dopo avere inserito un nodo sorgente virtuale ed un nodo destinazione virtuale per ottenere un grafo connesso, il nodo sorgente virtuale à ̈ collegato ad ogni nodo che, dopo l’applicazione delle regole 4 e 5, rimane senza arco di ingresso ed ogni nodo che, dopo l’applicazione delle regole 4 e 5, rimane senza un arco di uscita à ̈ collegato al nodo destinazione virtuale,
ed il costo assegnato agli archi determinati da tali tre regole essendo preferibilmente dipendente dalla lunghezza delle sovrapposizioni e degli spazi vuoti tra le corrispondenze, per cui il costo per l’arco Aijche va dal nodo Nial nodo Njà ̈ pari a
dove L indica la lunghezza della sovrapposizione o dello spazio vuoto, Llowindica la lunghezza del nodo meno costoso della coppia, Nhighil nodo del grafo con il più alto costo e Lhighla sua lunghezza, e cost(N) à ̈ il costo del nodo, il costo Cijdel percorso che va dal nodo Nial nodo Njessendo pari a:
B7.2 verificare l’esistenza di un percorso la cui stringa associata corrisponde all’interpretazione corsiva, ed in caso di esito positivo della verifica accettare l’interpretazione corsiva.
Secondo un altro aspetto dell’invenzione, il procedimento può comprendere altresì una modalità di configurazione in cui il procedimento esegue le fasi di:
D. avere a disposizione una pluralità di immagini digitali di un insieme Setup Set di addestramento di tracce corsive corrispondenti a parole note, detta almeno una immagine comprendendo un insieme di pixel rappresentativi di un inchiostro in almeno un primo colore su un fondo di pixel in almeno un secondo colore differente da detto almeno un primo colore,
E. decomporre dette tracce corsive delle immagini digitali dell’insieme Setup Set in modo da estrarre uno o più frammenti d’immagine e da classificare ognuno di detti uno o più frammenti d’immagine come carattere isolato o come porzione di scrittura corsiva, i frammenti d’immagine classificati come caratteri isolati formando un insieme di addestramento dei caratteri ed i frammenti d’immagine classificati come porzioni di scrittura corsiva formando un insieme di addestramento corsivo,
F. addestrare un motore di classificazione di caratteri isolati con insieme di addestramento dei caratteri,
G. segmentare ognuno di detti frammenti d’immagine classificati come porzioni di scrittura corsiva in una sequenza di uno o più stroke,
H. associare ad ogni sequenza di uno o più stroke ottenuta dalla fase G la sua trascrizione, in modo tale che ogni stroke sia associato al carattere della trascrizione cui appartiene, le sequenze di uno o più stroke ottenute dalla fase G e le rispettive trascrizioni formando il Reference Set,
la fase H preferibilmente comprendendo le seguenti sotto-fasi:
H1. generare distribuzioni, in cui le sequenze di uno o più stroke ottenute dalla fase G e le rispettive trascrizioni sono utilizzate per generare, per ogni carattere dell’alfabeto del Lexicon, una serie di funzioni di massa di probabilità il cui numero à ̈ pari al numero C di caratteri dell’alfabeto del Lexicon,
H2. analizzare caratteristiche delle sequenze di uno o più stroke ottenute dalla fase G, in cui viene individuato un insieme di punti di ancoraggio attraverso l’analisi di caratteristiche associate agli stroke, ognuno dei quali punti di ancoraggio rappresenta l’inizio o la fine di un carattere in una sotto-sequenza in cui può essere suddivisa una sequenza di uno o più stroke ottenute dalla fase G,
H3. associare etichette, in cui, in conformità ai punti di ancoraggio, vengono individuate le trascrizioni delle porzioni di dette di tracce corsive separate dai punti di ancoraggio, tramite le funzioni di massa di probabilità , associando ogni stroke alla trascrizione del carattere cui appartiene,
la sotto-fase H1 più preferibilmente generando una funzione di massa di probabilità per ogni carattere, che rappresenta la probabilità che un carattere sia composto da un certo numero di stroke, le funzioni di massa di probabilità essendo ottenute risolvendo un insieme di sistemi di equazioni lineari in cui ogni equazione à ̈ ottenuta da un tratto di inchiostro segmentato considerando il numero nchardi stroke di ogni carattere come una variabile incognita, le occorrenze xchardi ogni carattere come coefficienti, ed il numero nstrokesdi stroke del tratto di inchiostro segmentato come termine noto:
naxa+ . nzxz+nAxA+ . nZxZ+ = nstrokes
ogni sistema di equazioni lineari essendo costituito da k equazioni, con k ≥ C, dove C à ̈ il numero di caratteri dell’alfabeto dell’alfabeto del Lexicon, e di C variabili incognite, per cui risolvendo un insieme di m sistemi, si ottengono m vettori di soluzioni ognuno comprendente C elementi, ad ogni i-esimo vettore di soluzione, con i variabile da 1 a m, essendo attribuito un corrispondente vettore di parametri di affidabilità R, avente C elementi ognuno dei quali à ̈ pari al rapporto tra l’occorrenza del corrispondente carattere all’interno del sistema di equazioni e della deviazione della soluzione considerata per quel carattere dalla media delle soluzioni per quel carattere:
n
Rc , iï€1⁄2 c , i
m r
rc,i ï‚ ́ nc , iï€ïƒ¥ c,j ï‚ ́ nc , j
jï€1⁄2 1 m
dove:
- nc,ià ̈ l’occorrenza del c-esimo carattere all’interno dell’i-esimo sistema; e - rc,ià ̈ il numero di stroke, ottenuto risolvendo l’i-esimo sistema, che compongono il c-esimo carattere,
le distribuzioni essendo create in base agli m vettori di soluzioni ed ai corrispondenti vettori di parametri di affidabilità R.
Forma ancora oggetto specifico della presente invenzione un apparato computerizzato, in particolare computer o rete di computer, per il riconoscimento di scrittura a mano, caratterizzato dal fatto di comprendere mezzi di elaborazione atti ad eseguire il procedimento di riconoscimento di scrittura a mano appena descritto.
Forma inoltre oggetto specifico della presente invenzione un insieme di uno o più programmi per elaboratore comprendente mezzi a codice atti ad eseguire, quando operano su mezzi di elaborazione di un apparato computerizzato, il procedimento di riconoscimento di scrittura a mano appena descritto.
Forma ulteriore oggetto specifico della presente invenzione un insieme di uno o più supporti di memoria leggibili da un elaboratore, aventi un insieme di uno o più programmi per elaboratore memorizzati su di essi, caratterizzato dal fatto che l’insieme di uno o più programmi per elaboratore à ̈ l’insieme di uno o più programmi per elaboratore appena menzionato.
Gli inventori hanno sviluppato un procedimento che sfrutta aspetti psicofisiologici coinvolti nella generazione e nella percezione della scrittura a mano per derivare direttamente dalla traccia sulla carta (od un qualsiasi altro mezzo sul quale l’autore scrive a mano) l’interpretazione della scrittura, ovvero la sequenza di caratteri che la traccia intende rappresentare.
Il procedimento secondo l’invenzione può trattare qualsiasi tipo di traccia, incluse quelle che rappresentino soltanto parzialmente i movimenti di scrittura, come accade quando alcuni movimenti sono eseguiti mentre la punta della penna non tocca la carta. Questi sollevamenti della punta della penna possono verificarsi in qualsiasi parte della scrittura a mano, i.e. tra caratteri successivi così come all’interno di un singolo carattere.
Al contrario dei procedimenti della tecnica anteriore per il riconoscimento della scrittura a mano, il procedimento secondo l’invenzione non esegue alcuna estrazione e classificazione di caratteristiche, e pertanto non ha bisogno di essere addestrato per imparare prototipi di classi. Tutta l’informazione di cui il procedimento necessita à ̈ estratta da due fonti: un insieme di tracce e la loro interpretazione (l’insieme di impostazione, nel seguito indicato anche come “Setup Set†) ed una lista di possibili interpretazioni delle parole incognite (il lessico, nel seguito indicato anche come “Lexicon†).
Le tracce nel Setup Set non sono vincolate a rappresentare parole del Lexicon, e pertanto il medesimo Setup Set può essere utilizzato con differenti esemplari di Lexicon, a condizione che entrambi il Setup Set ed il Lexicon facciano riferimento al medesimo alfabeto e, preferibilmente, alla medesima lingua. Quindi, il sistema può riconoscere affidabilmente qualsiasi parola del Lexicon, incluse quelle per le quali non erano presenti delle istanze nel Setup Set.
La presente invenzione verrà ora descritta, a titolo illustrativo, ma non limitativo, secondo sue preferite forme di realizzazione, con particolare riferimento alle Figure dei disegni allegati, in cui:
la Figura 1 mostra un diagramma a blocchi schematico di una preferita forma di realizzazione del procedimento secondo l’invenzione in una modalità di configurazione;
la Figura 2 mostra un diagramma a blocchi schematico della preferita forma di realizzazione del procedimento secondo l’invenzione in una modalità di esecuzione;
la Figura 3 mostra un diagramma a blocchi schematico di esecuzione del procedimento di Figura 2 in un primo esempio di applicazione;
la Figura 4 mostra schematicamente i confini delle zone di scrittura a mano nell’immagine di una parola che sono stimati in una prima operazione eseguita dal procedimento di Figure 1 e 2;
la Figura 5 mostra schematicamente una sotto-unità funzionale di una seconda operazione eseguita dal procedimento di Figure 1 e 2;
la Figura 6 mostra un diagramma a blocchi schematico di una terza operazione eseguita dal procedimento di Figure 1 e 2;
la Figura 7 mostra alcune fasi di elaborazione effettuate dalla terza operazione di Figura 6 in un secondo esempio di applicazione;
la Figura 8 mostra schematicamente la correzione di un primo tipo di distorsione effettuata dalla terza operazione di Figura 6;
la Figura 9 mostra schematicamente la correzione di un secondo tipo di distorsione effettuata dalla terza operazione di Figura 6;
la Figura 10 mostra schematicamente la correzione di un terzo tipo di distorsione effettuata dalla terza operazione di Figura 6;
la Figura 11 mostra schematicamente campioni di stroke e le caratteristiche distintive ad essi assegnate nella terza operazione di Figura 6;
la Figura 12 mostra un diagramma a blocchi schematico di esecuzione di una quarta operazione eseguita in modalità di configurazione dal procedimento di Figura 1 in un terzo esempio di applicazione;
la Figura 13 mostra alcune fasi di elaborazione effettuate dalla prima operazione e da una quarta operazione eseguite in modalità di esecuzione dal procedimento di Figura 2 in un quarto esempio di applicazione;
la Figura 14 mostra primi risultati di elaborazione ottenuti da una quinta operazione eseguita dal procedimento di Figura 2 in un quinto esempio di applicazione;
la Figura 15 mostra secondi risultati di elaborazione ottenuti dalla quinta operazione eseguita dal procedimento di Figura 2 in un sesto esempio di applicazione;
la Figura 16 mostra terzi risultati di elaborazione ottenuti dalla quinta operazione eseguita dal procedimento di Figura 2 nel sesto esempio di applicazione;
la Figura 17 mostra quarti risultati di elaborazione ottenuti dalla quinta operazione eseguita dal procedimento di Figura 2 nel sesto esempio di applicazione;
la Figura 18 mostra primi risultati di elaborazione ottenuti da una sesta operazione eseguita dal procedimento di Figura 2 in un settimo esempio di applicazione;
la Figura 19 mostra secondi risultati di elaborazione ottenuti dalla sesta operazione eseguita dal procedimento di Figura 2 nel settimo esempio di applicazione; e
la Figura 20 mostra un diagramma a blocchi schematico di esecuzione del procedimento di Figura 2 in un ottavo esempio di applicazione.
Nelle Figure numeri di riferimento identici saranno utilizzati per elementi analoghi.
Nel seguito della presente descrizione e nelle rivendicazioni, con i termini “traccia†e “traccia corsiva†si intende l’insieme di pixel che possono essere considerati come segni di inchiostro nella immagine di scrittura a mano di una intera parola (i.e., nel caso di scrittura con inchiostro nero su carta bianca, l’insieme dei pixel neri dell’immagine), e con i termini “tratto†e “tratto corsivo†si intende l’insieme di pixel che possono essere considerati come segni di inchiostro nella porzione di immagine di scrittura a mano relativa ad una parte dell’intera parola separata da tutte le altre.
Nel seguito verrà fatto riferimento ad una scrittura a mano mediante tracce nere su fondo bianco. Si deve tuttavia tenere presente che il procedimento secondo l’invenzione può essere applicato a qualsiasi combinazione di colori per la scrittura e per il fondo, e.g. tracce blu o rosse su fondo bianco o grigio o giallo oppure tracce bianche su fondo nero, rimanendo nell’ambito di protezione come definito dalle rivendicazioni allegate.
Da un punto di vista generale, la preferita forma di realizzazione del procedimento secondo l’invenzione assume come ingresso l’immagine digitale di una traccia corrispondente ad una parola incognita da riconoscere e fornisce come uscita una stringa di caratteri che ne costituisce l’interpretazione, stringa di caratteri selezionata tra quelle incluse in un lessico, ovvero un carattere speciale che indica che l’interpretazione non à ̈ stata trovata tra quelle presenti nel lessico. Per eseguire correttamente le sue funzioni, il procedimento secondo l’invenzione ha bisogno del lessico (Lexicon), comprendente una lista di possibili interpretazioni delle parole incognite dell’applicazione, e di un insieme di impostazione (Setup Set) comprendente una raccolta di tracce scritte a mano e la loro trascrizione (mediante una stringa di caratteri). Le tracce del Setup Set non rappresentano necessariamente esemplari (nel seguito detti anche istanze) scritti a mano di intere parole del Lexicon; tuttavia, sia l’insieme Setup Set che l’insieme Lexicon si riferiscono al medesimo alfabeto e, preferibilmente, alla medesima lingua.
La preferita forma di realizzazione del procedimento secondo l’invenzione comprende le seguenti unità funzionali (ovvero operazioni eseguite dal procedmento):
- una unità di decomposizione di tracce (nel seguito indicata anche come unità TD - Trace Decomposition);
- una unità di riconoscimento di caratteri isolati (nel seguito indicata anche come unità ICR - Isolated Character Recognition);
- una unità di segmentazione in stroke (nel seguito indicata anche come unità StS - Stroke Segmentation);
- una unità di etichettatura degli stroke (nel seguito indicata anche come unità StL - Stroke Labeling);
- una unità di riduzione dinamica della base di conoscenza (nel seguito indicata anche come unità DKBR - Dynamic Knowledge Base Reduction); - una unità di confronto di inchiostri (nel seguito indicata anche come unità IM - Ink Matching); e
- una unità di validazione di interpretazioni (nel seguito indicata anche come unità WV - Word Validation).
Il procedimento secondo l’invenzione ha due modalità di funzionamento: una modalità di configurazione, schematizzata in Figura 1 per la preferita forma di realizzazione, ed una modalità di esecuzione, schematizzata in Figura 2 per la preferita forma di realizzazione.
Facendo riferimento alla Figura 1, si può osservare che, nella modalità di configurazione, l’unità funzionale TD 100 estrae dalle immagini dell’insieme Setup Set 150 i frammenti di immagini, cioà ̈ le porzioni di immagini corrispondenti ai diversi tratti eventualmente presenti, e li classifica come contenenti un carattere isolato od una porzione di scrittura corsiva. I frammenti di immagini classificati come caratteri isolati formano l’insieme di addestramento dei caratteri, nel seguito indicato anche come insieme Character Training Set o Char_TS, in Figura 1 indicato con il numero di riferimento 151; i frammenti di immagini classificati come porzioni di scrittura corsiva formano l’insieme di addestramento corsivo, nel seguito indicato anche come insieme Cursive Training Set o CW_TS, in Figura 1 indicato con il numero di riferimento 152.
I frammenti dell’insieme 151 di addestramento dei caratteri sono utilizzati dalla unità funzionale ICR 101 per addestrare un motore 155 di classificazione a reti neurali che viene utilizzato poi nella modalità di esecuzione.
Ogni frammento dell’insieme 152 di addestramento corsivo viene passato all’unità funzionale StS 102 che segmenta la porzione di scrittura corsiva in una sequenza 153 di stroke. L’unità StL 103 associa ad ogni sequenza 153 di stroke la sua trascrizione, in modo tale che ogni stroke sia associato al carattere della trascrizione cui appartiene. La raccolta di sequenze 153 di stroke e le loro etichette (i.e. il carattere corrispondente alla trascrizione cui appartiene) forma un insieme 154 di riferimento (Reference Set) che viene utilizzato nella modalità di esecuzione.
Facendo riferimento alla Figura 2, si può osservare che, nella modalità di esecuzione, l’unità funzionale TD 100 estrae da un’immagine 200 di una parola incognita dei frammenti d’immagine e li classifica come visto sopra (i.e. come caratteri isolati o alternativamente come porzioni di scrittura corsiva). I frammenti 201 classificati come caratteri isolati sono passati all’unità funzionale ICR 101, mentre i frammenti 202 classificati come porzioni di scrittura corsiva sono passati all’unità funzionale StS 102 che segmenta la porzione di scrittura corsiva del frammento 202 in una sequenza 206 di stroke. Le sequenze 206 così ottenute sono passate sia all’unità funzionale DKBR (in Figura 2 rappresentata mediante due blocchi indicati con i numeri di riferimento 104A, per l’esecuzione di una prima parte di fasi, e 104B, per l’esecuzione di una successiva parte di fasi) che all’unità funzionale IM 105.
L’unità funzionale ICR 101 esegue la classificazione dei frammenti 201 e fornisce in uscita una lista 203 di interpretazioni per ogni frammento ed un parametro indicativo di un costo di classificazione (che verrà meglio descritto nel seguito) per ogni interpretazione.
L’unità funzionale DKBR 104A-104B riceve in ingresso la lista 203 di coppie interpretazione-costo fornita dall’unità funzionale ICR 101, le sequenze 206 di stroke fornite dall’unità funzionale StS 102, la posizione relativa di ciascun frammento 201 all’interno dell’immagine 200 della parola calcolata dall’unità funzionale TD 100 e fornisce in uscita:
- sulla base anche del Lexicon 156, un Lexicon dinamico 204, i.e. un elenco di possibili interpretazioni per la parola incognita, cioà ̈ un sotto-insieme delle parole incluse nel Lexicon 156 che contengono nelle posizioni corrispondenti ai frammenti classificati come caratteri isolati una delle interpretazioni contenute nella lista 203, con i costi associati a tali interpretazioni, e
- sulla base anche dell’insieme Reference Set 154 e del Lexicon dinamico 204, un insieme Reference Set dinamico 205, i.e. un elenco dei tratti di inchiostro le cui trascrizioni corrispondono, almeno parzialmente, alle sequenze di caratteri delle interpretazioni incluse nel Lexicon dinamico 204 (le quali sequenze di caratteri non includono le interpretazioni 203 dei frammenti 201 classificati come caratteri isolati).
L’unità funzionale IM 105 confronta la sequenza 206 di stroke fornita dalla unità funzionale StS 102 con le sequenze incluse nell’insieme Reference Set dinamico 205, e, nel caso in cui un insieme di criteri di corrispondenza sia soddisfatto, fornisce come interpretazione corsiva 207 per la sequenza 206 di stroke la trascrizione delle sequenze corrispondenti (matching) di stroke dell’insieme Reference Set dinamico 205 ed il suo costo. Dopo l’esecuzione della corrispondenza (matching), ci possono essere sequenze di stroke dei frammenti 202 prive di corrispondenza (unmatched), i.e. sequenze 206 di stroke di frammenti che non corrispondono ad alcuna sequenza inclusa nell’insieme Reference Set dinamico 205, e/o sequenze sovrapposte, i.e. sequenze 206 di stroke di frammenti 202 che corrispondono a più sequenze incluse nell’insieme Reference Set dinamico 205 con differenti trascrizioni.
Infine, l’unità funzionale WV 106 calcola il costo totale associato ad ogni elemento nel Lexicon dinamico 204 per il quale sono state trovate una o più interpretazioni corsive 207 per i suoi frammenti 201-202, combinando i costi associati ai suoi frammenti 201-202 ed i costi per sequenze di stroke prive di corrispondenza e/o sovrapposte, e fornisce come uscita finale l’interpretazione 208 di classifica più alta o rigetta la parola incognita nel caso in cui il costo totale di tale interpretazione à ̈ superiore ad una soglia.
La Figura 3 mostra un esempio di esecuzione dell’intero procedimento di Figura 2, immediatamente comprensibile agli esperti del ramo alla luce di quanto illustrato sopra. In particolare, à ̈ mostrato il riconoscimento di una immagine 200 di una parola incognita scritta a mano (corrispondente alla parola italiana “Contrada†inclusa nel Lexicon 156). L’unità funzionale TD 100 estrae dall’immagine 200 un primo frammento 202A classificato come porzione di scrittura corsiva (corrispondente a “Co†), un secondo frammento 201A classificato come carattere isolato (corrispondente a “n†), un terzo frammento 201B classificato come carattere isolato (corrispondente a “t†), ed un quarto frammento 202B classificato come porzione di scrittura corsiva (corrispondente a “rada†). L’unità funzionale ICR 101 fornisce in uscita una lista 203A di due interpretazioni per il frammento 201A, comprendente i caratteri “u†e “n†, ed una lista 203B di due interpretazioni per il frammento 201B, comprendente i caratteri “t†e “l†; come detto, ad ogni interpretazione à ̈ associato un parametro indicativo di un costo di classificazione. L’unità funzionale StS 102 esegue la segmentazione delle porzioni di scrittura corsiva dei due frammenti 202A e 202B in due sequenze 206A e 206B di stroke (in Figura 3, gli stroke sono separati tra loro da puntini lungo la rispettiva porzione di scrittura corsiva). L’unità funzionale DKBR 104A-104B riceve in ingresso le liste 203A e 203B, le sequenze 206A e 206B di stroke, la posizione relativa di ciascun frammento 201A e 201B classificato come carattere isolato all’interno dell’immagine 200 della parola incognita, e fornisce in uscita:
- sulla base del Lexicon 156, un Lexicon dinamico 204 formato dall’elenco di possibili interpretazioni per la parola incognita sulla base delle interpretazioni delle liste 203A e 203B (con i costi associati a tali interpretazioni), e
- sulla base anche dell’insieme Reference Set 154 e del Lexicon dinamico 204, un insieme Reference Set dinamico 205 formato dall’insieme dei tratti le cui trascrizioni corrispondono, almeno parzialmente, a sequenze di caratteri delle interpretazioni incluse nel Lexicon dinamico 204 (le quali sequenze di caratteri non includono le interpretazioni 203A e 203B dei frammenti 201A e 201B classificati come caratteri isolati).
L’unità funzionale IM 105 confronta poi le sequenze 206A e 206B di stroke con le sequenze incluse nell’insieme Reference Set dinamico 205, e, nel caso in cui un insieme di criteri di corrispondenza sia soddisfatto, fornisce come interpretazione corsiva 207 per le sequenze 206A e 206B di stroke la trascrizione delle sequenze corrispondenti di stroke dell’insieme Reference Set dinamico 205 ed il loro costo (nell’esempio di Figura 3, questa interpretazione corsiva 207 comprende le sottostringhe “Co†, “Mo†, “rada†, “ra†, “da†, “tal†). Infine, l’unità funzionale WV 106 calcola il costo totale associato ad ogni elemento nel Lexicon dinamico 204 per il quale sono state trovate una o più interpretazioni 203A-203B per i suoi frammenti 201A-201B ed una o più interpretazioni corsive 207 per i suoi frammenti 202A-202B, combinando i costi associati, e fornisce come uscita finale l’interpretazione 208 di classifica più alta (corrispondente nel caso di Figura 3 proprio alla parola “Contrada†).
Nel seguito vengono descritte in maggiore dettaglio le unità funzionali dela preferita forma di realizzazione del procedimento secondo l’invenzione.
Come detto, l’unità funzionale TD 100 estrae da un’immagine 200 di una parola le sotto-immagini corrispondenti ai frammenti per classificarle come frammenti 201 di caratteri isolati o come frammenti 202 di porzioni di scrittura corsiva. A causa sia del rumore di acquisizione (che può artificialmente suddividere la traccia originale di inchiostro in pezzi) che delle abitudini di scrittura (che possono portare l’autore a sollevare la penna dal foglio durante la scrittura), un carattere isolato così come una porzione di scrittura corsiva possono essere segmentati in una pluralità di due o più pezzi, che devono essere uniti per ricostruire il significato originale. A tale scopo, vengono prima estratte le sottoimmagini corrispondenti ad ogni pezzo e poi per ognuna di esse sono calcolate un insieme di caratteristiche adatte ad essere utilizzate nella fase di classificazione. Preliminarmente, l’unità individua la zona centrale, la zona superiore e la zona inferiore dell’intera parola. Dopo che le caratteristiche sono state calcolate, ogni pezzo viene classificato come porzione di scrittura corsiva, oppure carattere isolato, oppure linea verticale, oppure linea orizzontale, oppure puntino, oppure rumore, oppure scrittura rigettata, e successivamente una serie di regole euristiche (illustrate in dettaglio nel seguito) sono applicate per l’unione di due o più pezzi per formare o un carattere isolato 201 oppure un frammento 202 di porzione di scrittura corsiva. A titolo esemplificativo, in Figura 3, il terzo frammento 201B classificato come carattere isolato à ̈ formato da un primo pezzo 201B-1 corrispondente all’asta superiore sostanzialmente orizzontale della “t†e da un secondo pezzo 201B-2 corrispondente all’asta inferiore sostanzialmente verticale della “t†.
Per stimare le caratteristiche dei frammenti di tratti di inchiostro, l’unità funzionale TD 100 procede come segue. Innanzitutto, l’immagine della parola viene elaborata per estrarre il riquadro di delimitazione di ogni pezzo, cioà ̈ di ogni insieme di pixel neri connessi. Nel seguito tali insiemi di pixel sono detti componenti (o component). Successivamente, ogni componente à ̈ analizzato considerandone le dimensioni, il numero e la distribuzione dei suoi pixel neri e la dimensione della parola cui il componente stesso appartiene. In particolare, nella preferita forma di realizzazione del procedimento secondo l’invenzione, l’unità funzionale TD 100 considera le coordinate cartesiane dei vertici in alto a sinistra (Xmin, Ymax) ed in basso a destra (Xmax, Ymin) del riquadro di delimitazione, la larghezza Wcompe l’altezza del riquadro di delimitazione Hcomp, il numero totale Pcompdi pixel ed il numero di pixel neri BPcompincluso nel riquadro di delimitazione, la larghezza Wworde l’altezza Hworddel riquadro di delimitazione della parola. Partendo da queste caratteristiche di base, viene determinato un ulteriore insieme di caratteristiche per ogni componente, precisamente il rapporto di altezza HR:
H
HR = comp
H word
il rapporto AR tra larghezza Wcompe altezza Hword(noto anche con il termine aspect ratio):
W
AR = comp
H comp
l’aspect ratio proporzionale PAR:
W
PAR = comp
H word
ed il fattore di riempimento FF:
BP
FF = comp
P comp
Le caratteristiche HR, AR e PAR hanno l’obiettivo di catturare l’estensione temporale della scrittura a mano, mentre la caratteristica FF ha l’obiettivo di catturare la densità spaziale di inchiostro.
Inoltre, per valutare la complessità della forma della traccia di inchiostro, i numeri di transizioni da pixel bianchi (appartenenti allo sfondo) a pixel neri (appartenenti alla scrittura) lungo righe consecutive e colonne consecutive del componente sono caratteristiche aggiuntive di cui l’unità funzionale TD 100 tiene conto. In particolare, (come descritto, e.g., da R.C. Gonzalez e R.E. Woods in “Digital Image Processing†, Addison-Wesley, Reading, Massachusetts, 1992) i loro valori sono disposti in due istogrammi, precisamente un istogramma del numero di transizioni per colonna sull’asse orizzontale ed un istogramma del numero di transizioni per riga sull’asse verticale. Su tali istogrammi si considerano un numero di Δx(con Δxpreferibilmente pari a 2) colonne consecutive e un gruppo di Δy(con Δypreferibilmente pari a 4) righe consecutive, rispettivamente, e si memorizza il valore più alto tra quelli presenti, ottenendo i vettori IMxe IMy, ognuno dei quali ha un numero di elementi pari al rapporto tra la dimensione orizzontale/verticale della matrice e gli intervalli Δxe Δy, rispettivamente. Come detto, le caratteristiche dei numeri di transizioni da pixel bianchi a neri lungo righe e colonne consecutive del componente forniscono una misura della complessità della forma della traccia di inchiostro: un segno di inchiostro vuoto o piatto su entrambi gli assi orizzontale e verticale suggerisce che il componente presenta pixel neri sparsi ed à ̈ probabile che sia rumore, mentre valori superiori corrispondono a forme più complesse.
Infine, l’unità funzionale TD 100 stima la posizione delle zone di scrittura a mano nell’immagine della parola, localizzando l’insieme di linee orizzontali corrispondenti ai confini superiore ed inferiore di ogni zona (e.g., come descritto da Gonzalez e Woods nel manuale citato sopra). Facendo riferimento alla Figura 4, i confini sono determinati utilizzando le proiezioni orizzontali di inchiostro nero nell’immagine: la zona centrale 300 rappresenta la zona in cui à ̈ presente la maggiore quantità di pixel neri e la sua posizione à ̈ utilizzata per determinare la posizione delle altre zone, sulla base della quantità di pixel neri che sono al di sopra e/o al di sotto della zona centrale 300. Nel caso in cui venga determinata una zona superiore 310 (e/o una zona inferiore 320), essa à ̈ suddivisa in due ulteriori zone indicate come zona superiore-superiore 311 (zona inferiore-superiore 321) e zona superiore-inferiore 312 (zona inferiore-inferiore 322).
Le regole sviluppate per la classificazione dei componenti sono riportate nell’Algoritmo 1 in linguaggio pseudo-naturale (inglese) mostrato nella presente descrizione, in cui le classificazioni sono definite come segue: NOISE à ̈ rumore; VERTICAL LINE à ̈ una linea verticale; HORIZONTAL LINE à ̈ una linea orizzontale; DOT à ̈ un puntino; CONFUSION à ̈ confusione; ISOLATED CHARACTER à ̈ un carattere isolato; CURSIVE à ̈ una porzione di scrittura corsiva; e REJECT à ̈ un rigetto del frammento. In particolare, i nomi assegnati ad ogni soglia indicano la classe (o le classi) le cui regole di classificazione usano la soglia e la caratteristica cui la soglia à ̈ applicata. Per esempio, la soglia NOISE_DOT_FF_MIN viene utilizzata nelle regole di classificazione per le classi di rumore (NOISE) e puntino (DOT), à ̈ applicata alla caratteristica FF ed à ̈ utilizzata come valore minimo (MIN). L’unica eccezione a queste direttive di lettura dell’Algoritmo 1 à ̈ la soglia OFFSET_CZ, che rappresenta l’offset (i.e. lo scostamento) massimo ammissibile tra la posizione del limite inferiore del riquadro delimitante il frammento e la linea di delimitazione superiore della zona centrale 301 di Figura 4, la cui coordinata sull’asse verticale à ̈ denominata CZYmin; tale soglia OFFSET_CZ viene utilizzata per stabilire se il frammento si trova completamente al di sopra della zona centrale.
If ( (FF ≥ NOISE_DOT_FF_MAX) OR (max(IMX) ≤ NOISE_IMx AND max(IMY) ≤ NOI-SE_IMy) OR (BP < NOISE_DOT_BP AND HR < NOISE_DOT_HR AND PAR < NOI-
SE_DOT_PAR AND AR < NOISE_DOT_AR AND NOISE_DOT_FF_MIN ≤ FF ≤ NOI-
SE_DOT_FF_MAX AND YMAX> CZYmin+ OFFSET_CZ) ) then
Component is "NOISE"
Else If (PAR < VL_PAR AND VL_FF_MIN < FF <VL_FF_MAX AND VL_AR_MIN ≤ AR < VL_AR_MAX) then
Component is "VERTICAL LINE"
Else If (HR < HL_HR_MAX AND AR > HL_AR_MIN AND FF < HL_FF_MAX) then Component is "HORIZONTAL LINE"
Else If (BP < NOISE_DOT_BP AND HR < NOISE_DOT_HR AND PAR < NOISE_DOT_PAR AND AR < NOISE_DOT_AR AND NOISE_DOT_FF_MIN ≤ FF ≤ NOISE_DOT_FF_MAX AND YMAX≤ CZYmin+ OFFSET_CZ) then
Component is "DOT"
Else If ( ( (max(IMy) < IC_IMy OR (max(IMy) = IC_IMy AND XMIN< IC_Xmin) ) OR (max(IMy) = IC_IMy AND max(IMX) ≤ IC_IMx ) ) AND YMAX> CZYmin+ OFFSET_CZ ) then
If ( IC_W_MIN ≤ Wcomp≤ IC_W_MAX AND IC_H_MIN ≤ Hcomp≤ IC_H_MAX ) then Component is “CONFUSIONâ€
else
Component is "ISOLATED CHARACTER"
Else If ( ( (max(IMy) > IC_IMy) OR (max(IMy) = IC_IMy AND max(IMX) ≥ C_IMx) ) AND YMAX> CZYmin+ OFFSET_CZ ) then
If ( C_W_MIN ≤ Wcomp≤ C_W_MAX AND C_H_MIN ≤ Hcomp≤ C_H_M≤AX ) then Component is “CONFUSIONâ€
else
Component is "CURSIVE"
Else
Component is "REJECT"
Algoritmo 1
Dopo la classificazione, le regole di unione riportate nell’Algoritmo 2 in linguaggio pseudo-naturale mostrato nel seguito sono applicate a componenti classificati come puntini, linee orizzontali e verticali, per raggrupparli insieme o con un carattere isolato e con una porzione di scrittura corsiva. Eventualmente, componenti classificati come confusione sono inviati sia all’unità funzionale ICR 101 che all’unità funzionale StS 102, mentre componenti classificati come rigetti sono ignorati nelle elaborazioni successive.
If un puntino à ̈ il componente più vicino ad una linea verticale then
I due componenti sono uniti in un nuovo carattere isolato avente "i" come interpretazione e 0 come costo.
If i riquadri di delimitazione di un puntino (Dot) e di carattere isolato (I.C.) soddisfano la relazione then
Il carattere isolato à ̈ inviato all’unità funzionale ICR 101 ed ha "i" come interpretazione e 0 come costo.
If una linea orizzontale à ̈ posizionata tra od immediatamente a sinistra di due line verticali then
I tre componenti sono uniti per formare sia un nuovo carattere isolato che una nuova porzione di scrittura corsiva, che riceve "ti" e "tt" come possibili interpretazioni.
If una linea orizzontale à ̈ il componente più vicino ad una linea verticale then
I due componenti sono uniti in un nuovo carattere isolato.
If il riquadro di delimitazione di un carattere isolato ed il riquadro di delimitazione di una linea orizzontale soddisfa la relazione
then I due componenti sono uniti in un nuovo carattere isolato.
If una linea verticale à ̈ posizionata immediatamente a sinistra di un rigetto posto al di sopra della zona central then
I due componenti sono uniti in un nuovo carattere isolato.
If una linea verticale non à ̈ unita con altri componenti then
La linea verticale à ̈ convertita in un carattere isolato con possibili interpretazioni: "i", "I", "l" e 0 come costo.
If i riquadri di delimitazione di due caratteri isolati si sovrappongono per almeno il 50% delle loro aree then
I due componenti sono uniti in un nuovo carattere isolato.
Algoritmo 2
Come detto con riferimento alla Figura 2, l’unità funzionale ICR 101 riceve in ingresso l’immagine binaria digitale di frammenti 201 contenenti un carattere isolato, che può anche essere formato da più componenti, e fornisce in uscita la lista 203 di interpretazioni ed il costo di classificazione per ogni interpretazione. L’unità ICR 101 à ̈ composta di tre sotto-unità funzionali: una prima sotto-unità di descrizione dei frammenti 201, una seconda sotto-unità di classificazione multiesperto (multi-expert), ed una terza sotto-unità di combinazione dei risultati.
La prima sotto-unità funzionale di descrizione dei frammenti 201 associa all’immagine digitale binaria di ogni frammento 201 un vettore di caratteristiche contenente la rappresentazione di quel frammento, che sarà utilizzata dalla seconda sotto-unità di classificazione. In proposito, la preferita forma di realizzazione del procedimento secondo l’invenzione tiene conto di due differenti insiemi di caratteristiche, precisamente i Momenti Geometrici Centrali (CGM: Central Geometrical Moments) delle immagini binarie fino al 7° ordine (e.g., descritti da Gonzalez e Woods nel manuale citato sopra), e la media dei pixel appartenenti alle sotto-immagini disgiunte di dimensione 8x8 pixel che può essere estratta dall’immagine binaria (MBI: Mean of Binary Image, i.e. la media dei valori dei pixel dell’immagine, in cui il valore dei pixel neri à ̈ pari a 1 ed il valore dei pixel bianchi à ̈ pari a 0). Quindi, ogni frammento 201 da classificare à ̈ descritto per mezzo di due vettori di caratteristiche: il primo vettore contiene 33 valori reali, mentre il secondo vettore à ̈ composto al massimo da 64 valori reali (si assume che una immagine contenente un intero carattere, nota come bitmap, abbia dimensioni massime pari a 64x64 pixel). Le immagini dei campioni di frammenti inclusi nell’insieme Char_TS 151 di Figura 1 sono descritte utilizzando i due insiemi di caratteristiche appena illustrati, ottenendo così due insiemi di addestramento, denominati come insieme di addestramento Char_TS_CGM e insieme di addestramento Char_TS_MBI.
Nella seconda sotto-unità di classificazione multi-expert, che fa uso di reti neurali, i frammenti 201 incogniti vengono classificati mediante un insieme di esperti. In particolare, la preferita forma di realizzazione del procedimento secondo l’invenzione tiene conto di 20 esperti, ottenuti utilizzando come schema di classificazione una rete neurale di tipo feed-forward, addestrata con algoritmo di retropropagazione (back-propagation). I primi 10 esperti sono addestrati utilizzando l’insieme di addestramento Char_TS_CGM con differente inizializzazione casuale dei parametri della rete. Analogamente, gli altri 10 esperti sono ottenuti utilizzando l’insieme di addestramento Char_TS_MBI.
La terza sotto-unità di combinazione dei risultati riceve in ingresso le risposte fornite dall’insieme di esperti per un dato frammento 201 e fornisce in uscita la lista di interpretazioni per tale frammento, insieme al costo per ogni interpretazione. Gli inventori hanno sviluppato tale terza sotto-unità riformulando il problema della combinazione dei classificatori (i.e. degli esperti) come un problema di riconoscimento di forme (noto anche come “pattern recognition†), in cui la forma (i.e. il pattern) rappresenta il comportamento collettivo degli esperti quando classificano un frammento 201. In questo modo, il comportamento collettivo degli esperti à ̈ rappresentato dall’insieme di etichette fornite dagli esperti quando classificano quel frammento 201, e le dipendenze tra gli esperti sono modellate stimando le distribuzioni di probabilità congiunte tra le uscite dei classificatori e la classe vera. Gli inventori hanno sviluppato la terza sotto-unità di combinazione dei risultati utilizzando una rete bayesiana per dedurre automaticamente la distribuzione di probabilità per ciascuna classe, e definendo una nuova regola di voto a maggioranza pesata, che utilizza le probabilità congiunte come pesi, per combinare le uscite dei classificatori. La decisione finale à ̈ effettuata tenendo conto sia dei voti ricevuti da ogni classe che il comportamento statistico dei classificatori.
L’architettura della terza sotto-unità di combinazione dei risultati à ̈ mostrata in Figura 5: le risposte {e1, ... , eL} fornite dall’insieme degli L esperti E={E1, …, EL} per un frammento incognito x di ingresso in un problema ad N classi costituisce l’ingresso alla terza sotto-unità di combinazione dei risultati, che fornisce il risultato c* di classificazione finale.
La terza sotto-unità di combinazione dei risultati può essere definita come un classificatore di livello superiore che lavora su uno spazio L-dimensionale di caratteristiche aventi valori discreti. Il combinatore utilizza una strategia di addestramento supervisionato, che consiste nell’osservare sia le risposte {e1, ... , eL} che la classe "vera" c per ogni frammento dell’insieme di addestramento, al fine di calcolare la probabilità congiunta p(c, e1, … , eL).
Una volta che questa probabilità congiunta à ̈ stato appresa a partire da un insieme di dati di addestramento, il combinatore classifica frammenti incogniti 201 utilizzando una strategia di voto pesato. In particolare, il combinatore calcola la classe c* del frammento incognito x utilizzando la formula:
c*=m k<,>k
k Caxkw ri<(1)>
dove ri,kà ̈ una funzione il cui valore à ̈ 1 quando il classificatore Eiclassifica il frammento incognito x come appartenente alla classe k, e 0 altrimenti, mentre wkrappresenta il peso relativo alla k-esima classe ed à ̈ stato impostato pari alla probabilità congiunta:
wk= p(c=k, e1, … , eL) (2)
Un valore elevato per il peso wksignifica che l’insieme di risposte {e1, ... , eL} fornite dagli esperti à ̈ molto frequente nell’insieme di addestramento in corrispondenza della classe k.
Una rete bayesiana (nel seguito indicata anche come BN) à ̈ utilizzata per apprendere le probabilità congiunte. Questa scelta à ̈ motivata dal fatto che la BN fornisce un modo naturale e compatto per codificare distribuzioni di probabilità congiunte dimensionate esponenzialmente (attraverso la struttura del grafico aciclico diretto – nel seguito indicato anche come DAG) e permette di apprendere le relazioni causali, e quindi di guadagnare una comprensione sui domini dei problemi complessi. Per implementare questo strumento matematico in una applicazione à ̈ necessaria la definizione sia della struttura di rete (DAG) che delle relative probabilità condizionali. Questo può essere ottenuto utilizzando algoritmi di apprendimento che sono in grado di derivarle da frammenti di addestra mento. L’algoritmo di apprendimento si alterna tra due fasi: una prima fase, chiamata addestramento strutturale, à ̈ diretta a catturare la relazione tra le variabili ei, e quindi la struttura delle dipendenze nel DAG. Una seconda fase, chiamata addestramento parametrico, valuta i parametri di probabilità condizionale tra variabili.
Sia per l’addestramento strutturale che per l’addestramento parametrico gli inventori hanno seguito le linee guida descritte da D. Heckerman, D. Geiger e D. Chickering in “Learning Bayesian networks: The combination of knowledge and statistical data†, Machine Learning, 20, 1995, pp. 197-243, allo scopo di ridurre il costo computazionale: in base a tali linee guida, gli inventori hanno implementato un algoritmo sub-ottimale, che risolve i due problemi separatamente: tale algoritmo sub-ottimale impara dapprima la struttura DAG, e successivamente calcola il parametro per tale struttura.
Quando ci sono più classi che esibiscono valori simili per il prodotto wkri,kil combinatore non fornisce come risultato una singola classe, ma piuttosto la lista delle interpretazioni più probabili. In pratica, quando la differenza tra la migliore interpretazione secondo la formula (1) e la seconda migliore interpretazione à ̈ inferiore ad una soglia Î ̧ (il cui valore à ̈ stato sperimentalmente impostato), il combinatore introduce anche questa interpretazione nell’elenco fornito come uscita. La stessa considerazione viene ripetuta per il secondo migliore ed il terzo migliore e così via. Infine, per ogni interpretazione nell’elenco di uscita viene associato un costo, rappresentato dal prodotto di wkri,k.
Come illustrato in precedenza, l’unità funzionale StS 102 di segmentazione degli stroke scompone il tratto (o la traccia) contenuto in un frammento 202 di porzione di scrittura corsiva in una sequenza di movimenti elementari (detti stroke). A tale scopo, come mostrato in Figura 6, l’unità funzionale StS 102 comprende cinque sotto-unità funzionali iniziali: una prima sotto-unità 501 di scheletrizzazione, una seconda sotto-unità 502 di correzione della distorsione introdotta dalla scheletrizzazione, una terza sotto-unità 503 di sbrogliatura del tratto, una quarta sotto-unità 504 di segmentazione del tratto, ed una quinta sottounità 505 di validazione. La Figura 7 mostra le varie fasi di elaborazione effettuate dalle sotto-unità dell’unità funzionale StS 102 applicate ad un frammento 2020 di porzione di scrittura corsiva (mostrato in Figura 7a e corrispondente alla trascrizione “golden†), le quali fasi verranno meglio illustrate nel seguito.
L’inchiostro presente nel frammento 2020 viene rappresentato nell’immagine binaria digitale come un “nastro†la cui larghezza (i.e. il cui spessore) dipende dallo strumento di scrittura, dalla carta, dalla pressione di scrittura (i.e. la pressione che l’autore esercita tramite lo strumento di scrittura sulla carta) e dalla risoluzione di scansione. La prima sotto-unità 501 di scheletrizzazione trasforma questo nastro in una linea di larghezza pari ad un singolo pixel, in modo da eliminare la variabilità introdotta dai fattori appena menzionati. Ciò viene ottenuto calcolando la trasformata asse mediano (MAT: Medial Axis Transform) del nastro. La MAT determina gli insiemi connessi di punti comprendenti i centri di tutti i cerchi di raggio massimo che possono essere inscritti nel nastro. In altre parole, la trasformata MAT à ̈ l’asse locale di simmetria del nastro. Al termine di questa elaborazione, dunque, il nastro à ̈ rappresentato da una linea digitale di larghezza unitaria, calcolata tramite uno qualsiasi degli algoritmi proposti in letteratura; a titolo esemplificativo, l’algoritmo di scheletrizzazione basato sulla MAT può essere quello descritto da C. Arcelli e G. Sanniti di Baja in “A thinning algorithm based on prominence detection†, Pattern Recognition, vol. 13, no. 3, 1981, pp. 225-235, in cui a ciascun pixel della traccia à ̈ associata una etichetta che rappresenta la distanza del pixel dal bordo della traccia di inchiostro, e lo scheletro à ̈ ottenuto considerando tutti i punti la cui etichetta à ̈ un massimo locale e tutti e solo quelli necessari al loro collegamento in modo da garantire che lo scheletro abbia la stesso ordine di connessione della traccia. La Figura 7b-1 mostra lo scheletro 2021 ottenuto al termine dell’elaborazione effettuata dalla prima sotto-unità 501 sul frammento 2020 di Figura 7a.
Indipendentemente dallo specifico algoritmo utilizzato, lo scheletro calcolato per mezzo della trasformata MAT può presentare alcune distorsioni geometriche in corrispondenza delle regioni in cui la traccia interseca sé stessa, per cui la forma dello scheletro ottenuto non rispecchia fedelmente quella della traccia, come nel caso dello scheletro 2021 di Figura 7b-1. In particolare, i punti appartenenti allo scheletro (e.g. allo scheletro 2021 di Figura 7b-1) possono essere classificati come: punti terminali o EP (End Point), ognuno consistente di un pixel dello scheletro avente un solo altro pixel adiacente dello scheletro (i.e. un solo altro pixel adiacente al punto considerato come punto EP); punti normali o NP (Normal Point), ognuno consistente di un pixel dello scheletro avente due altri pixel adiacenti dello scheletro (i.e. due altri pixel adiacenti al punto considerato come punto NP); punti di diramazione o BP (Branch Point), ognuno consistente di un pixel dello scheletro avente più di due altri pixel adiacenti dello scheletro (i.e. tre o più altri pixel adiacenti al punto considerato come punto BP). In Figura 7b-2, i punti BP 2022 sono rappresentati da punti in grassetto. Per eliminare le distorsioni introdotte dalla scheletrizzazione, la seconda sotto-unità funzionale 502 di correzione della distorsione esegue le seguenti fasi:
1) rimuovere i rami spuri, che comprende
- per ciascun segmento i cui estremi sono un punto BP ed un punto terminale EP, calcolare il rapporto
L
R = BP - L EP
D
dove LBPe LEPsono l’etichetta del punto BP e del punto EP, rispettivamente, e D à ̈ la distanza euclidea tra i punti BP e EP, e
- nel caso in cui R > 0,5, eliminare il segmento ed aggiornare il punto BP classificandolo come un punto NP;
la Figura 7c-1 mostra lo scheletro 2023 ottenuto al termine di questa fase di rimozione dei rami spuri effettuata sullo scheletro 2021 di Figura 7b-1, nella quale si nota la rimozione di un ramo spurio nel carattere “n†(come mostrato in Figura 7c-2, in cui il carattere “n†dello scheletro 2021 à ̈ mostrato a sinistra ed il ramo spurio vi à ̈ mostrato entro un cerchio, mentre il carattere “n†dello scheletro 2023 à ̈ mostrato a destra con il ramo spurio rimosso); 2) effettuare una approssimazione poligonale di ogni ramo dello scheletro, che preferibilmente comprende
- trovare l’insieme di segmenti che minimizzano l’errore quadratico medio tra il ramo dello scheletro e la linea spezzata, detta anche polilinea, che approssima il ramo utilizzando l’algoritmo split-and-merge (divisione-eunione) descritto da T. Pavlidis e S.l. Horowitz in “Segmentation of planar curves†, IEEE Trans. on Computers, vol c-23, no. 8, 1974, pp. 860-870, in cui i vertici della polilinea sono vincolati ad essere gli estremi delle sequenze di pixel collineari (i.e. pixel allineati sulla medesima linea rettilinea) del ramo dello scheletro e devono includere i punti BP (che, dunque, sono considerati come vertici della polilinea);
la Figura 7d-1 mostra lo scheletro 2024 ottenuto al termine di questa fase di approssimazione poligonale effettuata sullo scheletro 2023 di Figura 7c-1, mentre la Figura 7d-2 mostra i vertici dell’approssimazione poligonale rappresentati da punti 2029 in grassetto;
3) correggere distorsioni di tipo a V; una di tali distorsioni à ̈ mostrata in Figura 8, in cui tre segmenti rettilinei S1, S2e SEP(rappresentati in Figura 8 da linee continue) dello scheletro si collegano in un punto 700 (i punti da cui si diramano tre segmenti rettilinei sono indicati nel seguito anche come punti BP3), ed uno di tali tre segmenti à ̈ delimitato da un punto EP (segmento indicato con SEP; i due punti che delimitano gli altri due segmenti S1e S2sono indicati in Figura 8 con V1e V2, rispettivamente); in Figura 8 sono mostrati gli angoli α1e α2formati rispettivamente dai segmenti S1e S2con il segmento SEP(precisamente, si tratta degli angoli che non comprendono il terzo segmento, rispettivamente S2e S1); in Figura 8 sono anche rappresentati da linee tratteggiate i due segmenti rettilinei V1-EP (i.e. delimitato dalla coppia di punti V1e EP) e V2-EP (i.e. delimitato dalla coppia di punti V2e EP) e le distanze d1e d2del punto BP3700 dai segmenti V1-EP e V2-EP, rispettivamente; facendo riferimento alla Figura 8, la fase di correzione delle distorsioni di tipo a V comprende
- per ogni punto BP3 per il quale uno dei tre segmenti che si diramano da esso à ̈ un punto EP, calcolare gli angoli α1e α2e le distanze d1e d2, - nel caso in cui almeno una delle distanze d1e d2sia non maggiore di LBPe la differenza tra gli angoli α1e α2sia non maggiore di 20° (i.e. si verifica che (d1o d2) ≤ LBPed anche che |α1- α2| ≤ 20°), allora eliminare i tre segmenti S1, S2e SEPe sostituirli con i due segmenti V1-EP e V2-EP, rimuovere il punto BP3 ed aggiornare il punto EP classificandolo come un punto NP;
4) correggere distorsioni di tipo a X; una di tali distorsioni à ̈ mostrata in Figura 9, in cui una coppia di punti BP3 (punti indicati nel seguito anche con BP1e BP2) à ̈ collegata da un unico segmento rettilineo (rappresentato da una linea continua) di polilinea (delimitato dai punti BP1e BP2), e gli altri due segmenti rettilinei che si diramano da BP1e BP2(rappresentati da linee continue) sono delimitati dai punti indicati in Figura 9 con V11e V12per il punto BP1e con V21e V22per il punto BP2; il segmento delimitato dai punti BP1e BP2ha lunghezza dBP; in Figura 9 sono mostrati gli angoli α1e α2formati rispettivamente dai due segmenti V11-BP1e V12-BP1e dai due segmenti V21-BP2e V22-BP2(precisamente, si tratta degli angoli che non comprendono il segmento che collega i punti BP1e BP2); in Figura 9 sono anche rappresentati da linee tratteggiate i due segmenti rettilinei V11-V22e V12-V21(i.e. i due segmenti che collegano i punti che delimitano gli altri due segmenti che si diramano dai punti BP1e BP2e che attraversano il segmento che collega i punti BP1e BP2) e le distanze d11e d12del punto BP1da tali due segmenti V11-V22e V12-V21, rispettivamente, e le distanze d21e d22del punto BP2da tali due segmenti V11-V22e V12-V21, rispettivamente; in Figura 9 il punto di intersezione tra i due segmenti rettilinei V11-V22e V12-V21à ̈ indicato con BP4; facendo riferimento alla Figura 9, la fase di correzione delle distorsioni di tipo a X comprende
- per ogni coppia di punti BP3 (indicati con BP1e BP2) collegati da un unico segmento rettilineo, calcolare le distanze d11, d12, d21e d22, gli angoli α1e α2, e la distanza dBP,
- nel caso in cui la distanza dBPsia non maggiore del minimo tra LBP1e LBP2oppure nel caso entrambe le distanze d11e d12siano non maggiori di (LBP1/2+1) ed anche entrambe le distanze d21e d22siano non maggiori di (LBP2/2+1), e sia anche verificato che entrambi gli angoli α1e α2siano non maggiori di 120° (i.e. si verifica che (dBP≤ min(LBP1, LBP2) oppure (d1j≤ (LBP1/2+1) e d2j≤ (LBP2/2+1), per j= 1,2)) e che (αj≤ 120 ° per j= 1,2)), allora eliminare tutti i segmenti che si diramano da ognuno dei due punti BP3 (i.e. da entrambi i punti BP1e BP2), aggiungere i due segmenti V11-V22e V 4
12-V21, aggiungere il punto BP (da cui si diramano quattro segmenti), ed impostare l’etichetta LBP4del nuovo punto BP4 pari a ((LBP1+ LBP2)/2+1) (i.e. LBP4= (LBP1+ LBP2)/2+1);
5) correggere distorsioni di tipo a T; una di tali distorsioni à ̈ mostrata in Figura 10, avente un punto BP3900 tale che nessuno dei tre segmenti (rappresentati da linee continue) che si diramano da esso à ̈ delimitato da un punto EP o da un altro punto BP3; in Figura 10 sono mostrati i tre punti V1, V2e V3che delimitano i tre segmenti che si diramano dal punto BP3900, in cui il terzo punto V3à ̈ quello che delimita il segmento che forma con gli altri due segmenti (delimitati dai punti V1e V2) i due angoli β e γ che sono minori rispetto all’angolo massimo Î ́ formato dagli altri due segmenti V1-BP3900 e V2-BP3 900; in Figura 10 sono anche mostrati i due punti V4e V5che delimitano i segmenti (rappresentati da linee continue) che proseguono la polilinea a partire, rispettivamente, dai punti V1e V2; in Figura 10 sono anche mostrati da linee tratteggiate il segmento V1-V2ed il prolungamento del segmento V3-BP3900 fino al segmento V1-V2, in cui il relativo punto di intersezione à ̈ indicato con BP’; il segmento delimitato dai punti BP3900 e BP’ ha lunghezza d; in Figura 10 sono anche mostrate da linee tratteggiate le linee rette cui appartengono i segmenti V1-V4e V2-V5e che formano un angoloï ¡; facendo riferimento alla Figura 10, la fase di correzione delle distorsioni di tipo a T comprende
- per ogni punto BP3 tale che nessuno dei tre segmenti che si diramano da esso à ̈ delimitato da un punto EP o da un altro punto BP3, calcolare la distanza d e l’angolo α,
- nel caso in cui la distanza d sia non maggiore di (LBP/2+1) e l’angolo α sia non inferiore a 150° (i.e. d ≤ (LBP/2+1) e α ≥ 150°), eliminare i segmenti V1-BP3 e V2-BP3, aggiungere il segmento V1-V2, prolungare il segmento V3-BP3 spostando il punto di diramazione nel punto BP’ (i.e. nel punto di intersezione del prolungamento di V3-BP3 con il segmento V1-V2), ed impostare l’etichetta LBP’del nuovo punto di diramazione BP’ pari a (LBP– d) (i.e. LBP’= (LBP– d)).
Nelle fasi 3, 4 e 5 appena illustrate, i test sulle distanze sono introdotti allo scopo di garantire che i segmenti che sono aggiunti giacciono ancora all’interno della traccia. La Figura 7e-1 mostra lo scheletro 2025 ottenuto al termine delle fasi di correzione delle distorsioni effettuate sullo scheletro 2024 di Figura 7d-1. Nella Figura 7e-2 sono evidenziate entro cerchi le regioni dello scheletro 2025 che sono state modificate per effetto delle fasi di correzione delle distorsioni.
Tornando a far riferimento alla Figura 6, la terza sotto-unità funzionale 503 di sbrogliatura (unfolding) del tratto analizza l’approssimazione poligonale dello scheletro 2025 e fornisce la sequenza temporale degli stroke che compongono il tratto di inchiostro. In particolare, l’algoritmo di sbrogliatura ricostruisce la sequenza temporale di punti seguita dall’autore per produrre il tratto di inchiostro, i.e. lo scheletro sbrogliato; la Figura 7f-1 mostra lo scheletro sbrogliato 2026 ottenuto al termine dell’algoritmo di sbrogliatura effettuato dalla terza sotto-unità funzionale 503 sullo scheletro 2025 di Figura 7e-1, mentre la Figura 7f-2 mostra alcuni punti (indicati con il numero di riferimento 2030) che individuano la sequenza temporale seguita dall’autore per produrre il tratto di inchiostro. In base alla sequenza di punti dello scheletro sbrogliato, la quarta sotto-unità funzionale 504 implementa un algoritmo di segmentazione del tratto che individua la sequenza di stroke che lo compongono; la Figura 7g-1 mostra la segmentazione 2027 in stroke del tratto ottenuto al termine dell’algoritmo di segmentazione effettuato dalla quarta sotto-unità funzionale 503 sullo scheletro sbrogliato 2026 di Figura 7f-1; la Figura 7g-2 mostra i punti 2031 di segmentazione rappresentati da puntini in grassetto. La segmentazione ottenuta viene analizzata dalla quinta sotto-unità funzionale 505 che implementa l’algoritmo di validazione e, nel caso in cui un insieme di criteri non siano soddisfatti (tale test à ̈ rappresentato in Figura 6 dal blocco 506 di controllo), l’informazione di errore viene inviata alla terza sotto-unità funzionale 503 di sbrogliatura del tratto, che produce una sbrogliatura differente dello scheletro (ottenuto al termine delle fasi di correzione delle distorsioni) facendo sì che, di conseguenza, la quarta sotto-unità funzionale 504 produca una segmentazione in una differente sequenza di stroke che viene analizzata dall’algoritmo di validazione effettuato dalla quinta sotto-unità funzionale 505. Questa procedura ciclica (dal blocco 503 al blocco 506 di Figura 6) viene ripetuta finché l’inchiostro segmentato non rispetta l’insieme di criteri oppure gli errori non possono essere ulteriormente ridotti.
L’algoritmo di sbrogliatura effettuato dalla terza sotto-unità funzionale 503 recupera la sequenza di punti seguita dall’autore riformulando il problema del recupero dell’ordine di scrittura in termini di ricerca del grafo, dove il grafo descrive le proprietà topologiche della polilinea associata allo scheletro ottenuto al termine delle fasi di correzione delle distorsioni. Ogni nodo del grafo à ̈ caratterizzato da due caratteristiche, il tipo (selezionato tra EP o BP) ed il grado (i.e. il numero di segmenti o connessioni che si diramano dal nodo stesso), che dipende dal numero di linee digitali che attraversano il nodo. La sbrogliatura à ̈ ottenuta selezionando un percorso all’interno del grafo che attraversa tutti i nodi e, allo stesso tempo, minimizza il numero di nodi attraversati più di una volta. Affinché esista un tale percorso, il grafo originale à ̈ trasformato in un grafo semieuleriano, i.e. un grafo in cui tutti i nodi hanno un grado pari, ad eccezione dei nodi di inizio e di fine. Allo scopo di trasformare la struttura del grafo in quella di un grafo semi-euleriano, vengono seguite due fasi utilizzando criteri euristici. Nella prima fase, i nodi iniziale e finale sono selezionati tra i nodi dispari e tutti i nodi dispari rimanenti vengono trasformati in nodi pari, aggiungendo ulteriori connessioni tra di loro. Infine, l’algoritmo di Fleury, modificato sulla base di criteri di generazione di scrittura a mano, consente di trovare il percorso che attraversa tutti i nodi e minimizza il numero di nodi attraversati più di una volta. Il percorso selezionato rappresenta la dinamica ricostruita della traccia di inchiostro. Più in dettaglio, l’algoritmo di sbrogliatura comprende le seguenti fasi:
1) rilevare i nodi iniziale e finale utilizzando criteri basati sul grado dei nodi e sulle loro posizioni relative; il nodo iniziale à ̈ il punto EP in alto a sinistra, mentre il nodo finale à ̈ il punto EP in basso a destra (nell’ipotesi in cui la scrittura a mano sia in una lingua per la quale le parole sono scritte e lette da sinistra a destra, come ad esempio l’inglese; nel differente caso in cui la scrittura a mano sia in una lingua per la quale la direzione di scrittura e lettura sia differente, come ad esempio l’arabo in cui le parole sono scritte e lette da destra a sinistra, à ̈ sufficiente modificare i criteri di selezione dei nodi iniziale e finale); se nello scheletro da sbrogliare non sono presenti tali punti EP, l’algoritmo seleziona con gli stessi criteri un nodo BP per l’inizio e/o per la fine;
2) aggiungere connessioni tra i nodi dispari per ottenere un grafo semieuleriano selezionando le coppie di nodi dispari che sono più vicini tra loro; 3) ordinare gli archi partendo dal nodo iniziale;
4) ad ogni nodo BP, andare lungo gli archi secondo l’ordine seguente:
4a) arco semplice, che parte da un nodo BP e termina in un altro nodo BP; 4b) ciclo, che à ̈ un arco che inizia e finisce nel medesimo nodo BP,
4c) circuito a due vie, che à ̈ un arco che parte in un nodo BP e termina in un nodo EP, come per esempio un arco di ritracciatura, cioà ̈ un arco che si ottiene quando due parti del tratto sono disegnate sovrapposte in modo che ne risulti un unico tratto di inchiostro;
4d) circuito a tre vie, che à ̈ formato da due archi che partono e terminano nel medesimo nodo BP;
4e) ponti, che sono archi semplici la cui rimozione disconnette il grafo.
L’algoritmo di segmentazione effettuato dalla quarta sotto-unità funzionale 504 suddivide lo scheletro del tratto sbrogliato (o della traccia sbrogliata – come quello di Figura 7f-1) in stroke, i.e. suddivide lo scheletro sbrogliato nelle parti del tratto (o della traccia) corrispondenti ai movimenti elementari eseguiti dall’autore.
La segmentazione in stroke à ̈ ottenuta con un metodo di decomposizione che sfrutta il concetto di salienza percettiva utilizzato per modellare l’attenzione visiva negli esseri umani (e più in generale dei primati). Il metodo si basa su una rappresentazione multi-scala (come descritto, e.g., da Lindeberg T. in “Scale-Space Theory in Computer Vision†, Kluwer Academic Publishers, 1994) dello scheletro sbrogliato che viene utilizzata per costruire una mappa di salienza per evidenziare il cosiddetto “fuoco dell’attenzione†, ossia le regioni dell’immagine che rappresentano informazioni salienti per l’applicazione in considerazione. In questo caso, il fuoco dell’attenzione sono i punti dello scheletro sbrogliato in cui sono registrate significative variazioni di curvatura in scale diverse, e pertanto rappresentano i desiderati punti di decomposizione. L’algoritmo di segmentazione comprende le seguenti fasi:
1) costruire le rappresentazioni dello scheletro sbrogliato utilizzando come scala ï ³ i livelli di risoluzione; la risoluzione più alta à ̈ ottenuta considerando tanti punti quanti sono i pixel dello scheletro sbrogliato, la risoluzione seguente prendendo un punto ogni due pixel dello scheletro sbrogliato, la risoluzione successiva prendendo un punto ogni tre pixel dello scheletro sbrogliato, e così via; la minima risoluzione include soltanto tre punti per rappresentare l’intero scheletro sbrogliato;
2) calcolare la curvatura c ( σ) ad ogni risoluzione σ:
c ( σ)=limΔλ->0Δα/Δλ
dove λ à ̈ l’ascissa curvilinea sulla curva dello scheletro sbrogliato; dato che la curva dello scheletro sbrogliato à ̈ discreta, Δλ à ̈ costante a qualsiasi scala data e pertanto
c ( σ) ≈ Δα;
i valori effettivi della curvatura vengono poi quantizzati in 16 intervalli, ciascuno dei quali si estende su un angolo di 2 Ï€/16 radianti, e ciascun intervallo à ̈ codificato da una etichetta in modo tale che ad ogni scala la forma dello stroke à ̈ descritta da una stringa di tante etichette quanto à ̈ il numero di punti utilizzati per descrivere lo scheletro sbrogliato meno uno;
3) costruire una “mappa†di salienza tramite il conteggio di quante volte un punto à ̈ un massimo locale di curvatura alle diverse scale;
4) selezionare come punti di segmentazione i punti di massimo locale della mappa di salienza il cui valore à ̈ maggiore della media dei valori della mappa; 5) selezionare la migliore scala per descrivere la forma degli stroke calcolando la distanza tra il vettore c( σ) e il vettore <c( σ)>, i.e. la differenza (vettoriale) tra la curvatura osservata alla scala Ïƒï€ e la curvatura ottenuta mediando i valori di curvatura su tutte le scale. Tale differenza à ̈ molto elevata in corrispondenza delle risoluzioni più basse (perché vengono perduti troppi cambiamenti di curvatura importanti), si riduce man mano che la risoluzione si avvicina a quella “giusta†, e poi aumenta di nuovo quando la risoluzione diventa troppo alta (perché vengono considerati troppi cambiamenti di curvatura irrilevanti). Pertanto, l’algoritmo di segmentazione calcola la parabola che rappresenta la migliore approssimazione delle coppie di differenze (distanza, risoluzione) e seleziona la scala ï ³ corrispondente al vertice della parabola.
L’algoritmo di validazione effettuato dalla quinta sotto-unità funzionale 505 analizza la sequenza di stroke fornita dalla quarta sotto-unità funzionale 504 di segmentazione e convalida (o meno) la sbrogliatura per mezzo dei seguenti criteri:
- uno stroke non può iniziare o terminare nelle vicinanze di un punto di fine od un punto di inizio del tratto (o della traccia) d’inchiostro; pertanto, un punto di segmentazione che cade in prossimità dei selezionati nodi iniziale o finale all’interno del grafo implica che essi non sono i punti di inizio o di fine del tratto (o della traccia) di inchiostro, e quindi la loro selezione deve essere cambiata; in particolare, la vicinanza à ̈ valutata confrontando la distanza tra il punto di segmentazione e quello iniziale o finale con una soglia (nella preferita forma di realizzazione la soglia à ̈ pari a 3 pixel); - due o più stroke non possono iniziare nelle vicinanze di un punto BP; pertanto, nel caso in cui archi aggiuntivi tra punti BP diano luogo a più di due punti di segmentazione in loro vicinanza, si deve esaminare un’altra possibilità di archi aggiuntivi; per la stessa ragione, se nel percorso trovato dall’algoritmo del Fleury vi à ̈ un punto di segmentazione in prossimità di un punto BP, allora deve essere scartata questa modalità di percorrere gli archi.
Gli errori eventualmente trovati vengono codificati in un vettore di errore, avente tanti elementi quanti sono i punti EP e BP dello scheletro sbrogliato in cui ogni elemento à ̈ una variabile logica booleana impostata a "vero" quando viene trovato un errore di segmentazione nel punto corrispondente all’elemento del vettore di errore. Questa informazione à ̈ poi sfruttata per decidere, sulla base del numero di errori rilevati, se à ̈ possibile o meno ricostruire l’ordine di scrittura. Tale decisione à ̈ basata sul concetto che la ricostruzione del percorso à ̈ più difficile quando la maggior parte delle informazioni relative alla traiettoria non à ̈ disponibile. In particolare, la traiettoria descritta dalla punta della penna quando questa à ̈ sollevata dalla carta non à ̈ rappresentata nel tratto (o nella traccia) di inchiostro e pertanto, allo scopo di ricostruire il percorso quando la penna à ̈ sollevata, à ̈ necessario ricavare queste informazioni mancanti dal tratto di inchiostro esistente. Naturalmente, quante meno informazioni sono disponibili, tanto più complessa à ̈ la realizzazione di una ricostruzione affidabile del percorso originale e tanti più errori possono essere commessi. Di conseguenza, se il numero di errori supera una soglia (preferibilmente pari a 2), il tratto (o la traccia) di inchiostro viene rigettata. L’implementazione dell’algoritmo di validazione effettuato dalla quinta sotto-unità funzionale 505 à ̈ riportato di seguito nell’Algoritmo 3 in linguaggio pseudo-naturale (inglese), in cui:
- P = {P0, P1, P2… Pn} = {Pi, per i = 0, 1, … n} à ̈ l’insieme ordinato degli (n+1) punti EP e BP (fornito dalla terza sotto-unità funzionale 503 di sbrogliatura) che rappresenta il percorso trovato nel grafo;
G(Pi) é il grado del punto P,;
- S(Pi) é il numero di punti di segmentazione (nel seguito indicati anche con SP - Segmentation Point) (fornito dalla quarta sotto-unità funzionale 504 di segmentazione) nelle vicinanze di un punto P,;
E = {e0, e1, ... en} à ̈ il vettore di errore, comprendente un insieme di (n+ 1) variabili booleane (ognuna delle quali corrisponde ad un punto P,) che indica se un errore à ̈ individuato nella segmentazione correntemente analizzata per la validazione, mentre E<PREV>= {e0<PREV>, e1<PREV>, e2<PREV>, ... en<PREV>} à ̈ il vettore di errore della segmentazione precedentemente analizzata; un nodo intermedio à ̈ un nodo posizionato tra un nodo iniziale ed un nodo finale;
amod b, dove a e b sono variabili intere, Ã ̈ una funzione che restituisce il resto intero della divisione (a/b);
il simbolo significa "numero di";
il simbolo "§" introduce un commento alla corrispondente istruzione in linguaggio pseudo-naturale.
For each Pi from P0to Pn
If ((i=0) OR (i=n)) then § Pià ̈ un nodo iniziale o finale
If (G(Pi)=1) then § Pià ̈ un punto EP
If (S(Pi) > 0) then ei=true § nelle vicinanze di Pic’à ̈ un punto SP
Else § Pià ̈ un punto BP
If (S(Pi) > 1) then ei=true § nelle vicinanze di Pici sono due o più punti SP Else § Pià ̈ un nodo intermedio
If (G(Pi)mod 2=1) then § Pià ̈ un punto BP di grado dispari
If (S(Pi) > 1) then ei=true § nelle vicinanze di Pici sono due o più punti SP Else § Pià ̈ un punto BP di grado pari
If (S(Pi) > 0) then ei=true § nelle vicinanze di Pic’à ̈ un punto SP
If (quella sotto analisi di validazione à ̈ la prima segmentazione) then
If (#ei=true > 0) then
Invia il vettore di errore all’algoritmo di sbrogliatura
EPREV=E
Else
If (#ei=true > 0) AND (#ei=true<#ePREV
i=true) then
Invia il vettore di errore all’algoritmo di sbrogliatura
EPREV=E
Else
If (#ei=true > 2) then
Rigetta il frammento
Algoritmo 3
Ogni volta che il tratto di inchiostro segmentato non rispetta uno o entrambi i summenzionati criteri, ma il numero totale di errori à ̈ inferiore alla soglia, il vettore di errore viene inviato all’algoritmo di sbrogliatura effettuato dalla terza sotto-unità funzionale 503 e viene sfruttato per modificare le seguenti tre caratteristiche del percorso nel grafo che da luogo allo scheletro sbrogliato:
- la selezione del nodo iniziale e del nodo finale;
- l’introduzione di archi di connessione addizionali;
- l’individuazione della sequenza degli archi nel percorso fornito dall’algoritmo di Fleury.
Secondo le informazioni fornite dall’algoritmo di validazione, l’algoritmo di sbrogliatura esegue due fasi:
1) una fase di correzione del grafo, che modifica il grafo cambiando i punti di inizio e/o di fine e gli archi di connessione addizionali, selezionando una tra possibili alternative, come illustrato nell’Algoritmo 4 riportato nel seguito, in cui POPrappresenta il sotto-insieme di nodi percorsi da un numero dispari di archi e gli altri simboli hanno lo stesso significato illustrato per l’Algoritmo 3; ed
2) una fase di riordino della sequenza, che trova un altro percorso all’interno del grafo cambiando il modo in cui gli archi sono percorsi, come illustrato nell’Algoritmo 5 riportato nel seguito, in cui Aià ̈ l’insieme degli archi associati ad ogni nodo Pi, A*
i={a0...am} à ̈ il sotto-insieme degli archi che partono da Pie gli altri simboli hanno lo stesso significato illustrato per l’Algoritmo 3.
If (e0= true) then
P0= SelezionaNodoInizio(POP,P0) § seleziona un nodo di inizio dall’insieme POPeccetto P0
If (en== true) then
Pn= SelezionaNodoFine(POP,Pn) § seleziona un nodo di fine dall’insieme POPeccetto P0
Else
For (tutti i nodi di grado dispari)
If (ei= true AND ei+1= true) then
Pi= SelezionaNodoAccoppiamento(POP,Pi+1)
§ seleziona un nodo di accoppiamento per Pidall’insieme POPeccetto Pi+1
Pi= SelezionaNodoAccoppiamento(POP,Pi)
§ seleziona un nodo di accoppiamento per Pi+1dall’insieme POPeccetto Pi
Algoritmo 4
For ogni eida e1a en-1
If (ei= true) then
ai=SelezionaNuovoArco(A*
i,ai) § seleziona un arco partente da Pidall’insieme
A*
ieccetto ai
Algoritmo 5
Come illustrato in Figura 6, nel caso in cui il test effettuato dal blocco 506 di controllo verifichi che l’insieme di criteri à ̈ soddisfatto, una sesta sotto-unità 507 di estrazione delle caratteristiche esegue un algoritmo che assegna ad ogni stroke appartenente al tratto (od alla traccia) di inchiostro una caratteristica di stintiva, che tiene conto delle informazioni relative alla forma globale dello stroke e la sua posizione relativa all’interno delle zone della parola.
Per la preferita forma di realizzazione del procedimento secondo l’invenzione, le Tabelle 1A e 1B riportano (con termini in lingua inglese immediatamente comprensibili agli esperti del ramo – consistenti con quanto riportato in Tabella 2), l’insieme delle caratteristiche ed il criterio secondo il quale ogni caratteristica à ̈ associata ad uno stroke, avente a e b come punti di inizio e di fine, rispettivamente. La Figura 11 illustra le corrispondenti caratteristiche adottate.
Caratteristica Codice Criterio
Ascender Up A (topCenter < a < lowBottomCenter) and
(top ≤ b < highTopCenter) Ascender ghTopCenter) and
Down a (top ≤ a < hi
(topCenter < b < lowBottomCenter) Descender Up D (lowBottomCenter < a < bottom) and (highTopCenter < b < bottomCenter) Descender
Down d (highTopCenter < a < bottomCenter) and (lowBottomCenter < b < bottom)
Insieme di stroke consecutivi s1…sncontenuti nel rettangolo di delimitazione FB, che verifica le seguenti condizioni:
1. distance(s1.a, sn.b)
>0.3 x(bottomCenter - topCenter )<;>
<2.>width(FB)
0.5 ≤ ≤ 3;
height(FB)
Loop L 3. width(FB) <2 x(bottomCenter - topCenter )
or
height(FB) >0.5 x(bottomCenter - topCenter )<;>4. (highTopCenter < Top(FB) < lowBottomCenter) and (highTopCenter < Bottom(FB) < lowBottomCenter); 5.  i Area( s i )
>0.5
Area( FB )
((topCenter < a ≤ bottomCenter) and (highTopCenter ≤ b < topCenter))
Upper u or
((topCenter < b ≤ bottomCenter) and (highTopCenter ≤ a < topCenter))
Tabella 1A
Caratteristica Codice Criterio
((highTopCenter < a ≤ topCenter) and
(top ≤ b < highTopCenter))
Upper Center x or
((highTopCenter < b ≤ topCenter) and
(top ≤ a < highTopCenter))
Upper Top y (top ≤ a ≤ highTopCenter) and (top ≤ b ≤ highTopCenter) Upper Bottom z ((highTopCenter ≤ a ≤ topCenter) and (highTopCenter ≤ b ≤ topCenter)) ((topCenter ≤ a < bottomCenter) and (bottomCenter < b ≤ lowBottomCenter)) Lower l or
((topCenter ≤ b < bottomCenter) and (bottomCenter < a ≤ lowBottomCenter)) ((bottomCenter ≤ a < lowBottomCenter) and (lowBottomCenter < b ≤ bottom))
Lower Center i or
((bottomCenter ≤ b < lowBottomCenter) and (lowBottomCenter < a ≤ bottom))
Lower Top k ((bottomCenter ≤ a ≤ lowBottomCenter) and (bottomCenter ≤ b ≤ lowBottomCenter)) Lower Bottom j (lowBottomCenter ≤ a ≤ bottom) and (lowBottomCenter ≤ b ≤ bottom) ((topCenter ≤ a ≤ bottomCenter) and (topCenter ≤ b ≤ bottomCenter))
or
Center c ((highTopCenter ≤ a < topCenter) and (bottomCenter < b ≤ lowBottomCenter))
or
((highTopCenter ≤ b < topCenter) and (bottomCenter < a ≤ lowBottomCenter))
(a ≥ lowBottomCenter and b ≤ highTopCenter) Pipe p or
(b ≥ lowBottomCenter and a ≤ highTopCenter)
Tabella 1B
L’uscita finale fornita dall’unità funzionale StS 102 à ̈ pertanto la sequenza di stroke e la corrispondente sequenza di caratteristiche, rappresentate in Figura 6 mediante il blocco 508.
Nella modalità di configurazione, l’unità funzionale StL 103 di Figura 1 as socia ogni stroke della sequenza, in cui il tratto (o la traccia) à ̈ stato segmentato dall’unità StS 102, al carattere della trascrizione cui appartiene. Allo scopo di ottenere tali associazioni, l’unità StL 103 esegue le seguenti tre fasi, schematizzate in Figura 12 in riferimento alla specifica traccia 12-2027 di inchiostro corrispondente alla trascrizione 1250 della parola inglese “adherent†:
1) una prima fase 1200 di generazione delle distribuzioni, in cui i tratti (o le tracce) 2032 di inchiostro segmentati (e.g. la traccia 12-2027 di Figura 12) e le loro trascrizioni 2033 sono utilizzati per generare (per ogni carattere dell’alfabeto di destinazione - i.e. dell’alfabeto del Lexicon 156) una serie di funzioni o distribuzioni 1251 di massa di probabilità (probability mass function) il cui numero à ̈ pari al numero C di caratteri dell’alfabeto di destinazione (i.e. dell’alfabeto del Lexicon 156), discriminando la modalità di scrittura delle lettere dell’alfabeto (e.g. una lettera maiuscola à ̈ un carattere differente dal carattere corrispondente alla medesima lettera in minuscolo);
2) una seconda fase 1201 di analisi delle caratteristiche, in cui viene individuato un insieme di punti 1252 di ancoraggio attraverso l’analisi delle caratteristiche associate agli stroke, ognuno dei quali punti 1252 di ancoraggio rappresenta l’inizio o la fine di un carattere in una sotto-sequenza in cui può essere suddivisa la sequenza di stroke nella traccia 12-2027 di inchiostro; ed
3) una terza fase 1202 di associazione di etichette, in cui, in conformità ai punti 1252 di ancoraggio individuati nella seconda fase 1201, vengono individuate le trascrizioni 1253 delle porzioni della traccia 12-2027, separate dai punti 1252 di ancoraggio, tramite le distribuzioni 1251 di probabilità generate nella prima fase 1200, associando infine ogni stroke alla trascrizione del carattere cui appartiene, ottenendo una traccia 12-2034 (od un tratto) di inchiostro segmentata etichettata (in Figura 12 ognuno dei 29 stroke che compongono la traccia 12-2027 della parola “adherent†à ̈ associato alla trascrizione del rispettivo carattere, ottenendo la stringa “aaaadddddhhhheerrrreennnntttt†(indicata con il numero di riferimento 2035);
Più in particolare, la prima fase 1200 di generazione delle distribuzioni genera una distribuzione 1251 di probabilità per ciascuna classe di caratteri, che rappresenta la probabilità che un carattere sia composto da un certo numero di stroke. Le distribuzioni 1251 di massa di probabilità sono ottenute risolvendo un insieme di sistemi di equazioni lineari. Ogni equazione à ̈ ottenuta da un tratto (od una traccia) 2032 di inchiostro segmentato, considerando il numero nchardi stroke di ogni carattere come una variabile incognita, le occorrenze xchardi ogni carattere come coefficienti, ed il numero nstrokesdi stroke del tratto (o della traccia) di inchiostro segmentato come il termine noto:
nαxα+ . nzxz+nAxA+ . nZxZ+ = n strokes
Ogni sistema di equazioni lineari à ̈ costituito da k equazioni (con k ≥ C, dove C à ̈ il numero di caratteri dell’alfabeto come detto sopra) e di C variabili incognite. Risolvendo un insieme di m sistemi, si ottengono m vettori di soluzioni ognuno comprendente C elementi (precisamente un elemento per ogni carattere dell’alfabeto). Ad ogni i-esimo vettore di soluzione (con i variabile da 1 a m) à ̈ attribuito un corrispondente vettore di parametri di affidabilità R, pure avente C elementi (uno per ogni carattere) ognuno dei quali à ̈ pari al rapporto tra l’occorrenza del corrispondente carattere all’interno del sistema di equazioni e della deviazione della soluzione considerata (per quel carattere) dalla media delle soluzioni (per quel carattere):
n
Rc , iï€1⁄2 c , i
m r
rc,i ï‚ ́ nc , iï€ïƒ¥ c,j ï‚ ́ nc , j
jï€1⁄2 1 m
dove:
- nc,ià ̈ l’occorrenza del c-esimo carattere all’interno dell’i-esimo sistema; e - rc,ià ̈ il numero di stroke che compongono il c-esimo carattere, numero ottenuto risolvendo l’i-esimo sistema.
Le distribuzioni vengono poi create in base agli m vettori di soluzioni ed ai corrispondenti vettori di parametri di affidabilità R.
Come detto, la seconda fase 1201 di analisi delle caratteristiche analizza le caratteristiche associate agli stroke ed individua un insieme di punti 1252 di ancoraggio. Alcuni caratteri sono contraddistinti da una particolare sequenza di caratteristiche all’inizio od alla fine del loro tratto di inchiostro. Un elenco di questi caratteri e delle loro proprietà , nel caso dell’alfabeto inglese, à ̈ riportato in Tabella 2. Ogni volta che la trascrizione contiene questi caratteri, le caratteristiche effettive fornite dall’unità StS 102 sono comparate con quelle attese. Nel caso in cui le caratteristiche effettive corrispondano a quelle attese, la sequenza di stroke à ̈ divisa in sotto-sequenze secondo i punti 1252 di ancoraggio individuati (come mostrato in Figura 12), ed ogni sotto-sequenza à ̈ associata alla corrispondente porzione 1253 della trascrizione (in Figura 12, i due punti 1252 di ancoraggio individuati suddividono la traccia 12-2027 in tre sotto-sequenze associate alle corrispondenti porzioni 1253 “ad†, “heren†e “t†).
Caratteri ProprietÃ
p Il carattere inizia con un tratto discendente verso il basso (descender down) seguito da un tratto discendente verso l’alto (descender up) g, j, q, y Il carattere termina con un tratto discendente verso il basso (descender down) seguito da un tratto discendente verso l’alto (descender up) b, h, k, l, t Il carattere inizia con un tratto ascendente verso l’alto (ascender up) seguito da un tratto ascendente verso il basso (ascender down) d Il carattere termina con un tratto ascendente verso l’alto (ascender up) seguito da un tratto ascendente verso il basso (ascender down)
Tabella 2
La terza fase 1202 di associazione di etichette effettuata dall’unità funzionale StL 103 analizza ogni sotto-sequenza trovata nella seconda fase 1201 di analisi delle caratteristiche e genera una sequenza di etichette, ognuna rappresentante la trascrizione del carattere al quale lo stroke corrispondente appartiene. In particolare, in conformità alla trascrizione associata alla sotto-sequenza, l’algoritmo di etichettatura eseguito dalla terza fase 1202 sfrutta le distribuzioni 1251 di probabilità per trovare la combinazione di stroke associati ad ogni carattere che dà luogo al massimo valore di probabilità e che, al tempo stesso, rispetta il vincolo del numero totale di stroke che compongono la sotto-sequenza.
L’algoritmo di etichettatura parte dai massimi assoluti delle distribuzioni 1251 associate ai caratteri appartenenti alla trascrizione, che vengono inseriti in un vettore Pmax (avente un numero di elementi pari al numero di caratteri della trascrizione), genera un vettore S, anch’esso contenente un numero di elementi pari al numero di caratteri della trascrizione, in cui ogni elemento à ̈ pari al numero di stroke associati al rispettivo carattere, e calcola il numero atteso Sexpdi stroke della sotto-sequenza. Successivamente, se il numero atteso Sexpdi stroke à ̈ diverso dal numero effettivo Sact, l’algoritmo di etichettatura seleziona un altro massimo locale per ogni distribuzione 1251, formando un nuovo vettore Pmax; in particolare, il massimo locale all’interno di una distribuzione 1251 da inserire come elemento del vettore Pmax viene cercato a sinistra del massimo assoluto se Sexp>Sact, mentre à ̈ cercato a destra del massimo assoluto se Sexp<Sact. Sulla base del vettore Pmax, l’algoritmo di etichettatura cambia il numero di stroke associati al carattere che presenta il maggiore valore di massimo locale. In conformità ai nuovi valori degli elementi del vettore S, viene calcolato il nuovo numero atteso Sexpche viene poi confrontato con il numero effettivo Sact. Questa prima parte dell’algoritmo di etichettatura termina quando Sexpcorrisponde a Sactoppure quando tutti i massimi locali sono stati esplorati.
Ogni volta che non vi à ̈ alcuna combinazione di massimi locali che rispetti il vincolo del numero totale di stroke (i.e. Sexp= Sact), l’algoritmo di etichettatura riparte dai massimi assoluti, cerca i massimi locali (a sinistra dei massimi assoluti se Sexp>Sactod a destra se Sexp<Sact) ed aggiunge (se Sexp<Sact) o sottrae (se Sexp>Sact) uno stroke al numero di stroke associati al carattere che presenta il maggiore valore di massimo locale e calcola il nuovo valore di Sexp. L’algoritmo di etichettatura termina quando Sexpcorrisponde Sact. L’algoritmo di etichettatura à ̈ riportato nell’Algoritmo 6 in linguaggio pseudo-naturale (inglese), in cui:
- C=[c1,…,ck]=[ci, per i=1,…,k] à ̈ l’insieme di caratteri appartenenti alla trascrizione del tratto (o la traccia) segmentata (indicate con il numero di riferimento 12-2027 in Figura 12);
- S=[S1,…, Sk]=[Si, per i=1,…,k] à ̈ l’insieme dei numeri di stroke, ognuno associato ad un rispettivo carattere appartenente alla trascrizione; e - Pmax=[Pmax1,…, Pmaxk]=[Pmaxi, per i=1,…,k] à ̈ l’insieme corrente dei massimi delle distribuzioni di probabilità (indicate con il numero di riferimento 1251 in Figura 12), ognuna associata ad un rispettivo carattere appartenente alla trascrizione.
For each cifrom c1to ck
Pmaxi↠globalMax (distribution(ci));
Si=distribution(ci,Pmaxi)
Sexp=ΣiSi;
while ((Sexp≠Sact) AND (!AllLocalMaximaExplored)) do
if (Sexp>Sact) then
for each cifrom c1to ck
Pmaxi↠localMax (distribuon(ci), Si, left);
Else if
for each cifrom c1to ck
Pmaxi↠localMax (distribuon(ci), Si, right);
j=argmax (Pmax)
Sj= distribution(cj,Pmaxj)
Sexp=ΣiSi;
if (AllLocalMaximaExplored) then
For each cifrom c1to ck
Pmaxi↠globalMax (distribution(ci));
Si=distribution(ci,Pmaxi)
Sexp=ΣiSi;
if (Sexp>Sact) then
for each cifrom c1to ck
Pmaxi↠localMax (distribuon(ci), Si, left);
j=argmax (Pmax)
Sj=Sj-1;
Else if
for each cifrom c1to ck
Pmaxi↠localMax (distribuon(ci), Si, right)
j=argmax (Pmax)
Sj=Sj+1;
Sexp=ΣiSi;
Algoritmo 6
Con riferimento alla applicazione esemplificativa al riconoscimento di una
immagine 13-200 di una parola incognita scritta a mano (corrispondente alla pa rola italiana “Contrada†inclusa nel Lexicon - con scrittura differente dall’immagine 200 di Figura 3) come schematizzato in Figura 13, si può osservare che l’unità funzionale DKBR (Dynamic Knowledge Base Reduction: unità di riduzione dinamica della base di conoscenza – indicata in Figure 2 e 3 con i numeri di riferimento 104A-104B) effettua tre operazioni a valle dell’unità funzionale ICR 101.
Innanzitutto, come schematizzato in Figura 13a, l’unità funzionale ICR 101 associa ai frammenti classificati come caratteri isolati estratti dall’immagine 13-200 (indicati in Figura 13 con i numeri di riferimento 1351, 1353 e 1355) una lista di interpretazioni (nel caso di Figura 13a, la lista 1361 di interpretazioni per il primo frammento 1351 comprende le trascrizioni “C†e “E†, la lista 1363 di interpretazioni per il terzo frammento 1353 comprende la sola trascrizione “t†, e la lista 1365 di interpretazioni per il quinto frammento 1355 comprende le trascrizioni “a†, “o†ed “e†). Ad ogni frammento classificato come porzione di scrittura corsiva (precisamente i frammenti 1352 e 1354) viene invece associato un metacarattere (anche detto “wild card†, rappresentato in Figura 13a dal simbolo “?†delle interpretazioni 1362 e 1364) avente interpretazione indefinita. L’unità ICR 101 calcola anche i costi di classificazione per ogni interpretazione di ogni frammento classificato come carattere isolato (i.e. per ogni interpretazione delle liste 1361, 1363 e 1365 relative ai frammenti 1351, 1353 e 1355). L’unità funzionale ICR 101 fornisce inoltre all’unità funzionale DKBR la posizione relativa di ciascun frammento classificato come carattere isolato (in Figura 13a i frammenti 1351, 1353 e 1355) all’interno dell’immagine 13-200 della parola incognita.
L’unità funzionale DKBR effettua come prima operazione quella di ordinare le liste delle interpretazioni dei frammenti d’immagine classificati come caratteri isolati in base alla loro posizione all’interno dell’immagine 13-200 della parola incognita (tale ordinamento à ̈ indicato in Figura 13b con il numero di riferimento 1370), ed ottiene un numero di interpretazioni parziali (i.e. legate alle interpretazioni dei soli frammenti classificati come caratteri isolati - in Figura 13a i frammenti 1351, 1353 e 1355) dell’immagine 13-200 della parola incognita pari al prodotto dei numeri di interpretazioni alternative incluse nelle liste di interpretazioni associate ai frammenti classificati come caratteri isolati fornite dall’unità ICR 101 (in Figura 13a, la lista 1361 comprende 2 interpretazioni “C†e “E†, la lista 1363 comprende 1 interpretazione, e la lista 1365 comprende 3 interpretazioni, per cui il numero di interpretazioni parziali à ̈ pari a 2·1·3 = 6, precisamente: “C?t?a†, “C?t?o†, “C?t?e†, “E?t?a†, “E?t?o†, “E?t?e†). Inoltre, l’unità funzionale DKBR calcola anche il costo per la costruzione di ciascuna interpretazione parziale, sommando i costi di classificazione delle specifiche interpretazioni dei frammenti classificati come caratteri isolati come considerate nella specifica interpretazione parziale. In tal modo, al termine della prima operazione, l’unità funzionale DKBR fornisce un elenco di interpretazioni parziali ed il loro costo di classificazione.
Come mostrato schematicamente in Figura 13b, l’unità funzionale DKBR effettua poi come seconda operazione quella di costruire un Lexicon dinamico 204, estraendo dal Lexicon 156 solo le parole le cui trascrizioni corrispondono alle interpretazioni parziali dell’ordinamento 1370. Durante questo processo, le interpretazioni indefinite delle wild card “?†1362 e 1364 associate ai frammenti 1352 e 1354 classificati come porzioni di scrittura corsiva sono cambiate nelle corrispondenti sotto-sequenze delle porzioni delle trascrizioni delle parole corrispondenti del Lexicon 156 (à ̈ immediato per il tecnico medio del ramo riconoscere tali sotto-sequenze in Figura 13b; a titolo esemplificativo, ma non limitativo, per la parola “Cantare†del Lexicon 156, inclusa poi nel Lexicon dinamico 204, le due sotto-sequenze corrispondenti alle wild card 1362 e 1364 sono, rispettivamente, “an†e “ar†, mentre per la parola “Ecatombe†del Lexicon 156, inclusa poi nel Lexicon dinamico 204, le due sotto-sequenze corrispondenti alle wild card 1362 e 1364 sono, rispettivamente, “ca†e “omb†). Preferibilmente, le sottosequenze di caratteri il cui numero atteso Sexpdi stroke, come calcolato dall’unità funzionale StL 103 nella modalità di configurazione, à ̈ troppo grande o troppo piccolo in confronto con il numero effettivo Sactdi stroke nel frammento classificato come porzione di scrittura corsiva vengono scartati. Di conseguenza, il Lexicon dinamico 156 rappresenta le sole interpretazioni possibili per la parola incognita da riconoscere nell’immagine (in Figura 13 indicata con il numero di riferimento 13-200), cui sono ancora associati i corrispondenti costi di classificazione sulla base delle rispettive interpretazioni parziali forniti dall’unità funzionale DKBR al termine della prima operazione (illustrata sopra).
Infine, come mostrato schematicamente in Figura 13c, l’unità funzionale DKBR effettua come terza operazione quella di costruire, sulla base dell’insieme Reference Set 154 e del Lexicon dinamico 204, un insieme Reference Set dinamico 205, i.e. un elenco dei tratti di inchiostro le cui trascrizioni corrispondono, almeno parzialmente, alle sotto-sequenze di caratteri delle interpretazioni incluse nel Lexicon dinamico 204 corrispondenti ai frammenti 1352 e 1354 classificati come porzioni di scrittura corsiva (le quali sotto-sequenze di caratteri non includono le interpretazioni 1361, 1363 e 1365 dei frammenti 1351, 1353 e 1355 classificati come caratteri isolati; in Figura 13c tali sotto-sequenze di caratteri sono indicate con i numeri di riferimento 1382 e 1384 per i frammenti 1352 e 1354, rispettivamente). In altre parole, l’insieme Reference Set dinamico 205 viene costruito estraendo dall’insieme Reference Set 154 porzioni di scrittura corsiva la cui trascrizione corrisponde (almeno parzialmente) con le sotto-sequenze di caratteri incluse nelle voci del Lexicon dinamico 204 (le quali sotto-sequenze non includono le interpretazioni 1361, 1363 e 1365).
Come già detto con riferimento alla Figura 2, l’unità funzionale IM 105 di confronto di inchiostri compara la sequenza 206 di stroke fornita dall’unità funzionale StS 102 con quelle contenute nel Reference Set dinamico 205 e, nel caso in cui sia soddisfatto un insieme di criteri di corrispondenza, l’unità funzionale IM 105 fornisce come interpretazione corsiva 207 per la sequenza 206 di stroke la trascrizione delle sequenze corrispondenti di stroke dell’insieme Reference Set dinamico 205 ed il suo costo. Dopo l’esecuzione della corrispondenza (matching), ci possono essere sequenze di stroke dei frammenti 202 classificati come porzioni di scrittura corsiva prive di corrispondenza (unmatched), i.e. sequenze 206 di stroke di frammenti che non corrispondono ad alcuna sequenza inclusa nell’insieme Reference Set dinamico 205. Inoltre, dopo l’esecuzione della corrispondenza (matching) ci possono altresì essere delle sequenze sovrapposte, i.e. sequenze 206 di stroke di frammenti 202 che corrispondono a più sequenze incluse nell’insieme Reference Set dinamico 205 che sono associate a differenti trascrizioni. Quindi, l’unità IM 105 fornisce in uscita la sotto-sequenza (o le sottosequenze) di stroke del frammento 202 classificato come porzione di scrittura corsiva che corrisponde (o corrispondono) a una sequenza (o più sequenze) dell’insieme Reference Set dinamico 205, ogni sotto-sequenza essendo etichettata con i caratteri corrispondenti agli stroke corrispondenti (matching) delle voci dell’insieme Reference Set dinamico 205.
L’esecuzione della corrispondenza (matching) delle sequenze di stroke viene effettuata misurando la similarità della forma della sequenza di stroke a scale differenti, combinando la rappresentazione multi-scala in una mappa di salienza e selezionando i punti più salienti, che corrispondono alla sequenza di stroke più simile. Il fondamento logico alla base di tale tecnica di matching à ̈ che valutando la similarità a scale differenti e poi combinando queste informazioni attraverso le scale, le sequenze di stroke che sono “globalmente†più simili di altre emergono nella mappa salienza. La natura “globale†della salienza garantisce che la sua mappa fornisca una stima più affidabile di similarità del tratto di inchiostro rispetto a quella fornita da criteri “locali†(che sono usualmente proposti nella tecnica anteriore).
Per attuare tale approccio à ̈ necessario definire uno spazio delle scale, trovare una misura di similarità da adottare ad ogni scala, calcolare la mappa di salienza, e selezionare le sequenze corrispondenti di stroke.
Per quanto riguarda lo spazio delle scale, la preferita forma di realizzazione del procedimento secondo l’invenzione adotta come scala il numero di stroke nelle sequenze di cui viene misurata la similarità . Tale numero viene indicato nel seguito della presente descrizione anche come “lunghezza†della sequenza. In conformità a ciò, il numero di scale corrisponde alla lunghezza K della più lunga sequenza comune di stroke compatibili tra la sequenza di stroke dei frammenti 202 e la sequenza di stroke dell’insieme Reference Set dinamico 205 con cui viene verificata la corrispondenza (matching). Per decidere se due stroke sono compatibili, i.e. se portano le medesime informazioni contestuali anche se hanno forme differenti, le caratteristiche associate agli stroke vengono comparate adottando i criteri di compatibilità riportati in Tabella 3, che mostra una matrice ogni elemento della quale denota la compatibilità (se l’elemento ha il simbolo “x†) o meno (l’elemento à ̈ vuoto) tra le caratteristiche dei caratteri riportati sulla rispettiva riga e la rispettiva colonna dell’elemento stesso. Le scale successive sono ottenute considerando le sotto-sequenze di stroke compatibili di lunghezza K-1, K-2, …, 2 stroke. Pertanto, al termine di questa procedura, sono ottenute K-1 mappe di similarità , ognuna delle quali misura la somiglianza tra tutte le sottosequenze che possono essere estratte dalla sequenza di lunghezza K.
Carattere A a D d L c p u l x y z i j k A x x x x x
a x x x x x
D x x x x x d x x x x x L x x x x
c x x x x x x p x x x x x
u x x x x x x x
l x x x x x x x x x x x x x x
y x x x
z x x x x x x x
i x x x x x x j x x x k x x x x x x x
Tabella 3
La similarità tra due stroke à ̈ la similarità delle loro forme. A questo scopo, la forma di uno stroke à ̈ descritta da un codice di catena che codifica le orientazioni (i.e. i cambiamenti di curvatura) dei segmenti della polilinea che descrive lo stroke alla risoluzione ï ³ selezionata dall’unità funzionale StS 102. L’orientazione viene uniformemente quantizzata in 16 intervalli, ed ogni intervallo à ̈ denotato da una delle lettere del sotto-insieme [A-P] in modo tale che la lettera A corrisponde al primo intervallo (in cui l’orientazione va da 0 a (2Ï€/16) rispetto all’asse orizzontale), la lettera B corrisponde al secondo intervallo (in cui l’orientazione va da (2Ï€/16) a (2·2Ï€/16) rispetto all’asse orizzontale), e così via; ovviamente, in altre forme di realizzazione del procedimento secondo l’invenzione il sotto-insieme [A-P] può avere un numero differente di elementi e/o una rappresentazione per ogni elemento differente dalla lettera latina maiuscola (e.g., un numero, un simbolo esadecimale, una lettera greca). Tramite questa codifica, la forma dello stroke à ̈ descritta da una stringa di etichette che codifica l’orientazione locale della rappresentazione selezionata del tratto di inchiostro originale, come mostrato a titolo esemplificativo, e non a titolo limitativo, in Figura 14, in cui: la Figura 14a mostra una traccia 14-2028 segmentata negli stroke elementari, in cui i puntini neri lungo lo scheletro sono i punti di segmentazione tra gli stroke (la traccia 14-2028 corrisponde alla parola inglese “unable†scritta a mano); e la Figura 14b mostra la sequenza di stringhe del codice di catena che codifica i cambiamenti di curvatura (i.e. le orientazioni) lungo la traccia segmentata 14-2028, dove i trattini “-†rappresentano i punti di segmentazione.
Come misura di similarità tra due stroke, la preferita forma di realizzazione del procedimento secondo l’invenzione adotta la distanza pesata di scrittura, nota come WED (Weighted Edit Distance) tra i rispettivi codici di catena. La distanza WED à ̈ basata sul concetto di stiramento della stringa: non introduce né cancella alcuna etichetta nelle stringhe da comparare, ma semplicemente estende, i.e. stira, le stringhe più brevi fino a quella più lunga. Quindi, indicando con Lmine Lmaxle lunghezze delle due stringhe, rispettivamente, vi sono (Lmax- Lmin) etichette che devono essere incluse nella stringa stirata. Allo scopo di decidere quali simboli devono essere inseriti e dove, viene calcolata la parte intera I del rapporto (Lmax/Lmin) ed ogni simbolo della stringa più corta replicato per (I-1) volte. I restanti ((Lmax- Lmin)·I) simboli sono uniformemente posizionati nella stringa stirata ed i loro valori sono i medesimi valori di quelli delle etichette alla loro sinistra.
Dopo lo stiramento, la distanza WED tra due stringhe di etichette, precisamente tra una prima stringa X=(x1, x2, …, xL) di etichette ed una seconda stringa Y =(y1, y2, …, yL) di etichette, à ̈ calcolata secondo la seguente formula:
 L
 8ï€ïƒ¥ïƒ¦ED(x 
 i, y i )

WED(X, Y)ï€1⁄2 100 iï€1⁄2 1ïƒ ̈ L ïƒ ̧
 8 
  [W1]
dove:
- ED(xi,yi) Ã ̈ la distanza di scrittura tra il simbolo xidella prima stringa ed il simbolo yidella seconda stringa, e
- L Ã ̈ la lunghezza delle stringhe X e Y.
In altre parole, ED(xi,yi) à ̈ la distanza lessicale tra i simboli [A … P] adottati per codificare i cambiamenti curvatura, la quale distanza lessicale à ̈ vincolata ad essere simmetrica, per cui la distanza lessicale tra A e B à ̈ 1, ma anche la distanza tra A e P à ̈ 1. Di conseguenza, la distanza massima SDmaxtra due simboli à ̈ pari 8 e la distanza WED(X, Y) varia da 0 (per una forma identica ma con ordine opposto di tracciatura) e 100 (per una forma identica ed un medesimo ordine di tracciatura). Nel confronto tra due sequenze X e Y aventi rispettivamente N e M stroke, la distanza WED assume la forma di una matrice di NxM elementi, il cui elemento WEDijdenota la distanza WED tra l’i-esimo stroke del primo frammento ed il jesimo stroke del secondo frammento; nel caso in cui i due stroke siano incompatibili, si ha WEDij= 0. A titolo esemplificativo e non a titolo limitativo, la Figura 15, mostra una tale matrice di distanza WED tra coppie di stroke appartenenti a due sequenze di stroke relative rispettivamente ad un frammento segmentato 15-2028 di una immagine di parola incognita (corrispondente alla parola inglese “into†scritta a mano – in cui il numero di riferimento 15-2028’ indica il frammento con i 12 stroke numerati e separati tra loro da puntini neri che rappresentano i punti di segmentazione lungo lo scheletro), riportato a sinistra della prima colonna ed i cui 12 stroke sono elencati nella prima colonna stessa, e di un frammento segmentato 15-205 di riferimento (corrispondente alla parola inglese “in†scritta a mano - in cui il numero di riferimento 15-205’ indica il frammento con i 7 stroke numerati e separati tra loro da puntini neri che rappresentano i punti di segmentazione lungo lo scheletro) appartenente all’insieme Reference Set dinamico 205, riportato sopra la prima riga ed i cui 7 stroke sono elencati nella prima riga stessa.
Altre forme di realizzazione del procedimento secondo l’invenzione possono utilizzare una formula differente dalla formula [W1] per il calcolo della distanza WED tra due stringhe X=(x1, x2, …, xL) e Y =(y1, y2, …, yL) di etichette, come ad esempio la seguente formula:
 L ) 
 maxï€ïƒ¥ y
SD ED(x
 i, i 
WED(X,Y )ï€1⁄2 WED iï€1⁄2 1ïƒ ̈ L ïƒ ̧
max 
 SD max 
  [W2]
che differisce dalla formula [W1] per il fatto che la distanza massima SDmaxtra due simboli può essere differente da 8 e che la distanza WED(X, Y) può variare da 0 a WEDmax, con WEDmaxche può essere differente da 100.
Successivamente, l’unità IM 105 calcola il valore medioï (WED) sui valori WEDijche sono diversi da zero (i.e. sui valori WEDij≠0). Per costruire la mappa S di salienza, che à ̈ pure una matrice di NxM elementi Sij, inizialmente impostati pari a zero, l’unità IM 105 individua la lunghezza K della più lunga sequenza comune di stroke compatibili e, per ogni coppia di stroke p e q di tale sequenza tale che WEDpq>ï (WED), l’unità IM 105 incrementa di una unità la salienza della coppia di stroke p e q (i.e. Spq= Spq+1).
Infine, l’unità IM 105 decrementa di una unità la lunghezza (i.e. K=K-1), ricerca tutte le possibili sequenze di lunghezza K ed aggiorna la salienza dei loro stroke come sopra, fino ad arrivare a K = 2; in particolare, la Figura 16 mostra la matrice S di salienza per K=2 per le sequenze di stroke di Figura 15. Al termine di tale elaborazione, l’unità IM 105 calcola il valore medio Î1⁄4(S) sui valori Sijche sono diversi da zero (i.e. sui valori Sij≠0). Pertanto, le sequenze corrispondenti (matching) di stroke corrispondono alle sequenze diagonali di valori Sijtali che Sij≥ Î1⁄4(S), in cui il costo di tale corrispondenza (matching) à ̈ il valore medio della distanza WED della sequenza. In proposito, la Figura 17 mostra mediante una rappresentazione grafica la mappa di salienza delle sequenze di stroke di Figura 15, in cui gli elementi più chiari corrispondono ad un valore maggiore di salienza e le sequenze diagonali di elementi chiari corrispondono a sequenze corrispondenti di stroke; in particolare, in Figura 17 vi sono due sequenze corrispondenti di stroke: la prima comprende la sequenza 1-5 della parola incognita “into†scritta a mano e la sequenza 2-6 della parola di riferimento “in†scritta a mano, e la seconda comprende la sequenza 9-11 della parola incognita “into†scritta a mano e la sequenza 3-5 della parola di riferimento “in†scritta a mano.
Nel caso in cui vi siano due (o più) sequenze corrispondenti (matching) che corrispondono a molteplici interpretazioni per la stessa sequenza di stroke della parola incognita, tutte tali sequenze corrispondenti sono conservate e classificate in base alla loro affidabilità . In questo modo, dopo aver effettuato la corrispondenza (matching) della parola incognita con tutti i riferimenti, à ̈ disponibile un insieme di interpretazioni per ogni sequenza di stroke della parola incognita. L’Algoritmo 7 riassume formalmente la procedura che esegue la corrispondenza (matching) della traccia di inchiostro in linguaggio pseudo-naturale (inglese), in cui SAVEà ̈ il valore precedentemente indicato con Î1⁄4(S).
Calcolare la matrice della distanza WED verificando la compatibilità degli stroke For each k from K to 2
Trovare tutte le sequenze di stroke di lunghezza k;
Calcolare la mappa S di salienza
If (Sij< SAVE) then
Sij=0
Estrarre le più lunghe sequenze di Sij diverse da zero in S
Algoritmo 7
Ancora con riferimento alla Figura 2, sulla base delle informazioni fornite dall’unità IM 105 e dall’unità ICR 101, l’unità funzionale WV 106 valida le possibili interpretazioni 207 suggerite dal Lexicon dinamico 204 per una parola incognita scritta a mano, calcola un punteggio (i.e. un costo) per ognuna di tali interpretazioni 207, ed infine seleziona l’interpretazione 208 con il miglior punteggio che rappresenta l’uscita finale del procedimento secondo l’invenzione.
L’unità ICR 101 fornisce una lista di coppie di valori (interpretazione, costo) per ogni frammento 201 classificato come carattere isolato, mentre l’unità IM 105 fornisce un insieme di corrispondenze per ogni frammento 202 classificato come porzione di scrittura corsiva. Pertanto, per assegnare un punteggio ad ogni interpretazione, l’unità WV 106 calcola il costo per ogni frammento 202 classificato come porzione di scrittura corsiva sulla base delle corrispondenze ricevute.
Il problema del calcolo del costo di un frammento 202 classificato come porzione di scrittura corsiva à ̈ riformulato come ricerca della sequenza meno costosa e più esaustiva di corrispondenze per il frammento stesso. Ogni corrispondenza à ̈ una sequenza di stroke, descritta da uno stroke iniziale e da uno stroke finale e da un’etichetta corrispondente alla sequenza di caratteri (o n-gramma) codificato dalla sequenza. Nell’esempio mostrato in Figura 15, la sequenza 1-5 e la sequenza 9-11 della parola incognita “into†scritta a mano vengono etichettate, rispettivamente, come “innnn†e come “nnn†.
La sequenza desiderata di corrispondenze à ̈ definita come quella sequenza che:
- comprende la maggior parte degli stroke etichettati;
- fornisce una interpretazione, ottenuta collegando insieme le etichette di ogni corrispondenza, che à ̈ la più vicina possibile a quella fornita dal Lexicon dinamico 204; ed
- ha il minor costo, ottenuto combinando il costo di ogni corrispondenza.
La Figura 18 mostra un esempio di applicazione dell’unità WV 106, in cui sono elencate cinque corrispondenze di una (porzione di) parola incognita (mostrata superiormente in ognuna delle cinque corrispondenze e corrispondente alla porzione di parola “iana†scritta a mano) con cinque trascrizioni di riferimento appartenenti al Lexicon dinamico 204, per ogni corrispondenza essendo riportati lo stroke iniziale, lo stroke finale e l’etichetta (in ognuna delle cinque corrispondenze di Figura 18 gli stroke corrispondenti sono disegnati con tratto continuo, mentre quelli non corrispondenti sono disegnati con tratto puntinato). La Tabella 4 mostra i 17 stroke della (porzione di) parola incognita, numerati da 0 a 16, ed il numero di corrispondenze fornito dall’unità funzionale IM 105 per ognuna delle cinque trascrizioni di riferimento, mostrando altresì per ogni stroke la trascrizione del carattere cui tale stroke appartiene.
STROKE
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 26 volte i i a a a a a
10 volte a a a a n n n n
7 volte n n n n n
14 volte n n n n a a a a a 9 volte a a a a a n n n
Tabella 4
La sequenza da validare viene calcolata dall’unità WV 106 verificando l’esistenza di un percorso in un grafo orientato pesato in cui i nodi sono le corrispondenze e gli archi sono i possibili collegamenti tra coppie di corrispondenze consecutive; a titolo esemplificativo, la Figura 19 mostra il grafo orientato pesato associato alle corrispondenze di Figura 18. In tale grafo orientato pesato, ogni percorso à ̈ associato alla stringa ottenuta unendo le etichette di ogni nodo attraversato lungo il percorso (i nodi “Start†e “Stop†indicano rispettivamente il nodo sorgente ed il nodo destinazione dei percorsi). Se esiste un percorso la cui stringa associata corrisponde all’interpretazione fornita dal Lexicon dinamico 204, l’unità WV 106 accetta l’interpretazione ed il suo costo à ̈ impostato come il costo del percorso associato.
La costruzione del grafo à ̈ guidata dalla interpretazione fornita dal Lexicon dinamico 204. I nodi del grafo sono individuati sulla base delle seguenti tre regole, che tengono conto del fatto che ci possono essere più corrispondenze associate alla stessa sequenza di stroke della (porzione di) parola incognita:
1) una corrispondenza diventa un nodo se la sua etichetta à ̈ una sottostringa contenuta all’interno dell’interpretazione associata al frammento 202 classificato come porzione di scrittura corsiva;
2) due o più corrispondenze sono unite in una singola corrispondenza se sono completamente sovrapposte ed hanno in comune la medesima etichetta; 3) due corrispondenze sono associate a nodi diversi se non sono sovrapposte o se sono parzialmente sovrapposte e le etichette degli stroke sovrapposte sono diverse.
Il costo assegnato ad ogni nodo introdotto dalle regole 1)-3) di cui sopra à ̈ uguale alla differenza tra il numero massimo di corrispondenze assegnate ad uno dei nodi identificato come sopra dall’unità funzionale IM 105 per quel particolare frammento 202 classificato come porzione di scrittura corsiva e il numero di corrispondenze associato ad ogni nodo, come riportato in Tabella 5 per le corrispondenze di Tabella 4,
NODI
ia (N1) an (N2) n (N3) na (N4) an (N5)
COSTO 0 16 19 12 17
Tabella 5
Per quanto concerne gli archi del grafo, essi sono determinati sulla base delle seguenti tre regole:
4) un arco tra due nodi à ̈ creato se e solo se le sequenze associate ai due nodi non sono sovrapposte e l’unione delle sequenze dà luogo ad una sottostringa contenuta all’interno dell’interpretazione associata al frammento 202 classificato come porzione di scrittura corsiva;
5) un arco tra due nodi à ̈ creato se e solo se le sequenze associate ai due nodi sono sovrapposte per al più b stroke, gli stroke sovrapposti hanno la stessa etichetta e l’unione delle sequenze dà luogo ad una sottostringa contenuta all’interno dell’interpretazione associata al frammento 202 classificato come porzione di scrittura corsiva;
6) vengono inseriti un nodo sorgente virtuale (Start) e un nodo destinazione virtuale (Stop) per ottenere un grafo connesso; il nodo sorgente virtuale à ̈ collegato ad ogni nodo che, dopo l’applicazione delle regole 4 e 5 precedenti, rimane senza arco di ingresso; analogamente, ogni nodo che, dopo l’applicazione delle regole 4 e 5 precedenti, rimane senza un arco di uscita à ̈ collegato al nodo destinazione virtuale.
Per determinare i costi da associare agli archi introdotti nel grafo dalle regole, si considera che la maggior parte delle volte, le corrispondenze o si sovrappongono l’una con l’altra parzialmente oppure ci sono spazi vuoti tra di loro, dato che alcuni stroke possono ricevere etichette differenti mentre altri non ricevono alcuna etichetta dall’unità IM 105. Allo scopo di tenere conto delle sovrapposizioni e/o degli spazi vuoti tra i nodi collegati, il costo di ogni arco dipende dalla lunghezza delle sovrapposizioni/degli spazi vuoti tra le corrispondenze. In particolare, se L indica la lunghezza della sovrapposizione/dello spazio vuoto e Llowindica la lunghezza del nodo meno costoso della coppia, Nhighil nodo del grafo con il più alto costo e Lhighla sua lunghezza, il costo per l’arco Aijche va dal nodo Nial nodo Njà ̈ definito come segue:
dove cost(nodo) Ã ̈ il costo del nodo. La Tabella 6 mostra gli archi del grafo e i costi ad essi associati secondo il procedimento descritto. Gli elementi della Tabella 6 cui non corrispondono costi sono relativi a coppie di nodi non connessi da archi.
NODI
N1N2N3N4N5Stop start 0 0 30.4 11.4
N13.8 0
N219 N315.2 N43.8 N522.8
Tabella 6
La Figura 19 mostra il grafo che si ottiene sulla base delle informazioni riportate nelle Tabelle 5 e 6. In Figura 19 à ̈ evidenziato, a titolo esemplificativo, come l’arco tra i nodi N1 ed N2 non viene creato per effetto della regola 4.
Di conseguenza, il costo Cijdel percorso che va dal nodo i al nodo j à ̈ pari a:
L’unità WV 106 effettua la validazione e calcola il punteggio dell’interpretazione associata al frammento 202 classificato come porzione di scrittura corsiva tramite l’algoritmo descritto da J.Y. Yen in “Finding the k shortest loopless paths in a network†, Management Science, 17(11), 1971, pp. 712-716. Nell’esempio di Figure 18 e 19, l’unità WV 106 fornisce come interpretazione 208 di punteggio maggiore l’interpretazione "iana" suggerita dal Lexicon dinamico 204.
Dopo che un costo à ̈ stato assegnato a tutti i frammenti 202 classificati come porzioni di scrittura corsiva appartenenti alla (immagine 200 della) traccia, l’unità WV 106 calcola il punteggio dell’interpretazione della parola incognita sommando i costi di ogni frammento 201 classificato come carattere isolato e di ogni frammento 202 classificato come tratto corsivo, come illustrato nell’esempio di Figura 20, cui si riferisce l’esempio di Figure 18 e 19, che à ̈ immediatamente comprensibile alla luce di quanto esposto sopra.
In quel che precede sono state descritte le preferite forme di realizzazione e sono state suggerite delle varianti della presente invenzione, ma à ̈ da intendersi che gli esperti del ramo potranno apportare modificazioni e cambiamenti senza con ciò uscire dal relativo ambito di protezione, come definito dalle rivendicazioni allegate.
Claims (14)
- RIVENDICAZIONI 1. Procedimento di riconoscimento di scrittura a mano comprendente una modalità di esecuzione in cui il procedimento esegue le fasi di: A. avere a disposizione almeno una immagine digitale (200) di almeno una traccia corsiva corrispondente ad almeno una parola incognita da riconoscere, detta almeno una immagine comprendendo un insieme di pixel rappresentativi di un inchiostro in almeno un primo colore su un fondo di pixel in almeno un secondo colore differente da detto almeno un primo colore, B. elaborare detta almeno una immagine digitale (200) sulla base di un Lexicon (156) comprendente una pluralità di parole note in almeno un alfabeto, C. fornire in uscita almeno una stringa di uno o più caratteri quale interpretazione (208) di detta almeno una traccia corsiva, detta almeno una stringa di caratteri essendo selezionata tra le parole note incluse nel Lexicon (156), oppure rigettare detta almeno una parola incognita, il procedimento essendo caratterizzato dal fatto che la fase B comprende le seguenti operazioni: B1. decomporre (100) detta almeno una traccia corsiva in modo da estrarre da detta almeno una immagine digitale (200) uno o più frammenti d’immagine e da classificare ognuno di detti uno o più frammenti d’immagine (201, 202) come carattere isolato o come porzione di scrittura corsiva; B2. se uno o più frammenti (201) d’immagine sono stati classificati come caratteri isolati, riconoscere (101) i caratteri isolati in detti uno o più frammenti (201) d’immagine classificati come caratteri isolati in modo da fornire una lista (203) di una o più interpretazioni per ogni frammento (201) d’immagine classificato come carattere isolato ed un costo di classificazione per ogni interpretazione e da fornire una posizione relativa per ogni frammento (201) d’immagine classificato come carattere isolato in detta almeno una traccia corsiva; B3. se uno o più frammenti (202) d’immagine sono stati classificati come por zioni di scrittura corsiva, segmentare (102) ognuno di detti uno o più frammenti (202) d’immagine classificati come porzioni di scrittura corsiva in una sequenza (206) di uno o più stroke; B4. se uno o più frammenti (201) d’immagine sono stati classificati come caratteri isolati, sulla base del Lexicon (156), di detti uno o più frammenti (201) d’immagine classificati come caratteri isolati e della loro posizione relativa in detta almeno una traccia corsiva, determinare (104A) un Lexicon dinamico (204) comprendente una o più parole note incluse nel Lexicon (156) che contengono, nelle posizioni corrispondenti a detti uno o più frammenti (201) d’immagine classificati come caratteri isolati, un carattere corrispondente alle interpretazioni contenute nelle liste (203) di una o più interpretazioni fornite per ogni frammento (201) d’immagine classificato come carattere isolato e, per ogni parola nota del Lexicon dinamico (204), un costo associato pari alla somma dei costi di classificazione delle interpretazione di ogni frammento (201) d’immagine classificato come carattere isolato corrispondente al carattere della parola nota del Lexicon dinamico (204) nella posizione corrispondente; B5. se uno o più frammenti (202) d’immagine sono stati classificati come porzioni di scrittura corsiva, sulla base del Lexicon dinamico (204) e di un Reference Set (154), il quale Reference Set (154) comprende una pluralità di sequenze (153) di stroke corrispondenti a porzioni di scrittura corsiva note e per ogni sequenza (153) di stroke corrispondente ad una porzione di scrittura corsiva nota una rispettiva trascrizione comprendente una stringa di tanti caratteri quante sono gli stroke della sequenza (153) in modo tale che ogni stroke della sequenza (153) à ̈ associato ad un carattere della rispettiva trascrizione, determinare (104B) un Reference Set dinamico (205) comprendente una o più sequenze (153) di stroke estratte dal Reference Set (154) la cui trascrizione corrisponde almeno parzialmente con una o più sotto-sequenze di due o più caratteri incluse in dette una o più parole note incluse nel Lexicon dinamico (204) nelle posizioni corrispondenti a detti uno o più frammenti (202) d’immagine classificati come porzioni di scrittura corsiva; B6. se uno o più frammenti (202) d’immagine sono stati classificati come porzioni di scrittura corsiva, confrontare (105) le sequenze (206) di uno o più stroke in cui sono stati segmentati detti uno o più frammenti (202) d’immagine classificati come porzioni di scrittura corsiva con dette una o più sequenze (153) di stroke incluse nel Reference Set dinamico (205) e, nel caso in cui un insieme di criteri di corrispondenza sia soddisfatto, fornire per ogni frammento (202) d’immagine classificato come porzione di scrittura corsiva una o più interpretazioni corsive (207); e B7. validare (106) dette una o più interpretazioni corsive (207) di detti uno o più frammenti (202) d’immagine classificati come porzioni di scrittura corsiva, se esistenti, e calcolare un costo totale di ogni parola nota del Lexicon dinamico (204) per la quale sono state trovate una o più interpretazioni corsive (207) di detti uno o più frammenti (202) d’immagine classificati come porzioni di scrittura corsiva, se esistenti, combinando il costo associato determinato nell’operazione B.3 ed i costi di dette una o più interpretazioni corsive (207); la fase C fornendo in uscita quale interpretazione (208) di detta almeno una traccia corsiva la parola nota del Lexicon dinamico (204) avente costo totale di classificazione più basso oppure rigettando detta almeno una parola incognita nel caso in cui il costo totale di classificazione più basso à ̈ superiore ad una soglia di costo.
- 2. Procedimento secondo la rivendicazione 1, caratterizzato dal fatto che l’operazione B4 determina il Lexicon dinamico (204) anche sulla base delle sequenze (206) di uno o più stroke in cui sono stati segmentati detti uno o più frammenti (202) d’immagine classificati come porzioni di scrittura corsiva, se esistenti, escludendo dal Lexicon dinamico (204) le parole note incluse nel Lexicon (156) che comprendono almeno una sequenza (153) di stroke corrispondente ad una porzione di scrittura corsiva nota del Reference Set (154), avente un numero atteso Sexpdi stroke, in una posizione corrispondente ad un frammento (202) d’immagine classificato come porzioni di scrittura corsiva, la cui sequenza (206) di uno o più stroke ha un numero effettivo Sactdi stroke, tale che la differenza tra il numero atteso Sexpdi stroke ed il numero effettivo Sactdi stroke à ̈ superiore ad una soglia di esclusione.
- 3. Procedimento secondo la rivendicazione 1 o 2, caratterizzato dal fatto che l’operazione B2 comprende, per ognuno di detti uno o più frammenti (201) d’immagine classificati come caratteri isolati, le seguenti sotto-fasi: B2.1 associare all’immagine del frammento (201) d’immagine classificato come carattere isolato un vettore di caratteristiche, il vettore di caratteristiche comprendendo preferibilmente Momenti Geometrici Centrali CGM dell’immagine del frammento (201) d’immagine classificato come carattere isolato fino al 7° ordine ed un insieme di medie dei pixel appartenenti a sotto-immagini disgiunte estratte dall’immagine del frammento (201) d’immagine classificato come carattere isolato, B2.2 eseguire una classificazione multi-esperto a L esperti E={E1, …, EL}, preferibilmente basata su almeno una rete neurale, del frammento (201) d’immagine classificato come carattere isolato per fornire L risultati {e1, ... , eL}, più preferibilmente avente L=20 esperti ottenuti utilizzando come schema di classificazione una rete neurale di tipo feed-forward addestrata con algoritmo di retropropagazione in cui 10 primi esperti sono addestrati utilizzando un insieme di addestramento di Momenti Geometrici Centrali CGM fino al 7° ordine e 10 secondi esperti sono addestrati utilizzando un insieme di addestramento di medie di pixel appartenenti a sotto-immagini disgiunte. B2.3 combinare i risultati {e1, ... , eL} della classificazione multi-esperto fornendo in uscita la lista (203) di una o più interpretazioni per il frammento (201) d’immagine classificato come carattere isolato ed un costo di classificazione per ogni interpretazione, utilizzando preferibilmente una rete bayesiana per dedurre automaticamente una distribuzione di probabilità per ogni carattere isolato noto e definendo una nuova regola di voto a maggioranza pesata, la rete bayesiana utilizzando più preferibilmente una strategia di addestramento supervisionato che osserva sia i risultati {e1, ... , eL} della classificazione multi-esperto che il carattere isolato noto c per ogni frammento d’immagine di un insieme di addestramento al fine di calcolare una probabilità congiunta p(c, e1, … , eL), in cui la rete bayesiana utilizza probabilità congiunte come pesi per combinare i risultati {e1, ... , eL} della classificazione multi-esperto, in modo tale che la rete bayesiana riconosce il carattere isolato del frammento (201) d’immagine classificato come carattere isolato interpretandolo come carattere isolato c* mediante la formula: c*=m k k ε Cax ∑kwk ri<, (1)>dove ri,kà ̈ una funzione il cui valore à ̈ 1 quando il classificatore Eiclassifica frammento (201) d’immagine classificato come carattere isolato noto k, e 0 altrimenti, mentre wkrappresenta il peso relativo al k-esimo carattere isolato noto ed à ̈ impostato pari alla probabilità congiunta: wk= p(c=k, e1, … , eL) (2) le interpretazioni essendo ordinate progressivamente e l’operazione B2 includendo nella lista (203) di una o più interpretazioni per il frammento (201) d’immagine classificato come carattere isolato la migliore interpretazione e le interpretazioni ordinate successivamente per le quali la differenza rispetto alla precedente à ̈ inferiore ad una soglia Î ̧ di interpretazione, il costo di classificazione di ogni interpretazione inclusa nella lista (203) di una o più interpretazioni essendo pari al rispettivo prodotto wkri,k.
- 4. Procedimento secondo una qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto che l’operazione B3 comprende, per ogni frammento (202) d’immagine classificato come porzione di scrittura corsiva, le seguenti sotto-fasi ordinate: B3.1 effettuare (501) una scheletrizzazione del frammento (202) d’immagine classificato come porzione di scrittura corsiva, trasformando l’inchiostro in uno scheletro comprendente una linea di larghezza pari ad un singolo pixel preferibilmente mediante trasformata asse mediano MAT, B3.2 correggere (502) distorsioni, se esistenti, introdotte dalla scheletrizzazione, preferibilmente rimuovendo rami spuri, se esistenti, ed effettuando una approssimazione poligonale di ogni ramo dello scheletro e più preferibilmente correggendo distorsioni di tipo a V e/o di tipo a X e/o di tipo a T, se esistenti, B3.3 effettuare (503) una sbrogliatura dello scheletro corretto ottenuto dalla sotto-fase B3.2, fornendo una sequenza temporale di punti che compongono l’inchiostro, B3.4 segmentare (504), sulla base della sequenza di punti di sbrogliatura, lo scheletro corretto sbrogliato ottenuto dalla sotto-fase B3.3 in una sequenza di stroke separati da punti (2031) di segmentazione, B3.5 effettuare (505) una validazione dello scheletro corretto sbrogliato segmentato ottenuto dalla sotto-fase B3.4 sulla base di un insieme di criteri di validazione e, nel caso in cui detto insieme di criteri non siano soddisfatti ripetere dalla sotto-fase B3.3 per produrre una differente sbrogliatura dello scheletro, B3.6 nel caso in cui la fase B3.5 accerti che detto insieme di criteri à ̈ soddisfatto, assegnare ad ogni stroke una caratteristica distintiva, che preferibilmente tiene conto di una forma globale dello stroke e della sua posizione relativa in detta almeno una traccia corsiva, fornendo (508) la sequenza di stroke e la corrispondente sequenza di caratteristiche.
- 5. Procedimento secondo la rivendicazione 4, caratterizzato dal fatto che la sotto-fase B3.3 fornisce la sequenza temporale dei punti dello scheletro corretto sulla base di una ricerca in un grafo, comprendente una pluralità di nodi ed una pluralità di archi di connessione tra nodi, che descrive proprietà topologiche di una polilinea associata allo scheletro corretto ottenuto dalla sotto-fase B3.2, in cui ogni nodo del grafo ha un tipo, selezionato tra punto terminale EP e punto BP di diramazione, ed un grado, pari al numero di archi di connessione che si diramano dal nodo stesso e che dipende dal numero di linee della polilinea che attraversano il nodo, la sotto-fase B3.3 comprendendo: - trasformare il grafo in un grafo semi-euleriano, selezionando i nodi iniziale e finale tra i nodi di grado dispari e trasformando tutti i rimanenti nodi di grado dispari in nodi di grado pari aggiungendo archi di connessione tra di loro, preferibilmente aggiungendo archi di connessione tra coppie di nodi dispari sulla base di un criterio di vicinanza, - ottenere la sbrogliatura selezionando un percorso all’interno del grafo semi-euleriano che attraversa tutti i nodi e che minimizza il numero di nodi attraversati più di una volta, preferibilmente mediante un algoritmo di Fleury modificato sulla base di criteri di generazione di scrittura a mano, preferibilmente ordinando gli archi di connessione partendo dal nodo iniziale e, in ogni nodo di tipo punto BP di diramazione, andando lungo gli archi di connessione secondo l’ordine seguente: a) arco semplice di connessione, che parte da un nodo di tipo punto BP di diramazione e termina in un altro nodo di tipo punto BP di diramazione; b) ciclo, che à ̈ un arco di connessione che inizia e finisce nel medesimo nodo di tipo punto BP di diramazione, c) circuito a due vie, che à ̈ un arco di connessione che parte in un nodo di tipo punto BP di diramazione e termina in un nodo terminale EP, d) circuito a tre vie, che à ̈ formato da due archi di connessione che partono e terminano nel medesimo nodo di tipo punto BP di diramazione; e) ponti, che sono archi semplici di connessione la cui rimozione disconnette il grafo.
- 6. Procedimento secondo la rivendicazione 4 o 5, caratterizzato dal fatto che la sotto-fase B3.4 segmenta lo scheletro corretto sbrogliato mediante un metodo di decomposizione che usa un concetto di salienza percettiva basato su una rappresentazione multi-scala dello scheletro corretto sbrogliato ottenuto dalla sotto-fase B3.3 che viene utilizzata per costruire una mappa di salienza per evidenziare i punti dello scheletro corretto sbrogliato in cui sono registrate variazioni di curvatura in scale diverse superiori ad una soglia di variazione di curvatura ed assumere tali punti dello scheletro corretto sbrogliato come punti (2031) di segmentazione, in cui il metodo di decomposizione preferibilmente comprende: - costruire rappresentazioni dello scheletro corretto sbrogliato utilizzando come scala ï ³ differenti livelli di risoluzione del frammento (202) d’immagine classificato come porzione di scrittura corsiva, la minima risoluzione includendo più preferibilmente tre punti per rappresentare l’intero scheletro corretto sbrogliato, - calcolare una curvatura c ( σ) ad ogni risoluzione σ: c ( σ)=limΔλ->0Δα/Δλ dove λ à ̈ un’ascissa curvilinea sullo scheletro corretto sbrogliato, - quantizzare la curvatura in Q intervalli, con Q più preferibilmente pari a 16, e codificare ciascun intervallo da una etichetta in modo tale che ad ogni scala la forma dello stroke à ̈ descritta da una stringa di tante etichette quanto à ̈ il numero di punti utilizzati per descrivere lo scheletro corretto sbrogliato meno uno; - costruire una mappa di salienza contando il numero di volte un punto dello scheletro corretto sbrogliato à ̈ un massimo locale di curvatura alle diverse scale; - selezionare come punti (2031) di segmentazione i punti di massimo locale della mappa di salienza il cui valore à ̈ maggiore alla soglia di variazione di curvatura pari alla media di valori della mappa; - selezionare la migliore scala per descrivere la forma degli stroke calcolando la distanza tra un vettore c( σ) ed un vettore <c( σ)>.
- 7. Procedimento secondo la rivendicazione 5 o secondo la rivendicazione 6, quando dipendente dalla rivendicazione 5, caratterizzato dal fatto che la sottofase B3.5 analizza la sequenza di stroke ottenuta dalla sotto-fase B3.4 per mezzo dei seguenti criteri di validazione: - individuare un errore di segmentazione quando uno stroke inizia o termina nelle vicinanze di un punto di fine od un punto di inizio di un tratto d’inchiostro, la vicinanza essendo valutata confrontando la distanza tra il punto di segmentazione e quello iniziale o finale con una soglia di distanza, preferibilmente pari a 3 pixel; - individuare un errore di segmentazione quando due o più stroke iniziano nelle vicinanze di un punto di tipo BP di diramazione, la vicinanza essendo valutata confrontando la distanza tra il punto di segmentazione ed il punto di tipo BP di diramazione con la soglia di distanza, e, se il numero di errori individuati supera una soglia di errore, preferibilmente pari a 2, la sotto-fase B3.5 rigetta lo scheletro corretto sbrogliato segmentato ottenuto dalla sotto-fase B3.4 ed il procedimento ripete la sotto-fase B3.3, mentre se il numero di errori individuati à ̈ maggiore di zero ed inferiore alla soglia di errore, il procedimento ripete la sotto-fase B3.3 sfruttando gli errori individuati per modificare: - la selezione del nodo iniziale e del nodo finale, e/o - l’introduzione di archi di connessione addizionali, e/o - la selezione del percorso all’interno del grafo semi-euleriano.
- 8. Procedimento secondo una qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto che l’operazione B6 effettua, per ogni frammento (202) d’immagine classificato come porzione di scrittura corsiva, il confronto (105) misurando la similarità della forma della sequenza (206) di uno o più stroke in cui à ̈ stato segmentato il frammento (202) d’immagine con la forma di dette una o più sequenze (153) di stroke incluse nel Reference Set dinamico (205) a scale differenti sulla base di una rappresentazione multi-scala della sequenza (206) di uno o più stroke in cui à ̈ stato segmentato il frammento (202) d’immagine che viene utilizzata per costruire una mappa di salienza per evidenziare le sequenze (153) di stroke incluse nel Reference Set dinamico (205) più simili alla sequenza (206) di uno o più stroke in cui à ̈ stato segmentato il frammento (202) d’immagine, la rappresentazione multi-scala preferibilmente utilizzando come scala di partenza la lunghezza K, pari al numero di stroke, della più lunga sequenza comune di stroke compatibili tra la sequenza (206) di uno o più stroke in cui à ̈ stato segmentato il frammento (202) d’immagine e la sequenza (153) di stroke inclusa nel Reference Set dinamico (205) con cui viene effettuato il confronto (105), le scale successive essendo ottenute considerando le sotto-sequenze di stroke compatibili di lunghezza progressivamente decrementata di 1, per cui sono ottenute K-1 mappe di similarità , il confronto (105) essendo più preferibilmente effettuato sulla base di uno o più criteri di compatibilità .
- 9. Procedimento secondo la rivendicazione 8, quando dipendente dalla rivendicazione 6, caratterizzato dal fatto che nell’operazione B6 la forma di uno stroke à ̈ descritta da un codice di catena che codifica le orientazioni dei segmenti della polilinea che descrive lo stroke alla risoluzione ï ³, e che l’operazione B6 comprende le seguenti sotto-fasi ordinate: B6.1. misurare la similarità tra due stroke mediante una distanza pesata WED di scrittura tra i rispettivi codici di catena, in cui il codice di catena di lunghezza Lminpiù corta tra i due da comparare viene stirato fino al codice di catena di lunghezza Lmaxpiù lunga, preferibilmente in modo che da calcolare la parte intera I del rapporto (Lmax/Lmin) ed ogni simbolo del codice di catena più corto viene replicato per (I-1) volte ed i restanti ((Lmax- Lmin)·I) simboli vengono aggiunti posizionandoli uniformemente nel codice di catena stirato, la distanza WED tra un primo codice di catena X=(x1, x2, …, xL) ed un secondo codice di catena Y =(y1, y2, …, yL) essendo pari a:  L y SD  i )  maxï€ïƒ¥ ED(x  i,  ïƒ ̈ L ïƒ ̧ WED(X,Y )ï€1⁄2 WED iï€1⁄2 1 max   SD max    [W1] dove: - ED(xi,yi) à ̈ la distanza simmetrica di scrittura tra il simbolo xidel primo codice di catena ed il simbolo yidel second codice di catena, - L à ̈ la lunghezza dei codici di catena X e Y, - SDmaxà ̈ la distanza massima tra due simboli, preferibilmente pari a 8, e - WEDmaxà ̈ la distanza WED massima, preferibilmente pari a 100, B6.2 calcolare il valore medioï (WED) sui valori WEDijche sono diversi da zero, B6.3 inizializzare gli NxM elementi Sijdella mappa S di salienza a zero, B6.4 individuare la lunghezza K della più lunga sequenza comune di stroke compatibili e, per ogni coppia di stroke p e q di tale sequenza tale che WEDpq> Î1⁄4(WED), incrementare di una unità la salienza della coppia di stroke p e q, i.e.: Spq= Spq+1, B6.5 decrementare di una unità la lunghezza K (i.e. K=K-1) e, finché la lunghezza K à ̈ maggiore o uguale a 2 (i.e. K ≥ 2), ricercare le sequenze di lunghezza K e ripetere dalla sotto-fase B6.1, B6.6 calcolare il valore medio Î1⁄4(S) sui valori Sijche sono diversi da zero, B6.7 selezionare secondo un criterio di corrispondenza una o più sequenze (153) di stroke incluse nel Reference Set dinamico (205) più simili alla sequenza (206) di uno o più stroke in cui à ̈ stato segmentato il frammento (202) d’immagine come interpretazione corsiva (207), il costo per ogni interpretazione corsiva (207) essendo pari al valore medio della distanza WED della sequenza (153) di stroke inclusa nel Reference Set dinamico (205) dalla sequenza (206) di uno o più stroke in cui à ̈ stato segmentato il frammento (202) d’immagine.
- 10. Procedimento secondo una qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto che l’operazione B7 comprende le seguenti sotto-fasi: B7.1 costruire un grafo orientato pesato i cui i nodi sono le corrispondenze tra stroke della sequenza (206) di uno o più stroke in cui à ̈ stato segmentato il frammento (202) d’immagine classificato come porzione di scrittura corsiva e la sequenza (153) di stroke inclusa nel Reference Set dinamico (205), ad ogni nodo essendo associata un’etichetta corrispondente alla sequenza di caratteri codificata dalla sequenza di stroke corrispondenti, ed i cui archi sono i possibili collegamenti tra coppie di corrispondenze consecutive, ogni percorso del grafo essendo associato ad una stringa ottenuta unendo le etichette di ogni nodo attraversato lungo il percorso, i nodi del grafo essendo preferibilmente determinati sulla base delle seguenti tre regole: 1) una corrispondenza diventa un nodo se la sua etichetta à ̈ una sottostringa contenuta all’interno dell’interpretazione corsiva (207) del frammento (202) d’immagine classificato come porzione di scrittura corsiva; 2) due o più corrispondenze sono unite in una singola corrispondenza se sono completamente sovrapposte ed hanno in comune la medesima etichetta; 3) due corrispondenze sono associate a nodi diversi se non sono sovrapposte o se sono parzialmente sovrapposte e le etichette degli stroke sovrapposte sono diverse, ed il costo assegnato ai nodi determinati da tali tre regole essendo preferibilmente uguale, per ogni nodo, alla differenza tra il numero massimo di corrispondenze assegnate ad uno dei nodi per il frammento (202) d’immagine classificato come porzione di scrittura corsiva ed il numero di corrispondenze associato al nodo del grafo, gli archi del grafo essendo determinati sulla base delle seguenti tre regole: 4) un arco tra due nodi à ̈ creato se e solo se le sequenze associate ai due nodi collegati dall’arco non sono sovrapposte e l’unione delle sequenze dà luogo ad una sottostringa contenuta all’interno dell’interpretazione corsiva (207) del frammento (202) d’immagine classificato come porzione di scrittura corsiva; 5) un arco tra due nodi à ̈ creato se e solo se le sequenze associate ai due nodi collegati dall’arco sono sovrapposte per al più un numero massimo b di stroke, gli stroke sovrapposti hanno la stessa etichetta e l’unione delle sequenze dà luogo ad una sottostringa contenuta all’interno dell’interpretazione corsiva (207) del frammento (202) d’immagine classificato come porzione di scrittura corsiva; 6) dopo avere inserito un nodo sorgente virtuale ed un nodo destinazione virtuale per ottenere un grafo connesso, il nodo sorgente virtuale à ̈ collegato ad ogni nodo che, dopo l’applicazione delle regole 4 e 5, rimane senza arco di ingresso ed ogni nodo che, dopo l’applicazione delle regole 4 e 5, rimane senza un arco di uscita à ̈ collegato al nodo destinazione virtuale, ed il costo assegnato agli archi determinati da tali tre regole essendo preferibilmente dipendente dalla lunghezza delle sovrapposizioni e degli spazi vuoti tra le corrispondenze, per cui il costo per l’arco Aijche va dal nodo Nial nodo Njà ̈ pari a dove L indica la lunghezza della sovrapposizione o dello spazio vuoto, Llowindica la lunghezza del nodo meno costoso della coppia, Nhighil nodo del grafo con il più alto costo e Lhighla sua lunghezza, e cost(N) à ̈ il costo del nodo, il costo Cijdel percorso che va dal nodo Nial nodo Njessendo pari a: B7.2 verificare l’esistenza di un percorso la cui stringa associata corrisponde all’interpretazione corsiva (207), ed in caso di esito positivo della verifica accettare l’interpretazione corsiva (207).
- 11. Procedimento secondo una qualsiasi delle precedenti rivendicazioni, comprendente altresì una modalità di configurazione in cui il procedimento esegue le fasi di: D. avere a disposizione una pluralità di immagini digitali di un insieme Setup Set (150) di addestramento di tracce corsive corrispondenti a parole note, detta almeno una immagine comprendendo un insieme di pixel rappresentativi di un inchiostro in almeno un primo colore su un fondo di pixel in almeno un secondo colore differente da detto almeno un primo colore, E. decomporre (100) dette tracce corsive delle immagini digitali dell’insieme Setup Set (150) in modo da estrarre uno o più frammenti d’immagine e da classificare ognuno di detti uno o più frammenti d’immagine come carattere isolato o come porzione di scrittura corsiva, i frammenti d’immagine classificati come caratteri isolati formando un insieme (151) di addestramento dei caratteri ed i frammenti d’immagine classificati come porzioni di scrittura corsiva formando un insieme (152) di addestramento corsivo, F. addestrare un motore (155) di classificazione di caratteri isolati con insieme (151) di addestramento dei caratteri, G. segmentare (102) ognuno di detti frammenti d’immagine classificati come porzioni di scrittura corsiva in una sequenza (153) di uno o più stroke, H. associare (103) ad ogni sequenza (153) di uno o più stroke ottenuta dalla fase G la sua trascrizione, in modo tale che ogni stroke sia associato al carattere della trascrizione cui appartiene, le sequenze (153) di uno o più stroke ottenute dalla fase G e le rispettive trascrizioni formando il Reference Set (154), la fase H preferibilmente comprendendo le seguenti sotto-fasi: H1. generare (1200) distribuzioni, in cui le sequenze (153) di uno o più stroke ottenute dalla fase G e le rispettive trascrizioni sono utilizzate per generare, per ogni carattere dell’alfabeto del Lexicon (156), una serie di funzioni (1251) di massa di probabilità il cui numero à ̈ pari al numero C di caratteri dell’alfabeto del Lexicon (156), H2. analizzare (1201) caratteristiche delle sequenze (153) di uno o più stroke ottenute dalla fase G, in cui viene individuato un insieme di punti (1252) di ancoraggio attraverso l’analisi di caratteristiche associate agli stroke, ognuno dei quali punti (1252) di ancoraggio rappresenta l’inizio o la fine di un carattere in una sotto-sequenza in cui può essere suddivisa una sequenza (153) di uno o più stroke ottenute dalla fase G, H3. associare (1202) etichette, in cui, in conformità ai punti (1252) di ancoraggio, vengono individuate le trascrizioni (1253) delle porzioni di dette di tracce corsive separate dai punti (1252) di ancoraggio, tramite le funzioni (1251) di massa di probabilità , associando ogni stroke alla trascrizione del carattere cui appartiene, la sotto-fase H1 più preferibilmente generando una funzione (1251) di massa di probabilità per ogni carattere, che rappresenta la probabilità che un carattere sia composto da un certo numero di stroke, le funzioni (1251) di massa di probabilità essendo ottenute risolvendo un insieme di sistemi di equazioni lineari in cui ogni equazione à ̈ ottenuta da un tratto (2032) di inchiostro segmentato considerando il numero nchardi stroke di ogni carattere come una variabile incognita, le occorrenze xchardi ogni carattere come coefficienti, ed il numero nstrokesdi stroke del tratto (2032) di inchiostro segmentato come termine noto: nαxα+ . nzxz+nAxA+ . nZxZ+ = n strokes ogni sistema di equazioni lineari essendo costituito da k equazioni, con k ≥ C, dove C à ̈ il numero di caratteri dell’alfabeto dell’alfabeto del Lexicon (156), e di C variabili incognite, per cui risolvendo un insieme di m sistemi, si ottengono m vettori di soluzioni ognuno comprendente C elementi, ad ogni i-esimo vettore di soluzione, con i variabile da 1 a m, essendo attribuito un corrispondente vettore di parametri di affidabilità R, avente C elementi ognuno dei quali à ̈ pari al rapporto tra l’occorrenza del corrispondente carattere all’interno del sistema di equazioni e della deviazione della soluzione considerata per quel carattere dalla media delle soluzioni per quel carattere: n Rc , iï€1⁄2 c , i m r rc,i ï‚ ́ nc , iï€ïƒ¥ c,j ï‚ ́ nc , j jï€1⁄2 1 m dove: - nc,ià ̈ l’occorrenza del c-esimo carattere all’interno dell’i-esimo sistema; e - rc,ià ̈ il numero di stroke, ottenuto risolvendo l’i-esimo sistema, che compongono il c-esimo carattere, le distribuzioni essendo create in base agli m vettori di soluzioni ed ai corrispondenti vettori di parametri di affidabilità R.
- 12. Apparato computerizzato, in particolare computer o rete di computer, per il riconoscimento di scrittura a mano, caratterizzato dal fatto di comprendere mezzi di elaborazione atti ad eseguire il procedimento di riconoscimento di scrittura a mano secondo una qualsiasi delle rivendicazioni da 1 a 11.
- 13. Insieme di uno o più programmi per elaboratore comprendente mezzi a codice atti ad eseguire, quando operano su mezzi di elaborazione di un apparato computerizzato, il procedimento di riconoscimento di scrittura a mano secondo una qualsiasi delle rivendicazioni da 1 a 11.
- 14. Insieme di uno o più supporti di memoria leggibili da un elaboratore, aventi un insieme di uno o più programmi per elaboratore memorizzati su di essi, caratterizzato dal fatto che l’insieme di uno o più programmi per elaboratore à ̈ l’insieme di uno o più programmi per elaboratore secondo la rivendicazione 13.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT000022A ITRM20130022A1 (it) | 2013-01-11 | 2013-01-11 | Procedimento e apparato di riconoscimento di scrittura a mano |
EP14706082.6A EP2943911B1 (en) | 2013-01-11 | 2014-01-11 | Process of handwriting recognition and related apparatus |
PCT/IB2014/058194 WO2014108866A1 (en) | 2013-01-11 | 2014-01-11 | Process of handwriting recognition and related apparatus |
US14/760,236 US9665768B2 (en) | 2013-01-11 | 2014-01-11 | Process of handwriting recognition and related apparatus |
IL239834A IL239834B (en) | 2013-01-11 | 2015-07-08 | A process for identifying handwriting and related instruments |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT000022A ITRM20130022A1 (it) | 2013-01-11 | 2013-01-11 | Procedimento e apparato di riconoscimento di scrittura a mano |
Publications (1)
Publication Number | Publication Date |
---|---|
ITRM20130022A1 true ITRM20130022A1 (it) | 2014-07-12 |
Family
ID=49457033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
IT000022A ITRM20130022A1 (it) | 2013-01-11 | 2013-01-11 | Procedimento e apparato di riconoscimento di scrittura a mano |
Country Status (5)
Country | Link |
---|---|
US (1) | US9665768B2 (it) |
EP (1) | EP2943911B1 (it) |
IL (1) | IL239834B (it) |
IT (1) | ITRM20130022A1 (it) |
WO (1) | WO2014108866A1 (it) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015167556A1 (en) * | 2014-04-30 | 2015-11-05 | Hewlett-Packard Development Company, L.P. | Generating color similarity measures |
US10643067B2 (en) * | 2015-10-19 | 2020-05-05 | Myscript | System and method of handwriting recognition in diagrams |
US10032072B1 (en) * | 2016-06-21 | 2018-07-24 | A9.Com, Inc. | Text recognition and localization with deep learning |
US10163004B2 (en) * | 2017-03-30 | 2018-12-25 | Konica Minolta Laboratory U.S.A., Inc. | Inferring stroke information from an image |
US10579893B2 (en) | 2017-02-28 | 2020-03-03 | Konica Minolta Laboratory U.S.A., Inc. | Inferring stroke information from an image |
US10579868B2 (en) * | 2017-03-30 | 2020-03-03 | Myscript | System and method for recognition of objects from ink elements |
US10275646B2 (en) * | 2017-08-03 | 2019-04-30 | Gyrfalcon Technology Inc. | Motion recognition via a two-dimensional symbol having multiple ideograms contained therein |
FR3077656A1 (fr) * | 2018-02-07 | 2019-08-09 | Christophe Leveque | Procede de transformation d’une sequence pour la rendre executable par une machine |
CN108563984B (zh) * | 2018-03-02 | 2021-12-03 | 山东科技大学 | 一种流程模型图的自动识别与理解方法 |
US10878269B2 (en) | 2018-06-19 | 2020-12-29 | Sap Se | Data extraction using neural networks |
US10824811B2 (en) * | 2018-08-01 | 2020-11-03 | Sap Se | Machine learning data extraction algorithms |
EP3621039A1 (en) * | 2018-09-06 | 2020-03-11 | Tata Consultancy Services Limited | Real time overlay placement in videos for augmented reality applications |
US11189066B1 (en) * | 2018-11-13 | 2021-11-30 | Adobe Inc. | Systems and methods of learning visual importance for graphic design and data visualization |
EP3908962A1 (en) * | 2019-01-11 | 2021-11-17 | Institut Mines Telecom | Method for generating information about the production of a handwritten, hand-affixed or printed trace |
CN110458145B (zh) * | 2019-08-22 | 2022-12-27 | 司法鉴定科学研究院 | 一种基于二维动态特征的离线笔迹个体识别系统及方法 |
CN110992441A (zh) * | 2019-12-03 | 2020-04-10 | 上海眼控科技股份有限公司 | 书写轨迹处理方法及装置 |
CN113127637A (zh) * | 2019-12-31 | 2021-07-16 | 中兴通讯股份有限公司 | 一种字符的还原方法及装置、存储介质、电子装置 |
US11562590B2 (en) | 2020-05-21 | 2023-01-24 | Sap Se | Real-time data item prediction |
CN111949157B (zh) * | 2020-07-30 | 2024-07-19 | 通彩视听科技(上海)有限公司 | 仿真书写笔迹处理方法、计算机设备及存储介质 |
CN112613512B (zh) * | 2020-12-29 | 2022-08-12 | 西北民族大学 | 基于结构属性的乌金体藏文古籍字符切分方法及系统 |
US20230343125A1 (en) * | 2021-02-01 | 2023-10-26 | Boe Technology Group Co., Ltd. | Handwriting Recognition Method and Apparatus, Handwriting Recognition System and Interactive Display |
CN112990349B (zh) * | 2021-04-09 | 2023-06-27 | 北京有竹居网络技术有限公司 | 书写质量评价方法、装置和电子设备 |
CN112990183B (zh) * | 2021-05-19 | 2021-08-10 | 中国科学院自动化研究所 | 离线手写汉字同名笔画提取方法、系统、装置 |
AU2022306260A1 (en) * | 2021-07-09 | 2024-02-22 | Ancestry.Com Operations Inc. | Handwriting recognition pipelines for genealogical records |
CN113642542B (zh) * | 2021-10-14 | 2022-02-08 | 中国科学院自动化研究所 | 基于位置约束的手写汉字同名笔画提取方法 |
CN114510158B (zh) * | 2021-12-08 | 2022-12-30 | 深圳市康冠商用科技有限公司 | 电子笔画纠错方法、装置、触摸屏设备及存储介质 |
CN115880699B (zh) * | 2023-03-03 | 2023-05-09 | 济南市莱芜区综合检验检测中心 | 一种食品包装袋检测方法及系统 |
CN117728960B (zh) * | 2024-02-07 | 2024-05-07 | 中国标准化研究院 | 一种基于电子签名的标准数据数字化转换验证方法和系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6282486A (ja) | 1985-10-08 | 1987-04-15 | Hitachi Ltd | オンライン手書き図形認識装置 |
JP2669575B2 (ja) | 1991-04-19 | 1997-10-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ入力方法及び装置 |
US5307423A (en) | 1992-06-04 | 1994-04-26 | Digicomp Research Corporation | Machine recognition of handwritten character strings such as postal zip codes or dollar amount on bank checks |
US5515455A (en) | 1992-09-02 | 1996-05-07 | The Research Foundation Of State University Of New York At Buffalo | System for recognizing handwritten words of cursive script |
FR2766287B1 (fr) | 1997-07-15 | 1999-10-15 | Eolas | Procede de reconnaissance de caracteres manuscrits |
US6754386B1 (en) | 2000-08-22 | 2004-06-22 | Microsft Corporation | Method and system of matching ink processor and recognizer word breaks |
US7996589B2 (en) | 2005-04-22 | 2011-08-09 | Microsoft Corporation | Auto-suggest lists and handwritten input |
US8005294B2 (en) * | 2006-11-29 | 2011-08-23 | The Mitre Corporation | Cursive character handwriting recognition system and method |
-
2013
- 2013-01-11 IT IT000022A patent/ITRM20130022A1/it unknown
-
2014
- 2014-01-11 EP EP14706082.6A patent/EP2943911B1/en active Active
- 2014-01-11 US US14/760,236 patent/US9665768B2/en active Active
- 2014-01-11 WO PCT/IB2014/058194 patent/WO2014108866A1/en active Application Filing
-
2015
- 2015-07-08 IL IL239834A patent/IL239834B/en active IP Right Grant
Non-Patent Citations (8)
Title |
---|
BOCCIGNONE G: "RECOVERING DYNAMIC INFORMATION FROM STATIC HANDWRITING", PATTERN RECOGNITION, ELSEVIER, GB, vol. 26, no. 3, 1 March 1993 (1993-03-01), pages 409 - 418, XP000367313, ISSN: 0031-3203, DOI: 10.1016/0031-3203(93)90168-V * |
CLAUDIO DE STEFANO ET AL: "Reading Cursive Handwriting", FRONTIERS IN HANDWRITING RECOGNITION (ICFHR), 2010 INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 16 November 2010 (2010-11-16), pages 95 - 100, XP031853813, ISBN: 978-1-4244-8353-2 * |
CLAVELLI A ET AL: "Indexing and retrieving cursive documents without recognition", 19TH INTERNATIONAL CONFERENCE ON PATTERN RECOGNITION, 2008: ICPR 2008; 8 - 11 DEC. 2008, TAMPA, FLORIDA, USA, IEEE, PISCATAWAY, NJ, 8 December 2008 (2008-12-08), pages 1 - 4, XP031412426, ISBN: 978-1-4244-2174-9 * |
CORDELLA L P ET AL: "Writing Order Recovery from Off-Line Handwriting by Graph Traversal", PATTERN RECOGNITION (ICPR), 2010 20TH INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 23 August 2010 (2010-08-23), pages 1896 - 1899, XP031772166, ISBN: 978-1-4244-7542-1 * |
FOGGIA P ET AL: "Character recognition by geometrical moments on structural decompositions", PROCEEDINGS OF THE 4TH INTERNATIONAL CONFERENCE ON DOCUMENT ANALYSIS AND RECOGNITION. (ICDAR). ULM, GERMANY, AUG. 18 - 20, 1997; [PROCEEDINGS OF THE ICDAR], LOS ALAMITOS, IEEE COMP. SOC, US, vol. 1, 18 August 1997 (1997-08-18), pages 6 - 10, XP010244673, ISBN: 978-0-8186-7898-1, DOI: 10.1109/ICDAR.1997.619804 * |
IMPEDOVO D ET AL: "Handwritten Signature Verification: New Advancements and Open Issues", FRONTIERS IN HANDWRITING RECOGNITION (ICFHR), 2012 INTERNATIONAL CONFERENCE ON, IEEE, 18 September 2012 (2012-09-18), pages 367 - 372, XP032322838, ISBN: 978-1-4673-2262-1, DOI: 10.1109/ICFHR.2012.211 * |
R PLAMONDON ET AL: "Online and off-line handwriting recognition: a comprehensive survey", IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, 1 January 2000 (2000-01-01), pages 63 - 84, XP055094583, Retrieved from the Internet <URL:http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=824821> [retrieved on 20140113], DOI: 10.1109/34.824821 * |
TAL STEINHERZ ET AL: "Offline cursive script word recognition - a survey", INTERNATIONAL JOURNAL ON DOCUMENT ANALYSIS AND RECOGNITION, 1 December 1999 (1999-12-01), Berlin Heidelberg, pages 90 - 110, XP055094595, Retrieved from the Internet <URL:http://delta-apache-vm.cs.tau.ac.il/~nin/papers/ijdar99.pdf> [retrieved on 20140113], DOI: 10.1007/s100320050040 * |
Also Published As
Publication number | Publication date |
---|---|
WO2014108866A1 (en) | 2014-07-17 |
US9665768B2 (en) | 2017-05-30 |
IL239834B (en) | 2018-07-31 |
IL239834A0 (en) | 2015-08-31 |
EP2943911A1 (en) | 2015-11-18 |
EP2943911B1 (en) | 2020-03-18 |
US20150339525A1 (en) | 2015-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ITRM20130022A1 (it) | Procedimento e apparato di riconoscimento di scrittura a mano | |
US20210034850A1 (en) | System and method of character recognition using fully convolutional neural networks with attention | |
US10936862B2 (en) | System and method of character recognition using fully convolutional neural networks | |
JP5071914B2 (ja) | 認識グラフ | |
Harouni et al. | Online Persian/Arabic script classification without contextual information | |
CN109685065B (zh) | 试卷内容自动分类的版面分析方法、系统 | |
WO2018090011A1 (en) | System and method of character recognition using fully convolutional neural networks | |
Hussain et al. | Nastalique segmentation-based approach for Urdu OCR | |
Saba et al. | Online versus offline Arabic script classification | |
Chherawala et al. | TSV-LR: topological signature vector-based lexicon reduction for fast recognition of pre-modern Arabic subwords | |
Arnia et al. | Moment invariant-based features for Jawi character recognition | |
Mukherjee et al. | Fusion of spatio-temporal information for indic word recognition combining online and offline text data | |
Kang et al. | Template based segmentation of touching components in handwritten text lines | |
Pasha et al. | Recognition of handwritten Kannada characters using hybrid features | |
Bahashwan et al. | Efficient segmentation of arabic handwritten characters using structural features. | |
Kim et al. | Legal amount recognition based on the segmentation hypotheses for bank check processing | |
Bharathi et al. | Improvement of Telugu OCR by segmentation of Touching Characters | |
Malik | A Graph Based Approach for Handwritten Devanagri Word Recogntion | |
Aghdam et al. | A unified framework for coarse-to-fine recognition of traffic signs using bayesian network and visual attributes | |
Duth et al. | Recognition of hand written and printed text of cursive writing utilizing optical character recognition | |
Boukharouba et al. | Recognition of handwritten Arabic literal amounts using a hybrid approach | |
Kumar et al. | A survey on touching character segmentation | |
Dhandra et al. | On Separation of English Numerals from Multilingual Document Images. | |
JP2009259190A (ja) | 文字認識プログラムおよび文字認識装置 | |
Ray et al. | Character recognition using conditional random field based recognition engine |