Verfahren zur dynamischen Kalibrierung von Kontaktbildschirmen
Die vorliegende Erfindung betrifft ein Verfahren zur dynamischen Kalibrierung von Kontaktbildschirmen gemäss Patentanspruch 1.
Im IBM Technical Disclosure Bulletin Vol. 32, No. 9B, February 1990, New York US, S. 250 - 253 ist eine benutzergeführte Kalibrierungsmethode beschrieben, die - anders als die meisten bekannten Methoden, für die Pen-Down ausschlaggebend ist - das Abheben des Stiftes oder Fingers zur Grundlage ihrer Berechnungen macht. Der Benutzer muss dazu allerdings mehrere Durchläufe eines geführten Tests absolvieren.
Im Patentdokument US005801941A wird ein mobiles Gerät beschrieben, das über ein sogenanntes "Soft Keyboard" verfügt. Dieses besteht aus sechseckigen Tasten, die besonders Platz sparend sein sollen, was nur bedingt einleuchtet, da 16 von 32 Tasten beschnitten und daher gar nicht sechseckig sind. Um die Treffsicherheit der User beim Benutzen der Tastatur zu verbessern, wird ein Kontrollprogramm eingesetzt. Es geht hierbei ausdrücklich nicht darum, das bekannte Parallaxe-Problem zu lösen, sondern lediglich um die Korrektur der vom User absichtlich oder unbewusst herbeigeführten horizontalen oder vertikalen Abweichungen vom Tastenmittelpunkt. Es wird davon ausgegangen, dass Benutzer die Tasten entweder zu weit unten treffen, weil sie sich selbst mit dem Eingabemittel (Stift oder auch Finger) nicht die Sicht auf die angepeilte Taste verstellen wollen, oder aus dem gleichen oder einem anderen Grunde die Tasten zu weit links oder rechts treffen, je nachdem, ob sie Links- oder Rechtshänder sind. Das Treffverhalten wird anhand von einem einmaligen Test (einer vorgegebenen Zeichenfolge) berechnet. Hierbei wird ein Durchschnittswert ermittelt. Danach gleicht das Kontrollsystem jede Eingabe unter Zuhilfenahme der errechneten durchschnittlichen Abweichung aus. Damit wird ein Benutzer sozusagen zum "5-Pixel-nach-unten- Abweicher', dessen Eingaben alle 5 Pixel nach oben korrigiert werden. Die Prämisse, dass ein Benutzer Tasten standardmässig "falsch" trifft, erscheint für
genau so uneinsichtig wie die Annahme, dass dieses Problem auch nur annähernd so relevant ist wie die während der Eingabe jeweils sich verändernde Parallaxe.
Das Patentdokument US6256021 B1 beschreibt ein Gerät bzw. eine Methode zur Berechnung der Zielflächen auf Bedienelementen, abhängig von dem Winkel bzw. der Richtung der Eingabe durch den Benutzer.
Hierbei wird der Benutzer vorab gebeten, einzugeben, ob er Links- oder Rechtshänder ist. Abhängig von dieser Eingabe werden die Zielflächen für alle berührbaren Elemente auf dem Display berechnet, wobei auch die jeweilige Position des Elements auf dem Display berücksichtigt wird. Hierbei handelt es sich um eine einmalige Berechnung, die einmalig pro Log-In erfolgt, falls es sich um einen öffentlichen Terminal handelt. Dies ist somit kein dynamisches Verfahren. Das Parallaxe-Problem beispielsweise wird davon nicht berührt bzw. gelöst.
Das Patentdokument US20020070926A1 beschreibt eine Methode zur Touchscreen- Kalibrierung, welche eine Ergebnisdatenbank benutzt. Die Kalibrierung erfolgt mit Benutzerführung, d.h. entsprechend bekannter Touchscreen-Kalibrierungsmethoden gibt das System Zielpunkte vor, die als Kalibrierungsreferenzen dienen. Der Punkt, den der vom System dazu aufgeforderte Benutzer berührt, wird mit dem Referenzpunkt verglichen. In diesem Patent wird zwischen gültigen und ungültigen Eingaben unterschieden. Die Einschätzung der Gültigkeit kann nach unterschiedlichen Gesichtspunkten erfolgen, z.B. abhängig davon, ob der vom Benutzer "getroffene" Punkt innerhalb oder ausserhalb eines bestimmten um den Referenzpunkt befindlichen Radius liegt. Erst vom System als gültig bewertete Eingaben setzen den dem Patent wesentlichen Prozess in Gang, der auf der Berücksichtigung einer Ergebnisdatenbank beruht. Die Datenbank enthält nur frühere gültige Ergebnisse von Kalibrierungsvorgängen mit Benutzerführung. Es berücksichtigt also nur das Treffverhalten am Beginn des Eingabeprozess unter geführten Bedingungen.
Die Gewichtung der Ergebnisse aus der beschriebenen Datenbank kann nach unterschiedlichen Kriterien erfolgen, z.B. nach deren Alter. Wesentlich ist, dass aus der Datenbank ein Ergebnis ermittelt wird, welches das Ergebnis des durch die als ungültig bewertete Benutzereingabe abgebrochenen aktuellen Kalibrierungsvorgangs ersetzt.
In EP0618528B1 ist eine dynamische Ausrichtungsvorrichtung für Berührungsanzeigeknöpfe beschrieben, die das Problem der genauen Bedienung von Berührungsanzeigeknöpfen an öffentlichen Touchscreens lösen soll. Anhand von zwei nacheinander zu bedienenden Buttons richtet sich der Touchscreen nach Grosse bzw. Berührungsrichtung des Bedienenden aus (eine grosse Person berührt z.B. den Button eher in der oberen Region). Die Punkte, an denen die beiden Ausrichtungsbuttons berührt werden, dienen als Kalibrierungsorientierung. Auf diese Weise können mehr und kleinere Bedienflächen zur Auswahl stehen, weil sich die Treffgenauigkeit der Benutzer verbessert. Da die erzielte Genauigkeit allerdings nur auf der Auswertung von zwei Eingaben, beruht, ist sie nicht sehr verlässlich. Zudem handelt es sich um einen geführten Kalibrierungsprozess, der einen zusätzlichen Aufwand für den User bedeutet, was nachteilig ist.
Aufgabe der vorliegenden Erfindung ist es daher, unter Vermeidung der erwähnten Nachteile ein Verfahren zur dynamischen Kalibrierung von Kontaktbildschirmen anzugeben, das die Veränderungen im Benutzerverhalten laufend berücksichtigt und das als Hintergrundfunktion abläuft ohne dass der Benutzer etwas bemerkt.
Die Aufgabe wird gelöst durch ein Verfahren gemäss Patentanspruch 1.
Das Verfahren soll die Eingabe auf Touchscreengeräten hinsichtlich der Treffgenauigkeit verbessern. Hier besteht ein grosser Bedarf, da die bisherigen Kalibrierungsmethoden das drängende Parallaxen-Problem nicht haben lösen können. Nach wie vor weichen die Koordinaten vom Berührungspunkt des Eingabemittels (Stift oder Finger) und die Koordinaten des Cursors deutlich voneinander ab. Dies kann sich nach einiger Zeit des Arbeitens und der Positionsveränderung des Users noch verschlimmern. Die standardmässige einmalige Kalibrierung auf der Basis von nur vier Eingaben, die noch dazu in einer "Laborsituation" erfolgt, bietet da keine Abhilfe. Zudem merken viele Benutzer häufig nicht, wenn eine Neukalibrierung nötig ist. Mit Hilfe des Verfahrens wird die räumliche Augenposition (x/y/z) über dem Bildschirm ermittelt um eine "Positions-dynamische Parallaxen-Korrektur" auszuführen.
Mit Hilfe des Strahlensatzes, dem fixen Abstand zwischen Kontaktfläche und Bild-
schirmfläche sowie der Augenposition (x/y/z) wird für jedes Bildschirmobjekt gemäss der Position seines Mittelpunkts eine "Positions-dynamische Parallaxen-Korrektur" berechnet. Diese Korrektur lässt sich für jedes Bildschirmobjekt, auch neu hinzukommende oder verschobene, anhand ihrer Bildschirmkoordinate fortwährend berechnen.
Das Verfahren wird im Folgenden anhand der Figuren beschrieben. Es zeigen:
Fig. 1 Einführende Darstellung einer 1 D-Kalibrierung in der (x,z)-Ebene mit einem Bildschirmobjekt und einem Kontaktflächen-Punkt
Fig. 2A Darstellung einer 1 D-Kalibrierung in der (x,z)-Ebene mit einem Bildschirmobjekt und 3 Kontaktflächen-Punkten und Mittelung
Fig. 2B Datentabelle zu Fig. 2A
Fig. 2C Zweite Darstellung einer 1 D-Kalibrierung in der (x.z)-Ebene mit einem Bildschirmobjekt und 3 Kontaktflächen-Punkten und Mittelung
Fig. 3A-3D Tabellen zur 1 D-Kalibrierung in der (x,z)-Ebene mit 1 Bildschirmobjekt und 3 Kontaktflächen-Punkten mit Mittelung und vorgängiger Gewichtung
Fig. 4 Flussdiagramm für eine 1 D-Kalibrierung
Fig. 5 Einführende Darstellung einer 2D-Kalibrierung in der (x,z)-Ebene mit 2
Bildschirmobjekten und Augenposition
Fig. 6 (x,z)-Kalibrierungs-Graph mit Kalibrierungskomponente bx
Fig. 7 Darstellung einer 2D-Kalibrierung in der (x.z)-Ebene mit 2 Bildschirmobjekten und je einem Kontaktflächen-Punkt
Fig. 8 (x,z)-Kalibrierungs-Graph zentriert im Punkt S'
Fig. 9 Darstellung einer 2D-Kalibrierung in der (x,z)-Ebene mit den Schnittpunkten für 3 Bildschirmobjekte
Fig. 10 Ausschnitt aus einer Tabelle einer 2D-Kalibrierung in der (x,z)-Ebene mit einer dritten Mittelung über die Schnittpunkte von 3 und mehr Bildschirmobjekten
In der vorliegenden Erfindung werden folgende Begriffe definiert:
1 D-Kalibrierung:
Kalibrierung eines Punktes A in der x-Richtung bezüglich einem Bildschirmobjekt.
2D-Kalibrierunq:
Kalibrierung von Punkten A, B in der x-Richtung und z-Richtung bezüglich > 2 Bildschirmobjekten.
3D-Kalibrierung:
Kalibrierung von Punkten A, B1 C in der x.y-Richtung und z-Richtung bezüglich > 3
Bildschirmobjekten.
Zyklopauge:
Hypothetisches Auge des Bedieners in einer Position, die sich zwischen den beiden
Augen des Bedieners befindet.
Positionsdvnamische Parallaxen-Korrektur:
Korrekturg rossen des erfindungsgemässen Verfahrens, die die Parallaxe und die Augenposition des Bedieners berücksichtigen und kontinuierlich in einem Hintergrundprogramm ermittelt werden. Sie stellen die zentralen Grossen für die Kalibrierung des Kontakt-Bildschirmes dar.
Fig. 1 zeigt eine einführende Darstellung einer 1 D-Kalibrierung in der (x,z)-Ebene mit einem Bildschirmobjekt und einem Kontaktflächen-Punkt.
Die x-Achse eines (X,Z)-Koordinatensystems ist parallel zu einer Kante eines Kontaktbildschirms ausgerichtet und liegt in dessen Bildschirmfläche BF. Über der Bildschirmfläche BF liegt mit einem Abstand d eine Kontaktfläche KF, die in der (x,z)- Ebene als Linie KF dargestellt ist und parallel zur x-Achse verläuft. Die z-Achse verläuft senkrecht zur x-Achse und ist zweckmässigerweise in einer Ecke des Kontaktbildschirms angeordnet, wo auch der Nullpunkt des (X,Z)-Koordinatensystems liegt. Auf der Kontaktfläche KF befindet sich ein Berührungspunkt A, dessen Projektion auf die Bildschirmfläche den Punkt A' bildet. Den Punkten A und A' sind im (X,Z)-Koordina- tensystem die Koordinaten A(x,z) und A'(x,z) zugeordnet. Die z-Komponente des Punktes A' ist null, während die z-Komponente des Punktes A die Distanz d beträgt.
Die Kontaktfläche und die Bildschirmfläche liegen nahe aufeinander, sodass die Distanz d in der Regel 0,5 - 4,0 mm beträgt. In Fig. 1 ist die Distanz d aus Gründen der Übersichtlichkeit überhöht dargestellt. Auf der Bildschirmfläche BF befindet sich ein Bildschirmobjekt BO, das in der Regel eine Taste oder ein Balken ist, aber auch eine beliebige Form aufweisen kann. Bildschirmobjekte stehen auf dem Kontaktbildschirm mit verschiedenster Herkunft zur Verfügung. Entweder stammen sie von einem Betriebssystem oder von einem weiteren Programm. Bildschirmobjekte beliebiger Art bilden die Basis für eine dynamische Kalibrierung.
Wenn nun die Eingabe durch den Benutzer, bzw. den Bediener im Berührungspunkt A erfolgt ist, wird geprüft, ob sich der Punkt A, bzw. der Punkt A' innerhalb des Bildschirmobjektes BO befindet, bzw. ob der Punkt A' zum Bildschirmobjekt BO gehört. Da auch den Begrenzungen des Bildschirmobjektes BO Koordinaten zugeordnet sind, wird die Zugehörigkeit des Punktes A' zum Bildschirmobjekt in bekannter Weise ermittelt. Wenn der Punkt A' nicht zum Bildschirmobjekt BO gehört, bzw. ausserhalb diesem liegt, wird der Punkt A' für das Kalibrierungsverfahren nicht beigezogen, bzw. er wird verworfen. Wenn der Punkt A' jedoch zum Bildschirmobjekt BO gehört, wird der Bildschirmobjekt-Mittelpunkt O, bzw. Bildschirmobjekt-Schwerpunkt berechnet. Anschliessend wird ein Abweichungsvektor a' berechnet, der vom Bildschirmobjekt- Mittelpunkt O zum Punkt A' führt und dessen x-Komponente a'x beträgt. Mit dem Fettdruck aJ wird eine Vektorgrösse dargestellt, was auch im weiteren der Fall sein wird. Der Abweichungsvektor a' definiert nun einen Kalibrierungsvektor a, indem erden Abweichungsvektor a' mit negativem Vorzeichen darstellt, nämlich -a' und dessen x- Komponente -ax. Somit ergibt sich der elementare Kalibrierungsschritt als: Ax caI = Ax + ax = Ax - a'x, wobei Ax cal die kalibrierte x-Komponente des Punktes A auf der Kontaktfläche KF darstellt.
Ziel des Bedieners ist es, das Bildschirmobjekt immer in der Mitte zu treffen. In der Realität ist dies jedoch nicht der Fall. So liegen die Trefferbilder auf einem Bildschirmobjekt meist nicht zentriert um die Mitte, sondern einseitig exzentrisch. Tatsache ist, dass der Bediener die Bildschirmobjekte grossmehrheitlich trifft.
Es kann vorkommen, dass der Bediener ein Bildschirmobjekt nicht trifft, bzw. sich vertippt und den unerwünschten Vorgang erkennt. Für diesen Fall ist eine Ignorierfunktion vorgesehen, mittels derer der Bediener in der Lage ist, den fehlerhaften
Berührungspunkt zu löschen, bzw. zu ignorieren und damit dessen Eingang in die Ergebnisdatenbank zu unterbinden oder abzublocken. Dies erfolgt in der Regel über irgendeinen Befehl, der z.B. über eine Hilfstaste ausgelöst werden kann. Dies ist jedoch nicht zwingend nötig.
Fig. 2A zeigt eine Darstellung einer 1 D-Kalibrierung in der (x.z)-Ebene mit einem Bildschirmobjekt und 3 Kontaktflächen-Punkten und Mittelung.
In einer ähnlichen Anordnung wie in Fig. 1 befinden sich auf der Kontaktfläche die Berührungspunkte A(1 ), A(2) und A(3), deren Projektionen auf die Bildschirmfläche die Punkte A'(1), A'(2) und A'(3) bilden. Den Punkten A(1 ), A(2), A(3) und A'(1), A'(2), A'(3) sind im (X,Z)-Koordinatensystem die Koordinaten A(1 ;x,z), .... und A'(1 ;x,z), ... zugeordnet. Die Punkte A(1 ), A(2) und A(3) sind entstanden durch die Eingabe des Bedieners mit dem Ziel das Bildschirmobjekt zu treffen, was gelungen ist, denn die drei Punkte liegen innerhalb des Bildschirmobjektes. Für jeden der Punkte A'(1 ), A'(2), A'(3) werden Abweichungsvektoren a'(1), a'(2), a'(3) berechnet, die vom Bildschirmobjekt- Mittelpunkt O zum den Punkten A'(1 ), A'(2), A'(3) führen und deren x-Komponenten a'xO). a'x(2) und a'x(3) betragen. Aus den drei Abweichungsvektoren a'(1), a'(2), a'(3) wird anschliessend ein gemittelter Abweichungsvektor a'm berechnet, dessen gemittelte x-Komponente a'm x ist. Analog zum bereits Beschriebenen definiert der Abweichungsvektor a'm nun einen Kalibrierungsvektor am, indem er den Abweichungsvektor a'm mit negativem Vorzeichen darstellt, nämlich -a'm und dessen x-Komponente -am x. Analog ergibt sich als Kalibrierungsschritt: Am xcal = Am x + am_x = AmiX - a'm χ) wobei Am x cal die kalibrierte x-Komponente eines gemittelten Punktes A auf der Kontaktfläche KF darstellt.
Fig. 2B zeigt eine Tabelle der abgespeicherten Daten zur 1 D-Kalibrierung mit Mittelung. Die Ereignisse 1 , 2, 3 haben die Werte +12, +4 und -12 als x-Komponenten der Abweichungsvektoren a'(1), a'(2) und a'(3) geliefert. Nach Vorliegen von einer Anzahl N von Ereignissen mit N = 3 wurde erstmals ein erster Mittelwert, bzw. ein Mittelwert (I) berechnet, was den Wert 1 ,33 für die x-Komponente a'm x des gemittelten Abweichungsvektors a'm geliefert hat. Mit umgekehrtem Vorzeichen ergab sich ein Wert von -1 ,33 für die x-Komponente -a'm xdes gemittelten Kalibriemngsvektors am. Die Zahl N ist in der Regel kleiner als 100, vorzugsweise 8 bis 30. Die Zahl N stellt
gleichzeitig auch eine sog. 'Fenstergrösse' dar, wie sie in bekannter Weise bei gleitenden Mittelwerten (moving average) verwendet werden (M. R. Spiegel, L. J. Stephens, Statistik, S. 529-530, Verlag Moderne Industrie (2003)).
Fig. 2C zeigt eine zweite Darstellung einer 1 D-Kalibrierung in der (x.z)-Ebene mit einem Bildschirmobjekt und 3 Kontaktflächen-Punkten und Mittelung. In einer ähnlichen Anordnung wie in Fig. 1 befinden sich auf der Kontaktfläche die Berührungspunkte A(1), A(2) und A(3), deren Projektionen auf die Bildschirmfläche die Punkte A'(1 ), A'(2) und A'(3) bilden. Von den Punkten A(1 ), A(2), A(3) zum Bildschirmobjekt-Mittelpunkt O führende Linien A(I)-O, A(2)-O, A(3)-O bilden zur Bildschirmflächenlinie BF Winkel α(1 ), α(2) und α(3). Aus den drei Winkeln α(1 ), α(2), α(3) wird anschliessend ein gemittelter Winkel αm berechnet, dem auf der Kontaktflächenlinie KF ein gemittelter Berührungspunkt Am entspricht, der durch eine zum Bildschirmobjekt- Mittelpunkt O führende Linie Am-O zur Bildschirmflächenlinie BF den Winkel αm bildet. Für den Punkt Am wird der Abweichungsvektor a'm berechnet, der vom Bildschirmobjekt-Mittelpunkt O zum Punkt Am führt, und dessen gemittelte x-Komponente a'm x ist. Analog ergibt sich wie in Fig. 2A beschrieben die kalibrierte x-Komponente Am x cal des gemittelten Punktes Am. Diese Kalibrierungskomponente ist nicht immer identisch mit der in Fig. 2A ermittelten, aber sie kann in gleicher Weise zur Kalibrierung herangezogen werden. Hiermit wurde eine zweite Art der Herleitung (und keinesfalls ab- schliessend) beschrieben, wie ein Abweichungsvektor berechnet werden kann, der zu einem Kalibrierungsschritt führt.
Fig. 3A zeigt eine Tabelle zur 1 D-Kalibrierung in der (x.z)-Ebene mit einem Bildschirmobjekt und 3 Kontaktflächen-Punkt mit Mittelung (I) und vorgängiger Gewichtung. In der Tabelle sind die gleichen 3 Punkte wie in Fig. 2A berücksichtigt mit den x- Komponenten a'x ihrer Abweichungsvektoren a'. Jeder der x-Komponenten a'xwird nun vor der Mittelung ein Gewichtsfaktor G zugeordnet und zwar nach Massgabe der Abweichung vom Bildschirmobjekt-Mittelpunkt O. Die mit den Werten +12 und -12 weiter vom Bildschirmobjekt-Mittelpunkt O liegenden Punkte A(1) und A(3) erhalten den Gewichtsfaktor G = 0,2, während der näher liegende Punkt A(2) einen Gewichtsfaktor G = 0,9 erhält. Die Gewichtung kann linear zum Abstand der Punkte A zum Bildschirmobjekt-Mittelpunkt O erfolgen oder nicht-linear, bzw. sogar beliebig. Massgebend dafür
ist eine Gewichtungskennlinie, an Hand der die Gewichtsfaktoren über den gesamten Verlauf des Bildschirmobjektes festgelegt vorliegen. Vor der Mittelung werden nun die Produkte G • a'x gebildet, die zur Mittelung (I) herangezogen werden. Aus den drei gewichteten Abweichungsvektoren a'g(1), a'g(2), a'g(3) wird anschliessend ein gewichteter, gemittelter Abweichungsvektor a'gm berechnet, dessen gewichtete, ge- mittelte x-Komponente a'gm x ist. Analog zum bereits Beschriebenen definiert der Abweichungsvektor a'gm nun einen Kalibrierungsvektor agm, indem er den Abweichungsvektor a'gm mit negativem Vorzeichen darstellt, nämlich -a'gm und dessen x- Komponente -agm x. Analog ergibt sich als Kalibrierungsschritt: Agm x ca, = Ax + agm x = Ax -a'gmx, wobei Agmxca| die kalibrierte x-Komponente eines gewichteten, gemittelten Punktes A auf der Kontaktfläche KF darstellt.
Der Zweck dieser vorgängigen Gewichtung geht dahin, dass weiter entfernt liegende Punkte A vom Bildschirmobjekt-Mittelpunkt mit einem tieferen Gewicht in das Verfahren eingehen, was sich vor allem bei hoch- oder querformatigen Bildschirmobjekten, wie z.B. der SPACE-Taste auf der Qwerty-Tastatur oder dem vertikalen Scroll-Balken, vorteilhaft erweist. Tatsache ist, dass der Bediener in diesen Fällen meistens das Bildschirmobjekt in der kleineren Dimension in die Mitte trifft und in der grosseren Dimension vielfach sehr einseitig trifft, was wohl auch absichtlich erfolgt. Somit kann die beschriebene Gewichtung als 'Abweichungs-Gewichtung', bzw. 'Ort-Gewichtung' bezeichnet werden.
Fig. 3B zeigt eine Tabelle zur 1 D-Kalibrierung in der (x.z)-Ebene mit einem Bildschirmobjekt und 3 Kontaktflächen-Punkten mit Mittelung (I) und vorgängiger Zeit- Gewichtung.
In der Tabelle sind die gleichen 3 Punkte wie in Fig. 2 berücksichtigt mit den x-Kom- ponenten a'x ihrer Abweichungsvektoren a'. Jeder der x-Komponenten a'x wird nun vor der Mittelung ein Gewichtsfaktor G* zugeordnet und zwar nach Massgabe der Erfassungsreihenfolge. Der ersterfasste und zeit-ältere Berührungspunkt 1 erhält einen kleineren Gewichtsfaktor G* als die zeit-jüngeren Berührungspunkte 2 und 3. Die Gewichtung kann linear oder in einer beliebigen Art erfolgen. Massgebend dafür ist eine Gewichtungskennlinie, an Hand der die Gewichtsfaktoren über den gesamten Bereich der zur Mittelung vorgesehenen N Berührungspunkte festgelegt vorliegen. Vor
5 000760
10 der Mittelung werden nun die Produkte G*-a'x gebildet, die zur Mittelung (I) herangezogen werden.
Aus den drei zeit-gewichteten Abweichungsvektoren a'g*(1), a'g*(2), a'g„(3) wird an- schliessend ein zeit-gewichteter, gemittelter Abweichungsvektor a'g,m berechnet, dessen zeit-gewichtete, gemittelte x-Komponente a'g.m x ist.
Analog ergibt sich als Kalibrierungsschritt: Ag.m xca, = Ax + ag,m x = Ax - a'g.m x, wobei Ag-mx cai die kalibrierte x-Komponente eines zeit-gewichteten, gemittelten Punktes A auf der Kontaktfläche KF darstellt.
Der Zweck dieser vorgängigen Zeit-Gewichtung geht dahin, dass zeit-ältere Berührungspunkte mit einem tieferen Gewicht in das Verfahren eingehen, was sich vor allem bei Änderungen der Augenposition des Bedieners vorteilhaft erweist. Damit wird die aktuelle Augenposition stärker gewichtet. Diese Art der Gewichtung kann auch als 'Reihenfolge-Gewichtung' bezeichnet werden.
Fig. 3C zeigt eine Tabelle zur 1 D-Kalibrierung in der (x,z)-Ebene mit einem Bildschirmobjekt und 3 Kontaktflächen-Punkten mit Mittelung (I) und vorgängiger Ort-Zeit- Gewichtung.
Wie in Fig. 3A als Ort-Gewichtung bereits beschrieben, werden nun die Grossen G-a'x mit dem Zeit-Gewichtsfaktor G* versehen, die Produkte G*G-a'x gebildet und über diese der Mittelwert berechnet. Es resultiert ein ort-zeit-gewichteter, gemittelter Abweichungsvektor a'g*grn, dessen ort-zeit-gewichtete, gemittelte x-Komponente a'g,gm x = +0,56 ist.
Als Kalibrierungsschritt ergibt sich: Ag.grr,iXιCal = Ax + ag.gm>x = Ax - a'g , gm,χi wobei Ag.gm,X)Cal die kalibrierte x-Komponente eines ort-zeit-gewichteten, gemittelten Punktes A auf der Kontaktfläche KF darstellt.
Der Zweck dieser vorgängigen Ort-Zeit-Gewichtung geht dahin, dass sie die beiden in Fig. 3A und 3B beschriebenen Gewichtungen vereinigt.
Fig. 3D zeigt eine Tabelle zur 1 D-Kalibrierung in der (x.z)-Ebene mit einem Bildschirmobjekt und 3 Kontaktflächen-Punkten mit Mittelung (I) und vorgängiger Zeit-Ort- Gewichtung.
Wie in Fig. 3B als Zeit-Gewichtung bereits beschrieben, werden nun die Grössen G*-a'x mit dem Ort-Gewichtsfaktor G versehen, die Produkte GG*-a'x gebildet und über
diese der Mittelwert berechnet. Es resultiert ein zeit-ort-gewichteter, gemittelter Abweichungsvektor a'gg*m, dessen zeit-ort-gewichtete, gemittelte x-Komponente a'gg.m x = +0,56 ist.
Als Kalibrierungsschritt ergibt sich: Agg.m XiCal = Ax + agg.m,x = Ax - a'gg.m,x, wobei Agg.m xcal die kalibrierte x-Komponente eines zeit-ort-gewichteten, gemittelten Punktes A auf der Kontaktfläche KF darstellt.
Der Zweck dieser vorgängigen Zeit-Ort-Gewichtung geht dahin, dass sie die beiden in Fig. 3A und 3B beschriebenen Gewichtungen vereinigt.
Wie aus Fig. 3C und 3D hervorgeht, sind die Resultate für die kalibrierten x- Komponenten identisch. Es ist irrelevant, ob zuerst ort-gewichtet oder zeit-gewichtet wird: Die Operationen der Ort-Gewichtung und Zeit-Gewichtung sind vertauschbar.
Fig. 4 zeigt ein Flussdiagramm für eine 1 D-Kalibrierung. Die Werte, bzw. die Koordinaten die in eine Ergebnisdatenbank aufgenommen werden und die Basis zur Kalibrierung darstellen, werden mit Bezug auf die Schritte im Flussdiagramm folgendermassen gewonnen:
Jedes Mal, wenn der Kontaktbildschirm berührt wird, z.B. bei einem Pen-Down oder einem Mouse-Click (Schritt 4.1 ), werden im System eines Computers, z.B. eines mit einem Windows-Betriebssystem, eine oder mehrere standardisierte spezifische Benachrichtigungen erzeugt, welche unter anderem x-Koordinaten (später auch y-Koor- dinaten) enthalten (Schritt 4.2).
Jedes Mal, wenn eine solche Benachrichtigung vom erfindungsgemässen Verfahren erkannt wird, wird im System nach Aktivierungs-Benachrichtigungen gesucht, welche durch Aktivieren eines Bildschirmobjekts z.B. einer Schaltfläche erzeugt werden. Dies erfolgt auch unabhängig der Kontakt-Benachrichtigungen, z.B. bei Tastaturbefehlen und deren visuelles Feedback auf dem Bildschirm.
Falls diese Aktivierungs-Benachrichtigungen gefunden werden, wurde der Bildschirm- Kontakt auf einem Bildschirmobjekt (Schaltfläche) ausgeführt und erkannt (Schritt 4.3) und ist somit für eine fortlaufende Kalibrierung nutzbar. Mit Hilfe Fachpersonen bekannter Methoden können diese Aktivierungs-Benachrichtigungen zurückverfolgt und die Position des aktivierten Bildschirmobjekts sowie dessen Höhe und Breite ermittelt werden. Anhand dieser drei Informationen kann die Lage, d.h. die x-Koordinate (später
auch y-Koordinatβ) des Zentrums des aktivierten Bildschirmobjekts, bzw. des Bildschirmobjekt-Mittelpunktes ermittelt werden (Schritt 4.4).
Anhand dieser Zentrums-Koordinate und der Kontakt- Koordinate kann die horizontale (und vertikale) Abweichung - oder auch Richtung und Entfernung der Abweichung des Pen-Down-Ereignisses- bezüglich der Bildschirmobjektmitte berechnet werden (Schritt 4.5). Die Abweichungsdaten werden gespeichert und zur fortlaufenden Durchschnittsberechnung, bzw. Mittelung verwendet, z.B. sobald die gewünschte Mindestanzahi von Abweichungsdaten vorhanden ist (Schritt 4.6).
Jedes Pen-Down-Ereignis, bzw. jede Bildschirmberührung auf einem Bildschirmobjekt liefert einen gültigen, bzw. verwertbaren Wert. Die berechneten Ergebnisse, bzw. Abweichungen können aber unterschiedlich gewichtet werden (Schritt 4.7, 4.8), je nach Alter und/oder ihrer Entfernung, bzw. Abweichung vom Mittelpunkt des Bildschirmobjektes und/oder je nach Anzahl der pro Bildschirmobjekt zur Verfügung stehenden Ergebnisse.
Über die letzten N Ereignisse wird nun ein Mittelwert (I) gebildet (Schritt 4.9), der die gewichtete und gemittelte x-Komponente des Abweichungsvektors darstellt. Auf der Basis der kontinuierlich neu erzeugten Werte wird die x-Komponente eines Kalibrierungsvektors berechnet (Schritt 4.10), d.h. es wird ermittelt, wie viel Pixel auf der x-Achse (und später auch y-Achse) der Cursor (oder Eingabemittel-Positionsanzeiger) verschoben werden muss, um in der aktuellen Situation, d.h. unter dem aktuellen Blickwinkel, dem aktuellen Bedienverhalten und der aktuellen Stiftposition, auf dem Bildschirm die Angleichung von Kontakt-Koordinate und Cursor herbeizuführen (Schritt 4.11). Mit diesem letzten Schritt liegt dann ein bezüglich der x-Achse (später auch bezüglich der y-Achse) kalibrierter Kontaktbildschirm vor. Die beschriebene 1 D-Kalibrierung erläutert, wie mehrere Berührungspunkte bei einem einzigen Bildschirmobjekt über die x-Komponenten der Abweichungsvektoren zu einer gewichteten und gemittelten x-Komponente eines Kalibrierungssvektors führen. An Hand dieser x-Komponente kann der elementare Kalibrierungsschritt vollzogen werden. Sobald jedoch ein zweites Bildschirmobjekt vorliegt, liegen andere Verhältnisse vor, die im Folgenden beschrieben werden.
Fig. 5 zeigt eine einführende Darstellung einer 2D-Kalibrierung in der (x.z)-Ebene mit 2 Bildschirmobjekten und Augenposition.
H2005/000760
13
Ein Punkt P, senkrecht oberhalb des Bildschirmobjektes BO1 liegend, stellt die Augenposition des Bedieners dar. Auf der Bildschirmfläche BF befindet sich ein zweites Bildschirmobjekt BO2, das ebenfalls vom Punkt P aus betrachtet wird. Die Linien P-01 und P-O2 stellen die Betrachtungslinien, bzw. die Sichtlinien zu den Bildschirmobjekten BO1 und BO2, bzw. zu deren Mittelpunkten 01 und 02 dar. In der vorliegenden (x.z)-Ebene stellt der Punkt P die Position eines einzelnen Auges dar. Dies ist vergleichbar mit einem Schützen, der sein Ziel mit einem Auge verfolgt. Meistens mit dem besseren, währenddem das andere geschlossen oder abgedeckt wird. Im Weiteren wird im Punkt P immer die Position eines einzelnen Auges, eines Εinzelauges', bzw. eines sog. 'Zyklopauges' verstanden. Und zwar auch später, wenn von einem (x,y,z)-Raum die Rede ist.
Die beiden Sichtlinien durchqueren die Kontaktfläche KF in den Punkten A und B. Die Projektion des Punktes A ist A' und ist identisch mit O1. Die Projektion des Punktes B ist B' und liegt innerhalb des Bildschirmobjektes BO2 aber abseits des Mittelpunktes 02. Die Distanz O2-B' wird als Parallaxenabweichung, bzw. Parallaxenfehler bezeichnet, während die Situation entlang der Sichtlinie P-O1 für den Punkt A als parallaxenfrei bezeichnet wird.
Die Kontaktfläche KF ist eine dünne, durchsichtige Schicht, die auf Grund ihres Aufbaus einen anderen Brechungsindex als die sie umgebende Luft aufweist. Demzufolge wird die Sichtlinie P-02 beim Eintritt in das Medium Kontaktfläche unterschiedlich gebrochen. Dieses unterschiedliche Brechungsverhalten wird im Folgenden nicht weiter berücksichtigt, sondern generell vernachlässigt.
Wenn die Punkte A und B gleichzeitig Berührungspunkte sind, ergibt sich die x-Kompo- nente a'x = O für den Abweichungsvektor a' und die x-Komponente b'x für den Abweichungsvektor b'. Mit den entsprechenden Kalibrierungsvektoren a und b ergeben sich die kalibrierten x-Komponenten der Punkte A und B wie folgt:
Aχ,cai = Ax; Bx ca| = Bx + bx womit der Punkt B als parallaxen-korrigiert gilt.
Fig. 6 zeigt einen (x,z)-Kalibrierungs-Graphen KG(x,z) mit der Kalibrierungskomponente bx. Der Kalibrierungsvektor kann für den Aufbau eines (x,z)-Kalibrierungs- Graphen verwendet werden, indem vom Punkt A', dem Projektionspunkt von P ausgehend, die x-Komponente des Kalibrierungsvektors linear zunehmend mit dem
Abstand vom Punkt A' berücksichtigt wird. So wird in einem Punkt M der Bildschirmfläche, der in der Mitte vom Abstand 02 - A' liegt, nur die Hälfte der x-Komponente des Kalibrierungsvektors berücksichtigt, nämlich bx/2. Auch in einem Punkt M', der in entgegengesetzter Richtung von A' aber in gleichem Abstand wie M von A' liegt, wird bx/2 berücksichtigt. Der Punkt A' selber ist korrekturfrei.
Auf diese Weise wird mit der ermittelten x-Komponente bx des Kalibrierungsvektors b eine proportional zum Abstand vom Punkt A' wachsende Kalibrierungsgrösse definiert, die über die ganze Ausdehnung des Kontaktbildschirmes für einen beliebigen Punkt, bzw. Berührungspunkt berücksichtigt wird. Hieraus ergibt sich eine sog. Optimierte Kalibrierung'.
Der dargestellte Kalibrierungs-Graph KG(x,z) kann linear-symmetrisch bezüglich der Projektionslinie P - A' bezeichnet werden. Selbstverständlich sind ebenfalls nicht-linearsymmetrische, nicht-linear-asymmetrische und linear-asymmetrische Kalibrierungs- Graphen denkbar.
Fig. 7 zeigt eine Darstellung einer 2D-Kalibrierung in der (x,z)-Ebene mit 2 Bildschirmobjekten und je einem Kontaktfläche-Punkt.
Wie in Fig. 6 sind die Bildschirmobjekte BO1 und BO2, der Punkt P mit den Sichtlinien zu den Mittelpunkten 01 und 02 erkennbar. Die Berührungspunkte A und B mit ihren Projektionen A' und B' liegen innerhalb der Bildschirmobjekte BO1 und BO2. Der Punkt A liegt nicht mehr auf der Sichtlinie P-O1. Er stellt einen beliebigen Berührungspunkt für das Bildschirmobjekt BO1 dar. Der Punkt B stellt ebenfalls einen beliebigen Berührungspunkt für das Bildschirmobjekt BO2 dar.
Mit Hilfe des Strahlensatzes wird eine (x.z)-Augenposition als Schnittpunkt S(x,z) ermittelt, indem der fixe Abstand d zwischen Kontaktfläche und Bildschirm-Oberfläche, sowie die x-Koordinaten der Bildschirmobjekt-Mittelpunkte 01 und 02 mit je dazugehörenden x-Abweichungen, bzw. dazugehörenden x-Komponenten a'x und b'x der Abweichungsvektoren herangezogen werden.
Eine Strahllinie 01 -A schneidet sich mit einer zweiten Strahllinie O2-B in einem Schnittpunkt S, der die ermittelte Augenposition darstellt und dessen Projektion auf der Bildschirmfläche BF ein Punkt S' ist. An Hand des Strahlensatzes ergeben sich aus den Gleichungen (I) bis (IV) die Koordinaten Sx und Sz des Schnittpunktes S(x,z) zu:
S2 = (d • SO1 ) / AO1 = (d • S'O2) / BO2 (I)
S'O1 / A'O1 = S'O2 / BO2 (II)
S'O1 + O2S1 = 0201 (III)
Sx = 0O1 + S'O1 (IV)
Damit ist die S(x,z)-Augenposition relativ zum Kontaktbildschirm ermittelt. In Anlehnung an die Beschreibung der Fig. 2A kann die 2D- Kalibrierung in der (x,z)- Ebene mit 2 Bildschirmobjekten und mehreren Kontaktflächen-Punkten mit Mittelung (I) erfolgen. Anstelle der Berührungspunkte A und B treten die Berührungspunkte A(1 ), A(2), ..., A(N) und B(1), B(2), ..., B(N). Es resultieren für jedes Bildschirmobjekt gemittelte Kalibrierungsvektoren am und bm, deren gemittelte x-Komponenten am x, bm x und mit Hilfe des Strahlensatzes ein gemittelter Schnittpunkt Sm(x,z), bzw. eine gemittelte (x.z)-Augenposition.
In Anlehnung an die Beschreibung der Fig. 3A kann die 2D-Kalibrierung in der (x,z)- Ebene mit 2 Bildschirmobjekten und mehreren Kontaktflächen-Punkten mit vorgängiger Gewichtung und mit anschliessender Mittelung (I) erfolgen. Anstelle der Berührungspunkte A und B treten die Berührungspunkte A(1), A(2), .... A(N) und B(1 ), B(2), ..., B(N). Es resultieren gewichtete, gemittelte Kalibrierungsvektoren agm und bgm, deren gewichtete, gemittelte x-Komponenten agm x, bgm x und mit Hilfe des Strahlensatzes ein gewichteter, gemittelter Schnittpunkt Sgm(x,z), bzw. eine gewichtete, gemittelte (x,z)- Augenposition.
In Anlehnung an die Beschreibung der Fig. 3C und 3D kann die 2D-Kalibrierung in der (x,z)-Ebene mit 2 Bildschirmobjekten und mehreren Kontaktflächen-Punkten mit vorgängiger Ort-Zeit-Gewichtung oder Zeit-Ort-Gewichtung und mit anschliessender Mittelung (I) erfolgen. Es resultieren:
a) Bei Ort-Zeit-Gewichtung:
- Ort-zeit-gewichtete, gemittelte Kalibrierungsvektoren ag*gm und bg*gm,
- ort-zeit-gewichtete, gemittelte x-Komponenten ag.gπn x, bg.gmiX, und
- ein ort-zeit-gewichteter, gemittelter Schnittpunkt Sg.gm(x,z), bzw.
- eine ort-zeit-gewichtete, gemittelte (x,z)-Augenposition.
b) Bei Zeit-Ort-Gewichtung:
- zeit-ort-gewichtθte, gemittelte Kalibrierungsvektoren agg*m und bgffW
- zeit-ort-gewichtete, gemittelte x-Komponenten agg.m?χ) bgg.m x, und
- ein zeit-ort-gewichteter, gemittelter Schnittpunkt Sgg.m(x,z), bzw.
- eine zeit-ort-gewichtete, gemittelte (x,z)-Augenposition.
Vorteilhaft ist es, pro Bildschirmobjekt einen Mittelwert (I) zu bestimmen und diesen dann für die weitere Berechnung zu verwenden. Dies ist jedoch keineswegs zwingend. Allerdings ist ohne eine Mittelung (I) mit erheblich grosserem Rechenaufwand zu rechnen.
Fig. 8 zeigt einen im Punkt S' zentrierten Kalibrierungs-Graphen. Analog zu Fig. 6 wird an Hand derx-Komponenten ax und bxein Kalibrierungs-Graph KG(x,z) gebildet, indem vom Punkt S', der Projektion des Schnittpunktes S(x,z), bzw. der ermittelten Augenposition weglaufend die Kalibrierungsgrössen proportional zum Abstand des Punktes S' zunehmen. Sobald ein neuer Schnittpunkt S(x,z) berechnet vorliegt, wird der Kontaktbildschirm neu kalibriert. In der Regel gelangt ein linear-symmetrischer Kalibrierungs-Graph zur Anwendung.
Der Schnittpunkt S(x,z) hat gewisse Anforderungen zu erfüllen, d.h. er muss sich in einem definierten Umfeld zur Bildschirmlinie OD, bzw. Bildschirmfläche befinden: Z.B. innerhalb eines Halbkreises mit Radius 95 cm, dessen Zentrum sich in der Mitte der Bildschirmlinie OD befindet. Ist dies nicht der Fall, so wird der Schnittpunkt . S(x,z) verworfen, bzw. für die weitere Kalibrierung nicht weiter verwendet. Ein derartiges Ausschlusskriterium bewirkt eine Selektion der Schnittpunkte, was sich auf das Verfahren vorteilhaft auswirkt. Zu den Fig. 7 und 8 ergeben sich die Kalibrierungsschritte wie folgt:
1. Ohne S_-Abhänqiqkeit (entsprechend einer x-Positions-Parallaxen-Korrektur): Für die Punkte A und B:
Ax1O31 = Ax + ax; Bx cal = Bx + bx
Für einen beliebigen Punkt R:
Rχ,ca, = Rx + (Rx - Sx) • [M IRxIax) - Sx|) + bx/(|Rx(bx) - Sx|))/2] (V)
Für den beliebigen Punkt R jwird eine gemittelte Steigung des (x,z)-Kalibrierungs- Graphen verwendet, indem die Kalibrierungskomponenten ax und bx sowie deren Abstand von S' berücksichtigt werden. Diese zweite Mittelwertbildung zur Berechnung einer mittleren Steigung wird auch als 'Mittelung (II)' bezeichnet. Der beliebige Punkt R ist demnach parallaxen-kor'fϊgiert.
2. Mit S,-Abhänqiqkeit (entsprechend einer (x,z)-Positions-Parallaxen-Korrektur): Für die Punkte A und B: ■
Ax,ca, = Ax + (So/S2) • ax; Bx cal = Bx + (S0ZS2) • bx
Für einen beliebigen Punkt R:
Rx,ca, = Rx + (So/Sz) • (Rx - Sx) • [(ax/(|Rx(ax) - SJ) + bx/()Rx(bx) - Sx|))/2] (VI)
S0 ist ein Standardwert für den Abstand der Augenposition über der Bildschirm mitte, z.B. etwa 35 cm. Hiermit ist der beliebige Punkt R positions- und parallaxen-korrigiert.
Die in den Kalibrierungsschritten (V) und (VI) verwendeten Kalibrierungskomponenten ax und bx können entweder lediglich gemittelte Grossen (Mittelwerte (I)) oder zusätzlich in beliebiger Art gewichtete Grossen sein, wie bereits beschrieben.
Fig. 9 zeigt eine Darstellung einer 2D-Kalibrierung in der (x.z)-Ebene mit den Schnittpunkten für 3 Bildschirmobjekte.
Wie in Fig. 6 sind die Bildschirmobjekte BO1 und BO2, deren Strahllinien S1 und S2 zum Schnittpunkt S12, bzw. S12(x,z) erkennbar. Ein drittes Bildschirmobjekt BO3 liegt in der Bildschirmfläche BF. In analoger Weise ergeben sich mit der weiteren Strahllinie S3 die Schnittpunkte S13 und S23.
Fig. 10 zeigt den Ausschnitt aus einer Tabelle einer 2D-Kalibrierung in der (x,z)-Ebene mit einer dritten Mittelung über die Schnittpunkte von 3 und mehr Bildschirmobjekten. Die Kolonne A(I) stellt einen Ausschnitt aus der Reihenfolge der Ereignisse, bzw. die Berührungspunkte 21 -29 dar. Im nächsten Kolonnenblock, die Bildschirmobjekte BO1 , ..., BOK betreffend, sind die x-Komponenten der Kalibrierungsvektoren a(1), ..., a(K), nämlich ax(1 ), ..., ax(K) eingetragen. Die verwendeten Kalibrierungskomponenten ax(1 ),
.., ax(K) können entweder lediglich gemittelte Grossen (Mittelwerte (I)) oder zusätzlich in beliebiger Art gewichtete Grossen sein, wie etwa am x(1 ), ..., am x(K) oder agm x(1 ), ..., agm x(K) usw.. Vorteilhafterweise werden ort-zeit-gewichtete, gemittelte x-Komponenten ag-gm,x(1 ). .... ag'gm,χ(κ)> D2W- zeit-ort-gewichtete, gemitteite x-Komponenten agg.mιX(1), ..., agg.m x(K) eingetragen. Die in Fig. 10 eingetragenen Komponenten entsprechen den ort- zeit-gewichteten, gemittelten x-Komponenten ag,gm x(1 ), ..., ag.gm x(K), wie sie in Fig. 3C beschrieben wurden.
In Kolonne B01 wird beim Ereignis 21 erstmals der Wert -1 ,24 eingetragen, während in Kolonne BO2 bereits aus früheren Ereignissen der Wert +2,05 vorlag und in den Kolonnen BO3, ..., BOK noch keine Werte verfügbar waren. Es wird der Schnittpunkt S12 aus dem Wert -1 ,24 des Bildschirmobjektes BO1 und dem bereits anstehenden Wert +2,05 des Bildschirmobjektes BO2 berechnet. Genauer bezeichnet ist dies ein ort-zeit-gewichteter, gemittelter Schnittpunkt Sg.gm(12).
In Kolonne B03 wird beim Ereignis 22 erstmals der Wert +4,10 eingetragen, während in den Kolonnen BO1 und BO2 bereits aus früheren Ereignissen die Werte -1 ,24 und +2,05 vorlagen und in den Kolonnen BO3, ..., BOK noch keine Werte verfügbar waren. Es werden die Schnittpunkte S13 und S23 berechnet.
Auf diese Weise werden mit fortschreitenden Ereignissen immer wieder neue Schnittpunkte berechnet, nämlich beim Ereignis 23 die Schnittpunkte S12 und S13, usf..
Unter der Voraussetzung N' = 5, d.h. dass beim Vorliegen von 5 Schnittpunkten Sg.gm(KK') eine dritte Mittelwertbildung, bzw. Mittelung (III) zulässig ist, wird nach dem Ereignis 23 der gemittelte Schnittpunkt SM(KK'), bzw. SM(KK';x,z) berechnet (Kolonne SM(KK')). Die Zahl N' ist in der Regel kleiner als 18, vorzugsweise 4 oder 5. Gleichzeitig gilt die Voraussetzung, dass alle bisherigen Schnittpunkte verwertbar sind, d.h. die Ausschlusskriterien erfüllen.
Mit zunehmender Zahl von Bildschirmobjekten wächst die Anzahl der zu berechnenden Schnittpunkte rasch an. Bei K Bildschirmobjekten sind dies K(K-I )/2 Schnittpunkte. So ergeben sich mit einem weiteren Bildschirmobjekt BO4 zusätzlich die Schnittpunkte S14, S24 und S34.
Zweckmässiger wird die Anzahl der Bildschirmobjekte begrenzt. Zudem wird in der Regel unter den Bildschirmobjekten noch eine Auswahl getroffen, bei der ein Bildschirmobjekt ausgeschlossen wird, falls es quasi-redundante Informationen liefert. Dies
ist z.B. der Fall, wenn ein Bildschirmobjekt nahe einem bereits ausgewerteten Bildschirmobjekt liegt. Durch derartige Auswahlkriterien erfolgt eine Selektion von Bildschirmobjekten, die sich vorteilhaft auf das Verfahren auswirkt. Wenn der erste, durch Mittelung (III) ermittelte Schnittpunkt SM(KK') vorliegt, kann der Kontaktbildschirm zum ersten Mal neu-kalibriert werden. Andererseits kann auch für eine vierte Mittelwertbildung, bzw. Mittelung (IV) der Schnittpunkte SM(KK') eine Zahl N" vorgegeben werden, die erst erreicht werden muss, bevor neu-kalibriert wird (Positionsdynamische Parallaxen-Korrektur). Die Zahl N" ist in der Regel kleiner als 45, vorzugsweise 4 bis 7.
Die Mittelung (IV) über SM(KK') erfolgt mit den N" jüngsten Schnittpunkten. Falls (N"+1 ) Werte für SM(KK') vorliegen wird der erste, d.h. der zeit-älteste, zuerst ermittelte Wert von SM(KK') eliminiert (gleitendes Mittel (IV); moving average (IV)). Auch für die Werte SM(KK'), bzw. SM(KK';x,z) ist eine zweite Zeit-Gewichtung denkbar. Mit der Zahl N" und einer zweiten Zeit-Gewichtung kann auf die Dynamik des Verfahrens direkt und wirkungsvoll Einfluss genommen werden.
Damit ist nun wiederum die S(x,z)-Augenposition relativ zum Kontaktbildschirm ermittelt worden, nämlich eine gemittelte S(x,z)-Augenposition.
Zu den Fig. 9 und 10 ergeben sich die Kalibrierungsschritte wie folgt:
1. Ohne S_-Abhängigkeit, für einen beliebigen Punkt R:
Rχ,ca, = Rx + (Rx - Sx) • BXax(K) / ( |RX(K) - SMiX|)] / K (VI)
Für den beliebigen Punkt R wird eine gemittelte x-Komponente der Kalibrierungsvektoren a(1), ..., a(K) verwendet (Mittelung (II)) und diese proportional zum Abstand von S' berücksichtigt. Der beliebige Punkt R ist demnach parallaxen-korrigiert.
2. Mit S,-Abhängiqkeit für einen beliebigen Punkt R:
Rχ,ca, = Rx + (So/SMil) • (Rx - Sx) • CEXax(K) / (IRx(K) - SM,X|)] / K (VIII)
S0 ist ein Standardwert für den Abstand der Augenposition über der Bildschirmmitte,
z.B. etwa 35 cm. Hiermit ist der beliebige Punkt R wiederum positions- und parallaxenkorrigiert.
Die in den Kalibrierungsschritten (VII) und (VIII) verwendeten Kalibrierungskomponenten ax(K) sind vorteilhafterweise gemittelte und in beliebiger Art gewichtete Grossen Grossen (Mittelwerte (I)), wie bereits beschrieben.
Solange noch zu wenig Werte für die Berechnung von SM(KK';x,z) vorliegen, wird eine Default-Kalibrierung verwendet, die mit Standardwerten arbeitet, z.B. mit Werten die einer Augenposition von 35 cm über der Kontaktbildschirmmitte entspricht.
Sämtliche in der (x,z)-Ebene anhand der Fig. 1-10 beschriebenen Vorgänge gelten auch in einer (y.z)-Ebene. Somit gilt etwa für die Formel (VI) eine Formel (IX) für einen beliebigen Punkt R mit Sz-Abhängigkeit wie folgt:
Ry,ca, = Ry + (S0ZS1J • (Ry - Sy) • [E^(K) / (|Ry(K) - SM,y|)] / K (IX)
Dies kann allein durch eine Vertauschung der Indices x und y erreicht werden. Allerdings braucht der frühere Schnittpunkt SM, der aus der S(x,z)-Berechnung hervorgegangen ist, nicht identisch zu sein mit dem Schnittpunkt SM der Formel (IX), der aus der S(y,z)-Berechnung folgt.
Die Grossen Rx ca! und Ry iCa, werden gewissermassen unabhängig voneinander ermittelt und liefern je nach Vorgabe der gewünschten, bzw. angestrebten Dynamik Korrekturen in den beiden Richtungen x und y, und somit für einen beliebigen Punkt des Kontaktbildschirms.
Die Schnittpunkte S(y,z) wie auch S(x,z) haben gewisse Anforderungen zu erfüllen, d.h. sie müssen sich in einem definierten Umfeld zur Bildschirmfläche BF befinden: Z.B. innerhalb einer Halbkugel mit Radius 95 cm, deren Zentrum sich in der Mitte der Bildschirmfläche befindet. Ist dies nicht der Fall, so werden die Schnittpunkte S(x,z) oder S(y,z) verworfen, d.h. sie werden für die weitere 3D-Kalibrierung nicht verwendet.
Das erfindungsgemässe Verfahren ist leicht zu handhaben, indem es eine SD-Kalibrierungsfunktion verwendet, deren Berechnung in den Richtungen x und y grundsätzlich unabhängig voneinander erfolgt. Zwischen den x- und y-Daten, die erfasst, verarbeitet und zur Kalibrierung verwendet werden, erfolgen keine Verknüpfungen. Das dreidimen-
sionale Problem wird somit auf die Dimensionen x und y reduziert.
Erfindungswesentlich ist, dass die dynamische Kalibrierung des Touchscreens auf der Basis der Bildschirmberührungen des Benutzers beruht. Dabei läuft die Kalibrierung im Hintergrund ab, ohne den Arbeitsprozess des Benutzers zu unterbrechen oder zu stören oder auch nur seine Aufmerksamkeit zu fordern. Durch die dynamische Kalibrierung wird die Methode den Veränderungen im Benutzerverhalten gerecht. Dadurch dass der Benutzer den Kalibrierungsprozess nicht bemerkt, werden realistische Ergebnisse geliefert und die Usability wird nicht beeinträchtigt. Dadurch dass jedes Bildschirmobjekt mit seinem Mittelpunkt als Referenz dient, steht eine grosse und repräsentative Menge an Werten zur Verfügung, die die präzise Berechnung der notwendigen Kalibrierung ermöglicht.