BEZUGNAHME
AUF FRÜHER
EINGEREICHTE ANMELDUNGENREFERENCE
ON PREVIOUS
SUBMITTED APPLICATIONS
Diese
Anmeldung beansprucht die Priorität der anhängigen vorläufigen U.S. Patentanmeldung
der Anmelderin mit der Nr. 60/287,115, die am 27. April 2001 eingereicht
wurde mit dem Titel „Input
Methods Using Planar Range Sensors", der anhängigen vorläufigen U.S. Patentanmeldung
60/272,120, die am 27. Februar 2001 eingereicht wurde mit dem Titel „Vertical
Triangulation System for a Virtual Touch-Sensitive Surface", und der anhängigen U.S.
provisional Patentanmeldung 60/231,184, die am 7. September 2000
eingereicht wurde mit dem Titel „Application of Image Processing
Techniques for a Virtual Keyboard System". Ferner ist diese Anmeldung eine continuation-in-part
aus der anhängigen
U.S. Patentanmeldung mit der Nr. 09/502,499, die am 11. Februar
2000 eingereicht wurde mit dem Titel „Method And Apparatus for
Entering Data Using A Virtual Input Device". Jede dieser Anmeldungen wird hiermit
durch Bezugnahme aufgenommen.These
Application claims priority to pending provisional U.S. patents. Patent application
the applicant with the number 60 / 287,115, filed on April 27, 2001
was titled "Input
Methods Using Planar Range Sensors ", pending U.S. provisional patent application
60 / 272,120, filed February 27, 2001, entitled "Vertical
Triangulation System for a Virtual Touch-Sensitive Surface ", and pending
provisional patent application 60 / 231,184, which issued on September 7, 2000
was filed with the title "Application of Image Processing
Techniques for a Virtual Keyboard System. "Furthermore, this application is a continuation-in-part
from the pending
U.S. Patent Application No. 09 / 502,499, filed on Feb. 11
2000, entitled "Method And Apparatus for
Entering Data Using A Virtual Input Device. "Each of these applications is hereby incorporated
incorporated by reference.
GEBIET DER
ERFINDUNGAREA OF
INVENTION
Diese
Erfindung betrifft allgemein eine Vorrichtung zum Erkennen bzw.
Erfassen einer Annäherung
eines Stifts oder eines Benutzerfingers relativ zu einer Vorrichtung,
um Befehle und/oder Daten einem System einzugeben oder zu diesem
zu übertragen,
und insbesondere betrifft es eine solche Erfassung relativ zu einer virtuellen
Vorrichtung, die zur Eingabe oder zur Übertragung von Befehlen und/oder
Daten und/oder anderen Informationen zu einem System benutzt wird.These
The invention relates generally to a device for detecting or
Capture an approach
a pen or a user's finger relative to a device,
to enter commands and / or data into a system or to this
transferred to,
and in particular, it relates to such detection relative to a virtual one
Apparatus for entering or transmitting commands and / or
Data and / or other information about a system is used.
HINTERGRUND
DER ERFINDUNGBACKGROUND
THE INVENTION
Es
ist sehr häufig
wünschenswert,
virtuelle Eingabevorrichtungen zu verwenden, um Befehle und/oder Daten
einzugeben und/oder andere Informationen zu elektronischen Systemen
zu übertragen,
bspw. zu einem Computersystem, einem Musikinstrument, oder sogar
Telefonen. Obgleich Computer nun in nahezu Taschengröße realisiert
werden können,
kann das Eingeben von Daten oder Befehlen auf einer Minitastatur
zeitaufwändig
und fehleranfällig
sein. Während
viele Mobilfunktelefone heutzutage E-Mail-Kommunikation handhaben können, kann
das tatsächliche
Eingeben von Nachrichten unter Verwendung des kleinen Telefon-Touchpads
schwierig sein.It
is very common
desirable,
virtual input devices to use commands and / or data
enter and / or other information about electronic systems
transferred to,
for example, to a computer system, a musical instrument, or even
Phones. Although computer now realized in almost pocket size
can be
may be typing data or commands on a mini keyboard
time consuming
and error prone
be. While
Many mobile phones today can handle e-mail communication
the actual
Entering messages using the small phone touchpad
to be difficult.
Ein
PDA besitzt bspw. sehr viel der Funktionalität eines Computers, leidet aber
an einem kleinen oder nicht existierenden Keyboard bzw. Tastatur.
Falls ein System verwendet werden könnte, um zu bestimmen, wenn
der Finger eines Benutzers oder ein Stift eine virtuelle Tastatur
berührte,
und welche Finger welche virtuellen Tasten darauf berührten, könnte die
Ausgabe des Systems vielleicht einem PDA anstelle der Tastatur-Information
eingegeben werden. (Die Begriffe „Finger" oder „Finger" und „Stift" werden hier austauschbar verwendet.)
Bei diesem Beispiel könnte
eine virtuelle Tastatur ein Stück
Papier sein, bspw. das sich auf die Größe einer Tastatur entfaltet,
wobei Tasten aufgedruckt sind, um die Benutzerhände zu führen. Es versteht sich, dass
die virtuelle Tastatur oder andere Eingabevorrichtungen einfach
eine Arbeitsfläche
darstellen und keine Sensoren oder mechanische oder elektronische
Komponenten besitzen. Das Papier und die Tasten würden nicht
tatsächlich
Information eingeben, sondern die Interaktion oder Schnittstelle
zwischen den Benutzerfingern und Bereichen des Papiers unterstützen. Falls
kein Papier verwendet wird, könnten
Bereiche einer Arbeitsfläche,
wo Tasten existieren würden,
zur Eingabe von Information in den PDA verwendet werden. Eine ähnliche
virtuelle Vorrichtung und ein System könnten nützlich sein, um E-Mail in Mobiltelefone
einzugeben. Eine virtuelle klavierähn liche Tastatur könnte verwendet
werden, um ein reales Musikinstrument zu spielen. Die Herausforderung
besteht jedoch darin, zu detektieren oder erfassen, wo die Benutzerfinger
oder ein Stift relativ zu der virtuellen Vorrichtung sind.One
For example, PDA has a lot of the functionality of a computer, but suffers
on a small or nonexistent keyboard or keyboard.
If a system could be used to determine if
a user's finger or a pen a virtual keyboard
touched,
and which fingers touched which virtual keys on it could be the
Output of the system maybe a PDA instead of the keyboard information
be entered. (The terms "finger" or "finger" and "pen" are used interchangeably herein.)
In this example could
a virtual keyboard a piece
Be paper, for example, that unfolds to the size of a keyboard,
with buttons imprinted to guide the user's hands. It is understood that
the virtual keyboard or other input devices easy
a work surface
represent and no sensors or mechanical or electronic
Own components. The paper and the keys would not work
indeed
Enter information but the interaction or interface
between the user's fingers and areas of the paper support. If
no paper could be used
Areas of a work surface,
where keys would exist,
to enter information into the PDA. A similar
Virtual device and a system could be useful to email in mobile phones
enter. A virtual piano-like keyboard could be used
become a real musical instrument. The challenge
However, it consists in detecting or detecting where the user's fingers
or a pen relative to the virtual device.
US-Patent
5,767,848 von Korth (1998) mit dem Titel „Method and Device For Optical
Input of Commands or Data" versucht,
virtuelle Vorrichtungen zu implementieren, indem eine zweidimensionale
TV-Videokamera eingesetzt wird. Solche optischen Systeme beruhen
auf Beleuchtungsdaten und erfordern eine stabile Umgebungslicht-Quelle,
allerdings können
unglücklicherweise
Beleuchtungsdaten ein Abbildungs-System stören. Beispielsweise kann ein
Benutzerfinger im Abbildungs-Vordergrund nicht unterscheidbar sein
von Bereichen im Hintergrund. Ferner könnten Schatten oder andere
bildblockierende Phänomene,
die sich aus der die virtuellen Vorrichtung behindernden Benutzerhand
resultieren, die Umsetzung eines Korth-Systems im Betrieb etwas
unpräzise
erscheinen lassen. Korth würde
ebenfalls die Prüfung
der Kontur eines Benutzerfingers, die Fingerposition relativ zu
der virtuellen Vorrichtung und eine Bestimmung der Fingerbewegung
erfordern.US Patent
5,767,848 to Korth (1998) entitled "Method and Device For Optical
Input of Commands or Data "tries
to implement virtual devices by using a two-dimensional
TV video camera is used. Such optical systems are based
on lighting data and require a stable ambient light source,
however, you can
Unfortunately
Illumination data disturb a picture system. For example, a
User fingers in the picture foreground are indistinguishable
of areas in the background. Furthermore, shadows or others could
image-blocking phenomena,
resulting from the virtual device obstructing user's hand
result, the implementation of a Korth system in operation something
imprecisely
let appear. Korth would
also the exam
the contour of a user's finger, the finger position relative to
the virtual device and a determination of finger movement
require.
US-Patent
Nr. ... von Bamji et al. (2001) mit dem Titel „CMOS-Compatible Three-Dimensional Image Sensor
IC", mit der Anmeldenummer
09/406,059, eingereicht am 22. September 1999, offenbart ein weit
entwickeltes dreidimensionales Abbildungs-System, das virtuelle
Vorrichtungen verwendet, um Befehle und Daten in elektronische Systeme
einzugeben. Bei diesem Patent waren verschiedene Entfernungsmessungssysteme
offenbart, die verwendet werden könnten, um die Schnittstelle
zwischen einer Benutzerfingerspitze und einer virtuellen Eingabevorrichtung,
bspw. einer Tastatur zu erfassen. Die Abbildung wurde dreidimensional
erfasst, indem Laufzeitmessungen verwendet werden. Eine Lichtquelle
emittierte optische Energie in Richtung eines Zielobjekts, bspw.
eine virtuelle Vorrichtung, und die Energie, die von Bereichen des
Objekts innerhalb des Abbildungs-Pfads reflektiert wurde, wurde
von einer Gruppe von Photodioden erfasst. Indem verschiedene hochentwickelte
Techniken verwendet werden, wurde die aktuelle Laufzeit zwischen
den Emissionen der optischen Energie und deren Erfassung durch die
Photodiodengruppe bestimmt. Diese Messung erlaubte die Berechnung
der Vektorentfernung zu dem Punkt auf dem Zielobjekt in drei Dimensionen,
bspw. (x, y, z). Das beschriebene System prüfte die reflektierte emittierte
Energie und konnte ohne Umgebungslicht funktionieren. Falls bspw.
das Zielobjekt ein Layout einer Computertastatur wäre, vielleicht
ein Stück
Papier mit aufgedruckten Tasten, könnte das System erfassen, welcher
Benutzerfinger welchen Bereich auf dem Ziel, bspw. welche virtuelle
Taste, in welcher Reihenfolge berührte. Selbstverständlich wäre das Stück Papier
optional und würde zur
Führung
der Benutzerfinger verwendet werden.U.S. Patent No. ... by Bamji et al. (2001) entitled "CMOS Compatible Three-Dimensional Image Sensor IC ", Serial No. 09 / 406,059, filed September 22, 1999, discloses a sophisticated three-dimensional imaging system that uses virtual devices to input commands and data into electronic systems The image was captured three-dimensionally by using propagation time measurements A light source emits optical energy toward a target object, such as a virtual device, and can be used to capture the interface between a user fingertip and a virtual input device, such as a keyboard The energy reflected from areas of the object within the imaging path was detected by a group of photodiodes Using the various sophisticated techniques, the actual transit time between the emissions of the optical energy and their detection by the photod group of products. This measurement allowed the vector distance to the point on the target object to be calculated in three dimensions, for example (x, y, z). The described system tested the reflected emitted energy and could operate without ambient light. For example, if the target object were a computer keyboard layout, perhaps a piece of paper with imprinted keys, the system could detect which user finger touched which area on the target, for example which virtual key, in what order. Of course, the piece of paper would be optional and would be used to guide the user's fingers.
Dreidimensionale
Daten, die mit der Bamji-Erfindung erhalten werden, könnten per
Software verarbeitet werden, um die Benutzerfinger zu lokalisieren,
wenn sie in Kontakt mit einer Berührungs-Fläche kämen, bspw. einer virtuellen
Eingabevorrichtung. Die Software könnte den Fingerkontakt mit
einem Ort auf der Fläche als
eine Anforderung identifizieren, ein Tastatur-Event einer Anwendung
einzugeben, die auf der verknüpften elektronischen
Vorrichtung oder dem System abläuft,
bspw. ein Computer, ein PDA, ein Mobilfunkgerät, eine Kioskvorrichtung, eine
Kassenvorrichtung, etc. Während
das Bamji-System arbeitete und eingesetzt werden könnte, um
Befehle und/oder Daten in ein Computersystem einzugeben, in dem
eine dreidimensionale Abbildung verwendet wird, um die Schnittstelle
von Benutzerfingern und einer virtuellen Eingabevorrichtung zu analysieren,
ist ein weniger komplexes und vielleicht weniger hochentwickeltes
System wünschenswert.
Wie das Bamji-System sollte ein solches neues System relativ kostengünstig für eine Massenproduktion
sein und sollte relativ wenig Energie verbrauchen, so dass ein Batteriebetrieb
leicht möglich
ist.Three-dimensional
Data obtained with the Bamji invention could by
Software to locate the user's fingers,
if they came into contact with a touch surface, for example a virtual one
Input device. The software could touch the finger with
a place on the surface as
identify a request, a keyboard event of an application
to enter on the linked electronic
Device or system,
for example, a computer, a PDA, a mobile device, a kiosk device, a
Cash register device, etc. During
the Bamji system worked and could be used to
Enter commands and / or data into a computer system in which
A three-dimensional image is used to interface
of user fingers and a virtual input device to analyze
is a less complex and perhaps less sophisticated one
System desirable.
Like the Bamji system, such a new system should be relatively inexpensive for mass production
be and should consume relatively little energy, leaving a battery operation
easily possible
is.
Die
vorliegende Erfindung stellt ein solches System bereit.The
The present invention provides such a system.
ZUSAMMENFASSUNG
DER VORLIEGENDEN ERFINDUNGSUMMARY
THE PRESENT INVENTION
Die
vorliegende Erfindung lokalisiert eine Interaktion zwischen einem
Benutzerfinger oder einem Stift und einer passiven Berührungs-Fläche (bspw.
einer virtuellen Eingabevorrichtung), die oberhalb einer Arbeitsfläche definiert
ist, indem eine planare quasi dreidimensionale Erfassung verwendet
wird. Die quasi dreidimensionale Erfassung impliziert, dass die
Bestimmung eines Interaktionspunkts im Wesentlichen in drei Dimensionen
ausgeführt
werden kann, indem als Referenz eine zweidimensionale Fläche verwendet
wird, die beliebig im dreidimensionalen Raum orientiert ist. Sobald
eine Berührung
erfasst wird, lokalisiert die Erfindung das Berührungs-Gebiet, um festzulegen,
wo auf einer virtuellen Eingabevorrichtung die Berührung stattfand,
und welche Daten oder Befehlstastenfolgen, entsprechend dem lokalisierten
Gebiet, das berührt
wurde, in Antwort auf die Berührung
ausgeführt
werden soll. Alternativ könnte
die virtuelle Eingabevorrichtung eine virtuelle Maus oder ein Trackball
umfassen. Bei einer solchen Ausführungsform
würde die
vorlie gende Erfindung die Koordinaten des Berührungs-Punktes mit der virtuellen
Eingabevorrichtung erfassen und berichten, welche Koordinaten mit
einer Anwendung verknüpft
sind, vielleicht um einen Cursor auf einem Display (bei einer virtuellen Maus
oder einer Trackball-Implementierung) bewegen und/oder sog. digitale
Tinte für
eine Zeichnung oder eine Schreibanwendung aufbringen zu können (ein
virtueller Füller
oder eine Stiftanwendung). In verschiedenen Ausführungsformen werden vorzugsweise
Triangulationsanalyseverfahren verwendet, um zu bestimmen, wo eine „Berührung" von Benutzer und
Objekt mit der virtuellen Eingabevorrichtung auftritt.The
The present invention locates an interaction between a
User finger or a stylus and a passive touchpad (eg.
a virtual input device) that defines above a work surface
is by using a planar quasi three-dimensional detection
becomes. The quasi-three-dimensional detection implies that the
Determination of an interaction point essentially in three dimensions
accomplished
can be made by using a two-dimensional surface as reference
which is arbitrarily oriented in three-dimensional space. As soon as
a touch
the invention locates the touch area to determine
where the touch took place on a virtual input device,
and what data or command key sequences, according to the localized
Area that touches
was, in response to the touch
accomplished
shall be. Alternatively could
the virtual input device is a virtual mouse or a trackball
include. In such an embodiment
would the
vorlie ing invention, the coordinates of the touch point with the virtual
Capture input device and report which coordinates with
linked to an application
are, perhaps a cursor on a display (in a virtual mouse
or a trackball implementation) and / or so-called digital
Ink for
to be able to apply a drawing or a writing application (a
virtual filler
or a pen application). In various embodiments, preferably
Triangulation analysis method used to determine where a "touch" of user and
Object with the virtual input device occurs.
Bei
einer Ausführungsform
mit sog. strukturiertem Licht umfasst die Erfindung ein erstes optisches System
(OS1), das eine Ebene von optischer Energie erzeugt, die einen Fächerstrahl
eines Strahlwinkels ϕ parallel zu und in einem kleinen
Abstand ΔY über der
Arbeitsfläche
erzeugt, auf der die virtuelle Eingabevorrichtung definiert werden
könnte.
Bei dieser Ausführungsform
ist die interessierende Ebene die Ebene des Lichts, das von OS1
erzeugt wird, typischerweise einem Laser oder einem LED-Lichtgenerator. Die
zwei parallelen Ebenen können
typischerweise horizontal sein, können jedoch auch vertikal liegen
oder jeden anderen beliebigen und geeigneten Winkel besitzen. Die
Erfindung umfasst ferner ein zweites optisches System (OS2), das
auf optische Energie der gleichen Wellenlänge anspricht, wie von OS1
emittiert wird. Vorzugsweise ist die OS2 über OS1 angeordnet und angewinkelt
mit einem Offsetwinkel von θ relativ
zu der Fächerstrahlebene,
in Richtung des Bereichs, wo die virtuelle Eingabevorrichtung definiert
ist. OS2 spricht auf Energie an, die von OS1 emittiert wird, wobei
die Wellenlänge
der optischen Energie aber nicht für Menschen sichtbar sein muss.In a so-called structured light embodiment, the invention includes a first optical system (OS1) that generates a plane of optical energy that produces a fan beam of beam angle φ parallel to and a small distance ΔY above the work surface on which the virtual Input device could be defined. In this embodiment, the plane of interest is the plane of the light generated by OS1, typically a laser or an LED light generator. The two parallel planes may typically be horizontal, but may also be vertical or have any other arbitrary and suitable angle. The invention further includes a second optical system (OS2) responsive to optical energy of the same wavelength as emitted by OS1. Preferably, the OS2 is located above OS1 and angled at an offset angle of θ relative to the fan beam plane, toward the area where the virtual input device is defined. OS2 responds to energy coming from OS1 is emitted, but the wavelength of the optical energy does not have to be visible to people.
Die
Erfindung kann auch implementiert werden, indem Konfigurationen
mit nicht strukturiertem Licht verwendet werden, die aktiv oder
passiv sein können.
Bei einer passiven Triangulationsausführungsform ist OS1 eine Kamera
und nicht eine aktive Quelle optischer Energie, und OS2 ist eine
Kamera, die auf die gleiche optische Energie wie OS1 anspricht und
vorzugsweise wie zuvor beschrieben angeordnet ist. Bei einer solchen Ausführungsform
ist die interessierende Ebene die Projektionsebene einer Abtastlinie
der OS1-Kamera. Bei einer Ausführungsform
mit nicht strukturiertem Licht, wie bspw. einer aktiven Triangulationsausführungsform, sind
OS1 und OS2 Kameras und die Erfindung umfasst ferner eine aktive
Lichtquelle, die optische Energie mit Wellenlängen emittiert, auf die OS1
und OS2 ansprechen. Optional bei einer solchen Ausführungsform
können OS1
und OS2 jeweils einen Shutter-Mechanismus bzw. Verschluss- oder
Blendenmechanismus umfassen, der synchronisiert ist, um die aktive
Lichtquelle derart auszugeben, dass die Verschlüsse in OS1 und OS2 offen sind,
wenn optische Energie emittiert wird, und die ansonsten geschlossen
sind. Ein Vorteil einer Konfiguration mit nicht strukturiertem Licht,
die zwei Kameras verwendet, besteht darin, dass Unebenheiten oder
Unregelmäßigkeiten
auf der Arbeitsfläche
besser toleriert werden. Die Ebene, die durch OS1 definiert wird,
kann ausgewählt
werden, indem eine passende Reihe von OS1-Erfassungspixelelementen
gewählt
wird, um mit dem höchsten
Punkt in der y-Dimension (bspw. ein Hügel) der Arbeitsfläche übereinzustimmen.The
Invention can also be implemented by configurations
be used with unstructured light that is active or
can be passive.
In a passive triangulation embodiment, OS1 is a camera
and not an active source of optical energy, and OS2 is one
Camera that responds to the same optical energy as OS1 and
preferably arranged as described above. In such an embodiment
the plane of interest is the projection plane of a scan line
the OS1 camera. In one embodiment
with unstructured light, such as an active triangulation embodiment
OS1 and OS2 cameras and the invention further comprises an active
Light source that emits optical energy at wavelengths to the OS1
and OS2. Optional in such an embodiment
can OS1
and OS2 each have a shutter mechanism or shutter or
Cover mechanism that is synchronized to the active
Output light source such that the shutters in OS1 and OS2 are open,
when optical energy is emitted and the otherwise closed
are. An advantage of a configuration with unstructured light,
The two cameras used is that bumps or
irregularities
on the work surface
be better tolerated. The level defined by OS1
can be selected
by using a matching set of OS1 capture pixel elements
chosen
is going to be with the highest
Point in the y-dimension (eg a hill) of the work surface to match.
Bei
der Ausführungsform
mit strukturiertem Licht wird OS2 die optische Energie nicht detektieren
bis ein Objekt, bspw. ein Benutzerfinger oder ein Stift, beginnt,
das Arbeitsflächengebiet
zu berühren,
auf dem die virtuelle Eingabevorrichtung definiert ist. Sobald jedoch
das Objekt die Ebene der optischen Energie durchdringt, die von
OS1 emittiert wird, wird der Bereich des Fingers oder des Stifts,
der die Ebene schneidet, beleuchtet werden (sichtbar oder unsichtbar
für den
Benutzer). OS2 erfasst das Durchschneiden bzw. Durchkreuzen der
interessierenden Ebene, indem die optische Energie erfasst wird,
die in Richtung OS2 durch Beleuchten des Objektgebiets reflektiert
wird. Im Wesentlichen ist nur eine Ebene für die vorliegende Erfindung
von Interesse, die durch die Konfiguration von OS1 bestimmt wird,
und alle anderen Ebenen, die im dreidimensionalen Raum parallel
zu der virtuellen Eingabevorrichtung definierbar wären, können als
irrelevant ignoriert werden. Somit erfasst ein planares dreidimensionales
Sensorsystem Benutzerinteraktionen mit einer virtuellen Eingabevorrichtung,
die in der Ebene des emittierten Fächerstrahls auftreten, und
ignoriert jegliche Interaktionen mit anderen Ebenen.at
the embodiment
with structured light OS2 will not detect the optical energy
until an object, for example a user's finger or a pen, begins,
the worktop area
to touch,
on which the virtual input device is defined. As soon as, however
the object penetrates the plane of the optical energy coming from
OS1 is emitted, the area of the finger or the pen,
which cuts the plane, be illuminated (visible or invisible
for the
User). OS2 detects the cutting or crossing of the
level of interest by detecting the optical energy,
which reflects in the direction OS2 by illuminating the object area
becomes. Essentially, only one level is for the present invention
of interest, which is determined by the configuration of OS1,
and all other planes parallel in three-dimensional space
could be defined to the virtual input device, as
ignored irrelevantly. Thus captures a planar three-dimensional
Sensor system user interactions with a virtual input device,
which occur in the plane of the emitted fan beam, and
ignores any interaction with other layers.
Auf
diese weise erfasst bzw. erkennt die vorliegende Erfindung, dass
ein Objekt die virtuelle Eingabevorrichtung berührt hat. Indem erfasst wird,
dass eine relevante Berührungs-Durchkreuzung aufgetreten
ist, lokalisiert dann die Erfindung in zwei Dimensionen den Ort
der Berührung
auf der Ebene der virtuellen Vorrichtung. Bei der bevorzugten Implementierung
können
lokalisierte Vorgänge
das Identifizieren umfassen, welche virtuellen Tasten auf einer
virtuellen Computertastatur oder einem Musikkeyboard von dem Benutzer
berührt werden.
Der Benutzer kann mehr als eine virtuelle Taste gleichzeitig berühren, bspw.
die „Shift"-Taste und eine andere
Taste. Es ist ebenfalls anzumerken, dass die zeitliche Reihenfolge
der Berührungen
durch die vorliegende Erfindung bestimmt wird. Falls somit der Benutzer
virtuelle Tasten für „Shift" und „t" berührt und
dann für
die Buchstaben „h" und dann „e", wird die vorliegende
Erfindung erkennen, dass „T" dann „h" und dann „e", oder „The" eingegeben wurde.
Es versteht sich, dass die vorliegende Erfindung sich nicht auf
Umgebungslicht stützt
und dass sie ebenfalls bei nicht vorhandenem Umgebungslicht voll
funktionsfähig
ist unter der Annahme, dass der Benutzer den Ort der virtuellen
Eingabevorrichtung kennt.On
this way detects or recognizes the present invention, that
an object has touched the virtual input device. By detecting
that a relevant touch intersection occurred
Then, the invention locates the location in two dimensions
the touch
at the virtual device level. In the preferred implementation
can
localized operations
identifying which virtual keys are on a
virtual computer keyboard or a music keyboard from the user
be touched.
The user can touch more than one virtual key at a time, e.g.
the "Shift" key and another
Button. It should also be noted that the chronological order
the touches
determined by the present invention. If so, the user
touched virtual keys for "shift" and "t" and
then for
the letters "h" and then "e", becomes the present
Invention recognize that "T" then "h" and then "e", or "The" was entered.
It is understood that the present invention is not limited to
Ambient light supports
and that they are also full in the absence of ambient light
functioning
is assuming that the user is the location of the virtual
Input device knows.
Passive
Triangulationsverfahren mit strukturiertem Licht und/oder nicht
strukturiertem Licht können verwendet
werden, um einen Berührungs-
bzw. Kontaktpunkt (x, z) zwischen einer Benutzerhand und der Erfassungsebene
zu bestimmen. Da die Basislinienentfernung B zwischen OS1 und OS2
bekannt ist, wird ein Dreieck zwischen OS1, OS2 und dem Punkt (x,
z) gebildet, dessen Seiten B sind, und die Projektionsstrahlen R1
und R2 von OS1, OS2 bis (x, z). OS1 und OS2 ermöglichen die Bestimmung einer
Dreieckwinkelentfernung von einer Referenzebene sowie der Winkel α1 und α2,
die durch die Projektionsstrahlen gebildet werden, und die Trigonometrie
führt zu
dem Abstand z zu dem Oberflächenpunkt
(x, z) sowie zu den Projektionsstrahllängen.Structured light and / or unstructured light passive triangulation techniques may be used to determine a touch point (x, z) between a user's hand and the detection plane. Since the baseline distance B between OS1 and OS2 is known, a triangle is formed between OS1, OS2 and the point (x, z) whose sides are B, and the projection beams R1 and R2 from OS1, OS2 to (x, z). OS1 and OS2 allow the determination of a triangle angle distance from a reference plane and the angles α 1 and α 2 formed by the projection beams, and the trigonometry results in the distance z to the surface point (x, z) as well as the projection beam lengths.
Eine
Prozessoreinheit, die mit der vorliegenden Erfindung verknüpft ist,
führt Software
aus, um jeden Schnittpunkt eines benutzergesteuerten Objekts mit
der virtuellen Eingabevorrichtung zu identifizieren und daraus die
richtigen vom Benutzer gewünschten
Eingangsdaten und/oder Befehle zu bestimmen, vorzugsweise indem
eine Triangulationsanalyse verwendet wird. Die Daten und/oder Befehle
können
dann von der vorliegenden Erfindung als Eingangssignale in eine
Vorrichtung oder ein System eingegeben werden, für die bzw. das die virtuelle
Eingabevorrichtung verwendet wird. Falls gewünscht, kann die vorliegende Erfindung
innerhalb der begleitenden Vorrichtung (engl.: companion device)
oder Systems implementiert werden, insbesondere in PDAs, Mobilfunkgeräten und
anderen kleinbauenden Vorrichtungen oder Systemen, denen es häufig an
einer großen
Benutzereingabevorrichtung, wie bspw. einer Tastatur mangelt.A processor unit associated with the present invention executes software to identify each intersection of a user-controlled object with the virtual input device and determine therefrom the correct user-desired input data and / or commands, preferably by using a triangulation analysis. The data and / or commands may then be input by the present invention as inputs to a device or system for which the virtual input device is being used. If desired, the present invention may be implemented within the companion device or systems, in particular in PDAs, cell phones and other small scale devices or systems which often lack a large user input device such as a keyboard.
Andere
Merkmale und Vorteile der Erfindung werden aus der nachfolgenden
Beschreibung klar, in der die bevorzugten Ausführungsformen im Detail ausgeführt sind,
in Verbindung mit den begleitenden Zeichnungen.Other
Features and advantages of the invention will become apparent from the following
Description in which the preferred embodiments are set forth in detail,
in conjunction with the accompanying drawings.
KURZE BESCHREIBUNG
DER ZEICHNUNGENSHORT DESCRIPTION
THE DRAWINGS
1A zeigt
ein planares quasi dreidimensionales Erfassungssystem mit strukturiertem
Licht, das verwendet wird, um eine Benutzereingabe auf einer virtuellen
Eingabevorrichtung zu erfassen, entsprechend der vorliegenden Erfindung; 1A Fig. 12 shows a planar, quasi-three-dimensional, structured light detection system used to capture user input on a virtual input device in accordance with the present invention;
1B zeigt
ein planares quasi dreidimensionales Erfassungssystem mit nicht
strukturiertem aktivem Licht, das verwendet wird, um eine Benutzereingabe
auf einer virtuellen Eingabevorrichtung zu erfassen, entsprechend
der vorliegenden Erfindung; 1B shows a planar quasi-three-dimensional detection system with unstructured active light used to detect user input on a virtual input device according to the present invention;
1C zeigt
ein planares quasi dreidimensionales Erfassungssystem mit nicht
strukturiertem passivem Licht, das verwendet wird, um Benutzereingaben
auf einer virtuellen Eingabevorrichtung zu erfassen, entsprechend
der vorliegenden Erfindung; 1C shows a planar quasi-three-dimensional detection system with unstructured passive light used to capture user input on a virtual input device according to the present invention;
2A zeigt
die Geometrie, die mit der Ortsbestimmung verknüpft ist, indem Triangulation
verwendet wird, entsprechend der vorliegenden Erfindung; 2A shows the geometry associated with location determination using triangulation according to the present invention;
2B zeigt
den Einsatz eines optischen Emitters und eines davon beabstandeten
Reflektors, als ein erstes optisches System, entsprechend der vorliegenden
Erfindung; 2 B shows the use of an optical emitter and a reflector spaced therefrom, as a first optical system, according to the present invention;
3A–3E zeigen
Designkompromisse, die mit variierenden Ausrichtungen des OS2-Sensors, der
OS2-Linse und der Erfassungsebene bei wirksamen Sichtfeld und Bildqualität verknüpft sind,
entsprechend der vorliegenden Erfindung; 3A - 3E show design tradeoffs associated with varying orientations of the OS2 sensor, the OS2 lens, and the detection plane with effective field of view and image quality, according to the present invention;
4 ist
ein Blockdiagramm, das Funktionen darstellt, die von einer Prozessoreinheit
in dem beispielhaften System von 1B ausgeführt werden,
entsprechend einer Ausführungsform
der vorliegenden Erfindung; 4 FIG. 4 is a block diagram illustrating functions performed by a processor unit in the example system of FIG 1B be executed, according to an embodiment of the present invention;
5A zeigt
eine Ausführungsform,
bei der die virtuelle Vorrichtung vier benutzerwählbare Gebiete aufweist und
die begleitende Vorrichtung ein Monitor ist, entsprechend der vorliegenden
Erfindung; 5A shows an embodiment in which the virtual device has four user-selectable areas and the companion device is a monitor according to the present invention;
5B zeigt
eine Ausführungsform,
bei der die virtuelle Vorrichtung eine Computertastatur und die begleitende
Vorrichtung ein Mobilfunksender/Empfänger ist entsprechend der vorliegenden
Erfindung; 5B shows an embodiment in which the virtual device is a computer keyboard and the accompanying device is a mobile radio transmitter / receiver according to the present invention;
5C zeigt
eine Ausführungsform,
bei der die virtuelle Vorrichtung auf einer Wand befestigt oder
projiziert ist und die begleitende Vorrichtung ein Monitor ist,
entsprechend der vorliegenden Erfindung; 5C shows an embodiment in which the virtual device is mounted or projected on a wall and the companion device is a monitor according to the present invention;
6 zeigt
eine planare Entfernungsmessung entsprechend der vorliegenden Erfindung;
und 6 shows a planar distance measurement according to the present invention; and
7 zeigt
Koordinatenentfernungsmessungen, die bei einer beispielhaften Berechnung
eines Berührungsorts
verwendet werden, zur Verwendung bei der Ausgabe entsprechender
Information oder Daten oder Befehle, entsprechend der vorliegenden
Erfindung. 7 FIG. 12 shows coordinate range measurements used in an example calculation of a touch location for use in outputting corresponding information or data or instructions according to the present invention. FIG.
DETAILLIERTE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMDETAILED
DESCRIPTION OF THE PREFERRED EMBODIMENT
1A zeigt
eine bevorzugte Ausführungsform
eines quasi planaren dreidimensionalen Erfassungssystems 10 mit – in einer
Ausführungsform
mit strukturiertem Lichtsystem – einem
ersten optischen System (OS1) 20, das eine Fächerstrahlebene 30 von
optischer Energie parallel zu einer planaren Arbeitsfläche 40 emittiert,
auf welcher Arbeitsfläche
eine virtuelle Eingangsvorrichtung 50 und/oder 50' und/oder 50'' definiert ist. Vorzugsweise definiert
der Fächerstrahl
einen Fächerwinkel ϕ und
ist von der Arbeitsfläche
um einen kleinen Entfernungsabstand ΔY beabstandet. Ein Objekt (bspw.
ein Benutzerfinger oder Stift), der versucht, die Arbeitsfläche zu berühren, muss
als Erstes den Fächerstrahl
berühren
und wird dadurch mit der ausgestrahlten optischen Energie beleuchtet
(sichtbar oder nicht sichtbar). Während die Fächerstrahlebene 30 und
die Arbeitsflächenebene 40 horizontal
angeordnet in 1A gezeigt sind, können diese
beiden Ebenen auch vertikal oder tatsächlich in jedem anderen Winkel
angeordnet sein, der für
ein System gewünscht
wird. Es sei angemerkt, dass ohne Einschränkung eine Arbeitsfläche 40 ein
Teil eines Schreibtisches, eine Tischoberfläche, ein Teil eines Fahrzeugs,
bspw. ein Tablett in einem Flugzeug, eine Windschutzscheibe oder
ein Armaturenbrett, eine Wand, ein Display mit einer projizierten
Abbildung oder ein Display, wie bspw. ein CRT, ein LCD, sein könnte. Hier
wird der Begriff „Ebene" so verstanden, dass
er eine Untermenge einer gesamten Ebene einschließt. Beispielsweise
wird die Fächerstrahlebene 30 als
eine Ebene bezeichnet, obgleich sie eine endliche Breite besitzt
und sich nicht in alle Richtungen endlich erstreckt. 1A shows a preferred embodiment of a quasi-planar three-dimensional detection system 10 with - in one embodiment with a structured light system - a first optical system (OS1) 20 which has a fan beam plane 30 of optical energy parallel to a planar work surface 40 emits on which work surface a virtual input device 50 and or 50 ' and or 50 '' is defined. Preferably, the fan beam defines a fan angle φ and is spaced from the work surface by a small distance distance ΔY. An object (such as a user's finger or pen) attempting to touch the work surface must first touch the fan beam and thereby illuminate with the emitted optical energy (visible or invisible). While the fan beam level 30 and the Ar beitsflächenebene 40 arranged horizontally in 1A 2, these two planes can also be arranged vertically or actually at any other angle desired for a system. It should be noted that without limitation a work surface 40 a part of a desk, a table surface, a part of a vehicle, for example a tray in an airplane, a windscreen or a dashboard, a wall, a display with a projected image or a display, such as a CRT, an LCD could. Herein, the term "level" is understood to include a subset of an entire level, for example, the fan beam level 30 as a plane, although it has a finite width and does not extend in all directions at last.
Mit „virtuelle
Eingabevorrichtung" ist
gemeint, dass eine Abbildung einer Eingabevorrichtung auf der Arbeitsfläche 40 vorhanden
sein kann, vielleicht durch Platzieren eines Papiers, das ein gedrucktes
Bild trägt, oder
vielleicht durch ein System 10, das ein sichtbares Bild
der Eingabevorrichtung auf die Arbeitsfläche projiziert, oder es effektiv
kein irgendwie sichtbares Bild auf der Arbeitsfläche 40 gibt. Die virtuelle
Eingabevorrichtung 50, 50', 50'' erfordert
keine mechanischen Teile, wie Bedientasten und muss nicht auf die
Berührung durch
einen Finger oder einen Stift ansprechen; kurz gesagt, die virtuelle
Eingabevorrichtung ist vorzugsweise passiv.By "virtual input device" is meant an image of an input device on the work surface 40 may be present, perhaps by placing a paper bearing a printed image, or perhaps by a system 10 that projected a visible image of the input device onto the work surface, or effectively, there is no any visible image on the work surface 40 gives. The virtual input device 50 . 50 ' . 50 '' does not require any mechanical parts, such as control buttons, and does not need to respond to the touch of a finger or stylus; In short, the virtual input device is preferably passive.
In
dem Beispiel von 1A ist die virtuelle Eingabevorrichtung 50 eine
Computertastatur, die volle Größe haben
kann oder vergrößert oder
verkleinert gegenüber
einer üblich
dimensio nierten Tastatur sein kann. Falls gewünscht, kann die virtuelle Eingabevorrichtung
einen virtuellen Trackball 50' und/oder ein virtuelles Touchpad 50'' enthalten oder umfassen. Wenn
das System 10 mit einer virtuellen Tastatur-Eingabevorrichtung 50,
oder einem virtuellen Trackball 50' oder einem virtuellen Touchpad 50'' verwendet wird, wird ein Fächerwinkel ϕ von
etwa 50° bis
90° und
vorzugsweise etwa 90° gewährleisten,
so dass der Fächerstrahl 30 die
gesamte virtuelle Eingabevorrichtung in üblich verwendeten Entfernungen
umgeben wird. Bei einer solchen virtuellen Eingabevorrichtung hat
sich ein Entfernungsabstand ΔY
von bis zu einigen wenigen mm, vorzugsweise etwa 1 mm als sehr gut
herausgestellt.In the example of 1A is the virtual input device 50 a computer keyboard that can be full size or enlarged or reduced in size compared to a commonly dimensioned keyboard. If desired, the virtual input device may be a virtual trackball 50 ' and / or a virtual touchpad 50 '' contain or include. If the system 10 with a virtual keyboard input device 50 , or a virtual trackball 50 ' or a virtual touchpad 50 '' is used, a fan angle φ of about 50 ° to 90 ° and preferably about 90 ° ensure, so that the fan beam 30 the entire virtual input device is surrounded in commonly used distances. In such a virtual input device, a distance distance .DELTA.Y of up to a few mm, preferably about 1 mm has proven to be very good.
Das
System 10 umfasst ferner ein zweites optisches System (OS2) 60,
typischerweise eine Kamera mit einem ebenen Sensor, die vorzugsweise
beabstandet von und über
OS1 20 angeordnet ist und in Richtung der Arbeitsfläche 40 und
der Ebene 30 in einem Winkel θ, von etwa 10° bis etwa
90°, und
vorzugsweise etwa 25° geneigt
ist. Das System 10 umfasst ferner ein elektronisches Verarbeitungssystem 70,
das neben anderen Aufgaben OS1 und OS2 überwacht. Das System 70 umfasst
vorzugsweise zumindest eine zentrale Prozessoreinheit (CPU) und
zugehörigen
Speicher, der Read-only-Memory bzw. Nur-Lesespeicher (ROM) und Random Access
Memory bzw. Speicher mit wahlfreiem Zugriff (RAM) umfassen kann.The system 10 further comprises a second optical system (OS2) 60 typically a camera with a planar sensor, preferably spaced from and above OS1 20 is arranged and towards the work surface 40 and the plane 30 is inclined at an angle θ, from about 10 ° to about 90 °, and preferably about 25 °. The system 10 further comprises an electronic processing system 70 which monitors among other tasks OS1 and OS2. The system 70 preferably comprises at least one central processing unit (CPU) and associated memory, which may comprise read-only memory (ROM) and random access random access memory (RAM).
In 1A sind
System 10-Elemente OS1 20, OS2 60 und die Prozessoreinheit 70 gezeigt,
wobei sie auf oder in einer Vorrichtung 80 angeordnet sind.
Die Vorrichtung 80 kann als Stand-Alone-Implementierung des Systems 10 ausgeführt sein
oder kann tatsächlich
ein System oder eine Vorrichtung sein, für die die virtuelle Eingabevorrichtung 50 zur
Eingabe von Daten oder Befehlen benutzt wird. Im letztgenannten
Fall kann die Vorrichtung 80 ohne Einschränkung ein
Computer, ein PDA (wie in 1A gezeigt),
ein Mobilfunktelefon, ein Musikinstrument, etc. sein. Falls das
System oder die Vorrichtung 80 nicht von der virtuellen
Eingabevorrichtung gesteuert wird, kann die Vorrichtung 90,
die so gesteuert wird, elektrisch mit dem System/Vorrichtung 80 gekoppelt
sein, um Daten und/oder Befehlseingaben von der virtuellen Vorrichtung 50 zu
empfangen. Wenn die virtuelle Vorrichtung ein Trackball (oder Maus) 50' oder ein Touchpad 50'' ist, kann die Benutzerinteraktion mit
einer solchen virtuellen Vorrichtung direkt Rohinformation oder
Daten ausgeben, die Berührungs-Koordinaten
(x, z) zur Verwendung durch die Vorrichtung 80 umfassen.
Beispielsweise könnte
die Benutzerinteraktion mit der virtuellen Eingabevorrichtung 50' oder 50'' eine Neupositionierung eines Cursors 160 auf
einem Display 140 sein oder könnte eine Anwendung ändern, die
von der Vorrichtung 80 ausgeführt wird, oder könnte einen
Ort für
eine sog. digitale Tinte 180 festlegen, der dem nachfolgt,
was ein Benutzer „schreibt", indem eine virtuelle
Maus oder Trackball 50' verwendet
wird, oder ein Stift 120' verwendet
wird oder ein virtuelles Touchpad 50''.
Das System/die Vorrichtung 90 kann elektrisch mit dem System 80 über ein
Medium 100 gekoppelt sein, das ohne Einschränkung Leitungen
umfassen kann oder drahtlos aufgebaut sein kann oder ein Netzwerk einschließlich des
Internets sein kann.In 1A are system 10 elements OS1 20 , OS2 60 and the processor unit 70 being shown on or in a device 80 are arranged. The device 80 can be considered a stand-alone implementation of the system 10 or may actually be a system or device for which the virtual input device 50 is used to enter data or commands. In the latter case, the device 80 without limitation, a computer, a PDA (as in 1A shown), a mobile phone, a musical instrument, etc. If the system or device 80 is not controlled by the virtual input device, the device 90 thus controlled electrically with the system / device 80 be coupled to data and / or command inputs from the virtual device 50 to recieve. If the virtual device is a trackball (or mouse) 50 ' or a touchpad 50 '' For example, with such a virtual device, user interaction may directly output raw information or data containing touch coordinates (x, z) for use by the device 80 include. For example, the user interaction with the virtual input device 50 ' or 50 '' a repositioning of a cursor 160 on a display 140 or could change an application by the device 80 or could be a location for a so-called digital ink 180 Following this, what a user "writes" by using a virtual mouse or trackball 50 ' is used, or a pen 120 ' is used or a virtual touchpad 50 '' , The system / device 90 can be electric with the system 80 about a medium 100 be coupled, which may include without limitation lines or may be wireless or may be a network including the Internet.
Bei
einer Ausführungsform
mit strukturiertem Licht emittiert OS1 20 optische Energie
in einem Fächerstrahl 30 parallel
zu der x-z Ebene 30. OS1 kann einen Laserzeilengenerator
oder einen LED Zeilengenerator aufweisen, obgleich andere optische Energiequellen
verwendet werden könnten,
um die Ebene 30 auszustrahlen. Ein Zeilengenerator OS1
wird so benannt, da er eine Ebene von Licht ausstrahlt die, wenn
von einer zweiten Ebene geschnitten, beleuchtet, was OS2 als eine
Zeile auf der zweiten Ebene sehen würde. Beispielsweise falls ein
zylindrisches Objekt Ebene 30 schneiden würde, würde OS2
diesen Vorgang als einen beleuchteten Abschnitt eines elliptischen
Bogens sehen, dessen Aspekt-Verhältnis
abhängen
würde von
dem Abstand von OS2 über
der Ebene 30 und der Oberfläche 40. Somit bemerkt
die Erfassung durch OS2 eines elliptischen Bogens auf der Ebene 30 einen
Berührungs-Vorgang,
bspw. dass ein Objekt, wie bspw. 120R die Ebene 30 berührt oder
durchdrungen hat, wobei Umgebungslicht ausgeschlossen wird. Obgleich
eine Vielzahl von optischen Emittern verwendet wird, könnte eine
Laserdiode, die etwa 3 mW Durchschnittsleistung mit einer Wellenlänge von
etwa 300 nm bis vielleicht 1000 nm ausgibt, verwendet werden. Während die
Umgebungslichtwellenlängen
(bspw. etwa 350 nm bis 700 nm) verwendet werden könnten, könnten die
Wirkungen des Umgebungslichts minimiert werden, ohne Filtern oder
ohne Blenden bzw. Verschlüsse,
falls solche Wellenlängen vermieden
werden. Somit könnten
Wellenlängen
von etwa 600 nm (sichtbares Rot) bis etwa 1000 nm (tiefes Infrarot)
verwendet werden. Eine Laserdiode, die optische Energie bei einer
Wellenlänge
von 850 nm ausgibt, würde
einen ökonomischen
Emitter darstellen, obgleich OS2 bevorzugt einen Filter zur Reduzierung
der Wirkungen des Umgebungslichts umfassen würde.In one structured light embodiment, OS1 emits 20 optical energy in a fan beam 30 parallel to the xz plane 30 , OS1 may have a laser line generator or LED row generator, although other optical power sources could be used to make the plane 30 radiate. A row generator OS1 is named so because it emits a plane of light which, when intersected by a second plane, illuminates what OS2 would see as a line on the second plane. For example, if a cylindrical object is level 30 OS2 would light this process as one See section of an elliptical arc whose aspect ratio would depend on the distance of OS2 above the plane 30 and the surface 40 , Thus, the detection by OS2 detects an elliptical arc on the plane 30 a touch operation, for example, that an object, such as. 120R the level 30 touched or penetrated, with ambient light is excluded. Although a variety of optical emitters are used, a laser diode that outputs about 3 mW average power with a wavelength of about 300 nm to perhaps 1000 nm could be used. While ambient light wavelengths (eg, about 350 nm to 700 nm) could be used, the effects of ambient light could be minimized without filtering or without shutters if such wavelengths are avoided. Thus, wavelengths from about 600 nm (visible red) to about 1000 nm (deep infrared) could be used. A laser diode that outputs optical energy at a wavelength of 850 nm would be an economical emitter, although OS2 would preferably include a filter to reduce the effects of ambient light.
Während OS1
in einer Ausführungsform
mit strukturiertem Licht vorzugsweise stationär ist, versteht sich, dass
ein Fächerstrahl 30 durch
mechanisches Schwenken einer einzelnen emittierten Zeile optischer
Energie erzeugt werden könnte,
um die Fächerstrahlebene 30 zu
definieren. Wie in 2B gezeigt, kann OS1 tatsächlich einen
optischen Energieemitter 20-A umfassen, der einen Fächerstrahl
emittiert, und einen reflektierenden Spiegel 20-B, der
den Fächerstrahl 30 im
Wesentlichen parallel zu der Fläche 40 richtet.
Für die
vorliegende Erfindung kann bei der Ausführungsform mit strukturiertem
Licht die optische Energie, die von OS1 20 emittiert wird,
für Menschen
sichtbar oder unsichtbar sein. OS2 60 umfasst vorzugsweise
ein Kamerasystem, das auf optische Energie der Wellenlänge anspricht,
die von OS1 20 emittiert wird. Unter „Ansprechen" ist gemeint, dass
OS2 Energie der gleichen Wellenlänge
erkennt, die von OS1 emittiert wird, und Idealerweise Energie nicht
erkennt oder darauf nicht anspricht, die sich wesentlich von der
Wellenlänge
unterscheidet. Beispielsweise kann OS2 ein Filtersystem umfassen,
derart, dass optische Energie der Wellenlänge, die nicht die von OS1
emittierte Wellenlänge
ist, nicht detektiert wird, bspw. ein Farbfilter.While OS1 is preferably stationary in a structured light embodiment, it will be understood that a fan beam 30 could be generated by mechanically panning a single emitted line of optical energy to the fan beam plane 30 define. As in 2 B OS1 can actually be an optical energy emitter 20-A comprising a fan beam and a reflecting mirror 20-B , the fan beam 30 essentially parallel to the surface 40 directed. For the present invention, in the structured light embodiment, the optical energy provided by OS1 20 is emitted, visible or invisible to humans. OS2 60 preferably includes a camera system responsive to optical energy of the wavelength selected by OS1 20 is emitted. By "responsive" it is meant that OS2 recognizes energy of the same wavelength emitted by OS1, and ideally does not recognize or respond to energy that differs substantially from the wavelength, for example OS2 may include a filtering system such that optical Energy of the wavelength, which is not the wavelength emitted by OS1, is not detected, for example, a color filter.
Falls
gewünscht,
könnte
OS2 im Wesentlichen nur auf optische Energie ansprechen, die von
OS1 emittiert wird, indem OS1 und OS2 synchron gleichzeitig ein-
und ausgeschaltet werden, bspw. unter der Kontrolle der Einheit 70.
OS1 und OS2 würden
vorzugsweise Blenden, bzw. Verschlussmechanismen umfassen, die als
Elemente 22 dargestellt sind, die funktional in synchroner
Weise öffnen
und schließen.
Das elektronische Verarbeitungssystem 70 könnte bspw.
synchron OS1, OS2 oder die Verschlussmechanismen 22 für eine Zeitperiode
t1 mit einem gewünschten Taktverhältnis einschalten,
wobei t1 etwa im Bereich von etwa 0,1 ms
bis etwa 35 ms liegt und würde
dann OS1 und OS2 ausschalten. Falls gewünscht, könnte OS1 immer betrieben werden,
wenn die Ebene 30 nur strahlen kann, wenn der Verschluss 22 vor OS1 20 offen
ist. In den verschiedenen Verschlusskonfigurationen beträgt die Wiederholungsrate
des synchronen Schaltens vorzugsweise etwa 20 Hz bis etwa 300 Hz,
um eine adäquate
Bilddatenerfassungsgeschwindigkeit zu unterstützen. Um Betriebsleistung zu
sparen und Berechnungsoverhead zu reduzieren, stellt eine Wiederholungsrate
von etwa 30 Hz bis 100 Hz eine akzeptable Geschwindigkeit dar. Selbstverständlich können andere
Vorrichtungen und Verfahren ebenfalls verwendet werden, um zu gewährleisten,
dass OS2 im Wesentlichen nur auf optische Energie anspricht, die
von OS1 emittiert wird. Zur Vereinfachung der Darstellung sind die
Verschlüsse 22 als
mechanische Elemente dargestellt, aber in der Praxis wird das Konzept
der Verschlüsse 22 so
verstanden, dass es ein- und ausschaltende Lichtquellen und Kameras
in jeglicher Variation umfasst.If desired, OS2 could essentially only respond to optical energy emitted by OS1 by synchronously turning OS1 and OS2 on and off simultaneously, for example, under the control of the unit 70 , OS1 and OS2 would preferably include apertures, or shutter mechanisms, as elements 22 are shown that functionally open and close in a synchronous manner. The electronic processing system 70 could, for example, synchronously OS1, OS2 or the shutter mechanisms 22 for a time period t 1 with a desired duty cycle, where t 1 is in the approximate range of about 0.1 ms to about 35 ms, and would then turn off OS1 and OS2. If desired, OS1 could always be operated when the plane 30 only can radiate when the shutter 22 before OS1 20 is open. In the various shutter configurations, the repetition rate of the synchronous switching is preferably about 20 Hz to about 300 Hz to support an adequate image data acquisition speed. To save on operating power and reduce computational overhead, a repetition rate of about 30 Hz to 100 Hz is an acceptable speed. Of course, other devices and methods may also be used to ensure that OS2 is essentially responsive only to optical energy coming from OS1 is emitted. To simplify the illustration, the closures 22 represented as mechanical elements, but in practice becomes the concept of closures 22 understood to include on and off switching light sources and cameras in any variation.
Falls
gewünscht,
könnten
eine Quelle oder Quellen optischer Energie, die bei der vorliegenden
Erfindung verwendet werden, ausgelegt werden, um eine sog. Signatur
zu tragen, um zu ermöglichen,
dass solche Energie besser von der Umgebungslichtenergie unterschieden
werden kann. Beispielsweise könnten
solche Quellen moduliert werden mit einer festen Frequenz, so dass
Kameras oder andere Sensoreinheiten, die bei der vorliegenden Erfindung
verwendet werden, leichter solche Energie erkennen können, während die
Umgebungslichtenergie aufgrund des Fehlens einer solchen Signatur
im Wesentlichen zurückgewiesen
werden würde,
wobei dieses Beispiel nicht einschränkend ist. Kurz gesagt, können Signaturtechniken,
wie bspw. die Wellenlängenauswahl
für optische
Energie, die sich von Umgebungslicht unterscheidet, Techniken, die
synchronen Betrieb der Lichtquellen und der Kamerasensoren umfassen,
und modulierte oder anders markierte Lichtquellenenergie, jeweils
das Signal/Rauschver hältnis
der Information verbessern, die von der vorliegenden Erfindung erlangt
wird.If
desired
could
a source or sources of optical energy used in the present
Be used in the invention, a so-called. Signature
to carry to enable
that such energy better distinguished from the ambient light energy
can be. For example, could
Such sources are modulated with a fixed frequency, so that
Cameras or other sensor units used in the present invention
can be used to more easily detect such energy while the
Ambient light energy due to the lack of such a signature
essentially rejected
would be
this example is not limiting. In short, signature techniques,
such as the wavelength selection
for optical
Energy that differs from ambient light, techniques that
include synchronous operation of the light sources and the camera sensors,
and modulated or otherwise labeled light source energy, respectively
the signal / noise ratio
to improve the information obtained from the present invention
becomes.
Es
sei angemerkt, dass keine Forderung bzw. Notwendigkeit besteht,
die Arbeitsfläche 40 mit
Bezug auf die Wellenlänge
reflektierend oder nicht reflektierend zu machen, welche Wellenlänge von
OS1 emittiert wird, da der Fächerstrahl
oder jede andere Emission von optischer Energie die Oberfläche als
solche nicht erreicht. Es sei auch angemerkt, dass die virtuelle
Eingabevorrichtung bevorzugt vollständig passiv ist. Da die Vorrichtung 50 passiv
ist, kann sie größenmäßig so dimensioniert
sein, dass sie kleiner ist als eine volldimensionierte Vorrichtung,
falls notwendig. Ferner sind die Kosten für eine passive virtuelle Eingabevorrichtung
Null, insbesondere falls die „Vorrichtung" einfach ein Blatt
Papier ist, das ein graphisches Bild einer aktuellen Eingabevorrichtung
trägt.It should be noted that there is no requirement or need for the work surface 40 reflective or non-reflective with respect to the wavelength, which wavelength is emitted by OS1, since the fan beam or any other emission of optical energy does not reach the surface as such. It should also be noted that the virtual input device is preferably completely passive. Because the device 50 is passive, it can be sized in size so that it is smaller than a full dime sited device, if necessary. Further, the cost of a passive virtual input device is zero, especially if the "device" is simply a piece of paper carrying a graphical image of a current input device.
In 1A sei
zunächst
angenommen, dass der Benutzer des Systems 10 nicht in der
Nähe der
virtuellen Eingabevorrichtung 50 ist. Bei einer Ausführungsform
mit strukturiertem Licht, erfasst OS2 nichts, obgleich OS1 eine
Fächerstrahlebene
optischer Energie 30 emittieren kann, da kein Objekt die
Ebene 30 schneidet. Es sei nun angenommen, dass ein Abschnitt 110 eines
Fingers der linken oder rechten Hand 120L, 120R eines
Benutzers sich nach unten bewegt, um einen Bereich des Gebiets der
Arbeitsfläche 40 zu
berühren,
auf der die virtuelle Eingabevorrichtung 50 definiert ist.
Alternativ könnte
ein Bereich 110' eines
vom Benutzer kontrollierten Stifts 120' nach unten bewegt werden, um einen
relevanten Bereich der Arbeitsfläche 40 zu
berühren.
Innerhalb des Kontexts der vorliegenden Erfindung wird eine Berührung durch
Software interpretiert, die mit der Erfindung verknüpft ist,
als eine Anforderung, ein Tastatur-Event an eine Anwendung zu senden, die auf
einer begleitenden Vorrichtung oder einem System 80 oder 90,
bspw. ein Notebook, ein PDA, ein Mobilfunkgerät, eine Kiosk- bzw. Verkaufsstand-Vorrichtung, eine
Kassenvorrichtung, etc. abläuft.In 1A Let's first assume that the user of the system 10 not near the virtual input device 50 is. In a structured light embodiment, OS2 detects nothing, although OS1 is a fan beam plane of optical energy 30 can emit, since no object is the plane 30 cuts. It is now assumed that a section 110 a finger of the left or right hand 120L . 120R of a user moves down to a portion of the area of the work surface 40 to touch on the virtual input device 50 is defined. Alternatively, an area could be 110 ' a user-controlled pen 120 ' to be moved down to a relevant area of the work surface 40 to touch. Within the context of the present invention, a touch is interpreted by software associated with the invention as a request to send a keyboard event to an application on an accompanying device or system 80 or 90 , For example, a notebook, a PDA, a mobile device, a kiosk or booth device, a cash register device, etc. expires.
In 1A wird,
da der Finger des Benutzers sich nach unten bewegt und beginnt,
die optische Energieebene 30 zu schneiden, ein Bereich
der Fingerspitze, die OS1 zugewandt ist, nun optische Energie 130 reflektieren.
Zumindest etwas der reflektierten optischen Energie 130 wird
durch OS2 erfasst, da die Wellenlänge der reflektierten Energie
die gleiche ist wie die Energie, die von OS1 emittiert wird, und
OS2 auf Energie einer solchen Wellenlänge anspricht. Somit erfasst
das planare quasi dreidimensionale Erfassungssystem 10 optische
Energie, die durch die Interaktion eines von einem Benutzer gesteuerten
Objekts (bspw. ein Finger, ein Stift, etc.) reflektiert wird, wobei
die Interaktion an einer interessierenden Ebene auftritt, die von
der Fächerstrahlebene 30 definiert
wird. Jegliche Interaktion, die auf jeder anderen Ebene auftritt,
wird als nicht relevant betrachtet und kann von der vorliegenden
Erfindung ignoriert werden.In 1A as the user's finger moves down and begins, the optical energy plane 30 to cut, an area of the fingertip that faces OS1, now optical energy 130 reflect. At least some of the reflected optical energy 130 is detected by OS2 since the wavelength of the reflected energy is the same as the energy emitted by OS1 and OS2 responds to energy of such wavelength. Thus, the planar quasi-three-dimensional detection system captures 10 optical energy reflected by the interaction of a user-controlled object (eg, a finger, a stylus, etc.), the interaction occurring at a plane of interest, that of the fan beam plane 30 is defined. Any interaction that occurs at any other level is considered irrelevant and may be ignored by the present invention.
Ist
somit ein Objekt, wie bspw. ein Bereich einer Benutzerhand oder
vielleicht eines Stifts die optische Energieebene 30, die
von OS1 emittiert wird, schneidet, gibt es somit keine reflektierte
optische Energie 130, die von OS2 60 erfasst werden
kann. Unter solchen Bedingungen weiß das System 10, dass
keine Benutzereingabe vorgenommen wird. Sobald jedoch die optische
Energieebene durchdrungen wird, wird das Einschneiden des eindringenden
Objekts (bspw. Fingerspitze, Stiftspitze, etc.) von OS2 60 erfasst,
und der Ort (x, z) des Eindringens kann durch die Prozessoreinheit 70 bestimmt
werden, die mit dem System 10 verknüpft ist. In 1A kann,
falls der linke Zeigefinger des Benutzers den Bereich der virtuellen
Eingabevorrichtung 50, der mit den Koordinaten (x7, z3)
definiert ist, berührt,
dann die mit der Erfindung verknüpfte
Software bestimmen, dass der Buchstabe „t" „gedrückt" wurde. Da keine „Shift-Taste" ebenfalls gedrückt wurde,
würde der
gedrückte
Buchstabe als „t" verstanden werden.Thus, an object, such as an area of a user's hand or perhaps a pen, is the optical energy plane 30 thus, there is no reflected optical energy, which is emitted by OS1 130 that by OS2 60 can be detected. Under such conditions the system knows 10 that no user input is made. However, once the optical energy plane is penetrated, the incision of the penetrating object (eg, fingertip, pen tip, etc.) from OS2 60 and the location (x, z) of the intrusion can be detected by the processor unit 70 be determined with the system 10 is linked. In 1A can, if the left index finger of the user the area of the virtual input device 50 which is defined with the coordinates (x7, z3) touches, then the software associated with the invention determines that the letter "t" has been "pressed". Since no "shift key" was also pressed, the pressed letter would be understood as "t".
Bei
der gezeigten Ausführungsform
kann das System 10 Tastenfolgen generieren und dem System 80 oder 90 eingeben,
die Daten und/oder Befehle darstellen, die ein Benutzer auf einem
tatsächlichen
Keyboard eingegeben hätte.
Eine solche Eingabe in ein System 80 oder 90 kann
verwendet werden, um Information 140 auf einem Display 150 darzustellen,
wenn die Information von dem Benutzer auf einer virtuellen Eingabevorrichtung 50 eingegeben
wird. Falls gewünscht,
könnte
ein vergrößertes Cursorgebiet 160 implementiert
werden, um eine zusätzliche
visuelle Eingabe bereitzustellen, um dem Benutzer zu helfen, der
Information eingibt. Falls gewünscht,
könnte
die Prozessoreinheit 70 das System 80 und/oder 90 veranlassen,
ein hörbares
Feedback abzugeben, um dem Benutzer zu helfen, bspw. ein elektronisches
Tastenklickgeräusch 170,
das dem „Drücken" einer virtuellen
Taste der virtuellen Eingabevorrichtung 50 entspricht.
Es versteht sich, dass – falls das
System 80 oder 90 ein Musikinstrument und nicht
ein Computer oder ein PDA oder ein Mobilfunkgerät wäre – Musiktöne 170 emittiert würden, und
die virtuelle Eingabevorrichtung 50 stattdessen den Aufbau ähnlich einer
Pianotastatur oder eines Keyboards haben könnte, die mit synthetischen
Musikgeneratoren verknüpft
sind.In the embodiment shown, the system 10 Generate key sequences and the system 80 or 90 which represent data and / or commands that a user would have typed on an actual keyboard. Such input into a system 80 or 90 Can be used for information 140 on a display 150 represent when the information from the user on a virtual input device 50 is entered. If desired, an enlarged cursor area could 160 can be implemented to provide additional visual input to help the user entering information. If desired, the processor unit could 70 the system 80 and or 90 cause audible feedback to help the user, such as an electronic key click sound 170 The "pressing" of a virtual key of the virtual input device 50 equivalent. It is understood that - if the system 80 or 90 a musical instrument and not a computer or a PDA or a mobile device would be - musical tones 170 would be emitted, and the virtual input device 50 instead, it could have the structure similar to a piano keyboard or keyboard linked to synthetic music generators.
1B zeigt
ein nicht strukturiertes aktives Lichtsystem 10, in welchem
eine Kamera 20' in
einem ersten optischen System OS1 eine interessierende Ebene 30' definiert,
die im Wesentlichen die Ebene 30 ersetzt, die von dem optischen
Emitter OS1 in der Ausführungsform
von 1A definiert wird. Die Kamera 20' OS1 ist vorzugsweise ähnlich der
Kamera 60 OS2, die ähnlich
zu der Kamera 60 OS2 in der Ausführungsform von 1A sein
kann. Beispielsweise kann OS1 20' ein Sensorarray aufweisen, das
zumindest eine Zeile und vorzugsweise mehrere Zeilen von Pixeldetektorelementen
umfasst. Die Ausführungsform
von 1B ist aktiv insofern, als ein oder mehrere Lichtquellen 190,
die zwischen OS1 20' und
OS2 60 angeordnet sind, optische Energie einer Wellenlänge erzeugen,
die von der Kamera OS1 20' und
von der Kamera OS2 60 erfassbar ist. Um die Wirkungen des
Umgebungslichts auf die Erfassung durch die Kameras OS1 und OS2
zu reduzieren, arbeitet vorzugsweise jede Kamera und jeder optische
Energieemitter 190 zusammen mit einem Verschlussmechanismus,
vorzugsweise synchronisiert, bspw. durch die Einheit 70.
Während
der Zeiten, zu denen die Verschlüsse 22 ein
Abstrahlen optischer Energie von dem Emitter 190 in Richtung
der virtuellen Eingabevorrichtung 50, 50', 50'' erlauben, werden ähnliche
Verschlüsse 22 den
Kameras OS1 und OS2 ermöglichen,
optische Energie zu erfassen. Die Interaktion des Benutzerobjekts,
bspw. 120L mit der Ebene 30' wird durch OS1 und durch OS2 erfasst.
Der Ort des Schnittpunkts wird dann berechnet, bspw. durch Einsatz
von Triangulationsverfahren, die später beschrieben werden. 1B shows an unstructured active light system 10 in which a camera 20 ' in a first optical system OS1, a plane of interest 30 ' essentially defines the level 30 replaced by the optical emitter OS1 in the embodiment of 1A is defined. The camera 20 ' OS1 is preferably similar to the camera 60 OS2, which is similar to the camera 60 OS2 in the embodiment of 1A can be. For example, OS1 20 ' a sensor array comprising at least one row and preferably a plurality of rows of pixel detector elements. The embodiment of 1B is active insofar as one or more light sources 190 that between OS1 20 ' and OS2 60 are arranged to generate optical energy of a wavelength from the camera OS1 20 ' and from the camera OS2 60 is detectable. To reduce the effects of ambient light on the detection by the cameras OS1 and OS2, Preferably every camera and every optical energy emitter works 190 together with a shutter mechanism, preferably synchronized, for example by the unit 70 , During the times when the closures 22 radiating optical energy from the emitter 190 towards the virtual input device 50 . 50 ' . 50 '' allow, become similar closures 22 allow the cameras OS1 and OS2 to capture optical energy. The interaction of the user object, eg. 120L with the plane 30 ' is detected by OS1 and by OS2. The location of the point of intersection is then calculated, for example by using triangulation methods which will be described later.
In 1B ist
ein Hügel
oder eine Unregelmäßigkeit
in der Ebene der Arbeitsfläche 40 nahe
des Kontaktpunkts 110 mit dem Benutzerobjekt 120L gezeigt.
Ein Vorteil der vorhandenen zwei ten Kamera OS1 20' liegt darin,
dass die interessierende Ebene 30' ausgewählt sein kann, vielleicht durch
Einheit 70, um direkt über dem
höchsten
irregulären
Bereich der Arbeitsfläche 40 zu
liegen. Falls Unregelmäßigkeiten
in der Arbeitsfläche 40 in
der Ausführungsform
von 1A vorhanden wären,
würde es
notwendig sein, eine Neupositionierung der Laserebene 30 relativ
zu der Arbeitsfläche
durchzuführen.
Aber in 1B wird die Wirkung einer solchen
Neupositionierung elektronisch erreicht, einfach durch Auswahl einer
geeigneten Zeile von Pixeln von dem Detektorarray bei OS1 20'.In 1B is a hill or an irregularity in the plane of the work surface 40 near the point of contact 110 with the user object 120L shown. An advantage of the existing two th camera OS1 20 ' lies in the fact that the level of interest 30 ' can be selected, perhaps through unity 70 to be directly above the highest irregular area of the work surface 40 to lie. If irregularities in the work surface 40 in the embodiment of 1A would be necessary, it would be necessary to reposition the laser plane 30 relative to the work surface. But in 1B For example, the effect of such repositioning is accomplished electronically simply by selecting a suitable row of pixels from the detector array at OS1 20 ' ,
Es
sei angemerkt, dass die Konfiguration von 1B sich
für verschiedene
Verfahren eignet, um das Signal/Rausch-Verhältnis zu verbessern. Beispielsweise
können
es die Verschlüsse 22 den
Kameras OS1 und OS2 ermöglichen,
Abbildungs-Daten während
einer Zeit zu sammeln, zu der die Emitter 190 ausgeschaltet sind,
bspw. über
die Steuerungseinheit 70. Jegliche Abbildungs-Daten, die
von OS1 und/oder OS2 erfasst werden, werden das Hintergrundrauschen
darstellen, das sich aus dem Umgebungslicht ergibt. (Es ist wiederum zu
verstehen, dass zur Minimierung der Wirkung von Umgebungslicht die
Emitter 190 und die Kameras OS1, OS2 vorzugsweise mit einer
Wellenlängenvorgabe
arbeiten, die sich von dem Umgebungslicht unterscheidet.) Wenn dasjenige
erfasst ist, was sich als Hintergrundrauschsignal bezeichnet, können die
Kameras OS1 und OS2 nun normal und synchron mit den Emittern(n) 190 arbeiten.
Abbildungs-Daten, die von den Kameras OS1 und OS2 synchron mit den
Emittern(n) 190 erfasst werden, werden aktuelle Daten umfassen,
bspw. die Benutzerobjektschnittstelle mit der Ebene 30' plus jegliche
(unerwünschten)
Wirkungen aufgrund von Umgebungslicht. Die Prozessoreinheit 70 (oder
eine andere Einheit) kann dann dynamisch das Hintergrund rauschsignal
aus den aktuellen Daten plus Rauschsignal subtrahieren, um zu einem
aktuellen Datensignal zu gelangen, so dass das Signalrausch-Verhältnis verbessert
wird.It should be noted that the configuration of 1B suitable for various methods to improve the signal-to-noise ratio. For example, it may be the closures 22 allow the cameras OS1 and OS2 to collect imaging data for a time to which the emitter 190 are switched off, for example via the control unit 70 , Any imaging data captured by OS1 and / or OS2 will represent the background noise resulting from the ambient light. (Again, it should be understood that to minimize the effect of ambient light, the emitters 190 and the cameras OS1, OS2 preferably operate with a wavelength specification that differs from the ambient light.) If the one detected is what is called a background noise signal, the cameras OS1 and OS2 can now be normal and synchronous with the emitters (n) 190 work. Mapping data from the OS1 and OS2 cameras in sync with the emitters 190 are captured, current data will include, for example, the user interface with the level 30 ' plus any (unwanted) effects due to ambient light. The processor unit 70 (or another unit) can then dynamically subtract the background noise signal from the current data plus the noise signal to arrive at a current data signal, thus improving the signal-to-noise ratio.
1C zeigt
eine nicht strukturierte passive Ausführungsform der vorliegenden
Erfindung. Das System 10 in 1C ist
passiv, egal welche Umgebungslicht-Quelle 195 vorhanden
ist, und stellt optische Energie bereit, die während der Abbildung benutzt
wird. Ähnlich
zu dem System 10 in 1B ist
OS1 eine Kamera 20', die
eine interessierende Ebene 30' definiert, und OS2 ist eine Kamera 60.
Typischerweise wird die Ebene 30' einen Abstand ΔY' über
der Arbeitsfläche 40 definieren,
typischerweise in einem Abstand von wenigen mm. Eine Benutzerobjektinteraktion
mit der Ebene 30' wird
von OS1 und OS2 erfasst, indem optische Energie von der Umgebungslichtquelle 195 benutzt
wird. Triangulationsverfahren können
dann eingesetzt werden, um den Interaktionspunkt oder den Schnittpunkt
mit der Ebene 30' zu
lokalisieren, wie an anderer Stelle hier beschrieben. 1C shows a non-structured passive embodiment of the present invention. The system 10 in 1C is passive, no matter which ambient light source 195 is present, and provides optical energy used during the imaging. Similar to the system 10 in 1B OS1 is a camera 20 ' representing a level of interest 30 ' defined, and OS2 is a camera 60 , Typically, the level becomes 30 ' a distance ΔY 'above the work surface 40 define, typically at a distance of a few mm. A user-object interaction with the layer 30 ' is detected by OS1 and OS2 by taking optical energy from the ambient light source 195 is used. Triangulation methods can then be used to determine the point of interaction or the intersection with the plane 30 ' to locate, as described elsewhere here.
2A zeigt
die Geometrie, mit der der Ort (x, z) des Schnittpunkts zwischen
einem Benutzerfinger oder Objekt 120R und der Ebene 30 bestimmt
werden kann, indem das Triangulationsverfahren verwendet wird. 2A und 2B können verwendet
werden, um die Analyse der verschiedenen Ausführungsformen zu beschreiben,
die in 1A–1C gezeigt
sind. 2A shows the geometry with which the location (x, z) of the intersection between a user's finger or object 120R and the plane 30 can be determined by using the triangulation method. 2A and 2 B can be used to describe the analysis of the various embodiments that appear in 1A - 1C are shown.
Wie
nachfolgend angegeben, hilft die Triangulation, die Form von Oberflächen in
einem Sichtfeld von Interesse zu bestimmen, durch geometrische Analyse
der Dreiecke, die von den Projektionsstrahlen, bspw. R1, R2 auf
zwei optische Systeme bspw. OS1 20, OS2 60 projiziert
werden. Eine Basislinie B stellt die be kannte Länge der Zeile dar, die die
Mittelpunkte der Projektion der zwei optischen Systeme OS1, OS2
verbindet. Für
einen Punkt (x, z) auf einer sichtbaren Fläche in dem Sichtfeld von Interesse,
kann ein Dreieck durch den Ort des Punkts und durch die Orte von
OS1 und OS2 definiert werden. Die drei Seiten des Dreiecks sind
B, R1 und R2. OS1 und OS2 können
den Winkelabstand des Dreiecks von einer Bezugsebene bestimmen,
sowie die Winkel α1 und α2, die durch die Projektionsstrahlen gebildet
werden, die den Oberflächenpunkt
mit den Mittelpunkten der Projektion der zwei optischen Systeme
verbindet. Winkel α1 und α2 und die Basislinie B bestimmen vollständig die
Form des Dreiecks. Eine einfache Trigonometrie kann verwendet werden,
um die Entfernung zu dem Oberflächenpunkt
(x, z) sowie die Länge
des Projektionsstrahls R1 und/oder R2 zu berechnen.As noted below, triangulation helps to determine the shape of surfaces in a field of view of interest by geometrically analyzing the triangles that are projected from the projection beams, e.g., R1, R2, onto two optical systems, for example, OS1 20 , OS2 60 be projected. A baseline B represents the known length of the line connecting the centers of the projection of the two optical systems OS1, OS2. For a point (x, z) on a visible surface in the field of view of interest, a triangle may be defined by the location of the point and by the locations of OS1 and OS2. The three sides of the triangle are B, R1 and R2. OS1 and OS2 can determine the angular distance of the triangle from a reference plane, and the angles α 1 and α 2 formed by the projection beams connecting the surface point to the centers of projection of the two optical systems. Angle α 1 and α 2 and the baseline B completely determine the shape of the triangle. A simple trigonometry can be used to calculate the distance to the surface point (x, z) as well as the length of the projection beam R1 and / or R2.
Es
ist erforderlich, dass OS1 20 als eine einzelne Einheit
implementiert wird. Beispielsweise zeigt 2B eine
Ausführungsform
mit strukturiertem Licht, bei der das erste optische System sich
gabelförmig
teilt: ein Bereich OS1-A 20-A ist ein Lichtemitter, der
im Abstand B von OS2 und von dem zweiten Bereich OS1-B 20-B angeordnet
ist, einer lichtreflektierenden Vorrichtung, wie bspw. einem Spiegel.
Der eingehende Fächerstrahl,
der von OS1-A erzeugt wird, wird durch die Spiegel 20-B abgelenkt,
um die Ebene 30 zu bilden. Bei der Ausrichtung von 2B ist
der Spiegel 20-B schräg
um etwa 45° relativ
zu der horizontalen Ebene, und die Ablenkung erfolgt im Wesentlichen
an einer vertikalen Ebene bis zu einer im Wesentlichen horizontalen
Ebene. In 2B wird tatsächlich eine passive Lichtausführungsform
OS2 60 eine Kamera sein, die in einem Winkel ϕ im
Allgemeinen in Richtung des Sichtfelds von Interesse gerichtet ist,
nämlich
wo ein Benutzerfinger oder Stift eine virtuelle Eingangsvorrichtung
benützen
wird, die unter der Fächerebene 30 angeordnet
ist.It is required that OS1 20 is implemented as a single unit. For example, shows 2 B a structured light embodiment in which the first optical system bifurcates: a region OS1-A 20-A is a light emitter located at the distance B from OS2 and from the second area OS1-B 20-B is arranged, a light-reflecting device, such as, a mirror. The incoming fan beam generated by OS1-A is reflected by the mirrors 20-B distracted to the level 30 to build. When aligning 2 B is the mirror 20-B obliquely at about 45 ° relative to the horizontal plane, and the deflection is substantially at a vertical plane to a substantially horizontal plane. In 2 B actually becomes a passive light OS2 60 a camera directed at an angle φ generally in the direction of the field of view of interest, namely where a user's finger or pen will use a virtual input device that is below the fan level 30 is arranged.
Die
Triangulation entsprechend der vorliegenden Erfindung benutzt vorzugsweise
eine Standardkamera mit einem planaren Sensor als OS2 60.
Die Natur von OS1 20 unterscheidet zwischen zwei ziemlich
weiten Klassen von Triangulation. Bei einer strukturierten Lichttriangulation,
ist OS1 20 typischerweise ein Laser oder Ähnliches,
dessen Strahl als eine einzelne Zeile geformt werden kann, die bewegt
wird, um einen Bewegungspunkt auf eine Fläche zu projizieren. Alternativ
kann der Laserstrahl planar sein und bewegt werden, um eine planare
Kurve zu projizieren. Wie angemerkt, kann eine andere Klasse von
Triangulationssystem als passive Triangulation bezeichnet werden,
bei der eine Kamera als OS1 20 benutzt wird. Systeme mit
strukturiertem Licht tendieren dazu, komplexer zu sein, um mehr
Leistung aufzuweisen und zu verbrauchen aufgrund des Bedürfnisses,
eine Ebene von Licht zu projizieren. Passive Systeme sind weniger
teuer und verbrauchen weniger Energie. Allerdings müssen passive
Systeme das sog. Korrespondenzproblem lösen, bspw. um zu bestimmen,
welche Paare der Punkte in den zwei Abbildungen Projektionen des
gleichen Punkts in der realen Welt sind. Wie nachfolgend beschrieben
werden wird, können
passive nicht strukturierte Lichttriangulationsausführungsformen
entsprechend der vorliegenden Erfindung benutzt werden.The triangulation according to the present invention preferably uses a standard camera with a planar sensor as OS2 60 , The nature of OS1 20 distinguishes between two fairly broad classes of triangulation. In a structured light triangulation, OS1 is 20 typically a laser or the like, whose beam can be shaped as a single line that is moved to project a point of movement onto a surface. Alternatively, the laser beam may be planar and moved to project a planar curve. As noted, another class of triangulation system may be referred to as passive triangulation, in which a camera is called OS1 20 is used. Structured light systems tend to be more complex to have more power and consume due to the need to project a plane of light. Passive systems are less expensive and consume less energy. However, passive systems must solve the so-called correspondence problem, for example, to determine which pairs of points in the two images are projections of the same point in the real world. As will be described below, passive non-structured light triangulation embodiments according to the present invention may be used.
Ob
das System 10 als ein strukturiertes Lichtsystem implementiert
wird, in dem OS1 aktiv Licht emittiert und OS2 eine Kamera ist,
oder als ein passives System, in dem OS1 und OS2 beide Kameras sind,
wird Information von OS2 und OS1 mit einer Verarbeitungseinheit
gekoppelt, bspw. 70, die dann festlegen kann, welche Events
auftreten. Wenn ein Objekt, bspw. 120R, die Projektionsebene 30 schneidet,
die mit OS1 20 verknüpft
ist, ist der Schnitt mit jeder Ausführungsform erfassbar. Bei einer
Ausführungsform
mit strukturiertem Licht, bei der OS1 optische Energie emittiert,
wird der Schnitt durch optische Energie erkannt, die von dem schneidenden
Objekt 120R reflektiert und von OS2 erfasst wird, typischerweise
einer Kamera. Bei einer passiven Lichtausführungsform wird der Schnitt
von OS1, einer Kamera, und ebenfalls von OS2, einer Kamera, gesehen.
Bei jeder Ausführungsform
wird der Schnitt mit der Ebene 30 erfasst, als ob der Bereich
der Fläche 40 unter
der (x, z) Ebenenschnitt von dem Objekt 120R berührt würde. Das
System 10 umfasst vorzugsweise ein Computersystem 70,
das Daten von OS1, OS2 empfängt
und die Geometrie verwendet, um die Position des Ebenenschnitts
(x, z) aus den reflektierten Abbildungs-Koordinaten in einer Ausführungsform
mit strukturiertem Licht zu bestimmen, oder aus den Kameraabbildungskoordinaten
in einem passiven System. Als solches kann die doppelte Aufgabe
des anfänglichen
Erfassens und des kontinuierlichen Erfassens von Berührungen
und dem Durchdringen der Ebene 30 (bspw. Berührungs-Events)
und dem Bestimmen der Schnittkoordinatenpositionen auf der Ebene
dadurch erreicht werden.Whether the system 10 As a structured light system in which OS1 actively emits light and OS2 is a camera, or as a passive system in which OS1 and OS2 are both cameras, information from OS2 and OS1 is coupled to a processing unit, e.g. 70 , which can then determine which events occur. If an object, eg. 120R , the projection plane 30 cuts that with OS1 20 is linked, the section with each embodiment is detectable. In a structured light embodiment, where OS1 emits optical energy, the cut is detected by optical energy from that of the intersecting object 120R reflected and detected by OS2, typically a camera. In a passive light embodiment, the section is seen by OS1, a camera, and also by OS2, a camera. In each embodiment, the intersection with the plane 30 captured as if the area of the area 40 below the (x, z) plane intersection of the object 120R would be touched. The system 10 preferably comprises a computer system 70 which receives data from OS1, OS2 and uses the geometry to determine the position of the plane intersection (x, z) from the reflected imaging coordinates in a structured light embodiment, or from the camera imaging coordinates in a passive system. As such, the dual task of initially detecting and continuously detecting touches and penetrating the plane 30 (eg, touch events) and determining the intersection coordinate positions on the plane thereby.
Um
soweit zusammenzufassen, werden Berührungs-Events erfasst und deklariert,
wenn OS1 den Schnitt der Ebene 30 durch ein eindringendes
Objekt, wie bspw. 120R erkennt. In einem Zwei-Kamera-System wird
ein Verhältnis
zwischen den Punkten in dem erhaltenen Bild von OS1 und von jenem
von OS2 aufgebaut. Danach werden die Koordinaten der OS2-Kamera
in Berührungs-Gebiet-Koordinaten (x-Achse,
z-Achse) umgewandelt, um die (x, z)-Koordinatenposition des Events
innerhalb des Gebiets der Ebene 30 von Interesse umzuwandeln.
Vorzugsweise werden solche Umwandlungen durch die Prozessoreinheit 70 ausgeführt, die
Algorithmen ausführt,
um die Schnittpositionen in der Ebene 30 aus Abbildungs-Koordinaten
der sichtbaren Punkte von OS2 zu berechnen. Ferner muss ein passives
Lichtsystem eindringende Objekte von dem Hintergrund in Abbildungen
von OS1 und OS2 unterscheiden. Wenn das System 10 ein passives
Lichtsystem ist, müssen
entsprechende Forderungen zwischen den Abbildungen der Kamera OS1
und der Kamera OS2 gestellt werden. Wenn das System 10 ein
System mit strukturiertem Licht ist, ist es wünschenswert, die Interferenz
durch Umgebungslicht zu minimieren.To summarize so far, touch events are captured and declared when OS1 intersects the plane 30 by a penetrating object, such as. 120R recognizes. In a two-camera system, a relationship is built up between the dots in the obtained image of OS1 and that of OS2. Thereafter, the coordinates of the OS2 camera are converted into touch-area coordinates (x-axis, z-axis) around the (x, z) coordinate position of the event within the area of the plane 30 of interest. Preferably, such conversions are performed by the processor unit 70 executed, which executes algorithms to the cutting positions in the plane 30 to compute from map coordinates of the visible points of OS2. Furthermore, a passive light system must distinguish intruding objects from the background in images of OS1 and OS2. If the system 10 is a passive light system, appropriate requirements must be made between the images of the camera OS1 and the camera OS2. If the system 10 is a structured light system, it is desirable to minimize the interference from ambient light.
Es
sei nun die Berechnung des (X, Z)-Schnittpunkts oder der Fingerspitzenposition
auf der Ebene 30 betrachtet. In einer perspektivischen
Projektion wird eine Ebene im Raum und dessen Abbildung über eine Transformation
in Bezug gesetzt, die Homographie genannt wird. Es sei ein Punkt
(X, Z) auf einer solchen Ebene durch den Spaltenvektor P = (X, Z,
1)T dargestellt, wobei die Hochstellung
T die Transponierung bezeichnet. In ähnlicher Weise sei der entsprechende
Abbildungs-Punkt dargestellt durch p = (x, z, 1)T.It is now the calculation of the (X, Z) intercept or fingertip position on the plane 30 considered. In a perspective projection, a plane in space and its image are related by a transformation called homography. Let a point (X, Z) on such a plane be represented by the column vector P = (X, Z, 1) T , the superscript T designating transposition. Similarly, let the corresponding mapping point be represented by p = (x, z, 1) T.
Eine
Homographie ist dann eine lineare Transformation P = Hp, wobei H
eine 3 × 3
Matrix ist.A
Homography is then a linear transformation P = Hp, where H
a 3 × 3
Matrix is.
Diese
Homographiematrix kann aufgefunden werden, in dem eine Kalibrierungsprozedur
verwendet wird. Da der Sensor auf der Fläche ruht, ist die Sensorposition
relativ zu der Fläche
konstant, und die Kalibrierungsprozedur muss nur einmal ausgeführt werden.
Zum Kalibrieren wird ein Gitter mit bekanntem Raster auf eine flache
Fläche
platziert, auf der der Sensor ruht. Die Koordinaten Pi der Abbildungs-Punkte,
die den Gitter-Scheitelpunkten, Pi, entsprechen, werden in der Abbildung
gemessen. Ein direkter linearer Transformations-(DLT)-Algorithmus
kann verwendet werden, um die Homographiematrix X zu bestimmen.
Eine solche DLT-Umwandlung ist im Stand der Technik bekannt; vgl.
bspw. Richard Hartley und Andrew Zisserman. Multiple View Geometry
in Computer Vision, Cambridge University Press, Cambridge, UK, 2000.These
Homography matrix can be found in which a calibration procedure
is used. As the sensor rests on the surface, the sensor position is
relative to the area
constant, and the calibration procedure needs to be done only once.
For calibration, a grating with a known grid on a flat
area
placed on which the sensor rests. The coordinates Pi of the map points,
which correspond to the grid vertices, Pi, are shown in the figure
measured. A direct linear transformation (DLT) algorithm
can be used to determine the homography matrix X.
Such DLT conversion is known in the art; see.
For example, Richard Hartley and Andrew Zisserman. Multiple View Geometry
in Computer Vision, Cambridge University Press, Cambridge, UK, 2000.
Sobald
H bekannt ist, wird der Flächenpunkt
P entsprechend einem Punkt p in der Abbildung sofort durch die Matrix-Vektormultiplikation
wie zuvor angegeben, berechnet. Vorzugsweise werden solche Berechnungen
von dem System 70 ausgeführt.Once H is known, the area point P corresponding to a point p in the map is immediately calculated by the matrix vector multiplication as previously stated. Preferably, such calculations are made by the system 70 executed.
Eine
Abbildungs-Übereinstimmung
für passive
Lichtausführungsformen
wird nun beschrieben werden. Die Kameras OS1 20 und OS2 60 sehen
die gleiche Ebene im Raum. Im Ergebnis wird das Aufeinanderabbilden
der Abbildung der Zeilenabtastkamera von OS1 und der Kameraabbildung
von OS2 selbst eine Homographie sein. Dies ist ähnlich zu der Abbildung zwischen
der OS2-Kameraabbildung und der Ebenen-30-Berührungs-Fläche, wie zuvor mit Bezug auf
die Berechnung der Fingerspitzenschnittposition beschrieben. Somit kann
eine ähnliche
Prozedur verwendet werden, um dieses Abbilden bzw. Mappen zu berechnen.An imaging match for passive light embodiments will now be described. The cameras OS1 20 and OS2 60 see the same plane in the room. As a result, the mapping of the image of the line scan camera from OS1 and the camera image from OS2 itself will be a homography. This is similar to the mapping between the OS2 camera image and the plane-30 touchpad as previously described with reference to the fingertip intersection position calculation. Thus, a similar procedure can be used to compute this mapping.
Es
sei angemerkt, dass, da die Zeilenabtastkamera OS1 20 im
Wesentlichen die Berührungs-Fläche, die
zu einer einzelnen Zeile kollabiert ist, sieht oder streift, die
Homographie zwischen den beiden Abbildungen verschlechtert wird.
Für jeden
OS2-Kamerapunkt gibt es einen OS1-Zeilenabtastabbildungspunkt, aber
für jeden
OS1-Zeilenabtastabbildungspunkt gibt es eine komplette Zeile von
OS2-Kamerapunkten. Aufgrund dieser Entartung wird der zuvor beschriebene
DLT-Algorithmus (leicht) modifiziert, um eine Punkt-zu-Zeilen-Übereinstimmung
zu erhalten. Durch Definition besitzt eine passive Lichtausführungsform
der vorliegenden Erfindung keine Kontrolle über die Umgebungsbeleuchtung
und dies kann die Unterscheidung von eindringenden Schnittobjekten
oder Spitzen von dem allgemeinen Hintergrund erschweren. Kurz gesagt,
wie soll festgestellt werden, ob ein bestimmter Abbildungs-Punkt
in einer OS1-Abbildung oder OS2-Abbildung die Abbildung eines Punkts
auf einem Objekt, wie bspw. 120R darstellt, oder ein Punkt
im Allgemeinen Hintergrund ist. Ein Algorithmus, der vom System 70 ausgeführt wird,
wird nun beschrieben.It should be noted that since the line scan camera OS1 20 In essence, the contact area collapsed to a single line sees or touches, the homography between the two images is degraded. For each OS2 camera point there is an OS1 line scan imaging point, but for each OS1 line scan imaging point there is a complete line of OS2 camera points. Due to this degeneracy, the previously described DLT algorithm is (slightly) modified to obtain a point-to-line match. By definition, a passive light embodiment of the present invention has no control over the ambient lighting and this may make it difficult to distinguish between penetrating cut objects or peaks from the general background. In short, how to determine if a particular map point in an OS1 map or OS2 map represents a map of a point on an object, such as a map. 120R or a point is generally background. An algorithm used by the system 70 is executed, will now be described.
Anfänglich wird
von einer oder mehreren Hintergrundabbildungen I1,...,
In ausgegangen, wobei nur der Berührungs-Flächenbereich
der Ebene 30 in Sicht ist. Es wird angenommen, dass die
Kameras OS1 und OS2 auf Farbe ansprechen können, und es sollen Rbi(x, z), Gbi(x,
z), Bbi(x, z), die rote, grüne und blaue
Komponente der Hintergrundabbildungs-Intensität Ii an
der Pixelposition (x, z) sein. Es soll sb(x,
z) eine Zusammenfassung von Rbi(x, z), Gbi(x, z), Bbi(x,
z) über
alle Abbildungen sein. Beispielsweise kann sb(x,
z) ein Drei-Vektor sein mit den Mittelwerten, Zentralwerten oder
anderen Statistikwerten von Rbi(x, z), Gbi(x, z), Bbi(x,
z) an der Pixelposition (x, z) über
alle Hintergrundabbildungen I1,..., In, wobei möglichst eine Normalisierung
vorgenommen wurde, um Variationen in der Abbildungs-Helligkeit auszugleichen.Initially, one or more background images I 1 ,..., I n are assumed, wherein only the contact surface area of the plane 30 in sight. It is assumed that the cameras OS1 and OS2 may be responsive to color and it should R bi (x, z), G bi (x, z), B bi (x, z), the red, green and blue component of the Background image intensity I i at the pixel position (x, z). Let s b (x, z) be a summary of R bi (x, z), G bi (x, z), B bi (x, z) over all mappings. For example, s b (x, z) may be a tri-vector with the mean, central, or other statistic values of R bi (x, z), G bi (x, z), B bi (x, z) at the pixel position ( x, z) over all background images I 1 ,..., I n , normalization being carried out as far as possible in order to compensate for variations in the image brightness.
Als
Nächstes
wird eine ähnliche
Zusammenfassung st für die Spitze- bzw. Tip-Pixel über eine
neue Reihe von Abbildungen J1, ..., Jm gesammelt. Diese zweite Zusammenfassung
bzw. Summe ist ein einzelner Vektor und nicht eine Abbildung von
Vektoren, wie für
sb(x, z). Mit anderen Worten heißt das,
dass st nicht von der Pixelposition (x,
z) abhängt.
Diese neue Summe kann bspw. berechnet werden, indem ein Benutzer
gebeten wird, Fingerspitzen oder einen Stift in das sensitive Gebiet
der Fläche
zu bringen und indem Werte nur an Pixelpositionen (x, z) aufgezeichnet
werden, dessen Farbe sich von der Hintergrundsumme sb(x,
z) an der Position (x, z) unterscheidet, und in dem Statistiken über alle
Werte von j, x, z berechnet werden.Next, a similar summary s t for the tip pixels is collected over a new series of maps J 1 , ..., J m . This second sum is a single vector and not a mapping of vectors, as for s b (x, z). In other words, s t does not depend on the pixel position (x, z). For example, this new sum may be calculated by asking a user to place fingertips or a stylus in the sensitive area of the area and by recording values only at pixel locations (x, z) whose color is different from the sum of the background s b (see FIG. x, z) at the position (x, z) and in which statistics on all values of j, x, z are calculated.
Bei
einer vorgegebenen neuen Abbildung mit Farbkomponenten c(x, z)=(R(x,
z), G(x, z), B(x, z)) trägt dann
ein bestimmtes Pixel dazu bei (x, z), entweder der Spitze oder dem
Hintergrund durch eine geeignete Diskriminierungsregel zugeordnet
zu werden. Beispielsweise kann eine Entfernung d(c1,
c2) zwischen Drei-Vektoren (Euklidscher
Abstand ist ein Beispiel) definiert werden, und Pixel werden basierend
auf der nachfolgenden beispielhaften Regel zugeordnet:
Hintergrund
falls d(c(x, z), sb(x, z)) ≪ d(c(x, z),
st).
Spitze falls d(c(x, z), sb(x, z)) ≫ d(c(x,
z), st) .
Unbekannt sonst.Given a given new mapping with color components c (x, z) = (R (x, z), G (x, z), B (x, z)) then a particular pixel contributes to (x, z), either be assigned to the top or the background by an appropriate rule of discrimination. For example, a distance d (c 1 , c 2 ) between three vectors (Euclidean distance is an example) can be defined, and pixels are assigned based on the following exemplary rule:
If d (c (x, z), s b (x, z)) d (c (x, z), s t ).
If d (c (x, z), s b (x, z)) d (c (x, z), s t ).
Unknown otherwise.
Techniken
zur Reduzierung von Umgebungslichtinterferenz, insbesondere für die Ausführungsform mit
strukturierter Lichttriangulation, werden nun beschrieben. Bei einer
solchen Ausführungsform
muss OS2 zwischen Umgebungslicht und Licht unterscheiden, das von
dem Zeilengenerator erzeugt wurde und von einem eindringenden Objekt
zurückreflektiert
wurde.techniques
for reducing ambient light interference, in particular for the embodiment with
Structured light triangulation will now be described. At a
such embodiment
OS2 must differentiate between ambient light and light emitted by
the row generator was generated and by a penetrating object
reflected back
has been.
Bei
Einsatz eines ersten Verfahrens emittiert OS1 Energie in einem Bereich
des Lichtspektrums, in dem Umgebungslicht wenig Energie hat, bspw.
im nahen Infrarotbereich. Ein Infrarotfilter auf der Kamera OS2 kann
gewährleisten,
dass das von dem OS2-Sensor erfasste Licht hauptsächlich das
von dem Objekt (bspw. 120R) in die Linse der Kamera OS2 reflektierte
ist.at
Using a first method, OS1 emits energy in one area
the light spectrum in which ambient light has little energy, eg.
in the near infrared range. An infrared filter on the camera OS2 can
guarantee,
that the light detected by the OS2 sensor is mainly the
reflected from the object (e.g., 120R) into the lens of the camera OS2
is.
Bei
einem zweiten Verfahren arbeitet OS1 im sichtbaren Bereich des Spektrums,
aber ist wesentlich heller als Umgebungslicht. Obgleich dies im
Prinzip mit jeder Farbe der Lichtquelle erreicht werden kann, ist es
für Anwendungen
im Haus nützlicher,
eine Blau-Grün-Lichtquelle
für OS1
(500 nm bis 550 nm) zu benutzen, da die Standardleuchtstofflampen
relativ wenig Ausstrahlung in diesem Band haben. Vorzugsweise wird
OS2 ein angepasstes Filter aufweisen, um zu gewährleisten, dass ein Ansprechen
auf andere Wellenlängen
im Wesentlichen gedämpft
wird.at
In a second method OS1 operates in the visible region of the spectrum,
but is much brighter than ambient light. Although this is in the
Principle with every color of the light source can be achieved, it is
for applications
more useful in the house,
a blue-green light source
for OS1
(500 nm to 550 nm) to use, as the standard fluorescent lamps
have relatively little charisma in this band. Preferably
OS2 have a matched filter to ensure that a response
to other wavelengths
essentially subdued
becomes.
Ein
drittes Verfahren zur Reduzierung der Wirkungen von Umgebungslicht
benutzt eine Standardlaserquelle im sichtbaren Bereich für OS1 und
einen Farbkamerasensor für
OS2. Dieses Verfahren benutzt den gleichen Hintergrund-Subtraktionsalgorithmus,
wie zuvor beschrieben. Es sei die nachfolgende Kombination definiert,
die die gleiche Terminologie wie zuvor benutzt:
C(x, z) = min ⎨ d(c(x,
z), sb(x, z)), d(c(x, z), st) ⎬.A third method of reducing the effects of ambient light uses a standard visible laser source for OS1 and a color camera sensor for OS2. This method uses the same background subtraction algorithm as previously described. Define the following combination using the same terminology as before:
C (x, z) = min ⎨ d (c (x, z), s b (x, z)), d (c (x, z), s t ) ⎬.
Diese
Kombination wird exakt Null sein, wenn c(x, z) gleich der Spitzen-Summe
st (da in d(st,
st) = 0) des repräsentativen Objekts ist und
für die
Hintergrundabbildung sb(x, z) (da d(sb(x, z), sb(x, z))
= 0), und nahe Null für
andere Objektspit zenabbildungs-Bereiche und für sichtbare Teile des Hintergrunds.
Mit anderen Worten, werden die Objektspitzen und der Hintergrund
in der C(x, z) kaum sichtbar sein. Durch Vergleich an Positionen,
wo die Projektionsebene 30 von dem Laseremitter OS1 die
Objektspitzen 120 schneidet, wird der Term d(c(x, z), st) deutlich nicht Null sein, was hier wiederum
zu einem im Wesentlichen Nicht-Null-Wert für C(x, z) führt. Diese Methode erreicht
das gewünschte
Ziel der Identifizierung von im Wesentlichen nur den Objektspitzenpixeln,
die von dem Laser (oder einem anderen Emitter) OS1 bestrahlt werden.
Dieses Verfahren kann variiert werden, um Lichtemitter unterschiedlicher
Farbe zu benutzen, um andere Abstandsdefinitionen für den Abstand
d zu benutzen, und um unterschiedliche Summen sb(x,
z) und st zu benutzen.This combination will be exactly zero if c (x, z) equals the peak sum s t (since in d (s t , s t ) = 0) of the representative object and for the background map s b (x, z) (since d (s b (x, z), s b (x, z)) = 0), and close to zero for other object pit mapping areas and for visible parts of the background. In other words, the object peaks and the background in C (x, z) will hardly be visible. By comparison to positions where the projection plane 30 from the laser emitter OS1 the object peaks 120 clearly, the term d (c (x, z), s t ) will not be zero, again resulting in a substantially non-zero value for C (x, z). This approach achieves the desired goal of identifying substantially only the object peak pixels that are being irradiated by the laser (or other emitter) OS1. This method can be varied to use light emitters of different colors, to use other distance definitions for the distance d, and to use different sums s b (x, z) and s t .
Bezug
nehmend auf 1A, falls eine Vorrichtung 80 ein
kompaktes System ist, wie bspw. ein PDA oder ein Mobilfunkgerät, wäre es insbesondere
wünschenswert,
die Größe zu reduzieren,
die zur Implementierung der vorliegenden Erfindung benötigt wird.
Ein kleinerer Gesamt-Formfaktor kann sich ergeben, wenn OS2 in einem
bestimmten Winkel θ,
wie in 1A–1C, 2A, 2B gezeigt,
mit Bezug auf die Ebene 30 oder die Fläche 40 geneigt wird.
Aber wenn der Winkel θ sinkt,
sieht die Kamera OS2 die Ebene 30 aus einem flacheren Winkel.
Für eine
feste Größe des berührungsempfindlichen
Gebiets der Ebene 30, d.h, der Rechteckfläche, die „zu berühren" ist durch ein Benutzerobjekt,
um eine darunter liegende virtuelle Eingabevorrichtung zu manipulieren,
sinkt das wirksame Gebiet, das von dem Sichtfeld umgeben wird, da
der Abstand B und der Winkel θ sinken.
Das Ergebnis besteht darin, dass die effektive OS2-Auflösung sinkt
und damit die Genauigkeit der z-Tiefen-Messung, wie in 3A ge zeigt,
sinkt, wobei L eine Kameralinse bezeichnet, die mit OS2 verknüpft ist,
dessen Ebene von Pixeldetektoren als eine gerade Linie gezeigt ist,
die mit OS2 bezeichnet ist.Referring to 1A if a device 80 For example, a compact system, such as a PDA or a mobile device, would be desirable to reduce the size required to implement the present invention. A smaller overall form factor may result if OS2 is at a certain angle θ, as in 1A - 1C . 2A . 2 B shown with respect to the plane 30 or the area 40 is inclined. But when the angle θ decreases, the camera OS2 sees the plane 30 from a shallower angle. For a fixed size of the touch-sensitive area of the plane 30 That is, the rectangle area to be "touched" by a user object to manipulate an underlying virtual input device will decrease the effective area surrounded by the field of view as distance B and angle θ decrease in that the effective OS2 resolution decreases and thus the accuracy of z-depth measurement, as in 3A where L denotes a camera lens associated with OS2 whose plane is shown by pixel detectors as a straight line labeled OS2.
Wie
in 3A angegeben, führt eine Bewegung von OS2 näher an die
Ebene 30 zu einem flacheren Blickpunkt und zu einer kleineren
weniger akkurat aufgenommenen Kameraabbildung. Diese nachteiligen
Nebeneffekte können
reduziert werden, wie in 3B gezeigt
ist, durch Kippen der Ebene der Pixeldetektoren in der Kamera OS2,
wobei nahezu parallel zu der Ebene 30 gekippt wird. Bei
der gekippten Konfiguration von 3B ist
festzustellen, dass eine wesentlich größere Anzahl von Abbildungs-Abtastzeilen
den Strahlenkegel von dem sensitiven Gebiet auf der Ebene 30 schneiden,
was die Tiefenauflösung
entsprechend erhöht.
Es sei bspw. der relativ kleine Abstand Dx in 3A mit
dem großen
Abstand Dx' in 3B verglichen,
was die große
Anzahl von Abbildungs-Abtastzeilen darstellt, die nun in Benutzung
sind. Wenn die OS2-Kamerasensorebene paralleler zu der Ebene der
Berührungs-Fläche oder
der Ebene 30 wird, führt
dies zu einer geringeren Störung
der Berührungs-Flächenabbildung.
Dies impliziert, dass parallele Zeilen auf der Berührungs-Fläche (oder
der Ebene 30) parallel in der OS2-Kameraabbildung bleiben
werden. Ein Vorteil ist die Einfachheit der Homographie H für eine affine
Transformation (ein Verschieben und Skalieren). Ferner wird die
Abbildungs-Auflösung über das
gesamte sensitive Gebiet innerhalb des interessierenden Blickfelds
gleichmäßiger gemacht.As in 3A indicated, OS2 moves closer to the plane 30 to a shallower viewpoint and to a smaller, less accurately captured camera image. These adverse side effects can be reduced as in 3B is shown by tilting the plane of the pixel detectors in the camera OS2, being nearly parallel to the plane 30 is tilted. In the tilted configuration of 3B It should be noted that a much larger number of imaging scan lines will obscure the cone of radiation from the sensitive area on the plane 30 cut, which increases the depth resolution accordingly. For example, let's consider the relatively small distance Dx in 3A with the big distance Dx 'in 3B which represents the large number of image scan lines now in use. If the OS2 camera sensor plane is more parallel to the plane of the touch surface or the plane 30 this leads to less disturbance of the touch area image. This implies that parallel lines on the touch surface (or plane 30 ) will remain in parallel in the OS2 camera image. One advantage is the simplicity of homography H for affine transformation (a move and a scale). Further, the imaging resolution becomes more uniform over the entire sensitive area within the field of interest made.
Es
sei nun die Konfiguration von 3C betrachtet.
Es ist ersichtlich, dass unterschiedliche Punkte auf dem berührungsempfindlichen
Gebiet auf der Ebene 30 in unterschiedlichen Abständen von
der Linse L der Kamera OS2 sind. Dies bedeutet, dass man das gesamte
sensitive Gebiet von Interesse nicht präzise fokussieren kann, falls
die Linse L wie in 3A oder in 3B gezeigt
positioniert ist. Während
ein Schließen der
Kamerablende die Tiefe des Sichtfelds, d.h. die Tiefenschärfe erhöhen könnte, würden die
sich daraus ergebenden Abbildungen lichtärmer werden, und das Abbildungs-Signalrausch-Verhältnis würde verschlechtert werden.It is now the configuration of 3C considered. It can be seen that different points on the touch-sensitive area at the level 30 are at different distances from the lens L of the camera OS2. This means that one can not precisely focus the entire sensitive area of interest if the lens L is as in 3A or in 3B is shown positioned. While closing the camera aperture could increase the depth of field of view, ie, depth of field, the resulting images would be less bright and the image signal to noise ratio would be degraded.
Entsprechend
kann die Konfiguration von 3C verwendet
werden, wobei die Linse L relativ zu 3B neu
positioniert wird. Bei dieser Konfiguration werden die Berührungs-Fläche 30,
der Kamera OS2-Sensor und die Kameralinse L als die sog. Scheimpflug-Bedingung
erfüllend
betrachtet, bei der deren jeweiligen Ebenen sich entlang einer gemeinsamen
Linie schneiden, einer Linie, die in 3C im
Unendlichen liegt. Weitere Details zu der Scheimpflug-Bedingung
finden sich in The Optical Society of America, Handbook of Optics,
Michael Bass, Editor in Chief, McGraw-Rill, Inc., 1995. Bezug nehmend
auf die 3C, wenn das relevante optische
System diese Bedingung erfüllt,
werden alle Punkte auf der Berührungs-Fläche 30 im Brennpunkt
liegen. Durch Verwendung eines passend gekippten Sensors OS2 und
einer passend positionierten Linse S, die die Scheimpflug-Bedingung erfüllt, wird
die Abbildung, die von OS2 gesehen wird, der interessierenden Punkte
auf der Oberflächenebene 30 im
Brennpunkt sein und werden eine hohe Auflösung mit geringer Verzerrung
zeigen. Allerdings kann die Erfüllung
der Scheimpflug-Bedingung zu einem Verlust von Abbildungs-Helligkeit
führen,
da gegenüber
der Konfiguration von 3B der Winkel, den die Linse
einnimmt, wenn von der Mitte des sensitiven Gebiets auf der Ebene 30 betrachtet,
reduziert wird. Als Folge davon, ist es bei einigen Anwendungen
bevorzugt, einen Kompromiss zwischen Schärfe des Brennpunkts und Abbildungs-Helligkeit
zu erreichen, in dem die OS2-Kameralinse in eine Ausrichtung gebracht
wird, die zwischen jener von 3B und
jener von 3C liegt. 3D zeigt
eine solche Zwischenkonfiguration, bei der die Linse L zweckmäßigerweise
leicht weg von der Scheimpflug-erfüllenden Ausrichtung mit Bezug
auf die Ebenen von OS2 und 30 gekippt ist.Accordingly, the configuration of 3C be used with the lens L relative to 3B is repositioned. In this configuration, the touch area 30 , the camera OS2 sensor and the camera lens L being regarded as fulfilling the so-called Scheimpflug condition, in which their respective planes intersect along a common line, a line which in 3C lies at infinity. Further details on the Scheimpflug condition can be found in The Optical Society of America, Handbook of Optics, Michael Bass, Editor in Chief, McGraw-Rill, Inc., 1995. Referring to the 3C When the relevant optical system satisfies this condition, all points on the touch surface become 30 in focus. By using a properly tilted sensor OS2 and a properly positioned lens S satisfying the Scheimpflug condition, the image seen by OS2 becomes the points of interest at the surface plane 30 be in focus and will show a high resolution with low distortion. However, the fulfillment of the Scheimpflug condition may result in a loss of imaging brightness because of the configuration of 3B the angle the lens occupies when viewed from the center of the sensitive area on the plane 30 considered reduced. As a result, in some applications, it is preferred to achieve a trade-off between focal sharpness and imaging brightness by bringing the OS2 camera lens into alignment between that of 3B and those of 3C lies. 3D shows such an intermediate configuration in which the lens L is conveniently slightly away from the Scheimpflug-fulfilling orientation with respect to the planes of OS2 and 30 is tilted.
Solche
Zwischenausrichtungen erfüllen
nicht die Scheimpflug-Bedingung,
allerdings nur um einen geringen Grad, und zeigen deshalb gute Fokussiereigenschaften
gegenüber
einer Konfiguration, dessen Linsenachse direkt in Richtung der Mitte
des sensitiven Gebiets der Ebene 30 gerichtet ist. 3E zeigt
eine andere alternative Zwischenkonfiguration, eine, bei der die
Scheimpflug-Bedingung exakt eingehalten ist, aber der Kamerasensor
OS2 weg von der Horizontalen gekippt ist. Die Konfiguration von 3E kann
eine exakte Fokussierung erreichen, aber mit etwas geringerer Bildauflösung und
mehr Störung
als bei der Konfiguration von 3C.Such intermediate alignments do not satisfy the Scheimpflug condition, but only to a small degree, and therefore exhibit good focusing properties over a configuration whose lens axis is directly towards the center of the sensitive area of the plane 30 is directed. 3E Figure 11 shows another alternative intermediate configuration, one in which the Scheimpflug condition is exactly met, but the camera sensor OS2 is tilted away from the horizontal. The configuration of 3E can achieve an exact focus, but with slightly lower image resolution and more interference than in the configuration of 3C ,
4 ist
ein Blockdiagramm, das wirksame Bereiche der Prozessoreinheit 70 innerhalb
des Systems 10 zeigt, welche Prozessoreinheit vorzugsweise
die verschiedenen Triangulations- und anderen Berechnungen ausführt, die
hier beschrieben sind, um (x, z)-Schnittpunkte mit der interessierenden
Ebene 30 zu erfassen und zu identifizieren. Als linker
Bereich von 4 wird Information von OS1 20 und
OS2 30 jeweils in Pixeltabellen 200-1, 200-2 eingegeben.
In 4 beziehen sich die OS1- und OS2-Eingaben auf
einen Strom von Bildern der digitalisierten Abbildungen, die vom
optischen System 1 (20) und vom optischen System 2 (60)
in einem planaren Entfernungssensorsystem 10 entsprechend
der vorliegenden Erfindung erzeugt wurden. Bei einer bevorzugten
Ausführungsform
erzeugt das optische System zumindest etwa 30 Bilder pro Sekunde
(fps). Höhere
Bildraten als 30 fps sind wünschenswert,
da sich die Fingerspitze des Benutzers oder des Stifts zwischen
zwei Bildern um mehrere Pixel bewegen kann, während auf einer virtuellen
Eingabevorrichtung "getippt" wird. Pixelabbildungsmodule 200-1, 200-2 bauen
digitale Bilder aus OS1 und OS2 im Speicher auf, der mit der Berechnungseinheit 70 verknüpft ist.
Ein Synchronisierungsmodul 210 gewährleistet, dass die zwei optischen Systeme
Bilder der digitalisierten Abbildungen in etwa derselben Zeit produzieren.
Falls erwünscht,
kann ein doppelpufferndes System implementiert sein, um den Aufbau
eines Bildes zu ermöglichen,
während
das vorhergehende Bild (in der Zeit) durch andere Module verarbeitet
wird. Ein Berührungs-Erfassungsmodul 220 erkennt
eine Berührung
(bspw. dass der Finger eines Benutzers oder des Stifts die durch
OS1 erfasste optische Ebene durchdringt), wenn der Umriss einer
Fingerspitze oder eines Stifts in einer ausgewählten Zeile des Bilds erscheint.
Wenn eine Berührung
erkannt wird, zeichnet das Spitzen-Erfassungsmodul 230 den
Umriss der entsprechenden Fingerspitze in der geeigneten Pixeltabelle 200-1 oder 200-2 auf.
In 4 wird keine Tabelle erzeugt, bei einer Ausführungsform
mit strukturiertem Licht, wo OS1 ein Lichtstrahlgenerator ist, und
die Berührungs-Erfassung
wird das Eingangssignal von OS2 und nicht das von OS1 benutzen. 4 Figure 12 is a block diagram illustrating effective areas of the processor unit 70 within the system 10 Fig. 12 shows which processor unit preferably executes the various triangulation and other calculations described herein about (x, z) intersections with the plane of interest 30 to capture and identify. As left area of 4 gets information from OS1 20 and OS2 30 each entered in pixel tables 200-1, 200-2. In 4 The OS1 and OS2 inputs refer to a stream of images of the digitized images obtained from the optical system 1 (FIG. 20 ) and the optical system 2 ( 60 ) in a planar range sensor system 10 produced according to the present invention. In a preferred embodiment, the optical system generates at least about 30 frames per second (fps). Higher frame rates than 30 fps are desirable because the user's or pen's fingertip can move several pixels between two images while "typing" on a virtual input device. Pixel image Module 200-1 . 200-2 Build digital images from OS1 and OS2 in memory using the calculation unit 70 is linked. A synchronization module 210 ensures that the two optical systems produce images of the digitized images in approximately the same time. If desired, a double-buffering system may be implemented to allow the construction of an image while the previous image is processed (in time) by other modules. A touch detection module 220 detects a touch (for example, that the finger of a user or pen penetrates the optical plane detected by OS1) when the outline of a fingertip or a stylus appears in a selected line of the image. When a touch is detected, the tip detection module draws 230 the outline of the corresponding fingertip in the appropriate pixel table 200-1 or 200-2 on. In 4 No table is generated in a structured light embodiment where OS1 is a light beam generator, and touch detection will use the input signal from OS2, not OS1.
Das
Berührungs-Positionsmodul 240 benutzt
die Spitzen-Pixelkoordinaten
von dem Spitzen-Erfassungsmodul 230 zu dem Zeitpunkt, zu
dem eine Berührung
von dem Berührungs-Erfassungsmodul 220 gemeldet
wird, um die (x-z)-Koordinaten der Berührung auf der Berührungs-Fläche zu finden.
Wie angegeben, ist eine Berührung
gleichbedeutend mit einer Durchdringung der Ebene 30, die
mit einem optischen Emitter OS1 in einer Ausführungsform
mit strukturiertem Licht verknüpft
ist, oder bei einer Ausführungsform
mit passivem Licht, die mit einer Sichtebene einer Kamera OS1 verknüpft ist.
Mathematische Methoden zur Umwandlung der Pixelkoordinaten in die
X-Z-Berührungs-Position werden hier
an anderer Stelle beschrieben.The touch position module 240 uses the peak pixel coordinates from the peak Erfas sungsmodul 230 at the time when a touch from the touch sensing module 220 is reported to find the (xz) coordinates of the touch on the touchpad. As indicated, a touch is equivalent to a level penetration 30 that with an optical emitter OS1 in one embodiment associated with structured light, or in a passive light embodiment associated with a viewing plane of a camera OS1 is linked. Mathematical methods for converting the pixel coordinates to the XZ touch position are described elsewhere herein.
Ein
Tastenidentifikationsmodul 260 benutzt die X-Z-Position
einer Berührung
und bildet die Position auf eine Tastenidentifikation ab, in dem
eine Tastatur-Layouttafel 250 eingesetzt wird, vorzugsweise
im Speicher abgespeichert, der mit der Berechnungseinheit 70 verknüpft ist.
Die Tastatur-Layouttafel 250 definiert typischerweise die
oberen/unteren/linken und rechten Koordinaten jeder Taste relativ
zu einem Null-Ursprungspunkt. Als solches ist eine Funktion des
Tastenidentifikationsmoduls 260, die Ausführung einer
Suche in der Tafel 250 und die Bestimmung, welche Taste
die (x, z)-Koordinaten des Berührungs-Punkts enthält. Wenn
die berührte
(virtuelle) Taste identifiziert ist, bildet das Übersetzungsmodul 270 die
Taste auf einem vorbestimmten TASTATURCODE-Wert ab. Der TASTATUR-Wert
bzw. KEYCODE-WERT wird ausgegeben oder an eine Anwendung gereicht,
die in der begleitenden Vorrichtung oder dem System 80 ausgeführt wird
(das auf einer begleitenden Vorrichtung ausgeführt wird), die darauf wartet,
eine Meldung eines Tastaturdrück-Ereignisses zu empfangen.
Die Anwendung, die gerade ausgeführt
wird, interpretiert das Tastendrück-Ereignis
und ordnet ihm eine Bedeutung zu. Beispielsweise benutzt eine Texteingabeanwendung
den Wert, um zu bestimmen, welches Symbol bzw. Zeichen eingetippt
wurde. Eine elektronische Klavieranwendung bestimmt, welche Musiknote
gedrückt
wurde und spielt diese Note, etc.A key identification module 260 uses the XZ position of a touch and maps the position to a key identification in which a keyboard layout panel 250 is used, preferably stored in memory, with the calculation unit 70 is linked. The keyboard layout panel 250 typically defines the upper / lower / left and right coordinates of each key relative to a zero origin. As such, a function of the key identification module 260 , carrying out a search in the blackboard 250 and determining which key contains the (x, z) coordinates of the touch point. When the touched (virtual) key is identified, the translation module forms 270 press the key at a predetermined KEYBOARD CODE value. The KEY DATA value or KEYCODE VALUE is output or passed to an application included in the accompanying device or system 80 (which is executed on a companion device) waiting to receive a message of a keyboard press event. The application being executed interprets the keypress event and assigns a meaning to it. For example, a text input application uses the value to determine which symbol or character was typed. An electronic piano application determines which musical note was pressed and plays that note, etc.
Alternativ,
wie in 4 gezeigt, können
die X-Z-Berührungs-Koordinaten direkt
der Anwendung 280 zugeführt
werden. Die Anwendung 280 könnte die Koordinatendaten verwenden,
um die Position eines Cursors auf einem Display in einer virtuellen
Maus oder virtuellen Trackball-Ausführungsformm zu steuern, oder um
eine digitale Tinte schnell zu steuern, dessen Ort auf einem Display
für eine
Zeichen- oder Handschriftanwendung mit einem virtuellen Füllfederhalter
oder einer virtuellen Stiftausführungsform
gezeigt wird.Alternatively, as in 4 As shown, the XZ touch coordinates can be applied directly to the application 280 be supplied. The application 280 could use the coordinate data to control the position of a cursor on a display in a virtual mouse or virtual trackball embodiment, or to quickly control a digital ink, its location on a display for a drawing or handwriting application with a virtual fountain pen or a virtual pen embodiment is shown.
5A ist
eine vereinfachte Ansicht des Systems 10, bei dem eine
virtuelle Vorrichtung 50 nun eine Steuerung mit fünf Gebieten
ist, und bei der die begleitende Vorrichtung 80, 90 einen
Monitor umfasst. Bei dieser Ausführungsform
ist die begleitende Vorrichtung 80 oder 90 mit
einem Display bzw. einer Anzeige 150 gezeigt, die Icons 140 umfassen
kann, von denen eines von einem Cursor 310 umgeben ist,
und ein Benutzer kann diesen bewegen, in dem er eine virtuelle Vorrichtung 50' verwendet,
hier bspw. einen virtuellen Trackball oder eine Maus. Innerhalb
einer virtuellen Vorrichtung 50' wird bspw., falls ein Bereich
der Benutzerhand 120R (oder des Stifts) einen virtuellen
Bereich 300-1 drückt,
der dargestellte Cursor 310 auf der begleitenden Vorrichtung 80, 90 angewiesen,
sich nach links zu bewegen. Falls das virtuelle Gebiet 300-2 gedrückt wird,
sollte sich der Cursor nach oben bewegen. Falls das virtuelle Gebiet 300-3 gedrückt wird,
sollte sich der Cursor nach rechts bewegen, bspw. um das Icon eines
Brotlaibs „auszuwählen", und falls das virtuelle
Gebiet 300-4 gedrückt
wird, sollte sich der Cursor in Richtung des Bodens der Anzeige
auf der Vorrichtung 80, 90 bewegen. Falls der
Benutzer das fünfte
Gebiet 300-5 drückt,
ein „Daumen-nach-oben"-Gebiet, weiß die begleitende
Vorrichtung 80, 90, dass die Benutzerauswahl abgeschlossen
ist. In 5A, falls der Benutzer nun das
Gebiet 300-5 drückt,
wird das „Hotdog"-Icon ausgewählt. Falls
die Vorrichtung 80, 90 ein Kiosk in einem Supermarkt wäre, würde das
Auswählen
des „Hotdog"-Icons eine Anzeige
hervorbringen, die zeigt, wo im Markt Hotdogs zu finden sind, oder
den Preis von verschiedenen Marken von Hotdogs, die verkauft werden,
oder die Vorrichtung 80, 90 könnte sogar Hotdogs ausgeben.
Falls die Vorrichtung 80, 90 in einer Transporteinstellung
verwendet würde,
könnten
die Icons (oder Wörter)
verschiedene Ziele angeben, und die Vorrichtung 80 oder 90 könnte die
Strecken, Zeitpläne
und Preise zu den Zielen angeben, und könnte sogar Fahrkarten zur Verwendung in
einem Bus, einer U-Bahn, einer Fluglinie einem Boot, etc. ausgeben.
Ein Benutzer könnte
bspw. zwei Gebiete der Eingangsvorrichtung 50' drücken, die
den Reise-Ausgangspunkt und den Reise-Zielpunkt darstellen, wobei
das System 10 eine Darstellung geeigneter darzustellender
Transportfahrzeuge, Zeitpläne,
Gebühren, etc.
veranlassen könnte,
und falls gewünscht,
auszudrucken. Es versteht sich, dass die Information, die vom System 10 erzeugt
wird, einfach die Roh(x, z)-Koordinaten sein können, die eine Softwareanwendung,
die von einer begleitenden Vorrichtung ausgeführt wird, verwendet werden
können,
um einen Cursor oder eine andere Information auf einem Monitor neu
zu positionieren. 5A is a simplified view of the system 10 in which a virtual device 50 now a controller with five areas, and in the accompanying device 80 . 90 includes a monitor. In this embodiment, the accompanying device 80 or 90 with a display or a display 150 shown the icons 140 may include one of which is a cursor 310 is surrounded, and a user can move this, in which he is a virtual device 50 ' used here, for example, a virtual trackball or a mouse. Inside a virtual device 50 ' becomes, for example, if an area of the user's hand 120R (or pen) a virtual area 300-1 presses, the cursor shown 310 on the accompanying device 80 . 90 instructed to move to the left. If the virtual area 300-2 is pressed, the cursor should move up. If the virtual area 300-3 is pressed, the cursor should move to the right, for example, to "select" the icon of a loaf, and if the virtual area 300-4 is pressed, the cursor should move towards the bottom of the display on the device 80 . 90 move. If the user is the fifth area 300-5 presses, a "thumbs-up" area knows the accompanying device 80 . 90 that the user selection is completed. In 5A if the user now the area 300-5 press, the "Hotdog" icon will be selected 80 . 90 would be a kiosk in a supermarket, selecting the "hotdog" icon would produce an indicator that shows where in the market hot dogs are found or the price of various brands of hot dogs being sold or the device 80 . 90 could even spend hot dogs. If the device 80 . 90 would be used in a transport setting, the icons (or words) could indicate different destinations, and the device 80 or 90 could indicate the routes, timetables and prices to the destinations, and could even spend tickets for use in a bus, subway, airline, boat, etc. For example, a user could have two areas of the input device 50 ' press, which represent the travel starting point and the travel destination, using the system 10 provide an illustration of suitable transport vehicles, schedules, fees, etc. to be displayed and, if desired, print out. It is understood that the information provided by the system 10 may simply be the raw (x, z) coordinates that a software application executed by a companion device may be used to reposition a cursor or other information on a monitor.
Es
versteht sich in 5A, dass die virtuelle Vorrichtung 50' passiv ist;
ihr Umriss kann ausgedruckt oder auf eine darunter liegende Arbeitsfläche gemalt
werden oder vielleicht kann des sen Umriss vom System 10 projiziert
werden. Die verschiedenen Gebiete von Interesse bei der virtuellen
Vorrichtung 50 können
im Hinblick auf Koordinaten identifiziert werden, relativ zu der
x-z-Ebene. Es sei die Information in der nachfolgenden Tabelle 1
berücksichtigt,
die der Information im Tastatur-Layout 250 in 4 entspricht: It goes without saying 5A that the virtual device 50 ' is passive; their outline can be printed out or painted on an underlying work surface, or perhaps the outline of the system 10 be projected. The different areas of interest in the virtual device 50 can be identified in terms of coordinates, relative to the xz plane. Consider the information in Table 1 below, that of the information in the keyboard layout 250 in 4 corresponds to:
TABELLE
1 TABLE 1
Wenn
der Finger des Benutzers (oder ein Stift) ein Gebiet der virtuellen
Eingabevorrichtung 50 berührt, bestimmt das Berührungs-Positionsmodul 240 (siehe 4)
die (x, z)-Koordinaten des Berührungs-Punkts 110.
In 5 liegt der Berührungs-Punkt 110 innerhalb
des „B"-Gebiets 300-4.
Das Tastenidentifikationsmodul 260 benutzt die Information
des Tastatur-Layouts 250, in diesem Beispiel wie in Tabelle
1 gezeigt, um zu bestimmen, wo in der relevanten (x, z)-Ebene die
Berührungs-Punktkoordinaten
aufgetreten sind. Beispielhaft sei angenommen, dass die Berührungs-Koordinaten
(x, z) (1,5; 0,5) sind. Eine Suchroutine, die vorzugsweise mit der
Einheit 70 (siehe 1A) verknüpften Speicher
gespeichert sind und die von der Einheit 70 ausgeführt wird,
bestimmt, dass 1 < x < 2 und –1 < z < 1 ist. Durch Suchen
von Information in der Tabelle 1 wird das Tastenidentifikationsmodul
bestimmen, dass der Berührungs-Punkt 110 innerhalb
des Eintrags B fällt.
Bei diesem Beispiel empfängt
die begleitende Vorrichtung 80 und 90 Daten von
dem System 10, die das Gebiet B anweisen, dass es gedrückt wurde.
Die Prozessoreinheit 70 in dem System 10 kann
veranlassen, dass die begleitende Vorrichtung solche andere Information
erhält
als sie zur Ausführung
der verknüpften
Rufgabe mit dem Event gefordert wird, bspw. um den Cursor nach unten
auf der Anzeige zu bewegen.If the user's finger (or a stylus) is an area of the virtual input device 50 touches, determines the touch position module 240 (please refer 4 ) the (x, z) coordinates of the touch point 110 , In 5 lies the touch point 110 within the "B" area 300-4 , The key identification module 260 uses the information of the keyboard layout 250 in this example, as shown in Table 1, to determine where in the relevant (x, z) plane the touch point coordinates have occurred. For example, assume that the touch coordinates (x, z) are (1.5, 0.5). A search routine, preferably with the unit 70 (please refer 1A ) associated memory are stored and that of the unit 70 is executed, it is determined that 1 <x <2 and -1 <z <1. By searching for information in Table 1, the key identification module will determine that the touch point 110 within entry B falls. In this example, the companion device receives 80 and 90 Data from the system 10 that instruct area B to be pressed. The processor unit 70 in the system 10 may cause the companion device to receive such information as is required to perform the associated call with the event, for example, to move the cursor down the display.
5B zeigt
eine Ausführungsform
des Systems 10 ähnlich
zu jener, die in 1A gezeigt. In 5B ist
die virtuelle Eingabevorrichtung 50 eine Computertastatur
und die begleitende Vorrichtung 80, 90 ist ein
mobiler Empfänger/Sender,
bspw. ein Mobilfunktelefon. Es versteht sich, dass das System 10 tatsächlich innerhalb
der Vorrichtung 80, 90 implementiert sein könnte. Als
solches könnte
OS1 einen Fächerstrahl 30 von
einem unteren Bereich der Vorrichtung 80, 90 ausstrahlen,
und OS2 könnte
in einem oberen Bereich der gleichen Vorrichtung vorgesehen sein.
Die virtuelle Eingabevorrichtung 50 könnte – falls gewünscht – optisch von einer Vorrichtung 80, 90 projiziert
werden. Alternativ könnte
die virtuelle Eingabevorrichtung 50 auf ein faltbares Substrat,
bspw. aus Plastik, Papier, etc. aufgedruckt sein, das innerhalb
der Vorrichtung 80, 90 aufgenommen werden kann,
dann entfernt und entfaltet oder entrollt und auf einer flachen
Arbeitsfläche
in Front vor der Vorrichtung 80, 90 platziert
werden könnte.
Der Ort der virtuellen Eingabevorrichtung 50 vor einer
Vorrichtung 80, 90 wäre so, dass OS1 einen Fächerstrahl 30 emittieren
kann, der die virtuelle Eingabevorrichtung umgibt, und OS2 könnte ein
Schneiden 110 eines Objekts, bspw. der Finger eines Benutzers
oder einen Stift, etc., wobei ein Ort des Fächerstrahls jeden interessierenden
Bereich in der virtuellen Eingabevorrichtung 50 überdeckt bzw.
darüber
liegt. 5B shows an embodiment of the system 10 similar to the one in 1A shown. In 5B is the virtual input device 50 a computer keyboard and the accompanying device 80 . 90 is a mobile receiver / transmitter, for example a mobile phone. It is understood that the system 10 actually within the device 80 . 90 could be implemented. As such, OS1 could be a fan beam 30 from a lower portion of the device 80 . 90 and OS2 could be provided in an upper area of the same device. The virtual input device 50 could - if desired - optically from a device 80 . 90 be projected. Alternatively, the virtual input device could 50 be printed on a foldable substrate, for example. Plastic, paper, etc., within the device 80 . 90 can be taken, then removed and unfolded or unrolled and on a flat work surface in front of the device 80 . 90 could be placed. The location of the virtual input device 50 in front of a device 80 . 90 would be like that OS1 a fan beam 30 which surrounds the virtual input device, and OS2 could be cutting 110 an object, such as a user's finger or pen, etc., where a location of the fan beam is any area of interest in the virtual input device 50 covered or overlying.
In 5B wird
OS2 nicht reflektierte optische Energie erfassen, bis das Objekt 120R den
Fächerstrahl 130 durchschneidet,
wobei einige optische Energie, die von OS1 emittiert wurde, reflektiert
werden wird (130) und von OS2 erfasst werden wird. Relativ
zu dem (x, z)-Koordinatensystem, das in 1A gezeigt
ist, ist der Schnittpunkt 110 etwa der Ort (13,5). Bezug
nehmend auf 4 versteht sich, dass die Tastatur-Layouttafel 250 zumindest
einen Eintrag für
jede virtuelle Taste besitzt, bspw. „1", „2",... „Q", „W",... „SHIFT", die auf der virtuellen
Eingabevorrichtung 50 definiert sind. Ein Eintrag-Suchprozess ähnlich zu
dem, der mit Bezug auf 5A beschrieben wurde, wird ausgeführt, vorzugsweise
durch die Einheit 70, und die relevante virtuelle Taste,
die unter dem Berührungs-Punkt 110 liegt,
kann identifiziert werden. In 5B ist
die relevante Taste „I", welcher Buchstabe „I" auf der Anzeige 150 als
Teil eines E-Mail-Nachrichtentextes 140 gezeigt ist, der
in das Mobilfunktelefon 80, 90 von einem Bereich
der Benutzerhand 120R (oder durch einen Stift) eingegeben wird.
Die Möglichkeit,
schnell Nachrichten durch Berührung
in das Mobilfunkgerät 80, 90 einzugeben,
indem die virtuelle Tastatur 50 benutzt wird, steht im
Gegensatz zu der aufwändigen
Eingabe von Nachrichten, indem die Mobilfunktastatur verwendet wird.In 5B OS2 will capture unreflected optical energy until the object 120R the fan beam 130 whereby some optical energy emitted by OS1 will be reflected ( 130 ) and will be detected by OS2. Relative to the (x, z) coordinate system used in 1A is shown is the intersection 110 about the place (13.5). Referring to 4 It is understood that the keyboard layout panel 250 has at least one entry for each virtual key, for example "1", "2", ... "Q", "W", ... "SHIFT" stored on the virtual input device 50 are defined. An entry search process similar to that described with reference to 5A is described is carried out, preferably by the unit 70 , and the relevant virtual button, which under the touch point 110 can be identified. In 5B is the relevant key "I", which letter "I" on the display 150 as part of an e-mail message text 140 shown in the mobile phone 80 . 90 from an area of the user's hand 120R (or by a pen) is entered. The ability to quickly send messages by touching the mobile device 80 . 90 to enter by the virtual keyboard 50 is used in contrast to the time-consuming input of messages by the mobile keyboard is used.
In 5C ist
eine Ausführungsform
eines Systems 10 gezeigt, bei dem der Arbeitsraum 40 eine
vertikale Wand ist, vielleicht in einem Geschäft oder einem Geschäftszentrum,
und die virtuelle Eingabevorrichtung 50 ist ebenfalls vertikal
angeordnet. Bei dieser Ausführungsform
ist die virtuelle Eingabevorrichtung 50 mit mehreren Icons
und/oder Wörtern 320 gezeigt,
die, wenn sie von einer Benutzerhand 120 berührt werden, bspw.
an einem Berührungs-Punkt 110,
einen passenden Text und/oder eine Graphik abbildung 140 auf
dem Display 150 in der begleitenden Vorrichtung 80, 90 erscheinen
lassen. Bei diesem gezeigten Beispiel können die Icons 320 Orte
oder Bereiche in einem Speicher darstellen, und die Anzeige 150 wird
interaktiv weitere Information in Antwort auf die Benutzerberührung eines
Icon-Gebiets bereitstellen. In einem Geschäftszentrum können die
verschiedenen Icons ganze Geschäfte
darstellen, oder Abteilungen oder Gebiete innerhalb eines Geschäfts, etc.
Die Erfassung und Lokalisierung der Berührungs-Punkte, wie der bei 110,
wird bevorzugt ausgeführt,
wie dies mit Bezug auf die Ausführungsformen
von 3A und 3B beschrieben
wurde. Vorzugsweise führt
eine Prozessoreinheit 70 innerhalb des Systems 10 Software
aus, die ebenfalls innerhalb oder ladbar aus einer Prozessoreinheit 70 gespeichert
ist um zu bestimmen, welches Icon oder welcher Textabschnitt einer
virtuellen Eingabevorrichtung 50 erfasst wurde, und welche
Befehle und/oder Daten zu einem Host-System 80, 90 übertragen
werden sollen.In 5C is an embodiment of a system 10 shown in which the work space 40 a vertical wall is, perhaps in a shop or business center, and the virtual input device 50 is also arranged vertically. In this embodiment, the virtual input device is 50 with several icons and / or words 320 shown when viewed from a user's hand 120 touched, for example, at a touch point 110 , a suitable text and / or a graphic illustration 140 on the display 150 in the accompanying device 80 . 90 let appear. In this example shown, the icons 320 Places or areas in a store, and the display 150 becomes more interactive Provide information in response to the user touch of an Icon area. In a business center, the various icons may represent entire businesses, or departments or areas within a business, etc. The detection and location of touch points, such as the 110 is preferably carried out as described with respect to the embodiments of 3A and 3B has been described. Preferably, a processor unit leads 70 within the system 10 Software that is also within or loadable from a processor unit 70 is stored to determine which icon or text portion of a virtual input device 50 was detected, and what commands and / or data to a host system 80 . 90 to be transferred.
Bezug
nehmend auf die Ausführungsform
von 5C, falls die virtuelle Eingabevorrichtung 50 geeignet
ist, häufig
geändert
zu werden, bspw. wenn es ein Menü in
einem Restaurant ist, wo die Anzeige 150 detaillierte Informationen,
wie bspw. Kalorien, Inhalt der Soßen, etc. anzeigen kann, kann
die Vorrichtung 50 innerhalb einer Wand 40 rückprojiziert
werden. Es ist verständlich,
dass, falls das Layout und der Ort der verschiedenen Icons 320 sich ändern, sich
die Abbildungs-Information, die innerhalb der Einheit 70 im
System 10 gespeichert ist, ebenfalls ändern wird. Die Fähigkeit,
schnell die Natur und den Inhalt der virtuellen Eingabevorrichtung
zu ändern,
ohne notwendigerweise auf Icons mit einer festen Größe an einem
festen Ort eingeschränkt
zu sein, kann sehr nützlich
sein. Falls ge wünscht,
können
tatsächlich
einige Icons hinsichtlich ihrer Größe und ihres Orts auf der Vorrichtung 50 fest
sein, und deren Berührung
durch einen Benutzer kann verwendet werden, um eine Neu-Abbildung
von dem auszuwählen,
was auf der Eingabevorrichtung 50 gezeigt ist, und was
durch Software innerhalb der Einheit 70 abgebildet ist.
Es versteht sich, dass zusätzlich
zur Vereinfachung der Anzeigeinformation, die Werbung umfassen kann,
die begleitenden Vorrichtungen 80, 90 verwendet
werden können,
um Werbecoupons 330 für
Benutzer auszugeben.Referring to the embodiment of 5C if the virtual input device 50 is suitable to be changed frequently, for example if there is a menu in a restaurant where the ad is 150 Detailed information, such as calories, content of sauces, etc. can show the device 50 inside a wall 40 be backprojected. It is understandable that, if the layout and location of the various icons 320 themselves, the picture information that changes within the unit 70 in the system 10 is stored, will also change. The ability to quickly change the nature and content of the virtual input device without necessarily being limited to fixed size icons in a fixed location can be very useful. If desired, some icons may actually be sized and located on the device 50 be fixed, and their touch by a user may be used to select a re-map of what is on the input device 50 shown and what is done by software within the unit 70 is shown. It should be understood that in addition to simplifying the display information that may include advertising, the accompanying devices 80 . 90 Can be used to buy advertising coupons 330 for users.
Es
sei nun auf 6 Bezug genommen. Die Art der
Registrierung eines Berührungs-Ereignisses
und die Lokalisierung dessen Position, wird von dem System 10 bestimmt
in einer Weise, die davon abhängt,
ob das System 10 ein System mit strukturiertem Licht oder
ein passives Lichtsystem ist. Wie früher angemerkt, kann in einem
strukturierten Lichtsystem OS1 ein Zeilenerzeugungs-Lasersystem sein,
und in einem passiven Lichtsystem kann OS1 eine digitale Kamera
sein. Jedes System definiert eine Ebene 30, die, wenn sie
von einem Objekt wie bspw. 120R, geschnitten wird, ein
Berührungs-Ereignis
auslöst,
dessen (x, z)-Koordinaten dann zu bestimmen sind. Sobald die (x,
z)-Koordinaten der virtuellen Berührung bestimmt sind, kann die
vorliegende Erfindung entscheiden, welche Eingabe oder Befehl von
der Person gemeint ist, die das System benutzt. Eine solche Eingabe
oder Befehl kann zu einer begleitenden Vorrichtung übertragen
werden, die natürlich
auch die vorliegende Erfindung enthalten kann.It is now up 6 Referenced. The nature of the registration of a touch event and the location of its location is determined by the system 10 determined in a way that depends on the system 10 is a structured light system or a passive light system. As noted earlier, in a structured lighting system OS1 a line generation laser system, and in a passive light system, OS1 may be a digital camera. Each system defines a level 30 that when viewed from an object such as. 120R , is cut, triggers a touch event whose (x, z) coordinates are then to be determined. Once the (x, z) coordinates of the virtual touch are determined, the present invention may decide which input or command is meant by the person using the system. Such input or command may be transmitted to an accompanying device, which of course may also incorporate the present invention.
Falls
das System 10 ein passives Lichtsystem ist, wird ein Berührungs-Ereignis
registriert, wenn der Umriss einer Fingerspitze in einer ausgewählten Bildzeile
von OS1 erscheint, einer digitalen Kamera. Der Berührungs-Ort
auf der (x, z)-Ebene 30 wird bestimmt durch die Pixelposition
der entsprechenden Objektspitze (bspw. 120R) in OS2, wenn
eine Berührung
in OS1 erfasst wird. Wie in 6 gezeigt,
ist die Entfernung oder der Abstand von der Kamera OS1 zu dem Berührungs-Punkt
eine affine Funktion der Anzahl der Pixel von dem „nahen" Ende des Pixelbildes.If the system 10 is a passive light system, a touch event is registered when the outline of a fingertip appears in a selected image line of OS1, a digital camera. The touch location on the (x, z) plane 30 is determined by the pixel position of the corresponding object tip (eg. 120R ) in OS2 when a touch is detected in OS1. As in 6 As shown, the distance or distance from the camera OS1 to the touch point is an affine function of the number of pixels from the "near" end of the pixel image.
Wie
angemerkt, wird in einer Ausführungsform
mit strukturiertem Licht, OS1 typischerweise ein Laserzeilengenerator
sein, und OS2 wird eine Kamera sein, die hauptsächlich für die Wellenlänge der
Lichtenergie empfindlich ist, die von OS1 emittiert wird. Wie angemerkt,
kann dies erreicht werden, indem ein schmalbandiges Lichtfilter
auf OS2 installiert wird, derart, dass nur Wellenlänge entsprechend
jener, die von OS1 emittiert wird, passieren kann. Alternativ kann
OS2 eine Blende bzw. ein Verschluss aufweisen, der synchron mit
einem Impulsausgangssignal von OS1 öffnet und schließt, bspw.
kann OS2 optische Energie nur zu Zeiten sehen, zu denen OS1 optische
Energie emittiert. In beiden Ausführungsformen eines strukturierten
Lichtsystems, wird OS2 vorzugsweise nur Objekte erfassen, die die
Ebene 30 schneiden und damit Energie reflektieren, die
von OS1 emittiert wurde.As noted, in a structured light embodiment, OS1 will typically be a laser line generator and OS2 will be a camera that is primarily sensitive to the wavelength of light energy emitted by OS1. As noted, this can be accomplished by installing a narrow band light filter on OS2 such that only wavelength corresponding to that emitted by OS1 can pass. Alternatively, OS2 may include a shutter that opens and closes in synchronism with a pulse output signal from OS1, for example, OS2 may see optical power only at times when OS1 emits optical energy. In both embodiments of a structured lighting system, OS2 will preferably only detect objects that are the plane 30 cut and reflect energy emitted by OS1.
In
dem zuvor genannten Fall werden die Berührungs-Erfassungsdetektion
und Entfernungsberechnung von dem System 10 ausgeführt. Somit
wird ein Berührungs-Ereignis
registriert, wenn der Umriss eines Objekts, bspw. die Fingerspitze 120R,
innerhalb des Sichtbereichs von OS2 erscheint. Wie in dem zuvor
genannten Beispiel, kann der Entfernungsabstand als eine affine
Funktion der Anzahl der Pixel von dem „nahen" Ende des Pixelbildes berechnet werden.In the aforementioned case, the touch detection detection and the distance calculation are performed by the system 10 executed. Thus, a touch event is registered when the outline of an object, such as the fingertip 120R , appears within the field of view of OS2. As in the aforementioned example, the range distance may be calculated as an affine function of the number of pixels from the "near" end of the pixel image.
Ein
weiteres Beispiel analytischer Schritte, die in 4 durch
die vorliegende Erfindung ausgeführt werden,
werden nun angegeben. Es sei angenommen, dass die virtuelle Eingabevorrichtung
eine Tastatur 50 ist, wie sie in 1A gezeigt
ist, und das System 10 Ausgabeinformation erwartet, die
zumindest den Scancode umfasst, der der virtuellen Taste entspricht,
die der Benutzer auf der virtuellen Tastatur 50 „berührt" hat. In 1A und
in 2A sei angenommen, dass der obere Bereich (d.h.
die Reihe mit den virtuellen Tasten „ESC", „F1", „F2", etc.) in einem
Abstand von etwa 20 cm von dem optischen System OS1 20 liegt.
Es sei weiter angenommen, dass die Kamera OS2 60 auf einem
PDA oder einer anderen Vorrichtung 80 angebracht ist, etwa
10 cm hoch ist und in einem bekannten Winkel α1 =
120° relativ
zu der Ebene 30 platziert ist. Es sei auch angenommen,
dass die Kamera OS2 60 eine Linse mit einer Brennweite
von etwa 4 mm besitzt, und einen Kamerasensor, der eine Gruppe von
480 Zeilen und 640 Spalten hat.Another example of analytic steps that is in 4 are carried out by the present invention are now given. Assume that the virtual input device is a keyboard 50 is how she is in 1A shown and the system 10 Output information expects that at least the scan code that corresponds to the virtual key that the user has on the virtual keyboard 50 "Touched." In 1A and in 2A Let it be assumed that the upper area (ie, the row with the virtual keys "ESC", "F1", "F2", etc.) is at a distance of about 20 cm from the optical system OS1 20 lies. It is further assumed that the camera is OS2 60 on a PDA or other device 80 is attached, about 10 cm high and at a known angle α 1 = 120 ° relative to the plane 30 is placed. It is also assumed that the camera is OS2 60 a lens having a focal length of about 4 mm, and a camera sensor having a group of 480 rows and 640 columns.
Die
Z-Koordinate der oberen linken Ecke der virtuellen Tastatur 50 soll
durch Konvention bei x = 0 und z = 0 gesetzt sein, bspw. (0,0).
Die Homographie H, die die Punkte in der Abbildung auf Punkte auf
der virtuellen Vorrichtung abbildet, hängt von der Neigung der Kamera
OS2 60 ab. Eine beispielhafte Homographiematrix für die zuvor
erwähnte
Konfiguration ist wie folgt: The Z coordinate of the upper left corner of the virtual keyboard 50 should be set by convention at x = 0 and z = 0, for example (0,0). The homography H, which maps the dots in the image to dots on the virtual device, depends on the tilt of the camera OS2 60 from. An exemplary homography matrix for the aforementioned configuration is as follows:
Die
zuvor erwähnte
Matrix braucht vorzugsweise nur einmal während einer Kalibrierungsphase
bestimmt werden, wie an anderer Stelle hier beschrieben werden wird.The
previously mentioned
Matrix preferably only needs one time during a calibration phase
be determined, as will be described elsewhere here.
Es
sei nun auf 1A und 7 Bezug
genommen. Es sei angenommen, dass der Benutzer 120L den
Bereich der virtuellen Tastatur 50 berührt, der dem Buchstaben „T" entspricht, welcher
Buchstabe „T" auf einem Substrat
aufgedruckt sein kann, um den Benutzerfingern Führung zu geben, oder der Teil
einer Abbildung der virtuellen Eingabevorrichtung sein kann, die
bspw. durch das System 10 projiziert werden kann. Wenn
das Koordinatensystem, das zuvor definiert wurde, verwendet wird,
kann die Taste „T" als zwischen den horizontalen
Koordinaten xmin = 10,5 und xmax =
12,4 cm und zwischen vertikalen Koordinaten zmin =
1,9 und zmax = 3,8 cm liegend gesehen werden,
wie in 7 gezeigt.It is now up 1A and 7 Referenced. It is assumed that the user 120L the area of the virtual keyboard 50 which corresponds to the letter "T", which letter "T" may be printed on a substrate to give guidance to the user's fingers, or may be part of an image of the virtual input device, for example through the system 10 can be projected. If the coordinate system previously defined is used, the "T" key may be defined as between the horizontal coordinates x min = 10.5 and x max = 12.4 cm and between vertical coordinates z min = 1.9 and z max = 3.8 cm lying as seen in 7 shown.
Es
wird nun auf 6 Bezug genommen. Bevor der
Benutzerfinger 120L (oder Stift) die Ebene des Sensors
OS1 20 schneidet, erfasst dieser kein Licht und sieht eine
Abbildung, die aus schwarzen Pixeln besteht, wie in der Vignette 340 am
unteren Bildrand dargestellt ist. Sobald jedoch das Benutzerobjekt
die optische Ebene 30 schneidet, wird das Schnitt-Ereignis
oder die Schnittstelle für
OS1 20 sichtbar. OS1 20 erzeugt nun eine Abbildung ähnlich zu
jener, die in der Vignette 350 am unteren Rand von 6 gezeigt
ist. Wenn die sich nach unten bewegende Spitze 110 des
Benutzerobjekts (bspw. der Finger 120L) die Ebene 40 erreicht, werden
mehr des Fingers sichtbar. Die Fingerkontur kann nun bestimmt werden,
bspw. durch die Einheit 70, in dem eine Rand- bzw. Kantenerfassung
durchgeführt
wird. Eine solche Bestimmung ist am unteren Rand von 6 als „TOUCH"-Ereignis-Vignette 360 dargestellt.
Ein Berührungs-Erfassungs modul 220 in 4 bestimmt
dann, dass das Benutzerobjekt die Fläche 40 berührt hat
und informiert das Spitzen-Erfassungsmodul 230 von diesem
Ereignis.It will be up now 6 Referenced. Before the user finger 120L (or pin) the plane of the sensor OS1 20 does not detect light and sees an image consisting of black pixels as in the vignette 340 is shown at the bottom of the screen. However, once the user object becomes the optical level 30 cuts, becomes the cut event or the interface for OS1 20 visible, noticeable. OS1 20 now creates an image similar to that in the vignette 350 at the bottom of 6 is shown. When the tip is moving down 110 of the user object (eg the finger 120L ) the level 40 reached, more of the finger become visible. The finger contour can now be determined, for example by the unit 70 in which edge detection is performed. Such a provision is at the bottom of 6 as a "TOUCH" event vignette 360 shown. A touch detection module 220 in 4 then determines that the user object is the surface 40 touched and informed the peak detection module 230 from this event.
Wie
in 1A zu sehen, ist die virtuelle „T"-Taste in der zweiten
Reihe bzw. Zeile der virtuellen Tastatur 50, und ist deshalb
relativ nahe an dem Sensor OS1 20. In 6 entspricht
diese Situation der Fingerspitze in Position 110'. Wie weiter
in 6 gezeigt, ist die Projektion des Bodens der Fingerspitzenposition 110' auf den Sensor
des optischen Systems OS2 60 relativ nahe zu der Spitze
der Abbildung. Der Rand der Fingerspitzenabbildung, der so erzeugt
wird, ist ähnlich
zu dem, wie er in der Vignette 370 oben von 6 gezeigt
ist. In der Vignette 370 stellen zwei graue Quadrate die
unteren bzw. Bodenrandpixel der Fingerspitze dar.As in 1A to see is the virtual "T" key in the second row or row of the virtual keyboard 50 , and is therefore relatively close to the sensor OS1 20 , In 6 This situation corresponds to the fingertip in position 110 ' , As in further 6 shown is the projection of the bottom of the fingertip position 110 ' on the sensor of optical system OS2 60 relatively close to the top of the picture. The edge of the fingertip figure thus created is similar to that in the vignette 370 from above 6 is shown. In the vignette 370 Two gray squares represent the bottom edge pixels of the fingertip.
Hat
der Benutzer stattdessen die Leerzeichen-Taste oder eine andere
Taste näher
an dem unteren Bereich der virtuellen Tastatur 50 gedrückt, d.h.
weiter weg von dem Sensor OS1 20, würde die durch die Fingerspitzenposition 110 in 6 dargestellte
Situation nicht auftauchen. Eine solche relativ weit entfernte Stelle auf
der virtuellen Tastatur wird auf ein Pixel abgebildet, das näher an dem
Boden der Abbildung ist, und eine Randabbildung ähnlich zu der, wie sie in der
Vignette 380 an der Spitze von 6 skizziert
ist, wäre
stattdessen aufgetaucht. Zwischensituationen virtueller Tastenberührungen
würden
Randabbildungen erzeugen, die ähnlicher
sind zu denen, die als Vignette 390 an der Spitze von 6 dargestellt
sind.Instead, the user has the space key or another key closer to the bottom of the virtual keyboard 50 pressed, ie farther away from the sensor OS1 20 , that would be through the fingertip position 110 in 6 situation does not appear. Such a relatively distant location on the virtual keyboard is mapped to a pixel that is closer to the bottom of the image, and a border image similar to that in the vignette 380 at the top of 6 sketched would have surfaced instead. Intermediate situations of virtual key touches would produce edge mappings more similar to those used as vignettes 390 at the top of 6 are shown.
Bei
dem zuvor erläuterten
Beispiel, bei dem die virtuelle Taste „T" gedrückt wird, lässt das Spitzen-Erfassungsmodul 230 inIn the example explained above, in which the virtual key "T" is pressed, the tip detection module leaves 230 in
4 einen
Rand-Erfassungsalgorithmus ablaufen und findet dadurch die Bodenmitte
des „Blob", das den allgemeinen
Bereich der Berührung
darstellt, die in der Abbildungs-Zeile 65 und Spalte 492 liegt.
Der homogene Abbildungs-Koordinatenvektor p, der nachfolgend gegeben
wird, wird deshalb gebildet als: 4 an edge detection algorithm, and thereby finds the bottom center of the "blob", which represents the general area of the touch, in the image line 65 and column 492 lies. The ho mogeneous mapping coordinate vector p, given below, is therefore formed as:
Dieser
homogene Abbildungs-Koordinatenvektor p wird dann multipliziert
mit der Homographiematrix H, um die Koordinaten P der Benutzerfingerspitze
in dem Referenzbild der virtuellen Tastatur zu erhalten: This
homogeneous map coordinate vector p is then multiplied
with the homography matrix H, around the coordinates P of the user's fingertip
to get in the reference image of the virtual keyboard:
Das
Benutzerobjekt oder der Finger 120L wird somit als die
virtuelle Tastatur 50 an einem Ortspunkt berührend festgestellt,
der die Koordinaten x = 11,53 und z = 2,49 cm besitzt. Das Tastenidentifikationsmodul 260 in 4 sucht
das Tastatur-Layout 250 für eine Taste, derart, dass
xmin ≤ 11,53 < xmax und
ymin ≤ 2,49 < ymax Diese
Bedingungen werden für
die virtuelle Taste „T" erfüllt, da
10,5 < 11,53 < 12,4 und 1,9 < 2,49 < 3,8. Es wird nun
Bezug genommen auf 4. Das Tastenidentifikationsmodul 260 bestimmt
deshalb, dass ein Benutzerobjekt die virtuelle Taste „T" auf der virtuellen
Tastatur 50 berührt
und informiert das Übersetzungsmodul 270 von
diesem Ereignis.The user object or the finger 120L is thus called the virtual keyboard 50 touching at a location point, which has the coordinates x = 11.53 and z = 2.49 cm. The key identification module 260 in 4 looks for the keyboard layout 250 for a key such that x min ≤ 11.53 <x max and y min ≤ 2.49 <y max These conditions are met for the virtual key "T" since 10.5 <11.53 <12.4 and 1.9 <2.49 <3.8. Reference will now be made to 4 , The key identification module 260 therefore, determines that a user object is the virtual key "T" on the virtual keyboard 50 touches and informs the translation module 270 from this event.
Dieses
Ereignis muss nicht notwendigerweise ein Tastendruck sein. Beispielsweise
kann das Benutzerobjekt oder der Finger früher die „T"-Taste berührt haben und kann danach in
diesem Berührungs-Kontakt mit
der Taste geblieben sein. In einem solchen Fall sollte kein Tastendruck-Ereignis
an die Anwendung 280 übertragen
werden, die auf der begleitenden Vorrichtung 80 oder 90 abläuft.This event does not necessarily have to be a keystroke. For example, the user object or finger may have previously touched the "T" key and may thereafter remain in that touch contact with the key, in which case there should be no keystroke event to the application 280 be transmitted on the accompanying device 80 or 90 expires.
Das
Tastenübersetzungsmodul 270 speichert
vorzugsweise den Oben-Status oder den Unten-Status jeder Taste intern.
Dieses Modul bestimmt für
jedes Bild, ob eine Taste ihren Zustand geändert hat. Bei dem zuvor erwähnten Beispiel,
falls die Taste „T" als in dem Unten-Status
in dem aktuellen Bild aufgefunden wird, aber in dem vorhergehenden
Rahmen in dem Oben-Status war, würde
das Übersetzungsmodul 270 eine
KEYCODE-Nachricht an die Anwendung 280 senden. Der KEYCODE-Code
wird ein „TASTE-UNTEN"-Ereignis-Identifizierer enthalten zusammen
mit einem „KEY
ID"-Kennzeichen, das
die „T"-Taste identifiziert
und dadurch die Anwendung 280 informiert, dass die „T"-Taste gerade von
dem Benutzerobjekt „gedrückt" wurde. Falls die „T"-Taste als in dem
Unten-Zustand der vorhergehenden Bilder aufgefunden worden wäre, würde der KEYCODE
einen „KEY
HELD"-Ereignis-Identifizierer
enthalten zusammen mit der „KEY
ID", die mit der „T"-Taste verknüpft ist.
Ein Senden des „KEY
HELD"-Ereignisses
bei jedem Bild (mit Ausnahme des ersten Bildes), bei dem die Taste
in einem Unten-Zustand ist, befreit die Anwendung 280 davon,
jeden Zustand über
die Tasten aufrechtzuerhalten. Sobald die „T"-Taste
als in dem Oben-Zustand in dem aktuellen Bild aufgefunden wird,
und in den vorherigen Bildern in dem Unten-Zustand war, sendet das Übersetzungsmodul 270 einen KEYCODE
mit einem „KEY
UP"-Ereignis-Identifizierer
wieder mit einem „KEY
ID"-Kennzei chen,
das die „T"-Taste identifiziert,
und informiert die Anwendung 280, dass die „T"-Taste gerade von
dem Benutzerobjekt „freigegeben" wurde.The key translation module 270 Preferably stores internally the top status or the bottom status of each key internally. This module determines for each image whether a key has changed state. In the aforementioned example, if the key "T" was found to be in the down status in the current picture but was in the up status in the previous frame, the translation module would 270 a KEYCODE message to the application 280 send. The KEYCODE code will contain a "BUTTON DOWN" event identifier along with a "KEY ID" tag that identifies the "T" key and thereby the application 280 informs that the "T" key has just been "pressed" by the user object. If the "T" key had been found to be in the down state of the previous frames, the KEYCODE would contain a "KEY HERO" event identifier along with the "KEY ID" associated with the "T" key is. Sending the "KEY HELD" event on every frame (except the first frame) with the key in a down state frees the application 280 of maintaining each state via the keys. Once the "T" key is found to be in the up state in the current image, and in the previous images was in the down state, the translation module sends 270 a KEYCODE with a "KEY UP" event identifier again with a "KEY ID" flag identifying the "T" key and informing the application 280 in that the "T" key has just been "released" by the user object.
Aus
dem zuvor Beschriebenen ergibt sich, dass es ausreicht, dass die
Bildabbildungen nur die Spitzen des Benutzerobjekts, bspw. die Fingerspitzen
enthalten. Die verschiedenen Ausführungsformen der vorliegenden
Erfindung benutzen weniger als volle dreidimensionale Abbildungs-Information,
die innerhalb eines relativ flachen Raums erfasst wird, der nur
wenig oberhalb einer virtuellen Eingabe oder einer virtuellen Übertragungsvorrichtung
definiert ist. Ein System, das diese Ausführungsformen implementiert,
kann relativ kostengünstig
hergestellt werden und arbeitet mit einer eigenen Batteriequelle.
Tatsächlich
könnte
das System konstruiert sein, dass es innerhalb allgemeiner Vorrichtungen,
wie bspw. PDAs, Mobilfunkgeräten,
etc. enthalten ist, um die Eingabe oder die Übertragung von Information
von einem Benutzer zu beschleunigen. Wie beschrieben, können unerwünschte Effekte
durch Umgebungslicht reduziert werden, indem die Wellenlängen in den
Ausführungsformen
mit aktivem Licht ausgewählt
werden, indem Kamera(s) und Lichtquellen synchronisiert werden,
indem Signalverarbeitungstechniken verwendet werden, die Abbildungen
erfassen und Abbildungen heraussubtrahieren, die Hintergrundrauschen
darstellen.Out
The above results that it is sufficient that the
Image pictures only the tips of the user object, for example the fingertips
contain. The various embodiments of the present
Invention use less than full three-dimensional map information,
which is captured within a relatively shallow space only
just above a virtual input or a virtual transfer device
is defined. A system implementing these embodiments,
can be relatively inexpensive
be manufactured and works with its own battery source.
Indeed
could
the system be constructed to be within general devices,
such as PDAs, mobile devices,
etc. is included to the input or transmission of information
accelerate by a user. As described, can cause unwanted effects
be reduced by ambient light by the wavelengths in the
embodiments
selected with active light
be synchronized by camera (s) and light sources,
by using signal processing techniques, the pictures
capture and subtract pictures, the background noise
represent.
Modifikationen
und Variationen sind bei den offenbarten Ausführungsformen möglich, ohne
den Rahmen der vorliegenden Erfindung, wie sie in den nachfolgenden
Ansprüchen
definiert ist, zu verlassen.modifications
and variations are possible in the disclosed embodiments without
the scope of the present invention as shown in the following
claims
is defined, leave.