EP3103059A1 - 3-d image analyzer for determining viewing direction - Google Patents

3-d image analyzer for determining viewing direction

Info

Publication number
EP3103059A1
EP3103059A1 EP15701823.5A EP15701823A EP3103059A1 EP 3103059 A1 EP3103059 A1 EP 3103059A1 EP 15701823 A EP15701823 A EP 15701823A EP 3103059 A1 EP3103059 A1 EP 3103059A1
Authority
EP
European Patent Office
Prior art keywords
image
pattern
vector
hough
pupil
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP15701823.5A
Other languages
German (de)
French (fr)
Inventor
Daniel KRENZER
Albrecht HESS
András KÁTAI
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to DE102014201997 priority Critical
Application filed by Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority to PCT/EP2015/052004 priority patent/WO2015117905A1/en
Publication of EP3103059A1 publication Critical patent/EP3103059A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06KRECOGNITION OF DATA; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K9/00Methods or arrangements for reading or recognising printed or written characters or for recognising patterns, e.g. fingerprints
    • G06K9/36Image preprocessing, i.e. processing the image information without deciding about the identity of the image
    • G06K9/46Extraction of features or characteristics of the image
    • G06K9/4671Extracting features based on salient regional features, e.g. Scale Invariant Feature Transform [SIFT] keypoints
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/145Square transforms, e.g. Hadamard, Walsh, Haar, Hough, Slant transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06KRECOGNITION OF DATA; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K9/00Methods or arrangements for reading or recognising printed or written characters or for recognising patterns, e.g. fingerprints
    • G06K9/00335Recognising movements or behaviour, e.g. recognition of gestures, dynamic facial expressions; Lip-reading
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06KRECOGNITION OF DATA; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K9/00Methods or arrangements for reading or recognising printed or written characters or for recognising patterns, e.g. fingerprints
    • G06K9/00597Acquiring or recognising eyes, e.g. iris verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06KRECOGNITION OF DATA; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K9/00Methods or arrangements for reading or recognising printed or written characters or for recognising patterns, e.g. fingerprints
    • G06K9/00597Acquiring or recognising eyes, e.g. iris verification
    • G06K9/00604Acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06KRECOGNITION OF DATA; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K9/00Methods or arrangements for reading or recognising printed or written characters or for recognising patterns, e.g. fingerprints
    • G06K9/00597Acquiring or recognising eyes, e.g. iris verification
    • G06K9/0061Preprocessing; Feature extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06KRECOGNITION OF DATA; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K9/00Methods or arrangements for reading or recognising printed or written characters or for recognising patterns, e.g. fingerprints
    • G06K9/00973Hardware and software architectures for pattern recognition, e.g. modular organisation
    • G06K9/00986Hardware and software architectures for pattern recognition, e.g. modular organisation using specific electronic processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06KRECOGNITION OF DATA; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K9/00Methods or arrangements for reading or recognising printed or written characters or for recognising patterns, e.g. fingerprints
    • G06K9/36Image preprocessing, i.e. processing the image information without deciding about the identity of the image
    • G06K9/46Extraction of features or characteristics of the image
    • G06K9/4604Detecting partial patterns, e.g. edges or contours, or configurations, e.g. loops, corners, strokes, intersections
    • G06K9/4633Detecting partial patterns, e.g. edges or contours, or configurations, e.g. loops, corners, strokes, intersections by mapping characteristic values of the pattern into a parameter space, e.g. Hough transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06KRECOGNITION OF DATA; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K9/00Methods or arrangements for reading or recognising printed or written characters or for recognising patterns, e.g. fingerprints
    • G06K9/36Image preprocessing, i.e. processing the image information without deciding about the identity of the image
    • G06K9/46Extraction of features or characteristics of the image
    • G06K9/48Extraction of features or characteristics of the image by coding the contour of the pattern contour related features or features from contour like patterns, e.g. hand-drawn point-sequence
    • G06K9/481Extraction of features or characteristics of the image by coding the contour of the pattern contour related features or features from contour like patterns, e.g. hand-drawn point-sequence using vector-coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/60Rotation of a whole image or part thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/001Image restoration
    • G06T5/002Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • G06T7/337Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/77Determining position or orientation of objects or cameras using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • G06T2207/10012Stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20004Adaptive image processing
    • G06T2207/20008Globally adaptive
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20048Transform domain processing
    • G06T2207/20061Hough transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • G06T2207/30201Face

Abstract

The invention relates to a 3-D image analyzer for determining a viewing direction or a viewing line (consisting of a viewing-direction vector and a location vector, which indicates, e.g., the pupil center point and at which the viewing-direction vector starts) in a 3-D space. Said 3-D image analyzer is designed to receive at least one first set of image data and a further set of image information, wherein the first image comprises a pattern, which images a three-dimensional object from a first perspective onto a first image plane, and wherein the further set comprises an image, which comprises a pattern, which images the same three-dimensional object from a further perspective onto a further image plane, or wherein the further set comprises image information and/or a relationship between at least two points in the first image and/or at least one piece of position information. The image information is determined on the basis of the first image or one or more further images. The position information describes a relationship between at least one point of the three-dimensional object and the first image plane. The 3-D image analyzer comprises a position-calculating device and an orientation-calculating device and calculates a viewing direction in a 3-D space by means thereof.

Description

3D-Bildanalysator zur Blickrichtungsbestimmung  3D image analyzer for viewing direction determination
Beschreibung description
Ausführungsbeispiele der vorliegenden Erfindung beziehen sich auf einen 3D- Bildanalysator zur Bestimmung einer Blickrichtung (bzw. Richtungsvektor) oder einer Blickgeraden (bestehend aus Ortsvektor und Richtungsvektor) in einem 3 D-Raum ohne, dass eine Kalibration durch den Benutzer, dessen Blickrichtung bestimmt werden soll, er- forderlich ist. Weitere Ausführungsbeispiele beziehen sich auf ein Bildanalysesystem mit einem 3D-Bildanalysator zum Erkennen einer Ausrichtung bzw. Blickrichtung und auf ein entsprechendes Verfahren zum Erkennen der Ausrichtung bzw. Blickrichtung. Exemplary embodiments of the present invention relate to a 3D image analyzer for determining a viewing direction (or direction vector) or a viewing line (consisting of position vector and direction vector) in a 3D space without a calibration by the user whose viewing direction is to be determined , is required. Further exemplary embodiments relate to an image analysis system with a 3D image analyzer for detecting an alignment or viewing direction and to a corresponding method for detecting the orientation or viewing direction.
Zur automatischen Bestimmung der Blickrichtung eines Menschen gibt es unterschiedliche Kategorien von Systemen. Eine sehr weit verbreitete Kategorie sind videobasierte Systeme, die mit ein oder mehreren Kameras die Augen der Person aufnehmen und diese Videoaufnahmen online oder offline auswerten um daraus die Blickrichtung zu bestimmen. There are different categories of systems for automatically determining the viewing direction of a person. A very widespread category are video-based systems that record the person's eyes with one or more cameras and evaluate these video recordings online or offline in order to determine the viewing direction.
Systeme zur videobasierten Blickrichtungsbestimmung erfordern in der Regel für jeden Nutzer zu Beginn der Nutzung und in einigen Fällen auch zusätzlich während der Nutzung (z. B. beim Verlassen des Kameraerfassungsbereiches oder bei einer Veränderung der Lage zwischen Benutzer und System) eine Kalibrierprozedur, um die Blickrichtung des Nutzers bestimmen zu können. Des Weiteren erfordern einige dieser Systeme eine sehr spezielle und definierte Anordnung der Kamera(s) und der Beleuchtung zueinander oder eine sehr spezielle Anordnung der Kamera(s) zum Benutzer und Vorwissen über die Position des Benutzers (wie z. B. in der Patentschrift DE 10 2004 046 617 AI) um die Blickrichtungsbestimmung durchführen zu können. Systems for video-based viewing direction determination usually require a calibration procedure for each user at the beginning of use and in some cases also during use (eg when leaving the camera detection area or when the position between the user and the system changes) of the user to be able to determine. Furthermore, some of these systems require a very specific and defined arrangement of the camera (s) and the lighting to each other or a very special arrangement of the camera (s) to the user and prior knowledge of the position of the user (as in the patent DE 10 2004 046 617 AI) in order to be able to determine the viewing direction.
Deshalb besteht der Bedarf nach einem verbesserten Ansatz. Therefore, there is a need for an improved approach.
Eine Aufgabe ist es, eine effiziente und zuverlässige Richtungserkennung, z.B. Blickrichtungserkennung zu ermöglichen. An object is to provide efficient and reliable direction detection, e.g. To enable viewing direction recognition.
Die Aufgabe wird durch die unabhängigen Ansprüche gelöst. Weiterbildungen sind in den Unteransprüchen definiert. The object is solved by the independent claims. Further developments are defined in the subclaims.
Ausführungsbeispiele der vorliegenden Erfindung schaffen einen 3D-Bildanalysator zur Bestimmung einer Blickrichtung oder einer Blickgeraden (umfassend z.B. einem Blick- richtungsvektor und einem Ortsvektor, der z. B. den Pupillenmittelpunkt angibt und an dem der Blickrichtungsvektor ansetzt) oder eines Blickpunktes, wobei der 3D- Bildanalysator ausgebildet ist, um zumindest einen ersten Satz von Bilddaten, der auf Basis eines ersten Bildes bestimmt wird, und einen weiteren Satz von Informationen, die auf Basis des ersten Bildes oder eines weiteren Bildes bestimmt wird, zu empfangen, wobei das erste Bild ein Muster enthält, das sich durch die Abbildung eines dreidimensionalen Objekts (z.B. Muster einer Pupille, einer Iris oder einer Ellipse) aus einer ersten Perspektive in eine erste Bildebene ergibt, und wobei der weitere Satz auch ein Bild mit einem Muster enthält, das sich durch die Abbildung des gleichen dreidimensionalen Objekts aus einer weiteren Perspektive in eine weitere Bildebene ergibt, oder wobei der weitere Satz Informationen enthält, welche eine (Relativ-) Beziehung zwischen mindestens einem Punkt des dreidimensionalen Objekts und der ersten Bildebene beschreiben. Der 3D-Bildanalysator umfasst eine Positionsberechnungseinrichtung und eine Ausrichtungsberechnungseinrich- tung. Die Positionsberechnungseinrichtung ist ausgebildet, um eine Position des Musters in einem dreidimensionalen Raum basierend auf dem ersten Satz, einem weiteren Satz, der auf Basis des weiteren Bildes bestimmt wird, und einer geometrischen Beziehung zwischen den Perspektiven des ersten und des weiteren Bildes zu berechnen oder um die Position des Musters in dem dreidimensionalen Raum basierend auf dem ersten Satz und einer statistisch ermittelten Beziehung zwischen mindestens zwei charakteristischen Merkmalen zueinander in dem ersten Bild zu berechnen oder um die Position des Musters in dem dreidimensionalen Raum basierend auf dem ersten Satz und einer Lagebeziehung zwischen mindestens einem Punkt des dreidimensionalen Objektes und der ersten Bildebene zu berechnen. Die Ausriehtungsbereehnungseinrichtung ist ausgebildet, um zwei mögliche SD- Blickvektoren pro Bild zu berechnen und aus diesen möglichen 3 D-Blickvektoren den 3D- Blickvektor zu ermitteln, gemäß dem das Muster in dem dreidimensionalen Raum ausgerichtet ist, wobei die Berechnung und Ermittlung auf dem ersten Satz, dem weiteren Satz und auf der berechneten Position des Musters basiert. Exemplary embodiments of the present invention provide a 3D image analyzer for determining a line of sight or a straight line of sight (comprising, for example, a viewing device). direction vector and a location vector, the z. Indicating the pupil center and to which the view direction vector attaches) or a viewpoint, wherein the 3-D image analyzer is adapted to generate at least a first set of image data determined based on a first image and another set of information based on Based on the first image or another image, the first image containing a pattern resulting from the imaging of a three-dimensional object (eg, a pupil, iris, or ellipse pattern) from a first perspective into a first image plane and wherein the further set also contains an image with a pattern resulting from the image of the same three-dimensional object from a further perspective into a further image plane, or wherein the further set contains information describing a (relative) relationship between describe at least one point of the three-dimensional object and the first image plane. The 3D image analyzer includes a position calculator and an orientation calculator. The position calculator is configured to calculate or translate a position of the pattern in a three-dimensional space based on the first sentence, another sentence determined based on the further image, and a geometric relationship between the perspectives of the first and the further images calculate the position of the pattern in the three-dimensional space based on the first set and a statistically determined relationship between at least two characteristic features to each other in the first image or the position of the pattern in the three-dimensional space based on the first set and a positional relationship between at least to calculate a point of the three-dimensional object and the first image plane. The alignment enhancer is configured to compute two possible SD view vectors per image and from these possible 3D view vectors to determine the 3D view vector according to which the pattern is aligned in the three-dimensional space, wherein the calculation and determination on the first set , the further sentence and based on the calculated position of the pattern.
Der Kern der vorliegenden Erfindung liegt also darin, dass erkannt wurde, dass - ausge- hend von der o.g. Positionsbestimmungseinrichtung bestimmten Position des Musters eine Ausrichtung eines Objektes im Raum, wie z. B. eine Ausrichtung einer Pupille im Raum (also die Blickrichtung), und/oder eine Blickgerade (bestehend aus einem Blickrichtungsvektor und einem Ortsvektor, der z. B. den Pupillenmittelpunkt angibt und an dem der Blickrichtungsvektor ansetzt) basierend auf mindestens einem Satz von Bilddaten, z. B. aus einer ersten Perspektive und Zusatzinformationen bzw. einem weiteren Satz von Bilddaten (aus einer weiteren Perspektive) bestimmt werden kann. Zur Bestimmung der Ausrichtung wird eine Positionsberechnungseinrichtung zu Hilfe genommen, die in einem ersten Schritt die Position des Musters bestimmt. Ausgehend von dieser bestimmten Position des Musters gibt es nun zwei mögliche 3D-Blickvektorcn, entsprechend welchen das Muster ausgerichtet sein kann. Diese zwei möglichen 3 D-Blickvektoren werden beispielsweise dadurch bestimmt, dass die optische Verzerrung des Musters mit einer Grundform des Musters verglichen wird und hieraus bestimmt wird, welchen Betrag das Muster gegenüber der optischen Ebene des Bildes (vgl. erster Satz von Bilddaten) verkippt ist. Ausgehend von dem Beispiel einer (runden) Pupille, welche in dem Fall von Verkippung sich als Ellipse darstellt, wird klar, dass es zwei mögliche Verkippungswinkel der Pupille gegenüber der optischen Ebene gibt, welche zu der ellipsenförmigen Darstellung der Pupille fuhren. Die A usri chtungsbereehnungseinri chtung ermittelt nun basierend auf dem weiteren Satz von Bildinformationen oder basierend auf Zusatzinformationen, die auch basierend auf dem ersten Satz von Bildinformationen gewonnen werden können, welcher der theoretisch möglichen Verkippungswinkel bzw. 3D-Blickvektoren der Realität, also der tatsächlichen Blickrichtung, entspricht. Also kann (unter Nutzung der 3D-Positionsberechnung und einer virtuellen Projektionsebene) vorteilhafterweise der Blickrichtungsvektor und/oder die Blickgerade (bestehend aus Ortsvektor des gesuchten Muster und Richtungsvektor) ohne vorherige Kenntnis eines Ab- stands zwischen Pupille und Kamera oder ohne genau Positionierung der optischen Achsen der Kameras (z.B. durch den Pupillenmittelpunkt) bestimmt werden. The core of the present invention thus lies in the fact that it has been recognized that - based on the above-mentioned position determining device specific position of the pattern, an orientation of an object in space, such. An alignment of a pupil in space (ie, the line of sight), and / or a straight line (consisting of a line of sight vector and a location vector indicating, for example, the pupil center and to which the viewpoint vector attaches) based on at least one set of image data , z. B. from a first perspective and additional information or another set of image data (from a further perspective) can be determined. To determine the orientation, a position calculation device is used, which determines the position of the pattern in a first step. Starting from this particular position of the pattern, there are now two possible 3D view vectors, according to which the pattern can be aligned. These two possible 3-D view vectors are determined, for example, by comparing the optical distortion of the pattern with a basic shape of the pattern and thus determining how much the pattern is tilted with respect to the optical plane of the image (see first set of image data) , Starting from the example of a (round) pupil, which in the case of tilting represents itself as an ellipse, it is clear that there are two possible tilt angles of the pupil with respect to the optical plane, which lead to the elliptical representation of the pupil. The compensation device now determines, based on the further set of image information or based on additional information that can also be obtained based on the first set of image information, which of the theoretically possible tilt angles or 3D view vectors of the reality, ie the actual line of sight, equivalent. Thus, (using the 3D position calculation and a virtual projection plane) advantageously the line of sight vector and / or the straight line (consisting of location vector of the searched pattern and direction vector) without prior knowledge of a distance between the pupil and camera or without exact positioning of the optical axes of the cameras (eg through the pupil center).
Entsprechend Ausführungsbeispielen ist es möglich, dass die Bestimmung bzw. Auswahl des zutreffenden 3D-Blickvektors dadurch erfolgt, dass zwei weitere mögliche SD- Blickvektoren für einen weiteren Satz von Bilddateien (aus einer weiteren Perspektive) ermittelt werden, wobei ein 3 D-Blickvektor aus dem ersten Bilddatensatz mit einem SD- Blickvektor aus dem weiteren Bilddatensatz übereinstimmt, der dann der tatsächliche 3D- Blickvektor ist. Alternativ hierzu kann entsprechend weiteren Ausführungsbeispielen auch der erste Bilddatensatz analysiert werden, z. B. hinsichtlich dessen, wie viele Pixel der im ersten Bild abgebildeten Sklera des Auges von den zwei möglichen 3 D-Blickvektoren (beginnend am Pupillenmittelpunkt) überstrichen werden. Hierbei wird dann der SD- Blickvektor ausgewählt, der weniger Pixel der Sklera überstreicht. Anstelle der Analyse der Sklera wäre es auch möglich, dass der 3D-Blickvektor ausgewählt wird, entlang dessen Projektion ins Bild (beginnend am Pupillenmittelpunkt der kleinere Abstand zwischen Pupillenmittelpunkt und Rand der Augenöffnung resultiert. According to embodiments, it is possible that the determination or selection of the appropriate 3D view vector is carried out by determining two further possible SD view vectors for a further set of image files (from a further perspective), wherein a 3D view vector from the first image data set with an SD view vector from the further image data set, which is then the actual 3D view vector. Alternatively, according to further embodiments and the first image data set can be analyzed, for. In terms of how many pixels of the sclera of the eye imaged in the first image are swept by the two possible 3 D view vectors (starting at the pupil center). In this case, the SD view vector is selected, which passes over fewer pixels of the sclera. Instead of analyzing the sclera, it would also be possible to select the 3D view vector along which its projection into the image (starting at the pupil center point, the smaller distance between the pupil center and the edge of the eye opening results.
Entsprechend weiteren Ausführungsbeispielen können auch statistisch ermittelte Bezie- hung, wie z.B. ein Abstand zwischen zwei charakteristischen Gesichtsmerkmalen (z. B. Nase, Auge) zur Berechnung der 3 D-Position eines Punktes des Musters (z. B. Pupillenoder Irismittelpunkt) herangezogen werden. Diese statistischen Beziehungen sind vorab ermittelt und in einem Speicher gespeichert. Entsprechend weiteren Ausfuhrungsbeispielen ist die Ermittlung der oben beschriebenen 3 D-Position eines Punktes des Musters nicht auf die Nutzung statistische ermittelter Werte beschränkt. Sie kann auch basierend auf den Ergebnissen einer vorgeschalteten Berech- nungseinrichtung erfolgen, welche die 3 D-Positionen charakteristischen Gesichtsmerkmalen (z. B. Nase, Auge) oder einen 3D-Position des oben genannten Musters liefert. According to further embodiments, statistically determined relationship, such as a distance between two characteristic facial features (eg nose, eye) can also be used to calculate the 3-D position of a point of the pattern (eg pupil or iris midpoint). These statistical relationships are determined in advance and stored in a memory. According to further exemplary embodiments, the determination of the above-described 3 D position of a point of the sample is not limited to the use of statistical values determined. It may also be based on the results of an upstream calculator providing the 3-D positions of characteristic facial features (eg nose, eye) or a 3D position of the above-mentioned pattern.
Entsprechend weiteren Ausführungsbeispielen kann die Auswahl des tatsächlichen SD- Blickvektors aus den möglichen 3D-Blickvektoren auch basierend auf der 3D-Position des Musters (z. B. Pupillen- oder Irismittelpunkt) und den oben genannten 3 D-Positionen charakteristischer Gesichtsmerkmale (z. B. Augenecken, Mundecken) erfolgen. According to further embodiments, the selection of the actual SD view vector from the possible 3D view vectors may also be based on the 3D position of the pattern (eg, pupil or iris midpoint) and the above-mentioned 3-D positions of characteristic facial features (e.g. Corner of the eye, mouth corners).
Entsprechend weiteren Ausführungsbeispielen erfolgt die Ausrichtungsberechnung dadurch, dass eine erste virtuelle Projektionsebene, durch Drehung der tatsächlichen ersten Projektionsebene inklusive Optik um den Knotenpunkt der Optik, für das erste Bild berechnet wird, so dass eine erste virtuelle optische Achse, die als Senkrechte zu der ersten virtuellen Projektionsebene definiert ist, sich durch den Mittelpunkt des erkannten Musters erstreckt. Bevorzugt wird entsprechend weiteren Ausführungsbeispielen zur Ausrichtung eine zweite virtuelle Positionsebene, durch Drehung der tatsächlichen zweiten Projektions- ebene inklusive Optik um den Knotenpunkt der Optik, für das weitere Bild berechnet, so dass eine zweite virtuelle optische Achse, die als Senkrechte zu der zweiten virtuellen Projektionsebene definiert ist, sich durch den Mittelpunkt des Kantenmusters erstreckt. Durch die Nutzung der oben beschriebenen virtuellen Projektionsebenen, ist es möglich nachfolgend basierend auf dem ersten und dem weiteren Bildern jeweils zwei mögliche 3D- Blickvektoren zu berechnen von denen jeweils einer (im Idealfall exakt, in der Realität mit geringer Abweichung) dem tatsächlichen 3 D-Blickvektor entspricht. According to further exemplary embodiments, the orientation calculation is carried out by calculating a first virtual projection plane, by rotation of the actual first projection plane including optics around the nodal point of the optics, for the first image, such that a first virtual optical axis perpendicular to the first virtual plane Projection level is defined, extends through the center of the recognized pattern. According to further exemplary embodiments, a second virtual positional plane is calculated for the further image by rotation of the actual second projection plane including optics around the nodal point of the optics, so that a second virtual optical axis which is perpendicular to the second virtual projection plane is defined, extends through the center of the edge pattern. By using the virtual projection levels described above, it is possible to subsequently calculate two possible 3D view vectors based on each of the first and the further pictures, of which one (ideally, exactly, in reality with little deviation) corresponds to the actual 3 D view vectors. Look vector corresponds.
Entsprechend weiteren Ausführungsbeispielen kann der 3 D-Blickvektor durch einen Satz von Gleichungen beschrieben werden, wobei jede Gleichung eine geometrische Beziehung der jeweiligen Achsen und der jeweiligen virtuellen Projektionsebene gegenüber dem SD- Blickvektor beschreibt. Bezogen auf die erste virtuelle Projektionsebene kann durch eine erste Gleichung auf Basis der Bilddaten des ersten Satzes der 3 D-Blickvektor beschrieben werden, wobei zwei Lösungen der ersten Gleichung möglich sind. Eine zweite Gleichung auf Basis der Bilddaten des zweiten Satzes führt für den 3D-Blickvektor bezogen auf die zweite virtuelle Projektionsebene zu zwei (weiteren) Lösungen. Der tatsächliche SD- Blickvektor kann durch eine gewichtete Mittelung aus je einem Lösungsvektor der erste und einem Lösungsvektor der zweiten Gleichung berechnet werden. Diese beiden Vektoren sind dadurch definiert, dass ihre Differenz kleiner als eine Differenz zwischen anderen Kombinationen aus den Lösungsvektoren der beiden Gleichungen ist, so dass das System aus Gleichungen, umfassend die erste und die zweite Gleichung eine eindeutige Lösung hat. Der oben genannte Lösungsvektor der ersten Gleichung ist mit einem Toleranzbereich von beispielsweise plus/minus 10 % dem oben genannten Lösungsvektor der zweiten Glci- chung gleich. According to further embodiments, the 3-D gaze vector may be described by a set of equations, each equation describing a geometric relationship of the respective axes and the respective virtual projection plane from the SD gaze vector. With reference to the first virtual projection plane, a first equation based on the image data of the first set can be used to describe the 3 D view vector, two solutions of the first equation being possible. A second equation based on the image data of the second set results in two (further) solutions for the 3D view vector with respect to the second virtual projection plane. The actual SD view vector can be calculated by a weighted average of one solution vector each of the first and one solution vector of the second equation. These two vectors are defined by their difference being smaller than a difference between others Combinations of the solution vectors of the two equations is such that the system of equations comprising the first and second equations has a unique solution. The abovementioned solution vector of the first equation is equal to the abovementioned solution vector of the second equation, with a tolerance range of, for example, plus / minus 10%.
Entsprechend weiteren Austührungsbeispielen kann der 3D-Bildanalysator in eine Verarbeitungseinheit implementiert sein, die beispielsweise einen selektiv-adaptiven Datenprozessor umfasst. According to further exemplary embodiments, the 3D image analyzer may be implemented in a processing unit comprising, for example, a selective-adaptive data processor.
Entsprechend weiteren Ausführungsbeispielen kann der 3D-Bildanalysator Teil eines Bildanalysesystems zum Verfolgen einer Pupille sein. Ein derartiges Bildanalysesystem umfasst typischerweise mindestens einen Hough-Pfad für zumindest eine Kamera oder bevorzugt zwei Hough-Pfade für zumindest zwei Kameras. Ferner kann jeder Hough-Pfad einen Pre-Prozessor sowie eine Hough-TransfonTiationseinrichtung umfassen. Zusätzlich zu dieser Hough-Transformationseinrichtung auch noch eine Einrichtung zum Analysieren des erfassten Musters und zum Ausgeben eines Satzes von Bilddaten inkludiert sein. According to further embodiments, the 3D image analyzer may be part of an image analysis system for tracking a pupil. Such an image analysis system typically comprises at least one Hough path for at least one camera or preferably two Hough paths for at least two cameras. Further, each Hough path may comprise a pre-processor as well as a Hough-TransfonTiation device. In addition to this Hough transform means, it may also include means for analyzing the detected pattern and outputting a set of image data.
Entsprechend weiteren Ausführungsbeispielen wird ein Verfahren zur Bestimmung einer Blickrichtung oder Blickgeraden geschaffen. Das Verfahren umfasst die Schritte des Empfangens von zumindest eines ersten Satzes von Bilddaten, der auf Basis eines ersten Bildes bestimmt wird, und eines weiteren Satzes von Informationen, der auf Basis des ersten Bildes oder eines weiteren Bildes bestimmt wird, wobei das erste Bild ein Musters eines dreidimensionalen Objekts aus einer ersten Perspektive in eine erste Bildebene abbildet und wobei der weitere Satz ein weiteres Bild mit einem uster enthält, das sich durch die Abbildung des gleichen dreidimensionalen Objekts aus einer weiteren Perspektive in eine weitere Bildebene ergibt, oder eine Infomiation umfasst, welche eine Beziehung zwischen mindestens einem Punkt des dreidimensionalen Objekts und der ersten Bildebene beschreibt. Das Verfahren umfasst ferner den Schritt des Berechnens einer Position des Mus- ters in einem dreidimensionalen Raum basierend auf dem ersten Satz, einem weiteren Satz, der auf Basis des weiteren Bildes bestimmt wird, und einer geometrischen Beziehung zwischen den Perspektiven des ersten und des weiteren Bildes oder Berechnen der Position des Musters in dem dreidimensionalen Raum basierend au dem ersten Satz und einer statistisch ermittelten Beziehung zwischen mindestens zwei charakteristischen Merkmalen zueinander in dem ersten Bild oder Berechnen der Position des Musters in dem dreidimensionalen Raum basierend auf dem ersten Satz und einer Lagebeziehung zwischen mindestens einem Punkt des dreidimensionalen Objektes und der ersten Bildebene. In einem dritten Schritt wird ein D-Blickvektor berechnet, gemäß dem das Muster in dem dreidimen- sionalen Raum ausgerichtet ist, wobei die Berechnung basierend auf dem ersten Satz von Bilddaten und dem weiteren Satz von Informationen und auf der berechneten Position des Musters erfolgt. Entsprechend weiteren Ausführungsbeispielen kann dieses Verfahren durch einen Computer ausgeführt werden. Insofern bezieht sich ein weiteres Ausführungsbeispiel auf ein Computer-lesbares digitales Speichermedium mit einem Programmcode zur Durchführung des obigen Verfahrens. According to further embodiments, a method for determining a line of sight or straight line is provided. The method comprises the steps of receiving at least a first set of image data determined based on a first image and another set of information determined based on the first image or another image, the first image being a pattern of a three-dimensional object from a first perspective into a first image plane and wherein the further sentence contains a further image with a uster, resulting from the image of the same three-dimensional object from a further perspective in another image plane, or comprises an infomiation, which describes a relationship between at least one point of the three-dimensional object and the first image plane. The method further includes the step of calculating a position of the pattern in a three-dimensional space based on the first sentence, another sentence determined based on the further image, and a geometric relationship between the perspectives of the first and the further images or calculating the position of the pattern in the three-dimensional space based on the first set and a statistically determined relationship between at least two characteristic features to each other in the first image or calculating the position of the pattern in the three-dimensional space based on the first set and a positional relationship between at least a point of the three-dimensional object and the first image plane. In a third step, a D-view vector is calculated according to which the pattern in the three-dimensional is aligned based on the first set of image data and the further set of information and on the calculated position of the pattern. According to further embodiments, this method may be performed by a computer. In this respect, another embodiment relates to a computer-readable digital storage medium having a program code for carrying out the above method.
Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend anhand der beiliegenden Zeichnungen erläutert. Es zeigen: Embodiments of the present invention will be explained below with reference to the accompanying drawings. Show it:
Fig. 1 ein schematisches Blockschaltbild eines 3D-Bildanalysators gemäß einem Ausführungsbeispiel; 1 is a schematic block diagram of a 3D image analyzer according to an embodiment;
Fig. 2a ein schematisches Blockschaltbild eines Ho ugh- Prozessors mit einem Pre-FIG. 2a shows a schematic block diagram of a high-quality processor with a
Prozessor und einer Hough-Transformationseinrichtung gemäß einem Ausfuhrungsbeispiel; Processor and a Hough transformation device according to an exemplary embodiment;
Fig. 2b ein schematisches Blockschaltbild eines Pre-Prozessors gemäß einem Ausfuhrungsbeispiel; 2b shows a schematic block diagram of a pre-processor according to an exemplary embodiment;
Fig. 2c eine schematische Darstellung von Hough- Kernen zur Detcktion von Gera- den (abschnitten); FIG. 2c is a schematic representation of Hough cores for the detection of straight lines (sections); FIG.
Fig. 3a ein schematisches Blockschaltbild einer möglichen Implementierung einer3a is a schematic block diagram of a possible implementation of a
Hough-Transformationseinrichtung gemäß einem Ausrührungsbeispiel; Fig. 3b einzelne Zelle einer Verzögerungsmatrix entsprechend einem Ausführungsbeispiel; Hough transform means according to an embodiment example; 3b shows a single cell of a delay matrix according to an embodiment;
Fig. 4a-d ein schematisches Blockschaltbild einer weiteren Implementierung einer Hough-Transformationseinrichtung entsprechend einem Ausfuhrungsbeispiel; 4a-d is a schematic block diagram of a further implementation of a Hough transformation device according to an exemplary embodiment;
Fig. 5a ein schematisches Blockschaltbild einer stereoskopischen Kameraanordnung mit zwei Bildprozessoren und einer Nachverarbeitungseinrichtung, wobei jeder der Bild-Prozessoren einen Hough-Prozessor gemäß Ausführungsbeispielen aufweist; Fig. 5b eine exemplarische Aufnahme eines Auges zur Illustration einer mit der5a is a schematic block diagram of a stereoscopic camera arrangement with two image processors and a post-processing device, wherein each of the image processors has a Hough processor according to embodiments; Fig. 5b shows an exemplary recording of an eye to illustrate a with the
Vorrichtung aus Fig. 5a durführbaren Blickwinkcldetektion und zur Erläuterung der Blickwinkeldetektion im monoskopischen Fall; FIG. 5a shows a device for viewing angle detection and for explaining the viewing angle detection in a monoscopic case; FIG.
Fig. 6-7 weitere Darstellungen zur Erläuterung von zusätzlichen Ausführungsbeispielen bzw. Aspekten; Fig. 6-7 further illustrations for explaining additional embodiments or aspects;
Fig. 8a-c schematische Darstellungen von optischen Systemen mit den dazugehörigen Projektionsebenen; und 8a-c are schematic representations of optical systems with the associated projection planes; and
Fig. 8d schematische Darstellung einer Ellipse mit den zu ihrer Beschreibung genutzten Parametern Fig. 8e schematische Darstellung der Abbildung eines Kreises im 3D-Raum als8d schematic representation of an ellipse with the parameters used for its description FIG. 8e a schematic representation of the illustration of a circle in 3D space as
Ellipse auf eine Ebene zur Erläuterung der Berechnung der Ausrichtung des Kreises in 3D- Raum basierend auf den Parametern der Ellipse; und Ellipse on a plane explaining the calculation of the orientation of the circle in 3D space based on the parameters of the ellipse; and
Fig. 9a-9i weitere Darstellungen zur Erläuterung von Hintergrundwissen für die Hough-Transformationseinrichtung. 9a-9i further illustrations for explaining background knowledge for the Hough transformation device.
Nachfolgend werden Ausführungsbeispiel e der vorliegenden Erfindung anhand der Figuren im Detail erläutert. Es sei darau f hingewiesen, dass gleiche Elemente mit gleichen Be- zugszeichen versehen sind, so dass die Beschreibung derer aufeinander angewendet werden kann bzw. austauschbar ist. Hereinafter, embodiment e of the present invention will be explained in detail with reference to the drawings. It should be pointed out that like elements are given the same reference numerals, so that the description of them can be applied to each other or is interchangeable.
Fig. 1 zeigt einen 3D-Bildanalysator 400 mit einer Positionsberechnungseinrichtung 404 und einer Ausrichtungsberechnungscinriehtung 408. Der 3D-Bildanalysator ist dazu aus- gebildet, um basierend auf mindestens einem Satz von Bilddaten, bevorzugt aber auf Basis von einem ersten Satz und einem zweiten Satz von Bilddaten eine Blickrichtung in einem 3D-Raum (also eine 3 D-Blickrichtung) zu bestimmen. Zusammen mit einem ebenfalls ermittelten Punkt auf der Blickgeraden (z. B. dem Pupillen- oder Irismittelpunkt im SD- Raum) ergibt sich aus diesem Punkt und der oben genannten Blickrichtung die 3D- Blickgerade, die auch als Basis für die Berechnung des 3D-Blickpunktes genutzt werden kann. Das Grundverfahren bei der Bestimmung umfasst die drei Basisschritte: Empfangen von zumindest dem ersten Satz von Bilddaten, der auf Basis eines ersten Bildes 802a bestimmt wird (vgl. Fig. 8a) und eines weiteren Satzes von Informationen, der auf Basis des ersten Bildes 802a oder eines weiteren Bildes 802b bestimmt wird. Hierbei bildet das erste Bild 802a ein Muster 804a eines dreidimensionalen Objekts 806a (vgl. Fig. 8b) aus einer ersten Perspektive in eine erste Bildebene ab. Der weitere Satz umfasst typischerweise das weitere Bild 802b. 1 shows a 3D image analyzer 400 having a position calculator 404 and an alignment calculator 408. The 3D image analyzer is configured to be based on at least one set of image data, but preferably based on a first set and a second set of image data Image data to determine a viewing direction in a 3D space (ie, a 3 D viewing direction). Together with a likewise determined point on the line of sight (eg the pupil or iris midpoint in the SD space), the 3D line of sight, which also serves as the basis for the calculation of the 3D viewpoint, results from this point and the viewing direction mentioned above can be used. The basic method of determination includes the three basic steps of receiving at least the first set of image data determined based on a first image 802a (see Fig. 8a) and another set of information based on the first image 802a or of another picture 802b. Here, the first image 802a maps a pattern 804a of a three-dimensional object 806a (see FIG. 8b) from a first perspective into a first image plane. The further set typically includes the further image 802b.
In weiteren Ausfuhrungsbeispielen kann der weiter Satz alternativ (statt konkreter Bildda- ten) auch eine oder mehrere der folgenden Information enthalten, eine Lagebeziehung zwischen einem Punkt P P des dreidimensionalen Objekts 806a und der ersten Bildebene 802a, Lagebeziehungen zwischen mehreren charakteristischen Punkten zueinander im Gesicht oder Auge, Lagebeziehungen von charakteristischen Punkten im Gesicht oder Auge bezogen auf den Sensor, die Lage und Ausrichtung des Gesichtes. In further exemplary embodiments, the further sentence may alternatively (instead of concrete image data) also contain one or more of the following information, a positional relationship between a point PP of the three-dimensional object 806a and the first image plane 802a, positional relationships between a plurality of characteristic points to each other in the face or eye , Positional relationships of characteristic points on the face or eye with respect to the sensor, the position and orientation of the face.
Im nächsten Schritt wird die Position des Musters 806a in dem dreidimensionalen Raum basierend auf dem ersten Satz dem weiteren Satz und einer geometrischen Beziehung zwischen den Perspektiven des ersten und des zweiten Bildes 802a und 802b berechnet. Alternativ kann die Berechnung der Position des Musters 806a in dem dreidimensionalen Raum basierend auf dem ersten Satz und einer statistisch ermittelten Beziehung zwischen mindestens zwei charakteristischen Merkmalen in dem ersten Bild 804a zueinander berechnet werden. Der letzte Schritt dieses Grundverfahrens bezieht sich auf das Berechnen des SD- Blickvektors, gemäß dem das Muster 804a und 804b in dem dreidimensionalen Raum ausgerichtet ist. Die Berechnung erfolgt basierend auf dem ersten Satz und dem zweiten Satz. In the next step, the position of the pattern 806a in the three-dimensional space is calculated based on the first set of the wider set and a geometric relationship between the perspectives of the first and second images 802a and 802b. Alternatively, the calculation of the position of the pattern 806a in the three-dimensional space based on the first set and a statistically determined relationship between at least two characteristic features in the first image 804a may be calculated to each other. The last step of this basic method relates to computing the SD view vector according to which the pattern 804a and 804b are aligned in three-dimensional space. The calculation is based on the first sentence and the second sentence.
Ein ausführliches Berechnungsbeispiel für diese Blickrichtungsberechnung wird nachfolgend anhand der Fig. 8a bis 8c beschrieben. A detailed calculation example for this viewing direction calculation will be described below with reference to FIGS. 8a to 8c.
Berechnung des Pupillenmittelpunktes Calculation of the pupil center
Wie bereits beschrieben, entsteht bei der Abbildung der kreisförmigen Pupille 806a durch die Kameraobjektive 808a und 808b auf den Bildsensoren 802a und 802b jeweils eine elliptische Pupillenprojektion (vgl. Fig. 8a). Der Mittelpunkt der Pupille wird auf beiden Sensoren 802a und 802b und somit auch in den entsprechenden Kamerabildern immer als Mittelpunkt EMP K1 und EMP^ der Ellipse abgebildet. Daher kann durch stereoskopische Rückprojektion dieser beiden Ellipsenmittelpunkte EMP KI und E P K2 mit Hilfe des Objektivmodells der 3 D-Pupillenmittelpunkt bestimmt werden. Optionale Voraussetzung dazu ist eine idealerweise zeitsynchrone Bildaufnahme, damit die von beiden Kameras abgebil- deten Szenen identisch sind und somit der Pupillenmittelpunkt an der gleichen Position erfasst wurde. As already described, when the circular pupil 806a is imaged by the camera lenses 808a and 808b, an elliptical pupil projection is produced on the image sensors 802a and 802b (see FIG. The center of the pupil is always imaged on both sensors 802a and 802b and thus also in the corresponding camera images as the center E MP K1 and EMP ^ of the ellipse. Therefore, by stereoscopic backprojection of these two ellipse centers EM P KI and E P K2 with the aid of the objective model, the 3 D pupil center point can be determined. An optional prerequisite for this is an ideally time-synchronized image recording, so that the images recorded by both cameras scenes are identical and thus the pupil center was detected at the same position.
Zunächst muss für jede Kamera der Rückprojektionsstrahl RS des Ellipsenmittelpunktes berechnet werden, welcher entlang des Knotenpunktstrahls zwischen dem Objekt und dem objektsei tigen Knotenpunkt (Hl) des optischen System verläuft (Fig. 8a). First, for each camera, the backprojection beam RS of the ellipse center has to be calculated, which extends along the node beam between the object and the object node (Hl) of the optical system (FIG. 8a).
RS(t) - RSo + t RS-RS (t) - RSo + t RS-
(AI) (AI)
Dieser Rückprojektionsstrahl wird durch Gleichung (AI) definiert. Er besteht aus einem Anfangspunkt RSo und einem normierten Richtungsvektor RS^ , welche sich im genutztenThis back projection beam is defined by equation (AI). It consists of a starting point RSo and a normalized directional vector RS ^, which are used in the
Objektivmodell (Fig. 8b) durch die Gleichungen (A2) und (A3) aus den beiden Hauptpunkten H\ und H2 des Objektivs sowie dem Ellipsenmittelpunkt EMP in der Sensorebene ergeben. Dazu müssen alle drei Punkte (Hi, H2 und EMP) im Eyetrack erKoordinatensystem vorliegen. Lens model (Fig. 8b) by equations (A2) and (A3) resulting from the two principal points H \ and H2 of the lens and the ellipse center EMP in the sensor plane. All three points (Hi, H 2 and EMP) must be in the eye track coordinate system.
RS0 = H\ RS 0 = H
" \ H - F I "\ H - F I
Die Hauptpunkte lassen sich mit den Gleichungen The main points can be with the equations
H2 = K() + /> H 2 = K () + />
direkt aus den Objektiv- und Kameraparametern berechnen (Fig. 8b), Ko der Mittelpunkt der Kamerasensoreben ist und K„ der Normalvektor der Kamerasensorebene. Der SD- Ellipsenmittelpunkt im Kamerakoordinatensystem lässt sich aus den zuvor bestimmten Ellipsenmittelpunktparametern .Y„, und ym , welche in Bildkoordinaten vorliegen, mittels Gleichung SpxGrCalculate directly from the lens and camera parameters (Fig. 8b), Ko is the center of the camera sensor plane and K "is the normal vector of the camera sensor plane. The SD ellipse center point in the camera coordinate system can be determined from the previously determined ellipse center point parameters .Y ", and y m , which are present in image coordinates, by means of an equation SpxGr
errechnen. Dabei ist Pßiid die Auflösung des Kamerabildes in Pixeln, S0ffset ist die Position auf dem Sensor an der begonnen wird das Bild auszulesen, Sres ist die Auflösung des Sensors und S xGr ist die Pixelgröße des Sensors. calculate. Pssiid is the resolution of the camera image in pixels, S 0ffse t is the position on the sensor at which the image is started to be read out, S res is the resolution of the sensor and S xGr is the pixel size of the sensor.
Der gesuchte Pupillenmittelpunkt ist im Idealfall der Schnittpunkt der beiden Rückprojektionsstrahlen RSK1 und RS1^2 . Mit praktisch ermittelten Modellparametern und Ellipsenmittelpunkten ergibt sich allerdings schon durch minimale Messfehler kein Schnittpunkt der Geraden mehr im 3-D-Raum. Zwei Geraden in dieser Konstellation, welche sich weder schneiden noch parallel verlaufen, werden in der Geometrie windschiefe Geraden genannt. Im Falle der Rückprojektion kann angenommen werden, dass die beiden windschiefen Geraden jeweils sehr nahe am Pupillenmittelpunkt vorbei verlaufen. Dabei liegt der Pupillenmittelpunkt an der Stelle ihres geringsten Abstands zueinander auf halber Strecke zwischen den beiden Geraden. The desired pupil center is ideally the intersection of the two rear projection beams RS K1 and RS 1 ^ 2 . With practically determined model parameters and ellipse centers, however, even minimal measurement errors do not result in an intersection of the straight lines more in 3-D space. Two straight lines in this constellation, which neither intersect nor run parallel, are called skewed straight lines in geometry. In the case of backprojection, it can be assumed that the two skewed straight lines each run very close to the pupil center. In this case, the pupil center is at the point of their smallest distance to each other halfway between the two lines.
Der kürzeste Abstand zwischen zwei windschiefen Geraden wird von einer senkrecht zu beiden Geraden stehenden Verbindungsstrecke angegeben. Der Richtungsvektor nSt The shortest distance between two skewed straight lines is indicated by a connecting line perpendicular to both straight lines. The direction vector n St
Der senkrecht auf beiden Rückprojektionsstrahlen stehenden Strecke kann entsprechend Gleichung (A4) als Kreuzprodukt ihrer Richtungsvektoren berechnet werden. The distance perpendicular to both rear projection beams can be calculated according to equation (A4) as a cross product of their direction vectors.
(A4)  (A4)
Die Lage der kürzesten Verbindungsstrecke zwischen den Rückprojektionsstrahlen wird durch Gleichung (A5) definiert. Durch Einsetzen von RSK'(s) , RSK2(t ) und nSt ergibt sich daraus ein Gleichungssystem, aus welchem s , / und u berechnet werden können. The location of the shortest link between the back projection beams is defined by Equation (A5). Using RS K '(s), RS K2 (t) and n St results in a system of equations from which s, / and u can be calculated.
RSK''(.s) + u nSt RSK2{t) RS K '' (.s) + un St RS K2 {t)
(A3)  (A3)
Der gesuchte Pupillenmittelpunkt PMP, welcher auf halber Strecke zwischen den Rückprojektionsstrahlen liegt, ergibt sich folglich aus Gleichung (A6) nach dem Einsetzen der für s und u berechneten Werte. The sought pupil center P MP , which lies halfway between the back projection beams, thus results from equation (A6) after the onset of the values calculated for s and u.
PM!> = RS (A6) P M! > = RS (A6)
Als Indikator für die Genauigkeit des berechneten Pupillenmittelpunktes PMP kann zusätzlich die minimale Distanz CIRS zwischen den Rückprojektionsstrahlen berechnet werden. Je genauer die Modellparameter und Ellipsenmittelpunktc waren, welche für die bisherigen Berechnungen genutzt wurden, desto geringer ist df- . d RS = I "» I (A7) In addition, as an indicator of the accuracy of the calculated pupil center PMP, the minimum distance CIR S between the backprojection beams can be calculated. The more accurate the model parameters and ellipse center point c were, which were used for the previous calculations, the lower is d f -. d R S = I "» I (A7)
Der berechnete Pupillenmittelpunkt ist einer der beiden Parameter, welcher die vom Eye- tracker zu ermittelnde Blickgerade des Auges bestimmen. Außerdem wird er zur Berechnung des Blickrichtungsvektors P benötigt, welche nachfolgend beschrieben wird. The calculated pupil center is one of the two parameters that determine the eye's eye's line of sight. In addition, it is needed to calculate the line of sight vector P, which will be described below.
Der Vorteil dieser Methode zur Berechnung des Pupillenmittelpunktes besteht darin, dass die Abstände der Kameras zum Auge nicht fest im System abgespeichert sein müssen. Dies ist z. B. bei dem in der Patentschrift DE 10 2004 046 617 AI beschriebenen Verfahren erforderlich. The advantage of this method for calculating the pupillary center is that the distances between the cameras and the eye need not be stored permanently in the system. This is z. B. in the method described in the patent DE 10 2004 046 617 AI required.
Berechnung des Blickrichtungsvektors Calculation of the line of sight vector
Der zu bestimmende Blickrichtungsvektor P- entspricht dem Normalvektor der kreisförmigen Pupillenfläche und ist somit durch die Ausrichtung der Pupille im 3-D-Raum festge- legt. Aus den Ellipsenparametern, welche für jede der beiden ellipsenförmigen Projektionen der Pupille auf den Kamerasensoren bestimmt werden können, lassen sich die Lage und Ausrichtung der Pupille ermitteln. Hierbei sind die Längen der beiden Halbachsen sowie die Rotationswinkel der projizierten Ellipsen charakteristisch für die Ausrichtung der Pupille bzw. die Blickrichtung relativ zu den Kamerapositionen. The sight line vector P- to be determined corresponds to the normal vector of the circular pupil surface and is thus defined by the orientation of the pupil in the 3-D space. The position and orientation of the pupil can be determined from the ellipse parameters which can be determined for each of the two ellipse-shaped projections of the pupil on the camera sensors. Here, the lengths of the two half-axes and the rotation angle of the projected ellipses are characteristic of the orientation of the pupil or the viewing direction relative to the camera positions.
Ein Ansatz zur Berechnung der Blickrichtung aus den Ellipsenparametern und fest im Eye- tracking-System abgespeicherten Abständen zwischen den Kameras und dem Auge wird z. B. in der Patentschrift DE 10 2004 046 617 AI beschrieben. Wie in Fig. 8c dargestellt, geht dieser Ansatz von einer Parallelprojektion aus, wobei die durch die Sensornormale und den Mittelpunkt der auf den Sensor projizierten Pupille definierte Gerade durch den Pupillenmittelpunkt verläuft. Dazu müssen die Abstände der Kameras zum Auge vorab bekannt und fest im Eyetracking-System abgespeichert sein. Das bei dem hier vorgestellten Ansatzes verwendete Modell des Kameraobjektivs, welches das Abbildungsverhalten eines realen Objektivs beschreibt, findet hingegen eine perspektivische Projektion des Objekts auf den Bildsensor statt. Dadurch kann die Berechnung des Pupillenmittelpunktes erfolgen und die Abstände der Kameras zum Auge müssen nicht vorab bekannt sein, was eine der wesentlichen Neuerungen gegenüber der oben genannten Patentschrift darstellt. Durch die perspektivische Projektion ergibt sich die Form der auf dem Sensor abgebildeten Pupillenellipse allerdings im Gegensatz zur Parallelprojektion nicht allein durch die Neigung der Pupille gegenüber der Sensorfläche. Die Auslenkung δ des Pupillenmittelpunktes von der optischen Achse des Kameraobjektivs hat, wie in Fig. 8b skizziert, ebenfalls einen Einfluss auf die Form der Pupillenprojektion und somit auf die daraus ermittelten Ellipsenparameter. An approach for calculating the viewing direction from the ellipse parameters and fixed distances in the eye tracking system between the cameras and the eye is z. As described in the patent DE 10 2004 046 617 AI. As illustrated in FIG. 8c, this approach assumes a parallel projection, wherein the straight line defined by the sensor normal and the center point of the pupil projected onto the sensor runs through the pupil center. For this purpose, the distances of the cameras to the eye must be known in advance and permanently stored in the eye-tracking system. By contrast, the model of the camera lens used in the approach presented here, which describes the imaging behavior of a real objective, is replaced by a perspective projection of the object onto the image sensor. As a result, the calculation of the pupil center can be made and the distances of the cameras to the eye need not be known in advance, which is one of the significant innovations over the above-mentioned patent. Due to the perspective projection, however, the shape of the pupil ellipse imaged on the sensor does not result solely from the inclination of the pupil relative to the sensor surface, in contrast to the parallel projection. The deflection δ of the pupil center from the optical axis of the camera lens, as sketched in FIG. 8b, likewise has an influence on the shape of the pupil projection and thus on the ellipse parameters determined therefrom.
Im Gegensatz zur Skizze in Fig. 8b ist der Abstand zwischen Pupille und Kamera mit mehreren hundert Millimetern sehr groß gegenüber dem Pupillenradius, welcher zwischen 2 mm und 8 mm liegt. Daher wird die Abweichung der Pupillenprojektion von einer idealen Ellipsenform, welche bei einer Neigung der Pupille gegenüber der optischen Achse entsteht, sehr gering und kann vernachlässigt werden. In contrast to the sketch in Fig. 8b, the distance between pupil and camera with several hundred millimeters is very large compared to the pupil radius, which is between 2 mm and 8 mm. Therefore, the deviation of the pupil projection from an ideal ellipse shape, which arises at an inclination of the pupil with respect to the optical axis, becomes very small and can be neglected.
Um den Blickrichtungsvektor Pn berechnen zu können, muss der Einfluss des Winkels δ auf die Ellipsenparameter eliminiert werden, so dass die Form der Pupillenprojektion allein durch die Ausrichtung der Pupille beeinflusst wird. Dies ist immer dann gegeben, wenn der Pupillenmittelpunkt PMP direkt in der optischen Achse des Kamerasystems liegt. Daher kann der Einfluss des Winkels δ beseitigt werden, indem die Pupillenprojektion auf dem Sensor eines virtuellen Kamerasystems vK berechnet wird, dessen optische Achse direkt durch den zuvor berechneten Pupillenmittelpunkt PMP verläuft, wie in Fig. 8c dargestellt. In order to be able to calculate the line of sight vector P n , the influence of the angle δ on the ellipse parameters must be eliminated, so that the shape of the pupil projection is influenced solely by the orientation of the pupil. This is always the case when the pupil center PMP lies directly in the optical axis of the camera system. Therefore, the influence of the angle δ can be eliminated by calculating the pupil projection on the sensor of a virtual camera system vK whose optical axis passes directly through the previously calculated pupil center PMP, as shown in Fig. 8c.
Die Lage und Ausrichtung eines solchen virtuellen Kamerasystems 804a' (vK in Fig. 8c) lässt sich aus den Parametern des originalen Kamerasystems 804 a (K in Fig. 8b) durch Drehung um dessen objektseitigen Hauptpunkt Hj berechnen. Dieser entspricht dadurch gleichzeitig dem objektseitigen Hauptpunkt vllj des virtuellen Kamerasystems 804a'. Somit sind die Richtungsvektoren der Knotenpunktstrahlen der abgebildeten Objekte vor und hinter dem virtuellen optischen System 808c' identisch zu denen im originalen Kamerasystem. Alle weiteren Berechnungen zur Bestimmung des Blickrichtungsvektors erfolgen im Eyetracker-Koordinatensystem. The position and orientation of such a virtual camera system 804a '(vk in Fig. 8c) can be calculated from the parameters of the original camera system 804a (K in Fig. 8b) by rotation about its object-side principal point Hj. At the same time, this corresponds to the object-side main point vllj of the virtual camera system 804a '. Thus, the direction vectors of the node beams of the imaged objects in front of and behind the virtual optical system 808c 'are identical to those in the original camera system. All further calculations for determining the line of sight vector take place in the eye tracker coordinate system.
Der normierte Normalvektor vK n der virtuellen Kamera vK ergibt sich folgendermaßen: PMP ~ Hl The normalized normal vector vK n of the virtual camera vK is as follows: P MP ~ H l
νΑ', =  νΑ ', =
MP H, MP H,
(A8)  (A8)
Für das weitere Vorgehen ist es erforderlich, die Rolationwinkel um die x- Achse um die y- Achse ( vK ) und um die z- Achse ( vK ) des Eyetracker-Koordinatensystems zu berechnen um die der Einheitsvektor der z-Richtung des Eyetracker-Koordinatensystems um verschiedene Achsen des Eyetracker-Koordinatensystems gedreht werden muss um den Vektor vKti zu erhalten. Durch Drehung des Einheitsvektor der x-Riehtung sowie desFor the further procedure, it is necessary, the Rolationwinkel around the x-axis around the y-axis (vK) and around the z-axis (vK) of the eyetracker coordinate system by which the unit vector of the z-direction of the eyetracker coordinate system has to be rotated about different axes of the eye tracker coordinate system by the vector vK ti to obtain. By rotation of the unit vector of the x-direction and the
Einheitsvektors der y-Richtung des Eyetracker-Koordinatensystems um die Winkel vK(j , νΚφ und νΚψ können die Vektoren vKx und vK - berechnet werden, welche die x- und y-Unit vectors of the y-direction of the eyetracker coordinate system by the angles vK (j , νΚ φ and νΚ ψ the vectors vK x and vK - can be calculated, which are the x- and y-
Achse des virtuellen Sensors im Eyetracker-Koordinatensystem angeben. Specify the axis of the virtual sensor in the Eyetracker coordinate system.
Um die Lage des virtuellen Kamerasystems 804a' (Fig. 8c) zu erhalten, muss dessen Ortsvektor bzw. Koordinatenursprung VKQ, welcher gleichzeitig der Mittelpunkt des Bildsensors ist, mittels Gleichung (A9) so berechnet werden, dass er im Knotenpunktstrahl des Pupillenmittelpunktes PMP liegt. In order to obtain the position of the virtual camera system 804a '(Fig. 8c), its location vector or coordinate origin VKQ, which is also the center of the image sensor, must be calculated by equation (A9) to be in the node beam of the pupil center PMP.
(A9) (A9)
Die dazu benötigte Distanz d zwischen den Hauptpunkten sowie die Entfernung b zwischen der Hauptebene 2 und der Sensorebene müssen dazu bekannt sein oder z. B. mit einem Versuchsaufbau experimentell ermittelt werden. The required distance d between the main points and the distance b between the main plane 2 and the sensor plane must be known or z. B. be determined experimentally with a test setup.
Weiterhin ergibt sich die Lage des bildseitigen Hauptpunktes aus Gleichung (A 10). vH2 = vHl - d- vKn Furthermore, the position of the image-side principal point results from equation (A 10). vH 2 = vH l - d - vK n
(A10) Zur Berechnung der Pupillenprojektion auf dem virtuellen Sensor 804a' werden zunächst Randpunkte RP " der zuvor ermittelten Ellipse auf dem Sensor in Originallage benötigt. (A10) To calculate the pupil projection on the virtual sensor 804a ', edge points RP "of the previously determined ellipse on the sensor in original position are first required.
Diese ergeben sich aus den Randpunkten RP2D der Ellipse im Kamerabild, wobei entsprechend Fig. 8d Ea die kurze Halbachse der Ellipse ist, Eb die lange Halbachse der Ellipse, E und EY die Mittelpunktkoordinaten der Ellipse und Ea der Rotationswinkel der Ellipse. Die Lage eines Punktes RP3D im Eyetracker-Koordinatensystem kann durch die Gleichungen (AI 1) bis (AI 4) aus den Parametern der Ellipse E , des Sensors S und der Kamera K berechnet werden, wobei ω die Lage eines Randpunktes RP entsprechend Fig. 8d auf dem Ellipsenumfang angibt. These are the result of the edge points RP 2D of the ellipse in the camera image, corresponding to Fig. 8d E a is the short half-axis of the ellipse, E b is the long half-axis of the ellipse, E and E Y, the center coordinates of the ellipse and E a of the rotation angle of the ellipse , The position of a point RP 3D in the eye tracker coordinate system can be determined by the equations (AI 1) to (AI 4) from the parameters of the ellipse E, the sensor S and the Camera K are calculated, where ω indicates the location of an edge point RP corresponding to Fig. 8d on the ellipse circumference.
(Al l)  (Alles)
(A I 2) (AI 2)
(A13) (A13)
RPSD = Ks + sx - Kx- + tl - Ky-RP SD = Ks + s x - K x - + t l - K y -
(A14) (A14)
Die Richtung eines Knotenpunktstrahls KS im originalen Kamerasystem, welcher einen Pupillenrandpunkt als Ellipsenrandpunkt RP}D auf dem Sensor abbildet, ist gleich der Richtung des Knotenpunktstrahls vKS im virtuellen Kamerasystem, welcher den gleichen Pupillenrandpunkt als Ellipsenrandpunkt RPiD auf dem virtuellen Sensor abbildet. Die Knotenpunktstrahlen der Ellipsenrandpunkte in Fig. 8b und Fig. 8c veranschaulichen dies. Somit haben die beiden Strahlen KS und vKS den gleichen Richtungsvektor, welcher sich aus Gleichung (AI 5) ergibt. Für den Ortsvektor VKSQ des virtuellen sensorseitigen Knotenpunktstrahls vKS gilt immer VKSQ = vHj. The direction of a node beam KS in the original camera system, which images a pupil edge point as ellipse edge point RP } D on the sensor, is equal to the direction of the node beam VCS in the virtual camera system, which images the same pupil edge point as ellipse edge point RP ID on the virtual sensor. The node beams of the ellipse edge points in Figs. 8b and 8c illustrate this. Thus, the two beams KS and vKS have the same directional vector, which results from equation (AI 5). For the position vector VKSQ of the virtual sensor-side node beam vKS, VKSQ = vHj is always valid.
(AI 5)  (AI 5)
Der virtuelle Knotenpunktstrahl und die virtuelle Sensorebene, welche der x-y-Ebene der virtuellen Kamera VÄ.' entspricht, werden in Gleichung (AI 6) gleichgesetzt, wobei sich durch Auflösen nach so und h die Parameter ihres Schnittpunktes ergeben. Mit diesen kann durch Gleichung (A I 7) der Ellipsenrandpunkt in Pixelkoordinaten im Bild der virtuellen Kamera berechnet werden. The virtual node beam and the virtual sensor plane corresponding to the xy plane of the virtual camera VÄ. ' equals, are equated in equation (AI 6), whereby the parameters of their point of intersection result by solving for so and h. With these, by equation (AI 7), the ellipse edge point can be calculated in pixel coordinates in the image of the virtual camera.
v.KS 0 + r, - vKS , = K0 + s2 - K, + t2 - K -v.KS 0 + r, - vKS, = K 0 + s 2 - K, + t 2 - K -
(A16) (A16)
(AI 7)  (AI 7)
Anschließend können aus mehreren virtuellen Randpunkten vRP2D mittels Ellipsenfitting, z. B. mit dem„Direct least Square fitting of ellipses" Algorithmus nach Fitzgibbon et al., die Parameter der in Fig. 8c dargestellten virtuellen Ellipse vE berechnet werden. Dazu werden mindestens sechs virtuelle Randpunkte vRP2D benötigt, welche durch Einsetzen unterschiedlicher ω in Gleichung (A l l ) mit dem oben beschriebenen Weg berechnet werden können. Subsequently, from a plurality of virtual boundary points vRP 2D by elliptical fitting, z. For example, with the Fitzgibbon et al., "Direct Least Square Fitting of ellipses" algorithm, the parameters of the virtual ellipse vE shown in Figure 8c may be calculated, for which at least six virtual boundary points vRP 2D are required, by substituting different ω into equation (A ll) can be calculated by the above-described route.
Die Form der so ermittelten virtuellen Ellipse vE ist nur noch von der Ausrichtung der Pupille abhängig. Außerdem liegt ihr Mittelpunkt immer im Mittelpunkt des virtuellen Sensors und bildet zusammen mit der Sensornormalen, welche der Kameranormalen vK~ entspricht, eine entlang der optischen Achse verlaufende Gerade durch den Pupillenmittel- punkt PMP■ Somit sind die Voraussetzungen erfüllt, um aufbauend auf dem in der Patentschrift DE 10 2004 046 617 AI vorgestellten Ansatz nachfolgend die Blickrichtung zu berechnen. Dabei ist es mit diesem Ansatz nun auch möglich durch die Nutzung des oben beschriebenen virtuellen Kamerasystems die Blickrichtung zu bestimmen, wenn der Pupillenmittelpunkt außerhalb der optischen Achse des realen Kamerasystems liegt, was in rea- len Anwendungen nahezu immer der Fall ist. The shape of the virtual ellipse vE thus determined depends only on the orientation of the pupil. In addition, its center is always in the center of the virtual sensor and, together with the sensor normal, which corresponds to the camera normal vK ~, a line along the optical axis through the pupil center PMP ■ Thus, the prerequisites are met to building on the in the Patent DE 10 2004 046 617 AI presented approach to calculate the line of sight. With this approach it is now also possible to determine the viewing direction by using the virtual camera system described above, when the pupil center lies outside the optical axis of the real camera system, which is almost always the case in real applications.
Wie in Fig. 8e dargestellt, wird die zuvor berechnete virtuelle Ellipse vE nun in der virtuellen Hauptebene 1 angenommen. Da der Mittelpunkt von vE im Mittelpunkt des virtuellen Sensors und somit in der optischen Achse liegt, entspricht der 3 -D-Ellipsemittelpunkt vE 'MP dem virtuellen Hauptpunkt 1 . Er ist auch gleichzeitig der Lotfußpunkt des Pupillcn- mittelpunktcs PMP in der virtuellen Hauptebene 1. Nachfolgend werden nur noch das Achsenverhältnis und der Rotationswinkel der Ellipse vE genutzt. Diese Formparameter von vE können dabei auch bezogen auf die Hauptebene 1 unverändert genutzt werden, da die Ausrichtungen der x- und y-Achse der 2-D-Sensorebene, auf welche sie sich beziehen, der Ausrichtung der 3-D-Sensorebene entsprechen und somit auch der Ausrichtung der Haupt- ebene 1. As shown in FIG. 8e, the previously calculated virtual ellipse vE is now assumed in the main virtual plane 1. Since the center of vE is at the center of the virtual sensor and thus in the optical axis, the 3-D ellipse center vE 'MP corresponds to the virtual principal point 1. At the same time, it is also the lotus point of the pupil center point PMP in the main virtual plane 1. Subsequently, only the axis ratio and the rotation angle of the ellipse vE are used. These shape parameters of vE can also be used unchanged with reference to the principal plane 1, since the orientations of the x and y axes of the 2-D sensor plane to which they relate correspond to the alignment of the 3-D sensor plane and thus also the orientation of main level 1.
Jede Abbildung der Pupille 806a in einem Kamerabild kann durch zwei verschiedene Ausrichtungen der Pupille entstehen. Bei der Auswertung der Pupillenform ergeben sich daher, wie Fig. 8e zeigt, aus den Ergebnissen jeder Kamera zwei virtuelle Schnittpunkte vS der zwei möglichen Blickgeraden mit der virtuellen Hauptebene 1 . Entsprechend der geometri- sehen Verhältnisse in Fig. 8c können die beiden möglichen Blickrichtungen p. , und Ptj , folgendermaßen bestimmt werden. Each image of the pupil 806a in a camera image can be formed by two different orientations of the pupil. In the evaluation of the pupil shape, therefore, as shown in FIG. 8 e, two virtual intersections v S of the two possible straight lines with the main virtual plane 1 result from the results of each camera. According to the geometric see conditions in Fig. 8c, the two possible viewing directions p. , and P tj , are determined as follows.
Der Abstand A zwischen dem bekannten Pupillenmittelpunkt und dem Ellipsenmittelpunkt vE'MPis The distance A between the known pupil center and the ellipse center vE ' MP is
(AI 8)(AI 8)
Daraus lässt sich r mit Gleichung AI 9 bestimmen. From this it is possible to determine r with equation AI 9.
(A I 9) (A I 9)
Die beiden Richtungsvektoren r- , sowie r- 2 , welche von v/// aus auf vSj sowie vSj gerichtet sind, werden analog zu den Gleichungen The two directional vectors r- and r- 2 , which are directed from v /// to vSj and vSj, become analogous to the equations
1 0 0 1 0 0
0 cos(^) - sin(^)  0 cos (^) - sin (^)
0 η(φ) cos(^) cos(( ) 0 sin(< )  0 η (φ) cos (^) cos (() 0 sin (<)
Ma = 0 1 0 M a = 0 1 0
- sm(< ) 0 cos(< ) - sm (<) 0 cos (<)
Μψ -- sin(^) cos(^) 0 Μ ψ - sin (^) cos (^) 0
0 0 1 v' = Me - Mm · Μ„, · v 0 0 1 v '= M e - M m · Μ ", · v
aus und vEa berechnet: out and vEa calculates:
M 0=vK„ ' ^φ=νΚφ ' ^ ψ=νΚψ-90°-M 0 = vK "' ^ φ = νΚ φ ' ^ ψ = νΚ ψ -90 ° -
(A20) Μ, ψ=νΚ ψ+90°-νΕ„ [ι,ο,ο] (A20) Μ, ψ = νΚ ψ + 90 ° -νΕ "[ι, ο, ο]
Anschließend können die beiden virtuellen Schnittpunkte vSj sowie ν5? und daraus die möglichen Blickrichtungen p. , sowie p. , ermittelt werden. S, H , + /· · ·,;., Then the two virtual intersections vSj and ν5 ? and from this the possible directions of view p. , as well as p. , be determined. S, H, + / · · ·; .,
(A22) vS2 = vH, + r - r- . (A22) vS 2 = vH, + r - r-.
(A23) vS, - M, P  (A23) vS, - M, P
1 '^ - Ρ, 1 '^ - Ρ,
(A24) v5,  (A24) v5,
"2 ' ^ - ^,ι " 2 '^ - ^, ι
(A25)  (A25)
Um die tatsächliche Blickrichtung zu bestimmen, werden die möglichen Blickrichtungen der Kamera 1 (P- 1 sowieP^1 ) und der Kamera 2 (Pä*2 sowieP^2 ) benötigt. Von diesen vier Vektoren gibt jeweils einer von jeder Kamera die tatsächliche Blickrichtung an, wobei diese beiden normierten Vektoren im Idealfall identisch sind. Um sie zu identifizieren, werden für alle vier möglichen Kombinationen aus einem Vektor der einen Kamera und einem Vektor der anderen Kamera die Differenzen der jeweils ausgewählten möglichen Blickrichtungsvektoren gebildet. Die Kombination, bei welcher sich die geringste Differenz ergibt, enthält die gesuchten Vektoren. Diese ergeben gemittclt den zu bestimmenden Blickrichtungsvektor Pn . Bei Mittelung muss von einer nahezu zeitgleichen Bildaufnahme ausgegangen werden, damit von beiden Kameras die gleiche Pupillenlagc sowie die gleiche -ausriehtung und somit die gleiche Blickrichtung erfasst wurde. In order to determine the actual viewing direction, the possible viewing directions of the camera 1 (P- 1 and P ^ 1 ) and the camera 2 (P ä * 2 and P ^ 2 ) are required. Of these four vectors, one from each camera indicates the actual viewing direction, and these two normalized vectors are ideally identical. In order to identify them, for all four possible combinations of one vector of one camera and one vector of the other camera, the differences of the respectively selected possible line of sight vectors are formed. The combination which gives the least difference contains the vectors sought. These result in the direction of sight vector P n to be determined. In the case of averaging, an almost simultaneous image acquisition must be assumed so that the same pupil position as well as the same orientation and thus the same line of sight were captured by both cameras.
Als Maß für die Genauigkeit des berechneten Blickrichtungsvektor kann zusätzlich der Winkel w^yj zwischen den beiden gemittelten Vektoren PKl und PK2 , welche die tatsächliche Blickrichtung angeben, berechnet werden. Je geringer w^jist, desto genauer waren die Modellparameter und Ellipsenmittelpunkte, welche für die bisherigen Berechnungen genutzt wurden. wdiff In addition, as a measure of the accuracy of the calculated line of sight vector, the angle w ^ yj between the two averaged vectors P Kl and P K2 , which indicate the actual viewing direction, can be calculated. The smaller w ^ j , the more accurate were the model parameters and ellipse centers, which were used for the previous calculations. w diff
(A26)  (A26)
Die Blickwinkel 6BW und φΒ gegenüber der Normallage der Pupille (PH liegt parallel zur z-Achse des Eyetracker- oordinatensystems) können mit den Gleichungen The viewing angles 6BW and φ Β with respect to the normal position of the pupil (P H is parallel to the z-axis of the eye tracker coordinate system) can be determined by the equations
<Pmv = aresinf- />/ ) und <Pmv = aresinf- / > /) and
berechnet werden. be calculated.
Falls eine systematische Abweichung der Blickrichtung von der optischen Achse des Auges bzw. von der Pupillennormale berücksichtigt werden soll, können die entsprechenden Winkel zu den ermittelten Blickwinkeln 6BW und φΒψ hinzuaddiert werden. Der neue B 1 i ckrichtungsvektor muss dann mittels Gleichung If a systematic deviation of the viewing direction from the optical axis of the eye or of the pupil normal is to be taken into account, the corresponding angles can be added to the determined viewing angles 6BW and φ Β ψ. The new vector direction vector must then be given by means of equation
/y = Μθ=θην, -Μφ=φΒΐψ=0 z aus den neuen Blickwinkeln OBW' und φ^^' und z = [0,0,1 ] berechnet werden. / y = Μ θ = θην , -Μ φ = φΒΐψ = 0 z from the new angles O BW 'and φ ^^' and z = [0,0,1].
Mit dem Blickrichtungsvektor P- ist (neben dem Pupillemittelpunkt PMP aus GleichungWith the line of sight vector P- is (next to the pupillary center point PMP from equation
A6) auch der zweite Parameter der vom 3D-Bildanalysator zu bestimmenden Blickgeraden (LoS) bekannt. Diese ergibt sich entsprechend folgender Gleichung LoS [f) = PMP + t - P . A6) is also the second parameter known from the 3D image analyzer to be determined eye line (LoS). This results according to the following equation LoS [f) = P MP + t -P.
Die Implementierung des oben vorgestellten Verfahrens ist plattformunabhängig, so dass das oben vorgestellte Verfahren auf verschiedenen Hardwareplattformen, wie z.B. einem PC ausgeführt werden kann. The implementation of the above-presented method is platform independent, so the above-presented method can be used on various hardware platforms, e.g. a PC can be executed.
Fig. 2a zeigt einen Hough-Prozessor 100 mit einem Prc-Prozessor 102 und einer Hough- Transformationscinrichtung 104. Der Pre-Prozessor 102 stellt die erste Signalverarbeitungsstufe dar und ist informatorisch an die Hough-Transformationseinrichtung 104 ge- koppelt. Die Hough-Transformationseinrichtung 104 weist einen Verzögerungsfilter 106 auf, der mindestens ein, bevorzugt aber eine Vielzahl von Verzögerungselementen 108a, 108b, 108c, 1 10a, 110b und 1 10c umfassen kann. Die Verzögerungselemente 108a bis 108c und 1 10a bis 1 10c des Verzögerungsfilters 106 sind typischerweise als Matrix, also in Spalten 108 und 1 10 und Zeilen a bis c angeordnet und signaltechnisch miteinander ge- koppelt. Entsprechend dem Ausführungsbeispiel aus Fig. 2a weist zumindest eines der Verzögerungsglieder 108a bis 108c bzw. 110a bis 110c eine einstellbare Verzögerungszeit auf, hier symbolisiert anhand des„+/-"-Symbols. Zur Ansteuerung der Verzögerungselemente 108a bis 108c und 1 10a bis 1 10c bzw. zur Steuerung derselben kann eine separate Ansteuerlogik bzw. ein AnSteuerregister (nicht dargestellt) vorgesehen sein. Diese Steuer- logik steuert die Verzögerungszeit der einzelnen Verzögerungselemente 108a bis 108c bzw. 110a bis 110c über optionale schaltbare Elemente 109a bis 109c bzw. 1 1 la bis 1 1 1c, die beispielsweise einen Multiplexer und einen Bypass umfassen können. Die Hough- Trans format ionsci nri chtung 104 kann ein zusätzliches Konfigurationsregister ( nicht dargestellt) zur initialen Konfiguration der einzelnen Verzögerungselemente 108a bis 108c und 1 10a bis 1 10c umfassen. FIG. 2 a shows a Hough processor 100 with a Prc processor 102 and a Hough transformation device 104. The pre-processor 102 represents the first signal processing stage and is coupled to the Hough transformation device 104 for information purposes. The Hough transformer 104 has a delay filter 106 which may comprise at least one but preferably a plurality of delay elements 108a, 108b, 108c, 110a, 110b and 110c. The delay elements 108a to 108c and 110a to 110c of the delay filter 106 are typically arranged as a matrix, that is to say in columns 108 and 110 and lines a to c, and are coupled together by signal technology. 2a, at least one of the delay elements 108a to 108c or 110a to 110c has an adjustable delay time, here symbolized by the "+/-" symbol, for driving the delay elements 108a to 108c and 110a to 110c A separate control logic or control gate (not shown) may be provided for controlling the same.This control logic controls the delay time of the individual delay elements 108a to 108c or 110a to 110c via optional switchable elements 109a to 109c and 11 la, respectively The Hough transform format 104 may include an additional configuration register (not shown) for initially configuring the individual delay elements 108a-108c and 110a-110c.
Der Pre-Prozessor 102 hat die Aufgabe, die einzelnen Samplcs 1 12a, 1 12b und 1 12c so aufzubereiten, dass diese durch die Hough-Transformationseinrichtung 104 effizient verarbeitet werden können. Hierzu empfängt der Pre-Prozessor 102 die Bikklatei bzw. die meh- reren Samplcs 1 12a, 1 12b und 1 12c und führt eine Vorverarbeitung, z.B. in Form einer Drehung und/oder in Form einer Spiegelung durch, um die mehreren Versionen (vgl. 1 12a und 1 12a') an die Hough-Transforaiationseinrichtung 104 auszugeben. Die Ausgabe kann seriell erfolgen, wenn die Hough-Transformationseinrichtung 104 einen Hough-Kern 106 aufweist, oder auch parallel, wenn mehrerer Hough-Kerne vorgesehen sind. D.h. also, dass je nach Umsetzung die n Versionen des Bildes entweder vollständig parallel, semi -parallel (also nur zum Teil parallel) oder seriell ausgegeben und bearbeitet werden. Die Vorverarbeitung im Pre-Prozessor 102, die dem Zweck dient, mit einem Suchmuster bzw. einer 1 Iough-Kemkon figuration mehrere ähnliche Muster (steigende und fallende Gerade) zu detektieren, wird nachfolgend anhand des ersten Samples 112a erläutert. The purpose of the pre-processor 102 is to prepare the individual samplcs 1 12a, 12b and 1 12c so that they can be processed efficiently by the Hough transformation device 104. For this purpose, the preprocessor 102 receives the Bikklatei or the multiple Samplcs 1 12a, 1 12b and 1 12c and performs a preprocessing, for example in the form of a rotation and / or in the form of a mirror to the multiple versions (see. 1 12a and 1 12a ') to the Hough Transforaiationseinrichtung 104 spend. The output may be serial if the Hough transformer 104 has a Hough core 106, or parallel if multiple Hough cores are provided. This means that depending on the implementation, the n versions of the image are either completely parallel, semi-parallel (ie only partially parallel) or serially output and processed. The pre-processing in the pre-processor 102, which serves the purpose with a search pattern or a 1 Iough-Kemkon figuration to detect several similar patterns (rising and falling line) is explained below with reference to the first sample 112a.
Dieses Sample kann beispielsweise gedreht, z.B. um 90° gedreht, werden, um die gedrehte Version 1 12a' zu erhalten. Dieser Vorgang des Drehens ist mit dem Bezugszeichen 1 14 versehen. Hierbei kann die Drehung entweder um 90°, aber auch um 180° oder 270° bzw. allgemein um 360 n erfolgen, wobei angemerkt sei, dass je nach nachgelagert er Hough- Transformation (vgl. Hough-Transformationseinrichtung 104) sehr effizient sein kann, nur eine 90°-Umdrehung durchzuführen. Auf diese Unteraspekte wird Bezug nehmend auf Fig. 2b und 2c eingegangen. Ferner kann das Bild 112a auch gespiegelt werden, um die gespiegelte Version 112a" zu erhalten. Der Vorgang des Spiegeins ist mit dem Bezugszeichen 116 versehen. Das Spiegeln 116 entspricht einem rückwärtigen Auslesen des Speichers. Sowohl ausgehend von der gespiegelten Version 112a" als auch von der gedrehten Version 1 12a' kann eine vierte Version durch eine gedrehte und gespiegelte Version 112a' " erhalten werden, indem entweder der Vorgang 1 14 oder 1 16 durchgeführt wird. Auf Basis der Spiegelung 116 können dann zwei ähnliche Muster (z.B. nach rechts geöffneter Halbkreis und nach links geöffneter Halbkreis) mit derselben H ough- Kernkon fi gurat i on , wie nachfolgenden beschrieben, detektiert werden. Die Hough-Transformationseinrichtung 104 ist dazu ausgebildet, um in der durch den Pre- Prozessor 102 zur Verfügung gestellten Version 1 12a bzw. 1 12a' (oder 1 12a" bzw. 112a' ") ein vorbestimmtes gesuchtes Muster, wie z.B. eine Ellipse oder ein Segment einer Ellipse, einen Kreis oder Segment eines Kreises, oder eine Gerade bzw. ein Grabcnseg- ment zu detektieren. Hierzu ist die Filteranordnung entsprechend dem gesuchten vorbc- stimmten Muster konfiguriert. Abhängig von der jeweiligen Konfiguration werden manche der Verzögerungselemente 108a bis 108c bzw. 1 10a bis 1 10c aktiviert oder gebypassed. Infolgedessen werden bei Anlegen eines Bildstreifens des zu untersuchenden Bildes 1 12a bzw. 1 12a' an die Transformationscinrichtung 1 4 durch die Verzögerungselemente 108a bis 108c einige Pixel selektiv verzögert, was einer Zwischenspeichcrung entspricht, und andere direkt zur nächsten Spalte 1 10 weitergeleitet. Durch diesen Vorgang werden dann gekrümmte oder schräge Geometrien„geradegebogen". Abhängig von der eingelesenen Bilddatei 1 12a bzw. 1 12a', bzw., um genau zu sein, abhängig von der von der Bildstruktur der angelegten Zeile des Bildes 1 12a bzw. 1 12a' kommt es zu hohen Spaltensummen in einer der Spalten 108 oder 1 10, während die Spaltensummen in anderen Spalten niedriger sind. Die Spaltensumme wird über den Spaltensummenausgang 108x bzw. I l Ox ausgegeben, wobei hier optional ein Additionselement (nicht dargestellt) zur Bildung der Spaltensumme je Spalte 108 oder 1 10 vorgesehen sein kann. Bei einem Maximum einer der Spaltensummen kann auf das Vorhandensein einer gesuchten Bildstruktur oder eines Segments der gesuchten Bildstruktur oder zumindest auf das zugehörige Maß der Übereinstimmung mit der gesuchten Struktur geschlossen werden. Das heißt also, dass je Verarbeitungsschritt der Bildstreifen um ein Pixel bzw. um eine Spalte 108 oder 1 10 weitergeschoben wird, so dass bei jedem Verarbeitungsschritt anhand eines Ausgangshistogramms erkenn- bar ist, ob eine der gesuchten Strukturen detektiert ist oder nicht, oder ob die Wahrscheinlichkeit des Vorhandenseins der gesuchten Struktur entsprechend hoch ist. In anderen Worten ausgedrückt heißt das, dass das Überschreiten eines Schwellenwerts der jeweiligen Spaltensumme der Spalte 108 oder 1 10 die Detektion eines Segments der gesuchten Bildstruktur anzeigen, wobei jede Spalte 108 oder 1 10 einem gesuchten Muster bzw. einer Ausprägung eines gesuchten Musters (z.B. Winkel einer Geraden oder Radius eines Kreises) zugeordnet ist. Es sei an dieser Stelle angemerkt, dass für die jeweilige Struktur nicht nur das jeweilige Verzögerungselement 1 10a, 1 10b und 110c der jeweiligen Zeile 110 maßgeblich ist, sondern insbesondere die vorherigen Verzögerungselemente 108a, 108b und 108c in Kombination mit den nachfolgenden Verzögerungselementen 110a, 110b und 110c. Entsprechend dem Stand der Technik sind derartige Strukturen bzw. Aktivierungen von Verzögerungselementen bzw. Bypass von vorneherein vorgegeben. For example, this sample can be rotated, eg rotated 90 °, to obtain the rotated version 1 12a '. This process of rotation is provided with the reference numeral 1 14. In this case, the rotation can take place either by 90 [deg.], But also by 180 [deg.] Or 270 [deg.] Or in general by 360 [mm], it being noted that, depending on the downstream, it can be very efficient in the Hough transformation (see Hough transformation device 104), only make a 90 ° turn. These sub-aspects will be discussed with reference to FIGS. 2b and 2c. Furthermore, the image 112a may also be mirrored to obtain the mirrored version 112a ". The mirroring operation is designated by the reference numeral 116. The mirror 116 corresponds to reading the memory backward In the rotated version 1 12a ', a fourth version can be obtained by a rotated and mirrored version 112a'"by performing either the process 1 14 or 1 16. On the basis of the reflection 116, two similar patterns (eg, semicircle open to the right and the half-circle opened to the left) with the same main core configuration as described below The Hough transformer 104 is designed to be in the version 1 12a or 12 provided by the preprocessor 102, respectively. 1 12a '(or 1 12a "or 112a'") a predetermined searched pattern, such as an ellipse or a segment of an ellipse, a circle s or segment of a circle, or to detect a straight line or a grave segment. For this purpose, the filter arrangement is configured according to the sought vorbc- certain pattern. Depending on the particular configuration, some of the delay elements 108a to 108c and 110a to 110c are activated or bypassed, respectively. As a result, upon application of a picture strip of the image under investigation 12a or 12a 'to the transformation device 1 4, some pixels are selectively delayed by the delay elements 108a to 108c, which corresponds to an intermediate memory, and others are forwarded directly to the next column 110. Depending on the image file 1 12a or 1 12a 'read in, or, to be exact, on the image structure of the applied line of the image 1 12a or 1, respectively, this process "straightens" curved or oblique geometries 12a ', high column sums occur in one of the columns 108 or 110 while the column sums in other columns are lower The column sum is output via the column sum output 108x or I l Ox, optionally an addition element (not shown) for formation the column sum may be provided per column 108 or 1. At a maximum of one of the column sums may indicate the presence of a searched image structure or a segment the sought picture structure or at least the corresponding degree of agreement with the sought structure. This means that for each processing step, the image strip is shifted by one pixel or by one column 108 or 110, so that it can be detected with each processing step from an initial histogram whether one of the structures sought is detected or not Probability of the presence of the sought structure is correspondingly high. In other words, exceeding a threshold value of the respective column sum of the column 108 or 110 indicates the detection of a segment of the searched image structure, each column 108 or 110 representing a searched pattern of a searched pattern (eg angle a straight line or radius of a circle) is assigned. It should be noted at this point that not only the respective delay element 110a, 110b and 110c of the respective line 110 is decisive for the respective structure, but in particular the previous delay elements 108a, 108b and 108c in combination with the following delay elements 110a, 110b and 110c. According to the prior art, such structures or activations of delay elements or bypass are predetermined from the outset.
Über die variablen Verzögerungselemente 108a bis 108c bzw. 1 10a bis 110c (Verzögerungselemente) kann die gesuchte Ausprägung (also z.B. der Radius oder der Anstieg) im laufenden Betrieb angepasst werden. Da die einzelnen Spalten 108 und 110 miteinander gekoppelt sind, erfolgt bei Anpassen der Verzögerungszeit eines der Verzögerungselemente 108a bis 108c bzw. 110a bis 1 10c eine Veränderung der gesamten Filtercharakteristik des Filters 106. Durch die flexible Anpassung der Filtercharakteristik des Filters 106 der Hough-Transformationscinrichtung 104 ist es möglich, den Trans fo m at i o nsk ern 106 wäh- rend der Laufzeit anzupassen, so dass beispielsweise dynamische Bildinhalte, wie z.B. für kleine und große Pupillen, mit demselben Hough-Kern 106 erfasst und getrackt werden können. Auf die genaue Implementierung, wie die Verzögerungszeit angepasst werden kann, wird in Fig. 3c eingegangen. Um nun dem Hough-Prozessor 100 bzw. der Transformationseinrichtung 104 mehr Flexibilität zu ermöglichen, sind bevorzugt alle Verzöge- rungselemente 108a, 108b, 108c, 1 10a, 1 10b und/oder 1 10c (oder zumindest eine der genannten) mit einer variablen oder diskret schaltbaren Verzögerungszeit ausgeführt, so dass während des Betriebes aktiv zwischen unterschiedlichen zu detektierenden Mustern bzw. zwischen unterschiedlichen Ausprägungen der zu detektierenden Muster hin- und hergeschaltet werden kann. By means of the variable delay elements 108a to 108c or 110a to 110c (delay elements), the desired characteristic (that is to say, for example, the radius or the rise) can be adjusted during operation. Since the individual columns 108 and 110 are coupled to each other, adjusting the delay time of one of the delay elements 108a to 108c or 110a to 110c, a change in the overall filter characteristic of the filter 106. By the flexible adaptation of the filter characteristic of the filter 106 of the Hough Transformationscinrichtung 104, it is possible to adapt the transcommander 106 during runtime, so that, for example, dynamic image contents, such as eg for small and large pupils, with the same Hough core 106 can be detected and tracked. The exact implementation of how the delay time can be adjusted is discussed in FIG. 3c. In order to enable more flexibility to the Hough processor 100 or the transformation device 104, preferably all delay elements 108a, 108b, 108c, 110a, 110b and / or 110c (or at least one of them) with a variable or executed discretely switchable delay time, so that during operation can be switched back and forth between different patterns to be detected or between different forms of the patterns to be detected.
Entsprechend weiteren Ausführungsbeispielen ist die Größe des dargestellten Hough- Kerns 104 konfigurierbar (entweder im Betrieb oder vorab), so dass also zusätzliche Hough-Zellen aktiviert oder deaktiviert werden können. Entsprechend weiteren Ausführungsbeispielen kann die Transformationseinrichtung 104 mit Mitteln zur Einstellung derselben bzw., um genau zu sein, zur Einstellung der einzelnen Verzögerungselemente 108a bis 108c und 1 10a bis 110c, wie z.B. mit einem Control- ler (nicht dargestellt) verbunden sein. Der Controller ist beispielsweise in einer nachgeschalteten Verarbeitungseinrichtung angeordnet und dazu ausgebildet, um die Verzögerungscharakteristik des Filters 106 anzupassen, wenn kein Muster erkannt werden kann oder wenn die Erkennung nicht ausreichend gut ist (geringe Übereinstimmung des Bildinhaltes mit den gesuchten Mustern es Vorhandenseins des gesuchten Musters). Auf diesem Controller wird Bezug nehmend auf Fig. 5 a eingegangen. According to further embodiments, the size of the illustrated Hough core 104 is configurable (either in operation or in advance) so that additional Hough cells may be enabled or disabled. According to further embodiments, the transformation means 104 may be provided with means for adjusting the same or, more precisely, for adjusting the individual delay elements 108a-108c and 110a-110c, such as with a controller (not shown). The controller is arranged, for example, in a downstream processing device and adapted to adapt the delay characteristic of the filter 106 when no pattern can be detected or when the recognition is not sufficiently good (poor matching of the image content with the searched patterns of the pattern being searched for) , This controller will be discussed with reference to FIG. 5 a.
Das oben genannte Ausführungsbeispiel hat den Vorteil, dass dieses einfach und flexibel zu realisieren ist und insbesondere auch auf einem FPGA implementiert werden kann. Hintergrund hierzu ist, dass die oben beschriebene parallele Hough-Transformation ohne Re- gressionen auskommt und sozusagen vollständig parallelisiert ist. Deshalb beziehen sich weitere Ausführungsbeispiele auf FPGAs, die zumindest die Hough- Transformationseinrichtung 104 und/oder den Pre-Prozessor 102 aufweisen. Bei einer Implementierung der oben beschriebenen Vorrichtung auf einem FPGA, z.B. einen XILINX Spartan 3A DSP, konnte eine sehr hohe Frame-Rate, von beispielsweise 60 FPS bei einer Auflösung von 640x480, unter Nutzung von einer Taktfrequenz bei 96 MHz erzielt werden, da durch die oben beschriebene Struktur 104 mit der Vielzahl der Spalten 108 und 110 eine parallele Verarbeitung bzw. eine sogenannte parallele Hough-Transformation möglich ist. An dieser Stelle sei darauf hingewiesen, dass bei obigen und nachfolgende Ausluhrungs- beispielen mit "Blickrichtung" bzw. "Blickvektor" in erster Linie die optische Achse desThe above-mentioned embodiment has the advantage that this is simple and flexible to implement and in particular can also be implemented on an FPGA. The background to this is that the parallel Hough transformation described above works without any regression and is, as it were, completely parallelized. Therefore, further embodiments relate to FPGAs having at least the Hough transformer 104 and / or the pre-processor 102. In an implementation of the device described above on an FPGA, e.g. a XILINX Spartan 3A DSP, a very high frame rate of, for example, 60 FPS at a resolution of 640x480 could be achieved using a clock frequency at 96 MHz because of the structure 104 described above with the plurality of columns 108 and 110 a parallel processing or a so-called parallel Hough transformation is possible. It should be noted that in the above and following Ausluhrungs- examples with "line of sight" or "eye vector" primarily the optical axis of
Auges gemeint ist. Diese optische Achse des Auges ist von der Sehachse des Auges zu unterscheiden, wobei die optische Achse des Auges aber als Schätzung für die Sehachse dienen kann, da diese Achsen typischerweise voneinander abhängig sind. So kann bei- spielsweise durch das Einbeziehen von Korrekturwinkeln aus der optischen Achse des Auges eine Richtung bzw. ein Richtungsvektor berechnet werden, der noch eine deutlich bessere Schätzung der Ausrichtung der tatsächlichen Sehachse des Auges ist. Eye is meant. This optical axis of the eye is to be distinguished from the visual axis of the eye, but the optical axis of the eye can serve as an estimate for the visual axis, as these axes are typically interdependent. Thus, for example, by including correction angles from the optical axis of the eye, a direction or a direction vector can be calculated which is still a significantly better estimate of the orientation of the actual visual axis of the eye.
Fig. 2a und 2b zeigen den Pre-Prozessor 102, der zur Vorverarbeitung des Videodaten- Stroms 1 12 mit den Frames 1 12a, 1 12b und 1 12c dient. Der Pre-Prozessor 102 ist dazu ausgebildet, die Samples 1 12 als binäre Kantenbilder oder auch als Gradientenbilder zu empfangen und auf Basis dieser die Rotation 1 14 bzw. die Spiegelung 1 16 durchzuführen, um die vier Versionen 1 12a, 1 12a', 1 12a" und 1 12a' " zu erhalten. Hintergrund hierzu ist, dass typischerweise die parallele Hough-Transformation, wie sie durch die Hough- Transformationseinrichtung ausgeführt wird, auf zwei oder vier jeweils vorverarbeiteten, z.B. um 90° versetzten, Versionen eines Bildes 1 12a aufbaut. Wie in Fig. 2b dargestellt ist, erfolgt zuerst eine 90°-Drehung (1 12a zu 1 12a'), bevor die zwei Versionen 1 12a und 1 12a' horizontal gespiegelt werden (vgl. 1 12a zu 1 12a" und 1 12a' zu 1 12a' "). Um die Spiegelung 1 1 6 und/oder die Rotation 1 14 durchzuführen, weist der Pre-Prozessor in entsprechenden Ausführungsbeispielen einen internen oder externen Speicher auf, der dazu dient, die empfangenen Bilddateien 1 12 vorzuhalten. Die Verarbeitung Drehen 1 14 und/oder Spiegeln 1 16 des Pre-Prozessors 102 hängt von der nachgelagerten Hough-Transformationseinrichtung, der Anzahl der parallelen Hough- Kerne (Parallelisierungsgrad) und der Konfiguration derselben ab, wie insbesondere Bezug nehmend auf Fig. 2c beschrieben wird. Insofern kann der Pre-Prozessor 102 dazu ausgebildet sein, um den vorverarbeiteten Videostrom je nach Parallelisierungsgrad der nachge- lagerten Hough-Transformationseinrichtung 104 entsprechend einer der drei folgenden Konstellationen über den Ausgang 126 auszugeben: 2a and 2b show the pre-processor 102, which is used for pre-processing of the video data stream 1 12 with the frames 1 12a, 1 12b and 1 12c. The pre-processor 102 is configured to receive the samples 1 12 as binary edge images or also as gradient images and to carry out the rotation 1 14 or the reflection 1 16 on the basis of this to produce the four versions 1 12a, 12a ', 1 12a "and 1 12a '". Background to this is typically, the parallel Hough transform, as performed by the Hough transform, is built on two or four respectively preprocessed, eg 90 °, versions of an image 12a. As shown in Fig. 2b, a 90 ° rotation (1 12a to 1 12a ') first takes place before the two versions 1 12a and 1 12a' are mirrored horizontally (compare 1 12a to 1 12a "and 1 12a '). to 1 12a '"). To perform the mirroring 1 1 6 and / or the rotation 1 14, the preprocessor has in corresponding embodiments, an internal or external memory, which serves to hold the received image files 1 12. The processing rotation 14 and / or mirror 16 of the pre-processor 102 depends on the downstream Hough transformer, the number of parallel Hough cores (degree of parallelization) and the configuration thereof, as will be described in particular with reference to FIG. 2c , In this respect, the preprocessor 102 may be configured to output the preprocessed video stream via the output 126 in accordance with one of the following three constellations, depending on the degree of parallelization of the downstream Hough transform means 104:
100% Parallelisierung: Simultane Ausgabe von vier Videodatenströmen, nämlich einer nicht-rotierten und nicht-gespiegelten Version 1 12a, einer um 90° rotierten Version 1 12a', und jeweils eine gespiegelte Version 1 12a" und 1 12a' ". 100% Parallelization: Simultaneous output of four video streams, namely a non-rotated and non-mirrored version 1 12a, a 90 ° rotated version 1 12a ', and a mirrored version 1 12a "and 1 12a'" respectively.
50% Parallelisierung: Ausgabe von zwei Videodatenströmen, nämlich nicht-rotiert 1 12a und um 90% gespiegelt 1 12a' in einem ersten Schritt und Ausgabe der jeweils gespiegelten Varianten 1 12a" und 1 12a' " in einem zweiten Schritt. 50% parallelization: Output of two video data streams, namely non-rotated 1 12a and 90% mirrored 1 12a 'in a first step and output of the respective mirrored variants 1 12a "and 1 12a'" in a second step.
25% Parallelisierung: jeweils Ausgabe eines Videodatenstroms, nämlich nicht-rotiert 1 12a, um 90° rotiert 1 12a", gespiegelt 1 12a" und gespiegelt und rotiert 1 12a' " sequenziell. 25% parallelization: each output of a video data stream, namely non-rotated 1 12a, rotated by 90 ° 1 12a " , mirrored 1 12a" and mirrored and rotates 1 12a '"sequentially.
Alternativ zu obiger Variante wäre es auch denkbar, dass basierend auf der ersten Version drei weitere Versionen allein durch Drehung, also beispielsweise durch Drehung um 90°, 180° und 270°, erstellt werden, auf Basis derer die Hough-Transformation erfolgt. As an alternative to the above variant, it would also be conceivable that, based on the first version, three further versions are created solely by rotation, for example by rotation through 90 °, 180 ° and 270 °, on the basis of which the Hough transformation takes place.
Entsprechend weiteren Ausführungsbeispielen kann der Pre-Prozessor 102 dazu ausgebildet sein, auch weitere Bildverarbeitungsschritte, wie z.B. ein Up-Sampling, durchzuführen. Zusätzlich wäre es auch möglich, dass der Pre-Prozessor das Gradientenbild erzeugt. Für den Fall, dass die Gradientenbilderzeugung Teil der Bildvorverarbeitung wird, könnte das Grauwertbild (Ausgangsbild) im FPGA rotiert werden. Fig. 2c zeigt zwei Hough-Kemkonfigurationcn 128 und 130, z.B. für zwei parallele 31x31 Hough-Kerne, so konfiguriert, um eine Gerade bzw. einen geraden Abschnitt zu erkennen. Des Weiteren ist ein Einheitskreis 132 aufgetragen, um zu illustrieren, in welchen Winkelbereichen die Detektion möglich ist. Es sei an dieser Stelle angemerkt, dass die Hough- Kernkonfiguration 128 und 130 jeweils so zu sehen sind, dass die weißen Punkte die Verzögerungselemente illustrieren. Die Hough-Kernkonfiguration 128 entspricht einem sogenannte Typ 1 Hough-Kern, während die H o u gh- ern kon fi gurat i on 130 einem sogenannten Typ 2 Hough-Kern entspricht. Wie an dem Vergleich der zwei Hough- Kernkonfigurationen 128 und 130 zu erkennen ist, stellt der eine die Inverse des anderen dar. Mit der ersten Hough-Kernkonfiguration 128 kann eine Gerade in dem Bereich 1 zwischen 3π/4 und π/2 detektiert werden, während eine Gerade in dem Bereich 3π/2 und 5π/4 (Bereich 2) mittels der Hough-Kernkonfiguration 130 detektierbar ist. Um in den weiteren Bereichen eine Detektion zu ermöglichen, wird, wie oben beschrieben, die Hough- Kernkonfiguration 128 und 130 auf die rotierte Version des jeweiligen Bildes angewendet. Folglich kann dann mittels der Hough-Kernkonfiguration 128 der Bereich lr zwischen π/4 und null und mittels der Hough-Kernkonfiguration 130 der Bereich 2r zwischen π und 3π/4 erfasst werden. According to further embodiments, the pre-processor 102 may be configured to also perform further image processing steps, such as up-sampling. In addition, it would also be possible for the pre-processor to generate the gradient image. In the event that gradient imaging becomes part of the image preprocessing, the halftone image (output image) in the FPGA could be rotated. Figure 2c shows two Hough core configurations 128 and 130, eg for two parallel 31x31 Hough cores, configured to detect a straight section. Furthermore, a unit circle 132 is plotted to illustrate in which angular ranges the detection is possible. It should be noted at this point that the Hough core configurations 128 and 130 are each shown so that the white dots illustrate the delay elements. The Hough core configuration 128 corresponds to a so-called Type 1 Hough kernel, while the Hugo kernel configuration 130 corresponds to a so-called Type 2 Hough kernel. As can be seen in the comparison of the two Hough core configurations 128 and 130, one represents the inverse of the other. With the first Hough core configuration 128, a straight line in the region 1 between 3π / 4 and π / 2 can be detected, while a straight line in the range 3π / 2 and 5π / 4 (range 2) is detectable by means of the Hough core configuration 130. In order to enable detection in the other areas, as described above, the Hough core configuration 128 and 130 is applied to the rotated version of the respective image. Consequently, by means of the Hough core configuration 128, the range lr between π / 4 and zero and, by means of the Hough core configuration 130, the range 2r between π and 3π / 4 can be detected.
Alternativ kann bei Einsatz nur eines Hough-Kerns (z.B. eines Typ 1 Hough-Kerns) eine Rotation des Bildes einmal um 90°, einmal um 180° und einmal um 270° sinnvoll sein, um die oben beschrieben Varianten der Geradenausrichtung zu erfassen. Andererseits kann durch die Flexibilität bei der Konfiguration des Hough-Kerns auch nur ein Hough-Kern- Typ eingesetzt werden, der während des laufenden Betriebs so umkonfiguriert wird bzw. bei dem die einzelne Verzögerungselemente zu- oder abgeschaltet werden können, dass der Hough-Kern dem invertierten Typ entspricht. In anderen Worten ausgedrückt heißt das also, dass bei Einsatz des Pre-Prozessors 102 (im 50% Parallelisierungs-Betrieb) und der konfigurierbaren Hough-Transformationseinrichtung 104 mit nur einem Hough-Kern und mit nur einer Bildrotation die vollständige Funktionalität abbildbar ist, die sonst nur mittels zwei parallelen Hough-Kern abgedeckt werden kann. Insofern wird klar, dass die jeweilige Hough-Kernkonfiguration bzw. die Wahl des I lough- Kern-Typs abhängig von dem Pre- Processing, welches durch den Pre-Prozessor 102 durchgeführt wird, ist. Alternatively, using only one Hough core (e.g., a Type 1 Hough core), it may be useful to rotate the image once by 90 °, once by 180 °, and once by 270 ° to capture the straight line orientation variations described above. On the other hand, due to the flexibility in the configuration of the Hough core, only one Hough core type can be used which is reconfigured during operation or in which the individual delay elements can be switched on or off, that is the Hough core corresponds to the inverted type. In other words, when using the pre-processor 102 (in the 50% parallelization mode) and the configurable Hough transformation device 104 with only one Hough core and with only one image rotation, this means that the complete functionality can be mapped can only be covered by means of two parallel Hough core. In this respect, it is clear that the respective Hough core configuration or the choice of the I lough core type is dependent on the pre-processing, which is performed by the pre-processor 102.
Fig. 3a zeigt einen Hough-Kern 104 mit m Spalten 108, 1 10, 138, 140, 141 und 143 und n Zeilen a, b, c, d, e und f, so dass m x n Zellen gebildet werden. Die Spalte 108, 1 10, 138, 140, 141 und 143 des Filters steht für eine bestimmte Ausprägung der gesuchten Struktur, z.B. für eine bestimmte Krümmung oder einen bestimmten geraden Anstieg. Jede Zelle umfasst ein hinsichtlich Verzögerungszeit einstellbares V erzögerun gsel em en t , wobei in diesem Ausfuhrungsbeispiel der Einstellmechanismus dadurch realisiert ist, dass jeweils ein schaltbares Verzögerungselement mit einem Bypass vorgesehen ist. Nachfolgend wird anhand von Fig. 3b der Aufbau aller Zelle stellvertretend erläutert. Die Zelle (108a) aus Fig. 3b umfasst das Verzögerungselement 142, einen fernbedienbaren Schalter 144, wie z.B. einen Multiplexer. und einen Bypass 146. Mittels des fernbedienbaren Schalters 144 kann entweder das Zeilensignal über das V crzögerungselement 142 geleitet werden oder unverzögert zu dem Knotenpunkt 148 geführt werden. Der Knotenpunkt 148 ist einerseits mit dem Summenelement 150 für die Spalte (z.B. 108) verbunden, wobei andc- rerseits über diesen Knotenpunkt 148 auch die nächste Zelle (z.B. 1 10a) angebunden ist. Fig. 3a shows a Hough kernel 104 with m columns 108, 110, 138, 140, 141 and 143 and n rows a, b, c, d, e and f such that mxn cells are formed. The column 108, 110, 138, 140, 141 and 143 of the filter stands for a certain expression of the sought structure, for example for a certain curvature or a certain straight rise. Each cell comprises a delay time-adjustable delay em en t, wherein in this exemplary embodiment the adjustment mechanism is realized by providing a switchable delay element with a bypass in each case. In the following, the structure of all cells will be explained by way of example with reference to FIG. 3b. The cell (108a) of Fig. 3b comprises the delay element 142, a remote-controlled switch 144, such as a multiplexer. and a bypass 146. By means of the remotely operable switch 144, either the line signal may be passed through the delay element 142 or may be passed to the node 148 instantaneously. The node 148 is on the one hand connected to the sum element 150 for the column (eg 108), and on the other hand via this node 148, the next cell (eg 1 10a) is connected.
Der Multiplexer 144 wird über ein sogenanntes Konfigurationsregister 160 konfiguriert (vgl. Fig. 3a). Es sei an dieser Stelle angemerkt, dass das hier dargestellte Bezugszeichen 160 sich nur auf einen Teil des Konfigurationsregisters 160 bezieht, welcher direkt mit dem Multiplexer 144 gekoppelt ist. Das Element des Konfigurationsregisters 160 ist dazu ausgebildet, den Multiplexer 144 zu steuern und erhält dazu über einen ersten Informationseingang 160a eine Konfigurationsinformation, die beispielsweise aus einer Konfigurationsmatrize stammt, welche im FPGA-internen BRAM 163 abgelegt ist. Diese Konfigurationsinformation kann ein spaltenweiser Bitstring sein und bezieht sich auf die Konfigura- tion mehrerer der (auch während der Transformation) konfigurierbaren Verzögerungs- Zellen (142+144). Deshalb kann die Konfigurationsinformation ferner über den Ausgang 160b weitergeleitet werden. Da die Umkonfiguration nicht zu jedem Zeitpunkt des Betriebes möglich ist, erhält das Konfigurationsregister 160 bzw. die Zelle des Konfigurationsregisters 160 ein sogenanntes Enablersignal über einen weiteren Signaleingang 160c, mittels welchem die Umkonfiguration veranlasst wird. Hintergrund hierzu ist, dass die Rekonfiguration des Hough- Kerns eine gewisse Zeit benötigt, die von der Anzahl der Verzögerungs- elemente bzw. insbesondere von der Größe einer Spalte abhängig ist. Dabei ist für jedes Spaltcnelement ein Taktzyklus zugeordnet und es kommt zu einer Latenz von wenigen Taktzyklen durch den BRAM 163 bzw. die Konfigurationslogik 160. Die Gesamtlatenz zur Rekonfiguration ist für videobasierte Bildverarbeitungen typischerweise vernachlässigbar. Es sei davon ausgegangen, dass in dem vorliegenden Ausführungsbeispiel die mit einem CMOS-Sensor aufgezeichneten Videodatenströme ein horizontales und vertikales Blanking aufweisen, wobei das horizontale Blanking bzw. die horizontale Blanking-Zeit zur Rekonfiguration genutzt werden kann. Durch diesen Zusammenhang gibt die Größe der in dem FPGA implementierten Hough-Kem- Struktur die maximal mögliche Größe für Hough-Kernkonfigurationen vor. Werden beispielsweise kleinere Konfigurationen genutzt, sind diese vertikal zentriert und in horizontaler Richtung an Spalte 1 der Hough-Kem- Struktur ausgerichtet. Nicht genutzte Elemente der Hough-Kem-Struktur werden allesamt mit aktivierten Verzögerungselementen besetzt. The multiplexer 144 is configured via a so-called configuration register 160 (see Fig. 3a). It should be noted at this point that the reference numeral 160 shown here refers only to a portion of the configuration register 160 that is coupled directly to the multiplexer 144. The element of the configuration register 160 is designed to control the multiplexer 144 and, via a first information input 160a, receives configuration information that originates, for example, from a configuration matrix stored in the FPGA-internal BRAM 163. This configuration information can be a column-wise bit string and refers to the configuration of several of the (also during the transformation) configurable delay cells (142 + 144). Therefore, the configuration information can be further forwarded via the output 160b. Since the reconfiguration is not possible at any time during operation, the configuration register 160 or the cell of the configuration register 160 receives a so-called enabler signal via a further signal input 160c, by means of which the reconfiguration is initiated. The background to this is that the reconfiguration of the Hough core requires a certain amount of time, which depends on the number of delay elements or, in particular, on the size of a column. In this case, one clock cycle is assigned for each split element and there is a latency of a few clock cycles through the BRAM 163 or the configuration logic 160. The overall latency for the reconfiguration is typically negligible for video-based image processing. It should be understood that in the present embodiment, the video data streams recorded with a CMOS sensor have horizontal and vertical blanking, and the horizontal blanking time can be used for reconfiguration. Through this relationship, the size of the Hough Kem structure implemented in the FPGA dictates the maximum size possible for Hough core configurations. For example, if smaller configurations are used, they are centered vertically and in the horizontal direction on column 1 of the Hough core. Structure aligned. Unused elements of the Hough Kem structure are all populated with activated delay elements.
Die Auswertung der so mit den einzelnen Verzögerungszellen (142+144) bearbeitenden Datenströme erfolgt spaltenweise. Hierzu wird spaltenweise aulsummiert, um ein lokales Summenmaximum zu detektieren, welches eine erkannte gesuchte Struktur anzeigt. Die Summcnbildung je Spalte 108, 1 10, 138, 140, 141 und 143 dient dazu, einen Wert, der repräsentativ für das Maß für die Übereinstimmung mit der gesuchten Struktur für eine der jeweiligen Spalte zugeordnete Ausprägung der Struktur zu ermitteln. . Zur Ermittlung der lokalen Maxima der Spaltensummen sind je Spalte 108, 1 10, 138. 140, 141 oder 143 sogenannte Vergleicher 108v, HOv, 138v, 140v, 141v bzw. 143v vorgesehen, die mit den jeweiligen Summengliedern 150 verbunden sind. Optional können zwischen den einzelnen Vergleichern 108v, HOv, 138v, 140v, 141v, 143v der unterschiedlichen Spalte 108, 110, 138. 140, 141 oder 143 auch noch weitere Verzögerungsglieder 153 vorgesehen sein, die zum Vergleich der Spaltensummen von nebeneinanderliegenden Spalten dienen. Im Detail wird bei Durchlauf des Filters immer die Spalte 108, 110, 138 oder 140 mit dem größten Maß der Übereinstimmung für eine Ausprägung des gesuchten Musters aus dem Filter herausgereicht. Bei Detektieren eines lokalen Maximums einer Spaltensumme (Vergleich vorherige, nachfolgende Spalte) kann auf das Vorliegen einer gesuchten Struktur geschlos- sen werden. Das Ergebnis des Vergleichs ist also einen Spaltennummer (ggf. inkl. Spaltensumme = Maß für Übereinstimmung), in welcher das lokale Maximum erkannt wurde bzw. die Ausprägung der gesuchten Struktur steht, z.B. Spalte 138. In bevorzugter Weise um- fasst das Ergebnis einen sogenannten mehrdimensionalen Hough-Raum, der alle relevanten Parameter der gesuchten Struktur, wie z.B. Art des Musters (z.B. Gerade oder Halbkreis), Maß der Ü berei nstimmung des Musters, Ausprägung der Struktur (Stärke der Krümmung bei Kurvensegmenten bzw. Anstieg und Länge bei Geradensegmenten) und die Lage bzw. Orientierung des gesuchten Musters umfasst. Anders ausgedrückt heißt das, dass für jeden Punkt in dem Hough-Raum die Grauwerte der korrespondierenden Strukturen im Bildbereich aufaddiert werden. Infolgedessen bilden sich Maxima aus, mittels welchen die ge- suchte Struktur im Hough-Raum einfach lokalisiert und in den Bildbereich zurückgeführt werden kann. The evaluation of the data streams thus processed with the individual delay cells (142 + 144) takes place column by column. For this purpose, aulmum is column-wise in order to detect a local sum maximum, which indicates a recognized desired structure. The summation per column 108, 110, 138, 140, 141 and 143 serves to determine a value representative of the degree of agreement with the searched structure for a characteristic of the structure associated with the respective column. , To determine the local maxima of the column sums, 108, 140, 141 or 143 so-called comparators 108v, HOv, 138v, 140v, 141v and 143v are provided per column, which are connected to the respective summation elements 150. Optionally, additional delay elements 153 can also be provided between the individual comparators 108v, HOv, 138v, 140v, 141v, 143v of the different columns 108, 110, 138, 140, 141 or 143, which serve to compare the column sums of adjacent columns. In detail, as the filter passes through, the column 108, 110, 138, or 140 is always passed out of the filter with the greatest degree of match for a given sample to be found. Upon detection of a local maximum of a column sum (comparison previous, subsequent column) can be concluded on the presence of a sought structure. The result of the comparison is therefore a column number (possibly including the column sum = measure of agreement) in which the local maximum was recognized or the characteristic of the sought-after structure is represented, e.g. Column 138. Preferably, the result comprises a so-called multi-dimensional Hough space, which contains all the relevant parameters of the structure sought, such as the desired structure. Type of pattern (e.g., straight line or semicircle), measure of pattern match, shape of the structure (curvature of curvature of curve segments or slope and length of straight line segments), and the location or orientation of the searched pattern. In other words, for each point in the Hough space, the gray values of the corresponding structures in the image area are added up. As a result, maxima are formed by means of which the sought-after structure in Hough space can be easily localized and returned to the image area.
Die Hough-Kern-Zelle aus Fig. 3b kann ein optionales Pipeline-Verzögerungselement 162 (Pipeline-Delay) aufweisen, das beispielsweise am Ausgang der Zelle angeordnet ist und dazu ausgebildet ist, sowohl das mittels des Verzögerungselements 142 verzögerte Signal und das mittels des Bypasses 146 nicht verzögerte Signal zu verzögern. Wie Bezug nehmend auf Fig. 1 angedeutet, kann eine derartige Zelle auch ein Verzögerungselement mit einer Variabilität aufweisen bzw. eine Vielzahl von miteinander geschalteten und gebypassten Verzögerungselementen umfassen, so dass die Verzögerungszeit in mehreren Stufen einstellbar ist. Insofern wären weitere Implementierungen über die in Fig. 3b dargestellte Implementierung der I lough-Kern-Zelle alternativ denkbar. The Hough-core cell of FIG. 3b may include an optional pipeline delay element 162, arranged, for example, at the output of the cell and configured to receive both the signal delayed by means of the delay element 142 and that by means of the bypass 146 delay delayed signal. As indicated with reference to FIG. 1, such a cell may also comprise a delay element with a variability or comprise a multiplicity of interconnected and bypassed delay elements, so that the delay time can be set in several stages. In this respect, further implementations would be alternatively conceivable via the implementation of the I-core core cell shown in FIG. 3b.
Nachfolgend wird Bezug nehmend Fig. 5a eine Anwendung der oben beschriebenen Vorrichtung erläutert in einem Bild verarbei t ungs-S ys tem 1000. Fig. 5a zeigt einen FPGA implementierten Bildprozessor 10a mit einem Pre- Prozessor 102 und einer Hough- Transformationseinrichtung 104. Vor dem Pre-Prozessor 102 kann ferner eine Eingangsstufe 12 in den Bildprozessor 10a implementiert sein, die dazu ausgebildet ist, um Bilddaten oder Bildsample von einer Kamera 14a zu empfangen. Hierzu kann die Eingangsstufe 12 beispielsweise eine Bildübernahmeschnittstelle 12a, einen Segmentations- und Kantendetektor 12b und Mittel zur Kamerasteuerung 12c umfassen. Die Mittel zur Kamerasteue- rung 12c sind mit der Bildschnittstelle 12a und der Kamera 14 verbunden und dienen dazu Faktoren wie Verstärkung und/oder Belichtung zu steuern. An application of the device described above is explained below in FIG. 5a in an image processing system 1000. FIG. 5a shows an FPGA-implemented image processor 10a with a preprocessor 102 and a Hough transform device 104 Pre-processor 102 may further include an input stage 12 implemented in image processor 10a configured to receive image data or image samples from a camera 14a. For this purpose, the input stage 12 may comprise, for example, an image transfer interface 12a, a segmentation and edge detector 12b and means for camera control 12c. The camera control means 12c are connected to the image interface 12a and the camera 14 and serve to control factors such as gain and / or exposure.
Der Bildprozessor 10a umfasst des Weiteren einen sogenannten Hough-Feature-Extraktor 16, der dazu ausgebildet ist, den mehrdimensionalen Hough-Raum, der durch die Hough- Transformationseinrichtung 104 ausgegeben wird und alle relevanten Informationen für die Mustererkennung umfasst, zu analysieren und auf Basis des Analyseergebnisses eine Zusammenstellung aller Hough-Features auszugeben. Im Detail erfolgt hier eine Glättung der Hough-Feature-Räume, d.h. also eine räumliche Glättung mittels eines lokalen Filters bzw. eine Ausdünnung des Hough-Raums (Unterdrückung nicht relevanter Informationen für die M ust erer ken n u n g) . Diese Ausdünnung erfolgt unter Berücksichtigung der Art des Musters und der Ausprägung der Struktur, so dass Nicht-Maxima im Hough- Wahrscheinlichkeitsraum ausgeblendet werden. Ferner können für die Ausdünnung auch Schwellwertc definiert sein, so dass beispielsweise minimal oder maximal zulässige Ausprägungen einer Struktur, wie z.B. eine minimale oder maximale Krümmung oder ein kleinster oder größter Anstieg, im Vorfeld bestimmt werden kann. Mittels dieser schwellenbasierten Unterdrückung kann auch eine Rauschunterdrückung im Hough- Wahrscheinlichkeitsraum erfolgen. The image processor 10a further comprises a so-called Hough feature extractor 16 adapted to analyze the Hough multi-dimensional space output by the Hough transform means 104 and including all relevant information for pattern recognition, and based on the Hough feature extractor 16 Output a collection of all Hough features. In detail here is a smoothing of the Hough feature spaces, i. that is, a spatial smoothing by means of a local filter or a thinning out of the Hough space (suppression of irrelevant information for the m ore). This thinning is done taking into account the nature of the pattern and the nature of the structure so that non-maxima in the Hough probability space are masked out. Furthermore, threshold values c may also be defined for the thinning, so that, for example, minimum or maximum permissible values of a structure, such as e.g. a minimum or maximum curvature or a smallest or largest increase, can be determined in advance. By means of this threshold-based suppression, noise suppression can also be carried out in the Hough probability space.
Die analytische Rücktransformation der Parameter aller verbleibenden Punkte in dem Ori- ginalbildbereich ergibt z.B. folgende Hough-Features: Für die gebogene Struktur können Lage (x- und y-Koordinate), Auftrittswahrscheinlichkeit, Radius und Winkel, der angibt, in welche Richtung der Bogen geöffnet ist, weitergeleitet werden. Für eine Gerade können Parameter wie Lage (x- und y-Koordinate), Auftrittswahrscheinlichkeit, Winkel der die Steigung der Gerade angibt, und Länge des repräsentativen geraden Abschnitts ermittelt werden. Dieser ausgedünnte Hough-Raum wird durch den Hough-Feature-Extraktor 16 bzw. allgemein durch den Bildprozessor 10a zur Weiterverarbeitung an eine Nachverarbeitungseinrichtung 18 ausgegeben. The analytic inverse transformation of the parameters of all remaining points in the original image area yields, for example, the following Hough features: For the bent structure, position (x and y coordinates), occurrence probability, radius and angle, which indicates in which direction the arc opens is to be forwarded. For a straight line, parameters such as position (x- and y-coordinate), probability of occurrence, angle of the Slope of the straight line indicates and length of the representative straight section can be determined. This thinned Hough space is output by the Hough feature extractor 16 or generally by the image processor 10a to a post-processing device 18 for further processing.
Ein weiteres Ausführungsbeispiel umfasst des Einsatz eines 3 D-Bildanalysators 400 (Fig. 5a) innerhalb eines Bildverarbeitungssystems zusammen mit einem vorgeschalteten Bildprozessor 1 0a (Fig. 5a) bzw. vorgeschalteten Hough-Prozessor, wobei der Hough- Prozessors und insbesondere die Komponenten der Nachverarbeitungseinrichtung 18 für die Detektion von als Ellipse abgebildeten Pupillen oder Iris angepasst sind. A further exemplary embodiment comprises the use of a 3 D image analyzer 400 (FIG. 5a) within an image processing system together with an upstream image processor 10a (FIG. 5a) or upstream Hough processor, the Hough processor and in particular the components of the postprocessing device 18 are adapted for the detection of pupil or iris depicted as an ellipse.
Die Nachverarbeitungseinrichtung des Hough-Prozessors kann beispielsweise als eingebetteter Prozessor realisiert sein und je nach Anwendung unterschiedliche Untereinheiten aufweisen, die nachfolgend exemplarisch erläutert werden. Die Nachverarbeitungseinrich- tung 18 (Fig. 5a) kann einen Hough-Feature-nach-Geometrieumwandler 202 umfassen. Dieser Geometrieumwandler 202 ist dazu ausgebildet, ein oder mehrere vordefinierte gesuchte Muster, die durch den Hough-Feature-Extraktor ausgegeben werden, zu analysieren und die Geometrie beschreibende Parameter je Sample auszugeben. So kann der Geometrieumwandler 202 beispielsweise ausgebildet sein, auf Basis der detektierten Hough- Features Geometrieparameter, wie z.B. erster Durchmesser, zweiter Durchmesser, Kippung und Position des Mittelpunkts bei einer Ellipse (Pupille) oder eines Kreises, auszugeben. Entsprechend einem bevorzugten Ausführungsbeispiel dient der Geometrieumwandler 202 dazu, um eine Pupille anhand von 3 bis 4 Hough-Features (z.B. Krümmungen) zu de- tektieren und auszuwählen. Dabei fließen Kriterien, wie das Maß der Ubereinstimmung mit der gesuchten Struktur bzw. der Hough-Features, die Krümmung der Hough-Features bzw. das vorbestimmte zu detektierende Muster, die Lage und Orientierung der Hough- Features ein. Die ausgewählten I lough-Feature-Kombinationen werden sortiert, wobei in der ersten Linie die Sortierung entsprechend der Anzahl der erhaltenen Hough-Features und in zweiter Linie nach dem Maß der Übereinstimmung mit der gesuchten Struktur er- folgt. Nach dem Sortieren wird die an der ersten Stelle stehende Hough-Feature- Kombination ausgewählt und daraus die Ellipse gefittet, welche am ehesten die Pupille im Kamerabild repräsentiert. The post-processing device of the Hough processor can, for example, be realized as an embedded processor and, depending on the application, have different subunits, which are explained below by way of example. Postprocessing device 18 (FIG. 5a) may include a Hough feature-to-geometry converter 202. This geometry converter 202 is configured to analyze one or more predefined searched patterns output by the Hough feature extractor and to output parameters describing the geometry per sample. For example, the geometry converter 202 may be configured based on the detected Hough features geometry parameters, such as, for example. first diameter, second diameter, tilt and position of the center in an ellipse (pupil) or a circle output. In accordance with a preferred embodiment, the geometry converter 202 is operable to detect and select a pupil based on 3 to 4 Hough features (e.g., curvatures). Criteria, such as the degree of conformity with the desired structure or the Hough features, the curvature of the Hough features or the predetermined pattern to be detected, the position and orientation of the Hough features. The selected Ilough feature combinations are sorted, the first line being sorted according to the number of Hough features obtained, and secondly, the degree of agreement with the searched structure. After sorting, the Hough feature combination in the first place is selected and the ellipse which best represents the pupil in the camera image is fitted out of it.
Des Weiteren umfasst die Nachverarbeitungseinrichtung 18 (Fig. 5a) einen optionalen Controller 204, der dazu ausgebildet ist, ein Steuersignal zurück an den Bildprozessor 10a (vgl. Steuerkanal 206) bzw., um genau zu sein, zurück an die Hough- Transformationseinrichtung 104 auszugeben, auf Basis dessen die Filtercharakteristik des Filters 106 anpassbar ist. Zur dynamischen Anpassung des Filterkerns 106 ist der Control- ler 204 typischerweise mit dem G eo m et r i eum w and 1 er 202 verbunden, um die Geometrieparameter der erkannten Geometrie zu analysieren und um den Hough-Kern in definierten Grenzen derart nachzuführen, dass eine genauere Erkennung der Geometrie möglich ist. Dieser Vorgang ist ein sukzessiver Vorgang, der beispielsweise mit der letzten Hough- Kernkonfiguration (Größe des zuletzt genutzten Hough-Kems) beginnt und nachgeführt wird, sobald die Erkennung 202 unzureichende Ergebnisse liefert. Am oben diskutierten Beispiel der Pupillen bzw. Ellipsendetektion kann also der Controller 204 die Ellipsengröße anpassen, die z.B. von dem Abstand zwischen dem aufzunehmenden Objekt und der Kamera 14a abhängig ist, wenn die zugehörige Person sich der Kamera 14a nährt. Die Steuerung der Filtercharakteristik erfolgt hierbei auf Basis der letzten Einstellungen und auf Basis der Geometrieparameter der Ellipse. Furthermore, the post-processing device 18 (FIG. 5 a) comprises an optional controller 204, which is designed to output a control signal back to the image processor 10 a (see control channel 206) or, to be exact, back to the Hough transformation device 104 , on the basis of which the filter characteristic of the filter 106 is adaptable. For dynamic adaptation of the filter core 106, the control The sensor 204 is typically coupled to the geometry analyzer and server 202 to analyze the geometry parameters of the detected geometry and to track the Hough kernel within defined limits such that more accurate geometry recognition is possible. This process is a successive process starting, for example, with the last Hough core configuration (last used Hough kernel size) and being tracked as soon as the 202 detection yields insufficient results. In the example of the pupils or elliptical detection discussed above, the controller 204 can thus adapt the ellipse size, which is dependent, for example, on the distance between the object to be photographed and the camera 14a, when the associated person nourishes the camera 14a. The filter characteristic is controlled on the basis of the last settings and on the basis of the geometry parameters of the ellipse.
Entsprechend weiteren Ausführungsbeispielen kann die Nachverarbeitungseinrichtung 18 einen Selektiv-adaptiven Datenprozessor 300 aufweisen. Der Datenprozessor hat den Zweck Ausreißer und Aussetzer innerhalb der Datenreihe nachzubearbeiten, um so beispielsweise eine Glättung der Datenreihe durzuführen. Deshalb ist der Selektiv-adaptive Datenprozessor 300 ausgebildet, um mehrere Sätze von Werten, die durch den Geomet- rieumwandler 202 ausgegeben werden, zu empfangen, wobei jeder Satz einem jeweiligen Sample zugewiesen ist. Der Filterprozessor des Datenprozessors 300 führt auf Basis der mehreren Sätze eine Selektion von Werten in der Art durch, dass die Datenwerte unplausible Sätze (z. B. Ausreißer oder Aussetzer) durch intern ermittelte Datenwerte (Ersatzwerte) ersetzt werden und die Datenwerte der übrigen Sätze unverändert weiterverwendet werden. Im Detail werden die Datenwerte plausibler Sätze (die keine Ausreißer oder Aussetzer enthalten) wcitcrgcleitet und die Datenwerte unplausibler Sätze (die Ausreißer oder Aussetzer enthalten) durch Datenwerte eines plausiblen Satzes, z. B. den vorherigen Datenwert oder eine Mittelung aus mehreren vorherigen Datenwerten, ersetzt. Die sich ergebende Datenreihe aus weitergeleiteten Werten und ggf. Ersatzwerten wird dabei fortlaufend geglättet. D.h. also, dass eine adaptive zeitliche Glättung der Datenreihe (z. B. einer ermittelten Ellipsenmittelpunktskoordinate), z. B. nach dem Prinzip der exponentiellen Glättung, erfolgt, wobei Aussetzer oder Ausreißer (z. B. infolge Falschdetektion bei der Pupillendetektion) in der zu glättenden Datenreihe nicht zu Schwankungen der geglätteten Daten führen. Im Detail kann der Datenprozessor über den Datenwert eines neu eingegangenen Satzes glätten, wenn er nicht in eine der folgenden Kriterien fällt: - Entsprechend dem dazu gehörigen Maß der Übereinstimmung, die durch einen der Zusatzwertes des Satzes quantifiziert ist, mit der gesuchten Struktur handelt es sich um einen Aussetzer in der Datenreihe. Entsprechend der zugehörigen Größenparameter oder Geometrieparameter handelt es sich um einen Aussetzer, wenn z. B. die Größe des aktuellen Objekts zu stark von der Größe des vorherigen Objekts abweicht. - Entsprechend eines Vergleichs des aktuellen Datenwertes mit Schwell werten, die basierend auf den vorhergehenden Datenwerten ermittelt wurden, handelt es sich um einen Ausreißer, wenn der aktuelle Datenwert (z. B. der aktuelle Positionswert) nicht zwischen den Schwcllwcrten liegt. Ein anschauliches Beispiel dafür ist, wenn z. B. die aktuelle Positionskoordinate (Datenwert des Satzes) eines Objektes zu stark von der zuvor vom selektiv adaptiven Datenprozessor ermittelten Positionskoordinate abweicht. According to further embodiments, the post-processing device 18 may comprise a selective-adaptive data processor 300. The purpose of the data processor is to rework outliers and dropouts within the data series in order to smooth the data series, for example. Therefore, the selective adaptive data processor 300 is configured to receive a plurality of sets of values output by the geometry converter 202, each set being assigned to a respective sample. The filter processor of data processor 300 performs a selection of values based on the multiple sets such that the data values of implausible sets (eg, outliers or dropouts) are replaced by internally-determined data values (substitute values) and the data values of the remaining sets are unchanged continue to be used. In detail, the data values of plausible sentences (containing no outliers or dropouts) are deduced and the data values of implausible sentences (containing outliers or dropouts) are represented by data values of a plausible sentence, e.g. For example, the previous data value or an averaging of several previous data values replaced. The resulting data series of forwarded values and, if necessary, substitute values is continuously smoothed. This means that an adaptive temporal smoothing of the data series (eg a determined ellipse midpoint coordinate), e.g. For example, according to the exponential smoothing principle, misfires or outliers (eg as a result of false detection in pupil detection) in the data series to be smoothed do not lead to fluctuations in the smoothed data. In detail, the data processor may smooth over the data value of a newly received sentence if it does not fall into one of the following criteria: - According to the corresponding measure of the agreement quantified by one of the additional values of the sentence, the searched structure is a dropout in the data series. According to the associated size parameter or geometry parameter is a dropout when z. For example, the size of the current object is too different from the size of the previous object. According to a comparison of the current data value with threshold values which were determined on the basis of the preceding data values, it is an outlier if the current data value (eg the current position value) is not between the values of the values. An illustrative example of this is when z. B. the current position coordinate (data value of the sentence) of an object deviates too much from the previously determined by the selectively adaptive data processor position coordinate.
Ist eines dieser Kriterien erfüllt, wird weiterhin der vorherige Wert ausgegeben oder zumindest zur Glättung des aktuellen Werts herangezogen. Um eine möglichst geringe Verzögerung bei der Glättung zu erhalten, werden optional die aktuellen Werte stärker ge- wichtet als vergangene Werte. So kann bei Anwendung einer exponentiellen Glättung der aktuelle Wert anhand folgender Formel bestimmt werden: If one of these criteria is fulfilled, the previous value is still output or at least used to smooth the current value. To obtain the least possible delay in smoothing, the current values are optionally weighted more heavily than past values. For example, using exponential smoothing, the current value can be determined by the following formula:
Aktuell geglätteter Wert = aktueller Wert x Glättungskoeffizient + letzter geglätteter Wert x (1 - Glättungskoeffizient) Currently smoothed value = current value x smoothing coefficient + last smoothed value x (1 - smoothing coefficient)
Der Glättungskoeffizient wird in definierten Grenzen dynamisch an den Trend der zu glättenden Daten angepasst, z.B. Verringerung bei eher konstanten Werteverläufen oder Erhöhung bei aufsteigenden oder abfallenden Werteverläufen. Wenn langfristig ein größerer Sprung bei den zu glättenden Geometrieparametern (Ellipsenparametern) vorkommt, pas- sen sich der Datenprozessor und somit auch der geglättete Werteverlauf an den neuen Wert an. Grundsätzlich kann der Selektiv-adaptive Datenprozessor 300 auch mittels Parameter, z.B. bei der Initialisierung kon iguriert werden, wobei über diese Parameter das Glättungs- verhalten, z. B. maximale Dauer eines Aussetzers oder maximaler Glättungsfaktor. festgelegt werden. The smoothing coefficient is dynamically adjusted within defined limits to the trend of the data to be smoothed, e.g. Reduction in rather constant value curves or increase in ascending or descending values. If, in the long term, there is a major jump in the geometry parameters (ellipse parameters) to be smoothed, the data processor and thus also the smoothed value curve adapt to the new value. Basically, the selective adaptive data processor 300 may also be controlled by parameters, e.g. be initialized during the initialization, whereby the smoothing behavior, eg. B. maximum duration of a dropout or maximum smoothing factor. be determined.
So kann der Selektiv-adaptive Datenprozessor 300 oder allgemein die Nachverarbeitungsvorrichtung 18 plausible, die Position und Geometrie eines zu erkennenden Musters beschreibende Werte mit hoher Genauigkeit ausgeben. Hierzu weist die Nachverarbeitungsvorrichtung eine Schnittstelle 18a auf, über die optional auch Steuerbefehle von extern empfangen werden können. Sollen mehrere Datenreihen geglättet werden, ist es sowohl denkbar, für jede Datenreihe einen separaten selektiv-adaptiven Datenprozessor zu benutzen oder den selektiv-adaptiven Datenprozessor so anzupassen, dass je Satz Datenwerte unterschiedlicher Datenreihen verarbeitete werden können. Nachfolgend werden die oben anhand von einem konkreten Ausführangsbeispiel erläuterten Eigenschaften des selektiv-adaptiven Datenprozessor 300 allgemein beschrieben: Thus, the selective adaptive data processor 300, or generally the post-processing device 18, can plausibly output values describing the position and geometry of a pattern to be recognized with high accuracy. For this purpose, the post-processing device has an interface 18a via which control commands can optionally also be received externally. If several data series are to be smoothed, it is conceivable to use a separate selectively adaptive data processor for each data series or to adapt the selectively adaptive data processor so that data sets of different data series can be processed per data set. Hereinafter, the characteristics of the selective adaptive data processor 300 explained above with reference to a concrete embodiment will be generally described.
Der Datenprozessor 300 kann z. B. zwei oder mehr Eingänge sowie einen Ausgang auf- weisen. Einer der Eingänge (empfängt den Datenwert und) ist für die Datenreihe die verarbeitet werden soll. Der Ausgang ist eine geglättete Reihe basierend auf selektierten Daten. Zur Selektion werden die weiteren Eingänge (die Zusatzwerte zur genaueren Beurteilung des Datenwertes empfangen) herangezogen und/oder die Datenreihe selbst. Bei der Verarbeitung innerhalb des Datenprozessor 300 erfolgt eine Veränderung der Datenreihe, wobei zwischen der Behandlung von Ausreißern und der Behandlung von Aussetzern innerhalb der Datenreihe unterschieden wird. The data processor 300 may, for. B. have two or more inputs and an output. One of the inputs (receives the data value and) is for the data series to be processed. The output is a smoothed row based on selected data. For selection, the further inputs (receive the additional values for more accurate assessment of the data value) are used and / or the data series itself. In the processing within the data processor 300, a change in the data series occurs, wherein between the treatment of outliers and the treatment of dropouts within the Data series is distinguished.
Ausreißer: Bei der Selektion werden Ausreißer (innerhalb der zu verarbeitenden Datenreihe) aussortiert und durch andere (intern ermittelte) Werte ersetzt. Outliers: In the selection, outliers (within the data series to be processed) are sorted out and replaced by other (internally determined) values.
Aussetzer: Zur Beurteilung der Güte der zu verarbeitenden Datenreihe werden ein oder mehrere weitere Eingangssignale (Zusatzwerte) herangezogen. Die Beurteilung erfolgt anhand eines oder mehrerer Schwellwerte, wodurch die Daten in„hohe" und„geringe" Güte unterteilt werden. Daten geringer Güte werden als Aussetzer bewertet und durch an- dere (intern ermittelte) Werte ersetzt. Dropouts: One or more additional input signals (additional values) are used to assess the quality of the data series to be processed. The assessment is based on one or more thresholds, dividing the data into "high" and "low" grades. Low-quality data is evaluated as a dropout and replaced by other (internally determined) values.
Im nächsten Schritt erfolgt beispielsweise eine Glättung der Datenreihe (z.B. exponentielle Glättung einer Zeitreihe). Zur Glättung wird die von Aussetzern und Ausreißern bereinigte Datenreihe herangezogen. Die Glättung kann durch einen variablen (adaptiven) Koeffi- zienten erfolgen. Der Glättungskoeffizient wird an die Differenz des Pegels der zu verarbeitenden Daten angepasst. In the next step, for example, a smoothing of the data series takes place (for example exponential smoothing of a time series). For smoothing, the data series adjusted by dropouts and outliers is used. The smoothing can be done by a variable (adaptive) coefficient. The smoothing coefficient is adjusted to the difference in the level of the data to be processed.
Entsprechend weiteren Ausführungsbeispielen ist es auch möglich, dass die Nachverarbeitungsvorrichtung 18 einen Bildanalysator, wie z.B. einen 3D-Bildanalysator 400 umfasst. Im Falle eines 3D-Bildanalysators 400 kann mit der Nachverarbeitungsvorrichtung 18 auch eine weitere Bilderfassungseinrichtung, bestehend aus Bildprozessor 10b und Kamera 14b, vorgesehen sein. Also bilden die zwei Kameras 14a und 14b sowie die Bildprozessoren 10a und 10b eine stereoskopische Kameraanordnung, wobei vorzugsweise der Bildprozessor 10b identisch mit dem Bildprozessor 10a ist. According to further embodiments, it is also possible that the post-processing device 18 includes an image analyzer, such as an image analyzer. a 3D image analyzer 400 includes. In the case of a 3D image analyzer 400, the post-processing device 18 can also be provided with a further image capture device consisting of image processor 10b and camera 14b. Thus, the two cameras 14a and 14b and the image processors 10a and 10b form a stereoscopic camera arrangement, preferably the image processor 10b is identical to the image processor 10a.
Der 3D-Bildanalysator 400 ist entsprechend einem Basisausführungsbeispiel dazu ausgebildet, um zumindest einen ersten Satz von Bilddaten, der auf Basis eines ersten Bildes (vgl. Kamera 14a) bestimmt wird, und einen zweiten Satz von Bilddaten, der auf Basis eines zweiten Bildes (vgl. Kamera 14b) bestimmt wird, zu empfangen, wobei das erste und das zweite Bild ein Muster aus unterschiedlichen Perspektiven abbilden, und um auf Basis dessen einen Blickwinkel bzw. einen 3 D-Blickvektor zu berechnen. Hierzu umfasst der 3D-Bildanalysator 400 eine Positionsbercchnungseinrichtung 404 und eine Ausrichtungs- berechnungseinrichtung 408. Die Positionsberechnungseinrichtung 404 ist dazu ausgebildet, um eine Position des Musters in einem dreidimensionalen Raum zu berechnen, basierend auf dem ersten Satz, dem zweiten Satz und einer geometrischen Beziehung zwischen den Perspektiven bzw. der ersten und der zweiten Kamera 14a und 14b. Der Ausrichtungsberechner 408 ist dazu ausgebildet, um einen 3D-Blickvektor, z.B. eine Blickrichtung, zu berechnen, gemäß dem das erkannte Muster in dem dreidimensionalen Raum ausgerichtet ist, wobei die Berechnung auf dem ersten Satz, dem zweiten Satz und der berechneten Position (vgl. Positionsberechner 404) basiert. The 3D image analyzer 400 is configured, in accordance with a basic embodiment, to generate at least a first set of image data that is determined based on a first image (see camera 14a) and a second set of image data based on a second image (see camera 14b) is determined to be received, wherein the first and second images map a pattern from different perspectives, and to calculate therefrom a 3 D view vector. To this end, the 3D image analyzer 400 includes a position calculator 404 and an alignment calculator 408. The position calculator 404 is configured to calculate a position of the pattern in a three-dimensional space based on the first set, the second set, and a geometric relationship between the perspectives or the first and the second camera 14a and 14b. The alignment calculator 408 is configured to calculate a 3D view vector, eg, a line of sight, according to which the recognized pattern is aligned in the three-dimensional space, wherein the calculation on the first set, the second set, and the calculated position (see FIG. Position calculator 404).
Andere Ausführungsbeispiele können auch mit den Bilddaten einer Kamera und einem weiteren Satz an Informationen arbeiten (z. B. relative oder absolute Positionen charakteristischer Punkte im Gesicht oder Auge), der zur Berechnung der Position des Musters (z. B. Pupillen- oder Irismittelpunkt) und zur Auswahl des tatsächlichen Blickrichtungsvektors dient. Hierzu kann beispielsweise ein sogenanntes 3D-Kamerasystemmodell hinzugezogen werden, das beispielsweise in einer Konfigurationsdatei alle Modellparameter, wie Lageparameter, optische Parameter (vgl. Kamera 14a und 14b) gespeichert hat. Other embodiments may also work with the image data of a camera and another set of information (eg, relative or absolute positions of characteristic points on the face or eye) used to calculate the position of the pattern (eg, pupil or iris center). and to select the actual line of sight vector. For this purpose, for example, a so-called 3D camera system model can be consulted which, for example, has stored all model parameters, such as position parameters, optical parameters (see camera 14a and 14b) in a configuration file.
Nachfolgend wird nun ausgehend von dem Beispiel der Pupillenerkennung die Gcsamt- funktional ität des 3D-Bildanalysators 400 im Detail beschrieben. Das in dem 3D- Bildanalysator 400 gespeicherte oder eingelesene Modell umfasst Daten hinsichtlich der Kameraeinheit, d.h. hinsichtlich des Kamerasensors (z.B. Pixelgröße, Sensorgröße und Auflösung) und verwendeter Objektive (z.B. Brennweite und Objektivverzeichnung), Daten bzw. Charakteristiken des zu erkennenden Objekts (z.B. Charakteristika eines Auges) und Daten hinsichtlich weitere relevanter Objekte (z.B. eines Displays im Falle der Nutzung des Systems 1000 als Eingabegerät). Hereinafter, starting from the example of the pupil detection, the total function of the 3D image analyzer 400 will be described in detail. The model stored or read in the 3D image analyzer 400 includes data regarding the camera unit, i. with regard to the camera sensor (eg pixel size, sensor size and resolution) and lenses used (eg focal length and lens distortion), data or characteristics of the object to be detected (eg characteristics of an eye) and data regarding other relevant objects (eg a display in case of use of the Systems 1000 as input device).
Der D-Positionsberechner 404 berechnet die Augenposition bzw. den Pupillenmittelpunkt auf Basis der zwei oder auch mehreren Kamerabilder (vgl. 14a und 14b) durch Triangula- tion. Hierzu bekommt er 2D-Koordinaten eines Punktes in den zwei Kamerabildem (vgl. 14 a und 14b) über die Prozesskette aus Bildprozessoren 10a und 10b, Geom etri cum Wandler 202 und Selektiv- adaptiver Datenprozessor 300 zur Verfügung gestellt. Aus den über- gebenen 2D-Koordinaten werden mithilfe des 3 D - am cram o d e 11 s insbesondere unter Be- rücksichtigung der optischen Parameter für beide Kameras 14a und 14b die Lichtstrahlen berechnet, die den 3 D-Punkt als 2 D- Punkt auf dem Sensor abgebildet haben. Der Punkt der zwei Geraden mit dem geringsten Abstand zueinander (im Idealfall der Schnittpunkt der Geraden) wird als Position des gesuchten 3 D- unktes angenommen. Diese 3D-Position wird zusammen mit einem Fehlermaß, das die Genauigkeit der übergebenen 2D- Koordinaten in der Verbindung mit den Modellparametem beschreibt, entweder über die Schnittstelle 18a als Ergebnis ausgegeben oder an den Blickrichtungsberechner 408 übergeben. Auf Basis der Position im 3D-Raum kann der Blickwinkelberechner 408 die Blickrichtung aus zwei ellipsenförmigen Projektionen der Pupille auf die Kamerasensoren ohne Kalibrierung und ohne Kenntnis über den Abstand zwischen den Augen und Kamerasystem bestimmen. Hierzu nutzt der Blickrichtungsberechner 408 neben den 3 D-Lageparameter der Bildsensoren die Ellipsenparameter, die mittels des Geometrieanalysators 202 ermittelt worden sind und die mittels des Positionsberechners 404 bestimmte Position. Aus der SD- Position des Pupillenmittelpunkts und der Lage der Bildsensoren werden durch Drehung der realen Kameraeinheiten virtuelle Kameraeinheiten berechnet, deren optische Achse durch den 3D-Pupillenmittelpunkt verläuft. Anschließend werden jeweils aus den Projektionen der Pupille auf den realen Sensoren Projektionen der Pupille auf die virtuellen Senso- ren berechnet, so dass zwei virtuelle Ellipsen entstehen. Aus den Parametern der virtuellen Ellipsen auf den beiden virtuellen Bildsensoren können je Bildsensor zwei Blickpunkte des Auges auf einer beliebigen zur jeweiligen virtuellen Sensorebene parallelen Ebene berechnet werden. Mit den vier Blickpunkten und den 3 D - P up i 11 en m i tt el pu nk t en lassen sich vier Blickrichtungsvektoren berechnen, also jeweils zwei Vektoren pro Kamera. Von diesen vier möglichen Blickrichtungsvektoren ist immer genau einer der einen Kamera mit einem der anderen Kamera annähernd identisch. Die beiden identischen Vektoren geben die gesuchte Blickrichtung des Auges (gaze direction) an, die dann vom Blickrichtungsberechner 404 über die Schnittstelle 18a ausgegeben wird. Ein besonderer Vorteil in dieser D-Berechnung liegt darin, dass eine berührungslose und vollständige kalibrierungsfreie Ermittlung der 3 D- Augenposition der 3 D-Blickrichtung und der Pupillengröße unabhängig von der Kenntnis über die Lage des Auges zu der Kamera möglich ist. Eine analytische Bestimmung der 3 D-Augenposition und SD- Blickrichtung unter Einbeziehung eines 3 D-Raummodells ermöglicht eine beliebige Kame- raanzahl (größer 1) und beliebige Kameraposition im 3 D-Raum. Die kurze Latenzzeit mit der gleichzeitig hohen Frame-Rate ermöglicht eine Echtzeitfähigkeit des beschriebenen Systems 1000. Ferner können, optionaler, aber nicht notwendiger Weise, auch die sogenannten Zeitregime fest sein, so dass die Zeitdifferenzen zwischen aufeinanderfolgenden Ergebnissen konstant sind. Dies ist z. B. in sicherheitskritischen Anwendungen vorteilhaft bei denen die Ergebnisse innerhalb festgelegten Zeitabständen vorliegen müssen und kann z. B. durch den Einsatz von FPGAs zur Berechnung erreicht werden. Entsprechend einer alternativen Variante ist es auch möglich mit nur einer Kamera ebenfalls eine Blickrichtungsbestimmung durchzuführen. Dazu ist es einerseits erforderlich, den 3 D-Pupillenmittelpunkt basierend auf den Bilddaten einer Kamera und ggf. einem Satz zusätzlicher Informationen zu berechnen und andererseits muss aus den zwei möglichen Blickrichtungsvektoren, welche pro Kamera berechnet werden können der tatsächliche Blickrichtungsvektor ausgewählt werden, wie später anhand von Fig. 5b erläutert wird. The D-position calculator 404 calculates the eye position or the pupil center on the basis of the two or more camera images (see Figures 14a and 14b) by triangulation. For this purpose, it receives 2D coordinates of a point in the two camera images (see FIGS. 14 a and 14 b) via the process chain consisting of image processors 10 a and 10 b, geometry converter 202 and selectively adaptive data processor 300. From the transmitted 2D coordinates, the 3 D - on the cram 11 taking into account the optical parameters for both cameras 14a and 14b, the light beams which have mapped the 3 D point as a 2 D point on the sensor are calculated. The point of the two straight lines with the shortest distance to each other (ideally the intersection of the straight line) is assumed to be the position of the desired 3-D point. This 3D position, along with an error measure describing the accuracy of the passed 2D coordinates in connection with the model parameters, is either output via the interface 18a or passed to the viewing direction calculator 408. Based on the position in the 3D space, the viewing angle calculator 408 can determine the viewing direction from two elliptical projections of the pupil to the camera sensors without calibration and without knowledge of the distance between the eyes and the camera system. For this purpose, the viewing direction calculator 408 uses, in addition to the 3 D positional parameters of the image sensors, the ellipse parameters which have been determined by means of the geometry analyzer 202 and the position determined by means of the position calculator 404. From the SD position of the pupil center and the position of the image sensors, virtual camera units are calculated by rotation of the real camera units, the optical axis of which passes through the 3D pupil center. Subsequently, projections of the pupil on the virtual sensors are respectively calculated from the projections of the pupil on the real sensors, so that two virtual ellipses are created. From the parameters of the virtual ellipses on the two virtual image sensors, two viewpoints of the eye can be calculated for each image sensor on any plane parallel to the respective virtual sensor plane. With the four viewpoints and the 3 D - P up i 11 el pu nk t s, four view-direction vectors can be calculated, ie two vectors per camera. Of these four possible line of sight vectors, exactly one of the one camera is always approximately identical to one of the other cameras. The two identical vectors indicate the searched eye direction (gaze direction), which is then output by the sight line calculator 404 via the interface 18a. A particular advantage in this D-calculation is that a non-contact and complete calibration-free determination of the 3D eye position of the 3D viewing direction and the pupil size is possible independently of the knowledge about the position of the eye to the camera. An analytical determination of the 3-D eye position and SD viewing direction using a 3-D spatial model allows any number of cameras (greater than 1) and any camera position in 3-D space. The short latency with the simultaneously high frame rate enables a real-time capability of the system 1000 described. Furthermore, optionally, but not necessarily, the so-called time regimes may also be fixed, so that the time differences between successive ones Results are constant. This is z. B. in safety-critical applications advantageous in which the results must be present within predetermined time intervals and z. B. be achieved by the use of FPGAs for calculation. According to an alternative variant, it is also possible with only one camera also to perform a viewing direction determination. For this purpose, it is necessary on the one hand to calculate the 3 D pupil center based on the image data of a camera and possibly a set of additional information, and on the other hand, the actual view direction vector must be selected from the two possible line of sight vectors which can be calculated per camera, as explained below of Fig. 5b is explained.
Zur Ermittlung des 3D-Pupillenmittelpunktes gibt es mehrere Möglichkeiten. Eine davon basiert auf der Auswertung von Relationen zwischen charakteristischen Punkten im ersten Kamerabild. Dabei wird ausgehend von dem Pupillenmittelpunkt im ersten Kamerabild unter Berücksichtigung des optischen Systems der Kamera, wie oben beschrieben, eine Gerade berechnet, die durch den 3 D-Pupillenmittelpunkt führt, wobei aber noch nicht bekannt ist, wo auf dieser Geraden sich der gesuchte Pupillenmittelpunkt befindet. Dazu wird der Abstand zwischen Kamera bzw. genauer Hauptpunkt 1 der Kamera (Hi in Fig. 8a) benötigt. Diese Information lässt sich schätzen, wenn mindestens zwei charakteristische Merkmale im ersten Kamerabild (z. B. die Pupillenmittelpunkte) ermittelte werden und deren Abstände zueinander als statistisch ermittelter Wert, z. B. über eine große Personengruppe, bekannt ist. Dann kann der Abstand zwischen Kamera und 3 D-Pupillenmittelpunkt geschätzt werden, indem der ermittelte Abstand (z. B. in Pixeln) zwischen den charakteristischen Merkmalen ins Verhältnis gesetzt wird zu dem als statistische Größe bekannten Abstand (z. B. in Pixeln) der Merkmale in einem bekannten Abstand zur Kamera. There are several possibilities for determining the 3D pupil center point. One of them is based on the evaluation of relations between characteristic points in the first camera image. In this case, starting from the pupil center point in the first camera image, taking into account the optical system of the camera, as described above, a straight line is calculated, which leads through the 3 D pupil center, but it is not yet known where on this straight line the desired pupil center is located , For this purpose, the distance between camera or exact main point 1 of the camera (Hi in Fig. 8a) is required. This information can be estimated if at least two characteristic features in the first camera image (eg the pupil centers) are determined and their distances from each other are determined as statistically determined value, eg. B. over a large group of people known. Then, the distance between the camera and the 3 D pupil center can be estimated by ratioing the determined distance (eg, in pixels) between the characteristic features to the distance (eg, in pixels) known as statistical size Features at a known distance to the camera.
Eine weitere Variante um den 3 D-Pupillenmittelpunktes zu erhalten ist, das dessen Position oder dessen Abstand zur Kamera dem 3 D-Bildanal ysator innerhalb des zweiten Satzes an Informationen geliefert wird (z. B. von einem vorgelagerten Modul zur 3D- Gesichtsdetektion, bei dem die Positionen charakteristischer Punkte des Gesichts oder der Augenpartie im 3 - Raum ermittelt werden).  Another variation to obtain the 3 D pupil center point is that its position or distance from the camera is provided to the 3-D image analyzer within the second set of information (eg, from an upstream 3D face detection module) the positions of characteristic points of the face or eye area in 3 - space are determined).
Um den tatsächlichen Blickrichtungsvektor zu ermitteln, wurden in der bisherigen Beschreibung zum ..3 D- B i klanal ysator", welche das Verfahren zum kalibrationsfreien Eye- tracking umfasst, bisher mindestens 2 Kamerabilder aus unterschiedlichen Perspektiven vorausgesetzt. Bei der Berechnung der Blickrichtung gibt es eine Stelle, an der pro Kamerabild genau 2 mögliche Blickrichtungsvektoren ermittelt werden, wobei jeweils der zweite Vektor einer Spiegelung des ersten Vektors an der Verbindungslinie zwischen virtuellem Kamerasensormittelpunkt und 3 D-Pupillenmittelpunkt entspricht. Von den beiden Vekto- ren, die sich aus dem anderen Kamerabild ergeben, stimmt genau ein Vektor nahezu mit einem aus dem ersten Kamerabild berechneten Vektor überein. Diese übereinstimmenden Vektoren geben die zu ermittelnde Blickrichtung an. Um das kalibrationsfreie Eyetraeking auch mit einer Kamera durchführen zu können, muss von den beiden möglichen Blickrichtungsvektoren, im Folgenden als„vi" und„v2" bezeichnet, die aus dem Kamerabild ermittelt werden, der tatsächliche Blickrichtungsvektor (im Folgenden als„vb" bezeichnet) ausgewählt werden. Dieser Vorgang wird beispielhaft anhand von Fig. 5b erläutert. Fig. 5b zeigt eine Abbildung des sichtbarer Teils des Augapfels (grün umrandet) mit der Pupille und den beiden ins Bild projizierten möglichen Blickrichtungen vi und v2. In order to determine the actual line of sight vector, in the previous description of the "3-channel system", which includes the method for calibration-free eye tracking, at least two camera images from different perspectives have been assumed so far a point at which exactly two possible line of sight vectors are determined per camera image, the second vector corresponding to a mirroring of the first vector at the connecting line between the virtual camera sensor center point and the 3 D pupil center point. However, as a result of the other camera image, exactly one vector almost coincides with a vector computed from the first camera image. These matching vectors indicate the viewing direction to be determined. In order to be able to perform the calibration-free eye-tracking with a camera, of the two possible line of sight vectors, hereinafter referred to as "vi" and "v2", which are determined from the camera image, the actual line of sight vector (hereinafter referred to as "vb") This process is explained by way of example with reference to Fig. 5b Fig. 5b shows an image of the visible part of the eyeball (bordered in green) with the pupil and the two possible viewing directions vi and v2 projected into the image.
Zur Auswahl der Blickrichtung„vb" gibt es mehrere Möglichkeiten, die einzeln oder auch in Kombination genutzt werden können, um den tatsächlichen Blickrichtungsvektor auszuwählen. Typischerweise erfolgt die Auswahl des korrekten 3D-Blickvektors aus zwei möglichen 3 D-Blickvektoren, wobei beispielsweise entsprechend einem Ausführungsbeispiel nur ein einziges Kamerabild (+ Zusatzinformationen) genutzt wird. Einige dieser Möglichkeiten (die Auflistung ist nicht abschließend) werden nachfolgend erläutert, wobei davon ausgegangen wird, dass vi und v2 (vgl. Fig. 5a) zum Zeitpunkt dieser Auswahl bereits ermittelt worden sind: For selecting the line of sight "vb", there are several possibilities that can be used individually or in combination to select the actual line of sight vector Typically, the selection of the correct 3D view vector is made from two possible 3 D view vectors, for example according to one embodiment Some of these possibilities (the list is not exhaustive) are explained below, assuming that vi and v2 (see Fig. 5a) have already been determined at the time of this selection:
Entsprechend einer ersten Möglichkeit kann eine Auswertung basierend auf der Sklera (die weiße Lederhaut um die Iris) im Kamerabild erfolgen. Es werden 2 Strahlen (beginnen beim Pupillenmittelpunkt und sind unendlich lang) definiert, einer in Richtung von vi und einer in Richtung von v2. Die beiden Strahlen werden in das Kamerabild des Auges projiziert und verlaufen dort jeweils vom Pupillenmittelpunkt zum Bildrand. Der Strahl, der weniger zur Sklera gehörende Pixel überstreicht, gehört zum tatsächlichen Blickrichtungsvektor vb. Die Pixel der Sklera unterscheiden sich durch ihren Grauwert von denen der an sie grenzenden Iris und von denen der Augenlieder. Diese Methode stößt an ihre Grenzen, wenn das zum aufgenommenen Auge gehörende Gesicht zu weit von der Kamera abgewendet ist (also der Winkel zwischen optischer Achse der Kamer und dem senkrecht auf der Gesichtsebene stehenden Vektor zu groß wird). Entsprechend einer zweiten Möglichkeit kann eine Auswertung der Lage des Pupillenmittelpunktes innerhalb der Augenöffnung erfolgen. Die Lage des Pupillenmittelpunktes innerhalb des sichtbaren Teils des Augapfels bzw. innerhalb der Augenöffnung kann zur Auswahl des tatsächlichen Blickrichtungsvektors genutzt werden. Eine Möglichkeit dazu ist, 2 Strahlen (beginnen beim Pupillenmittelpunkt und sind unendlich lang) zu definieren, einer in Richtung von vi und einer in Richtung von v2. Die beiden Strahlen werden in das Kamerabild des Auges projiziert und verlaufen dort jeweils vom Pupillenmittelpunkt zum Bildrand. Entlang beider Strahlen im Kamerabild wird jeweils die Distanz zwischen Pupil- lenmittelpunkt und dem Rand der Augenöffnung (in Fig.5b grün eingezeichnet) ermittelt. Der Strahl, für den sich die kürzere Distanz ergibt, gehört zum tatsächlichen Blickrichtungsvektor. Diese Methode stößt an ihre Grenzen, wenn das zum au fgenommenen Auge gehörende Gesicht zu weit von der Kamera abgewendet ist (also der Winkel zwischen optischer Achse der Kamer und dem senkrecht auf der Gesichtsebenc stehenden Vektor zu groß wird). According to a first possibility, an evaluation based on the sclera (the white dermis around the iris) can take place in the camera image. It defines 2 rays (starting at the pupillary center and being infinitely long), one in the direction of vi and one in the direction of v2. The two beams are projected into the camera image of the eye and run there from the pupil center to the edge of the image. The ray which sweeps over fewer pixels belonging to the sclera belongs to the actual line of sight vector vb. The pixels of the sclera differ by their gray value from those of the iris bordering on them and those of the eyelids. This method reaches its limits if the face belonging to the recorded eye is too far away from the camera (ie the angle between the optical axis of the camera and the vector perpendicular to the face plane becomes too large). According to a second possibility, an evaluation of the position of the pupil center can be made within the eye opening. The position of the pupil center within the visible part of the eyeball or within the eye opening can be used to select the actual line of sight vector. One way to do that is to define 2 rays (starting at the pupillary center and are infinitely long), one in the direction of vi and one in the direction of v2. The two beams are projected into the camera image of the eye and run there from the pupil center to the edge of the image. The distance between the pupil center and the edge of the eye opening (shown in green in FIG. 5b) is determined along both beams in the camera image. The ray that results in the shorter distance belongs to the actual line of sight vector. This method reaches its limits when the face belonging to the removed eye is too far away from the camera (ie the angle between the optical axis of the camera and the vector perpendicular to the face plane becomes too large).
Entsprechend einer dritten Möglichkeit kann eine Auswertung der Lage des Pupillenmittelpunktes zu einem Referenzpupillenmittelpunkt erfolgen. Die Lage des im Kamerabild ermittelten Pupillenmittelpunktes innerhalb des sichtbaren Teils des Augapfels bzw. inner- halb der Augenöffnung kann zusammen mit einem Referenzpupillenmittelpunkt zur Auswahl des tatsächlichen Blickrichtungsvektors genutzt werden. Eine Möglichkeit dazu ist, 2 Strahlen (beginnen beim Pupillenmittelpunkt und sind unendlich lang) zu definieren, einer in Richtung von vi und einer in Richtung von v2. Die beiden Strahlen werden in das Kamerabild des Auges projiziert und verlaufen dort jeweils vom Pupillenmittelpunkt zum Bildrand. Der Referenzpupillenmittelpunkt innerhalb der Augenöffnung entspricht dem Pupillenmittelpunkt, in dem Moment in dem das Auge direkt in Richtung der zur Bildaufnahme eingesetzten Kamera schaut (genauer ausgedrückt in Richtung des ersten Hauptpunktes der Kamera). Derjenige in das Kamerabild projizierte Strahl, welcher im Bild den größeren Abstand zum Referenzpupillenmittelpunkt hat, gehört zum tatsächlichen Bliek- richtungsvektor. Zur Ermittlung des Referenzpupillenmittelpunktes gibt es mehrere Möglichkeiten, von denen einige im Folgenden beschrieben werden: According to a third possibility, an evaluation of the position of the pupil center can be made to a reference pupil center. The position of the pupil center determined in the camera image within the visible part of the eyeball or within the eye opening can be used together with a reference pupil center to select the actual line of sight vector. One way to do this is to define 2 rays (starting at the pupillary center and infinitely long), one in the direction of vi and one in the direction of v2. The two beams are projected into the camera image of the eye and run there from the pupil center to the edge of the image. The reference pupil center point within the eye opening corresponds to the pupil center point at the instant that the eye looks directly towards the camera used for image recording (more precisely in the direction of the first main point of the camera). The beam projected into the camera image, which has the greater distance to the reference pupil center in the image, belongs to the actual direction vector. For determining the reference pupil center, there are several possibilities, some of which are described below:
Möglichkeit 1 (spezieller Anwendungsfall): Der Referenzpupillenmittelpunkt ergibt sich aus dem ermittelten Pupillenmittelpunkt, in dem Fall, in dem das Auge direkt in Richtung des Kamerasensormittelpunktes schaut. Dies ist gegeben, wenn die Pupillenkontur auf der virtuellen Sensorebene (siehe Beschreibung zur Blickrichtungsberechnung) einen Kreis beschreibt. Possibility 1 (special application): The reference pupil center results from the determined pupil center, in the case where the eye looks directly in the direction of the camera sensor center point. This is the case if the pupil contour on the virtual sensor plane (see description for viewing direction calculation) describes a circle.
Möglichkeit 2 (allgemeiner Anwendungsfall): Als grobe Schätzung der Position des Refe- renzpupillenmittelpunktes kann der Schwerpunkt der Fläche der Augenöffnung genutzt werden. Diese Methode der Schätzung stößt an ihre Grenzen, wenn die Ebene, in der das Gesicht liegt, nicht parallel zur Sensorebene der Kamera liegt. Diese Einschränkung kann kompensiert werden, wenn die Neigung der Gesichtsebene zur Kamerasensorebene be- kannt ist (z. B. durch eine vorher ausgeführte Bestimmung der Kopfposition und - ausrichtung) und diese zur Korrektur der Position des geschätzten Referenzpupillenmittelpunktes genutzt wird. Diese Methode erfordert außerdem, dass der Abstand zwischen SD- Pupillenmittelpunkt und optischer Achse des virtuellen Sensors sehr viel geringer ist, als der Abstand zwischen 3 D-Pupillenmittelpunkt und Kamera. Possibility 2 (general application): As a rough estimate of the position of the reference pupil center, the center of gravity of the area of the eye opening can be used. This method of estimation reaches its limits when the plane in which the face lies is not parallel to the sensor plane of the camera. This limitation can be compensated if the inclination of the face plane to the camera sensor plane is known (eg, by a previously performed determination of the head position and orientation) and this is used to correct the position of the estimated reference pupil center. This method also requires that the distance between the pupil center of the pupil and the optical axis of the virtual sensor be much smaller than the distance between the pupil center of the pupil and the camera.
Möglichkeit 3 (allgemeiner Anwendungsfall): Wenn die 3D-Position des Augenmittelpunktes zur Verfügung steht, kann eine Gerade /.wischen 3 D- Augenmittelpunkt und virtuellem Sensormittclpunkt bestimmt werden und der Schnittpunkt dieser Geraden mit der Oberfläche des Augapfels. Der Referenzpupillenmittelpunkt ergibt sich aus der ins Kamerabild umgerechneten Position dieses Schnittpunktes. Possibility 3 (general application): If the 3D position of the center of the eye is available, a straight line /. 3 D-eye center point and virtual sensor center point can be determined and the intersection of this line with the surface of the eyeball. The reference pupil center results from the position of this intersection converted into the camera image.
Entsprechend weiteren Ausführungsbeispielen kann im Hinblick auf den Einsatz des Hough-Prozessors anstelle des FPGAs 10a und 10b ein ASIC (anwendungsspezifischer Chip) eingesetzt werden, der sich besonders bei hohen Stückzahlen mit sehr geringen Stückkosten realisieren lässt. In Summe lässt sich jedoch feststellen, dass unabhängig von Implementierung des Hough-Prozessors 10a und 10b ein geringer Energieverbrauch durch die sehr effiziente Verarbeitung und den damit verbundenen geringen Systemtaktbedarf erzielt werden kann. According to further embodiments, with regard to the use of the Hough processor instead of the FPGAs 10a and 10b, an ASIC (application-specific chip) can be used, which can be realized especially at high volumes with very low unit cost. In sum, however, regardless of the implementation of the Hough processor 10a and 10b, low power consumption can be achieved through very efficient processing and the associated low system clock overhead.
Trotz dieser Merkmale bleibt der hier eingesetzte Hough-Prozessor bzw. das auf dem Hough-Prozessor ausgeführte Verfahren sehr robust und störunanfällig. Es sei an dieser Stelle angemerkt, dass der in Fig. 2a erläuterte Hough-Prozessor 100 in unterschiedlichen Kombinationen mit unterschiedlich insbesondere in Hinblick auf Fig. 5 vorgestellten Merkmalen eingesetzt werden kann. Despite these features, the Hough processor used here or the method executed on the Hough processor remains very robust and prone to interference. It should be noted at this point that the Hough processor 100 explained in FIG. 2 a can be used in different combinations with features presented differently, in particular with regard to FIG. 5.
Anwendungen des Hough-Prozessors gemäß Fig. 2a sind z.B. Sekundenschlafwarner bzw. Müdigkeitsdetektoren als Fahrassistenzsysteme im automobilen Bereich (bzw. allgemein bei sicherheitsrelevanten Menschmaschineschnittstellen). Hierbei kann durch Auswertung der Augen (z.B. Verdeckung der Pupille als Maß für den Öffnungsgrad) und unter Berücksichtigung der Blickpunkte und des Fokus ein bestimmtes Müdigkeitsmuster detektiert werden. Weiter kann der Hough-Prozessor bei Eingabegeräten bzw. Eingabeschnittstellen für technische Geräte zum Einsatz kommen; hier werden dann Augenposition und Blickrichtung als Inputparameter genutzt. Konkrete Anwendungen wären hierbei die Analyse oder Unterstützung des Nutzers beim Anschauen von Bildschirminhalten, z.B. beim Hervorheben von bestimmten fokussierten Bereichen. Derartige Anwendungen sind im Bereich des assisted living, bei Computerspielen, bei Optimierung von 3 D- Visualisierung durch Einbeziehung der Blickrichtung, bei Markt- und Medienforschung oder bei ophthalmologischen Diagnostiken und Therapien besonders interessant. Applications of the Hough processor according to FIG. 2a are, for example, microsleep sleepers or fatigue detectors as driver assistance systems in the automotive sector (or in general for safety-relevant human machine interfaces). By evaluating the eyes (eg covering the pupil as a measure of the degree of opening) and taking into account the viewpoints and the focus, a specific fatigue pattern can be detected. Furthermore, the Hough processor can be used on input devices or input interfaces for technical devices; Here the eye position and viewing direction are used as input parameters. Concrete applications here would be the analysis or support of the user when viewing screen contents, eg when highlighting certain focused areas. Such applications are in the area of assisted living, in computer games, with optimization of 3 D visualization By looking at the viewing direction, in market and media research or in ophthalmological diagnostics and therapies particularly interesting.
Wie oben bereits angedeutet, ist die Implementierung des oben vorgestellten Verfahrens plattformunabhängig, so dass das oben vorgestellte Verfahren auch auf anderen Hardwareplattformen, wie z.B. einem PC ausgeführt werden kann. Also bezieht sich ein weiteres Ausführungsbeispiel auf ein Verfahren für die H o ugh- Vcrarbci tung mit den Schritten Verarbeiten einer Mehrzahl von Samples, die jeweils ein Bild aufweisen, unter Verwendung eines Pre-Prozessors, wobei das Bild des jeweiligen Samples gedreht und/oder gespiegelt wird, so dass eine Mehrzahl von Versionen des Bildes des jeweiligen Samples für jedes Sample ausgegeben wird und des Erfassens vorbestimmten Musters in der Mehrzahl von Sampeln auf Basis der Mehrzahl von Versionen unter Verwendung einer Hough- Transformationseinrichtung, die einen Verzögerungsfilter mit einer Filtercharakteristik aufweist, dessen Filtercharakteristik abhängig von dem ausgewählten vorbestimmten Mus- tersatz eingestellt wird. As already indicated above, the implementation of the method presented above is platform independent, so that the method presented above can also be used on other hardware platforms, e.g. a PC can be executed. Thus, another embodiment relates to a method for high-contrast processing comprising the steps of processing a plurality of samples each having an image using a pre-processor, wherein the image of the respective sample is rotated and / or mirrored is outputted so that a plurality of versions of the image of each sample for each sample and the detection of predetermined pattern in the plurality of samples based on the plurality of versions using a Hough transformer having a delay filter with a filter characteristic Filter characteristic is set depending on the selected predetermined pattern set.
Auch wenn der obigen Ausführungen im Zusammenhang mit der anpassbaren Charakteristik immer von einer Filtercharakteristik gesprochen wurde, sei an dieser Stelle angemerkt, dass entsprechend weiteren Ausführungsbeispielen die anpassbare Charakteristik sich auch auf die Nachverarbeitungsscharakteristik (Biegungs- oder Verzerrungscharakteristik) bei einer schnellen 2D Korrelation beziehen kann. Diese Implementierung wird anhand von Fig. 4a bis Fig. 4d erläutert. Although the above discussion has always referred to a filter characteristic in the context of the adaptive characteristic, it should be noted that according to further embodiments, the adaptive characteristic may also refer to the post-processing characteristic (bending or distortion characteristic) in a fast 2D correlation. This implementation will be explained with reference to FIGS. 4a to 4d.
Fig. 4a zeigt eine Verarbeitungskette 1000 einer schnellen 2D Korrelation. Die Vcrarbci - tungskette der 2D Korrelation umfasst zumindest die Funktionsblöcke 1 105 zur 2D- Biegung und 1 1 10 zur Verschmelzung. Das Vorgehen bei der 2D-Biegung ist in Fig. 4b illustriert. Fig. 4b ziert exemplarische Zusammenstellung an Templates. Wie auf Basis dieser Verarbeitungskette 1000 ein Hough-Feature extrahiert werden kann, wird anhand von Fig. 4c zusammen mit Fig. 4d deutlich. Fig. 4c zeigt die pixelweise Korrelation mit n Templates veranschaulicht (in diesem Falle beispielsweise für Geraden unterschiedlicher Steigung) zur Erkennung der Ellipse 1 1 15, während Fig. 4d das Ergebnis der pixelweisen Korrelation zeigt, wobei typischerweise über die n Ergebnisbilder noch eine Maximumsuche erfolgt. Jedes Ergebnisbild enthält pro Pixel ein Houghfeature. Nachfolgend wird diese I lough- Verarbeitung im Gesamtkontext erläutert. Fig. 4a shows a processing chain 1000 of a fast 2D correlation. The color correlation chain of the 2D correlation comprises at least the functional blocks 1 105 for 2D bending and 1 1 10 for the fusion. The procedure for 2D bending is illustrated in FIG. 4b. Fig. 4b decorates exemplary compilation of templates. How a Hough feature can be extracted on the basis of this processing chain 1000 becomes clear with reference to FIG. 4c together with FIG. 4d. 4c shows the pixel-by-pixel correlation with n templates illustrated (in this case, for example, for straight lines of different pitch) for recognizing the ellipse 1 1 15, while FIG. 4d shows the result of the pixel-by-pixel correlation, typically with a maximum search via the n result images , Each result image contains a hough feature per pixel. The following is an explanation of this lough processing in the overall context.
Im Gegensatz zur Umsetzung mit einem Verzögerungsfilter mit anpassbarer Charakteristik (Implementierung optimiert für parallele FPGA Strukturen) würde bei der hier dargestellten Hough- erarbeitung, welche insbesondere für eine PC -basierte Umsetzung prädesti- nicrt ist, ein Teil der Verarbeitung durch eine andere Vorgehensweise ausgetauscht werden. In contrast to the implementation with a delay filter with adaptable characteristics (implementation optimized for parallel FPGA structures), the Hough development shown here, which is predestined in particular for a PC-based implementation, would nicrt is, part of the processing will be exchanged by a different course of action.
Bisher war es so, dass quasi jede Spalte des Verzögerungsfilters für eine gesuchte Struktur steht (z. B. Geradenabschnitte unterschiedlicher Steigung). Beim durchlaufen des Filters ist die Spaltennummer mit dem höchsten Summenwert maßgeblich. Dabei steht die Spaltennummer für eine Ausprägung der gesuchten Struktur und der Summen wert gibt ein Maß für die Ubereinstimmung mit der gesuchten Struktur an. Bei der PC-basierten Umsetzung wird der Verzögerungsfilter durch schnelle 2D Korrelation ersetzt. Der bisherige Verzögerungsfilter ist je nach Größe in der Lage n Ausprägungen eines bestimmten Musters abzubilden. Diese n Ausprägungen werden als Template im Speicher hinterlegt. Anschließend wird das vorverarbeitete Bild (z. B. binäres Kantenbild oder Gradientenbild) pixelweise durchlaufen. An jeder Pixelposition werden jeweils alle abgelegten Templates mit dem darunterliegenden Bildinhalt (entsprechend einer Nachverarbeitungscharakteristik) abgeglichen (es wird sozusagen die Umgebung der Pixelposition (in Größe des Templates) ausgewertet). Dieses Vorgehen wird in der digitalen Bildverarbeitung auch als Korrelation bezeichnet. Man erhält also für jedes Template einen Korrelationswert - also ein Maß für die Ubereinstimmung - mit dem darunterliegenden Bildinhalt. Diese entsprechen sozusagen den Spaltensummen aus dem bisherigen Verzögerungsfilter. Nun entscheidet man sich (pro Pixel) für das Template mit dem höchsten Korrelationswert und merkt sich dessen Templatenummer (die Templatenummer beschreibt die Ausprägung der gesuchten Struktur, z. B. Steigung des Geradenabschnitts). Man erhält also pro Pixel einen Korrelationswert und eine Templatenummer. Dadurch lässt sich ein Houghfeature, wie es bereits erläutert, vollständig beschreiben. Previously, it was the case that virtually every column of the delay filter stands for a sought-after structure (eg straight line sections of different pitch). When passing through the filter, the column number with the highest sum value is decisive. The column number stands for a characteristic of the sought-after structure and the sum value indicates a measure of the agreement with the sought-after structure. In the PC-based implementation, the delay filter is replaced by fast 2D correlation. Depending on the size, the previous delay filter is able to map n characteristics of a specific pattern. These n values are stored as templates in the memory. Subsequently, the preprocessed image (eg binary edge image or gradient image) is traversed pixel by pixel. At each pixel position, all stored templates are compared with the underlying image content (corresponding to a postprocessing characteristic) (the environment of the pixel position (in terms of the size of the template, so to speak) is evaluated). This procedure is also referred to as correlation in digital image processing. So you get for each template a correlation value - so a measure of the match - with the underlying image content. These correspond, so to speak, the column sums from the previous delay filter. Now one decides (per pixel) for the template with the highest correlation value and remembers its template number (the template number describes the characteristics of the searched structure, eg slope of the straight line section). So you get per pixel a correlation value and a template number. This allows a Houghfeature, as already explained, fully describe.
Es sei noch angemerkt, dass die Korrelation der einzelnen Templates mit dem Bildinhalt sowohl im Orts- als auch im Frequenzbereich durchgeführt werden kann. Das heißt, dass das Eingangsbild zunächst jeweils mit allen n Templates korreliert wird. Man erhält n Ergebnisbilder. Legt man diese Ergebnisbilder übereinander (wie einen Quader) würde man pro Pixel nach dem höchsten Korrelationswert suchen (über alle Ebenen). Dabei stehen dann einzelne Ebenen innerhalb des Quaders für einzelne Templates. Als Ergebnis erhält man wieder ein einzelnes Bild, das dann pro Pixel ein Korrelationsmaß und eine Templa- tenummer enthält - also pro Pixel ein Houghfeature. It should also be noted that the correlation of the individual templates with the image content can be carried out both in the local and in the frequency domain. This means that the input image is first correlated with all n templates. One obtains n result images. If you put these result images on top of each other (like a cuboid) you would search per pixel for the highest correlation value (over all levels). There are then individual levels within the box for individual templates. The result is again a single image, which then contains a correlation measure and a template number per pixel - that is one hough feature per pixel.
Auch wenn obige Aspekte immer im Zusammenhang mit der„Pupillenerkennung" erläutert wurden, sind die oben beschriebenen Aspekte auch für weitere Anwendungen nutzbar. Hier ist beispielsweise die Anwendungen„Sekundenschlafwarnung" zu nennen, auf die nachfolgend näher eingegangen wird. Although the above aspects have always been explained in the context of "pupil recognition", the aspects described above can also be used for other applications. Here, for example, the applications "second sleep warning" to call, will be discussed in more detail below.
Der Sekundenschlafwarner ist ein System, dass zumindest aus einer Bilderfassungseinrich- tung, einer Beleuchtungseinheit, einer Verarbeitungseinheit und einer akustischen und/oder optischen Signalisierungseinrichtung besteht. Durch Auswertung eines vom Nutzer aufgezeichneten Bildes ist das Gerät in der Lage eintretenden Sekundenschlaf oder Müdigkeit oder Abgclcnktheit des Nutzers zu erkennen und den Nutzer zu warnen. Das System kann z. B. in der Form ausgestaltet sein, dass man einen CMOS Bildsensor nutzt und die Szene im Infraroten Bereich ausleuchtet. Das hat den Vorteil, dass das Gerät unabhängig vom Umgebungslicht arbeitet und insbesondere den Nutzer nicht blendet. Als Verarbeitungseinheit wird ein eingebettetes Prozessorsystem genutzt, dass einen Softwarecode auf einem darunterliegenden Betriebssystem ausführt. Die Signalisierungseinrichtung kann z. B. aus einem Multifrequenzbuzzer und einer RGB-LED bestehen. The second sleep detector is a system that consists of at least one image capture device, a lighting unit, a processing unit and an acoustic and / or visual signaling device. By evaluating an image recorded by the user, the device is capable of recognizing onset of instantaneous sleep or tiredness or exhaustion of the user and of warning the user. The system can z. B. be configured in such a way that one uses a CMOS image sensor and illuminates the scene in the infrared range. This has the advantage that the device works independently of the ambient light and in particular does not dazzle the user. The processing unit used is an embedded processor system that executes a software code on an underlying operating system. The signaling device can, for. B. consist of a Multifrequenzbuzzer and an RGB LED.
Die Auswertung des aufgezeichneten Bildes kann in der Form erfolgen, dass in einer ersten Verarbeitungsstufe eine Gesichts- und eine Augendetektion und Augenanalyse mit einem Klassifikator durchgeführt werden. Diese Verarbeitungsstufe liefert erste Anhaltspunkte für die Ausrichtung des Gesichtes, die Augenpositionen und den Lidschlussgrad. The evaluation of the recorded image can take the form that in a first processing stage, face and eye detection and eye analysis are performed with a classifier. This level of processing provides initial clues for the orientation of the face, the eye positions, and the degree of lid closure.
Aufbauend darauf kann im darauffolgenden Schritt eine modellbasierte Augen feinanalyse durchgeführt werden. Ein dazu genutztes Augenmodell kann z. B. bestehen aus: einer Pupillen- und/oder Irisposition, einer Pupillen- und/oder Irisgröße, einer Beschreibung der Augenlider und der Augeneckpunkte. Dabei ist es ausreichend, wenn zu jedem Zeitpunkt einige dieser Bestandteile gefunden und ausgewertet werden. Die einzelnen Bestandteile können auch über mehrere Bilder hinweg getraekt werden, sodass sie nicht in jedem Bild vollständig neu gesucht werden müssen. Hough-Features können genutzt werden um die Gesichtsdetektion oder die Augendetektion oder die Augenanalyse oder die Augen feinanal ysc durchzuführen. Ein 2D-Bildanalysator kann zur Gesichtsdetektion oder zur Augendetektion oder zur Augenanalyse genutzt werden. Zur Glättung der bei der Gesichtsdetektion oder Augendetektion oder Augenanalyse oder Augenfeinanalyse ermittelten Ergebniswerte oder Zwischenergebnisse bzw. Werte- Verläufe kann der beschriebene Adapti v-selekti ve Datenprozessor genutzt werden. Based on this, a model-based eye fine analysis can be performed in the following step. An eye model used for this purpose can, for. Example, consist of: a pupil and / or iris position, a pupil and / or iris size, a description of the eyelids and the corner of the eyes. It is sufficient if at any time some of these components are found and evaluated. The individual components can also be traced over several images, so that they do not have to be completely re-searched in each image. Hough features can be used to perform the face detection or the eye detection or the eye analysis or the eyes feinanal ysc. A 2D image analyzer can be used for face detection or for eye detection or eye analysis. For smoothing the result values or intermediate results or value profiles which have been determined during face detection or eye detection or eye analysis or eye fine analysis, the described adaptive data processor can be used.
Eine zeitliche Auswertung des Lidschlussgrades und/oder der Ergebnisse der Augenfeinanalyse kann zur Ermittlung des Sekundenschlafs oder der Müdigkeit oder Abgelenkt- heit des Nutzers genutzt werden. Zusätzlich kann auch die im Zusammenhang mit dem 3D- Bildanalysator beschriebene kalibrationsfreie Blickrichtungsbestimmung genutzt werden um bessere Ergebnisse bei der Ermittlung des Sekundenschlafs oder der Müdigkeit oder Abgelenktheit des Nutzers zu erhalten. Zur Stabilisierung dieser Ergebnisse kann außer- dem der selektiv- adaptive Datenprozessor genutzt werden. A temporal evaluation of the lid closure degree and / or the results of the eye fine analysis can be used to determine the microsleep or the fatigue or distraction be used by the user. In addition, the calibration-free sighting determination described in connection with the 3D image analyzer can also be used to obtain better results in the determination of the microsleep or the fatigue or distraction of the user. To stabilize these results, the selective adaptive data processor can also be used.
Entsprechend einem Ausführungsbeispiel kann der Hough-Prozessor in der Bildeingangsstufe eine Einrichtung zur Kamerasteuerung umfassen. Entsprechend einem Ausführungsbeispiel kann ausgehend von einer bestimmten Blickrichtung ein sogenannter Blickpunkt (Schnittpunkt der Blickgeraden mit einer weiteren Ebene), z.B. zur Steuerung eines PCs, bestimmt werden. According to one embodiment, the Hough processor in the image input stage may comprise a camera control device. According to one embodiment, starting from a certain line of sight, a so-called view point (intersection of the straight line with another plane), e.g. to control a PC.
Wie oben bereits angedeutet, ist die Implementierung des oben vorgestellten Verfahrens plattformunabhängig, so dass das oben vorgestellte Verfahren auch auf anderen Hardwareplattformen, wie z.B. einem PC ausgeführt werden kann As already indicated above, the implementation of the method presented above is platform independent, so that the method presented above can also be used on other hardware platforms, e.g. a PC can be executed
Obwohl manche Aspekte im Zusammenhang mit einer Vorrichtung beschrieben wurden, versteht es sich, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfah- rens darstellen, so dass ein Block oder ein Bauelement einer Vorrichtung auch als ein entsprechender Verfahrensschritt oder ein Merkmal eines Verfahrensschritts zu verstehen ist. Analog dazu stellen Aspekte, die im Zusammenhang mit einem oder als ein Verfahrensschritt beschrieben wurden, auch eine Beschreibung eines entsprechenden Blocks oder Details oder Merkmals einer entsprechenden Vorrichtung dar. Einige oder alle Verfahrens- schritte können durch einen Apparat (unter Verwendung eines Hardwareapparats), wie z.B. eines Mikroprozessors, eines programmierbaren Computer oder einer elektronischen Schaltung ausgeführt werden. Bei einigen Ausführungsbeispielen können einige oder mehrere der wichtigen Verfahrensschritte durch einen solchen Apparat ausgeführt werden. Je nach bestimmten Implementierungsanforderungen können Ausführungsbeispiele der Erfindung in Hardware oder in Software implementiert sein. Die Implementierung kann unter Verwendung eines digitalen Speichermediums, beispielsweise einer Floppy-Disk, einer DVD, einer Blu-ray Di sc, einer CD, eines ROM, eines PROM, eines EPROM, eines KEP ROM oder eines FLASH-Speichers, einer Festplatte oder eines anderen magnetischen oder optischen Speichers durchgerührt werden, auf dem elektronisch lesbare Steuersignale gespeichert sind, die mit einem programmierbaren Computersystem derart zusammenwirken können oder zusammenwirken, dass das jeweilige Verfahren durchgeführt wird. Deshalb kann das digitale Speichermedium computerlesbar sein. Manche Ausführungsbeispiele gemäß der Erfindung umfassen also einen Datenträger, der elektronisch lesbare Steuersignale aufweist, die in der Lage sind, mit einem programmierbaren Computersystem derart zusammenzuwirken, dass eines der hierin beschriebenen Verfahren durchgeführt wird. Although some aspects have been described in the context of a device, it will be understood that these aspects also constitute a description of the corresponding method such that a block or device of a device is also to be understood as a corresponding method step or feature of a method step , Similarly, aspects described in connection with or as a method step also represent a description of a corresponding block or detail or feature of a corresponding device. Some or all of the method steps may be performed by an apparatus (using a hardware apparatus) such as a processor eg a microprocessor, a programmable computer or an electronic circuit. In some embodiments, some or more of the important method steps may be performed by such an apparatus. Depending on particular implementation requirements, embodiments of the invention may be implemented in hardware or in software. The implementation may be performed using a digital storage medium, such as a floppy disk, a DVD, a Blu-ray Disc, a CD, a ROM, a PROM, an EPROM, a KEP ROM or FLASH memory, a hard disk or a hard disk other magnetic or optical memory are stored on the electronically readable control signals, which can cooperate with a programmable computer system or cooperate such that the respective method is performed. Therefore, the digital storage medium can be computer readable. Thus, some embodiments according to the invention include a data carrier having electronically readable control signals capable of interacting with a programmable computer system such that one of the methods described herein is performed.
Allgemein können Ausführungsbeispiele der vorliegenden Erfindung als Computerprogrammprodukt mit einem Programmcode implementiert sein, wobei der Programmcode dahin gehend wirksam ist, eines der Verfahren durchzuführen, wenn das Computerpro- grammprodukt auf einem Computer abläuft. In general, embodiments of the present invention may be implemented as a computer program product having a program code, wherein the program code is operable to perform one of the methods when the computer program product runs on a computer.
Der Programmcode kann beispielsweise auch auf einem maschinenlesbaren Träger gespeichert sein. Andere Ausführungsbeispiele umfassen das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren, wobei das Computerprogramm auf einem maschinenlesbaren Träger gespeichert ist. The program code can also be stored, for example, on a machine-readable carrier. Other embodiments include the computer program for performing any of the methods described herein, wherein the computer program is stored on a machine-readable medium.
Mit anderen Worten ist ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens somit ein Computerprogramm, das einen Programmcode zum Durchführen eines der hierin beschriebenen Verfahren aufweist, wenn das Computerprogramm auf einem Computer abläuft. In other words, an embodiment of the method according to the invention is thus a computer program which has a program code for performing one of the methods described herein when the computer program runs on a computer.
Ein weiteres Ausführungsbeispiel der erfindungsgemäßen Verfahren ist somit ein Daten - träger (oder ein digitales Speichermedium oder ein computerlesbares Medium), auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren aufgezeichnet ist. A further embodiment of the inventive method is thus a data carrier (or a digital storage medium or a computer-readable medium) on which the computer program is recorded for performing one of the methods described herein.
Ein weiteres Ausführungsbeispiel des erfindungsgemäßen Verfahrens ist somit ein Daten- ström oder eine Sequenz von Signalen, der bzw. die das Computerprogramrn zum Durchführen eines der hierin beschriebenen Verfahren darstellt bzw. darstellen. Der Datenstrom oder die Sequenz von Signalen kann bzw. können beispielsweise dahin gehend konfiguriert sein, über eine Datenkommunikationsverbindung, beispielsweise über das Internet, transferiert zu werden. A further exemplary embodiment of the method according to the invention is thus a data stream or a sequence of signals which represents or represents the computer program for performing one of the methods described herein. The data stream or the sequence of signals may be configured, for example, to be transferred via a data communication connection, for example via the Internet.
Ein weiteres Ausführungsbeispiel umfasst eine Verarbeitungseinrichtung, beispielsweise einen Computer oder ein programmierbares Logikbauelement, die dahin gehend konfiguriert oder angepasst ist, eines der hierin beschriebenen Verfahren durchzuführen. Ein weiteres Ausführungsbeispiel umfasst einen Computer, auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren installiert ist. Ein weiteres Ausführungsbeispiel gemäß der Erfindung umfasst eine Vorrichtung oder ein System, die bzw. das ausgelegt ist, um ein C om p u t erp ro gr am m zur Durchführung zumindest eines der hierin beschriebenen Verfahren zu einem Empfänger zu übertragen. Die Übertragung kann beispielsweise elektronisch oder optisch erfolgen. Der Empfänger kann beispielsweise ein Computer, ein Mobilgerät, ein Speichergerät oder eine ähnliche Vor- richtung sein. Die Vorrichtung oder das System kann beispielsweise einen Datei-Server zur Übertragung des Computerprogramms zu dem Empfänger umfassen. Another embodiment includes a processing device, such as a computer or a programmable logic device, that is configured or adapted to perform one of the methods described herein. Another embodiment includes a computer on which the computer program is installed to perform one of the methods described herein. A further embodiment according to the invention comprises a device or system adapted to transmit a com- muter terminal to a receiver for performing at least one of the methods described herein. The transmission can be done for example electronically or optically. The receiver may be, for example, a computer, a mobile device, a storage device or a similar device. For example, the device or system may include a file server for transmitting the computer program to the recipient.
Bei manchen Ausführungsbeispielen kann ein programmierbares Logikbauelement (beispielsweise ein feldprogrammierbares Gatterarray, ein FPGA) dazu verwendet werden, manche oder alle Funktionalitäten der hierin beschriebenen Verfahren durchzuführen. Bei manchen Ausführungsbeispielen kann ein feldprogrammierbares Gatterarray mit einem Mikroprozessor zusammenwirken, um eines der hierin beschriebenen Verfahren durchzuführen. Allgemein werden die Verfahren bei einigen Ausführangsbeispielen seitens einer beliebigen Hardwarevorrichtung durchgeführt. Diese kann eine universell einsetzbare Hardware wie ein Computerprozessor (CPU) sein oder für das Verfahren spezifische Hardware, wie beispielsweise ein ASIC. In some embodiments, a programmable logic device (eg, a field programmable gate array, an FPGA) may be used to perform some or all of the functionality of the methods described herein. In some embodiments, a field programmable gate array may cooperate with a microprocessor to perform one of the methods described herein. In general, in some embodiments, the methods are performed by any hardware device. This may be a universal hardware such as a computer processor (CPU) or hardware specific to the process, such as an ASIC.
Nachfolgend werden die oben beschriebenen Erfindungen bzw. die Aspekte der Erfindungen aus zwei weiteren Blickwinkeln mit anderen Worten beschrieben: In the following, the inventions described above or the aspects of the inventions will be described from two additional angles in other words:
Integrated Eyetracker Integrated Eyetracker
Der„Integrated Eyetracker" umfasst eine Zusammenstellung an FPGA-optimierten Algorithmen, die dazu geeignet sind ( Ellipsen-)Merkmale (Hough-Features) mittels einer paral- lelen Hough-Transformation aus einem Kamera-Livebild zu extrahieren und daraus eine Blickrichtung zu berechnen. Durch Auswertung der extrahierten Merkmale kann die Pupillenellipse bestimmt werden. Bei Einsatz mehrerer Kameras mit zueinander bekannter Lage und Ausrichtung können die 3D Position des Pupillenmittelpunktes sowie die 3D Blickrichtung und der Pupillendurchmesser ermittelt werden. Zur Berechnung werden die Lage und Form der Ellipsen in den Kamerabildern herangezogen. Es ist keine Kalibration des Systems für den jeweiligen Nutzer erforderlich und keine Kenntnis über den Abstand zwischen den Kameras und dem analysierten Auge. The "Integrated Eyetracker" comprises a compilation of FPGA-optimized algorithms that are suitable for extracting (elliptical) features (Hough features) from a camera live image by means of a parallel Hough transformation and calculating a viewing direction from them. By evaluating the extracted features, the pupillary ellipse can be determined.When using several cameras with known position and orientation, the 3D position of the pupil center as well as the 3D viewing direction and the pupil diameter can be determined.The position and shape of the ellipses in the camera images are used for the calculation There is no need to calibrate the system for each user and no knowledge of the distance between the cameras and the analyzed eye.
Die genutzten Bildverarbeitungsalgorithmen sind insbesondere dadurch gekennzeichnet, dass Sie für die Verarbeitung auf einem FPGA (field programmable gate array) optimiert sind. Die Algorithmen ermöglichen eine sehr schnelle Bildverarbeitung mit konstanter Bildwiederholrate, minimalen Latenzzeiten und minimalem Ressourcenverbrauch im FPGA. Damit sind diese Module prädestiniert für zeit-/latenz -/sicherheitskritische Anwendungen (z. B. Fahrerassistenzsysteme), medizinische Diagnosesysteme (z. B. Perimeter) sowie Anwendungen wie Human machine interfaces (z. B. für mobile devices), die ein geringes Bauvolumen erfordern. The image processing algorithms used are in particular characterized in that they are optimized for processing on an FPGA (field programmable gate array). The algorithms allow a very fast image processing with constant Refresh rate, minimal latency, and minimal resource consumption in the FPGA. These modules are therefore predestined for time- / latency / safety-critical applications (eg driver assistance systems), medical diagnostic systems (eg perimeters) as well as applications such as human machine interfaces (eg for mobile devices) Require construction volume.
Problemstellung problem
Robuste Detcktion von 3 D-Augenpositionen und 3 D-Blickrichtungen im 3 D-Raum in mehreren (Live-) Kamerabildern sowie Detcktion der Pupillengrößen  Robust detection of 3 D-eye positions and 3 D-viewing directions in 3 D-space in several (live) camera images as well as detection of the pupil sizes
- Sehr kurze Reaktionszeit (bzw. Verarbeitungszeit)  - Very short reaction time (or processing time)
Kleine Bauform  Small design
autonome Funktionsweise (Unabhängigkeit vom PC) durch integrierte Lösung  autonomous operation (independence from the PC) through integrated solution
Stand der Technik State of the art
Eyetracker- S ysteme  Eyetracker systems
o Steffen Markert: Blickrichtungserfassung des menschlichen Auges in Echtzeit (Diplomarbeit und Patent DE 10 2004 046 617 AI)  o Steffen Markert: Viewing the direction of the human eye in real time (diploma thesis and patent DE 10 2004 046 617 AI)
o Andrew T. Duchowski: Eye Tracking Methodology: Theory and Practice Parallele-Hough Transformation  o Andrew T. Duchowski: Eye Tracking Methodology: Theory and Practice Parallel-Hough Transformation
o Johannes Katzmann: Eine Echtzeit- Implementierung für die Ellipsen- o Johannes Katzmann: A Real-Time Implementation for the Ellipses
Hough-Transformation (Diplomarbeit und Patent DE 10 2005 047 160 B4) o Christian Holland-Neil: Implementierung eines Pupillen-Hough Transformation (Diploma Thesis and Patent DE 10 2005 047 160 B4) o Christian Holland-Neil: Implementation of a Pupil
Detektionsalgorithmus basierend auf der Hough-Transformation für Kreise (Diplomarbeit und Patent DE 10 2005 047 160 B4) Detection algorithm based on the Hough transformation for circles (diploma thesis and patent DE 10 2005 047 160 B4)
Nachteile des aktuellen Standes der Technik Disadvantages of the current state of the art
Eyetracker-Systeme  Eye Tracker Systems
o Nachteile:  o Disadvantages:
Eyetracking-Systeme erfordern im Allgemeinen eine (aufwändige) Kalibrierung vor der Nutzung Eyetracking systems generally require a (laborious) calibration before use
Das System nach Markert (Patent DE 10 2004 046 61 7 A I ) ist kalib- rationsfrei. funktioniert aber nur unter ganz bestimmten Voraussetzungen: The Markert system (patent DE 10 2004 046 61 7 AI) is calibration-free. works only under very specific conditions:
1. Abstand zwischen Kameras und Pupillenmittelpunkt müssen bekannt und im System hinterlegt sein  1. Distance between cameras and pupil center must be known and stored in the system
2. Das Verfahren funktioniert nur für den Fall, dass der 3D Pupillenmittelpunkt in den optischen Achsen der Kameras liegt 2. The procedure works only in case the 3D pupil center is in the optical axes of the cameras
Die gesamte Verarbeitung ist für PC Hardware optimiert und somit auch deren Nachteilen unterworfen (kein festes Zeitregime bei der Verarbeitung möglich) The entire processing is optimized for PC hardware and therefore also subject to its disadvantages (no fixed time regime is possible during processing)
leistungsstarke Systeme werden benötigt, da die Algorithmen einen sehr hohen Ressourcenverbrauch aufweisen lange Verarbeitungsdauer und damit lange Verzögerungszeit bis Ergebnis vorliegt (z. T. abhängig von der auszuwertenden Bildgröße) Powerful systems are needed because the algorithms consume a lot of resources long processing time and a long delay time until a result (e.g., T. depending on the evaluated image size) is present
Parallele-I lough Transformation Parallel-I lough transformation
o Nachteile:  o Disadvantages:
Es können nur binäre Kantenbilder transformiert werden Only binary edge images can be transformed
Transformation liefert nur ein binäres Ergebnis bezogen auf eine Biklkoordinate (Position der Struktur wurde gefunden, aber nicht: Trefferwahrscheinlichkeit und weitere Strukturmerkmalc) Transformation returns only a binary result with respect to a bicyclic coordinate (position of the structure was found, but not: hit probability and other structural features)
Keine flexible Anpassung des Transformationskernes während der Laufzeit und damit nur unzureichende Eignung für dynamische Bildinhalte (z.B. kleine und große Pupillen) No flexible adaptation of the transformation kernel during runtime and therefore insufficient suitability for dynamic image content (eg small and large pupils)
Keine Rekonfiguration des Transformationskernes auf andere Strukturen während der Laufzeit möglich und damit begrenzte Eignung für Objekt erkennung No reconfiguration of the transformation kernel to other structures during runtime possible and therefore limited suitability for object detection
Umsetzung implementation
Das Gesamtsystem ermittelt aus zwei oder mehr Kamerabildern in denen dasselbe Auge abgebildet ist jeweils eine Liste von mehrdimensionalen Hough-Merkmalen und berechnet jeweils auf deren Basis die Lage und Form der Pupillenellipse. Aus den Parametern dieser beiden Ellipsen sowie allein aus der Lage und Ausrichtung der Kameras zueinander können die 3D Position des Pupillenmittelpunktes sowie die 3D Blickrichtung und der Pupillendurchmesser vollständig kalibrationsfrei ermittelt werden. Als Hardwareplattform wir eine Kombination aus mindestens zwei Bildsensoren, FPGA und/oder nachgeschaltetem Mikroprozessorsystem (ohne dass ein PC zwingend benötigt wird).  The overall system determines a list of multi-dimensional Hough features from two or more camera images in which the same eye is depicted, and in each case calculates the position and shape of the pupillary ellipse on the basis thereof. From the parameters of these two ellipses as well as solely from the position and orientation of the cameras to one another, the 3D position of the pupil center as well as the 3D viewing direction and the pupil diameter can be determined completely without calibration. As a hardware platform we use a combination of at least two image sensors, FPGA and / or downstream microprocessor system (without a PC being absolutely necessary).
„Hough preprocessing",„Parallel hough transform",„Hough feature extractor",„Hough feature to ellipse Converter"...Coresize control", ..Temporal smart smoothing filter",„3D eamera System model", ..3D position calculation" und„3D gaze direction calculation" betreffen einzelne Funktionsmodule des Integrated Eyetrackers. Sie ordnen sich in die Bild- verarbeitungskette des Integrated Eyetrackers wie fol t ein: "Hough preprocessing", "Parallel hough transform", "Hough feature extractor", "Hough feature to ellipse converter" ... Coresize control "," Temporal smart smoothing filter "," 3D eamera system model ", ..3D position calculation "and" 3D gaze direction calculation "refer to the individual function modules of the Integrated Eyetracker, which are arranged in the image processing chain of the Integrated Eyetracker as follows:
Fig. 6 zeigt ein Blockschaltbild der einzelnen Funktionsmodule im Integrated Eyetracker.6 shows a block diagram of the individual functional modules in the Integrated Eyetracker.
Das Blockschaltbild zeigt die einzelnen Verarbeitungsstufen des Integrated Eyetrackers. Im Folgenden wird eine detaillierte Beschreibung der Module gegeben. The block diagram shows the individual processing stages of the Integrated Eyetracker. The following is a detailed description of the modules.
• „Hough preprocessing" • "Hough preprocessing"
o Funktion  o function
Aufbereitung eines Videodatenstromes für das Modul„Parallel Hough Transform"'. insbesondere durch Bildrotation und Up- sampling des zu transformierenden Bildes je nach Parallelisierungs- grad des Moduls„Parallel Hough Transform" o Input Preparation of a video data stream for the "Parallel Hough Transform" module, in particular by image rotation and up- sampling of the image to be transformed, depending on the degree of parallelization of the "Parallel Hough Transform" module o Input
Binäres Kantenbild oder Gradientenbild o Output Binary edge image or gradient image o Output
8 Je nach Paral 1 el isierungsgrad des nachfolgenden Moduls ein oder mehrere Videodatenströme mit aufbereiteten Pixeldaten aus dem In- put 8 Depending on the level of paralysis of the subsequent module, one or more video data streams with edited pixel data from the input
o Detaillierte Beschreibung o Detailed description
Prinzip bedingt kann die parallele Hough-Transformation aus vier um jeweils 90° versetzten Hauptrichtungcn auf den Bildinhalt angewendet werden Due to the principle, the parallel Hough transformation of four main directions offset by 90 ° can be applied to the image content
Dazu erfolgt im Preprocessing eine Bildrotation um 90° ■ In addition, the image is rotated by 90 ° during preprocessing
Die beiden verbleibenden Richtungen werden dadurch abgedeckt, dass jeweils das rotierte und nicht rotierte Bild horizontal gespiegelt werden (durch umgekehrtes Auslesen der im Speicher abgelegten Bildmatrix) The two remaining directions are covered by mirroring the rotated and non-rotated image horizontally (by reading the image matrix stored in memory in reverse)
Je nach Parallelisierungsgrad des Moduls ergeben sich die folgenden drei Konstellationen für den Output: Depending on the degree of parallelization of the module, the following three constellations result for the output:
• 100% Parallelisierung: simultane Ausgabe von vier Videodatenströmen: um 90° rotiert, nicht rotiert sowie jeweils gespiegelt  • 100% parallelization: simultaneous output of four video streams: rotated 90 °, not rotated and mirrored at a time
» 50% Parallelisierung: Ausgabe von zwei Videodatenströmen: um 90° rotiert und nicht rotiert, die Ausgabe der jeweils gespiegelten Varianten erfolgt sequentiell  »50% parallelization: output of two video data streams: rotated by 90 ° and not rotated, the output of the mirrored variants takes place sequentially
• 25% Parallelisierung: Ausgabe eines Videodatenstromes: um 90° rotiert und nicht rotiert und jeweils deren gespiegelte Varianten werden sequentiell ausgegeben rallel hough transform"  • 25% parallelization: output of a video data stream: rotated 90 ° and not rotated and each of their mirrored variants are output sequentially rallel hough transform "
o Funktion o function
Parallele Erkennung einfacher Muster (Geraden mit unterschiedlichen Größen und Anstiegen und Krümmungen mit verschiedenen Radien und Orientierungen) und deren Auftrittswahrscheinlichkeit in einem binären Kanten- oder Gradientenbild Parallel detection of simple patterns (lines of different sizes and slopes and curves with different radii and orientations) and their probability of occurrence in a binary edge or gradient image
o Input o Input
Für die parallele Hough Transformation aufbereitetes Kanten bzw. Edges prepared for the parallel Hough transformation
Gradientenbild (Output des„Hough preprocessing" Moduls) o Output  Gradient image (output of the "Hough preprocessing" module) o Output
Mehrdimensionaler Houghraum, der alle relevanten Parameter der gesuchten Struktur enthält Multidimensional Hough space, which contains all relevant parameters of the sought structure
o Detaillierte Beschreibung o Detailed description
Verarbeitung des Input durch ein komplexes delaybasiertes lokales Filter, das eine definierte„Durchlaufrichtung" für Pixeldaten hat und durch folgende Eigenschaften geprägt ist: Processing of the input through a complex delay-based local filter, which has a defined "pass direction" for pixel data and is characterized by the following properties:
• Filterkern mit variabler Größe bestehend aus Delayelernen- ten • Zur adaptiven Anpassung des Filters an die gesuchten Muster können Delayelemente während der Laufzeit zu- und abgeschaltet werden • Filter core with variable size consisting of delay relays • For adaptive adaptation of the filter to the desired patterns, delay elements can be switched on and off during runtime
• Jede Spalte des Filters steht für eine bestimmte Ausprägung der gesuchten Struktur (Krümmung oder Geradenanstieg) • Each column of the filter stands for a certain characteristic of the sought structure (curvature or straight line increase)
• Summenbildung über die Filterspalten liefert Auftrittswahr- scheinlichkeilen für die Ausprägung der Struktur, die durch die jeweilige Spalte repräsentiert wird• Summation across the filter columns provides probabilities of occurrence for the structure of the structure represented by the respective column
• Beim Durchlaufen des Filters wird immer die Spalte mit der größten Auftrittswahrscheinlichkeit für eine Ausprägung des gesuchten Musters aus dem Filter herausgereicht • When passing through the filter, the column with the highest probability of occurrence for a characteristic of the desired pattern is always passed out of the filter
B Für jedes Bildpixel liefert das Filter einen Punkt im Houghraum der die folgenden Informationen enthält: B For each image pixel, the filter returns a point in the Hough space containing the following information:
• Art des Musters (z.B. Gerade oder Halbkreis)  Type of pattern (e.g., straight or semicircle)
• Auftrittswahrscheinlichkeit für das Muster • Occurrence probability for the pattern
• Ausprägung der Struktur (Stärke der Krümmung bzw. bei Geraden: Anstieg und Länge) • Formation of the structure (curvature of the curvature or in the case of straight lines: rise and length)
• Lage bzw. Orientierung der Struktur im Bild • Location or orientation of the structure in the image
Als Transformationsergebnis entsteht ein mehrdimensionales Bild, das im folgenden als Houghraum bezeichnet wird The result of the transformation is a multi-dimensional image, which is referred to below as the Hough space
„Houghfeature extractor" "Hough feature extractor"
o Funktion  o function
Extraktion von Features aus dem Houghraum, die relevante Informationen für die Mustererkennung enthalten Extract features from the Hough space that contain relevant pattern recognition information
o Input  o Input
Mehrdimensionaler Houghraum (Output des ..Parallel hough trans- form" Moduls) Multidimensional Houghspace (Output of the "parallel hough transform" module)
o Output  o Output
Liste von Hough-Features die relevante Informationen für die Mus- tererkennung enthalten List of Hough features that contain relevant information for pattern recognition
o Detaillierte Beschreibung  o Detailed description
Glättung der Hough-Feature-Räume (Räumliche Korrektur mittels lokaler Filterung) Smoothing out the Hough feature spaces (Spatial correction using local filtering)
„Ausdünnen" des Houghraumes (Unterdrückung nicht relevanter Informationen für die Mustererkennung) durch eine abgewandelte „non-maximum-suppression": "thinning" of the Hough space (suppression of non-relevant information for pattern recognition) by a modified "non-maximum-suppression":
• Ausblenden von für die Weiterverarbeitung nicht relevanten Punkten („Nicht-Maxima" im Hough- Wahrscheinlichkeitsraum) unter Berücksichtigung der Art des Musters und der Ausprägung der Struktur • Weitere Ausdünnung der Houghraumpunkte mit Hilfe geeigneter Schwellen: • Hiding points that are not relevant for further processing ("non-maxima" in the Hough probability space), taking into account the type of pattern and the nature of the structure • Further thinning of the Houghraumpunkte with the help of suitable thresholds:
o Rauschunterdrückung durch Schwellwert im Hough- o Noise suppression by threshold in the Hough
Wahrscheinlichkeitsraum probability space
o Angabe eines Intervalls für minimal und maximal zulässige Ausprägung der Struktur (z.B. minimale/maximale Krümmung bei gebogenen Strukturen oder kleinster/größter Anstieg bei Geraden)  o Specification of an interval for minimum and maximum permissible structure (for example, minimum / maximum curvature in curved structures or least / greatest increase in straight lines)
Analytische Rücktransformation der Parameter aller verbleibenden Punkte in den Originalbildbereich ergibt folgende Hough-Features: Analytical backward transformation of the parameters of all remaining points into the original image area results in the following Hough features:
• Gebogene Strukturen mit den Parametern: • Curved structures with the parameters:
o Lage (x- und y-Bildkoordinate)  o position (x and y image coordinate)
o Auftrittswahrscheinlichkeit des Hough-Features o Radius des Bogens  o Occurence probability of the Hough feature o Radius of the arc
o Winkel, der angibt, in welche Richtung der Bogen geöffnet ist  o Angle indicating in which direction the sheet is open
• Geraden mit den Parametern:  • lines with the parameters:
o Lage (x- und y-Bildkoordinate)  o position (x and y image coordinate)
o Auftrittswahrscheinlichkeit des Hough-Features o Winkel, der die Steigung der Geraden angibt o Länge des repräsentierten Geradenabschnittes  o Occurence probability of the Hough feature o Angle indicating the slope of the straight line o Length of the represented straight line section
„Hough feature to ellipse Converter" "Hough feature to ellipse converter"
o Funktion  o function
Auswahl der 3 bis 4 Hough-Features (Krümmungen), die im Kamerabild am wahrscheinlichsten den Pupillenrand (Ellipse) beschreiben, und Verrechnung zu einer Ellipse Selecting the 3 to 4 Hough features (curvatures) most likely to describe the pupil margin (ellipse) in the camera image, and offsetting to an ellipse
o Input  o Input
Liste aller in einem Kamerabild detektierten Hough-Features List of all Hough features detected in a camera image
(Krümmungen)  (Curvatures)
o Output  o Output
Parameter der Ellipse, die am wahrscheinlichsten die Pupille repräsentiert Parameters of the ellipse most likely to represent the pupil
o Detaillierte Beschreibung  o Detailed description
Aus der Liste aller Hough-Features (Krümmungen) werden Kombinationen aus 3 bis 4 Hough-Features gebildet, die auf Grund ihrer Parameter die horizontalen und vertikalen Extrempunkte eine Ellipse beschreiben könnten From the list of all Hough features (curvatures), combinations of 3 to 4 Hough features are formed which, based on their parameters, could describe the horizontal and vertical extreme points as an ellipse
Dabei fließen folgende Kriterien in die Auswahl der Hough-Features ein: ■ The following criteria are included in the selection of Hough features:
• Scores (Wahrscheinlichkeiten) der Hough-Features • Krümmung der Hough-Features • Scores (probabilities) of the Hough features Curvature of the Hough features
• Lage und Orientierung der Hough-Features zueinander Die ausgewählten Hough-Feature Kombinationen werden sortiert: • Location and orientation of the Hough features to each other The selected Hough feature combinations are sorted:
• Primär nach der Anzahl der enthaltenen Hough-Features• Primary based on the number of included Hough features
• Sekundär nach der kombinierten Wahrscheinlichkeit der enthaltenen Hough-Features • Secondary according to the combined probability of the Hough features included
Nach dem Sortieren wird die an erster Stelle stehende Hough- Feature Kombination ausgewählt und daraus die Ellipse gefittet, welche am wahrscheinlichsten die Pupille im Kamerabild repräsentiert  After sorting, the first Hough feature combination is selected and the ellipse which most likely represents the pupil in the camera image is fitted
,Coresize control" "Coresize control"
o Funktion  o function
Dynamische Anpassung des Filterkernes (Hough-Core) der Parallelen Hough-Transformation an die aktuelle Ellipsengröße o Input Dynamic adaptation of the filter core (Hough-Core) of the parallel Hough transformation to the current ellipse size o Input
Zuletzt genutzte Hough-Core Größe Last used Hough-Core size
Parameter der Ellipse, welche die Pupille im entsprechenden Kamerabild repräsentiert Parameters of the ellipse representing the pupil in the corresponding camera image
o Output  o Output
Aktualisierte Hough-Core Größe Updated Hough-core size
o Detaillierte Beschreibung  o Detailed description
In Abhängigkeit der Größe (Länge der Halbachsen) der vom „Hough feature to ellipse Converter" berechneten Ellipse, wird die Hough-Core Größe in definierten Grenzen nachgeführt um die Genauigkeit der Hough-Transformationsergebnisse bei der Detektion der Ellipsenextrempunkte zu erhöhen Depending on the size (length of the semiaxes) of the ellipse calculated by the "Hough feature to ellipse Converter", the Hough core size is tracked within defined limits in order to increase the accuracy of the Hough transformation results in the detection of the ellipse extreme points
.Temporal smart smoothing filier" Temporal smart smoothing filing
o Funktion  o function
Adaptive zeitliche Glättung einer Datenreihe (z. B. einer ermittelten Ellipsenmittelpunktkoordinate) nach dem Prinzip der exponentiellen Glättung, wobei Aussetzer oder extreme Ausreißer in der zu glättenden Datenreihe NICHT zu Schwankungen der geglätteten Daten führen Adaptive temporal smoothing of a data series (eg a determined ellipse center coordinate) according to the principle of exponential smoothing, whereby dropouts or extreme outliers in the data series to be smoothed DO NOT result in fluctuations of the smoothed data
o Input  o Input
Zu jedem Aufrufzeitpunkt des Moduls jeweils ein Wert der Datenreihe und die dazugehörigen Gütekriterien (z. B. Auftrittswahrscheinlichkeit einer gelitteten Ellipse) For each call-up time of the module, one value of the data series and the associated quality criteria (eg probability of occurrence of a given ellipse)
o Output  o Output
Geglätteter Datenwert (z. B. Ellipsenmittelpunktkoordinate) o Detaillierte Beschreibung Über einen Satz von Filterparametern kann beim Initialisieren des Filters dessen Verhalten festgelegt werden Smoothed data value (eg ellipse center coordinate) o Detailed description A set of filter parameters can be used to set its behavior when the filter is initialized
Der aktuelle Input-Wert wird für die Glättung verwendet, wenn er nicht in eine der folgenden Kategorien fällt: The current input value is used for smoothing if it does not fall into one of the following categories:
· Entsprechend der dazugehörigen Auftrittswahrscheinlichkeit handelt es sich um einen Aussetzer in der Datenreihe · According to the corresponding occurrence probability, this is a dropout in the data series
• Entsprechend der dazugehörigen Ellipscnparameter handelt es sich um einen Ausreißer • The corresponding ellipsoid parameter is an outlier
o Wenn die Größe der aktuellen Ellipse sich zu stark von der Größe der vorhergehenden Ellipse unterscheidet  o If the size of the current ellipse is too different from the size of the previous ellipse
o Bei einer zu großen Differenz der aktuellen Position zur letzten Position der Ellipse  o If the difference between the current position and the last position of the ellipse is too great
* Ist eines dieser Kriterien erfüllt, wird weiterhin der zuvor ermittelte geglättete Wert ausgegeben, andernfalls wird der aktuelle Wert zur * If one of these criteria is fulfilled, the previously determined smoothed value will continue to be output, otherwise the current value will become
Glättung herangezogen Smoothing used
Um eine möglichst geringe Verzögerung bei der Glättung zu erhalten werden aktuelle Werte stärker gewichtet als vergangene: To get the least possible delay in smoothing, current values are weighted more heavily than the past:
• aktueller geglättete Wert = aktueller Wert * Glättungskoeffi- zient + letzter geglätteter Wert * (1 - Glättungskoeffizient) • current smoothed value = current value * smoothing coefficient + last smoothed value * (1 - smoothing coefficient)
• der Glättungskoeffizient wird in definierten Grenzen dynamisch an den Trend der zu glättenden Daten angepasst: o Verringerung bei eher konstantem Werteverlauf der Datenreihe • The smoothing coefficient is dynamically adjusted within defined limits to the trend of the data to be smoothed: o Reduction in the case of more or less constant value progression of the data series
o Erhöhung bei aufsteigendem oder abfallendem Werteverlauf der Datenreihe  o Increase in ascending or descending value progression of the data series
Wenn langfristig ein größerer Sprung bei den zu glättenden Ellipsenparametern vorkommt, passt sich das Filter und somit auch der geglättete Werteverlauf an den neuen Wert an camera System model" If, in the long term, there is a large jump in the ellipse parameters to be smoothed, the filter and thus also the smoothed value curve adapts to the new value. Camera system model "
o Funktion o function
Modellierung des D-Raumes in dem sich mehrere Kameras, der Nutzer (bzw. dessen Augen) und ggf. ein Bildschirm befinden o Input Modeling the D-room in which several cameras, the user (or his eyes) and possibly a screen are located o Input
Konfigurationsdatei, welche die Modellparameter (Lageparameter, optische Parameter, u. a.) aller Elemente des Modells beinhaltet o Output Configuration file containing the model parameters (position parameters, optical parameters, etc.) of all elements of the model o Output
Stellt ein Zahlengerüst und Funktionen für Berechnungen innerhalb dieses Modells zur Verfügung Provides a number skeleton and functions for calculations within this model
o Detaillierte Beschreibung o Detailed description
Modellierung der räumlichen Lage (Position und Drehwinkel) aller Elemente des Modells sowie deren geometrische (z. B. Pixelgröße, Sensorgröße, Auflösung) und optische (z. B. Brennweite, Objektivverzeichnung) Eigenschaften Modeling of the spatial position (position and rotation angle) of all elements of the model as well as their geometrical (eg pixel size, Sensor size, resolution) and optical (eg focal length, lens distortion) characteristics
Das Modell umfasst zum jetzigen Zeitpunkt folgende Elemente: The model includes the following elements at the moment:
• Kameraeinheiten, bestehend aus: • Camera units, consisting of:
o Kamerasensoren  o camera sensors
o Objektiven  o lenses
• Augen  • Eyes
• Display  • Display
Es werden neben den Eigenschaften aller Elemente des Modells insbesondere die nachfolgend beschriebenen Funktionen„3D position calculation" (zur Berechnung der Augenposition) und„3D gaze di- rection calculation" (zur Berechnung der Blickrichtung) zur Verfügung gestellt  In addition to the properties of all elements of the model, in particular the functions described below "3D position calculation" (for calculating the eye position) and "3D gaze correction calculation" (for calculating the viewing direction) are provided
Mit Hilfe dieses Modells kann u. a. die 3D-Blickgerade (bestehend aus Pupillenmittelpunkt und Blickrichtungsvektor (entsprechend der Biologie und Physiologie des menschlichen Auges korrigiert)) berechnet werden  With the help of this model can u. a. the 3D line of sight (consisting of pupillary center and line of sight vector (corrected according to the biology and physiology of the human eye))
Optional kann auch der Blickpunkt eines Betrachters auf einem anderen Objekt im 3D-Modell (z. B. auf einem Display) berechnet werden sowie der fokussierte Bereich des Betrachters  Optionally, the viewpoint of a viewer can be calculated on another object in the 3D model (eg on a display) as well as the focused area of the viewer
„3D position calculation" "3D position calculation"
o Funktion  o function
Berechnung der räumlichen Position (3 D-Koordinaten) eines Punktes, der von zwei oder mehr Kameras erfasst wird (z. B. Pupillenmittelpunkt) durch Triangulation Calculation of the spatial position (3 D coordinates) of a point detected by two or more cameras (eg pupil center) by triangulation
o Input  o Input
2 D- oordinaten eines Punktes in zwei Kamcrabildern 2 D-coordinates of a point in two camcorder images
o Output  o Output
3 D-Koordinaten des Punktes 3 D coordinates of the point
Fehlermaß: beschreibt die Genauigkeit der übergebenen 2D- Koordinaten in Verbindung mit den Modcllparametern o Detaillierte Beschreibung ■ Error measure: describes the accuracy of the passed 2D coordinates in conjunction with the modcll parameters. O Detailed description
Aus den übergebenen 2D-Koordinaten werden mit Hil e des„3D camera syst cm model" (insbesondere unter Berücksichtigung der optischen Parameter) für beide Kameras die Lichtstrahlen berechnet, die den 3 D-Punkt als 2D-Punkte auf den Sensoren abgebildet haben From the transferred 2D coordinates, the light beams are calculated for both cameras using the "3D camera syst cm model" (especially taking into account the optical parameters), which have mapped the 3 D point as 2D points on the sensors
Diese Lichtstrahlen werden als Geraden im 3 D- Raum des Modells beschrieben These rays of light are described as straight lines in the 3D space of the model
Der Punkt von dem beide Geraden den geringsten Abstand haben (im Idealfall der Schnittpunkt der Geraden) wird als Position des gesuchten 3 D-Punktes angenommen gaze direction calculation" The point from which both straight lines have the shortest distance (ideally the intersection of the straight line) is assumed to be the position of the searched 3 D point gauze direction calculation "
Funktion  function
Bestimmung der Blickrichtung aus zwei ellipsenförmigen Projektionen der Pupille auf die Kamerasensoren ohne Kalibration und ohne Kenntnis über den Abstand zwischen Auge und Kamerasystem Determination of the viewing direction from two elliptical projections of the pupil on the camera sensors without calibration and without knowledge of the distance between the eye and the camera system
Input input
3 D-Lageparameter der Bildsensoren 3 D-position parameters of the image sensors
Ellipsenparameter der auf die beiden Bildsensoren projizierten Pupille Ellipse parameter of the pupil projected onto the two image sensors
3 D-Positionen der Ellipscnmittelpunkte auf den beiden Bildsensoren 3 D positions of the ellipse centers on the two image sensors
3 D-Position des Pupillenmittelpunktes 3 D position of the pupil center
Output  output
3D-Blickrichtung in Vektor- und Winkeldarstellung 3D viewing in vector and angle views
Detaillierte Beschreibung  Detailed description
B Aus der 3 D-Position des Pupillenmittelpunktes und der Lage der Bildsensoren, werden durch Drehung der realen Kameraeinheiten virtuelle Kameraeinheiten berechnet, deren optische Achse durch den 3 D-Pupillenmittelpunkt verläuft B From the 3 D position of the pupil center and the position of the image sensors, virtual camera units are calculated by rotation of the real camera units whose optical axis passes through the 3 D pupil center point
B Anschließend werden jeweils aus den Projektionen der Pupille auf die realen Sensoren Projektionen der Pupille auf die virtuellen Sensoren berechnet, es entstehen sozusagen zwei virtuelle Ellipsen B Projections of the pupil on the virtual sensors are then calculated in each case from the projections of the pupil on the real sensors, creating, as it were, two virtual ellipses
Aus den Parametern der virtuellen Ellipsen können für beide Sensoren jeweils zwei Blickpunkte des Auges auf einer beliebigen zur jeweiligen virtuellen Sensorebene parallelen Ebene berechnet werden From the parameters of the virtual ellipses two eye points of the eye can be calculated for each sensor on any plane parallel to the respective virtual sensor plane
Mit den vier Blickpunkten und dem 3 D-Pupillenmittelpunkt lassen sich vier Blickrichtungsvektoren berechnen (jeweils zwei Vektoren aus den Ergebnissen jeder Kamera) Four viewpoints and the 3 D pupil center allow you to calculate four line of sight vectors (two vectors from each camera's results)
Von diesen vier Blickrichtungsvektoren, ist immer genau einer der einen Kamera mit einem der anderen Kamera (annähernd) identisch Of these four line of sight vectors, one camera is always (almost) identical to the other camera
Die beiden identischen Vektoren geben die gesuchte Blickrichtung des Auges (gaze direction) an, die dann vom Modul„3D gaze direction calculation" als Ergebnis geliefert wird rteile The two identical vectors indicate the searched eye direction (gaze direction), which is then provided by the module "3D gaze direction calculation" as a result
Berührungslose und vollständig kalibrationsfreie Ermittlung der SD-Non-contact and completely calibration-free determination of the SD
Augenpositionen, 3 D-Blickrichtung und Pupillengröße unabhängig von der Kenntnis über die Lage des Auges zu den Kameras Eye positions, 3D view and pupil size regardless of the knowledge of the location of the eye to the cameras
Analytische Bestimmung der 3D Augenposition und 3D Blickrichtung (unter Einbeziehung eines 3 D- Raum Modells) ermöglicht eine beliebige Kameraanzahl (>2) und beliebige Kamerapositionen im 3 D-Raum  Analytical determination of the 3D eye position and 3D viewing direction (including a 3-D space model) allows any number of cameras (> 2) and any camera positions in 3D space
Vermessung der auf die Kamera projizierten Pupille und damit genaue Bestimmung der Pupillengröße - Hohe Frameraten (z.B. 60 FPS @ 640x480 auf einem XILINX Spartan 3 A DSP @Measurement of the pupil projected onto the camera and thus accurate determination of the pupil size - High frame rates (eg 60 FPS @ 640x480 on a XILINX Spartan 3 A DSP @
96 MHz) und kurze Latenzzeiten durch vollständig parallele Verarbeitung ohne Rekursionen in der Verarbeitungskette 96 MHz) and short latencies due to fully parallel processing with no recursions in the processing chain
Einsatz von FPGA-Hardware und Algorithmen, die für die parallelen FPGA- Strukturen entwickelt wurden  Use of FPGA hardware and algorithms developed for the parallel FPGA structures
Einsatz der Hough-Transformation (in der beschriebenen angepassten Form für FPGA-Hardware) zur robusten Merkmalsextraktion zur Objekterkennung (hier: Merkmale der Pupillenellipse)  Use of the Hough transformation (in the described adapted form for FPGA hardware) for robust feature extraction for object recognition (here: features of the pupil ellipse)
Algorithmen zur Nachverarbeitung der Houghtranslbrmationsergebnisse sind optimiert auf parallele Verarbeitung in FPGAs  Algorithms for postprocessing the Houghtranslbrmationsergebnisse are optimized for parallel processing in FPGAs
Festes Zeitregime (konstante Zeitdifferenz zwischen aufeinanderfolgenden Ergebnissen)  Fixed time regime (constant time difference between successive results)
Minimaler Bauraum, da vollständig auf Chip integriert  Minimal space, as fully integrated on chip
geringer Energieverbrauch  Low energy consumption
Möglichkeit zur direkten Portierung der Verarbeitung vom FPGA auf einen ASIC - sehr kostengünstige Lösung bei hohen Stückzahlen durch Ausnutzung von Skaleneffekten  Possibility to directly port the processing from the FPGA to an ASIC - very cost effective solution in high volumes by exploiting economies of scale
Anwendung application
In einem (Live-) Kamerabilddatenstrom werden 3 D- Augenpositionen und SD- Blickrichtungen detektiert, die für folgende Anwendungen genutzt werden können: o Sicherheitsrelevante Bereiche  In a (live) camera image data stream, 3 D-eye positions and SD viewing directions are detected, which can be used for the following applications: o Safety-relevant areas
z. B. Sekundenschlafwarner bzw. Müdigkeitsdetektor als Fahrassistenzsystem im Automotive Bereich, durch Auswertung der Augen (z. B. Verdeckung der Pupille als Maß für den Öffnungsgrad) und unter Berücksichtigung der Blickpunkte und des Fokus z. B. sleep detector or fatigue detector as driver assistance system in the automotive sector, by evaluating the eyes (eg, covering the pupil as a measure of the degree of opening) and taking into account the viewpoints and the focus
o Mensch-Maschine-Schnittstellen  o human-machine interfaces
als Eingabcschnittstcllcn für technische Geräte (Augenpositionen und Blickrichtung können als Inputparameter genutzt werden) as input interface for technical devices (eye positions and viewing direction can be used as input parameters)
Unterstützung des Nutzers beim Anschauen von Bildschirminhalten (z.B. hervorheben von Bereichen, die angeschaut werden) support of the user when viewing screen contents (eg highlighting areas that are being viewed)
z. B. z. B.
• im Bereich Assisted Living  • in the field of Assisted Living
• für Computerspiele  • for computer games
• Blickrichtungsgestützte Eingabe für Head Mounted Devices • View direction-based input for head mounted devices
• Optimierung von 3 D- V isualisi eru ngen durch Einbeziehen der Blickrichtung • Optimization of 3 D-V isualization results by incorporating the viewing direction
o Markt- und Medienforschung  o Market and media research
z.B. Attraktivität von Werbung bewerten durch Auswertung der räumlichen Blickrichtung und des Blickpunktes der Testperson o Ophthalmologische Diagnostik (z. B. objektive Perimetrie) und Therapie FPGA-Facetracker ■ Evaluate, for example, the attractiveness of advertising by evaluating the spatial direction of vision and the point of view of the test person o Ophthalmological diagnosis (eg objective perimetry) and therapy FPGA-Face Tracker
Ein Aspekt der Erfindung betrifft ein autonomes (PC-unabhängiges) System, das insbesondere FPGA-optimierte Algorithmen nutzt, und dazu geeignet ist ein Gesicht in einem Kamera-Livebild zu detektieren und dessen (räumliche) Position zu ermitteln. Die genutzten Algorithmen sind insbesondere dadurch gekennzeichnet, dass Sie für die Verarbeitung auf einem FPGA (tield programmable gate array) optimiert sind und im Vergleich zu den bestehenden Verfahren ohne Rekursionen in der Verarbeitung auskommen. Die Algorithmen ermöglichen eine sehr schnelle Bildverarbeitung mit konstanter Bildwiederholrate, minimalen Latenzzeiten und minimalem Ressourcenverbrauch im FPGA. Damit sind diese Module prädestiniert für zeit-/latenz-/sicherheitskri tische Anwendungen (z.B. Fahrerassistenzsysteme) oder Anwendungen wie Human machine interfaces (z.B. für mobile devices), die ein geringes Bauvolumen erfordern. Darüber hinaus kann unter Einsatz einer zweiten Kamera die räumliche Position des Nutzers für bestimmte Punkte im Bild hochgenau, ka- librationsfrei und berührungslos ermittelt werden. One aspect of the invention relates to an autonomous (PC-independent) system, which in particular uses FPGA-optimized algorithms, and is suitable for detecting a face in a camera live image and determining its (spatial) position. The algorithms used are characterized in particular by the fact that they are optimized for processing on a FPGA (tield programmable gate array) and manage without any recursions in the processing in comparison to the existing methods. The algorithms enable very fast image processing with a constant frame rate, minimal latency and minimal resource consumption in the FPGA. Thus, these modules are predestined for time / latency / security critical applications (e.g., driver assistance systems) or applications such as human machine interfaces (e.g., for mobile devices) that require a low volume of construction. In addition, using a second camera, the spatial position of the user for specific points in the image can be determined with high precision, without calibration and without contact.
Problemstellung problem
Robuste und hardwarebasierte Gesichtsdetektion in einem (Live-) Kamerabild  Robust and hardware-based face detection in a (live) camera image
Detektion von Gesichts und Augenposition im 3D-Raum durch Verwendung eines stereoskopischen Kamerasystems  Detecting face and eye position in 3D space using a stereoscopic camera system
Sehr kurze Reaktionszeit (bzw. Verarbeitungszeit)  Very short reaction time (or processing time)
Kleine Bauform  Small design
autonome Funktionsweise (Unabhängigkeit vom PC) durch integrierte Lösung Stand der Technik  autonomous operation (independence from the PC) through integrated solution state of the art
Literatur:  Literature:
o Christian Küblbeck, Andreas Ernst: Face detection and tracking in video sequenecs using the modified census trans ormation  o Christian Küblbeck, Andreas Ernst: Face detection and tracking in video sequences using the modified census trans formation
o Paul Viola, Michael Jones: Robust Real-time Objcct Detection  o Paul Viola, Michael Jones: Robust Real-time Objcct Detection
Nachteile aktueller Facetracker Systeme Disadvantages of current Facetracker systems
Die gesamte Verarbeitung ist für PC-Systeme (allgemeiner: general purpose pro- cessors) optimiert und somit auch deren Nachteilen unterworfen (z.B. kein festes Zeitregime bei der Verarbeitung möglich (Beispiel: in Abhängigkeit des Bildinhal- tes z.B. Hintergrund dauert das Tracking unter Umständen länger))  The entire processing is optimized for PC systems (more general purpose processors) and thus also subject to their disadvantages (eg no fixed time regime during processing is possible (example: depending on the image content eg background the tracking may take longer) ))
Sequentielle Abarbeitung; das Eingangsbild wird sukzessive in verschiedene Skalierungsstufen gebracht (bis die kleinste Skalierungsstufe erreicht ist) und jeweils mit einem mehrstufigen Klassifikator nach Gesichtern durchsucht  Sequential processing; The input image is successively brought into different scaling levels (until the smallest scaling level is reached) and each searched with a multi-level classifier for faces
o Je nachdem wie viele Skalierungsstufen berechnet werden müssen bzw. wie viele Stufen des Klassifikators berechnet werden müssen schwankt die Verarbeitungsdauer und damit die Verzögerungszeit bis das Ergebnis vorliegt Um hohe Frameraten zu erreichen werden leistungsstarke Systeme benötigt (höhere Taktraten, unter Umständen Multicore-Systeme), da die bereits auf PC-Hardware optimierten Algorithmen trotzdem einen sehr hohen Ressourcenverbrauch aufweisen (insbesondere bei embedded Prozessorsystemen) o Depending on how many scaling levels have to be calculated or how many levels of the classifier have to be calculated, the processing time and thus the delay time varies until the result is available Powerful systems are required to achieve high frame rates (higher clock rates, possibly multicore systems), since the algorithms already optimized on PC hardware nevertheless consume a very large amount of resources (especially in embedded processor systems).
Ausgehend von der delektierten Gesichtsposition liefern Klassifikatoren nur ungenaue Augenpositionen (die Position der Augen - insbesondere der Pupillenmittelpunkt - wird nicht analytisch ermittelt (bzw. vermessen) und ist dadurch hohen Ungenauigkeiten unterworfen)  Based on the detected facial position, classifiers only deliver inaccurate eye positions (the position of the eyes - in particular the pupil center - is not analytically determined (or measured) and is therefore subject to high inaccuracies)
Die ermittelten Gesichts- und Augenpositionen liegen nur in 2D-Bildkoordinaten vor, nicht in 3D  The determined face and eye positions are only available in 2D image coordinates, not in 3D
Umsetzung implementation
Das Gesamtsystem ermittelt aus einem Kamerabild (in dem ein Gesicht abgebildet ist) die Gesichtsposition und ermittelt unter Nutzung dieser Position die Positionen der Pupillenmittelpunkte des linken und rechten Auges. Werden zwei oder mehr Kameras mit einer bekannten Ausrichtung zueinander verwendet, können diese beiden Punkte für den 3- dimensionalen Raum angegeben werden. Die beiden ermittelten Augenpositionen können in Systemen, welche den„Integrated Eyetracker" nutzen, weiterverarbeitet werden.  The overall system determines the face position from a camera image (in which a face is shown) and, using this position, determines the positions of the pupil centers of the left and right eyes. If two or more cameras with a known orientation to each other are used, these two points can be specified for the 3-dimensional space. The two determined eye positions can be further processed in systems that use the "Integrated Eyetracker".
Der„Parallel image scaler",„Parallel face fmder",„Parallel eye analyzer",„Parallel pupil analyzer",„Temporal smart smoothing filter",„3D camera system model" und„3D position calculation" betreffen einzelne Funktionsmodule des Gesamtsystems (FPGA- Facetracker). Sie ordnen sich in die Bildverarbeitungskette des FPGA-Facetrackers wie folgt ein: The "Parallel image scaler", "Parallel face scanner", "Parallel eye analyzer", "Parallel pupil analyzer", "Temporal smart smoothing filter", "3D camera system model" and "3D position calculation" relate to individual functional modules of the overall system ( FPGA Facetracker). They are arranged in the image processing chain of the FPGA Facetracker as follows:
Fig. 7a zeigt ein Blockschaltbild der einzelnen Funktionsmodule im FPGA-Facetracker. Die Funktionsmodule„3D camera system model" und„3D position calculation" sind für das Facetracking nicht zwingend erforderlich, werden aber bei Verwendung eines Stereoskopen Kamerasystems und Verrechnung geeigneter Punkte auf beiden Kameras zur Bestimmung räumlicher Positionen genutzt (beispielsweise zur Bestimmung der SD- Kopfposition bei Verrcchung der 2D-Gesichtsmittelpunkte in beiden Kamerabildern). Das Modul„Feature extraction (Classification)" des FPGA-Facetrackers baut auf der Merkmalsextraktion und Klassifikation von Küblbeck/Ernst vom Fraunhofer IIS (Erlangen) auf und nutzt eine angepasste Variante ihrer Klassifikation auf Basis von Census Merkmalen. Fig. 7a shows a block diagram of the individual functional modules in the FPGA Facetracker. The function modules "3D camera system model" and "3D position calculation" are not absolutely necessary for face tracking, but are used to determine spatial positions when using a stereoscopic camera system and billing suitable points on both cameras (for example, to determine the SD head position) Verification of the 2D facial centers in both camera images). The module "Feature extraction (Classification)" of the FPGA Facetracker builds on the feature extraction and classification of Küblbeck / Ernst from Fraunhofer IIS (Erlangen) and uses an adapted version of its classification based on Census characteristics.
Das Blockschaltbild zeigt die einzelnen Verarbeitungsstufen des FPGA-Facetracking Systems. Im Folgenden wird eine detaillierte Beschreibung der Module gegeben.  The block diagram shows the individual processing stages of the FPGA Facetracking System. The following is a detailed description of the modules.
• „Parallel image scaler" • "Parallel image scaler"
o Funktion  o function
Parallele Berechnung der Skalierungsstufen des Ausgangsbildes und Anordnung der berechneten Skalierungsstufen in einer neuen Bild- matrix um den nachfolgenden Bildverarbeitungsmodulen eine simultane Analyse aller Skalierungsstufen zu ermöglichen Parallel calculation of the scaling levels of the output image and arrangement of the calculated scaling levels in a new image matrix to enable the subsequent image processing modules to simultaneously analyze all scaling levels
Fig. 7b zeigt die Ausgangsbild (Originalbild) und Ergebnis (Downscaling-Bild) des Paral- lel image-scaler. o Input Fig. 7b shows the output image (original image) and result (downscaling image) of the parallel image scaler. o Input
■ Ausgangsbild in Originalauflösung  ■ Output image in original resolution
o Output  o Output
■ Neue Bildmatrix die mehrere skalierte Varianten des Ausgangsbildes in einer für die nachfolgenden Facetracking-Module geeigneten Anordnung beinhaltet  ■ New image matrix containing several scaled variants of the output image in an arrangement suitable for the subsequent facetracking modules
o Detaillierte Beschreibung  o Detailed description
Aufbau einer Bildpyramide durch parallele Berechnung der ver- schiedenen Skalierungsstufen des Ausgangsbildes Structure of a picture pyramid by parallel calculation of the different scaling levels of the output picture
Um eine definierte Anordnung der zuvor berechneten Skalierungsstufen in der Zielmatrix gewährleisten zu können erfolgt eine Transformation der Bildkoordinaten der jeweiligen Skalierungsstufe in das Bildkoordinatensystem der Zielmatrix anhand verschiedener Kriterien: In order to be able to ensure a defined arrangement of the previously calculated scaling stages in the target matrix, the image coordinates of the respective scaling stage are transformed into the image coordinate system of the target matrix on the basis of various criteria:
• Definierter Mindestabstand zwischen den Skalierungsstufen um ein übersprechen von Analyseergebnissen in benachbarte Stufen zu unterdrücken  • Defined minimum distance between scaling levels to suppress crosstalk of analysis results into adjacent levels
* Definierter Abstand zu den Rändern der Zielmatrix um die Analyse zum Teil aus dem Bild herausragender Gesichter gewährleisten zu können  * Defined distance to the edges of the target matrix to be able to guarantee the analysis partly from the image of outstanding faces
• „Parallel face linder" • "Parallel face linder"
o Funktion  o function
■ Detektiert ein Gesicht aus Klassifikationsergebmssen mehrerer Ska- lierungsstufen, die gemeinsam in einer Matrix angeordnet sind  ■ Detects a face from classification results of several scaling levels, which are arranged together in a matrix
Wie in Fig. 7c gezeigt, stellt das Ergebnis der Klassifikation (rechts) den Input für den Parallel face linder dar. As shown in Fig. 7c, the result of the classification (right) represents the input for the parallel face linder.
o Input  o Input
Klassifizierte Bildmatrix die mehrere Skalierungsstufen des Ausgangsbildes enthält Classified image matrix containing multiple scaling levels of the source image
o Output  o Output
Position, an der sich mit der höchsten Wahrscheinlichkeit ein Gc- sieht befindet (unter Berücksichtigung mehrerer Kriterien) o Detaillierte Beschreibung * Rauschunterdrückung zum Eingrenzen der Klassifikationsergebnisse " Räumliche Korrektur der Klassifikationsergebnisse innerhalb der Skalierungsstufen mittels einer Kombination aus lokalen Summen- und Maximumfilter Position where the highest probability is to be found (considering several criteria) o Detailed description * Noise Reduction to limit the classification results "Spatial correction of the classification results within the scaling levels using a combination of local sum and maximum filters
» Orientierung an der höchsten Auftrittswahrscheinlichkeit für ein Gesicht optional an der Gesichtsgröße über alle Skalierungsstufen hinweg  »Orientation to the highest probability of occurrence for a face optional on the face size across all scaling levels
Räumliche Mittelung der Ergebnispositionen über ausgewählte Skalierungsstufen hinweg Spatial averaging of result items across selected scaling levels
• Auswahl der in die Mittelung einbezogener Skalierungsstufen erfolgt unter Berücksichtigung der folgenden Kriterien: o Differenz der Mittelpunkte des ausgewählten Gesichts in den betrachteten Skalierungsstufen o Dynamische ermittelte Abweichung vom höchsten Ergebnis des Summenfilters  • Selection of the scaling levels included in the averaging is made taking into account the following criteria: o Difference of the centers of the selected face in the considered scaling stages o Dynamic determined deviation from the highest result of the sum filter
o Unterdrückung von Skalierungsstufen ohne Klassifikationsergebnis  o Suppression of scaling stages without classification result
Schwellwertbasierte Einstellung der Detektionsleistung des„parallel face finder" Threshold-based setting of the detection performance of the "parallel face finder"
„Parallel eye analyzer" "Parallel eye analyzer"
o Funktion  o function
Delektiert während der Gesichtsdetektion parallel die Position der Augen im entsprechenden Gesicht (diese ist vor allem bei nicht ideal frontal aufgenommenen und verdrehten Gesichtern wichtig) o Input Simultaneously detects the position of the eyes in the corresponding face during face detection (this is especially important for faces that are not ideally frontal and twisted) o Input
Bildmatrix, die mehrere Skalierungsstufen des Ausgangsbildes enthält (aus dem„Parallel image scaler" Modul) sowie die jeweils aktuelle Position an der sich höchstwahrscheinlich das gesuchte Gesicht befindet (aus dem„Parallel face finder" Modul) o Output Image matrix containing several scaling levels of the output image (from the "Parallel image scaler" module) as well as the current position at which the most likely face is located (from the "Parallel face finder" module) o Output
Position der Augen und ein dazugehöriger Wahrscheinlichkeitswert im aktuell vom ..Parallel face linder" gefundenen Gesicht o Detaillierte Beschreibung Position of the eyes and a corresponding probability value in the face currently found by the "Parallel face linder" o Detailed description
Basierend auf dem herunter skalierten Ausgangsbild wird in einem definierten Bereich (Augenbereich) innerhalb der vom„Parallel face finder" gelieferten Gesichtsregion die im folgenden beschriebene Augensuche für jedes Auge durchgeführt: Based on the scaled-down source image, the eye search described below for each eye is performed in a defined area (eye area) within the face region provided by the "Parallel face finder":
• Definieren des Augenbereichs aus empirisch ermittelten Normalpositionen der Augen innerhalb der Gesichtsregion Defining the eye area from empirically determined normal positions of the eyes within the facial region
• Mit einem speziell geformten korrelationsbasierten lokalen Filter werden innerhalb des Augenbereichs Wahrscheinlichkeiten für das Vorhandensein eines Auges ermittelt (das Au- ge wird in diesem Bildbereich vereinfacht ausgedrückt als eine kleine dunkle Fläche mit heller Umgebung beschrieben)• With a specially shaped correlation-based local filter, probabilities for the presence of an eye are determined within the eye area (the au- In simple terms, ge is described in this image area as a small dark area with a light environment.)
• Die genaue Augenposition inklusive ihrer Wahrscheinlichkeit ergibt sich durch eine Maximumsuche in dem zuvor berechneten Wahrscheinlichkeitsgebirge • The exact eye position, including its probability, results from a maximum search in the previously calculated probability range
„Parallel pupil analyzer' "Parallel pupil analyzer"
o Funktion  o function
Detekticrt ausgehend von einer zuvor ermittelten Augenposition die Position der Pupillenmittelpunkte innerhalb der detektierten Augen (dadurch erhöht sich die Genauigkeit der Augenposition, was für Vermessungen oder das Anschließende Auswerten der Pupille wichtig ist) Detects the position of the pupil centers within the detected eyes from a previously determined eye position (this increases the accuracy of the eye position, which is important for surveying or subsequent evaluation of the pupil).
o Input  o Input
Ausgangsbild in Original auflösung sowie die ermittelten Augenpositionen und Gesichtsgröße (aus dem„Parallel eye analyzer" bzw. „Parallel face fmder") Original image in original resolution and the determined eye positions and face size (from the "Parallel eye analyzer" or "Parallel face fmder")
o Output  o Output
Position der Pupille innerhalb des ausgewerteten Bildes sowie ein Status, der aussagt, ob eine Pupille gefunden wurde oder nicht o Detaillierte Beschreibung Position of the pupil within the evaluated image as well as a status indicating whether a pupil was found or not. O Detailed description
Basierend auf den ermittelten Augenpositionen und der Gesichtsgröße wird ein zu bearbeitender Bildausschnitt um das Auge herum festgelegt Based on the determined eye positions and the face size, an image area to be edited around the eye is determined
8 Uber diese Bildmatrix hinweg wird ein Vektor aufgebaut, der die Minima der Bildspalten enthält, sowie ein Vektor, der die Minima der Bildzeilen enthält 8 via these image matrix of time is set up, a vector which contains the minimums of the image columns, and a vector containing the minima of the image lines
Innerhalb dieser Vektoren (aus minimalen Grauwerten) wird wie nachfolgend erklärt separat der Pupillenmittelpunkt in horizontaler und in vertikaler Richtung detekticrt: Within these vectors (from minimal gray values) the pupil center is detected separately in horizontal and vertical direction as explained below:
• Detektion des Minimums des jeweiligen Vektors (als Position innerhalb der Pupille)  Detection of the minimum of the respective vector (as position within the pupil)
• Ausgehend von diesem Minimum innerhalb des Vektors wird in positiver und negativer Richtung die Position ermittelt, an der ein einstellbarer prozentual auf den Dynamikbereich aller Vektorelemente bezogener Schwellwert überschritten wird  • Starting from this minimum within the vector, the position is determined in the positive and negative directions, at which an adjustable percentage value based on the dynamic range of all vector elements is exceeded
• Die Mittelpunkte dieser Bereiche in den Beiden Vektoren bilden zusammen den Mittelpunkt der Pupille im analysierten Bild  The centers of these regions in the two vectors together form the center of the pupil in the analyzed image
„Temporal smart smoothing filter" "Temporal smart smoothing filter"
o Funktion Adaptive zeitliche Glättung einer Datenreihe (z. B. einer ermittelten Gesichtskoordinate), wobei Aussetzer, unsinnige Werte oder extreme Ausreißer in der zu glättenden Datenreihe NICHT zu Schwankungen der geglätteten Daten führen o function Adaptive temporal smoothing of a data series (eg a determined face coordinate), whereby dropouts, nonsensical values or extreme outliers in the data series to be smoothed DO NOT result in fluctuations of the smoothed data
o Input o Input
Zu jedem Autrufzeitpunkt des Moduls jeweils ein Wert der Datenreihe und die dazugehörigen Gütekriterien (beim Facetracking: Ge- sichtsscorc und Downscalingstufe in der das Gesicht gefunden wurde) For each call time of the module, one value of the data series and the corresponding quality criteria (for facetracking: facecorc and downscaling level in which the face was found)
o Output o Output
Geglätteter Datenwert (z. B. Gesichtskoordinate) Smoothed data value (eg face coordinate)
o Detaillierte Beschreibung o Detailed description
Über einen Satz von Filterparametern kann beim Initialisieren des Filters dessen Verhalten festgelegt werden A set of filter parameters can be used to set its behavior when the filter is initialized
Der aktuelle Input- Wert wird für die Glättung verwendet, wenn er nicht in eine der folgenden Kategorien fällt: The current input value is used for smoothing if it does not fall into one of the following categories:
• Entsprechend dem dazugehörigen Score handelt es sich um einen Aussetzer in der Datenreihe  • The corresponding score is a dropout in the data series
• Entsprechend der dazugehörigen Downscalingstufe handelt es sich um einen unsinnigen Wert (Wert, der in einer zu weit entfernten Downscalingstufe ermittelt wurde)  • The corresponding downscaling level is a nonsensical value (value found in a downscaling level that is too far away)
• Entsprechend der zu großen Differenz zum letzten für die Glättung verwendeten Wert handelt es sich um einen Ausreißer  • Excessive difference from the last value used for smoothing is an outlier
Ist eines dieser Kriterien erfüllt, wird weiterhin der zuvor ermittelte geglättete Wert ausgegeben, andernfalls wird der aktuelle Wert zur Glättung herangezogen If one of these criteria is fulfilled, the previously determined smoothed value will continue to be output, otherwise the current value will be used for smoothing
Um eine möglichst geringe Verzögerung bei der Glättung zu erhalten werden aktuelle Werte stärker gewichtet als vergangene: To get the least possible delay in smoothing, current values are weighted more heavily than the past:
• aktueller geglättete Wert = aktueller Wert * Glättungskoeffi- zient + letzter geglätteter Wert * (1 - Glättungskoeffizient) • current smoothed value = current value * smoothing coefficient + last smoothed value * (1 - smoothing coefficient)
• der Glättungskoeffizient wird in definierten Grenzen dynamisch an den Trend der zu glättenden Daten angepasst: o Verringerung bei eher konstantem Werteverlauf der Datenreihe • The smoothing coefficient is dynamically adjusted within defined limits to the trend of the data to be smoothed: o Reduction in the case of more or less constant value progression of the data series
o Erhöhung bei aufsteigendem oder abfallendem Werteverlauf der Datenreihe  o Increase in ascending or descending value progression of the data series
Wenn langfristig ein größerer Sprung bei den zu glättenden Daten oder den dazugehörigen Downscalingstufen vorkommt, passt sich das Filter und somit auch der geglättete Werteverlauf an den neuen Wert an camera System model" o Funktion If, in the long run, there is a large jump in the data to be smoothed or the associated downscaling levels, the filter and thus also the smoothed value curve adapts to the new value. Camera system model " o function
Modeiiierang des 3 D-Raumes in dem sich mehrere Kameras, der Nutzer (bzw. dessen Augen) und ggf. ein Bildschirm befinden o Input Modiiierang the 3 D space in which several cameras, the user (or his eyes) and possibly a screen are o input
Konfigurationsdatei, welche die Modellparameter (Lageparameter, optische Parameter, u. a.) aller Elemente des Modells beinhaltet o Output Configuration file containing the model parameters (position parameters, optical parameters, etc.) of all elements of the model o Output
Stellt ein Zahlengerüst und Funktionen für Berechnungen innerhalb dieses Modells zur Verfügung Provides a number skeleton and functions for calculations within this model
o Detaillierte Beschreibung  o Detailed description
Modellierung der räumlichen Lage (Position und Drehwinkel) aller Elemente des Modells sowie deren geometrische (z. B. Pixel große, Sensorgröße, Auflösung) und optische (z. B. Brennweite, Objektivverzeichnung) Eigenschaften Modeling the spatial position (position and rotation angle) of all elements of the model as well as their geometric (eg pixel size, sensor size, resolution) and optical (eg focal length, lens distortion) properties
Das Modell umfasst zum jetzigen Zeitpunkt folgende Elemente: The model includes the following elements at the moment:
• Kameraeinheiten, bestehend aus: • Camera units, consisting of:
o Kamerasensoren  o camera sensors
o Objektiven  o lenses
• Augen  • Eyes
• Display  • Display
Es werden neben den Eigenschaften aller Elemente des Modells insbesondere die nachfolgend beschriebenen Funktionen„3D position calculation" (zur Berechnung der Augenposition) und„3D gaze di- rection calculation" (zur Berechnung der Blickrichtung) zur Verfügung gestellt ■ In addition to the properties of all elements of the model, in particular the following functions are provided: "3D position calculation" (for calculating the eye position) and "3D gaze correction calculation" (for calculating the viewing direction)
In anderen Anwendungsfällen stehen auch folgende Funktionen zur Verfügung: In other applications, the following functions are also available:
• Mit Hilfe dieses Modells kann u. a. die 3D-Blickgerade (bestehend aus Pupillcnmittelpunkt und Blickrichtungsvektor (entsprechend der Biologie und Physiologie des menschlichen Auges korrigiert)) berechnet werden  • With the help of this model, u. a. the 3D line of sight (consisting of the center of the pupil and the line of sight vector (corrected according to the biology and physiology of the human eye))
• Optional kann auch der Blickpunkt eines Betrachters au einem anderen Objekt im 3 D-Modell (z. B. auf einem Display) berechnet werden sowie der fokussierte Bereich des Betrachters  • Optionally, the viewpoint of an observer on another object in the 3D model (eg on a display) can also be calculated as well as the focused area of the observer
„3D position calculation" "3D position calculation"
o Funktion  o function
Berechnung der räumlichen Position (3 D-Koordinaten) eines Punktes, der von zwei oder mehr Kameras erfasst wird (z. B. Pupillenmittelpunkt) Calculation of the spatial position (3 D coordinates) of a point captured by two or more cameras (eg pupil center)
o Input  o Input
2D-Koordinaten eines Punktes in zwei Kamerabildern o Output 2D coordinates of a point in two camera images o Output
3 D-Koordinaten des Punktes 3 D coordinates of the point
Fehlermaß: beschreibt die Genauigkeit der übergebenen 2D- Koordinaten in Verbindung mit den Modellparametem ■ Error measure: describes the accuracy of the passed 2D coordinates in conjunction with the model parameters
o Detaillierte Beschreibung  o Detailed description
Aus den übergebenen 2 D- Koordinaten werden mit Hilfe des ..3D camera System model" (insbesondere unter Berücksichtigung der optischen Parameter) für beide Kameras die Lichtstrahlen berechnet, die den 3 D-Punkt als 2 D- Punkte auf den Sensoren abgebildet haben ■ Diese Lichtstrahlen werden als Geraden im 3 D-Raum des Models beschrieben From the transferred 2 D coordinates, the light rays are calculated for both cameras using the ..3D camera system model "(especially taking into account the optical parameters), which have mapped the 3 D point as 2 D points on the sensors ■ These rays of light are described as straight lines in the 3 D space of the model
Der Punkt von dem beide Geraden den geringsten Abstand haben (im Idealfall der Schnittpunkt der Geraden) wird als Position des gesuchten 3 D-Punktes angenommen The point from which both straight lines have the shortest distance (ideally the intersection of the straight line) is assumed to be the position of the searched 3 D point
Vorteile advantages
Ermittlung der Gesichtsposition und der Augenpositionen in einem (Live-) Kamerabild in 2D und durch Rückrechnung in den 3D-Raum in 3D (durch Einbeziehen eines 3D-Raum Modells)  Determining the face position and the eye positions in a (live) camera image in 2D and by calculating back into the 3D space in 3D (by incorporating a 3D space model)
- Die unter 3. Vorgestellten Algorithmen sind optimiert auf echtzeitfähige und parallele Verarbeitung in FPGAs  The algorithms presented under 3. are optimized for real-time capable and parallel processing in FPGAs
- Hohe Frameraten (60 FPS @ 640x480 auf einem XILINX Spartan 3 A DSP @ 48 MHz) und kurze Latenzzeiten durch vollständig parallele Verarbeitung ohne Rekursionen in der Verarbeitungskette - sehr schnelle Bildverarbeitung und verzö- gerzugsarme Ausgabe der Ergebnisse  - High frame rates (60 FPS @ 640x480 on a XILINX Spartan 3 A DSP @ 48 MHz) and low latency through fully parallel processing with no processing chain recursion - very fast image processing and low-delay output of results
Minimaler Bauraum, da die gesamte Funktionalität mit einem Bauteil (FPGA) erreicht werden kann  Minimal installation space, since all functionality can be achieved with one component (FPGA)
geringer Energieverbrauch  Low energy consumption
Festes Zeitregime (konstante Zeitdifferenz zwischen aufeinanderfolgenden Ergeb- nissen) und damit prädestiniert für den Einsatz in sicherheitskritischen Anwendungen  Fixed time regime (constant time difference between successive results) and thus predestined for use in safety-critical applications
Möglichkeit zur direkten Portierung der Verarbeitung vom FPGA auf einen AS IC (applicalion specific integrated cireuit) -> sehr kostengünstige Lösung bei hohen Stückzahlen durch Ausnutzung von Skaleneffekten  Possibility to directly port the processing from the FPGA to an AS IC (application specific integrated cireuit) -> very cost-effective solution in case of large quantities by exploiting economies of scale
Anwendung application
Vorteile bei der Anwendung im Vergleich zur Softwarelösung  Advantages in the application compared to the software solution
o autonome Funktionsweise (System on Chip)  o autonomous mode of operation (system on chip)
o Möglichkeit der einfachen Überführung in einen ASIC  o Possibility of easy transfer to an ASIC
o platzsparende Integration in bestehende Systeme/Schaltungen Anwendungsbereiche ähnlich denen einer Softwarelösung (In einem (Live-) Kame- rabilddatenstrom werden Gesichtsposition und die entsprechenden Augenpositionen detektiert, die für die unten aufgeführten Anwendungen genutzt werden können) o Space-saving integration into existing systems / circuits Areas of application similar to those of a software solution (In a (live) camera data stream, the face position and the corresponding eye positions are detected, which can be used for the applications listed below)
o Sicherheitsanwendungen  o Security applications
z.B. Sekundenschlafwarner im Automotive Bereich, durch Auswertung der A ugen (Öffnungsgrad) und der Augen- und Kopibewegung o Mensch-Maschine-Kommunikation eg micro-sleep detector in the automotive sector, by evaluating the results (opening degree) and the eye and head movements o human-machine communication
z.B. Eingabeschnittstel len für technische Geräte (Kopf- bzw. Au- genposition als Inputparamcter) eg input interfaces for technical devices (head or eye position as input parameter)
o Gaze-Tracking  o gauze tracking
z.B. Gesichts- und Augenpositionen als Vorstufe zur Blickrichtungsbestimmung (in Kombination mit„Integrated Eyetracker") o Marketing eg facial and eye positions as a precursor to sight direction determination (in combination with "Integrated Eyetracker") o Marketing
* z.B. Attraktivität von Werbung bewerten durch Auswertung von * e.g. Assess the attractiveness of advertising by evaluating
Kopf- und Augenparametern (u. a. Position) Head and eye parameters (inter alia position)
Nachfolgend wird weiteres Hintergrundwissen zu den oben beschrieben Aspekten der Erfindungen offenbart. Hereinafter, further background to the above-described aspects of the inventions will be disclosed.
Hough-Merkmalsextraktion Hough feature extraction
Das Ziel der vorliegenden nachfolgenden Ausführungen ist es, auf Basis der parallelen Hough-Transformation und ein robustes Verfahren zur Merkmalsextraktion zu entwickeln. Dazu wird der Houghcore überarbeitet und ein Verfahren zur Merkmalsextraktion vorgestellt, das die Ergebnisse der Transformation reduziert und auf wenige„Merkmalsvektoren" pro Bild herunterbricht. Anschließend wird das neu entwickelte Verfahren in einer Matlab- Toolbox implementiert und getestet. Es wird schließlich eine FPGA- Implementierang des neuen Verfahrens vorgestellt. The aim of the present following is to develop on the basis of the parallel Hough transformation and a robust method for feature extraction. This will be done by revising the Houghcore and introducing a feature extraction method that reduces the results of the transformation and breaks it down to a few "feature vectors" per image, then implements and tests the newly developed method in a Matlab toolbox, eventually becoming an FPGA implementation of the new procedure.
Parallele Hough-Transformation für Geraden und Kreise Parallel Hough transformation for straight lines and circles
Die parallele Hough-Transformation nutzt Houghcores unterschiedlicher Größe, die mit Hilfe von Konfigurationsmatrizen für den jeweiligen Anwendungsfall konfiguriert werden müssen. Die mathematischen Zusammenhänge und Verfahren zur Erstellung solcher Kon- figurationsmatrizen sind nachfolgend dargestellt. Das Mailab-Skript alc_config_lines_curvatures. m greift auf diese Verfahren zurück und erstellt Konfigurationsmatrizen für Geraden und Halbkreise in verschiedenen Größen. Zur Erstellung der Konfigurationsmatrizen ist es zunächst erforderlich Kurvenscharen in diskreter Darstellung und für unterschiedliche Houghcore-Größen zu berechnen. Die Anforderungen (Bildungsvorschriften) an die Kurvenscharen wurden bereits aufgezeigt. Unter Berücksichtigung dieser Bildungsvorschriften sind insbesondere Geraden und Halbkreise zur Konfiguration der Houghcores geeignet. Für die Blickrichtungsbestimmung werden Houghcores mit Konfigurationen für Halbkreise (bzw. Krümmungen) eingesetzt. Aus Gründen der Vollständigkeit werden hier auch die Konfigurationen für Geraden (bzw. Geradenabschnitte) hergeleitet. Die mathematischen Zusammenhänge zur Bestimmung der Kurvenscharen für Geraden sind veranschaulicht. The Hough parallel transformation uses Houghcores of different sizes, which must be configured using configuration matrices for each application. The mathematical relationships and methods for creating such configuration matrices are shown below. The mailab script alc_config_lines_curvatures. m uses these methods and creates configuration matrices for straight lines and semicircles in various sizes. To create the configuration matrices, it is first necessary to calculate a set of curves in discrete representation and for different Houghcore sizes. The requirements (educational regulations) on the group of curves have already been shown. Taking into account these educational regulations, straight lines and semicircles are particularly suitable for configuring the Houghcores. Houghcores with semi-circle (or curvature) configurations are used for line of sight determination. For the sake of completeness, the configurations for straight lines (or straight line sections) are also derived here. The mathematical relationships for determining the curves for straight lines are illustrated.
Ausgangspunkt für die Berechnung der Kurvenscharen für Geraden bildet die lineare Geradengleichung in (Bl). y = m x -The starting point for calculating the curves for straight lines is the linear straight line equation in (Bl). y = m x -
(Bl) (BL)
Die Kurvenscharen können durch Variation des Anstiegs m generiert werden. Dazu wird die Geradensteigung von 0° bis 45° in gleichgroße Intervalle zerlegt. Die Anzahl der Intervalle ist von der Houghcore-Größe abhängig und entspricht der Anzahl an Houghcore- Zeilen. Der Anstieg kann über die Laufvariable Ycore von 0 bis core^ durchgestimmt werden. The families of curves can be generated by varying the rise m. For this, the straight line slope from 0 ° to 45 ° is split into equal intervals. The number of intervals depends on the Houghcore size and corresponds to the number of Houghcore lines. The increase can be tuned by the variable Y core from 0 to core ^.
1 1
m = ycore  m = ycore
core heigl  core heigl
(B2)  (B2)
Die Funktionswerte der Kurvenscharen errechnen sich durch Variation der Laufvariablen (in (B3) durch xcore ersetzt), deren Werte von 0 bis core width laufen. core core The function values of the curves are calculated by varying the variables (in (B3) replaced by x core ) whose values run from 0 to core width. core core
COrehe,g, COre he, g,
(B3)  (B3)
Für eine diskrete Darstellung im 2D-Plot müssen die Funktionswerte auf ganze Zahlen gerundet werden. Die Berechnung der Kurvenscharen für Halbkreise orientiert sich an (Katzmann 2005, S. 37-38) und ist in Fig. 9b veranschaulicht. Ausgangspunkt für die Berechnung der Kurvenscharen ist die Kreisgleichung in Koordinatenform. For a discrete representation in the 2D plot, the function values must be rounded to integers. The calculation of the curves for semicircles is based on (Katzmann 2005, pp 37-38) and is illustrated in Fig. 9b. The starting point for calculating the sets of curves is the circle equation in coordinate form.
(B4)  (B4)
Mit XM— 0 (Lage des Kreismittelpunktes auf der y-Achse), x = xcore und umstellen nach y folgt für die Funktionswerte der Kurvenscharen (B5). With XM-0 (position of the circle center on the y-axis), x = x core and change to y follows for the function values of the sets of curves (B5).
^r2 - x]ore + yM ^ r 2 - x] ore + y M
(B5)  (B5)
Da yu und r nicht bekannt sind, müssen sie ersetzt werden. Dazu können die mathematischen Since yu and r are unknown, they must be replaced. These can be the mathematical
Zusammenhänge in (B6) und (B7) aus Fig. 9b hergeleitet werden. yM= h - r Relationships in (B6) and (B7) are derived from Fig. 9b. y M = h - r
(B6) (B6)
(B7)  (B7)
Durch Umstellen von (B7) nach yM und der Bedingung das y^ immer negativ sein muss (s. Fig. 9b) erhält man (B8). By rearranging of (B7) to y M y ^ and the condition must always be the negative (s. Fig. 9b), one obtains (B8).
(B8)  (B8)
Einsetzen von (B8) in (B5) führt zu (B9). Insertion of (B8) into (B5) leads to (B9).
(B9) Aus Fig. 9b wird deutlich, dass der Houghcore mittenzentriert in der y- Achse des Kreiskoordinatensystems liegt. Die Variable xcore läuft normalerweise von 0 bis corewidth - 1 und core (B9) It is clear from Fig. 9b that the Houghcore is center-centered in the y-axis of the circular coordinate system. The variable x core normally runs from 0 to core w i dth - 1 and core
muss somit um width korrigiert werden. must therefore be corrected by width.
2 2 core width core 2 2 core width core
y >' " X core + -J r - width y>'"X co re + -J r - width
(B10) (B10)
Es fehlt noch der Radius, den man durch einsetzen von (B6) in (B7) und durch weitere Umformungen erhält. core The radius is missing, which is obtained by inserting (B6) in (B7) and by further transformations. core
= (h - rf + width  = (h - rf + width
(Bl l) core (Bl l) core
r2 =h2-2hr + rl + width r 2 = h 2 -2hr + r l + width
(B12) core. (B12) core.
h2 + width  h2 + width
r =- r = -
2 - h 2 - h
(B13) core h,eight (B13) core h, eight
Zum Erzeugen der Kurvenscharen muss schließlich die Variable h von 0 bis Finally, to generate the sets of curves, the variable h must be from 0 to
variiert werden. Dies geschieht über die Lau (variable ycore die von 0 bis corehej ht läuft be varied. This is done via the Lau (variable y core which runs from 0 to core hej ht
yc y c
2 -  2 -
(B14) (B14)
Wie bereits bei den Geraden müssen die y- Werte für eine diskrete Darstellung im 2D-Plot gerundet werden. Die Kurvenscharen für Houghcores vom Typ 2 können ganz einfach über Gleichung (B15) ermittelt werden. y Typ - -- COrehel& - yTyP (B15) As with the straight lines, the y-values for a discrete representation in the 2D plot must be rounded. The curves for Houghcores type 2 can be easily determined by equation (B15). y Type - - COre he l & - yTy P (B15)
Ausgehend von den Kurvenscharen können für alle Houghcore-Größen jeweils zwei Konfigurationen (Typ 1 und Typ 2) für Geraden und Kreise ermittelt werden. Die Konfigurati- onen werden dabei direkt aus den Kurvenscharen bestimmt, vgl. (Katzmann 2005, S. 35- 36). Konfigurationsmatrizen können entweder mit Nullen oder mit Einsen besetzt sein. Eine Eins steht dabei für ein genutztes Delayelement im Houghcorc. Zunächst wird die Konfigurationsmatrix in den Dimensionen des Houghcores mit Nullwerten initialisiert. Danach werden folgende Schritte durchlaufen: Based on the family of curves, two configurations (Type 1 and Type 2) for straight lines and circles can be determined for all Houghcore sizes. The configurations are determined directly from the families of curves, cf. (Katzmann 2005, pp. 35-36). Configuration matrices can be either zeros or ones. A one stands for a used delay element in Houghcorc. First, the configuration matrix in the dimensions of the Houghcore is initialized to zero values. Then the following steps will be performed:
1. Beginne mit der ersten Kurve der Kurvenschar und prüfe den y-Wert der ersten x- Indexnummer. Ist der y-Wert größer als Null, dann besetze in der gleichen Zeile (gleicher y-Index) an genau derselben Stelle (gleicher x-Index) das Element der Konfigurationsmatrix mit Eins. 1. Start with the first curve of the set of curves and check the y-value of the first x-index number. If the y-value is greater than zero, then occupy the element of the configuration matrix in the same line (same y-index) in exactly the same place (same x-index) with one.
2. Modifiziere die y-Werte mit gleichem x-Index über alle Kurven der Kurvenschar. 2. Modify the y-values with the same x-index over all curves of the family of curves.
Wurde im ersten Schritt das Element mit Eins besetzt, dann ziehe von allen y- Werten Eins ab. Wurde im ersten Schritt das Element nicht besetzt, dann tue nichts. If in the first step the element is occupied by one, then subtract one from all y values. If the element was not occupied in the first step, then do nothing.
3. Durchlaufe Schritt 1 und 2 so lange, bis alle Elemente der Konfigurationsmatrix angesprochen wurden. 3. Continue through steps 1 and 2 until all elements of the configuration matrix have been addressed.
Die Konfigurationsprozedur ist in Fig. 9c schrittweise veranschaulicht. The configuration procedure is illustrated stepwise in Figure 9c.
Abschließend möchte ich auf ein paar Eigenheiten der Houghcorc- Konfigurationen einge- hen. Die Konfigurationen für Geraden repräsentieren immer nur Geradenabschnitte in Abhängigkeit der Breite des Houghcores. Längere Geradenabschnitte im binären Kantenbild müssen gegebenenfalls aus mehreren detektierten Geradenabschnitten zusammengesetzt werden. Die Auflösung der Winkel (bzw. Steigung) der Geradenabschnitte ist von der Höhe des Houghcores abhängig. Finally, I would like to discuss a few peculiarities of the Houghcorc configurations. The configurations for straight lines always represent only straight sections depending on the width of the Houghcore. Longer straight line sections in the binary edge image may have to be composed of a plurality of detected straight line sections. The resolution of the angle (or slope) of the straight line sections depends on the height of the Houghcore.
Die Konfigurationen für Kreise repräsentieren immer Kreisbögen um den Scheitelpunkt des Halbkreises herum. Nur die größte y-lndexnummer der Kurvenschar (kleinster Radius) repräsentiert einen vollständigen Halbkreis. Die entwickelten Konfigurationen können für den neuen Houghcore genutzt werden. The circle configurations always represent circular arcs around the vertex of the semicircle. Only the largest y-index number of the family of curves (smallest radius) represents a complete semicircle. The developed configurations can be used for the new Houghcore.
Überarbeitung des Houghcores Ein entscheidender Nachteil der FPGA-Implementierung von Holland-Neil ist die starre Konfiguration der Houghcores. Die Delaylines müssen vor der Synthese parametrisiert werden und sind danach fest in den Hardwarestrukturen abgelegt (Holland-Neil, S. 48-49). Änderungen während der Laufzeit (z. B. Houghcore-Größe) sind nicht mehr möglich. Das neue Verfahren soll an dieser Stelle flexibler werden. Der neue Houghcore soll sich auch während der Laufzeit im FPGA vollständig neu konfigurieren lassen. Das hat mehrere Vorteile. Zum einen müssen nicht zwei Houghcores (Typ 1 und Typ 2) parallel abgelegt werden und zum anderen können auch unterschiedliche Konfigurationen für Geraden und Halbkreise genutzt werden. Darüber hinaus lässt sich die Houghcore-Größe flexibel wäh- rend der Laufzeit ändern. Revision of the Houghcore A major disadvantage of Holland-Neil's FPGA implementation is the rigid configuration of the Houghcores. The delay lines must be parameterized before the synthesis and are then stored permanently in the hardware structures (Holland-Neil, p. 48-49). Changes during runtime (eg Houghcore size) are no longer possible. The new procedure should become more flexible at this point. The new Houghcore should also be completely reconfigurable during the runtime in the FPGA. This has several advantages. On the one hand, not two Houghcores (Type 1 and Type 2) need to be stored in parallel, and on the other hand, different configurations for straight lines and semicircles can be used. In addition, the Houghcore size can be changed flexibly during runtime.
Bisherige Houghcore-Struktur bestehen aus einem Delay und einem Bypass und es wird vor der FPGA-Synthese festgelegt welcher Pfad genutzt werden soll. Im Folgenden wird diese Struktur um einen Multiplexer, ein weiteres Register zur Konfiguration des Delay- elements (Schalten des Multiplexers) und ein Pipelinedelay erweitert. Die Konfigurationsregister können während der Laufzeit modifiziert werden. Auf diese Weise können unterschiedliche Konfigurationsmatrizen in den Houghcore eingespielt werden. Durch setzten der Pipelinedelays hat das Synthesetool im FPGA mehr Freiheiten bei der Implementierung des Houghcore-Designs und es können höhere Taktraten erzielt werden. Pipe- linedelays durchbrechen zeitkritische Pfade innerhalb der FPGA-Strukturen. In Fig. 9d ist das neue Design der Delayelemente veranschaulicht. Previous Houghcore structure consists of a delay and a bypass and it is determined before the FPGA synthesis which path should be used. In the following, this structure is extended by a multiplexer, a further register for configuring the delay element (switching of the multiplexer) and a pipeline delay. The configuration registers can be modified during runtime. In this way different configuration matrices can be imported into the Houghcore. By using the pipeline selectays, the synthesis tool in the FPGA has more freedom in implementing the Houghcore design, and higher clock rates can be achieved. Pipe-linedelays break through time-critical paths within FPGA structures. In Fig. 9d, the new design of the delay elements is illustrated.
Im Vergleich zur bisherigen Umsetzung nach Katzmann und Holland-Neil sind die Delayelemente des neuen Houghcores etwas komplexer aufgebaut. Zur flexiblen Konfiguration des Delayelements wird ein zusätzliches Register benötigt und der Multiplexer belegt weitere Logikressourcen (muss im F GA in einer LUT implementiert werden). Das Pipelinedelay ist optional. Neben der Überarbeitung der Delayelemente wurden auch Modifikationen am Design des Houghcores vorgenommen. Der neue Houghcore ist in Fig. 9e veranschaulicht. Compared to the previous implementation after Katzmann and Holland-Neil, the delay elements of the new Houghcore have a somewhat more complex structure. An additional register is needed for flexible configuration of the delay element and the multiplexer occupies additional logic resources (must be implemented in the F GA in a LUT). The pipeline delay is optional. In addition to the revision of the delay elements, modifications to the design of the Houghcore were made. The new Houghcore is illustrated in Figure 9e.
Im Unterschied zum bisherigen Houghcore soll zunächst eine neue Notation eingeführt werden. Aufgrund des um 90° rotierten Designs in Fig. 9e werden die ursprünglich als „Zeilensummen" bezeichneten Signale des Ausgangshistogramms ab sofort„Spaltensummen" genannt. Jede Spalte des Houghcores steht somit für eine Kurve der Kurvenschar. Der neue Houghcore kann außerdem während der Laufzeit mit neuen Konfigurationsmatrizen beaufschlagt werden. Die Konfigurationsmatrizen sind im FPGA-internen BRAM abgelegt und werden von einer Konfigurationslogik geladen. Diese lädt die Konfigurationen als spaltenweisen Bitstring in die verketteten Konfigurationsregister (s. Fig. 9d). Die Re- Konfiguration des Houghcores benötigt eine gewisse Zeit und ist von der Länge der Spalten (bzw. der Anzahl der Delaylines) abhängig. Dabei benötigt jedes Spaltenelement einen Taktzyklus und es kommt eine Latenz von wenigen Taktzyklen durch den BRAM und die Konfigurationslogik hinzu. Die Gesamtlatenz zur Rekonflguration ist zwar nachteilig, kann jedoch für die videobasierte Bildverarbeitung in Kauf genommen werden. Im Normalfall haben die mit einem CMOS-Sensor aufgezeichneten Videodatenströme ein horizontales und vertikales Blanking. Die Rekonflguration kann somit problemlos i der horizontalen Blankingzeit stattfinden. Die Größe der im FPGA implementierten Houghcore-Struktur gibt auch die maximal mögliche Größe für Houghcore- Konfigurationen vor. Werden klei- ne Konfigurationen genutzt sind diese vertikal zentriert und in horizontaler Richtung an Spalte 1 der Houghcore-Struktur ausgerichtet (s. Fig. 9f). Nicht genutzte Elemente der Houghcore-Struktur werden allesamt mit Delays besetzt. Die korrekte Ausrichtung kleinerer Konfigurationen ist für die Korrektur der x- Koordinaten (s. Formeln (B17) bis (B19)) wichtig. In contrast to the previous Houghcore, a new notation should first be introduced. Due to the 90 ° rotated design in Fig. 9e, the signals of the original histogram, originally called "row sums", are now called "column sums". Each column of the Houghcore thus represents a curve of the group of curves. The new Houghcore can also be loaded with new configuration matrices during runtime. The configuration matrices are stored in the FPGA internal BRAM and are loaded by a configuration logic. This loads the configurations into the concatenated configuration registers as a column-wise bit string (see Fig. 9d). The re- Configuration of the Houghcore requires a certain amount of time and depends on the length of the columns (or the number of delay lines). Each column element requires one clock cycle and there is a latency of a few clock cycles through the BRAM and configuration logic. Although overall latency for reconfiguration is disadvantageous, it can be accepted for video-based image processing. Normally, the video data streams recorded with a CMOS sensor have horizontal and vertical blanking. The reconfiguration can thus take place without problems in the horizontal blanking time. The size of the Houghcore structure implemented in the FPGA also dictates the maximum size possible for Houghcore configurations. When small configurations are used, they are vertically centered and aligned in the horizontal direction on column 1 of the Houghcore structure (see Fig. 9f). Unused elements of the Houghcore structure are all filled with delays. The correct alignment of smaller configurations is important for the correction of the x-coordinates (see Formulas (B17) to (B19)).
Der Houghcore wird wie bisher mit einem binären Kantenbild gespeist, das die konfigurierten Delaylines durchläuft. Mit jedem Verarbeitungsschritt werden die Spaltensummen über den gesamten Houghcore berechnet und jeweils mit dem Summensignal der vorhergehenden Spalte verglichen. Liefert eine Spalte einen höheren Summenwert, wird der Summenwert der ursprünglichen Spalte überschrieben. Als Ausgangssignal liefert der neue Houghcore einen Spaltensummenwert und die dazugehörige Spaltennummer. Auf Basis dieser Werte kann später eine Aussage darüber getroffen werden, welche Struktur gefunden wurde (repräsentiert durch die Spaltennummer) und mit welcher Auftrittswahrscheinlichkeit diese detektiert wurde (repräsentiert durch den Summenwert). Das Ausgangssignal des Houghcores kann auch als I loughraum oder Akkumulatorraum bezeichnet werden. Im Gegensatz zur herkömmlichen Hough-Transformation liegt der Houghraum der parallelen Hough-Transformation im Bildkoordinatensystem vor. Das heißt, dass zu jeder Bildkoordinate ein Summenwert mit dazugehöriger Spaltennummer ausgegeben wird. Zur vollständigen Transformation des Ausgangsbildes muss jeweils ein Houghcore vom Typ 1 und Typ 2 vom nicht rotierten und rotierten Bild durchlaufen werden. Damit liegen nach der Transformation nicht nur Spaltensumme mit dazugehöriger Spaltennummer, sondern auch der Houghcore-Typ und die Ausrichtung des Ausgangsbildes (nicht rotiert oder rotiert) vor. Darüber hinaus können verschiedene Houghcore-Größen und Konfigurationen jeweils für Geraden und Halbkreise genutzt werden. Damit kann neben den genannten Ergebnissen noch der Kurventyp und die Houghcore- Größe angegeben werden. Zusammenfassend ist ein Ergebnisdatensatz des neuen Houghcores in nachfolgender Tabelle dargestellt. Bei der parallelen Hough-Transformation entsteht für jeden Bildpunkt des Ausgangsbildes ein solcher Datensatz. The Houghcore is fed as before with a binary edge image that passes through the configured delay lines. With each processing step, the column sums are calculated over the entire Houghcore and compared with the sum signal of the previous column, respectively. If a column returns a higher sum value, the sum value of the original column is overwritten. As an output, the new Houghcore returns a column sum value and its associated column number. On the basis of these values, a statement can later be made as to which structure was found (represented by the column number) and with which occurrence probability it was detected (represented by the summation value). The output signal of the Houghcore can also be referred to as an empty space or accumulator space. In contrast to the conventional Hough transformation, the Hough space of the parallel Hough transformation is present in the image coordinate system. This means that a sum value with associated column number is output for each image coordinate. For complete transformation of the output image, a Houghcore of Type 1 and Type 2 must each be run through from the non-rotated and rotated image. Thus after the transformation not only column sum with associated column number, but also the Houghcore type and the orientation of the output image (not rotated or rotated) are present. In addition, different Houghcore sizes and configurations can be used for straight and semi-circles. Thus, in addition to the results mentioned, the curve type and the Houghcore size can also be specified. In summary, a result data set of the new Houghcore is shown in the following table. In the case of the parallel Hough transformation, such a data record is produced for each pixel of the output image.
Ubersicht des Ergebnisdatensatzes der für jeden Bildpunkt des Ausgangsbildes bei der parallelen Hough-Transformation mit überarbeiteter Houghcore-Struktur entsteht.  Overview of the result data set that arises for each pixel of the output image in the parallel Hough transformation with a revised Houghcore structure.
Im Gegensatz zum binären und schwel 1 wertbasierten Ausgang des Houghcores von Katzmann und Holland-Neil erzeugt die neue Houghcore-Struktur deutlich mehr Ausgangsdaten. Da solch eine Datenmenge nur schwer zu handhaben ist, wird ein Verfahren zur Merkmalsextraktion vorgestellt, das die Ergebnisdatenmenge deutlich verringert. In contrast to Katzmann and Holland-Neil's Houghcore, which has a binary value based on the value of 1, the new Houghcore structure generates significantly more initial data. Since such a data amount is difficult to handle, a method of feature extraction is presented, which significantly reduces the result data set.
Typ 2 Houghcore und Bildrotation Type 2 Houghcore and picture rotation
Bei den Ausführungen zur parallelen Hough-Transformation wurde bereits die Notwendigkeit der Bildrotation und die Eigenheiten des Typ 2 Houghcores angeschnitten. Bei der parallelen Hough-Transformation muss das Ausgangsbild den Houghcore viermal durchlaufen. Das ist notwendig, damit Geraden und Halbkreise in unterschiedlichen Winkellagen detektiert werden können. Arbeitet man nur mit einem Typ 1 Houghcore, müsste man das Bild in Ausgangslage und rotiert um 90°, 180° und 270° verarbeiten. Durch Hinzu- nähme des Typ 2 Houghcores entfallen die Rotation um 180° und 270°. Wird das nicht rotierte Ausgangsbild mit einem Typ 2 Houghcore verarbeitet entspricht das einer Verarbeitung des um 180° rotierten Ausgangsbildes mit einem Typ 1 Houghcore. Ahnlich verhält es sich mit der Rotation um 270°. Diese kann durch Verarbeitung des um 90° rotierten Bildes mit einem Typ 2 Houghcore ersetzt werden. Für eine FPGA-Umsetzung wirkt sich der Wegfall zusätzlicher Rotationen positiv aus, da Bildrotationen im Normalfall nur mit Hilfe eines externen Speichers gelöst werden können. Je nach eingesetzter Hardware steht nur eine gewisse Bandbreite (maximal mögliche Datenrate) zwischen FPGA und Speicherbaustein zur Verfügung. Bei Verwendung eines Typ 2 Houghcores wird die Bandbreite des externen Speicherbausteins nur mit einer Rotation um 90° belegt. Bei der bisherigen Im- plementierung von Holland-Neil war es erforderlich einen Houghcore vom Typ 1 und einen Houghcore vom Typ 2 im FPGA abzulegen. Mit dem überarbeiteten Houghcore- Design ist es nun auch möglich die Houghcore-Struktur einmal im FPGA abzulegen und Konfigurationen vom Typ 1 oder Typ 2 zu laden. Durch diese neue Funktionalität kann mit nur einem Houghcore und bei nur einer Bildrotation das Ausgangsbild vollständig trans- formiert werden. In the parallel Hough transformation, the need for image rotation and the peculiarities of the type 2 Houghcore have already been discussed. In the parallel Hough transformation, the output image must go through the Houghcore four times. This is necessary so that straight lines and semicircles can be detected in different angular positions. If you only work with a type 1 Houghcore, you would have to process the image in the starting position and rotated by 90 °, 180 ° and 270 °. Adding the Type 2 Houghcore eliminates 180 ° and 270 ° rotation. If the non-rotated output image is processed with a type 2 Houghcore, this corresponds to a processing of the 180 ° rotated output image with a type 1 Houghcore. The situation is similar with the rotation around 270 °. This can be replaced by processing the 90 ° rotated image with a Type 2 Houghcore. For FPGA conversion, the omission of additional rotations has a positive effect, since image rotations can normally only be solved with the help of an external memory. Depending on the hardware used, only a certain bandwidth (maximum possible data rate) is available between FPGA and memory chip. When using a Type 2 Houghcore, the bandwidth of the external memory module is only occupied by a rotation of 90 °. In the past implementation of Holland-Neil it was necessary to deposit a Houghcore type 1 and a Houghcore type 2 in the FPGA. With the revised Houghcore design, it is now also possible to store the Houghcore structure once in the FPGA and load Type 1 or Type 2 configurations. With this new functionality, the output image can be fully transformed with just one houghcore and just one image rotation.
Es bleibt zu berücksichtigen, dass bei der Verarbeitung mit nur einem Houghcore auch die vierfache Datenrate im Houghcore anfällt. Bei einem Videodatenstrom mit 60fps und VGA-Aufiösung beträgt die Pixeldatenrate 24Mhz. In diesem Fall müsste der Houghcore mit 96Mhz betrieben werden, was für einen FPGA der Spartan 3 Generation bereits eine hohe Taktrate darstellt. Zur Optimierung des Designs sollte verstärkt mit Pipelincdelays innerhalb der Houghcore-Struktur gearbeitet werden. It remains to be considered that when processing with only one Houghcore four times the data rate in Houghcore accrues. For a 60fps video stream and VGA resolution, the pixel data rate is 24Mhz. In this case, the Houghcore would have to be operated at 96Mhz, which is already a high clock speed for a Spartan 3 generation FPGA. In order to optimize the design, work should increasingly be done with pipelined delays within the Houghcore structure.
Merkmalsextraktion feature extraction
Die Merkmalsextraktion arbeitet auf den Datensätzen aus vorheriger Tabelle. Diese Datensätze können in einem Merkmalsvektor (B16) zusammengefasst werden. Der Merkmalsvektor kann im Folgenden auch als Hough-Feature bezeichnet werden. The feature extraction works on the records from the previous table. These data sets can be combined in a feature vector (B16). The feature vector can also be referred to below as a Hough feature.
MV=[MVX, MVy,MV0, MV KS, MVH, MVG.h MVA] MV = [MV X , MVy, MV 0 , MV KS, MV H , MV G. h MV A ]
(B16) Ein Merkmalsvektor bestellt jeweils aus x- und y-Koordinate für das gefundene Feature (MVX und MVy), der Orientierung MVo, der Krümmungsstärke MVKS, der Häufigkeit MVH, der Houghcore-Größe MVc-i und die Art der gefundenen Struktur MVA. Die detaillierte Bedeutung und der Wertebereich der einzelnen Elemente des Merkmalsvektors kann nach- folgender Tabelle entnommen werden. (B16) A feature vector orders in each case from x and y coordinates for the feature found (MV X and MV y ), the orientation MVo, the curvature strength MVKS, the frequency MV H , the houghcore size MVc-i and the type of structure MV found A. The detailed meaning and the value range of the individual elements of the feature vector can be seen in the following table.
Elemente des Hough-Merkmalsvektors, deren Bedeutung und Wertebereich.  Elements of the Hough feature vector, their meaning and value range.
Berechnung der Orientierung in Abhängigkeit der Bildrotation und des zur Transformation genutzten Houghcore-Typs. Aus obigen Tabellen wird ersichtlich, dass die beiden Elemente MVQ und MVKS bei Geraden und Halbkreisen unterschiedliche Bedeutungen haben. Bei Geraden bildet die Kombination aus Orientierung und Krümmungsstärke den Lagewinkel des detektierten Geraden- abschnittes im Winkel von 0° bis 180°. Dabei adressiert die Orientierung einen Winkelbereich und die Krümmungsstärke steht für einen konkreten Winkel innerhalb dieses Bereiches. Je größer der Houghcore (genauer je mehr Houghcore-Spalten vorhanden sind), desto feiner ist die Winkelauflösung. Bei Halbkreisen steht die Orientierung für den Lagewinkel bzw. die Ausrichtung des Halbkreises. Halbkreise können prinzipbedingt nur in vier Aus- richtungen detektiert werden. Die Krümmungsstärke steht bei Halbkreiskonfigurationen für den Radius. Calculation of the orientation depending on the image rotation and the Houghcore type used for the transformation. It can be seen from the above tables that the two elements MVQ and MVK S have different meanings for straight lines and semicircles. For straight lines, the combination of orientation and curvature strength forms the position angle of the detected straight line section at an angle of 0 ° to 180 °. The orientation addresses an angular range and the curvature strength stands for a concrete angle within this range. The larger the Houghcore (the more Houghcore columns are present), the finer the angular resolution. In semicircles, the orientation is the position angle or the orientation of the semicircle. Semicircles can only be detected in four directions due to the principle. The curvature is in semicircular configurations for the radius.
Neben der Orientierung MVo und der Krümmungsstärke MVKS ist bei den Koordinaten (MVx und MVy) eine weitere Besonderheit zu beachten (s. Fig. 9g). Bei Geraden sollen die Koordinaten immer den Mittelpunkt und bei Halbkreisen bzw. Krümmungen immer den Scheitelpunkt repräsentieren. Mit dieser Vorgabe kann die y-Koordinate entsprechend der implementierten Houghcore- Struktur korrigiert werden und ist unabhängig von der Größe der zur Transformation genutzten Konfiguration (s. Fig. 9f). Ähnlich einem lokalen Filter wird die y-Koordinate vertikal zentriert angegeben. Für die x-Koordinate wird ein Zusam- menhang über die Houghcore- Spalte hergestellt, die den Treffer geliefert hat (im Merkmalsvektor ist die Houghcore-Spalte unter der Bezeichnung MVKS abgelegt). In Abhängigkeit des Houghcore-Typs und der Bildrotation können Berechnungsvorschriften für drei verschiedene Fälle angegeben werden. Für einen Houghcore vom Typ 1 wird jeweils für das nichtrotierte und das rotierte Ausgangsbild auf Formel (B 1 7) zurückgegriffen. Liegt ein Houghcore vom Typ 2 vor muss in Abhängigkeit der Bildrotation auf Formel (B18) bzw. Formel (B19) zurückgegriffen werden. In addition to the orientation MVo and the curvature strength MVKS, another special feature must be taken into account at the coordinates (MVx and MVy) (see Fig. 9g). In the case of straight lines, the coordinates should always represent the center point and, in the case of semicircles or bends, always the vertex. With this specification, the y-coordinate can be corrected according to the implemented Houghcore structure and is independent of the size of the configuration used for transformation (see Fig. 9f). Similar to a local filter, the y-coordinate is specified vertically centered. For the x-coordinate, a relation is made about the Houghcore column that provided the hit (in the feature vector, the Houghcore column is placed under the label MVKS). Depending on the Houghcore type and image rotation, calculation rules for three different cases can be specified. For a Houghcore of type 1, the unrotated and the rotated output image are each based on formula (B 1 7). If a Houghcore of type 2 exists, you have to use formula (B18) or formula (B19) depending on the image rotation.
(B17) (B17)
MVr = Bildbreite, MVMV r = image width, MV
(B18)  (B18)
MF = Bildbreite,. MVMF = image width ,. MV
12 (B 19) 12 (B 19)
Mit der Anweisung floor wird die gebrochen rationale Zahl abgerundet. Im FPGA entspricht das dem einfachen Abschneiden der binären Nachkommastellen. Nachdem die Orientierung bestimmt und die Koordinaten des Hough-Features korrigiert wurden, kann die eigentliche Merkmalsextraktion erfolgen. The statement floor rounds off the fractional rational number. In FPGA, this is equivalent to simply truncating binary decimal places. After the orientation has been determined and the coordinates of the Hough feature have been corrected, the actual feature extraction can take place.
Zur Merkmalsextraktion werden drei Schwellwcrte in Kombination mit einem non- maximumsuppression Operator genutzt. Der non-maximum-suppression Operator unterscheidet sich bei Geraden und Halbkreisen. Uber die Schwellwerte wird eine minimale MVKS und maximale Krümmungsstärke MV^ vorgegeben und eine minimale Häufigkeit MVH festgelegt. Der non-maximum-suppression Operator kann als lokaler Operator der Größe 3x3 betrachtet werden (s. Fig. 9h). Ein gültiges Merkmal für Halbkreise (bzw. Krümmungen) entsteht immer genau dann, wenn die Bedingung des nms-Operators in (B23) erfüllt ist und die Schwellwerte gemäß Formeln (B20) bis (B22) überschritten werden. For feature extraction, three thresholds are used in combination with a non-maximum suppression operator. The non-maximum-suppression operator differs in straight lines and semicircles. Above the threshold values, a minimum MV KS and maximum curvature strength MV ^ are specified and a minimum frequency MV H is determined. The non-maximum suppression operator can be considered a 3x3 local operator (see Figure 9h). A valid semicircle feature (or curvature) always arises when the condition of the nms operator in (B23) is satisfied and the thresholds are exceeded according to formulas (B20) to (B22).
MVn > MV1 MV n> 1 MV
(B20)  (B20)
MV > MV, MV> MV,
(B21 )  (B21)
MV i > MV i >
mm22 MVH mm 22 MV H
(B22)  (B22)
MV r H MV r H
nHms} ! A MV n"msi i A MV n"ms 5 MV nHms2 MV n"ms-, - MV n"m - t MV n"ms- ? MV n"ms- - MV n'ms-, n H ms }! A MV n "msi i A MV n" ms 5 MV n H ms 2 MV n "ms-, - MV n" m -t MV n "ms-" MV n "ms-MV n'ms-,
(B23)  (B23)
Durch die non-maximum-suppression werden Hough-Features unterdrückt, die keine lokalen Maxima im Häufigkeitsraum der Merkmalsvektoren darstellen. Auf diese Weise werden Hough- Features unterdrückt, die keinen Beitrag zur gesuchten Struktur liefern und für die Nachverarbeitung irrelevant sind. Die Merkmalsextraktion wird nur noch über drei Schwellen parametrisiert, die im Vorfeld sinnvoll eingestellt werden können. Eine detaillierte Erläuterung der Schwel l werte ist nachfolgender Tabelle zu entnehmen. Schwell wert Beschreibung Vergleichbarer Parameter des Verfahrens nach KatzmannNon-maximum suppression suppresses Hough features that are not local maxima in the frequency domain of the feature vectors. This suppresses Hough features that do not contribute to the searched structure and that are irrelevant to postprocessing. The feature extraction is parameterized only via three thresholds, which can be sensibly adjusted in advance. A detailed explanation of the threshold values can be found in the following table. Threshold Description Comparable parameter of the Katzmann method
Schwellwert für eine minimale Häufigkeit, also einen Spalten- Hough- I hres summenwert, der nicht unterschritten werden darf. Threshold for a minimum frequency, ie a column Hough sum value that must not be undershot.
MV«smm Schwellwert für eine minimale Krümmung des Hough-Features. Bottom-Line MV's mm threshold for a minimal curvature of the Hough feature. Bottom Line
Bei Houghcores mit Geradenkonfiguration bezieht sich die  For Houghcores with straight configuration refers the
Schwelle auf den vom Houghcore detektierten Winkelbereich.  Threshold on the angle range detected by the Houghcore.
Verhält: sich wie MVKS nur für eine maximale Krümmung. Top-LineBehaves: like MV KS only for a maximum curvature. Top Line
Detaillierte Beschreibung der drei Schwell werte zur Extraktion von Hough-Fcaturcs aus dem Houghraum. Im Vergleich zum Verfahren nach Katzmann sind Parameter mit ähnlicher Funktion angegeben. Detailed description of the three threshold values for extraction of Hough Fcaturcs from the Hough space. Compared to the Katzmann method, parameters with a similar function are given.
Für Geraden kann ebenfalls ein non-maximum-suppression Operator der Größe 3x3 (s. Fig. 9h) hergeleitet werden. Dabei sind einige Besonderheiten zu beachten. Anders als bei den Krümmungen werden die gesuchten Strukturen bei den Geradenabschnitten nicht auf ein entstehen fortlaufend mehrere Maxima entlang des binären Kantenverlaufes. Die non- maximumsuppression kann somit an das Verfahren im Canny- Kantendetektionsalgorithmus angelehnt werden. Je nach Houghcore-Typ und detektiertem Winkelbereich können drei Fälle unterschieden werden (s. Fig. 9i in Kombination mit obiger Tabelle). Die Fallunterscheidung gilt sowohl für rotierte als auch nicht rotierte Ausgangsbilder, da die Rücktransformation rotierter Koordinaten erst nach der non-maximum- suppression erfolgt. Welcher nms-Operator zu verwenden ist hängt neben dem Houghcore- Typ auch vom Winkelbereich ab. Der Winkelbereich, den ein Houghcore mit Konfigurationen für Geraden liefert wird durch die Winkelbereichshalbierende geteilt. Die Winkelbe- reichshalbicrende kann als Houghcore-Spalte (dezimal gebrochen) angegeben werden ( MVKSI ^ ). Den mathematischen Zusammenhang in Abhängigkeit der Hougheore-Größe beschreibt Formel (B24). In welchem Winkelbereich das Hough-Fcature liegt richtet sich nach der Houghcore-Spalte, die den Treffer geliefert hat (MVKS), welche direkt mit der Winkelbereichshalbierenden Houghcore-Spalte verglichen werden kann. π For straight lines, a non-maximum suppression operator of size 3x3 (see Fig. 9h) can also be derived. There are some special features to consider. Unlike the curvatures, the sought-after structures in the straight line sections do not arise on a continuous several maxima along the binary edge profile. The non-maximum suppression can thus be based on the method in the Canny edge detection algorithm. Depending on the Houghcore type and the detected angular range, three cases can be distinguished (see Fig. 9i in combination with the above table). The case distinction applies to both rotated and non-rotated output images, since the inverse transformation of rotated coordinates only takes place after non-maximum suppression. Which nms operator to use depends on the Houghcore type as well as the angle range. The angular range that a Houghcore provides with straight line configurations is divided by the angular range bisector. The angle bisector can be given as a Houghcore column (decimal broken) (MV KSI ^). The mathematical relationship depending on the Hougheore size is described by formula (B24). The angle range the Hough-Fcature lies in depends on the Houghcore column that delivered the hit (MVKS), which can be compared directly with the angular range bisecting Houghcore column. π
MVKS = tan MV CS = tan
180 HoughcoreG'öße 180 HoughcoreG ß e
(B24) (B24)
Hat man sich für einen Operator entschieden kann ähnlich der non-maximum-suppression für Krümmungen die Bedingung über den jeweiligen nms-Oprator abgefragt werden (Formeln (B25) bis (B27)). Sind alle Bedingungen erfüllt und werden zusätzlich die Schwell- werte gemäß den Formeln (B20) bis (B22) überschritten, kann das Hough-Feature tion nms2,2 übernommen werden. If one has opted for an operator, the condition can be queried via the respective nms-oprator, similar to the non-maximum suppression for curvatures (formulas (B25) to (B27)). If all conditions are met and if the threshold values values according to the formulas (B20) to (B22), the Hough feature tion nms2,2 can be adopted.
Entscheidung für einen nms-Operator in Abhängigkeit des Houghcore-Typs und des Win- kelbereichs, in dem der Treffer aufgetreten ist.  Decision for an nms operator depending on the Houghcore type and the angle range in which the hit occurred.
(MVn s > MVL ) MVnls > MVL ) ( MV ns > MV L) MV nls > MV L)
(B25) (B25)
(MV " > MV " )A (MV" > MV " ) (MV ">MV") A (MV ">MV")
(B27) Den Abschluss der Merkmalsextraktion bildet die Rückrotation der x- und y-Koordinaten rotierter Hough-Features. Für die Nachverarbeitung sollten diese wieder im Bildkoordinatensystem vorliegen. Die Rüektransformation ist unabhängig vom Kurventyp (egal ob Geraden oder Krümmungen) immer dann auszuführen, wenn das rotierte Ausgangsbild verarbeitet wird. In den Formeln (B28) und (B29) ist der mathematische Zusammenhang be- schrieben. Mit Bildbreite ist die Breite des nicht rotierten Ausgangsbildes gemeint.  (B27) The conclusion of the feature extraction is the backward rotation of the x and y coordinates of rotated Hough features. For postprocessing, these should again be present in the image coordinate system. Irrespective of the curve type (regardless of whether it is a straight line or curvature), the backsplash must always be executed when the rotated output image is processed. The mathematical relationship is described in formulas (B28) and (B29). Image width means the width of the non-rotated output image.
MVY = MV MV Y = MV
(B28) MV = Bildbreite- MV y„r,„ (B28) MV = image width MV y " r ,"
(B29)  (B29)
Mit Hilfe der Merkmalsextraktion ist es möglich die Ergebnisdaten der parallelen Hough- Transforrnation bis auf wenige Punkte zu reduzieren. Diese können dann als Merkmalsvektor an die Nachverarbeitung übergeben werden. Die oben beschriebenen Ausführungsbeispiele stellen lediglich eine Veranschaulichung der Prinzipien der vorliegenden Erfindung dar. Es versteht sich, dass Modifikationen und Variationen der hierin beschriebenen Anordnungen und Einzelheiten anderen Fachleuten einleuchten werden. Deshalb ist beabsichtigt, dass die Erfindung lediglich durch den Schutz- umfang der nachstehenden Patentansprüche und nicht durch die spezifischen Einzelheiten, die anhand der Beschreibung und der Erläuterung der Ausführungsbeispiele hierin präsentiert wurden, beschränkt sei. With the help of the feature extraction, it is possible to reduce the result data of the parallel Hough transformation to a few points. These can then be transferred to the postprocessing as a feature vector. The embodiments described above are merely illustrative of the principles of the present invention. It will be understood that modifications and variations of the arrangements and details described herein will be apparent to others of ordinary skill in the art. Therefore, it is intended that the invention be limited only by the scope of the appended claims, rather than by the specific details presented in the description and explanation of the embodiments herein.

Claims

Patentansprüche claims
1. 3 D- B i 1 d an a 1 y sato r (400) zur Bestimmung einer Blickrichtung, wobei der 3D- Bildanalysator (400), ausgebildet ist, um zumindest einen ersten Satz von Bilddaten, der auf Basis eines ersten Bildes (804a) bestimmt wird, und einen weiteren Satz von Informationen, der auf Basis des ersten Bildes (804a) oder eines weiteren Bildes (804b) bestimmt wird, zu empfangen, wobei das erste Bild (804a) ein Muster umfasst, das sich durch die Abbildung eines dreidimensionalen Objekts aus einer ersten Perspektive in eine erste Bildebene ergibt, und wobei der weitere Satz ein Bild mit einem Muster umfasst, das sich durch die Abbildung des selben dreidimensionalen Objekts aus einer weiteren Perspektive in eine weitere Bildebene ergibt, oder wobei der weitere Satz Informationen enthält, welche eine Beziehung zwischen mindestens einem Punkt des dreidimensionalen Objekts und der ersten Bildebene beschreiben, wobei der 3D-Bildanalysator (400) folgende Merkmale umfasst: eine Positionsberecl nungseinrichtung (404), die ausgebildet ist, um eine Position des Musters in einem dreidimensionalen Raum basierend auf dem ersten Satz, einem weiteren Satz, der auf Basis des weiteren Bildes (804b) bestimmt wird, und einer geometrischen Beziehung zwischen den Perspektiven des ersten (804a) und des weiteren Bildes (804b) zu berechnen oder um die Position des Musters (806a) in dem dreidimensionalen Raum basierend auf dem ersten Satz und einer statistisch ermittelten Beziehung zwischen mindestens zwei charakteristischen Merkmalen zueinander in dem ersten Bild zu berechnen oder um die Position des Musters (806a) in dem dreidimensionalen Raum basierend auf dem ersten Satz und einer Lagebeziehung zwischen mindestens einem Punkt des dreidimensionalen Objektes und der ersten Bildebene zu berechnen; und eine Ausrichtungsberechnungseinrichtung (408), die ausgebildet ist, um pro Bild zumindest zwei mögliche 3 D-Blickvektoren zu berechnen und aus den zwei möglichen 3D-Blickvektoren den 3 D-Blickvektor zu ermitteln, gemäß dem das Muster (806a) in dem dreidimensionalen Raum ausgerichtet ist, wobei die Berechnung und Ermittlung auf dem ersten Satz, dem weiteren Satz und auf der berechneten Position des Musters (806a) basiert. 1. 3 D-B i 1 d at a 1 y sato r (400) for determining a viewing direction, wherein the 3-D image analyzer (400) is adapted to form at least a first set of image data based on a first image (400). 804a), and to receive another set of information determined based on the first image (804a) or another image (804b), the first image (804a) comprising a pattern extending through the image of a three-dimensional object from a first perspective into a first image plane, and wherein the further sentence comprises an image with a pattern resulting from imaging the same three-dimensional object from another perspective into another image plane, or wherein the further set of information which describes a relationship between at least one point of the three-dimensional object and the first image plane, wherein the 3D image analyzer (400) comprises the following features: a position definition plane means (404) adapted to determine a position of the pattern in a three-dimensional space based on the first sentence, a further sentence determined on the basis of the further image (804b), and a geometric relationship between the perspectives of the first (804b). 804a) and the further image (804b) or to calculate the position of the pattern (806a) in the three-dimensional space based on the first set and a statistically determined relationship between at least two characteristic features in the first image or the position the pattern (806a) in the three-dimensional space based on the first set and a positional relationship between at least one point of the three-dimensional object and the first image plane; and an alignment calculation means (408) arranged to compute at least two possible 3-D view vectors per image and to obtain from the two possible 3D view vectors the 3-D view vector according to which the pattern (806a) in the three-dimensional space the calculation and determination being based on the first set, the further set, and the calculated position of the pattern (806a).
2. 3D-Bildanalysator (400) gemäß Anspruch 1 , wobei der weitere Satz ein weiteres Bild (804b) umfasst, und wobei die Ausrichtungsberechnungseinrichtung (408) ausgebildet ist, um zwei weitere mögliche 3 D-Blickvektoren zu berechnen und die zwei weiteren möglichen 3 D-Blickvektoren mit den zwei möglichen 3 D-Blickvektoren zu vergleichen und auf Basis des Vergleichs den 3 D-Blickvektor zu ermitteln, gemäß dem das Muster (806a) in dem dreidimensionalen Raum ausgerichtet ist. The 3D image analyzer (400) of claim 1, wherein the further set comprises a further image (804b), and wherein the alignment computation means (408) is adapted to compute two further possible 3-D gaze vectors and the two compare further possible 3 D view vectors with the two possible 3 D view vectors, and based on the comparison, determine the 3 D view vector according to which the pattern (806a) is aligned in the three-dimensional space.
3D-Bildanalysator (400) gemäß Anspruch 1 oder 2, wobei der weitere Satz von Bildinformationen Information enthält, wie viele Pixel von der in dem ersten (804a) und/oder weiteren Bild (804b) abgebildeten Sklera von den Projektionen überstrichen werden, welche sich aus dem Pupillcnmittelpunkt in dem ersten und/oder weiteren Bild und der Abbildung der beiden möglichen 3D-Blickvektoren in das Bild ergeben. A 3D image analyzer (400) according to claim 1 or 2, wherein the further set of image information includes information on how many pixels are scanned by the sclera imaged in the first (804a) and / or further image (804b) from the projections which are from the pupil center in the first and / or further image and the mapping of the two possible 3D view vectors into the image.
3D-Bildanalysator (400) gemäß Anspruch 2 oder 3, wobei die Ausrichtungsberech- nungseinrichtung (408) ausgebildet ist, aus den zwei möglichen 3D-Blickvektoren den 3D-Blickvektor auszuwählen, gemäß dem das Muster (806a) in dem dreidimensionalen Raum ausgerichtet ist, wobei dieser 3D-Blickvektor sich dadurch auszeichnet, dass dessen Rückprojektion in das Bild ausgehend vom Pupillenmittelpunkt weniger Pixel der Sklera überstreicht als die Rückprojektion des anderen SD- Blickvektors. A 3D image analyzer (400) according to claim 2 or 3, wherein the orientation calculator (408) is adapted to select from the two possible 3D view vectors the 3D view vector according to which the pattern (806a) is aligned in the three-dimensional space, wherein this 3D view vector is characterized in that its back projection into the image, starting from the pupil center, sweeps fewer pixels of the sclera than the back projection of the other SD view vector.
3D-Bildanalysator (400) gemäß einem der Ansprüche 1 bis 4, wobei die Ausrich- tungsberechnungseinrichtung (408) ausgebildet ist, um je einen Abstand zwischen dem erkannten Pupillenmittelpunkt und einem erkannten Rand des Auges entlang den zwei möglichen ins Bild projizierten 3 D-Blickvektoren zu ermitteln und den SD- Blickvektor, gemäß dem das Muster in dem dreidimensionalen Raum ausgerichtet ist, aus den zwei möglichen 3 D-Blickvektoren auszuwählen, wobei der SD- Blickvektor ausgewählt wird, dessen Projektion ins Bild dort den kleineren Abstand zwischen dem Pupillenmittelpunkt und dem Rand der Augenöffnung überstreicht. A 3D image analyzer (400) according to any one of claims 1 to 4, wherein the orientation calculator (408) is configured to form a distance between the detected pupil center and a detected edge of the eye along the two possible 3 D view vectors projected in the image and to select the SD view vector according to which the pattern is aligned in the three-dimensional space from the two possible 3 D view vectors, selecting the SD view vector whose projection into the image there is the smaller distance between the pupil center and the The edge of the eye opening passes over.
3D-Bildanalysator (400) gemäß einem der Ansprüche 1 bis 5, wobei der weitere Satz von Bildinformationen eine Information über eine Beziehung zwischen einer im ersten Bild (804a) erkannten Pupillenlage innerhalb des Auges zu einer Referenzpupillenlage und den zwei mögliche 3 D-Blickvektoren umfasst. The 3D image analyzer (400) of any of claims 1 to 5, wherein the further set of image information includes information about a relationship between a pupil location within the eye detected in the first image (804a) to a reference pupil location and the two possible 3 D view vectors ,
3D-Bildanalysator (400) gemäß Anspruch 6, wobei die Ausrichtungsberechnungsein- richtung (408) ausgebildet ist, um eine Referenzlage des Auges, die dem Schwerpunkt der Fläche der abgebildeten Augenöffnung bei Parallellage der Gesichtsebene zur Kamerasensorebene oder dem berechneten Pupillenmittelpunkt bei direktem Blick zur Kamerasensormitte entspricht, zu ermitteln und den 3D-Blickvektor, ge- maß dem das Muster (806a) in dem dreidimensionalen Raum ausgerichtet ist, aus den zwei möglichen 3 D-B 1 iekvektoren auszuwählen, wobei der 3 D-Blickvektor ausgewählt wird, dessen Abbildung ins Bild ausgehend vom Pupillenmittelpunkt den größeren Abstand zu der Referenzlage aufweist. The 3D image analyzer (400) of claim 6, wherein the orientation calculator (408) is configured to provide a reference position of the eye corresponding to the centroid of the area of the imaged eye opening in the face plane parallel to the camera sensor plane or the calculated pupil center point directly to the camera sensor center corresponds to determine and the 3D view vector, measure the pattern (806a) in the three-dimensional space to select one of the two possible 3 DB 1 vector vectors, selecting the 3 D view vector whose image has the greater distance from the reference location in the image from the pupil center.
8. 3 D-Bildanal ysator (400) gemäß einem der Ansprüche 1 bis 7, wobei die statistisch ermittelte Beziehung ein Abstand zwischen zwei charakteristischen Gesichtsmerk - malen, ein Größenverhältnis zwischen den zwei charakteristischen Gesichtsmerkmalen und/oder ein Größenverhältnis zwischen einem charakteristischen Gesichtsmerkmal und einem Bildrand umfasst. 8. The 3-D image analyzer (400) according to claim 1, wherein the statistically determined relationship is a distance between two characteristic facial features, a size ratio between the two characteristic facial features, and / or a size ratio between a characteristic facial feature and a Picture border includes.
9. 3D-Bildanalysator (400) gemäß einem der Ansprüche 1 bis 8, wobei die Positionsbe- rechnungseinrichtung (404) ausgebildet ist, um die zwei oder mehrere charakteristischen Merkmale zu detektieren und deren Lagebeziehungen mit statistisch vorab ermittelten und gespeicherten Daten zu vergleichen und daraus den Abstand und/oder die Ausrichtung des Musters zur Kamera zu ermitteln. 9. A 3D image analyzer (400) according to any one of claims 1 to 8, wherein the position calculator (404) is adapted to detect the two or more characteristic features and to compare their positional relationships with statistically pre-determined and stored data and therefrom determine the distance and / or orientation of the pattern to the camera.
10. 3 D-Bildanal ysator (400) gemäß einem der Ansprüche 1 bis 9, der ausgebildet ist, um eine Mehrzahl von ersten und weiteren Sätzen einer Mehrzahl von Samples zu empfangen. 10. The 3-D image analyzer (400) of claim 1, configured to receive a plurality of first and further sets of a plurality of samples.
1 1. 3D-Bildanalysator (400) gemäß Anspruch 10, bei dem die Positionsberechnungsein- richtung (404) ausgebildet ist, um die Position des Musters (806a)für die Mehrzahl der Samples zu berechnen, und wobei die Ausrichtungsberechnungseinrichtung (408) ausgebildet ist, um den SD- Blickvektor des Musters (806a) für die Mehrzahl von Samples zu ermitteln, um so den 3 D-Blick vektor zu verfolgen. 11. The 3D image analyzer (400) of claim 10, wherein the position calculator (404) is configured to calculate the position of the pattern (806a) for the plurality of samples, and wherein the orientation calculator (408) is formed to find the SD view vector of the pattern (806a) for the plurality of samples so as to keep track of the 3D view vector.
12. 3D-Bildanalysator (400) gemäß einem der Ansprüche 1 bis 1 1 , bei dem das Muster12. 3D image analyzer (400) according to one of claims 1 to 1 1, wherein the pattern
(806a) eine Pupille, eine Iris oder eine Ellipse ist. (806a) is a pupil, an iris or an ellipse.
13. 3D-Bildanalysator (400) gemäß einem der Ansprüche 1 bis 12, bei dem der erste und der weitere Satz aus einer Gruppe stammen, die Koordinaten eines Musters (806a), Koordinaten eines Mittelpunkts des Musters (806a), Geometrieparameter des Musters (806a), Koordinaten des Mittelpunkts einer Ellipse, einen ersten Durchmesser der Ellipse - die lange Achse -. einen zweiten Durchmesser der Ellipse - die kurze Achse - und einen Neigungswinkel einer Achse der Ellipse umfasst. The 3D image analyzer (400) of any one of claims 1 to 12, wherein the first and further sets are from a group, the coordinates of a pattern (806a), coordinates of a center of the pattern (806a), geometry parameters of the pattern (400). 806a), coordinates of the center of an ellipse, a first diameter of the ellipse - the long axis -. a second diameter of the ellipse - the short axis - and an inclination angle of an axis of the ellipse.
14. 3D-Bildanalysator (400) gemäß einem der Ansprüche 1 bis 13, wobei der SD- Blickvektor als Vektor definiert ist, der sich durch einen Mittelpunkt des Musters (806a) entlang einer Normalenrichtung ausgehend von einer Oberfläche eines zu dem Muster (806a) gehörenden Objekts erstreckt. The 3D image analyzer (400) of any one of claims 1 to 13, wherein the SD view vector is defined as a vector extending through a center of the pattern (806a) along a normal direction from a surface of the pattern (806a). extending object extends.
15. 3D-Bildanalysator (400) gemäß einem der Ansprüche 1 bis 14. bei dem die Berechnung der Position und des 3D-Blickvektors auf weiteren Informationen basiert, die aus einer Gruppe stammen, die Informationen über optische Parameter der Kameraoptik, eine Position- und Ausrichtung der Kameraoptik, eine Sensorpixelgröße und eine Information über die Auslassung oder Zusammenfassung mehrerer Sensorpixel umfasst. 15. The 3D image analyzer (400) according to one of claims 1 to 14, wherein the calculation of the position and the 3D view vector is based on further information coming from a group containing information about optical parameters of the camera optics, a position and Alignment of the camera optics, a sensor pixel size and information about the omission or summary of multiple sensor pixels includes.
16. 3 D-Bildanal ysator (400) gemäß Anspruch 15, bei dem die Ausrichtungsberech- nungseinrichtung (408) ausgebildet ist, um eine erste virtuelle Projektionsebene für das erste Bild (804a) zu berechnen, so dass eine erste virtuelle optische Achse, die als Senkrechte zu der ersten virtuellen Projektionsebene definiert ist, sich durch den Mittelpunkt des Musters (806a) erstreckt, und um die erste virtuelle Projektionsebene basierend auf dem weiteren Satz von Bildinformationen auszurichten. 16. The 3-D image analyzer (400) of claim 15, wherein the alignment calculator (408) is configured to calculate a first virtual projection plane for the first image (804a) such that a first virtual optical axis is defined as perpendicular to the first virtual projection plane, extends through the center of the pattern (806a), and aligns the first virtual projection plane based on the further set of image information.
17. 3D-Bildanalysator (400) gemäß Anspruch 15 oder 16. bei dem die Ausrichtungsbe- rechnungseinrichtung (408) ausgebildet ist, um eine erste virtuelle Projektionsebene für das erste Bild (804a) zu berechnen, so dass eine erste virtuelle optische Achse, die als Senkrechte zu der ersten virtuellen Projektionsebene definiert ist, sich durch den Mittelpunkt des Musters (806a) erstreckt, und um eine zweite virtuelle Projektionsebene für das weitere Bild (804b) zu berechnen, so dass eine zweite virtuelle optische Achse, die als Senkrechte zu der zweiten virtuellen Projektionsebene definiert ist, sich durch den Mittelpunkt des Musters erstreckt, wobei sich die erste virtuelle optische Achse durch den Mittelpunkt des aufgenommenen Musters (806a) in der ersten virtuellen Projektionsebene erstreckt und sich die zweite virtuelle optische Achse durch den Mittelpunkt des aufgenommenen Musters (806a) in der zweiten virtuellen Projektionsebene erstreckt. 17. A 3D image analyzer (400) according to claim 15 or 16, wherein the orientation calculator (408) is configured to calculate a first virtual projection plane for the first image (804a) such that a first virtual optical axis is defined as perpendicular to the first virtual projection plane, extends through the center of the pattern (806a), and to calculate a second virtual projection plane for the further image (804b), such that a second virtual optical axis perpendicular to the second virtual projection plane is defined, extends through the center of the pattern, wherein the first virtual optical axis extends through the center of the recorded pattern (806a) in the first virtual projection plane and the second virtual optical axis through the center of the recorded pattern ( 806a) extends in the second virtual projection plane.
18. 3D-Bildanalysator (400) gemäß Anspruch 17, wobei die Transformation des ersten (804a) und/oder zweiten Bildes (804b) in die erste und/oder zweite virtuelle Projek- tionsebene auf Basis der bestimmten Position des Musters (806a) und/oder auf Basis von weiteren Informationen erfolgt, die aus einer Gruppe stammen, die Informationen über optische Parameter der Kameralinse, eine Linsenposition, eine Sensorpixelgröße und eine Information über die Auslassung oder Zusammenfassung mehrerer Sensorpixel umfasst. 18. The 3D image analyzer (400) according to claim 17, wherein the transformation of the first (804a) and / or second image (804b) into the first and / or second virtual project. tion level based on the particular position of the pattern (806a) and / or based on further information coming from a group, information about camera lens optical parameters, lens position, sensor pixel size, and omission or summary information of multiple sensor pixels includes.
19. 3 D-B i ld anal y sator (400) gemäß Anspruch 1 7 oder 18, wobei die Ausrichtungsbe- rechnungscinrichtung (408) ausgebildet ist, um das Muster (806a), das durch eine erste Mehrzahl an Knotenpunktstrahlen durch die Optik auf eine erste Projektionsebene für die erste Perspektive und durch eine zweite Mehrzahl an Knotenpunktstrahlen durch die Optik auf eine zweite Projektionsebene für die zweite Perspektive abgebildet ist, in der ersten virtuellen Projektionsebene durch eine erste Mehrzahl an virtuellen Knotenpunktstrahlen abzubilden und in der zweiten virtuellen Projektionsebene durch eine zweite Mehrzahl an Knotenpunktstrahlen abzubilden. 19. The DB i ld anal y sator (400) according to claim 17 or 18, wherein the alignment calculation means (408) is adapted to apply the pattern (806a) passing through the optics to a first one through a first plurality of node beams Projection level for the first perspective and is represented by a second plurality of node beams through the optics on a second projection plane for the second perspective, in the first virtual projection plane by a first plurality of virtual node beam imaging and in the second virtual projection plane through a second plurality Imagine nodal rays.
20. 3 D-Bildanal ysator (400) gemäß Anspruch 19, wobei das Muster eine verzerrte Pupille oder Iris oder eine Ellipse ist, die durch den ersten und zweiten Satz von Bilddaten, die zumindest eine erste und zweite Achse sowie einen Neigungswinkel einer der Achsen der verzerrten Pupille oder Iris oder der Ellipse umfassen, beschreibbar ist. 20. The 3-D image analyzer (400) of claim 19, wherein the pattern is a distorted pupil or iris or ellipse passing through the first and second sets of image data, the at least first and second axes, and a tilt angle of one of the axes the distorted pupil or iris or the ellipse is writable.
21. 3D-Bildanalysator (400) gemäß Anspruch 20, wobei der 3 D-Blickvektor durch einen Satz von Gleichungen beschreibbar ist, wobei jede Gleichung eine geometrische Beziehung der jeweiligen ersten oder jeweiligen weiteren virtuellen Projektionsebene gegenüber dem 3 D-Blickvektor beschreibt. The 3D image analyzer (400) of claim 20, wherein the 3D view vector is describable by a set of equations, each equation describing a geometric relationship of the respective first or respective further virtual projection plane to the 3D view vector.
22. 3 D-B i ldanalysator (400) gemäß Anspruch 21 , wobei für den 3D-Blickvektor bezogen auf die erste virtuelle Projektionsebene durch eine erste Gleichung auf Basis der Bilddaten des ersten Satzes zwei mögliche Lösungen berechenbar sind, und wobei für den 3 D-Blickvektor bezogen auf eine weitere virtuelle Projektionsebene durch eine weitere Gleichung auf Basis der Bilddaten des weiteren Satzes zwei möglichen Lösungen berechenbar sind. 22. The DB i ldanalysator (400) according to claim 21, wherein for the 3D view vector with respect to the first virtual projection plane by a first equation based on the image data of the first set, two possible solutions are computable, and wherein for the 3D view vector With respect to a further virtual projection plane, two possible solutions can be calculated by means of a further equation on the basis of the image data of the further set.
23. 3D-Bildanalysator (400) gemäß Anspruch 22, wobei die Differenz zwischen dem einen Lösungsvektor der ersten Gleichung und dem einen Lösungsvektor der zweiten Gleichung kleiner ist als eine Differenz zwischen anderen Kombinationen aus den Lösungsvektoren der beiden Gleichungen und die beschriebenen Vektoren ausge- wählt werden, wobei der 3D-Blickvektor durch gewichtete Mittelung der beiden ausgewählten Vektoren berechnet wird. The 3D image analyzer (400) of claim 22, wherein the difference between the one solution vector of the first equation and the one solution vector of the second equation is less than a difference between other combinations of the solution vectors of the two equations and the described vectors. where the 3D view vector is calculated by weighted averaging of the two selected vectors.
24. 3D-Bildanalysator (400) gemäß Anspruch 23, bei dem die Ausrichtungsberech- nungseinnchtung (408) ausgebildet ist, um ein eindeutiges Ergebnis für den 3D- Blickvektor mittels eines Gleichungssystems, das die erste und zweite Gleichung umfasst, zu berechnen. 24. The 3D image analyzer (400) of claim 23, wherein the alignment computation means (408) is configured to compute a unique result for the 3D gaze vector using a system of equations comprising the first and second equations.
25. 3D-Bildanalysator (400) gemäß einem der Ansprüche 1 bis 24, bei dem der 3D- Bildanalysator (400) in einer Verarbeitungseinheit implementiert ist. The 3D image analyzer (400) of any of claims 1 to 24, wherein the 3D image analyzer (400) is implemented in a processing unit.
26. 3D-Bildanalysator (400) gemäß Anspruch 25, bei dem die Verarbeitungseinheit einen Selektiv-adaptiven Datenprozessor aufweist, der ausgebildet ist, um mehrere Sätze von Werten zu empfangen, wobei jeder Satz einem jeweiligen Sample zugewiesen ist, mit folgenden Merkmalen: The 3D image analyzer (400) of claim 25, wherein the processing unit comprises a selective adaptive data processor configured to receive a plurality of sets of values, each set assigned to a respective sample, comprising:
einen Prozessor, der ausgebildet ist, um basierend auf den empfangenen Sätzen plausible Sätze auszugeben, und wobei ein unplausibler Satz durch einen plausiblen Satz ersetzt wird oder wobei Werte eines unplausiblen Satzes durch intern ermittelte Werte ersetzt werden. a processor adapted to output plausible sentences based on the received sentences, and wherein an implausible sentence is replaced by a plausible sentence or where values of an implausible sentence are replaced by internally determined values.
27. Bildanalysesystem zum Ermitteln einer Blickrichtung basierend auf einer zuvor de- tektierten oder verfolgten Pupille oder Iris, mit folgenden Merkmalen: mindestens einem Hough-Pfad für zumindest eine Kamera einer monoskopischen Kameraanordnung oder mindestens zwei Hough-Pfade für zumindest für zwei Kameras einer stereoskopischen oder multiskopischen Kameraanordnung, wobei jeder Hough-Pfad einen Hough-Prozessor mit folgenden Merkmalen umfasst: einen Pre-Prozessor (102), der ausgebildet ist, um eine Mehrzahl von Samples (112a, 1 12b, 1 12c) zu empfangen, die jeweils ein Bild umfassen, und um das Bild des jeweiligen Samples (1 12a, 1 12b, 1 12c) zu drehen und/oder zu spiegeln und um eine Mehrzahl von Versionen ( 1 12a', 1 12a", 1 12a'", 1 12a" ") des Bildes des jeweiligen Samples (1 12a, 1 12b, 1 12c) für jedes Sample (1 12a, 1 12b, 1 12c) auszugeben; und eine I lough-T'ransformationscinrichtung (104), die ausgebildet ist, um ein vorbestimmtes gesuchtes Muster (806a) in der Mehrzahl von Samples (1 12a, 1 12b, 1 12c) auf der Basis der Mehrzahl von Versionen (1 12a', 1 12a", 1 12a'", 1 12a"") zu erfassen, wobei eine mit dem gesuchten Muster (806a) in Abhängigkeit stehende Charakteristik der Hough-Transformationseinrichtung (104) anpassbar ist. eine Einrichtung zum Analysieren des erfassten Musters (806a) und zum Ausgeben eines Satzes von Bilddaten, der eine Position und/oder eine Geometrie des Musters (806a) beschreibt; und einen 3D-Bildanalysator (400) gemäß einem der Ansprüche 1 bis 27 umfasst. 27. Image analysis system for determining a viewing direction based on a previously detected or tracked pupil or iris, comprising: at least one Hough path for at least one camera of a monoscopic camera arrangement or at least two Hough paths for at least two cameras of a stereoscopic or multicopical camera arrangement, each Hough path comprising a Hough processor comprising: a pre-processor (102) adapted to receive a plurality of samples (112a, 12b, 12c) each comprising an image and to rotate and / or mirror the image of the respective sample (1 12a, 1 12b, 1 12c) and a plurality of versions (1 12a ', 1 12a ", 1 12a'", 1 12a "" ) of the image of the respective sample (1 12a, 1 12b, 1 12c) for each sample (1 12a, 1 12b, 1 12c); and an I Lough T 'ransformationscinrichtung (104) is formed to a predetermined matching patterns (806a) in the plurality of samples (1 12a, 1 12b, 1 12c) based on the plurality of versions (1 12a ', 1 12a ", 1 12a'", 1 12a ""), wherein a characteristic of the searched pattern (806a) characteristic of the Hough transform means (104) adaptable is. means for analyzing the captured pattern (806a) and outputting a set of image data describing a position and / or geometry of the pattern (806a); and a 3D image analyzer (400) according to any one of claims 1 to 27.
Verfahren zur Bestimmung einer Blickrichtung, mit folgenden Schritten: Method for determining a viewing direction, comprising the following steps:
Empfangen zumindest eines ersten Satzes von Bilddaten, der auf Basis eines ersten Bildes (804a) bestimmt wird, und eines weiteren Satzes von Bilddaten, der auf Basis des ersten Bildes (804a) oder eines weiteren Bildes (804b) bestimmt wird, wobei das erste Bild (804a) ein Muster (806a) eines dreidimensionalen Objekts aus einer ersten Perspektive in eine erste Bildebene abbildet und wobei der weitere Satz ein weiteres Bild (804b) oder eine Information umfasst, welche eine Beziehung zwischen mindestens einem Punkt des dreidimensionalen Objekts und der ersten Bildebene beschreiben; Receiving at least a first set of image data determined based on a first image (804a) and another set of image data determined based on the first image (804a) or another image (804b), the first image (804a) images a pattern (806a) of a three-dimensional object from a first perspective into a first image plane, and wherein the further set comprises another image (804b) or information representing a relationship between at least one point of the three-dimensional object and the first image plane describe;
Berechnen einer Position des Musters (806a) in einem dreidimensionalen Raum basierend auf dem ersten Satz, dem weiteren Satz, und einer geometrischen Beziehung zwischen den Perspektiven des ersten und des weiteren Bildes (804b) oder Berechnen der Position des Musters (806a) in dem dreidimensionalen Raum basierend auf dem ersten Satz und einer statistisch emiittelten Beziehung zwischen mindestens zwei charakteristischen Merkmalen in dem ersten Bild (804a) oder Berechnen der Position des Musters (806a) in dem dreidimensionalen Raum basierend auf dem ersten Satz und einer Lagebeziehung zwischen mindestens einem Punkt des dreidimensionalen Objektes und der ersten Bildebene; und Calculating a position of the pattern (806a) in a three-dimensional space based on the first sentence, the further sentence, and a geometric relationship between the perspectives of the first and the further image (804b) or calculating the position of the pattern (806a) in the three-dimensional one Space based on the first set and a statistically determined relationship between at least two characteristic features in the first image (804a) or calculating the position of the pattern (806a) in the three-dimensional space based on the first set and a positional relationship between at least one point of the three-dimensional one Object and the first image plane; and
Berechnen eines D-Blickvektors, gemäß dem das Muster (806a) in dem dreidimensionalen Raum ausgerichtet ist, basierend auf dem ersten Satz und dem weiteren Satz. Calculating a D-look vector according to which the pattern (806a) is aligned in the three-dimensional space based on the first set and the further set.
Computerlesbares digitales Speichermedium auf dem ein Computerprogramm gespeichert ist mit einem Programmcode zum Durchführen des Verfahrens gemäß An- sprach 28, wenn dasselbe auf einem Computer, einem eingebetteten Prozessor, nem programmierbaren Logikbauelement oder kundenspezifischen Chip läuft. Computer-readable digital storage medium on which a computer program is stored with a program code for carrying out the method according to Spoke 28 when running on a computer, embedded processor, programmable logic device, or custom chip.
EP15701823.5A 2014-02-04 2015-01-30 3-d image analyzer for determining viewing direction Pending EP3103059A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102014201997 2014-02-04
PCT/EP2015/052004 WO2015117905A1 (en) 2014-02-04 2015-01-30 3-d image analyzer for determining viewing direction

Publications (1)

Publication Number Publication Date
EP3103059A1 true EP3103059A1 (en) 2016-12-14

Family

ID=52434840

Family Applications (3)

Application Number Title Priority Date Filing Date
EP15701823.5A Pending EP3103059A1 (en) 2014-02-04 2015-01-30 3-d image analyzer for determining viewing direction
EP15702739.2A Pending EP3103060A1 (en) 2014-02-04 2015-01-30 2d image analyzer
EP15701822.7A Ceased EP3103058A1 (en) 2014-02-04 2015-01-30 Hough processor

Family Applications After (2)

Application Number Title Priority Date Filing Date
EP15702739.2A Pending EP3103060A1 (en) 2014-02-04 2015-01-30 2d image analyzer
EP15701822.7A Ceased EP3103058A1 (en) 2014-02-04 2015-01-30 Hough processor

Country Status (6)

Country Link
US (3) US10192135B2 (en)
EP (3) EP3103059A1 (en)
JP (3) JP6248208B2 (en)
KR (2) KR101858491B1 (en)
CN (3) CN106133750B (en)
WO (4) WO2015117904A1 (en)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013173728A1 (en) 2012-05-17 2013-11-21 The University Of North Carolina At Chapel Hill Methods, systems, and computer readable media for unified scene acquisition and pose tracking in a wearable display
CN104715227B (en) * 2013-12-13 2020-04-03 北京三星通信技术研究有限公司 Method and device for positioning key points of human face
WO2015117904A1 (en) 2014-02-04 2015-08-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Hough processor
US10017114B2 (en) 2014-02-19 2018-07-10 Magna Electronics Inc. Vehicle vision system with display
WO2015198477A1 (en) * 2014-06-27 2015-12-30 株式会社Fove Sight line detection device
US10318067B2 (en) * 2014-07-11 2019-06-11 Hewlett-Packard Development Company, L.P. Corner generation in a projector display area
WO2016073557A1 (en) 2014-11-04 2016-05-12 The University Of North Carolina At Chapel Hill Minimal-latency tracking and display for matching real and virtual worlds
KR20160094190A (en) * 2015-01-30 2016-08-09 한국전자통신연구원 Apparatus and method for tracking an eye-gaze
JP6444233B2 (en) * 2015-03-24 2018-12-26 キヤノン株式会社 Distance measuring device, distance measuring method, and program
US20160363995A1 (en) * 2015-06-12 2016-12-15 Seeing Machines Limited Circular light element for illumination of cornea in head mounted eye-tracking
CN105511093B (en) * 2015-06-18 2018-02-09 广州优视网络科技有限公司 3D imaging methods and device
US9798950B2 (en) * 2015-07-09 2017-10-24 Olympus Corporation Feature amount generation device, feature amount generation method, and non-transitory medium saving program
US9786715B2 (en) 2015-07-23 2017-10-10 Artilux Corporation High efficiency wide spectrum sensor
US10761599B2 (en) 2015-08-04 2020-09-01 Artilux, Inc. Eye gesture tracking
EP3370259B1 (en) 2015-08-04 2020-03-11 Artilux Inc. Germanium-silicon light sensing apparatus
US10861888B2 (en) 2015-08-04 2020-12-08 Artilux, Inc. Silicon germanium imager with photodiode in trench
US10707260B2 (en) 2015-08-04 2020-07-07 Artilux, Inc. Circuit for operating a multi-gate VIS/IR photodiode
WO2017027546A1 (en) * 2015-08-10 2017-02-16 The Rocket Science Group Llc Optimizing evaluation of effectiveness for multiple versions of electronic messages
EP3341970B1 (en) 2015-08-27 2020-10-07 Artilux Inc. Wide spectrum optical sensor
JP6634765B2 (en) * 2015-09-30 2020-01-22 株式会社ニデック Ophthalmic apparatus and ophthalmic apparatus control program
CN108139758A (en) * 2015-10-09 2018-06-08 深圳市大疆创新科技有限公司 Apparatus of transport positioning based on significant characteristics
US10741598B2 (en) 2015-11-06 2020-08-11 Atrilux, Inc. High-speed light sensing apparatus II
US10886309B2 (en) 2015-11-06 2021-01-05 Artilux, Inc. High-speed light sensing apparatus II
US10418407B2 (en) 2015-11-06 2019-09-17 Artilux, Inc. High-speed light sensing apparatus III
US10739443B2 (en) 2015-11-06 2020-08-11 Artilux, Inc. High-speed light sensing apparatus II
US10254389B2 (en) 2015-11-06 2019-04-09 Artilux Corporation High-speed light sensing apparatus
CN106200905B (en) * 2016-06-27 2019-03-29 联想(北京)有限公司 Information processing method and electronic equipment
US10133942B2 (en) 2016-07-05 2018-11-20 Nauto Global Limited System and method for automatic driver identification
JP6799063B2 (en) * 2016-07-20 2020-12-09 富士フイルム株式会社 Attention position recognition device, image pickup device, display device, attention position recognition method and program
CN105954992B (en) * 2016-07-22 2018-10-30 京东方科技集团股份有限公司 Display system and display methods
GB2552511A (en) * 2016-07-26 2018-01-31 Canon Kk Dynamic parametrization of video content analytics systems
US10417495B1 (en) * 2016-08-08 2019-09-17 Google Llc Systems and methods for determining biometric information
US10733460B2 (en) 2016-09-14 2020-08-04 Nauto, Inc. Systems and methods for safe route determination
JP6587254B2 (en) * 2016-09-16 2019-10-09 株式会社東海理化電機製作所 Luminance control device, luminance control system, and luminance control method
EP3305176A1 (en) 2016-10-04 2018-04-11 Essilor International Method for determining a geometrical parameter of an eye of a subject
EP3535646A4 (en) * 2016-11-07 2020-08-12 Nauto, Inc. System and method for driver distraction determination
DE102016224886B3 (en) * 2016-12-13 2018-05-30 Deutsches Zentrum für Luft- und Raumfahrt e.V. Method and device for determining the cut edges of two overlapping image recordings of a surface
EP3563192A1 (en) * 2016-12-30 2019-11-06 Tobii AB Eye/gaze tracking system and method
US10282592B2 (en) * 2017-01-12 2019-05-07 Icatch Technology Inc. Face detecting method and face detecting system
DE102017103721A1 (en) * 2017-02-23 2018-08-23 Karl Storz Se & Co. Kg Device for detecting a stereo image
KR101880751B1 (en) * 2017-03-21 2018-07-20 주식회사 모픽 Method for reducing error by allignment of lenticular lens and user terminal for displaying glass free stereoscopic image and the user terminal of perporming the method
WO2018229548A2 (en) 2017-06-16 2018-12-20 Nauto Global Limited System and method for contextualized vehicle operation determination
WO2018229550A1 (en) 2017-06-16 2018-12-20 Nauto Global Limited System and method for adverse vehicle event determination
EP3420887A1 (en) * 2017-06-30 2019-01-02 Essilor International Method for determining the position of the eye rotation center of the eye of a subject, and associated device
EP3430973A1 (en) * 2017-07-19 2019-01-23 Sony Corporation Mobile system and method
JP2019017800A (en) * 2017-07-19 2019-02-07 富士通株式会社 Computer program, information processing device, and information processing method
KR101963392B1 (en) * 2017-08-16 2019-03-28 한국과학기술연구원 Method for Generating Dynamic Maximal Viewing Zone of 3D Autostereoscopic Display
US10460458B1 (en) * 2017-09-14 2019-10-29 United States Of America As Represented By The Secretary Of The Air Force Method for registration of partially-overlapped aerial imagery using a reduced search space methodology with hybrid similarity measures
CN107818305B (en) * 2017-10-31 2020-09-22 Oppo广东移动通信有限公司 Image processing method, image processing device, electronic equipment and computer readable storage medium
EP3486834A1 (en) * 2017-11-16 2019-05-22 Smart Eye AB Detection of a pose of an eye
CN108024056B (en) * 2017-11-30 2019-10-29 Oppo广东移动通信有限公司 Imaging method and device based on dual camera
KR20190074471A (en) * 2017-12-20 2019-06-28 현대자동차주식회사 Method and apparatus for controlling 3d steroscopic image in vehicle
CN108875526B (en) * 2018-01-05 2020-12-25 北京旷视科技有限公司 Method, device and system for line-of-sight detection and computer storage medium
US10706300B2 (en) * 2018-01-23 2020-07-07 Toyota Research Institute, Inc. Vehicle systems and methods for determining a target based on a virtual eye position and a pointing direction
US10817068B2 (en) * 2018-01-23 2020-10-27 Toyota Research Institute, Inc. Vehicle systems and methods for determining target based on selecting a virtual eye position or a pointing direction
US10853674B2 (en) 2018-01-23 2020-12-01 Toyota Research Institute, Inc. Vehicle systems and methods for determining a gaze target based on a virtual eye position
WO2019165220A1 (en) 2018-02-23 2019-08-29 Artilux, Inc. Photo-detecting apparatus and photo-detecting method thereof
WO2019185150A1 (en) * 2018-03-29 2019-10-03 Tobii Ab Determining a gaze direction using depth information
CN112236686A (en) 2018-04-08 2021-01-15 奥特逻科公司 Optical detection device
CN108667686A (en) * 2018-04-11 2018-10-16 国电南瑞科技股份有限公司 A kind of credibility evaluation method of network message latency measurement
TW202001296A (en) 2018-05-07 2020-01-01 美商光程研創股份有限公司 Avalanche photo-transistor
US10969877B2 (en) 2018-05-08 2021-04-06 Artilux, Inc. Display apparatus
US10410372B1 (en) * 2018-06-14 2019-09-10 The University Of North Carolina At Chapel Hill Methods, systems, and computer-readable media for utilizing radial distortion to estimate a pose configuration
US10803618B2 (en) * 2018-06-28 2020-10-13 Intel Corporation Multiple subject attention tracking
CN109213031A (en) * 2018-08-13 2019-01-15 祝爱莲 Forms strengthening control platform
JP2020052765A (en) * 2018-09-27 2020-04-02 富士フイルム株式会社 Image processing apparatus, image processing method, program, and recording medium
CN110966923B (en) * 2018-09-29 2021-08-31 深圳市掌网科技股份有限公司 Indoor three-dimensional scanning and danger elimination system
US11100357B2 (en) * 2018-10-16 2021-08-24 International Business Machines Corporation Real-time micro air-quality indexing
CN109492120B (en) * 2018-10-31 2020-07-03 四川大学 Model training method, retrieval method, device, electronic equipment and storage medium
CN111479104A (en) * 2018-12-21 2020-07-31 托比股份公司 Method for calculating line-of-sight convergence distance
US11113842B2 (en) * 2018-12-24 2021-09-07 Samsung Electronics Co., Ltd. Method and apparatus with gaze estimation
CN109784226B (en) * 2018-12-28 2020-12-15 深圳云天励飞技术有限公司 Face snapshot method and related device
US10825137B2 (en) * 2019-01-15 2020-11-03 Datalogic IP Tech, S.r.l. Systems and methods for pre-localization of regions of interest for optical character recognition, and devices therefor
KR20200102080A (en) * 2019-02-21 2020-08-31 삼성전자주식회사 Electronic device for providing visualized artificial intelligence service based on information of external object and method for the same
US11068052B2 (en) * 2019-03-15 2021-07-20 Microsoft Technology Licensing, Llc Holographic image generated based on eye position
CN110718067A (en) * 2019-09-23 2020-01-21 浙江大华技术股份有限公司 Violation behavior warning method and related device
US11080892B2 (en) * 2019-10-07 2021-08-03 The Boeing Company Computer-implemented methods and system for localizing an object
US10909167B1 (en) * 2020-09-17 2021-02-02 Pure Memories Ltd Systems and methods for organizing an image gallery
CN112633313A (en) * 2020-10-13 2021-04-09 北京匠数科技有限公司 Bad information identification method of network terminal and local area network terminal equipment
CN112650461B (en) * 2020-12-15 2021-07-13 广州舒勇五金制品有限公司 Relative position-based display system

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3069654A (en) 1960-03-25 1962-12-18 Paul V C Hough Method and means for recognizing complex patterns
JP3163215B2 (en) 1994-03-07 2001-05-08 日本電信電話株式会社 Line extraction Hough transform image processing device
JP4675492B2 (en) * 2001-03-22 2011-04-20 本田技研工業株式会社 Personal authentication device using facial images
JP4128001B2 (en) * 2001-11-19 2008-07-30 グローリー株式会社 Distortion image association method, apparatus, and program
JP4275345B2 (en) 2002-01-30 2009-06-10 株式会社日立製作所 Pattern inspection method and pattern inspection apparatus
CN2586213Y (en) * 2002-12-24 2003-11-12 合肥工业大学 Optical device for real time realizing Hough conversion
US7164807B2 (en) 2003-04-24 2007-01-16 Eastman Kodak Company Method and system for automatically reducing aliasing artifacts
JP4324417B2 (en) * 2003-07-18 2009-09-02 富士重工業株式会社 Image processing apparatus and image processing method
JP4604190B2 (en) 2004-02-17 2010-12-22 国立大学法人静岡大学 Gaze detection device using distance image sensor
DE102004046617A1 (en) 2004-09-22 2006-04-06 Eldith Gmbh Device and method for the contactless determination of the viewing direction
JP4682372B2 (en) * 2005-03-31 2011-05-11 株式会社国際電気通信基礎技術研究所 Gaze direction detection device, gaze direction detection method, and program for causing computer to execute gaze direction detection method
US7406212B2 (en) 2005-06-02 2008-07-29 Motorola, Inc. Method and system for parallel processing of Hough transform computations
EP1924941A2 (en) * 2005-09-16 2008-05-28 Imotions-Emotion Technology APS System and method for determining human emotion by analyzing eye properties
DE102005047160B4 (en) 2005-09-30 2007-06-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus, methods and computer program for determining information about a shape and / or a position of an ellipse in a graphic image
KR100820639B1 (en) * 2006-07-25 2008-04-10 한국과학기술연구원 System and method for 3-dimensional interaction based on gaze and system and method for tracking 3-dimensional gaze
US8180159B2 (en) * 2007-06-06 2012-05-15 Sharp Kabushiki Kaisha Image processing apparatus, image forming apparatus, image processing system, and image processing method
JP5558081B2 (en) * 2009-11-24 2014-07-23 株式会社エヌテック Image formation state inspection method, image formation state inspection device, and image formation state inspection program
US8995715B2 (en) * 2010-10-26 2015-03-31 Fotonation Limited Face or other object detection including template matching
US8670019B2 (en) * 2011-04-28 2014-03-11 Cisco Technology, Inc. System and method for providing enhanced eye gaze in a video conferencing environment
JP2013024910A (en) * 2011-07-15 2013-02-04 Canon Inc Optical equipment for observation
US9323325B2 (en) * 2011-08-30 2016-04-26 Microsoft Technology Licensing, Llc Enhancing an object of interest in a see-through, mixed reality display device
US8737728B2 (en) 2011-09-30 2014-05-27 Ebay Inc. Complementary item recommendations using image feature data
CN103297767B (en) * 2012-02-28 2016-03-16 三星电子(中国)研发中心 A kind of jpeg image coding/decoding method and decoder being applicable to multinuclear embedded platform
US9308439B2 (en) * 2012-04-10 2016-04-12 Bally Gaming, Inc. Controlling three-dimensional presentation of wagering game content
CN102662476B (en) * 2012-04-20 2015-01-21 天津大学 Gaze estimation method
US11093702B2 (en) * 2012-06-22 2021-08-17 Microsoft Technology Licensing, Llc Checking and/or completion for data grids
EP2709060B1 (en) * 2012-09-17 2020-02-26 Apple Inc. Method and an apparatus for determining a gaze point on a three-dimensional object
CN103019507B (en) * 2012-11-16 2015-03-25 福州瑞芯微电子有限公司 Method for changing view point angles and displaying three-dimensional figures based on human face tracking
CN103136525B (en) * 2013-02-28 2016-01-20 中国科学院光电技术研究所 A kind of special-shaped Extended target high-precision locating method utilizing Generalized Hough Transform
JP6269662B2 (en) 2013-05-08 2018-01-31 コニカミノルタ株式会社 Method for manufacturing organic electroluminescence device having light emission pattern
KR20150006993A (en) * 2013-07-10 2015-01-20 삼성전자주식회사 image display apparatus and method thereof
US9619884B2 (en) 2013-10-03 2017-04-11 Amlogic Co., Limited 2D to 3D image conversion device and method
WO2015117904A1 (en) 2014-02-04 2015-08-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Hough processor
CN106456148B (en) * 2014-03-19 2020-06-12 直观外科手术操作公司 Medical devices, systems, and methods using eye gaze tracking
US9607428B2 (en) 2015-06-30 2017-03-28 Ariadne's Thread (Usa), Inc. Variable resolution virtual reality display system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
None *
See also references of WO2015117905A1 *

Also Published As

Publication number Publication date
JP6483715B2 (en) 2019-03-13
US20160342856A1 (en) 2016-11-24
EP3103060A1 (en) 2016-12-14
WO2015117905A1 (en) 2015-08-13
JP6248208B2 (en) 2017-12-13
WO2015117904A1 (en) 2015-08-13
US20160335475A1 (en) 2016-11-17
WO2015117906A1 (en) 2015-08-13
CN106133750A (en) 2016-11-16
WO2015117907A2 (en) 2015-08-13
US10074031B2 (en) 2018-09-11
JP6268303B2 (en) 2018-01-24
KR20160119146A (en) 2016-10-12
WO2015117907A3 (en) 2015-10-01
KR20160119176A (en) 2016-10-12
US10592768B2 (en) 2020-03-17
EP3103058A1 (en) 2016-12-14
US10192135B2 (en) 2019-01-29
CN106104573A (en) 2016-11-09
JP2017508207A (en) 2017-03-23
US20170032214A1 (en) 2017-02-02
KR101858491B1 (en) 2018-05-16
JP2017514193A (en) 2017-06-01
CN106258010B (en) 2019-11-22
KR101991496B1 (en) 2019-06-20
JP2017509967A (en) 2017-04-06
CN106133750B (en) 2020-08-28
CN106258010A (en) 2016-12-28

Similar Documents

Publication Publication Date Title
WO2015117905A1 (en) 3-d image analyzer for determining viewing direction
DE19953835C1 (en) Computer-aided method for contactless, video-based determination of the direction of view of a user eye for eye-guided human-computer interaction and device for carrying out the method
EP2101867B1 (en) Visual aid with three-dimensional image acquisition
DE102007056528B3 (en) Method and device for finding and tracking pairs of eyes
DE102015010097A1 (en) Settings of a digital camera for depth map refinement
EP3671324A1 (en) Method, device and computer program for virtual adapting of a spectacle frame
DE102004049676A1 (en) Method for computer-aided motion estimation in a plurality of temporally successive digital images, arrangement for computer-aided motion estimation, computer program element and computer-readable storage medium
DE102010001520A1 (en) Iris detection system and method supported by an aircraft sensor
DE112009000094T5 (en) Refinement of three-dimensional models
DE102016106121A1 (en) Method and device for determining parameters for spectacle fitting
DE102008016215A1 (en) Information device operating unit
EP3542211B1 (en) Method and device and computer program for determining a representation of a spectacle glass rim
CN110363116B (en) Irregular human face correction method, system and medium based on GLD-GAN
WO2018224655A1 (en) Methods, devices and computer program for determining a near-vision point
DE60216766T2 (en) METHOD FOR AUTOMATIC TRACKING OF A BODY WHICH MOVES
WO2017025483A1 (en) Method and apparatus for data capture and evaluation of ambient data
CN105488780A (en) Monocular vision ranging tracking device used for industrial production line, and tracking method thereof
DE102014100352A1 (en) Method for detecting condition of viewing direction of rider of vehicle, involves estimating driver&#39;s line of sight on basis of detected location for each of eye characteristic of eyeball of rider and estimated position of head
DE112016006066T5 (en) ANALYSIS OF ENVIRONMENTAL LIGHT FOR PICTURE TRACKING
DE10145608B4 (en) Model-based object classification and target recognition
DE102019104310A1 (en) System and method for simultaneously viewing edges and normal image features through a vision system
DE102018100909A1 (en) Method of reconstructing images of a scene taken by a multifocal camera system
DE102010054168B4 (en) Method, device and program for determining the torsional component of the eye position
DE102019102423A1 (en) Method for live annotation of sensor data
DE102020214863A1 (en) SELF-MONITORED PROCEDURE AND SYSTEM FOR DEPTH ESTIMATION

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20160720

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20180620

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS