DE69515371T2 - Suche und Vergleich von nicht-erkannter Handschrift - Google Patents
Suche und Vergleich von nicht-erkannter HandschriftInfo
- Publication number
- DE69515371T2 DE69515371T2 DE69515371T DE69515371T DE69515371T2 DE 69515371 T2 DE69515371 T2 DE 69515371T2 DE 69515371 T DE69515371 T DE 69515371T DE 69515371 T DE69515371 T DE 69515371T DE 69515371 T2 DE69515371 T2 DE 69515371T2
- Authority
- DE
- Germany
- Prior art keywords
- scribble
- data
- corpus
- sequence
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 102100021674 Protein scribble homolog Human genes 0.000 claims description 259
- 101710169810 Protein scribble homolog Proteins 0.000 claims description 259
- 238000000034 method Methods 0.000 claims description 56
- 230000033001 locomotion Effects 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 14
- 238000003860 storage Methods 0.000 claims description 7
- 238000013500 data storage Methods 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 34
- 230000008569 process Effects 0.000 description 20
- 238000013480 data collection Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000012952 Resampling Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000000875 corresponding effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000033458 reproduction Effects 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 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/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/20—Movements or behaviour, e.g. gesture recognition
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Social Psychology (AREA)
- Psychiatry (AREA)
- Health & Medical Sciences (AREA)
- User Interface Of Digital Computer (AREA)
- Character Discrimination (AREA)
Description
- Die vorliegende Erfindung betrifft allgemein Informationsverarbeitung in Systemen, die Krakel als Eingabe akzeptieren, und insbesondere ein System und ein Verfahren zum Aufzeichnen eines auf Krakeln basierenden Targetdaten-Gegenstandes für einen substantiell identischen Daten-Gegenstand oder für mehrere solche Daten-Gegenstände in einer Datenstruktur von auf Krakeln basierenden Daten, ohne Ausführen von herkömmlichen Erkennungstechniken an den auf Krakeln basierenden Daten.
- Einige prozessorgesteuerte Informationssysteme, wie z. B. tragbare Rechengeräte, die unterschiedlich als Notebook-Computer, persönliche Digitalassistenten (personal digital assistants PDAs), persönliche Nachrichtenübermittler oder persönliche Interaktiv-Geräte bekannt sind, verwenden ein stiftartiges Eingabegerät, um Daten in Form von herkömmlichen Blockbuchstaben oder handschriftartigen Zeichen ähnelnden Krakeln oder in Form von grafischen Bildern, Formen oder Symbolen einzugeben. Bei einigen Programmen werden die Krakeldaten so gespeichert, wie sie eingegeben werden. Typischerweise sind jedoch die auf Krakel basierenden Daten nur in einer Datenform vorhanden, die als von begrenzter oder keiner vorhandenen Nützlichkeit angesehen wird, und werden dann beseitigt, sobald sie in eine übliche in einem Prozessor nutzbare Datenform gewandelt sind. So wird bei vielen Behandlungssystemen für auf Krakeln basierenden Daten angenommen, dass es notwendig ist, Erkennungsvorgänge an den auf Krakeln basierenden Daten auszuführen, um die Handschrift- oder Bildeingaben in vorher festgelegte "erkannte" Formen zu wandeln, wie Kreise, Rechtecke oder gerade Linien, oder in standardkodierte Zeichendarstellungen, wie in das als ASCII bekannte Standarddatenformat, damit die Daten zur Verwendung in auf Prozessor basierenden Standardanwendungen, wie Wortverarbeitung, Elektronikmail, Zeichnungen, Grafiken und auf Daten beruhenden Anwendungen geeignet sind. Ein Beispiel eines solchen Systems ist das von Apple® Computer, Cupertino, California, erhältliche Newtons MessagePad, das einen Handschrift-Erkennungsvorgang an der handschriftlichen Eingabe des Benutzers ausführt und die erkannten Daten beispielsweise als Kalendereinträge, Adressen und Fernsprechnummern und als Text zur Verwendung bei ElektronicMail-Nachrichten speichert.
- Wegen der gegenwärtigen Probleme mit Handschrift-Erkennung könnte die Nutzbarkeit von Systemen, die Krakel als Eingabe annehmen, verbessert werden, wenn etwas Funktionalität ermöglicht würde, ohne ausdrücklich die Erkennung von auf Krakeln basierenden Daten zu erfordern. Ein als "aha!TM InkWriterTM" bekanntes Software-Produkt von aha!TM Software Corporation, Mountain View, California sorgt für Editierfunktionen, die anscheinend auf den auf Krakeln basierenden Daten selbst basieren. Das aha!TM InkWriterTM Handbuch 1993 gibt an, dass die Software einige funktionale Fähigkeiten zur Verarbeitung von auf Krakeln basierenden Daten für den Benutzer ergibt, gleichartig denen, die in einer herkömmlichen Wortverarbeitungsanwendung geschaffen werden, ohne zunächst zu erfordern, dass der Benutzer ausdrücklich einen Handschrift-Erkennungsvorgang einleitet. Das Handbuch gibt auch an, dass die handgeschriebene Eingabe in das "übersetzt" wird, was als "Computertext" oder nur als "Text" bezeichnet wird. Darstellungen in dem Handbuch bezeichnen, dass "Übersetzung" einem herkömmlichen Handschrift-Erkennungsvorgang entspricht.
- InkWriter ergibt auch eine Wort- oder Zeichensuchfähigkeit. Zum Suchen gehört das Auswählen des zu durchsuchenden Dokuments durch den Benutzer und das Auswählen der Findefunktion aus dem Editiermenu; in Reaktion auf die Auswahl der Findefunktion eröffnet sich ein Findedialog. Der Benutzer "druckt" (schreibt in Blockbuchstaben) das Wort, das er zu finden wünscht. Das Handbuch stellt fest, dass das Wort, das der Benutzer in Blockschrift in das Findedialogblatt schreibt, unmittelbar übersetzt wird. Wird das Wort gefunden, so erscheint das Wort "gefunden" in dem Ergebnisabschnitt des Findeblatts, und das Wort wird gewählt. Da die in dem aha! InkWriter Handbuch beschriebene Suchfähigkeit von dem Ausführen der Handschrift-Erkennung an dem durch den Benutzer eingegebenen gesuchten Wort abhängt, erscheint es als vernünftig, zu schließen, dass die Handschrift-Erkennung an der Schrift in dem zu suchenden Dokument ausgeführt wird, auch wenn der Benutzer keinen Bestätigungsschritt unternommen hat, um die Schrift in Computertext zu übersetzen, und trotz der Tatsache, dass das Geschriebene für den Benutzer nicht als Computertext angezeigt wird. Die Fähigkeit, Worte in Dokumenten mit Benutzung der InkWriter Software erfolgreich aufzusuchen, hängt dann von der Genauigkeit und Robustheit des Übersetzungs- oder Erkennungsvorgangs ab. Das Handbuch stützt diesen Schluß durch Anweisen des Benutzers, das Gesuchte zu "drucken" (in Blockbuchstaben einzugeben), statt in Normalschrift zu schreiben, falls der Benutzer mehreres zu suchen plant.
- Ein Erkennungssystem wandelt ein auf Krakeln beruhendes Dateneingabe-Target, wie Handschrift, in eine computerkodierte oder für den Menschen verständliche Form durch Auftragen oder Klassifizieren desselben als eine von vielen bekannten Schablonen oder Prototypen des Krakels, die in einer Art Referenzdatenstruktur gespeichert werden; ein erfolgreiches Auftragen identifiziert die computerkodierte oder für den Menschen verständliche Form des Krakels oder identifiziert dessen Schreiber. Solche Systeme fallen typischerweise in eine der Kategorien der Handschrifterkennung, Unterschriftüberprüfung und Schreiberidentifizierung.
- Ein wichtiges Merkmal jedes dieser Arten von Erkennungssystemen ist die Natur der Referenzdatenstruktur, gegen welches die Targeteingaben aufzuzeichnen sind. Eine Refe renzdatenstruktur von Schablonen- oder Prototyp-Datenobjekten enthält etwas, das als "eingeschriebene" Datengegenstände bezeichnet werden kann, d. h. Datengegenstände, die in die Referenzdatenstruktur zu dem besonderen Zweck eingegeben werden, die Klassifizierung von Targeteingaben zu ermöglichen; die Daten, die jedes eingeschriebene Datenobjekt umfassen, sind ausdrücklich für die Merkmale, Kenngrößen oder Veränderungen in den Daten hergestellt, die von möglichen Targets erwartet werden können. Die Genauigkeit und Zuverlässigkeit eines Erkennungssystems ist dann direkt auf die Qualität der Herstellung und Kennzeichnung der auf Krakeln basierenden Daten der Referenzschablonen bezogen, zu denen ein Targetkrakel aufgezeichnet wird. Die große Veränderbarkeit bei Handschrift-Schreibarten bei den möglichen Benutzern von PDA-Geräten, zusammen mit einer Vielzahl von Umgebungsfaktoren, die die normale Handschrift eines Benutzers beeinflussen oder ändern können, machen die Entwicklung von breiten, aber genauen Referenzschablonen zu einer sehr schwierigen Aufgabe.
- Solange Handschrift-Erkennungssysteme unzuverlässige, fehlerträchtige Ergebnisse erzeugen, ist der breitere Gebrauch und die Nutzbarkeit von Systemen, welche Krakel als Eingabe annehmen, bedeutsam durch die Abhängigkeit dieser Systeme von der Anwendung eines Erkennungsvorgangs bei den auf Krakeln basierenden Daten begrenzt.
- Die vorliegende Erfindung erzeugt eine neuartige Technik zur Bestimmung, ob ein auf Targetkrakeln beruhendes Datensystem in einem auf Krakeln basierenden Datenkörper (hiernach die "auf Krakeln basierende Datenstruktur" genannt) auftritt, die bei handschriftlichen Aufzeichnungen oder Dokumenten, die kursiv geschriebene oder in Blockschrift "gedruckte" Handschrift, wie auch grafische Bilder oder Symbole enthalten, ohne ein Erkennungsverfahren entweder an die auf Krakeln basierenden Targetdaten oder die auf Krakeln basierende Datenstruktur anzuwenden. Die vorliegende Erfindung bringt so Vorteile für die Gesamtnutzbarkeit von Systemen, die Krakel als Eingabe nehmen, durch Reduzieren der Abhängigkeit dieser Systeme von dem Erfolg eines Handschrift-Erkennungsvorgangs. Das Bestimmen des Auftretens eines Targetkrakels in einer auf Krakeln basierenden Datenstruktur sorgt für die Möglichkeit, eine Vielzahl von Verarbeitungsfunktionen einschließlich einer Suchfunktion auszuführen, die einen Benutzer mit einem Bild der auf Krakeln basierenden Datenstruktur versorgen kann, welche den Ort oder die Orte des Targetkrakels hervorhebt, und einer Funktion, die einer "Finden und Ersetzen"-Funktion in einer Wortverarbeitungsanwendung analog ist, und bei der der geortete Targetkrakel durch einen zweiten Targetkrakel ersetzt werden kann. Zusätzlich können im Zusammenhang mit Software, die ein Schlüsselwortverzeichnis der Datenstruktur aufbaut, Krakel als Schlüsselworte benutzt werden, um eine auf Krakeln basierende Datenstruktur aufzulisten, ohne eine Erkennung an entweder den Schlüsselwortkrakeln oder der auf Krakeln basierenden Datenstruktur auszuführen.
- Ein anderer Vorteil der Passungs- (oder Vergleichungs-) Technik der vorliegenden Erfindung ist ihre Fähigkeit, die Auswirkung der stilistischen Veränderungen der Schreiber gegeneinander auf die Genauigkeit des Vergleichungsvorgangs zu minimieren, in dem zugelassen wird, dass der zum Suchen benutzte Targetkrakel aus der zu durchsuchenden auf Krakeln basierenden Datenstruktur ausgewählt wird falls sie dort vorhanden ist. Ein erster Schreiber, der die handgeschriebenen Bemerkungen eines zweiten Schreibers durchsieht, welche ein bestimmtes Konzept oder eine Idee ausdrücken, kann nach all dem Auftreten diesen Konzeptes oder dieser Idee in den Bemerkungen suchen, durch Auswählen derselben als zu suchendem Targetkrakel. Der Targetkrakel besitzt dann stilistische Eigenheiten des Originals, des zweiten Schreibers und der Krakel in den übrigen Bemerkungen, wodurch wahrscheinlich die Passungs- oder Vergleichungs-Ergebnisse verbessert werden.
- Die vorliegende Erfindung beruht auf der Entdeckung, dass vernünftig genaue Krakelpassung zwischen einem Targetkrakel und einem Krakel in der auf Krakeln basierenden Datenstruktur durch Benutzen irgendeiner verschiedener Signalvergleichs-Techniken zur Übereinstimmungs-Suche bei einem Targetkrakel mit jedem Krakel in der auf Krakeln basierenden Datenstruktur erreicht werden kann, bis alle Krakel mit dem Target verglichen worden sind, um zu bestimmen, ob und wo der Targetkrakel in der auf Krakeln basierenden Datenstruktur enthalten ist. Wegen der Unterschiedlichkeit der Schreiber beim Eingeben von auf Krakeln basierenden Daten kann ein als Target vorgesehener Einzelkrakel in der auf Krakeln basierenden Datenstruktur als eine Folge von zwei oder mehr Krakeln auftreten, oder ein in der auf Krakeln basierenden Datenstruktur enthaltener einziger Krakel kann als eine Folge von zwei oder mehr Targetkrakeln eingegeben worden sein. Die Erfindung sorgt für Verkettung einer Folge von Targetkrakeln zu einer Einzelgruppe von Abtastdatenpunkten zum Zwecke der Ausführung eines Signalvergleichs. Da es möglich ist, dass das Target in der auf Krakeln basierenden Datenstruktur entweder mit einem Einzelkrakel oder einer Folge von Krakeln zur Passung gebracht werden kann, schafft die Erfindung eine Gruppierung von Abtastdatenpunkten aus der auf Krakeln basierenden Datenstruktur als Eingabe für den Signalvergleichsvorgang mit dem Krakel. Das Schaffen solcher Gruppierungen von Abtastdatenpunkten aus der auf Krakeln basierenden Datenstruktur zum Vergleich verringert die Auswirkung der Handschrift- Variationen der Schreiber auf die Fähigkeit der Erfindung, Übereinstimmungen herzustellen, und verbessert so die Genauigkeit.
- Deswegen wird gemäß der vorliegenden Erfindung ein Verfahren des Betreibens eines Systems geschaffen, das eine Signalquelle zum Bereitstellen von auf Krakeln basierenden Daten, einen Speicher zum Speichern von auf Krakeln basierenden Daten und einen zum Empfang von Signalen angeschlossenen Prozessor enthält. Das Verfahren umfasst das Aufnehmen von auf Krakeln basierenden Targetdaten von der Signalquelle. Die auf Krakeln basierenden Targetdaten beruhen auf einem ersten Krakel und enthalten eine Vielzahl von Abtast-Datenpunkten, die einen ersten Bewegungspfad während eines ersten Zeitraums eines Target-Krakels bezeichnen. Eine in dem Systemspeicher gespeicherte, auf Krakeln beruhenden Datenstruktur ist vorgesehen, die Information über Krakeln bezeichnet und für jeden jeweiligen Krakel eine Vielzahl von Abtast-Datenpunkten enthält, welche einen jeweiligen Bewegungspfad über einen Zeitraum des jeweiligen Krakels bezeichnen. Die zweite Vielzahl von Abtastdatenpunkten ist in eine Vielzahl von Korpuskrakelfolgen gruppiert, die jeweils mindestens zwei Abtastdatenpunkte enthalten. Dann werden die Target-Krakeldaten mit jeder Korpus-Krakelfolge verglichen, um zu bestimmen, ob die Target-Krakeldaten mit einer der Korpus-Krakelfolgen übereinstimmen. Eine Liste von Korpus-Krakelfolgen, die mit den Target- Krakeldaten übereinstimmen, wird erzeugt. Die Liste enthält für jede Korpus-Krakelfolge den Ort in der auf Krakeldaten basierenden Struktur der übereinstimmenden Korpus-Krakelfolge.
- Gemäß einem anderen Aspekt der vorliegenden Erfindung wird ein prozessorgesteuertes System geschaffen, welches umfasst: eine Signalquelle zum Schaffen von auf Krakeln basierenden Targetdaten, die eine erste Vielzahl von Abtastpunkten einschließen, die einen ersten Bewegungspfad während eines ersten Zeitraums eines ersten Krakels enthalten; einen zum Empfangen der auf Krakeln beruhenden Targetdaten von der Signalquelle angeschlossenen Prozessor, und einen Speicher zum Speichern von Daten. Die in dem Speicher gespeicherten Daten enthalten Befehle, die der Prozessor ausführen kann, und eine auf Krakeln basierende Datenstruktur, die Information über Krakeln bezeichnet und für jeden jeweiligen Krakel eine Vielzahl von Musterdatenpunkten enthält, die einen jeweiligen Bewegungspfad über einen jeweiligen Zeitraum des jeweiligen Krakels bezeichnen. Der Prozessor ist auch zum Zugriff auf die in dem Speicher gespeicherten Daten angeschlossen. Der Prozessor gruppiert beim Ausführen der Befehle in Reaktion auf den Empfang der auf Krakeln basierenden Targetdaten von der Signalquelle die zweite Vielzahl von Abtast-Datenpunkten zu einer Vielzahl von Korpus- Krakelfolgen, von denen jede Korpus-Krakelfolge mindestens zwei Musterdatenpunkte enthält. Der Prozessor vergleicht dann die auf Krakeln basierenden Targetdaten mit jeder Korpus- Krakelfolge, um zu bestimmen, ob die auf Krakeln basierenden Targetdaten mit einer der Korpus-Krakelfolgen übereinstimmen, und erzeugt eine Übereinstimmungsliste von Korpus- Krakelfolgen, welche mit den auf Krakeln basierenden Targetdaten übereinstimmen. Die Übereinstimmungsliste enthält für jede Korpus-Krakelfolge den Ort der auf Krakeln basierenden Datenstruktur der übereinstimmenden Korpus-Krakelfolge.
- Die vorliegende Erfindung wird weiter beispielsweise mit Bezug auf die beigefügten Zeichnungen beschrieben, in welchen:
- Fig. 1 einen Krakel und auf einem Krakel basierende Daten darstellt;
- Fig. 2 ein vereinfachtes Blockschaltbild ist, das ein System zum Betreiben der vorliegenden Erfindung und ein Software-Produkt darstellt, in dem die vorliegende Erfindung ausgeführt werden kann;
- Fig. 3 ein Flussdiagramm ist, das die allgemeinen Schritte des Suchens und Vergleichens von auf Krakeln basierenden Daten gemäß der vorliegenden Erfindung darstellt;
- Fig. 4 ein Flussdiagramm ist, dass die Schritte des Vergleichens einer Target-Krakelgruppe mit auf Krakeln basierenden Datengruppen in einer auf Krakeln basierenden Datenstruktur gemäß einer Soffware-Verwirklichung der vorliegenden Erfindung darstellt;
- Fig. 5 ein Flussdiagramm ist, dass die Teilschritte des in Fig. 4 dargestellten Vergleichsschritts gemäß der dargestellten Ausführungsform der vorliegenden Erfindung darstellt; und
- Fig. 6 eine Grafik einer beispielhaften Strichfunktion ist, die für den Krakel der Fig. 1 zur Verwendung bei dem Signalvergleichsvorgang der Fig. 5 gemäß dieser Erfindung aufgestellt wurde.
- Die folgenden Ausdrücke ergeben den Rahmen zum Beschreiben der Ausführungsform der beanspruchten Erfindung, wie sie in den beigefügten Zeichnungen dargestellt ist. Ein "Krakel" ist das Ergebnis einer Ausdrucksbewegung. Fig. 1 stellt einen Krakel 10 dar, der dem englischen Buchstaben "x" ähnelt, aber auch ein willkürliches grafisches Symbol sein kann. Daten oder ein Signal ist/sind "begründet an" einem Krakel, wenn die Daten oder das Signal Information über den Bewegungsweg des Krakels im Raum während eines Zeitintervalls enthalten/enthält. Wenn beispielsweise die Information über den Krakelweg nur einen Punkt im Zeitraum enthält, sind die Daten oder ist das Signal nicht auf dem Krakel begründet; wenn jedoch Information über einen oder mehrere Punkte des Weges im Raum und den Zeitintervall des Punktes oder der Punkte enthalten ist, sind die Daten oder ist das Signal auf dem Krakel begründet. Ein einfaches Beispiel von auf einem Krakel basierenden Daten sind Daten, die die Anfangs- und Endpunkte des Krakels im Raum und den Zeitraum bezeichnen, in dem diese auftraten. Vollständige Daten aufgrund eines zweidimensionalen Krakels wären ein Vektor von (x, y, t)-Tripeln, die erreicht werden durch Abtasten der x,y-Koordinaten des Krakelweges mit einer ausreichend hohen Frequenz zum Einfangen im wesentlichen des gesamten durch den Krakel geschaffenen Bewegungsinhalts. Ein Beispiel solcher Daten ist in Tabelle 16 in Fig. 1 gezeigt. Auf einem Krakel basierende Daten können Information über einen Krakel enthalten, von der die gesamte oder ein Teil der Information den Bewegungsweg des Krakels während der Zeit erfasst, berechnet oder von ihm abgeleitet werden kann, wie z. B. die Beschleunigung oder Geschwindigkeit beim Aufzeichnen des Krakels. Zusätzliche Komponenten-Information über einen Krakel kann auch eingefangen werden, wie beispielsweise Daten, die den Druck, die Störungen des Widerstands oder akustische Oberflächenwellen des den Krakel an einer Datensammelfläche erzeugenden Eingabegerätes angeben. Daten oder ein Signal aufgrund eines Krakels werden hier auch als "auf Krakeln basierende Daten" bezeichnet. Eine "auf Krakeln basierende Datenstruktur" enthält Daten oder Signale, die auf einem oder auf mehreren Krakeln beruhen.
- Ein hier benutzter Ausdruck "Stift" bezeichnet ein Benutzer-Eingabegerät, das zum Erzeugen von auf Krakeln beruhenden Daten fähig ist. Z. B. ist ein elektronisches federartiges Gerät ein Stift, und die Bewegung der Spitze des Stiftes über eine Datensammelfläche erzeugt auf Krakeln basierende Daten. Ein Stift kann auch ein herkömmliches Zeigegerät wie eine Maus enthalten, das/die zum Erzeugen von auf einem Krakel basierenden Daten fähig ist. In diesem Falle stellt das Bild des Cursors in dem Anzeigebereich des Anzeigegerätes den Ort des Stiftes dar, und der Anzeigebereich stellt die Datensammelfläche dar. Der Ausdruck "elektronische Tinte" oder "digitale Tinte" bezieht sich auf das Bild der Spur der Bewegung einer Stiftspitze an einer Anzeige, und wird allgemein benutzt, um auf ein Bild von auf Krakeln basierenden Daten Bezug zu nehmen.
- Ein "Strich" sind die Daten oder ist das Signal von einem Krakel oder einem Abschnitt eines Krakels, die von der Spitze des Stiftes während der Zeit erzeugt werden, und werden zum Erzeugen von auf Krakeln basierenden Daten zu einem darauffolgenden Zeitpunkt benutzt, wenn der Stift als keine auf Krakeln beruhenden Daten erzeugend festgesetzt wird. Wenn beispielsweise ein Stift mit Bewegung über eine Datensammelfläche auf Krakeln basierende Daten erzeugt, bilden die von der Spitze während der Zeit, in der der Stift als in Berührung mit der Datensammelfläche befindlich erfasst wird, erzeugten Daten einen Strich bis zu dem darauffolgenden Zeitpunkt, wo der Stift als nicht mehr in Berührung mit der Datensammelfläche erfasst wird. In Fig. 1 ist der Krakel 10 so gezeigt, dass er aus zwei Strichen 12 und 14 zusammengesetzt ist.
- Daten werden während der Erzeugung eines Strichs mit regelmäßigen Zeitabständen erzeugt, wie es durch die Abtastdatenpunkte 20 und 22 in Fig. 1 dargestellt ist. Ein Strichsegment, oder einfach "Segment", bezieht sich auf den Abschnitt eines Strichs zwischen zwei Abtastdatenpunkten, wie durch das Segment 24 dargestellt. Wenn der (zeitlich) abschließende Abtastdatenpunkt eines ersten Strichs 12 mit dem ersten Abtastdatenpunkt eines zweiten Strichs 14 verbunden wird, werden die Striche oder Abtastdatenpunkte als "verkettet" bezeichnet. Eine Verkettung von Folgen von Abtastdatenpunkten kann die Gruppierung von Mehrfachstrichen zu einer Einzelstrichgruppe ergeben. Die Auswirkung des Verkettens von Abtastdatenpunkten ist das Einführen eines Segmentes 30 in die Folge von Abtastdatenpunkten.
- Eine auf Krakeln basierende Daten enthaltende Datenstruktur kann hier auch als eine "nicht klassifizierte" Datenstruktur bezeichnet werden, und ist von einer "klassifizierten" Datenstruktur zu unterscheiden, die eingeschriebene Datenobjekte wie Schablonen oder Prototypen enthält, die zum Zwecke der Klassifizierung von Targeteingaben verwendet werden.
- Die vorliegende Erfindung zum Suchen und Passen (zur Übereinstimmung bringen) von auf Krakeln basierenden Daten betreibt ein prozessorgesteuertes System mit den allgemeinen Komponenten, Kenngrößen und Gestaltungen des in Fig. 2 dargestellten Systems 100. Das System 100 enthält eine Eingabeschaltung 152 zum Aufnehmen von Signalen von einer Signalquelle 154. Die Signalquelle 154 kann irgendeine signalerzeugende Quelle sein, die Signale der durch die vorliegende Erfindung benötigten Art erzeugt. Eine derartige Quelle enthält Eingabegeräte, die durch einen menschlichen Benutzer steuerbar sind und die Signale in Reaktion auf Einwirkungen durch den Benutzer ergeben, wie ein Stiftgerät 152, das der Benutzer über die Datensammelfläche bewegt, und den Anzeigebereich 180 des Gerätes 170 beim Herstellen von Krakeln. Das Gerät 170 wird gemeinhin als "Elektroniktablett" bezeichnet, kann jedoch, wie vorher bemerkt, auch ein herkömmliches Anzeigegerät sein, das zur Darstellung von Bildern geeignet ist, oder es kann statt der Kombination aus Gerät 170 und Stiftgerät 156 bloß ein Stiftgerät 156 sein, wie es zum Erzeugen von auf Krakeln basierenden Daten ohne Benutzung einer Datensammelfläche üblich ist. Alternativ kann die Signalquelle ein (nicht gezeigter) Vorgang sein, den der Prozessor 140 ausführt und der für die Abgabe von auf Krakeln basierenden Daten an den Prozessor 140 als Targetkrakel zur erfindungsgemäßen Verarbeitung sorgt.
- Der Prozessor 140 arbeitet durch Zugreifen auf den Programmspeicher 114 des Speichers 110, um Befehle abzuziehen, die er dann ausführt. Der Programmspeicher 114 enthält Krakeldatenvergleichs-Befehle 116, welche die in den Flussdiagrammen der Fig. 3, 4 und 5 beschriebene Erfindung verwirklichen. Während der Ausführung der Befehle kann der Prozessor 140 zusätzlich zum Empfangen von Eingabesignalen von der Eingangsschaltung 152 auch auf den Datenspeicher 122 zugreifen und Daten schaffen, welche Bilder definieren, z. B. Bilder elektronischer Tinte für die (nicht gezeigte) Ausgabeschaltung zur Darstellung am Gerät 170 im Anzeigebereich 180 oder zur Darstellung an irgendeinem anderen entsprechenden Anzeigegerät. Bei der Beschreibung der dargestellten Ausführungsform entspricht der Anzeigebereich dem sichtbaren Bereich des Anzeigeschirms, und das Verfahren der vorliegenden Erfindung sorgt für sichtbares Anzeigen der darin befindlichen elektronischen Tinte. Der Speicher 110 speichert auch eine auf Krakeln basierende Datenstruktur 126, Targetkrakel-Daten 130 und, im Falle der dargestellten Ausführungsform, Strichfunktionsdaten 132, wie auch andere Daten.
- Die tatsächliche Art und Weise, in der die physikalischen Komponenten der Maschine 100 miteinander verbunden sind, kann verschieden sein, und kann hartverdrahtete physikalische Verbindungen zwischen einigen oder allen Komponenten enthalten, wie durch die gestrichelten Leitungsdrahtverbindung 160 zwischen dem Stift 156 und dem Gerät 170 gezeigt, wie auch Verbindungen über verdrahtete oder drahtlose Nachrichtenverbindungs-Einrichtungen, wie durch fernliegende oder örtliche Verbindungsnetze und Infrarot- und Funkverbindungen. Der Bereich der physikalischen Größe der Maschine 100 kann sich beträchtlich von einem sehr großen Gerät, z. B. einem großen elektronischen "Weißtafel"-Gerät für gemeinsame Bearbeitung, zu einem viel kleineren Arbeitsflächengerät, wie einem tragbaren Computer und einem Taschenanzeigegerät oder zu noch kleinerem Gerät erstrecken.
- Ein Fertigungsgegenstand kann mit dem beschriebenen prozessorgesteuerten System benutzt werden. Der Gegenstand umfasst ein Speichermedium 122, auf das durch das Speichermedium-Zugriffsgerät 115 zugegriffen werden kann, wenn der Gegenstand in dem System benutzt wird. Daten 128 werden in dem Datenspeichermedium 122 so gespeichert, dass das Speichermedium-Zugriffsgerät 115 die gespeicherten Daten für den Prozessor schaffen kann, wenn der Gegenstand in dem System benutzt wird. Die gespeicherten Daten umfassen Targetkrakelaufnahme-Befehlsdaten 124, welche Eingabebefehle bezeichnen, die der Prozessor 140 ausführen kann, um auf Targetkrakeln basierende Daten von dem Benutzereingabegerät 154 aufzunehmen, und Betätigungsausführungs-Befehlsdaten, welche Reaktionsbefehle bezeichnen, die der Prozessor 140 ausführen kann, um Betätigungen zum Suchen nach den auf Krakeln beruhenden Targetdaten in einer auf Krakeln basierenden Datenstruktur auszuführen, die in dem Speicher gespeichert ist, in Reaktion auf Krakeln basierenden Targetdaten.
- Wenn die auf Krakeln basierenden Targetdaten empfangen werden, lässt die Ausführung der Reaktionsbefehle den Prozessor 140 eine Vielzahl von in der auf Krakeln basierenden Datenstruktur enthaltenen Abtastdatenpunkten zu einer Vielzahl von Korpus-Krakelfolgen von Abtastdatenpunkten gruppieren, und die auf Krakeln basierenden Targetdaten mit jeder der Korpus-Krakelfolgen vergleichen, um zu bestimmen, ob die auf Krakeln basierenden Targetdaten mit mindestens einer der Korpus-Krakelfolgen übereinstimmen. Wenn eine übereinstimmende Korpus-Krakelfolge mit den auf Krakeln basierenden Targetdaten gepasst wurde, lässt die Ausführung der Reaktionsbefehle den Prozessor eine Übereinstimmungsliste erzeugen, welche den Ort der übereinstimmenden Korpus-Krakelfolge enthält.
- Fig. 3 stellt die allgemeinen Schritte der vorliegenden Erfindung dar. Man bemerke, dass der Ausdruck "Korpus" als ein Abkürzungswort benutzt wird, das die auf Krakeln basierende Datenstruktur bedeutet, nach der gesucht wird, um sie mit einer Targetstruktur zu vergleichen. Target-Krakeldaten werden im Kasten 208 von einer Signalquelle empfangen. Um die Übereinstimmungsfehler zu verringern, die durch die Unterschiedlichkeit der Schreiber eingeführt wird, wird die Folge von Abtastdatenpunkten für jeden Strich der Targetkrakeldaten im Kasten 214 zu einer Folge von aufeinanderfolgenden Abtastdatenpunkten verkettet, die hiernach als "Targetkrakelfolge" bezeichnet werden. Die Auswirkung des Verkettens der Abtastdatenpunkte der Targetkrakeldaten zu einer Einzelfolge von verbundenen Abtastdatenpunkten ist das Einführen eines neuen Segments zwischen Strichen.
- Die auf Krakeln basierende Datenstruktur oder der Korpus, der gesucht wird, kann irgendeine Sammlung von auf Krakeln basierenden Daten sein, die im Speicher 110 (Fig. 2) gespeichert oder sonst für den Prozessor 140 zugänglich ist. Irgendwelche Datenstrukturen aus auf Krakeln beruhenden Daten, welche handgeschriebene Notizen, Briefe, Logbücher, Tagebücher, Kalender und andere Dokumente darstellen, können ein zu suchender Korpus sein. Der Korpus kann einfach als ein aufeinanderfolgender Strom von Abtastdatenpunkten angesehen werden, welche den Bewegungspfad von vielen Bewegungen über der Zeit darstellen; der Datenstrom kann in Listen von Strichen organisiert sein, muss es jedoch nicht. Um das Vergleichen einer Targetkrakelfolge mit den auf Krakeln basierenden Korpusdaten zuzulassen, werden Sätze von Abtastdatenpunkten in dem Korpus im Kasten 220 identifiziert und zu Folgen von Abtastdatenpunkten gruppiert, die nachfolgend als "Korpuskrakelfolgen" bezeichnet werden. Irgendeine Korpuskrakelfolge von Abtastdatenpunkten kann eine andere Korpuskrakelfolge von Abtastdatenpunkten überdecken oder kann einige Abtastdatenpunkte mit ihr gemeinsam haben. Eine Korpuskrakelfolge ist irgendein Teilsatz von Abtastdatenpunkten in dem Korpus, und kann beispielsweise so klein sein, dass sie nur zwei Abtastdatenpunkte umfasst. Jede Korpuskrakelfolge wird im Kasten 224 für den Vergleich zu einer einzigen Dateneinheit oder zu einem Signal verkettet.
- Im Kasten 228 wird die Targetkrakelfolge mit jeder Korpuskrakelfolge verglichen, um zu bestimmen, ob eine Übereinstimmung besteht. Irgendein geeigneter Signalvergleichs- oder Passvorgang kann zu diesem Zweck benutzt werden; ein Beispiel eines neuartigen Signal- Übereinstimmungsvorgangs aufgrund von dynamischen Zeitverzugstechniken wird im einzelnen nachstehend dargelegt. Die Ergebnisse des Pass- oder Übereinstimmungsvorgangs der Targetkrakelfolge mit allen Korpuskrakelfolgen wird dann im Kasten 234 erzeugt, und umfasst mindestens eine Liste, die die Korpuskrakelfolgen bezeichnet, welche Übereinstimmung mit der Targetkrakelfolge zeigen, und z. B. die Anzeichen der Start- und Abschluss-Abtastdatenpunkte von jeder mit Übereinstimmung bezeichneten Korpuskrakelfolge in dem Korpus (istart, iende) enthält. Die Liste kann für eine Vielzahl von weiteren Zwecken einschließlich, aber nicht begrenzt auf, gleichzeitiges oder späteres Berichten für den menschlichen Benutzer benutzt werden, typischerweise durch Anzeigen der übereinstimmenden Ergebnisse in einem Bild oder zu einem anderen Systemvorgang oder zum Durchlassen einer Liste von übereinstimmenden Korpuskrakeln oder Zeigern zu übereinstimmenden Korpuskrakeln zur weiteren Verarbeitung durch einen nachfolgenden Vorgang. Die Liste der Übereinstimmungen kann leer sein, falls keine Übereinstimmung aufgetreten ist.
- Fig. 4 stellt die Folge der Schritte dar, die durch eine ausgeführte Ausführungsform der vorliegenden Erfindung durchlaufen wurden. Die auf Krakeln basierenden Daten sowohl im Target wie im Korpus sind zu einer Liste von Strichen organisiert, von denen jeder Strich eine Liste von Abtastdatenpunkten ist, wie in Fig. 1 dargestellt. Im Kasten 308 werden einen Targetkrakel bezeichnende Daten von einer Signalquelle empfangen. Im Kasten 310 werden die Targetkrakeldaten geprüft, um zu bestimmen, ob sie mehr als einen Strich enthalten, und falls das der Fall ist, wird jeder Strichi mit einem darauffolgenden Strichi+1 verkettet, bis alle Striche durch Verbinden des letzten Abtastdatenpunktes des Striches (des zeitlich ersten Striches) mit dem ersten Abtastpunkt des Strichesi+1 (des zeitlich nächsten Striches) zu einer einzigen Folge von aufeinanderfolgenden Datenpunkten verkettet wurden.
- Im Kasten 314 wird ein Zählwert n zum Zählen der Striche in dem Korpus auf eins initialisiert. Wenn alle Striche in dem Korpus mit den verketteten Targetstrichdaten verglichen worden sind, wird eine Untersuchung angestellt, die im Kasten 374 geschieht, ob das Verfahren für dieses Target abgeschlossen ist. Im Kasten 316 wird ein Gruppierungszählwert m auf eins initialisiert; der Gruppierungszählwert m steuert die Gruppierung der Striche in dem Korpus zur Eingabe in den Übereinstimmungs-Suchvorgang. Ausgehend von jedem Einzelstrich in dem Korpus, wie durch den Zählwert n gezählt, und beginnend mit Gruppierungszähler m beim Wert eins, werden die Korpusstriche n bis n + m - 1 im Kasten 320 zu einer einzigen Folge von aufeinanderfolgenden Abtastdatenpunkten gruppiert und verkettet, bevor sie in den Signalvergleichsvorgang 330 eingegeben werden, bis m eine Maximalzahl von Gruppierungs strichen erreicht hat, was im Kasten 368 untersucht wird. Der Maximalwert für den Gruppierungszählwert m kann heuristisch nach Experimentieren mit verschiedenen Arten von Körpern bestimmt werden, die durch den gleichen oder durch unterschiedliche Schreiber erzeugt worden sind. Alternativ kann der Maximalwert für den Gruppierungszählwert m eine Funktion der Anzahl von Strichen s in den Targetkrakeldaten sein. Bei der dargestellten Ausführungsform ist der Gruppierungszählwert m eine Funktion von s, und sein Maximalwert ist s + 2.
- Diese Verwirklichung des Konzepts der Gruppierung führt zu einem Zwangskraft-Signalvergleich von Gruppen von Korpusstrichen zu den verketteten Targetkrakeldaten, der versucht, Variationen zwischen den Schreibern, die sich aus inkonsistenten und unterschiedlichen Strichabständen ergeben, in Rechnung zu stellen. Wichtiger ist, dass diese Vorgehensweise nicht von der Fähigkeit des Systems abhängt, den Korpus vor dem Suchen und Vergleichen in diskrete semantische Einheiten wie Worte oder grafische Symbole aufzuteilen. Ein solches Zwangskraft-Vergleichsverfahren erhält jedoch eine wesentliche Auswirkung auf die Berechnungswirksamkeit. Der Gruppierungszählwert m ist eine Verarbeitungs- und Verhaltenswirksamkeits-Steuerung. Theoretisch kann, wenn ein Korpus mit der Größe von k Strichen gegeben ist, an einem Wert n in der Folge der Wert m von 1 bis k - n + 1 reichen, und Striche werden dann in Folgen gruppiert, die so groß wie der gesamte Korpus sind, um sicherzustellen, dass die maximale Zahl von Strichfolgen in den Signalvergleichsvorgang eingegeben wird. Bei der dargestellten Verwirklichungsform ergibt ein Targetkrakel mit einem Strichzählwert s = 3 eine 5er Korpus-Krakelfolgegruppe, die von einem Strich zu fünf aufeinanderfolgenden Strichen reicht (wenn der Maximalwert von m = s + 2 ist), wobei jede Gruppe mit dem Targetkrakel für jeden Strich im Korpus verglichen wird.
- Es kann gesehen werden, dass eine Vielzahl von unterschiedlichen Vorgehensweisen benutzt werden kann, um die Gruppierung zu bestimmen, durch Ändern jedes Eingangswerts oder beider Eingangswerte für die Gruppierungszahl m und ihres Maximalwerts. Z. B. kann der Gruppierungszählwert s auf s - 1 initialisiert werden, und sein Maximalwert kann bei s + 1 eingerichtet werden, so dass nur Gruppierungen mit einem Strich weniger als dem Target, gleich dem Target und einem Strich mehr als dem Target zum Vergleich mit dem Target gebildet werden. Der Grupppierungszählwert m ist sorgfältig genug auszuwählen, um sicherzustellen, dass ein Targetkrakel mit einer kleinen Anzahl von Strichen erfolgreich mit Korpuskrakelfolgen mit einer größeren Anzahl von Strichen verglichen wird, was auftreten kann, wenn ein aus im wesentlichen kursiver Handschrift zusammengesetztes Target mit einem Korpus zu vergleichen ist, der aus im wesentlichen in Druckschrift gezeichneter Handschrift zusammengesetzt ist.
- Der Signalvergleichsvorgang 330, der mit mehr Einzelheiten nachfolgend beschrieben wird, gibt einen Wert zurück, der mißt, wie gut die verketteten Targetkrakeldaten im Vergleich zu einer bestimmten Gruppe von verketteten Strichen passen. Dieser Wert wird gegen einen Schwellwert im Kasten 360 bewertet, und wenn er sich günstig vergleichen lässt - in diesem Falle, wenn der Wert kleiner als der Schwellwert ist - wird die Gruppe von verketteten Korpusstrichen als eine Übereinstimmung markiert. Markieren bezieht sich in diesem Sinne einfach auf irgendeine in Reaktion auf das Finden einer übereinstimmenden Korpuskrakelfolge unternommene Systembetätigung. Bei der dargestellten Ausführungsform wird der gesuchte Korpus für einen Benutzer an einem elektronischen Tablett angezeigt. Wenn jede Übereinstimmung der verketteten Targetkrakelfolgen in dem Korpus angetroffen wird, wird ein kastenförmiges Anzeigemerkmal um den Abschnitt des Bildes des Korpus hinzugefügt, der die übereinstimmende Korpuskrakelfolge darstellt, und wenn der nächste bildbringende Befehl (z. B. Bildermal- oder Bilderanzeige-Befehl) angetroffen wird, präsentiert das System ein Bild des Korpus, das die übereinstimmende Korpuskrakelfolge mit sie umgebenden Kästen enthält.
- Wenn der sich aus dem Signalvergleichsvorgang 330 ergebende Wert nicht günstig mit dem Schwellwert verglichen werden kann, und nachdem eine erfolgreiche Übereinstimmung markiert ist, wird der Gruppierungszählwert m im Kasten 366 um eins erhöht, um die nächste Gruppierung von Korpusstrichen zu bilden. Wenn der Gruppierungszählwert m nicht größer als sein Maximalwert wird, wird die nächste Gruppierung von Strichen im Korpus im Kasten 320 in Vorbereitung auf den Signalvergleich mit der Targetkrakelgruppe identifiziert und verkettet.
- Der Schwellwert stellt das Abschneiden des Zählwerts eines Signalvergleichs dar, der bestimmt, dass die Targetkrakelfolge und eine Korpuskrakelfolge ausreichend genug übereinstimmen, um das als eine Übereinstimmung zu berichten, und ist in einem großen Ausmaß eine Funktion der Auslegungsentscheidungen, die mit Bezug auf die Verwirklichung des Signalvergleichsvorgangs 330 getroffen wurden, sowie z. B. wie die Normalisierung erledigt wird. Im Gegensatz zu Erkennungssystemen, die einen geringsten Wert zum Bezeichnen eines erfolgreichen Vergleichs benutzen, ist der Schwellwert in gewisser Beziehung eine subjektive und willkürliche Annahme davon, wieviele falsche Zwänge durch das System oder den Systembenutzer ertragen werden. In dieser dargestellten Verwirklichungsform wurde der Wert der Schwellgröße empirisch bestimmt, und ein Schwellwert von 0,4 wurde benutzt, der im wesentlichen eine Reduzierung falscher Vorsätze ohne unnötiges Erhöhen falscher Abweisungen ergibt.
- Bei der dargestellten Verwirklichungsweise benutzt der Signalvergleichsvorgang 330 eine mathematische Vergleichstechnik, die als dynamischer Zeitverzug (dynamic time warping DTW) bekannt ist, und die sich auf den Vergleich von Bahnen bezieht, der durch eine kontinuierliche Funktion der Zeit im mehrdimensionalen Raum definiert wird. Die grundsätzliche Idee des Zeitverzugs ist, dass Wiedergaben derselben Bahn annähernd zur gleichen Kurve führen können, jedoch mit sich ändernden Zeitmustern. Zeitverzugs-Techniken vergleichen Folgen, die von Bahnen durch Zeitabtastung abgeleitet werden, wenn jede Bahn nicht nur einer Änderung durch den üblichen zusätzlichen Zufallsfehler, sondern auch Variationen der Geschwindigkeit von einem Abschnitt zum anderen unterworfen werden. Der Geschwindigkeitsveränderung erscheint konkret als Komprimierung und Dehnung mit Bezug auf die Zeitachse und wird als Komprimierung/Dehnung bezeichnet. Zeitverzug behandelt eine solche Variation und kann zur Messung benutzt werden, wie unterschiedlich zwei Folgen in einer Weise sind, die nicht für Komprimierung/Dehnung, jedoch für andere Differenzen empfindlich ist.
- Die vorliegende Erfindung wendet die Konzepte des Zeitverzugs auf den Bereich der Krakel oder Striche an, die als Bahn angesehen werden können. Die Variation zwischen den Schreibern, die von Hauptinteresse ist, ist die Variation, die sich aus Unterschieden der Strichformen ergibt; diese Variationen werden in den Winkeln und Abständen zwischen Abtastdatenpunkten eingefangen, und auf diesen Bereich ist die "Strichbahn" einer Folge von Abtastpunkten tatsächlich eine Funktion, die von hier ab als "Strichfunktion" bezeichnet wird, die sich auf die Ausrichtung eines Segments zu den kumulativen Längen der vorherigen Segmente bezieht. In der Literatur wird diese Art der Darstellung oft die "Ausricht "Funktion oder die "Ausricht-über-Bogenlänge-"Funktion genannt. Ein Beispiel einer Strichfunktion ist in Fig. 6 gezeigt, in der die Grafik 40 die Strichfunktion für die verketteten Striche des Krakels 10 in Fig. 1 zeigt. In der Grafik 40 wird die kumulative Länge bei jedem Strichsegment der verketteten Striche 12 und 40 (Fig. 1) längs der Horizontalachse 42 der Grafik 40 gegen die Winkel des Segmentes an der vertikalen Achse 44 der Grafik 40 aufgetragen. Die Strichfunktion in Grafik 40 ist ein Beispiel der Target- und Korpusstrichfunktionen, die in den DTW-Vergleichsvorgang eingegeben werden.
- Im mathematischen Sinn ist die Idee des Zeitverzugs das Einrichten einer Entsprechung zwischen jedem Punkt in der Targetstrichfunktion und einem besonderen Punkt in der Korpusstrichfunktion durch Verziehen der Zeitachse jeder Strichfunktion und Einrichten einer Auftragung (Abbildung) der Punkte der beiden Strichfunktionen aufeinander. Zwei Zeitverzüge sind äquivalent, wenn sie die gleiche Verbindung über die Gesamtheit der zwei Strichfunktionen induzieren. Der Abstand D zwischen zwei Strichfunktionen ist das normalisierte Integral, oder im diskreten Fall die normalisierte Summierung, von gewichteten Punktabständen d zwischen Punkten, die durch den Verzug in Übereinstimmung gebracht werden, welcher dieses Integral oder diese Summe minimiert. Der Abstand D dient als Übereinstimmungsmaß oder Ähnlichkeitsmaß für eine Targetkrakelgruppe mit der aktuellen Korpuskrakelgruppe. Die angesprochenen Normalisierung begründet sich auf die Länge der Verzugsfolgen. Ein Beispiel einer punktweisen Abstandsmetrik d(x,y) ist d(x,y) = x-y .
- Fig. 5 stellt die Einzel-Teilschritte des DTW-Signal-Vergleichsvorgangs im Kasten 330 der Fig. 4 dar. Die Strichfunktionen für die Targetkrakelgruppe und die aktuelle Korpuskrakelgruppe werden in den Kästen 334 und 338 durch Aufteilen der Targetkrakelgruppe und der aktuellen Korpuskrakelgruppe in Segmente und darauffolgendes Berechnen der Länge und des Winkels jedes Segmentes aufgebaut. Für die Wirksamkeit wird die vorherige Segmentenliste für die Targetkrakelgruppe und für die vorherige Korpuskrakelgruppe gespeichert und ggf. wieder verwendet. Die Liste von Segmenten, Winkeln und Längen für jede Targetkrakelgruppe und Korpuskrakelgruppe enthält Werte für das Segment, die als Ergebnis der Verkettung in den Kästen 310 und 320 (Fig. 4) hinzugefügt wurden. Die Benutzung der dynamischen Zeitverzugstechnik minimiert die Auswirkung auf die Genauigkeit der Addierung eines Segments zu einer Strichgruppe als Ergebnis der Verkettung, da die Korrespondenz von Segmenten zwischen Strichfunktionen zum Deemphasieren des hinzugefügten Segmentes eingestellt werden kann, wenn dessen Länge und Winkel sich wesentlich von den Werten eines entsprechenden Segments unterscheiden.
- Zeitverzug wird dann der Strichfunktion im Kasten 340 ausgeführt und das Abstandsmaß errechnet und normalisiert. Das Maß wird dann zur Prüfung gegen den Schwellwert im Kasten 360 der Fig. 4 zurückgeführt.
- Verschiedene zusätzliche Schritte können dem Verfahren hinzugefügt werden, das in der dargestellten Verwirklichung der Fig. 4 beschrieben wurde, um die Übereinstimmungsgenauigkeit zu verbessern, oder das Verhalten des Verfahrens zu optimieren. Ein solcher Schritt enthält das Hinzufügen eines Strich-Vorbearbeitungsschritts zu der Vorbereitung der jeweiligen Target- und Korpusstriche zum Signalvergleich. Ein Strich-Vorbearbeitungsschritt, der in seiner Auswirkung ein Rauschen-Entfernungsschritt ist, erfasst und entfernt Strich- oder Segment-Unregelmäßigkeiten, die sich wahrscheinlich aus Umgebungsfaktoren ergeben, wie einer mangelhaften Schaltung in dem elektronischen Tablett oder dem Stift, statt denen der beabsichtigten Bewegung durch den Benutzer. Ein solcher Vorbearbeitungsschritt kann mit Benutzung bekannter Techniken bewirkt werden.
- Eine andere Technik, die eingesetzt werden kann, ist die der Neuabtastung der Strichdatenpunkte, um die Anzahl von Abtastpunkten zu verringern. Bei einem Neuabtastschritt werden einfach redundante Abtastpunkte entfernt oder die ursprünglichen Abtastpunkte durch einem neuen Satz von Abtastpunkten ersetzt, der sich der Ursprungskurve annähert und die redundanten Abtastpunkte entfernt, welche außerordentliche Berechnungszeit herbeiführen. Neuabtasttechniken sind ebenfalls auf dem Fachgebiet bekannt.
- Die vorliegende Erfindung zieht auch die Benutzung eines Abtastbildes der Handschrift als Originalquelle des Korpus oder zum Benennen eines Targets, oder beides in Betracht. Es sind bekannte Verfahren für das Wandeln eines gebitmapten Bildes von Handschriftsymbolen in auf Krakeln beruhende Daten vorhanden.
- Die vorliegende Erfindung kann als ein Teil der Funktionalität und der Benutzerschnittstelle eines PDA-Geräts enthalten sein, so dass ein Benutzer des Geräts fähig ist, handgeschriebene Corpora zu suchen.
- Der Systembenutzer kann den Targetkrakel zur Übereinstimmungssuche von dem zu suchenden Korpus oder von einem anderen Korpus wählen. Ein Bild wird von der elektronischen Tinte angezeigt, das die Gesamtheit oder einen Teil des für die Targetwahl zu benutzenden Korpus darstellt, und mit Benutzung des Stifts stellt der Benutzer einen Auswahlkrakel her, der den Abschnitt der elektronischen Tinte bezeichnet, der die als auf Krakeln basierende Targetdaten zu benutzenden, auf Krakeln basierenden Daten darstellt. In Reaktion auf den Auswahlkrakel werden die gewählten auf Krakel basierenden Daten von dem Korpus zur Verarbeitung als die auf Krakeln basierenden Targetdaten gemäß den in den Flussdiagrammen der Fig. 3 oder 4 dargestellten Schritten abgezogen. Dieses Merkmal kann durch einen ersten Schreiber benutzt werden, um die Inhalte eines durch einen zweiten Schreiber geschriebenen Korpus mit Benutzung der Krakel des zweiten Schreibers als Targetkrakel zu suchen.
- Ein anderer Gruppierungsvorgang, der verwirklicht wurde, gruppiert den Korpus in semantisch bedeutsame Einheiten. Diese Einheiten werden dann als die Korpuskrakelfolgen benutzt, mit denen die auf Krakeln basierenden Targetdaten während der Übereinstimmungssuchphase verglichen werden. Bei dieser Verwirklichung sind diese Einheiten dazu bestimmt, einzelnen Worten eines geschriebenen Dokuments zu entsprechen. Semantische Gruppierung des Korpus wird bewirkt, indem zuerst die Striche des Korpus durchsucht werden, um horizontale Abstände zwischen den Strichen zu finden, die mindestens halb so groß wie die durchschnittliche Vertikalgröße der Striche im Korpus sind. Dann werden auf Semantik beruhende Korpuskrakelfolgen, die grob als Wortäquivalente angesehen werden könnten, als die Abtastdatenpunkte der Striche identifiziert, die sich zwischen den großen Horizontalabständen befinden.
- Die Reihenfolge der verketteten Krakel, entweder der Targetkrakel oder jener, die von der auf Krakel basierenden Datenstruktur geschaffen werden, oder beide, können vor dem Ausführen des Signalvergleichs geändert werden, um die Variationen anderer Schreiber in Rechnung zu stellen, z. B. in der Reihenfolge von Kreuzzeichen-Buchstaben, wie "f" oder "t".
- Ein anderer zu benutzender Signalvergleichsvorgang ist die bekannte Technik der Einfachsignal-Korrelation. Korrelation benutzt auch eine von den verketteten Strichen der Targetstruktur gebildeten Abtastpunktfolge abgeleitete Strichfunktion. Die Strichfunktion wird mit einer Strichfunktion korreliert, die von der Folge von Abtastdatenpunkten in dem Korpus abgeleitet wurde. Teilfolgen in der Korpusstrichfunktion, bei denen diese Korrelation hoch ist, bezeichnen Stellen, wo eine gute Übereinstimmung vorhanden ist. Statt der punktweisen Multiplikation, die bei der Grundkorrelation benutzt wird, kann stattdessen die punktweise Absolutdifferenz in einer ähnlichen Weise benutzt werden, wie es bei der dynamischen Zeitverzugstechnik der dargestellten Ausführungsform der Fall ist.
- Ein anderer Signalvergleichsvorgang, der benutzt werden kann, ist die als Übereinstimmungssuche aufgrund des Hausdorff-Abstands bekannte Technik. Der Hausdorff-Vergleich ist eine Technik zum Messen, wie gut sich zwei Gruppen von 2D-Punkten voneinander unterscheiden. Bei Anwendung bei den Abtastdatenpunkten, welche Krakel umfassen, werden die als Punkte in der Ebene genommenen Abtastdatenpunkte des Targetkrakels mit Gruppen von Abtastdatenpunkten vom Korpus verglichen, und wieder als Punkte in der Ebene genommen.
- Die neuartige Technik der vorliegenden Erfindung arbeitet an einer auf Krakeln basierenden Datenstruktur, die in dem Sinne, dass sie eine Folge von mit Bezug auf den Inhalt undifferenzierten Signalen ist, vollständig unklassifiziert und nicht eine Datenstruktur von Schablonen oder Prototypen ist, für welche ein Target speziell klassifiziert zu sein hat.
Claims (8)
1. Verfahren zum Betreiben eines Systems, das eine Signalquelle (154) zum Bereitstellen
von auf Krakeln basierenden Daten, einen Speicher (110) zum Speichern von auf Krakeln
basierenden Daten und einen zum Empfang von Signalen angeschlossenen Prozessor (140)
enthält; wobei das Verfahren umfasst:
Aufnehmen von auf Krakeln basierenden Targetdaten (Schritt 208) von der Signalquelle
(154); wobei die auf Krakeln basierenden Targetdaten eine Vielzahl von
Target-Musterdatenpunkten (20, 22) enthalten, die einen ersten Bewegungspfad (12) während eines ersten
Zeitraums einer Target-Krakel bezeichnen;
Schaffen einer auf Krakeln beruhenden Datenstruktur (126), die nachfolgend als Korpus-
Datenstruktur bezeichnet und die in dem Systemspeicher (110) gespeichert wird, wobei die
Korpus-Datenstruktur Information über eine Vielzahl von Korpus-Krakeln bezeichnet und für
jeden jeweiligen Korpus-Krakel eine Vielzahl von Korpus-Musterdatenpunkten enthält, welche
einen jeweiligen Bewegungspfad über einen Zeitraum des jeweiligen Korpus-Krakels
bezeichnen;
Gruppieren der jeweiligen Vielzahlen von Korpus-Musterdatenpunkten (Schritt 220) in eine
Vielzahl von Korpus-Krakelsequenzen von Musterdatenpunkten; wobei jede
Korpus-Krakelsequenz mindestens zwei Musterdatenpunkte enthält;
Vergleichen der auf Krakeln basierenden Targetdaten (Schritt 228) mit jeder Korpus-
Krakelfolge, um zu bestimmen, ob die auf Krakeln basierenden Targetdaten mindestens mit
einer der Korpus-Krakelfolgen übereinstimmen; und
Erzeugen einer Übereinstimmungsliste (Schritt 234) von übereinstimmenden
Korpus-Krakelfolgen, die mit den auf Krakeln beruhenden Targetdaten übereinstimmen, wobei die Liste
für jede übereinstimmende Korpus-Krakelfolge einen Ort in der Korpus-Datenstruktur der
passenden Korpus-Krakelfolge enthält.
2. Verfahren nach Anspruch 1, bei dem die auf Krakeln beruhenden Targetdaten erste und
zweite Striche (12, 14) enthalten, die in der Zeit aufeinanderfolgen; und bei dem das Verfahren
weiter vor dem Vergleichen der auf Krakeln basierenden Targetdaten mit jeder Korpus-
Krakelfolge ein Verketten (Schritt 214) des letzten Musterdatenpunktes des ersten Striches
(12) mit dem ersten Musterdatenpunkt des zweiten Striches (14) in eine Target-Krakelfolge der
ersten Vielzahl von Musterdatenpunkten enthält; wobei jede Korpus-Krakelfolge mit der
Target-Krakelfolge verglichen wird.
3. Verfahren nach Anspruch 1 oder 2, das weiter enthält
Erzeugen eines Bildes mit Benutzung der Übereinstimmungsliste; welches Bild
Anzeigemerkmale enthält, die mindestens eine in der Übereinstimmungsliste enthaltene
übereinstimmende Korpus-Krakelfolge bezeichnet; und
Präsentieren des Bildes einem Systembenutzer an einem in dem System enthaltenen
Anzeigegerät.
4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem, wenn die auf Krakeln basierenden
Targetdaten (130) nicht mit irgendeiner der Korpus-Krakelfolgen übereinstimmen, die
Übereinstimmungsliste leer ist.
5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem die in dem Systemspeicher (110)
gespeicherte auf Krakeln basierende Datenstruktur (126) von Bilddefinitionsdaten, welche ein
Bild einschließlich einer Vielzahl von Anzeigemerkmalen definieren, gewandelt wurde.
6. Verfahren nach Anspruch 5, bei dem die in dem Bild enthaltenen Anzeigemerkmale
Krakel darstellen.
7. Prozessorgesteuertes System, welches umfasst:
eine Signalquelle (154) zum Schaffen von auf Krakeln basierenden Targetdaten, die eine
erste Vielzahl von Musterpunkten (20, 22) einschließen, welche einen ersten Bewegungspfad
(12) während eines ersten Zeitraums einer ersten Krakel enthalten;
einen zum Empfangen der auf Krakeln beruhenden Targetdaten von der Signalquelle
(154) angeschlossenen Prozessor (140); und
Speicher (110) zum Speichern von Daten; wobei die in dem Speicher (110) gespeicherten
Daten Befehlsdaten (116) enthalten, welche Befehle bezeichnen, die der Prozessor (140)
ausführen kann, und eine auf Krakeln basierende Datenstruktur (126); und die auf Krakeln
beruhende Datenstruktur Information über Krakeln bezeichnet und für jeden jeweiligen Krakel
eine Vielzahl von Musterdatenpunkten enthält, die einen jeweiligen Bewegungspfad über einen
jeweiligen Zeitraum des jeweiligen Krakels enthalten;
ein Prozessor (140), der weiter zum Zugriff auf in dem Speicher gespeicherten Daten
angeschlossen ist;
wobei der Prozessor (140) beim Ausführen der Befehle in Reaktion auf Empfangen der
auf Krakeln basierenden Targetdaten von der Signalquelle (154),
die zweite Vielzahl von Musterdatenpunkten zu einer Vielzahl von Korpus-Krakelfolgen
gruppiert (Schritt 220); von denen jede Korpus-Krakelfolge mindestens zwei
Musterdatenpunkte enthält;
die auf Krakeln basierenden Targetdaten mit jeder Korpus-Krakelfolge vergleicht (Schritt
228), um zu bestimmen, ob die auf Krakeln basierenden Targetdaten mit einer der Korpus-
Krakelfolgen übereinstimmen; und
eine Übereinstimmungsliste von Korpus-Krakelfolgen, welche mit den auf Krakeln
basierenden Targetdaten übereinstimmen, erzeugt (Schritt 234); wobei die Übereinstimmungsliste
für jede Korpus-Krakelfolge den Ort der übereinstimmenden Korpus-Krakelfolge in der auf
Krakeln basierenden Datenstruktur enthält.
8. Gegenstand (120) der Herstellung zur Verwendung in einem prozessorgesteuerten
System, das ein Benutzereingabe (154) zum Empfangen von Signalen enthält, welche
Betätigungen und Anfragen eines Systembenutzers bezeichnen; einen Speicher (110) zum
Speichern von Daten; ein Speichermedium-Zugriffsgerät (115) zum Zugriff auf ein Medium, das
Daten speichert; und einen zum Empfang von Daten von dem Benutzereingabegerät (154)
und zum Zugriff zu den in dem Speicher (110) gespeicherten Daten angeschlossenen
Prozessor (140), welcher Prozessor weiter zum Empfang von Daten von dem Speichermedium-
Zugriffsgerät (115) angeschlossen ist; wobei der Gegenstand umfasst:
ein Datenspeichermedium (122), auf das durch das Speichermedium-Zugriffsgerät (115)
zugegriffen werden kann, wenn der Gegenstand in dem System benutzt wird; und
in dem Datenspeichermedium (122) gespeicherte Daten (128), so dass das
Speichermedium-Zugriffsgerät (115) die gespeicherten Daten zu dem Prozessor (114) schaffen kann,
wenn der Gegenstand (120) in dem System benutzt wird; wobei die gespeicherten Daten
umfassen:
Krakel-Empfangsbefehls-Targetdaten (124), welche Eingabebefehle bezeichnen, die der
Prozessor (140) ausführen kann, um auf Krakeln beruhende Targetdaten von dem
Benutzereingabegerät (154) zu empfangen; und
Betriebsausführungs-Befehlsdaten, welche Reaktionsbefehle bezeichnen, die der
Prozessor (140) ausführen kann, um Betätigungen zum Suchen nach den auf Krakeln
basierenden Targetdaten in einer auf Krakeln basierenden in dem Speicher (110) gespeicherten
Datenstruktur (126) auszuführen in Reaktion auf die auf Krakeln beruhenden Targetdaten;
wenn die auf Krakeln beruhenden Targetdaten einschließlich einer Vielzahl von
Musterdatenpunkten, die einen Bewegungspfad während eines Zeitraum eines Krakels bezeichnen,
empfangen werden, wobei Ausführen der Reaktionsbefehle den Prozessor (140) veranlassen,
eine Vielzahl von in der auf Krakeln basierenden Datenstruktur enthaltenen
Musterdatenpunkten zu einer Vielzahl von Korpus-Krakelfolgen von Musterdatenpunkten zu gruppieren und
die auf Krakeln basierenden Targetdaten mit jeder Korpus-Krakelfolge zu vergleichen, um zu
bestimmen, ob die auf Krakeln beruhenden Targetdaten mit zumindest einer der
Korpus-Krakelfolgen übereinstimmen;
wenn eine übereinstimmende Korpus-Krakelfolge mit den auf Krakeln basierenden
Targetdaten zur Übereinstimmung gebracht ist, Ausführen der Reaktionsbefehle, die den
Prozessor (140) veranlassen, eine den Ort der übereinstimmenden Korpus-Krakelfolge enthaltende
Übereinstimmungsliste zu erzeugen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/254,382 US5687254A (en) | 1994-06-06 | 1994-06-06 | Searching and Matching unrecognized handwriting |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69515371D1 DE69515371D1 (de) | 2000-04-13 |
DE69515371T2 true DE69515371T2 (de) | 2000-07-27 |
Family
ID=22964086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69515371T Expired - Lifetime DE69515371T2 (de) | 1994-06-06 | 1995-06-02 | Suche und Vergleich von nicht-erkannter Handschrift |
Country Status (4)
Country | Link |
---|---|
US (1) | US5687254A (de) |
EP (1) | EP0686931B1 (de) |
JP (1) | JP3483982B2 (de) |
DE (1) | DE69515371T2 (de) |
Families Citing this family (122)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352400B2 (en) | 1991-12-23 | 2013-01-08 | Hoffberg Steven M | Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore |
US5940534A (en) * | 1995-07-17 | 1999-08-17 | Nippon Telegraph And Telephone Corporation | On-line handwritten character recognition using affine transformation to maximize overlapping of corresponding input and reference pattern strokes |
JP3535624B2 (ja) * | 1995-09-21 | 2004-06-07 | キヤノン株式会社 | 検索装置及び方法 |
JP3744997B2 (ja) * | 1996-01-12 | 2006-02-15 | キヤノン株式会社 | 文字認識装置及びその方法 |
US5832474A (en) * | 1996-02-26 | 1998-11-03 | Matsushita Electric Industrial Co., Ltd. | Document search and retrieval system with partial match searching of user-drawn annotations |
US5946499A (en) * | 1996-05-10 | 1999-08-31 | Apple Computer, Inc. | Method and apparatus for processing text inputs from multiple input devices in a plurality of applications |
US6556712B1 (en) * | 1996-05-23 | 2003-04-29 | Apple Computer, Inc. | Methods and apparatus for handwriting recognition |
JP3904637B2 (ja) * | 1996-09-13 | 2007-04-11 | 株式会社東芝 | 情報入力装置及び方法 |
US5970455A (en) * | 1997-03-20 | 1999-10-19 | Xerox Corporation | System for capturing and retrieving audio data and corresponding hand-written notes |
US5953451A (en) * | 1997-06-19 | 1999-09-14 | Xerox Corporation | Method of indexing words in handwritten document images using image hash tables |
US6260044B1 (en) | 1998-02-04 | 2001-07-10 | Nugenesis Technologies Corporation | Information storage and retrieval system for storing and retrieving the visual form of information from an application in a database |
US6285786B1 (en) * | 1998-04-30 | 2001-09-04 | Motorola, Inc. | Text recognizer and method using non-cumulative character scoring in a forward search |
JP4136066B2 (ja) | 1998-05-11 | 2008-08-20 | パイオニア株式会社 | 文書データ作成装置及び文字表示装置 |
US6421453B1 (en) * | 1998-05-15 | 2002-07-16 | International Business Machines Corporation | Apparatus and methods for user recognition employing behavioral passwords |
US6266639B1 (en) * | 1998-05-22 | 2001-07-24 | At&T Corp | Method and apparatus for providing notification of pre-established shorthand notation |
WO1999064982A1 (en) * | 1998-06-09 | 1999-12-16 | Kent Ridge Digital Labs | A recognition process |
US6343148B2 (en) * | 1998-07-22 | 2002-01-29 | International Business Machines Corporation | Process for utilizing external handwriting recognition for personal data assistants |
US6304674B1 (en) | 1998-08-03 | 2001-10-16 | Xerox Corporation | System and method for recognizing user-specified pen-based gestures using hidden markov models |
WO2000019383A2 (en) | 1998-09-11 | 2000-04-06 | Loquitor Technologies Llc | Generation and detection of induced current using acoustic energy |
US6529643B1 (en) | 1998-12-21 | 2003-03-04 | Xerox Corporation | System for electronic compensation of beam scan trajectory distortion |
US7966078B2 (en) | 1999-02-01 | 2011-06-21 | Steven Hoffberg | Network media appliance system and method |
AUPQ439299A0 (en) * | 1999-12-01 | 1999-12-23 | Silverbrook Research Pty Ltd | Interface system |
US6830196B1 (en) | 1999-05-25 | 2004-12-14 | Silverbrook Research Pty Ltd | Identity-coded surface region |
US7170499B1 (en) | 1999-05-25 | 2007-01-30 | Silverbrook Research Pty Ltd | Handwritten text capture via interface surface |
US7243835B2 (en) | 1999-05-25 | 2007-07-17 | Silverbrook Research Pty Ltd | Competition entry via label |
US7142196B1 (en) * | 1999-10-12 | 2006-11-28 | Autodesk, Inc. | Geographical data markup on a personal digital assistant (PDA) |
US7082436B1 (en) | 2000-01-05 | 2006-07-25 | Nugenesis Technologies Corporation | Storing and retrieving the visual form of data |
US7142205B2 (en) | 2000-03-29 | 2006-11-28 | Autodesk, Inc. | Single gesture map navigation graphical user interface for a personal digital assistant |
US7266236B2 (en) * | 2000-05-03 | 2007-09-04 | California Institute Of Technology | Accelerated handwritten symbol recognition in a pen based tablet computer |
US6711699B1 (en) * | 2000-05-04 | 2004-03-23 | International Business Machines Corporation | Real time backup system for information based on a user's actions and gestures for computer users |
US6993328B1 (en) * | 2000-05-08 | 2006-01-31 | Nokia Corporation | Method for over the air mobile station management |
US6625599B1 (en) * | 2000-05-18 | 2003-09-23 | Rajendra Kumar Bera | Method and apparatus for data searching and computer-readable medium for supplying program instructions |
US7397949B2 (en) * | 2000-06-21 | 2008-07-08 | Microsoft Corporation | Serial storage of ink and its properties |
US7298903B2 (en) * | 2001-06-28 | 2007-11-20 | Microsoft Corporation | Method and system for separating text and drawings in digital ink |
US6900819B2 (en) * | 2001-09-14 | 2005-05-31 | Fuji Xerox Co., Ltd. | Systems and methods for automatic emphasis of freeform annotations |
US7120320B2 (en) * | 2001-09-21 | 2006-10-10 | Anoto Ab | Method and apparatus for displaying a handwritten message based on position and time data |
SE520022C2 (sv) * | 2001-09-21 | 2003-05-06 | Anoto Ab C O C Technologies Ab | Förfarande och anordning för segmentering av handskrivna objekt |
AUPR824301A0 (en) * | 2001-10-15 | 2001-11-08 | Silverbrook Research Pty. Ltd. | Methods and systems (npw001) |
KR20030032499A (ko) * | 2001-10-18 | 2003-04-26 | 한국전자통신연구원 | 시퀀스 데이터베이스에서 타임 워핑 기반의 서브시퀀스매칭방법 |
US7712028B2 (en) * | 2001-10-19 | 2010-05-04 | Xerox Corporation | Using annotations for summarizing a document image and itemizing the summary based on similar annotations |
US20040034832A1 (en) * | 2001-10-19 | 2004-02-19 | Xerox Corporation | Method and apparatus for foward annotating documents |
AUPR890201A0 (en) | 2001-11-16 | 2001-12-06 | Silverbrook Research Pty. Ltd. | Methods and systems (npw005) |
AUPS020302A0 (en) * | 2002-01-31 | 2002-02-21 | Silverbrook Research Pty. Ltd. | Methods and systems (npw007) |
US6990639B2 (en) * | 2002-02-07 | 2006-01-24 | Microsoft Corporation | System and process for controlling electronic components in a ubiquitous computing environment using multimodal integration |
US6938222B2 (en) * | 2002-02-08 | 2005-08-30 | Microsoft Corporation | Ink gestures |
US7062090B2 (en) * | 2002-06-28 | 2006-06-13 | Microsoft Corporation | Writing guide for a free-form document editor |
AU2002952106A0 (en) * | 2002-10-15 | 2002-10-31 | Silverbrook Research Pty Ltd | Methods and systems (npw008) |
JP2006506759A (ja) * | 2002-11-12 | 2006-02-23 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 身振り認知に基づいた装置の使用を可能にする使用許可手段を有する装置 |
US20050032030A1 (en) * | 2003-08-04 | 2005-02-10 | Tzong-Wei Uen | Digital notebook |
WO2005017768A1 (en) * | 2003-08-15 | 2005-02-24 | Silverbrook Research Pty Ltd | Improving accuracy in searching digital ink |
US20050114115A1 (en) * | 2003-11-26 | 2005-05-26 | Karidis John P. | Typing accuracy relaxation system and method in stylus and other keyboards |
US8442331B2 (en) | 2004-02-15 | 2013-05-14 | Google Inc. | Capturing text from rendered documents using supplemental information |
US7707039B2 (en) * | 2004-02-15 | 2010-04-27 | Exbiblio B.V. | Automatic modification of web pages |
FI117308B (fi) * | 2004-02-06 | 2006-08-31 | Nokia Corp | Eleohjausjärjestelmä |
KR100587540B1 (ko) * | 2004-02-14 | 2006-06-08 | 삼성전자주식회사 | 디지털 잉크 질의 검색 장치 및 방법 |
US10635723B2 (en) | 2004-02-15 | 2020-04-28 | Google Llc | Search engines and systems with handheld document data capture devices |
US7812860B2 (en) | 2004-04-01 | 2010-10-12 | Exbiblio B.V. | Handheld device for capturing text from both a document printed on paper and a document displayed on a dynamic display device |
US8081849B2 (en) | 2004-12-03 | 2011-12-20 | Google Inc. | Portable scanning and memory device |
US20060081714A1 (en) | 2004-08-23 | 2006-04-20 | King Martin T | Portable scanning device |
US7990556B2 (en) | 2004-12-03 | 2011-08-02 | Google Inc. | Association of a portable scanner with input/output and storage devices |
US9008447B2 (en) | 2004-04-01 | 2015-04-14 | Google Inc. | Method and system for character recognition |
US9143638B2 (en) | 2004-04-01 | 2015-09-22 | Google Inc. | Data capture from rendered documents using handheld device |
US7894670B2 (en) | 2004-04-01 | 2011-02-22 | Exbiblio B.V. | Triggering actions in response to optically or acoustically capturing keywords from a rendered document |
US9116890B2 (en) | 2004-04-01 | 2015-08-25 | Google Inc. | Triggering actions in response to optically or acoustically capturing keywords from a rendered document |
US8146156B2 (en) | 2004-04-01 | 2012-03-27 | Google Inc. | Archive of text captures from rendered documents |
US8713418B2 (en) | 2004-04-12 | 2014-04-29 | Google Inc. | Adding value to a rendered document |
US8874504B2 (en) | 2004-12-03 | 2014-10-28 | Google Inc. | Processing techniques for visual capture data from a rendered document |
US8620083B2 (en) | 2004-12-03 | 2013-12-31 | Google Inc. | Method and system for character recognition |
US8489624B2 (en) | 2004-05-17 | 2013-07-16 | Google, Inc. | Processing techniques for text capture from a rendered document |
US8346620B2 (en) | 2004-07-19 | 2013-01-01 | Google Inc. | Automatic modification of web pages |
US7372993B2 (en) * | 2004-07-21 | 2008-05-13 | Hewlett-Packard Development Company, L.P. | Gesture recognition |
US7721197B2 (en) * | 2004-08-12 | 2010-05-18 | Microsoft Corporation | System and method of displaying content on small screen computing devices |
US8160363B2 (en) * | 2004-09-25 | 2012-04-17 | Samsung Electronics Co., Ltd | Device and method for inputting characters or drawings in a mobile terminal using a virtual screen |
US7561740B2 (en) * | 2004-12-10 | 2009-07-14 | Fuji Xerox Co., Ltd. | Systems and methods for automatic graphical sequence completion |
WO2006091156A1 (en) * | 2005-02-28 | 2006-08-31 | Zi Decuma Ab | Recognition graph |
US7813597B2 (en) | 2005-03-18 | 2010-10-12 | The Invention Science Fund I, Llc | Information encoded in an expression |
US8340476B2 (en) | 2005-03-18 | 2012-12-25 | The Invention Science Fund I, Llc | Electronic acquisition of a hand formed expression and a context of the expression |
US8749480B2 (en) | 2005-03-18 | 2014-06-10 | The Invention Science Fund I, Llc | Article having a writing portion and preformed identifiers |
US20060212430A1 (en) * | 2005-03-18 | 2006-09-21 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Outputting a saved hand-formed expression |
EP2067119A2 (de) | 2006-09-08 | 2009-06-10 | Exbiblio B.V. | Optische scanner, zum beispiel tragbare optische scanner |
US20080104020A1 (en) * | 2006-10-27 | 2008-05-01 | Microsoft Corporation | Handwritten Query Builder |
DE102007011574A1 (de) * | 2007-03-08 | 2008-09-11 | Srs-Management Gmbh | Verfahren zur Korrektur von elektronisch erfassten handschriftlichen Notizen |
US8094939B2 (en) * | 2007-06-26 | 2012-01-10 | Microsoft Corporation | Digital ink-based search |
US8315482B2 (en) * | 2007-06-26 | 2012-11-20 | Microsoft Corporation | Integrated platform for user input of digital ink |
US8683582B2 (en) | 2008-06-16 | 2014-03-25 | Qualcomm Incorporated | Method and system for graphical passcode security |
US8146020B2 (en) * | 2008-07-24 | 2012-03-27 | Qualcomm Incorporated | Enhanced detection of circular engagement gesture |
EP2327005B1 (de) * | 2008-07-25 | 2017-08-23 | Qualcomm Incorporated | Verbesserte erfassung einer winkgeste |
US20100100866A1 (en) * | 2008-10-21 | 2010-04-22 | International Business Machines Corporation | Intelligent Shared Virtual Whiteboard For Use With Representational Modeling Languages |
US20100114619A1 (en) * | 2008-10-30 | 2010-05-06 | International Business Machines Corporation | Customized transformation of free-form business concepts to semantically rich business models |
US9501694B2 (en) | 2008-11-24 | 2016-11-22 | Qualcomm Incorporated | Pictorial methods for application selection and activation |
WO2010096192A1 (en) | 2009-02-18 | 2010-08-26 | Exbiblio B.V. | Interacting with rendered documents using a multi-function mobile device, such as a mobile phone |
EP2406767A4 (de) | 2009-03-12 | 2016-03-16 | Google Inc | Automatische bereitstellung von mit erfassten informationen, z. b. in echtzeit erfassten informationen, assoziierten inhalten |
US8447066B2 (en) | 2009-03-12 | 2013-05-21 | Google Inc. | Performing actions based on capturing information from rendered documents, such as documents under copyright |
US8306329B2 (en) * | 2009-08-17 | 2012-11-06 | Indian Institute Of Science | System and method for searching handwritten texts |
CN102012900B (zh) * | 2009-09-04 | 2013-01-30 | 阿里巴巴集团控股有限公司 | 信息检索方法和系统 |
FR2950713A1 (fr) * | 2009-09-29 | 2011-04-01 | Movea Sa | Systeme et procede de reconnaissance de gestes |
US9081799B2 (en) | 2009-12-04 | 2015-07-14 | Google Inc. | Using gestalt information to identify locations in printed information |
US9323784B2 (en) | 2009-12-09 | 2016-04-26 | Google Inc. | Image search using text-based elements within the contents of images |
US8827710B2 (en) | 2011-05-19 | 2014-09-09 | Microsoft Corporation | Realtime user guidance for freehand drawing |
US9646313B2 (en) * | 2011-12-13 | 2017-05-09 | Microsoft Technology Licensing, Llc | Gesture-based tagging to view related content |
CN103713730B (zh) * | 2012-09-29 | 2018-03-20 | 炬才微电子(深圳)有限公司 | 应用于智能终端的空中手势识别方法及装置 |
IN2013CH00469A (de) | 2013-01-21 | 2015-07-31 | Keypoint Technologies India Pvt Ltd | |
EP2946272A4 (de) * | 2013-01-21 | 2016-11-02 | Keypoint Technologies India Pvt Ltd | Texteingabesystem und verfahren |
JP5752157B2 (ja) * | 2013-01-31 | 2015-07-22 | シャープ株式会社 | 文字表示装置及び文字表示方法 |
US9880990B2 (en) | 2013-03-14 | 2018-01-30 | Microsoft Technology Licensing, Llc | Leveraging previous instances of handwriting for handwriting beautification and other applications |
US9465985B2 (en) | 2013-06-09 | 2016-10-11 | Apple Inc. | Managing real-time handwriting recognition |
US20140363082A1 (en) * | 2013-06-09 | 2014-12-11 | Apple Inc. | Integrating stroke-distribution information into spatial feature extraction for automatic handwriting recognition |
US9495620B2 (en) | 2013-06-09 | 2016-11-15 | Apple Inc. | Multi-script handwriting recognition using a universal recognizer |
US10032065B2 (en) | 2013-10-25 | 2018-07-24 | Wacom Co., Ltd. | Dynamic handwriting verification, handwriting-based user authentication, handwriting data generation, and handwriting data preservation |
US9235748B2 (en) | 2013-11-14 | 2016-01-12 | Wacom Co., Ltd. | Dynamic handwriting verification and handwriting-based user authentication |
JP5841297B1 (ja) | 2013-10-25 | 2016-01-13 | 株式会社ワコム | 手書きデータ出力方法及びコンピュータシステム |
US9418281B2 (en) * | 2013-12-30 | 2016-08-16 | Google Inc. | Segmentation of overwritten online handwriting input |
CN104267835B (zh) * | 2014-09-12 | 2017-08-08 | 西安闻泰电子科技有限公司 | 自适应手势识别方法 |
TWI569176B (zh) * | 2015-01-16 | 2017-02-01 | 新普科技股份有限公司 | 手寫軌跡識別方法與系統 |
US9665786B2 (en) * | 2015-02-20 | 2017-05-30 | Conduent Business Services, Llc | Confirming automatically recognized handwritten answers |
JP6515603B2 (ja) * | 2015-03-13 | 2019-05-22 | 日本電気株式会社 | 電子ホワイトボードシステム、電子ホワイトボードアクセス権付与方法およびそのプログラム |
US10347016B2 (en) * | 2016-01-12 | 2019-07-09 | Monotype Imaging Inc. | Converting font contour curves |
DK179329B1 (en) | 2016-06-12 | 2018-05-07 | Apple Inc | Handwriting keyboard for monitors |
CN106127125B (zh) * | 2016-06-16 | 2019-04-02 | 山东大学 | 基于人体行为特征的分布式dtw人体行为识别方法 |
US10936792B2 (en) | 2017-12-21 | 2021-03-02 | Monotype Imaging Inc. | Harmonizing font contours |
US11194467B2 (en) | 2019-06-01 | 2021-12-07 | Apple Inc. | Keyboard management user interfaces |
CN111159223B (zh) * | 2019-12-31 | 2021-09-03 | 武汉大学 | 一种基于结构化嵌入的交互式代码搜索方法及装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE31200F1 (en) * | 1976-01-19 | 1990-05-29 | Raster scan display apparatus for dynamically viewing image elements stored in a random access memory array | |
US4731857A (en) * | 1984-06-29 | 1988-03-15 | International Business Machines Corporation | Recognition system for run-on handwritten characters |
JPS6282486A (ja) * | 1985-10-08 | 1987-04-15 | Hitachi Ltd | オンライン手書き図形認識装置 |
US5191622A (en) * | 1987-07-17 | 1993-03-02 | Hitachi, Ltd. | Hand-written character recognition apparatus with a personal dictionary preparation function |
AU624205B2 (en) * | 1989-01-23 | 1992-06-04 | General Electric Capital Corporation | Variable length string matcher |
US5062143A (en) * | 1990-02-23 | 1991-10-29 | Harris Corporation | Trigram-based method of language identification |
US5396588A (en) * | 1990-07-03 | 1995-03-07 | Froessl; Horst | Data processing using digitized images |
US5161245A (en) * | 1991-05-01 | 1992-11-03 | Apple Computer, Inc. | Pattern recognition system having inter-pattern spacing correction |
US5267332A (en) * | 1991-06-19 | 1993-11-30 | Technibuild Inc. | Image recognition system |
US5235651A (en) * | 1991-08-06 | 1993-08-10 | Caere Corporation | Rotation of images for optical character recognition |
US5321770A (en) * | 1991-11-19 | 1994-06-14 | Xerox Corporation | Method for determining boundaries of words in text |
US5333209A (en) * | 1992-03-24 | 1994-07-26 | At&T Bell Laboratories | Method of recognizing handwritten symbols |
US5463696A (en) * | 1992-05-27 | 1995-10-31 | Apple Computer, Inc. | Recognition system and method for user inputs to a computer system |
US5392363A (en) * | 1992-11-13 | 1995-02-21 | International Business Machines Corporation | On-line connected handwritten word recognition by a probabilistic method |
US5438630A (en) * | 1992-12-17 | 1995-08-01 | Xerox Corporation | Word spotting in bitmap images using word bounding boxes and hidden Markov models |
US5528701A (en) * | 1994-09-02 | 1996-06-18 | Panasonic Technologies, Inc. | Trie based method for indexing handwritten databases |
DE69428527T2 (de) * | 1994-07-04 | 2002-05-08 | Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto | Kritzlervergleich |
-
1994
- 1994-06-06 US US08/254,382 patent/US5687254A/en not_active Expired - Lifetime
-
1995
- 1995-05-30 JP JP13193295A patent/JP3483982B2/ja not_active Expired - Lifetime
- 1995-06-02 EP EP95303792A patent/EP0686931B1/de not_active Expired - Lifetime
- 1995-06-02 DE DE69515371T patent/DE69515371T2/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP3483982B2 (ja) | 2004-01-06 |
US5687254A (en) | 1997-11-11 |
EP0686931A2 (de) | 1995-12-13 |
EP0686931B1 (de) | 2000-03-08 |
EP0686931A3 (de) | 1997-01-08 |
DE69515371D1 (de) | 2000-04-13 |
JPH07334296A (ja) | 1995-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69515371T2 (de) | Suche und Vergleich von nicht-erkannter Handschrift | |
DE69428590T2 (de) | Auf kombiniertem lexikon und zeichenreihenwahrscheinlichkeit basierte handschrifterkennung | |
DE69328802T2 (de) | Vorrichtung und Verfahren zur Identifizierung von Eingabedaten, die von einer Stift-basierten Benutzerschnittstelle erzeugt werden | |
Story et al. | The RightPages image-based electronic library for alerting and browsing | |
DE69731418T2 (de) | Such- und Wiederauffindungssystem für Dokumente mit Suchverfahren von teilweise passenden, benutzergezeichneten Anmerkungen | |
DE69814104T2 (de) | Aufteilung von texten und identifizierung von themen | |
DE69610478T2 (de) | Zeichenerkennungssystembestimmung von abgetasteten und "echtzeit"-handgeschriebenen zeichen | |
DE60316503T2 (de) | Klassifikationsanalyse von Freiformeingaben mit digitaler Tinte | |
DE69325204T2 (de) | Verfahren und Vorrichtung zum Weiterentwickeln einer Anfangssammlung von Handschriftprototypen zu einer anwender-spezifischen Sammlung | |
DE69230092T2 (de) | Verfahren und Gerät zur Zeichenerkennung | |
DE69425607T2 (de) | Selektive Einrichtung und Verfahren zur Dokumentenwiederauffindung. | |
DE69829074T2 (de) | Identifizierung der sprache und des zeichensatzes aus text-repräsentierenden daten | |
DE60315506T2 (de) | Identifizierung von kritischen merkmalen in einem geordneten skala-raum | |
Wilkinson et al. | Neural Ctrl-F: segmentation-free query-by-string word spotting in handwritten manuscript collections | |
DE10317234A1 (de) | Systeme und Verfahren für eine verbesserte Genauigkeit von einem extrahierten digitalen Inhalt | |
Singh et al. | Benchmark databases of handwritten Bangla-Roman and Devanagari-Roman mixed-script document images | |
Panyam et al. | Modeling of palm leaf character recognition system using transform based techniques | |
Kia et al. | A novel method for recognition of Persian alphabet by using fuzzy neural network | |
Mohiuddin et al. | Unconstrained Bangla online handwriting recognition based on MLP and SVM | |
DE102019125937A1 (de) | Informationsverarbeitungsverfahren und elektronische Vorrichtung | |
DE69419837T2 (de) | Vorrichtung zur kontinuierlichen Erkennung der Gebärdensprache und Eingangvorrichtung dafür | |
Singh et al. | A benchmark dataset of online handwritten gurmukhi script words and numerals | |
Vellingiriraj et al. | Text analysis and information retrieval of historical Tamil ancient documents using machine translation in image zoning | |
DE102017106663A1 (de) | Informationsverarbeitungsverfahren und elektronisches gerät | |
EP1603072A1 (de) | Verfahren und Einrichtung zur Strukturanalyse eines Dokuments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |