EP3103058A1 - Hough-prozessor - Google Patents

Hough-prozessor

Info

Publication number
EP3103058A1
EP3103058A1 EP15701822.7A EP15701822A EP3103058A1 EP 3103058 A1 EP3103058 A1 EP 3103058A1 EP 15701822 A EP15701822 A EP 15701822A EP 3103058 A1 EP3103058 A1 EP 3103058A1
Authority
EP
European Patent Office
Prior art keywords
hough
image
processor
pattern
characteristic
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.)
Ceased
Application number
EP15701822.7A
Other languages
English (en)
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
Application filed by Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Publication of EP3103058A1 publication Critical patent/EP3103058A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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 OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/48Extraction of image or video features by mapping characteristic values of the pattern into a parameter space, e.g. Hough transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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 OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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 OR 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 OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • G06V40/19Sensors therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • G06V40/193Preprocessing; Feature extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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 OR 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 OR 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 OR 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

Definitions

  • Embodiments of the present invention relate to a Hough processor. Further embodiments relate to an image analysis system for tracking a pupil with a Hough processor, a method for Hough processing, and a computer program for performing the method.
  • Hough processors are used to perform a Hough transform, by means of which geometric patterns, such as lines or circles or even segments of such geometric patterns, can be detected.
  • the recognition is typically based on gradient images or black-and-white images or binary edge images.
  • Hough transformation a two-dimensional output image is converted into a multi-dimensional accumulator space, which is also referred to as Hough space.
  • the sought structure is expressed in a parameter representation or the Hough space is spanned by the parameters.
  • a Hough space has a variety of dimensions depending on the complexity of the structure to be detected.
  • a 1-hole space for recognizing straight lines typically encompasses two dimensions (angle between the x-axis and the normal to the straight line and the distance from the origin, see Hessian normal form); in a Hough circle recognition room there are typically three dimensions (twice the circle center coordinates, once circular radius), while a one lough ellipse detection room typically has five dimensions (twice the position center ellipse center, twice the ellipse diameter, once the tilt angle). includes.
  • the Hough transformation is characterized in that an image to be processed is converted into an n-dimensional Hough space.
  • the sought geometric features could also be referred to as Hough features. These are recognizable on the basis of the frequency distributions in I lough space (which can also be referred to as accumulator space).
  • the Hough transformation is the basis for the efficient and reliable detection of geometric structures by means of a Hough transformation algorithm. NEN.
  • NEN a Hough transformation algorithm
  • the detection of an ellipse or elliptical shape, such as in a pupil or iris, or other striking structures in the eye (eg eyelids) in a face recording is an important application, it being noted, however, that the execution of Hough- Transformation algorithms is very computationally expensive. This means that real-time capability of Lough I-I 'ransformations algorithms is restricted.
  • Hough Transtbrmations algorithm typically requires special Hough processors or generally very powerful processors, so that the implementation of a Hough-Erkknnungs algorithm using simple and / or inexpensive processors, but also FPGAs (Field Programmable Gate Arrays, integrated circuit with programmable logic switching elements) is difficult or impossible.
  • the object of the present invention is to provide a flexibly implementable concept that enables an efficient, robust real-time Hough transformation.
  • Embodiments of the present invention provide a Hough processor having a pre-processor and a Hough transformer.
  • the pre-processor is configured to receive a plurality of samples each comprising an image and to rotate and / or mirror the image of the respective sample and to output a plurality of versions of the image of the respective sample for each sample.
  • the Hough transform means is adapted to detect a predetermined searched pattern in the plurality of samples on the basis of the plurality of versions. sen.
  • the Hough transforming device has a characteristic dependent on the searched pattern, which is adaptable to the searched pattern.
  • the invention is based on the finding that an improved calculation of Hough features by a Hough processor with a Hough transformer is made possible, which has a characteristic that can be matched to the desired pattern, such as a filter characteristic of a delay filter or a characteristic of a PC -based (fast) 2D correlation.
  • a characteristic that can be matched to the desired pattern, such as a filter characteristic of a delay filter or a characteristic of a PC -based (fast) 2D correlation.
  • each combination of delay elements of the delay filter can be assigned a specific search pattern or feature.
  • each configuration of a delay filter detects multiple occurrences of a particular search pattern or set of curves, each column sum representing a particular pattern, that is, a specific expression of the set of curves.
  • the characteristic is dynamic, ie it can be adapted during the current Hough transformation in order to vary the search pattern or the families of curves.
  • the pre-processor performs pre-processing to search for patterns, which may include, for example, flipping and / or rotating the image in which the pattern is to be recognized.
  • These different versions output by the preprocessor are output to the Hough transform device, which are then applied to one or more searched patterns, eg, a rising line in the first version and a falling line in the second version, each using the same search pattern - can, seeks.
  • the filter core which is also referred to as Hough core or Hough core
  • a plurality of columns eg Straight / straight line section, an ellipse section, an entire ellipse, a circle and / or a straight line or a segment of an ellipse, a circle or a straight line.
  • a predetermined pattern can be recognized, for example, if the sum over the individual delay elements within a column is at a maximum or exceeds a predetermined threshold value.
  • the setting of the filter characteristic In order to carry out this switching while the houghger is in operation, a multiplexer, for example, can be used.
  • the pre-processor may be configured to rotate the image by 360 ° / n and to output n versions of the image in parallel on several Hough cores or in series to one or rotate the image by 360 ° / n and then mirror those versions, and then output the rotated and mirrored versions.
  • Hough processing which is the same for detecting different patterns, precedes performance. This enables real-time capability while at the same time minimizing the consumption of resources, even when implemented on conventional processors, or in particular on FPGAs.
  • such a Hough processor implemented by means of FPGA architecture is designed to carry out the above-described processing for a plurality of samples in succession.
  • the Hough transform means is adapted to output the detection result in the form of a multi-dimensional Hough space containing information about the detected patterns, e.g. the position (in x, y coordinates, see image coordinates of the transformed image), a size (or a diameter) of the detected feature or a possible tilt of the feature comprises. Furthermore, a measure of the agreement with the structure sought can also be output.
  • a so-called non-maxima supprcssion is used, the local maxima in multi-dimensional Hough space using predefined or dynamically adjusted threshold values extracted.
  • a Hough feature is extracted by the extractor if it is a local maximum and exceeds the thresholds.
  • the Hough processor can be connected to a downstream processing device which has, for example, means for controlling the adjustable delay time or the delay elements of the Hough transformation device.
  • the Hough processor may be part of an image analysis system, wherein the above-mentioned processing unit is formed. analyze the detected pattern and output as analysis result a geometry parameter set which describes the geometry of the one or more predefined patterns.
  • the processing means may comprise a selective adaptive data processor configured to smooth a parameter calculated from the Hough space (e.g., the position of the ellipse) over a plurality of samples.
  • a parameter calculated from the Hough space e.g., the position of the ellipse
  • an implausible value is replaced by another based, for example, on the previous one.
  • Another embodiment relates to another image analysis system having two Hough paths with two Hough processors, so that two image files from two cameras of a stereoscopic camera arrangement can be processed simultaneously.
  • the image analysis system can then also comprise a 3 D image analyzer, which is designed to calculate a position and an orientation (viewing angle) of an object.
  • Further embodiments relate to a method for Hough processing comprising the steps of preprocessing a plurality of samples and detecting a predetermined pattern using a Hough transform means, the Hough transform means comprising a filter with adjustable filter characteristic.
  • FIG. 1 shows a schematic block diagram of a Hough processor with a Prc processor and a Hough transformation device according to an embodiment
  • FIG. 2a is a schematic block diagram of a pre-processor according to an embodiment
  • FIG. 2b is a schematic representation of Hough-Kemen for the detection of straight lines (sections);
  • Fig. 3a is a schematic block diagram of a possible implementation of a
  • FIG. 3b shows a single cell of a delay matrix according to an embodiment of the invention
  • 4a-d is a schematic block diagram of a further implementation of a Hough transformation device according to an exemplary embodiment
  • 5a 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 image of an eye for illustrating a viewing angle detection which can be carried out with the device from FIG. 5a and for explaining the viewing angle detection in the monoscopic case;
  • FIG. 6-7 further illustrations for explaining additional embodiments or aspects
  • FIG. 1 shows a Hough processor 100 with a pre-processor 102 and a Hough transfonration device 104.
  • the pre-processor 102 represents the first signal processing stage and is informally coupled to the Hough transformation device 104.
  • the Hough transform means 104 comprises 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 as a matrix, ie in Columns 108 and 110 and lines a to c arranged and signal technology coupled together.
  • 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 l
  • a separate control logic or a control gate may be provided for this purpose, and 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 / or IIIa
  • the Hough transform means 104 may comprise an additional configuration register (not shown) for initial configuration of the individual delay elements 108a-108c and 110a-110c.
  • the purpose of the pre-processor 102 is to prepare the individual samples 112a, 112b and 1 12c in such a way that they can be processed efficiently by the Hough transformation device 104.
  • the pre-processor 102 receives the image file (s) 12a, 112b and 112c and performs pre-processing, e.g. in the form of a rotation and / or in the form of a mirror to output the multiple versions (see Figures 1 12a and 12a ') to the Hough transformer 104.
  • the output may be serial if the Hough transformer 104 has a Hough core 106, or parallel if multiple Hough cores are provided.
  • the preprocessing in the preprocessor 1 2 which serves the purpose of detecting a plurality of similar patterns (rising and falling straight line) with a search pattern or a 1 lough core configuration, will be explained below with reference to the first sample 12a.
  • 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.
  • the rotation can take place either by 90 °, but also by 180 ° or 270 ° or in general by 360 ° / n, it being noted that depending on the downstream Hough transformation (see Hough transformation unit 104), it can be very efficient to perform only a 90 ° turn.
  • the image 1 12a can also be mirrored to obtain the mirrored version 1 12a "The process of mirroring is designated by the reference numeral 16 1.
  • the mirror 16 corresponds to reading back the memory from the rear, both starting from the mirrored version 1 12a "as well as of the rotated version 1 12a ', a fourth version can be obtained by a rotated and mirrored version 1 12a"'. be performed by either the process 1 14 or 1 16 is performed.
  • two similar patterns eg semicircle open to the right and semicircle open to the left
  • the Hough transform means 104 is adapted to provide in the provided by the preprocessor 102 Version 1 12a or 112a '(or 1 12a "or 1 12a'") a predetermined sought pattern, such as an ellipse or a segment of an ellipse, a circle or segment of a circle, or to detect a straight line or a segment of a straight line.
  • a predetermined sought pattern such as an ellipse or a segment of an ellipse, a circle or segment of a circle, or to detect a straight line or a segment of a straight line.
  • the filter arrangement is configured according to the sought-after predetermined pattern.
  • some of the delay elements 108a to 108c and 110a to 110c are activated or bypassed.
  • each processing step it is possible to deduce the presence of a searched image structure or a segment of the searched image structure or at least the corresponding degree of agreement with the sought structure the image strip by a pixel or to a column 108 or 1 10 is pushed further, so be
  • 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.
  • variable delay elements 108a to 108c or 1100a to 110c delay elements
  • the desired characteristic that is, for example, the radius or the rise
  • the delay time of one of the delay elements 108a to 108c or 110a to 110c changes the overall filter characteristic of the filter 106.
  • the flexible adaptation of the filter characteristic of the filter 106 of the Hough Transformer 104 it is possible to adapt the transformation kernel 106 during runtime, so that, for example dynamic Schminlialte such for small and large pupils, with the same hunter 106 can be detected and tracked. The exact implementation of how the delay time can be adjusted is discussed in FIG. 3 c.
  • all the delay elements 108a, 108b, 108c, 110a, 110b and / or 110c preferably all the delay elements 108a, 108b, 108c, 110a, 110b and / or 110c (or at least one of those mentioned) with a variable or executed discretely switchable delay time, so that during operation can be actively switched back and forth between different patterns to be detected or between different forms of the pattern to be detected.
  • 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.
  • the transformation means 104 may be provided with means for adjusting the same or, more precisely, for adjusting the individual delay elements 108a to 108c and 110a to 110c, e.g. connected to a controller (not shown).
  • the controller is arranged, for example, in a downstream processing device and configured to adapt the delay characteristic of the filter 106 when no pattern can be detected or when the recognition is not sufficiently good (poor match of the image content with the searched patterns). This controller will be discussed with reference to FIG. 5a.
  • 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 1 10 a parallel processing or a so-called parallel Hough transformation is possible.
  • FIG. 2 shows the preprocessor 102 which serves for the preprocessing of the video data stream 1 12 with the frames 112a, 112b and 112c.
  • the preprocessor 102 is designed to receive the samples 112 as binary edge images or also as gradient images and to carry out the rotation 114 or the mirroring 116 on the basis of these in order to obtain the four versions 1 12a, 12a ', 12a "and 1 12a '".
  • the background to this is that typically the parallel Hough transform, as performed by the Hough transformer, is limited to two or four preprocessed, e.g. offset by 90 °, versions of a picture 1 12a builds. As shown in Fig.
  • a 90 ° rotation (1 12a to 1 12a ') first occurs before the two versions 1 12a and 1 12a' are horizontally mirrored (compare 112a to 112a "and 112a 'to 112a ' ").
  • the preprocessor in corresponding exemplary embodiments, has an internal or external memory which serves to hold the received image files 12.
  • the rotate 1 14 and / or mirror 1 16 processing of the pre-processor 102 depends on the downstream Hough transform, the number of parallel Hough cores, and the configuration thereof, in particular, referring to FIG. 2b is described.
  • 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:
  • the pre-processor 102 may be configured to include other image processing steps, such as image processing. an up-sampling.
  • image processing such as image processing. an up-sampling.
  • the pre-processor 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.
  • Fig. 2b shows two hauer configurations 128 and 130, e.g. for two parallel 31x31 Hough cores, configured to detect a straight line or 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 core
  • the Hough core configuration 130 corresponds to a so-called Type 2 Hough core.
  • the Hough core configuration 128 and 130 is applied to the rotated version of the respective image.
  • the range 1r between ⁇ / 4 and zero and by means of the Hough-core configuration 130 the range 2r between ⁇ and 3 ⁇ / 4 can be detected.
  • Hough core e.g., a Type I lough core
  • 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 m x n cells are formed.
  • the column 108, 110, 138, 140, 141 and 143 of the filter represents a particular feature of the sought structure, e.g. for a certain curvature or a certain increase in the straight line section.
  • Each cell comprises a delay element which can be set with respect to delay time, wherein in this exemplary embodiment the adjustment mechanism is realized by providing in each case a switchable delay element with a bypass.
  • the construction of a single cell will be explained below on the basis of FIG. 3b.
  • the cell (108a) of Fig. 3b comprises the delay element 142, a remotely operable switch 144, such as e.g. a multiplexer, and a bypass 146.
  • the remote-controlled switch 144 either the line signal can be routed via the delay element 142 or fed to the node 148 without delay.
  • the node 148 is connected on the one hand to the sum element 150 for the column (for example 108), on the other hand via this node 148 also the next cell (for example 1 10a) is connected.
  • 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 number shown here
  • the element of the configuration register 160 is designed to control the multiplexer 144 and receives, via a first information input 160a, configuration information which originates, for example, from a configuration matrix which is 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 delay stages (also configurable during the transformation). Cells (142 + 144) of a column (108). Therefore, the configuration information can be further forwarded via the output 160b.
  • the configuration register 160 or the cell of the configuration register 160 receives a so-called enable signal via a further signal input 160c, by means of which the reconfiguration is initiated.
  • 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 column 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.
  • the video data streams recorded with a CMOS sensor have horizontal and vertical blanking, and the horizontal blanking time can be used for reconfiguration.
  • the size of the Hough core structure implemented in the FPGA dictates the maximum size possible for Hough core configurations. For example, if smaller configurations are used, they are vertically centered and aligned horizontally on column 1 of the Hough core structure. Unused elements of the Hough core structure are all populated with activated delay elements.
  • the evaluation of the data streams thus processed with the individual delay cells (142 + 144) takes place column by column.
  • the sum is added by columns 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 that is representative of the degree of agreement with the sought-after structure for an expression of the structure assigned to the respective column.
  • comparators 108v, 1l Ov, 138v, 140v, 141v and 143v are provided per column 108, which are connected to the respective summation elements 150.
  • 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 .
  • the column 108, 110, 138 or 140 with the greatest degree of correspondence for an expression of the desired pattern is always passed out of the filter as the filter passes through.
  • Upon detection of a local maximum of a column sum (comparison previous, subsequent column) can be concluded that the presence of a searched structure.
  • the result of the comparison is therefore a column number (possibly incl.
  • the result comprises a so-called multi-dimensional Hough space, which contains all the relevant parameters of the sought structure, such as type of pattern (eg straight line or semicircle), measure of conformity of the pattern, Characterization of the structure (strength of the curvature in curve segments or increase and length in the case of straight line segments) and the position or orientation of the desired pattern.
  • type of pattern eg straight line or semicircle
  • Characterization of the structure strength of the curvature in curve segments or increase and length in the case of straight line segments
  • the position or orientation of the desired pattern e.g., the gray values of the corresponding structures in the image area are added up.
  • 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.
  • 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.
  • 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.
  • further implementations via the implementation of the Hough core cell shown in FIG. 3b would be conceivable as an alternative.
  • FIG. 5a shows an FPGA-implemented image processor 10a with a pre-processor 102 and a Hough transformation device 104.
  • an input stage 12 may be implemented in the image processor 1 () a configured to receive image data or image samples from a camera 14a.
  • 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 exposure time and / or gain.
  • the image processor 10a further comprises a so-called Hough feature extractor 16 which is adapted to analyze the Hough multi-dimensional space output by the Hough transcription means 104 and includes all relevant information for pattern recognition and to base output a summary of all Hough features in the analysis result.
  • a smoothing the Hough feature spaces ie a spatial smoothing by means of a local filter or a thinning of the Hough space (suppression of irrelevant information for the pattern recognition). 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.
  • threshold values can also be defined for the thinning, so that, for example, minimum or maximum permissible characteristics of a structure, such as a minimum or maximum curvature or a smallest or largest increase, can be determined in advance.
  • noise suppression can also be carried out in the Hough probability space.
  • the analytic inverse transformation of the parameters of all remaining points in the original image area yields e.g. following Hough features: For the bent structure, position (x- and y-coordinate), probability of occurrence, radius and angle, which indicates in which direction the sheet is opened, can be forwarded. For a straight line, parameters such as position (x and y coordinates), probability of occurrence, angle indicating the slope of the straight line, and length of the representative straight section can be determined.
  • This thinned-out 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.
  • the processing unit 18 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.
  • the geometry converter 202 may be configured to output based on the detected Hough features G eo m et ri eparam et er, such as first diameter, second diameter, tilt and position of the center at an ellipse (pupil) or a circle.
  • the geometry converter 202 is operable to detect and select a pupil based on 3 to 4 Hough features (eg, curvatures). Criteria, such as the degree of agreement with the sought-after 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 Hough feature combinations are sorted, with the first line being sorted according to the number of Hough features obtained, and secondarily after the Hough feature combinations Degree of agreement with the structure sought. After sorting, the Hough feature combination in the first place is selected and the ellipse which most closely represents the pupil in the camera image is fitted out of it.
  • the post-processing device 18 comprises an optional controller 204 which is adapted to output a control signal back to the image processor 10a (see control channel 206) or, in other words, back to the Hough transform means 104 on the basis of which Filter characteristic of the filter 106 is adjustable.
  • the controller 204 is typically coupled to the geometry converter 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 (size of the last used Hough kernel) and being tracked as soon as the detection 202 provides inadequate results.
  • the controller 204 can thus adapt the ellipse size, which is dependent, for example, on the distance between the object to be recorded 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.
  • 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, for example, to smooth the data series. 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, implausible sentences (eg, outliers or dropouts) are replaced by internally-determined data values (substitute values) and the data values of the others Phrases continue to be used unchanged.
  • the data values of plausible sentences are forwarded 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 is replaced.
  • the resulting data series of forwarded values and, if necessary, substitute values is continuously smoothed.
  • an adaptive temporal smoothing of the data series eg a determined ellipse midpoint coordinate), / .. B. on the principle of exponential Smoothing takes place, whereby misfires or outliers (eg due to false detection in the pupil detection) in the data series to be smoothed do not lead to fluctuations of the smoothed data.
  • the data processor can smooth over the data value of a newly received sentence if it does not meet one of the following criteria:
  • the searched structure is a dropout in the data series.
  • 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.
  • the previous value is still output or at least used to smooth the current value.
  • the current values are weighted more heavily than the past values. For example, using cxponentic smoothing, the current value can be determined by the following formula:
  • smoothed value current value x smoothing coefficient + last smoothed value x (1 - smoothing coefficient)
  • the smoothing coefficient is dynamically adjusted within defined limits to the trend of the data to be smoothed, eg 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.
  • the selective-adaptive data processor 300 can also be configured by means of parameters, eg during the initialization, whereby the smoothing behavior, for Maximum duration of a dropout or maximum smoothing factor.
  • the selective adaptive data processor 300 can plausibly output values describing the position and geometry of a pattern to be recognized with high accuracy.
  • the post-processing device on an interface 18a via the optional control commands can 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 in such a way that data sets of different data rows can be processed.
  • 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.
  • Outliers In the selection, outliers (within the data series to be processed) are sorted out and replaced by other (internally determined) values. 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 rated as a dropout and replaced by other (internally determined) values.
  • a smoothing of the data series takes place (for example exponential smoothing of a time series).
  • 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.
  • the post-processing device 18 comprises an image analyzer, such as 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.
  • image processor 10b the two cameras 14a and 14b as well as the image processors 10a and 1b form a stercoscopic camera arrangement, wherein preferably the image processor 10b is identical to the image processor 10a.
  • the 3D image analyzer 400 is configured to generate at least a first set of image data determined based on a first image (see camera 14a) and a second set of image data based on a second image (see camera 14b ), wherein the first and second images map a pattern from different perspectives, and to calculate an angle of view and an SD view vector, respectively.
  • the 3D image analyzer 400 comprises a position calculation device 404 and an orientation calculation device 408.
  • the position determination device 404 is designed to determine a position of the pattern in a three-dimensional space based on the first sentence, the second sentence and a geometric relationship between the perspectives and the first and the second camera 14a and 14b, respectively.
  • the alignment calculator 408 is configured to provide a 3D view vector, e.g. a viewing direction, according to which the recognized pattern is aligned in the three-dimensional space, the calculation being based on the first sentence, the second sentence and the calculated position (see position calculator 404).
  • a so-called 3 D camera system model 1 can be used, which has stored all model parameters, such as position parameters, optical parameters (see camera 14a and 14b) in a configuration file, for example.
  • the model stored or read in the 3D image analyzer 400 includes data regarding the camera unit, i. view of 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).
  • the camera unit i. view of 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).
  • the 3D position calculator 404 calculates the eye position or the pupil center based on the two or more camera images (see Figures 14a and 14b) by triangulation. For this he gets 2D coordinates of a point in the two camera images (cf. 14a and 14b) are provided via the process chain of image processors 10a and 10b, geometry converter 202 and selective adaptive data processor 300. From the transmitted 2 D coordinates, the 3 D camera model is used to calculate, in particular taking into account the optical parameters for both cameras 10 a and 1 Ob, the light beams which have depicted the 3D point as a 2D point on the sensor. 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 is either output via the interface 18a as a result, or passed to the viewing direction calculator 408, along with an error measure describing the accuracy of the 2D coordinates passed in connection with the model parameters.
  • the viewing angle calculator 408 can determine the viewing direction from two ellipse-shaped projections of the pupil to the camera sensors without calibration and without knowledge about the distance between the eyes and the camera system.
  • the viewing direction calculator 408 uses, in addition to the 3D positional parameters of the image sensors, the ellipse parameters determined by means of the geometry analyzer 202 and the position determined by means of the position calculator 404. From the 3D 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 extends through the 3D pupil center.
  • 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.
  • the two sensors can each be calculated two points of view of the eye on any plane parallel to the respective virtual sensor plane.
  • four view-direction vectors can be calculated, ie two vectors per Kamci a.
  • exactly one of the one camera is always approximately identical to one of the other cameras.
  • the two identical vectors indicate the search direction of the eye (gaze direction). which is then output from the sight line calculator 404 via the interface 18a.
  • a particular advantage in this 3 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 regardless of the knowledge about the position of the eye to the camera.
  • An analytical determination of the 3D eye position and SD viewing direction allows any number of cameras (greater than 1) and any camera position in 3D space.
  • the short latency with the simultaneously high frame rate allows a real-time capability of the described system 1000.
  • the so-called time regimes are also fixed, so that the time differences between successive results are constant.
  • the "3D image analyzer" which comprises the method for calibration-free eyetracking
  • at least two camera images from different perspectives have been assumed up to now
  • the second vector corresponds to a mirroring of the first vector at the connecting line between camera and pupil center point .Once of the two vectors which result from the other camera image, precisely one vector almost coincides with a vector calculated from the first camera image
  • vb the actual view direction vector of the two possible line of sight vectors, hereinafter referred to as "vi” and "v2”, which are obtained from the camera image must be used. to be selected.
  • 5b shows the visible part of the eyeball (bordered in green) with the pupil and the two possible viewing directions vi and v2.
  • one (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
  • Rays are projected into the camera image of the eye and run there from the pupillary center to the edge of the image.
  • the ray the less pixels belonging to the sclera
  • the pixels of the sclera are distinguished by their gray value from those of the adjacent iris 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).
  • 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 inside the eye opening can be used 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 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 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 plane of the face becomes too large).
  • an evaluation of the position of the pupil center can be made to a Rcferenzpupillenstoffige.
  • the position of the pupil center point 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 point for selecting the actual sight line 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 from the pupil center to the edge of the image.
  • the reference pupil center within the eye opening corresponds to the pupil center when the eye is looking directly toward the camera sensor center of the camera used for imaging.
  • the beam projected into the camera image which has the smallest distance to the reference pupil center point in the image, belongs to the actual sight line vector.
  • 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.
  • Option 2 The center of gravity of the area of the eye opening can be used as an estimate of the position of the reference pupil center. This method of estimation reaches its limits when the plane in which the face lies is parallel to the sensor plane of the camera. This constraint can be compensated if the inclination of the face plane to the camera sensor plane is known (eg, by a previously determined head position and orientation orientation) and this is used to correct the position of the estimated reference pupil center.
  • Possibility 3 (general application): If the 3D position of the center of the eye is available, a straight line between 3 D-eye center and virtual sensor center can be determined and their intersection with the surface of the eyeball. The reference pupil center results from the position of this intersection converted into the camera image.
  • an ASIC application-specific chip
  • Combinations with features can be used.
  • Hough processors 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 hood of the pupil or iris as a measure of the degree of eye opening) and taking into account the viewpoints and the focus, a specific fatigue pattern to be detected. Furthermore, the Hough processor can be used on input devices or input interfaces for technical devices; Here, eye position and viewing direction are used as input parameter. A concrete application here would be the support of the user when viewing screen contents, eg when highlighting certain focused areas.
  • Such applications are particularly interesting in the field of assisted living, in computer games, in the optimization of 3D visualization by incorporating the viewing direction, in market and media research or in ophthalmological diagnostics and therapies.
  • the implementation of the method presented above is platform-independent, so that the method presented above can also be executed on other units, such as a PC.
  • another embodiment relates to a method for Hough 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, so that a plurality of versions of the image of the respective sample are output for each sample and detecting predetermined patterns in the plurality of samples based on the plurality of versions using a Hough transform means having a delay filter having a filter characteristic whose filter characteristic depends on the selected predetermined pattern set is set.
  • the adaptive characteristic may also refer to the post-processing characteristic (bending or distortion characteristic) in a fast 2D correlation.
  • Fig. 4a shows a processing chain 1000 of a fast 2D correlation.
  • the processing chain of the 2D correlation comprises at least the functional blocks 1 105 for multiple 2D folding and 1 1 10 for fusion.
  • the procedure for multiple 2D folding is illustrated in Fig. 4b.
  • 4b shows an 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.
  • FIG. 4c shows the pixel-wise correlation with n templates illustrated (in this case, for example, for lines of different pitch) for the detection of the ellipse 1 1 15, while FIG. 4d shows the result of the pixel-by-pixel correlation, wherein typically over the n result images the one more Maximunisuche takes place.
  • Each result image contains a Houghfeature per pixel. Hough processing in the overall context is explained below.
  • the delay filter is replaced by fast 2D correlation.
  • the previous delay filter is able to map n characteristics of a specific pattern. These n occurrences are stored as templates in the memory.
  • the preprocessed image eg binary edge image or gradient image
  • the underlying image content corresponding to a postprocessing characteristic
  • 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 agreement - with the underlying Biklinhalt. These correspond, so to speak, to the column totals 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).
  • the correlation of the individual templates with the image content can be carried out both in the local and in the frequency domain.
  • 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 optical signaling device. By evaluating an image recorded by the user, the device is capable of detecting incoming microsleep or fatigue or distraction of the user and of warning the user.
  • the processing unit used is an embedded processor system that executes a software code on an underlying operating system.
  • the signaling device currently consists of a multi-frequency buzzer and an RGB LED.
  • the evaluation of the recorded image can take place in 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.
  • 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 tracked across multiple images, so they do not have to be completely re-searched in each image.
  • the Hough features described above can be used to perform face detection or eye detection or eye analysis or eye fine analysis.
  • the 2D image analyzer described above can be used for face detection or Eye detection or used for eye analysis.
  • the described adaptive-selective data processor can be used for smoothing the result values or intermediate results or value curves determined during face detection or eye detection or eye analysis or eye fine analysis.
  • a temporal evaluation of the eyelid closure degree and / or the results of the eye fine analysis can be used to determine the microsleep or the tiredness or distraction of the user.
  • the calibration-free sighting determination described in connection with the SD image analyzer can also be used to obtain better results in determining the instantaneous sleep or the tiredness or distraction of the user.
  • the adaptive-selective data processor can also be used.
  • microsleep wamer can also be used to determine any other defined 2D position, such as a nose position or nose root position, in a face.
  • this position can also be determined in 3D space, the further set of information being from an image of another camera or by evaluating relations between objects in the first camera image can be generated.
  • the Hough processor in the image input stage may include camera control equipment.
  • 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 method steps may be performed by an apparatus (using a hardware apparatus), such as 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, an EPROM, or a FLASH server Hard disk or other magnetic or optical memory are stored on the electronically readable control signals that 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.
  • a digital storage medium such as a floppy disk, a DVD, a Blu-ray Disc, a CD, a ROM, a PROM, an EPROM, an EPROM, or a FLASH server
  • Hard disk or other magnetic or optical memory are stored on the electronically readable control signals that 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.
  • 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.
  • 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.
  • the program code can also be stored, for example, on a machine-readable carrier.
  • inventions include the computer program for performing any of the methods described herein, wherein the computer program is stored on a machine-readable medium.
  • an exemplary embodiment of the method according to the invention is thus a computer program which has a program code for carrying out one of the methods described herein when the computer program runs on a computer.
  • a further embodiment of the method according to the invention is thus a data carrier (or a digital storage medium or a computer-readable medium) on which the computer program is recorded for carrying out one of the methods described herein.
  • a further embodiment of the method according to the invention is thus a data stream or a sequence of signals, which represent 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.
  • Another embodiment includes a processing device, such as a computer or programmable logic device, configured or adapted to perform any of the methods described herein.
  • a processing device such as a computer or programmable logic device, configured or adapted to perform any 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.
  • Another embodiment according to the invention comprises a device or system adapted to transmit a computer program for performing at least one of the methods described herein to a receiver.
  • 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.
  • the device or system may include a file server for transmitting the computer program to the recipient.
  • a programmable logic device eg, a field programmable gate array, an FPGA
  • a field programmable gate array may cooperate with a microprocessor to perform one of the methods described herein.
  • 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 AS IC.
  • integrated eye tracker includes a set of FPGA-optimized algorithms that are capable of extracting (elliptical) features (Hough features) from a live camera image using a parallel Hough transform
  • elliptical features Hough features
  • the 3D position of the pupil center as well as the 3D line of sight and the pupil diameter can be determined. The calculation is based on the position and shape of the ellipses in the camera images.There is no calibration of the system required for the respective user and no knowledge about the distance between the cameras and the analyzed eye.
  • 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 enable very fast image processing with a constant frame 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) and applications such as human machine interfaces (eg for mobile devices) Require construction volume.
  • Image coordinate position of the structure was found, but not: hit probability and other structural features
  • the overall system combines two or more camera images in which the same eye is depicted in each case a list of multi-dimensional Hough features 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 31) viewing direction and the pupil diameter can be determined completely without calibration.
  • 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 preproessing, Hough feature extractor, Hough feature to ellipse converter, Coresize control, 3D camera system model, 3D position calculation and ..31) gauze direction calculation " meet individual functional modules of the Integratcd Eyetracker. They are arranged in the image processing chain of the Integrated Eyetracker as follows:
  • FIG. 6 shows a block diagram of the individual functional modules in the Integrated Eyetracker.
  • the block diagram shows the individual processing stages of the Integrated Eyetracker. The following is a detailed description of the modules.
  • one or more video data streams with prepared pixel data from the input are provided.
  • the parallel Hough transformation can be applied to the image content from four main directions offset by 90 ° each
  • delay elements can be switched on and off during runtime
  • Each column of the filter stands for a specific characteristic of the sought-after structure (curvature or straight line increase) ⁇ Summation over the filter columns provides occurrence probabilities for the characteristic of the structure represented by the respective column
  • the filter For each image pixel, the filter returns a point in the Hough space that contains the following information:
  • Type of pattern e.g., straight or semicircle
  • the first Hough feature combination is selected and used to fit the ellipse that most likely represents the pupil in the camera image
  • Hough feature to ellipse converter calculated ellipse, the Hough core size is tracked within defined limits around the accuracy of the Hough transformation results in the detection of elliptical extremes
  • a set of filter parameters can be used to set its behavior when the filter is initialized
  • the smoothing coefficient is dynamically adjusted within defined limits to the trend of the data to be smoothed: o Reduction in the case of rather constant value progression of the data series
  • This model can be used, among other things, to compute the 3-D (straight line) visual line (corrected for the biology and physiology of the human eye)
  • ⁇ Mismatch describes the accuracy of the passed 2D coordinates in conjunction with the model parameters.
  • the 2D beams are used to calculate the light beams for both cameras that have displayed the 3D point as 2D points on the sensors
  • D-eye positions and SD viewing directions are detected, which can be used for the following applications: o Safety-critical areas ⁇ z. B. S ek and cn sch 1 a fw arner or fatigue detector as driving assistance system in the automotive sector, by evaluating the eyes (eg, the pupil as a measure of the degree of opening) and taking into account the viewpoints and the focus
  • 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 an FPGA (field programmable gate array) and, in comparison to the existing methods, manage without any recursions in the processing.
  • the algorithms enable very fast image processing with constant image w hich gain, minimal latency, and minimal resource consumption in the FPGA.
  • these modules are predestined for time / latency / safety critical applications (e.g., driver assistance systems) or applications such as human machine interfaces (e.g., for mobile devices) that require a small footprint.
  • the spatial position of the user for specific points in the image can be determined with high precision, without calibration and without contact.
  • the input image is successively brought into different scaling levels (until the smallest scaling level has been reached) and each is searched for faces with a multi-level classifier
  • classifiers 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).
  • the determined face and A league positions are available only in 2D image coordinates, not in 3D
  • 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".
  • Fig. 7 a 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 facetracking, 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 when calculating the 2D facial centers in both camera images).
  • the module “Feature extraction (Classification)” of the FPGA-Facctracker builds on the feature extraction and classification of kublbeck / Ernst from Fraunhofer IIS (Er Weg) and uses an adapted version of its classification based on Census features.
  • 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"
  • Fig. 7b shows the output image (original image) and result (downscaling image) of the parallel image scaler.
  • 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:
  • Suppress levels • Defined distance to the edges of the target matrix around the
  • Detects a face from classification results of several levels of scaling. which are arranged together in a matrix As shown in Fig. 7c, the result of the classification (right) represents the input for the parallel face finder.
  • Detects the position of the eyes in the corresponding face during face detection in parallel (this is especially important for faces that are not ideally taken frontally and twisted)
  • 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":
  • a specially-shaped correlation-based local filter is used to determine probabilities for the presence of an eye within the eye area (the eye is simply described in this image area as a small dark area with a light environment)
  • the pupil center is detected separately in horizontal and vertical direction as explained below:
  • a set of filter parameters can be used to set its behavior when the filter is initialized
  • the current input value is used for smoothing if it does not fall into one of the following categories:
  • the corresponding downscaling level is a nonsensical value (value found in a downscaling level that is too far away) • Excessive difference from the last value used for smoothing is an escape
  • 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
  • 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
  • ⁇ Error measure describes the accuracy of the passed 2D coordinates in conjunction with the model parameters
  • the two cameras are used to calculate the light beams that have depicted the 3 D point as 2D points on the sensors using the "3D camera system model" (especially taking into account the optical parameters)
  • This back projection beam is defined by equation (AI). It consists of a starting point RSg and a normalized direction vector RS " ; which result in the lens model used (FIG. 8b) by the equations (A2) and (A3) from the two main points Hi and Hi of the objective as well as the ellipse center EMP in the sensor plane. All three points (H], H 2 and EMP) in the Eyetracker
  • H 2 K 0 + b - K, and / - /, - K () + (h + cl) - K, j calculate directly from the lens and camera parameters (Figure 8b), o is the center of the camera sensor and 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 x m and y m , which are present in image coordinates, by means of an equation
  • P B ii d is the resolution of the camera image in pixels
  • S 0 ff se is the position on the sensor at which the image is read out
  • S res is the resolution of the sensor
  • SpxGr is the pixel size of the sensor.
  • the desired pupil center is ideally the intersection of the two back propagation beams RS K1 and RS K2 .
  • modulus parameters and ellipse center points even minimal measurement errors mean that there is no intersection of the straight lines in the 3-D space.
  • Two straight lines in this constellation, which neither intersect nor run parallel, are called skewed straight lines in geometry.
  • the two skewed straight lines each run very close to the pupil center.
  • the pupil center is at the point of their smallest distance to each other halfway between the two lines.
  • n Sl RS ⁇ l x RS n
  • Equation (A5) The location of the shortest link between the back projection beams is defined by Equation (A5).
  • the sought pupil center point PP which lies halfway between the back projection beams, thus results from equation (A6) after the onset of the values calculated for s and u.
  • d R s u ⁇ n Sl I
  • the calculated pupil center is one of the two parameters that determine the eye's eye's line of sight. In addition, it is required for calculating the sight line vector P fl , which will be described below.
  • 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 /,. Example, in the method described in the patent DE 10 2004 046 617 A 1 required.
  • the sight line vector ⁇ ⁇ to be determined corresponds to the normal vector of the circular pupil surface and is thus determined by the orientation of the pupil in 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.
  • 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.
  • 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 shown in FIG.
  • this approach is based on 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.
  • the distances between the cameras and the eye must be known in advance and stored firmly in the eye-tracking system.
  • 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 given when the Pupillenstoffige P P is located 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.
  • 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 // / . At the same time, this corresponds to the object-side main point vHj of the virtual camera system 804a * .
  • 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.
  • the normalized normal vector vK "of the virtual camera vK is as follows:
  • edge points RP.sub.ID of the previously determined ellipse on the sensor in the original position are first required.
  • E a is the short semiaxis of the ellipse
  • E b is the long semiaxis of the ellipse
  • E x and E y are the center coordinates of the ellipse
  • E a is the angle of rotation the ellipse.
  • the position of a point RP yD in the eye tracker coordinate system can be calculated by the equations (AI 1) to (A14) from the parameters of the ellipse E, the sensor S and the camera K, where co is the position of a boundary point RP 2D according to FIG. Indicates 8d on the ellipse circumference.
  • the direction of a node beam KS in the original camera system, which images a pupil edge point as ellipse edge point RP 3D on the sensor, is equal to the direction of the node beam vKS in the virtual camera system, which images the same pupil edge point as ellipse edge point RP 3D on the virtual sensor.
  • the node beams of the ellipse edge points in Figs. 8b and 8c illustrate this.
  • the two beams KS and vKS have the same directional vector, which results from equation (AI 5).
  • the virtual node beam and the virtual sensor plane, which corresponds to the xy-plane of the virtual camera vK, are set equal in equation (AI 6), whereby the parameters of their point of intersection result by solving for s 2 and t 2 .
  • equation (AI 7) the ellipse edge point can be calculated in pixel coordinates in the image of the virtual camera.
  • the parameters of the virtual ellipse vE shown in Figure 8c can be calculated using the "Direct Least Square fitting of ellipses " algorithm according to Fitzgibbon et al ..
  • at least six virtual boundary points vRP 2D are required, which are implemented by substituting different co in Equation (AI 1) can be calculated by the above-described way.
  • 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 norms vK n , extending along the optical axis straight line through the pupil center PMP ⁇
  • the conditions are met, building on the in the patent DE 10 2004 046 617 AI presented approach to calculate the line of sight.
  • the previously calculated virtual ellipse vE is now assumed in the main virtual plane 1.
  • the 3 -D ellipse center point VE 'MP corresponds to the virtual main point 1. It is also the lotus point of the pupil center PMP in the main virtual plane 1. Subsequently, only the axial 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 the main level 1.
  • Each image of the pupil 806a in a camera image can be formed by two different orientations of the pupil.
  • the results of each camera result in two virtual intersections v S of the two possible lines of sight with the virtual main plane 1.
  • the two possible viewing directions p. , and p are determined as follows. The distance A between the known pupil center and the ellipse center
  • V ⁇ ⁇ - ⁇ ⁇ ⁇ ⁇ ⁇ - ⁇
  • ⁇ ⁇ ⁇ ⁇ ⁇ • [ ⁇ , ⁇ , ⁇ ]
  • the angle w ⁇ j between the two averaged vectors P KX wnd P K1 which indicate the actual viewing direction, can be calculated.
  • the smaller w ⁇ y j the more accurate were the model parameters and ellipse centers used for the previous calculations.
  • the viewing angles ⁇ and q> B w with respect to the normal position of the pupil (P tj lies parallel to the z axis of the eye tracker coordinate system) can be calculated using the equations
  • ⁇ PBW aresin (- / f)
  • LoS (t) P MP + t - P ri .
  • the implementation of the method presented above is platform-independent, so that the method presented above can be executed on various hardware platforms, such as a PC.
  • the aim of the present following is to develop on the basis of the parallel Hough transformation and a robust method for feature extraction.
  • the Houghcore will be revised and a method for feature extraction will be presented, which reduces the results of the transformation and reduces it to a few "feature vectors”.
  • the newly developed method is implemented and tested in a Matlab toolbox, and finally an FPGA implementation of the new method is presented: parallel Hough transformation for straight lines and circles
  • the Hough parallel transformation uses Houghcores of different sizes, which must be configured using configuration matrices for each application.
  • configuration matrices for each application.
  • the mathematical relationships and procedures for creating such configuration matrices are shown below.
  • 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 via the control variable Y core 0 to core ⁇ ⁇ %.
  • the starting point for calculating the sets of curves is the circle equation in coordinate form.
  • the radius is missing, which is obtained by inserting (B6) in (B7) and by further transformations.
  • variable y core which runs from 0 to core hejahl .
  • Configuration matrices can be either zeros or ones.
  • a one stands for a used delay element in 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.
  • Previous Houghcore structure consists of a delay and a bypass and it is determined before the FPGA synthesis which path should be used.
  • 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.
  • the synthesis tool in the FPGA has more freedom in implementing the Houghcore design, and higher clock rates can be achieved.
  • Pipelinedelays break through time-critical paths within FPGA structures. In Fig. 9d, the new design of the delay elements is illustrated.
  • the delay elements of the new Houghcore have a somewhat more complex structure.
  • An additional register is required for flexible configuration of the delay element and the multiplexer occupies additional logic resources (must be implemented in the FPGA in a LUT).
  • the pipeline delay is optional.
  • modifi- the design of the Houghcore modifi- the design of the Houghcore.
  • the new Houghcore is illustrated in Figure 9e.
  • 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 reconfiguration 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.
  • overall latency for reconfiguration is disadvantageous, it can be accepted for video-based image processing.
  • the video data streams recorded with a CMOS sensor have horizontal and vertical blanking. The reconfiguration can thus easily take place 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 horizontally on column 1 of the Houghcore structure (see Figure 9f). Unused elements of the Houghcore structure are all filled with Dclays. The correct alignment of smaller configurations is important for the correction of the x-coordinates (see formulas (B 17) to (B19)).
  • the Houghcore is fed as before with a binary edge image that passes through the configured delay lines.
  • the column sums are calculated over the total hourly space and compared in each case with the sum signal of the previous column. If a column returns a higher sum value, the sum value of the original column is overwritten.
  • 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 Houghraum or Akkumulatorraum.
  • the Hough space of the parallel Hugh-ugh frame is present in the image coordinate system. This means that for every picture dinate a sum value with associated column number is output.
  • a Houghcore of Type 1 and Type 2 must each be run through from the non-rotated and rotated image.
  • the Houghcore type and the orientation of the output image are present.
  • different Houghcore sizes and configurations can be used for straight and semi-circles.
  • the curve type and the Houghcore size can be specified.
  • 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.
  • VGA resolution is the pixel data rate 24Mhz.
  • the Houghcore would have to be operated at 96Mhz, which is already enough for a Spartan 3 generation FPGA represents high clock rate.
  • work should increasingly be done with pipeline iays within the i lougheore structure.
  • MV [MV X. MVyMVo, MV KS , MV H , MV G -I, MV A ]
  • a feature vector consists of the x and y coordinates for the found feature (MV X and MV y ), the orientation MVo, the curvature strength MVKS, the frequency MVH, the houghcore size MVQ-I and the type of structure MV A found ,
  • the detailed meaning and the value range of the individual elements of the feature vector can be found in the following table.
  • the orientation stands for the alignment of the Houghcore. This consists of the image rotation and the Houghcore type used and can be divided into four areas. The conversion of the four areas into their respective orientation is illustrated in the following table.
  • MV KS The curvature strength runs max. up to the size of the Houghcore and corresponds to the Houghcore column with the largest column sum (or frequency MVH).
  • MVH the largest column sum
  • MV "The frequency is a measure of the correlation of the image content with the sought structure. It corresponds to the column sum (see Fig. 9e and the above table) and can reach at most the size of the Houghcores (more precisely, the size of a Houghcore column for non-squared Houghcores).
  • MV A Stands for the type of structure found, depending on which Houghcore configuration was used (configuration for lines 0 or configuration for circles-1). Elements of the Hough feature vector, their meaning and value range.
  • the two elements MVo and MVKS have different meanings for straight lines and semicircles.
  • 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 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.
  • the coordinates (MVx and MVy) (see Fig. 9g).
  • the coordinates should always represent the midpoint and, in the case of semicircles or bends, always the vertex.
  • 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. 9t). 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 MV KS ).
  • the non-maximum-suppression operator differs in straight lines and semicircles. Via the threshold values, a minimum MV KS and maximum curvature strength MV KS ⁇ are specified and a minimum frequency MV H is set.
  • the non-maximum suppression operator can be considered a 3x3 local operator (see Figure 9h). A valid feature for semicircles (or curves) always arises when the condition of the nms operator in (B23) is met and the Sehwell values are exceeded according to formulas (B20) to (B22).
  • Non-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.
  • a non-maximum suppression operator of size 3x3 (see Fig. 9h) can also be derived.
  • 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.
  • three cases can be distinguished (see Fig. 9i in combination with the above table).
  • Angular range is the Hough feature after the Houghcore column that delivered the hit (MVKS), which can be directly compared to the angular range bisecting Houghcore column.
  • the condition can be queried via the respective nms-oprator (For (B25) to (B27)). If all conditions are fulfilled and if, in addition, the threshold values according to the formulas (B20) to (B22) are exceeded, the Hough feature can be adopted at position nms2,2.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Software Systems (AREA)
  • Ophthalmology & Optometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Geometry (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • Eye Examination Apparatus (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Complex Calculations (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Ein Hough-Prozessor umfasst einen Pre-Prozessor und eine Hough-Transformationseinrichtung. Der Pre-Prozessor ist ausgebildet, um eine Mehrzahl von Samples zu empfangen, die jeweils ein Bild umfassen, und um das Bild des jeweiligen Samples zu drehen und/oder zu spiegeln. Die Hough-Transformationseinrichtung ist ausgebildet, um ein vorbestimmtes gesuchtes Muster in der Mehrzahl von Samples auf der Basis der Mehrzahl von Versionen zu erfassen. Die Hough-Transformationseinrichtung weist eine mit dem gesuchten Muster in Abhängigkeit stehende Charakteristik auf, die entsprechend auf das gesuchte Muster anpassbar ist.

Description

Hollah-Prozessor
Beschreibung
Ausführungsbeispiele der vorliegenden Erfindung beziehen sich auf einen Hough- Prozessor, Weitere Ausführungsbeispiele beziehen sich auf ein Bildanalysesystem zum Tracken einer Pupille mit einem Hough-Prozessor, auf ein Verfahren für eine Hough- Verarbeitung und ein Computerprogramm zur Durchführung des Verfahrens.
Viele Bildererkennungssysteme bzw. Bildauswertungssysteme, wie z.B. 2D- Bildanalysetools oder 3D-Bildanalysatoren, können auf der Hough-Transformation aufbauen, wie nachfolgend ausgeführt wird. Hough-Prozessoren dienen zur Durchführung einer Hough-Transformation, mittels welcher geometrische Muster, wie Geraden oder Kreise oder auch nur Segmente von derartigen geometrischen Mustern, erkannt werden können. Bei der Erkennung wird typischerweise von Gradientenbildern bzw. Schwarz/Weiß-Bildern oder binären Kantenbildern ausgegangen. Mittels der Hough-Transformation erfolgt eine Überführung eines zweidimensi- onalen Ausgangsbilds in einen mehrdimensionalen Akkumulatorraum, der auch als Hough- Raum bezeichnet wird. In diesem Raum wird die gesuchte Struktur in einer Parameterdarstellung ausgedrückt bzw. der Hough-Raum über die Parameter aufgespannt. Ein Hough- Raum weist je nach Komplexität der zu delektierenden Struktur eine Vielzahl an Dimensionen auf. So umlasst ein 1 lough-Raum zur Erkennung von Geraden typischerweise zwei Dimensionen (Winkel zwischen x-Achse und Normalen auf die Gerade und Abstandlot- fußpunkt vom Ursprung, vgl. hessische Normalform); bei einem Hough-Raum zur Erkennung von Kreisen sind typischerweise drei Dimensionen (zweimal Lagekoordinaten des Kreismittelpunkts, einmal Kreisradius) vorhanden, während ein 1 lough-Raum zur Erkennung von Ellipsen typischerweise fünf Dimensionen (zweimal Lagekoordinaten Ellipsen- mittelpunkt. zweimal Ellipsendurchmesser, einmal Kippungswinkel) umfasst. Insofern ist die Hough-Transformation dadurch gekennzeichnet, dass ein zu verarbeitendes Bild in einen n-dimensionalen Hough-Raum überführt wird. Die gesuchten geometrischen Merkmale könnte man auch als Hough-Merkmale bezeichnen. Diese sind anhand der Häufigkeitsverteilungen im I lough-Raum (kann auch als Akkumulatorraum bezeichnet werden) erkennbar.
Die Hough-Transformation stellt die Grundlage dar, um mittels eines Hough- Transformations- Algorithmus geometrische Strukturen effizient und zuverlässig zu erken- nen. In der Praxis ist beispielsweise die Detektion einer Ellipse bzw. Ellipsenform, wie z.B. bei einer Pupille oder Iris, oder auch andere markante Strukturen im Auge (z.B. Augenlider) in einer Gesichtsaufnahme eine wichtige Anwendung, wobei jedoch angemerkt sei, dass die Ausführung von Hough-Transformations-Algorithmen sehr rechenaufwendig ist. Dies führt dazu, dass die Echtzeitfähigkeit von I lough-I'ransformations-Algorithmen eingeschränkt ist. Ein weiterer sich hieraus ergebender Nachteil liegt darin, dass eine Ausführung eines Hough-Transtbrmations- Algorithmus typischerweise spezielle Hough- Prozcssoren oder allgemein sehr leistungsstarke Prozessoren voraussetzt, so dass die Implementierung eines Hough-Erkcnnungs-Algorithmus mittels einfachen und/oder kosten- günstigen Prozessoren, aber auch FPGAs (Field Programmable Gate Arrays, integrierte Schaltung mit programmierbaren logischen Schaltelementen), schwierig oder nicht möglich ist.
Verbesserungen hinsichtlich der Performance wurden durch eine sogenannte Parallel- Hough-Transformation erreicht, wie sie beispielsweise in der Patentschrift DE 10 2005 047 160 B4 beschrieben ist. Bei dieser Parallel-Hough-Transformation kann jedoch nur ein binäres Ergebnis bezogen auf eine Bildkoordinate (Position der Struktur), nicht aber Maß für die Ubereinstimmung mit der gesuchten Struktur oder weitere Strukturmerkmale, de- tektiert werden. Des Weiteren ist eine flexible Anpassung des Transformationskerns wäh- rend der Laufzeit nicht möglich, was die Eignung hinsichtlich dynamischer Bildinhalte (z.B. kleine und große Pupillen) einschränkt. So ist der Transformationskern nicht rekonfi- gurierbar, so dass andere Strukturen während der Laufzeit nicht erkannt werden können.
Deshalb besteht der Bedarf nach einem verbesserten Ansatz.
Aufgabe der vorliegenden Erfindung ist es, ein flexibel implementierbares Konzept zu schaffen, dass eine effiziente, robuste Hough-Transformation in Echtzeit ermöglicht.
Die Aufgabe wird durch die unabhängigen Ansprüche gelöst. Weiterbildungen sind in den Unteransprüchen definiert.
Ausführungsbeispiele der vorliegenden Erfindung schaffen einen Hough-Prozessor mit einem Pre-Prozessor und einer Hough-Transformationseinrichtung. Der Pre-Prozessor ist ausgebildet, um eine Mehrzahl von Samples zu empfangen, die jeweils ein Bild umfassen und um das Bild des jeweiligen Samples zu drehen und/oder zu spiegeln und um eine Mehrzahl von Versionen des Bildes des jeweiligen Samples für jedes Sample auszugeben. Die Hough-Transformationseinrichtung ist ausgebildet, um ein vorbestimmtes gesuchtes Muster in der Mehrzahl von Samples auf der Basis der Mehrzahl von Versionen zu erfas- sen. Die Hough-Transfomiationseinrichtung weist eine mit dem gesuchten Muster in Abhängigkeit stehende Charakteristik auf, die entsprechend auf das gesuchte Muster anpassbar ist. Der Erfindung liegt die Erkenntnis zu Grunde, dass eine verbesserte Berechnung von Hough-Featurcs durch einen Hough-Prozessor mit einer Hough- Transformationseinrichtung ermöglicht wird, die eine entsprechend dem gesuchten Muster anpassbare Charakteristik, wie zum Beispiel eine Filtercharaktcristik eines Verzögerungsfilters oder eine Charakteristik einer PC-basierten (schnellen) 2D-Korrelation, aufweist. Beispielsweise kann jeder Kombination von Verzögerungselementen des Verzögerungsfilters ein bestimmtes Suchmuster bzw. gesuchtes Merkmal zugeordnet werden. Im Detail, detektiert jede Konfiguration eines Verzögerungsfilters mehrere Ausprägungen eines bestimmten Suchmusters bzw. eine Kurvenschar, wobei jede Spaltensumme für ein bestimmtes Muster, also für eine konkrete Ausprägung der Kurvenschar, steht. Hierbei ist die Cha- rakteristik dynamisch, d.h. also während der laufenden Hough-Transformation anpassbar, um das Suchmuster bzw. die Kurvenscharen zu variieren. Es ist hinsichtlich Implementier- barkeit vorteilhaft, den Hough-Prozessor in zwei Funktionseinheiten, nämlich in einen Pre- Prozessor und eine Hough-Transformationseinheit zu untergliedern. Der Pre-Prozessor führt für die Suche nach Mustern eine Vorverarbeitung durch, die beispielsweise Spiegeln und/oder Drehen des Bildes, in welchem das Muster erkannt werden soll, umfassen kann. Diese von dem Pre-Prozessor ausgegebenen verschiedenen Versionen werden an die Hough-Transformationseinrichtung ausgegeben, die dann nach einem oder mehreren gesuchten Mustern, z.B. einer steigenden Geraden in der ersten Version und einer fallenden Geraden in der zweiten Version, wobei jeweils das gleiche Suchmuster angewendet wer- den kann, sucht.
Es sei an dieser Stelle angemerkt, dass der Filterkern, der auch als Hough-Kern oder Hough-Core bezeichnet wird, entsprechend bevorzugten Ausführungsbeispielen auch eine Mehrzahl an Spalten mit je einem schaltbaren Verzögerungselement je Zeile aufweisen kann, um eine Mehrzahl an unterschiedlichen Mustern (z.B. Gerade/Geradenabschnitt. ein Ellipsenabschnitt, eine ganze Ellipse, einen Kreis und/oder eine Gerade bzw. ein Segment einer Ellipse, eines Kreises oder einer Geraden) zu detektieren. Durch die Mehrzahl an Spalten können verschiedene Ausprägungen des Musters detektiert werden, bei einem Kreissegment können beispielsweise verschiedene Krümmungen und bei einer Geraden verschiedene Steigungen abgebildet werden. Ein vorbestimmtes Muster ist beispielsweise dann erkennbar, wenn die Summe über die einzelnen Verzögerungselemente innerhalb einer Spalte maximal ist bzw. einen vorbestimmten Schwell wert überschreitet. Durch das Schalten der einzelnen Verzögerungselemente erfolgt entsprechend weiteren Ausführungsbeispielen die Einstellung der Filtercharakteristik. Um dieses Schalten im laufenden Betrieb des Hough- erns durchzuführen, kann z.B. ein Multiplexer zu Hilfe genommen werden.
Entsprechend weiteren Ausführungsbeispielen kann der Pre-Prozessor dazu ausgebildet sein, das Bild um 360°/n zu drehen und n Versionen des Bildes parallel an mehrerer Hough-Kerne oder in Serie an einen auszugeben oder das Bild um 360°/n zu drehen und dann diese Versionen zu spiegeln, und dann die gedrehten und die gespiegelten Versionen auszugeben. Dadurch, dass ein Teil der Hough- Verarbeitung, der für die Detektion verschiedener Muster gleich ist, vorgelagert ist, wird die Performance gesteigert. Dies ermöglicht eine Echtzeitfähigkeit bei gleichzeitigem Geringhalten des Ressourcenverbrauchs auch bei der Implementierung auf herkömmliche Prozessoren, oder insbesondere auf FPGAs. Insofern ist ein derartig mittels FPGA-Architektur implementierter Hough- Prozessor ausgebildet, die oben beschriebene Verarbeitung für mehrere Samples nacheinander durchzuführen.
Entsprechend weiteren Ausführungsbeispielen ist die Hough-Transformationseinrichtung dazu ausgebildet, das Detektionsergebnis in Form eines mehrdimensionalen Hough-Raums auszugeben, der Informationen über die erfassten Muster, wie z.B. die Position (in x-, y- Koordinaten, vgl. Bildkoordinaten des transformierten Bildes), eine Größe (oder einen Durchmesser) des erkannten Merkmals oder eine eventuelle Verkippung des Merkmals, umfasst. Ferner kann auch ein Maß für die Übereinstimmung mit der gesuchten Struktur ausgegeben werden.
Entsprechend weiteren Ausführungsbeispielen kommt eine sogenannte Non-Maxima- Supprcssion zum Einsatz, die lokale Maxima im mehrdimensionalen Hough-Raum mit Hilfe vordefmierter oder dynamisch angepasster Schwell werte extrahiert. Also wi d ein Hough-Merkmal dann vom Extrahierer extrahiert, wenn es ein lokales Maximum ist und die Schwellenwerte überschreitet.
Entsprechend weiteren Ausführungsbeispielen kann der Hough-Prozessor mit einer nachgelagerten Verarbeitungseinrichtung verbunden sein, die beispielsweise Mittel zur Steue- rang der einstellbaren Verzögerungszeit bzw. der Verzögerungselemente der Hough- Transformationseinrichtung aufweist. Entsprechend weiteren Ausfuhrungsbeispielen kann der Hough-Prozessor Teil eines Bildanalysesystems sein, wobei die oben angesprochene Verarbeitungscinheit ausgebildet ist. das detektierte Muster zu analysieren und als Analyseergebnis einen Geometrieparametersatz, der die Geometrie des einen Musters oder mehreren vordefinierten Mustern be- schreibt, auszugeben.
Des Weiteren kann entsprechenden weiteren Ausführungsbeispielen die Verarbeitungseinrichtung einen Selektiv-adaptiven Datenprozessor aufweisen, der ausgebildet ist, eine Glättung eines aus dem Hough-Raum berechneten Parameters (z.B. die Position der Ellipse) über mehrere Samples durchzuführen. Hierbei wird ein unplausibler Wert durch einen anderen ersetzt, der beispielsweise auf dem vorherigen basiert.
Ein weiteres Ausführungsbeispiel bezieht sich auf ein weiteres Bildanalysesystem, das zwei Hough-Pfade mit zwei Hough-Prozessoren aufweist, so dass zwei Bilddateien von zwei Kameras einer stereoskopischen Kameraanordnung gleichzeitig verarbeitet werden können. Hierzu kann dann das Bildanalysesystem auch einen 3 D-Bildanal ysator umfassen, der ausgebildet ist, eine Position und eine Ausrichtung (Blickwinkel) eines Objekts zu berechnen. Weitere Ausführungsbeispiele beziehen sich auf ein Verfahren für die Hough-Verarbeitung mit den Schritten des Vorverarbeitens einer Mehrzahl von Samples und des Erfassens eines vorbestimmten Musters unter Verwendung einer Hough-Transformationseinrichtung, wobei die Hough-Transformationseinrichtung einen Filter mit einstellbarer Filtercharakteristik aufweist.
A us tührungsbei spi el e der vorliegenden Erfindung werden nachfolgend anhand der beiliegenden Zeichnungen erläutert. Es zeigen:
Fig. 1 ein schematisches Blockschaltbild eines Hough- Prozessors mit einem Prc- Prozessor und einer Hough-Transformationseinrichtung gemäß einem Ausführungsbeispiel;
Fig. 2a ein schematisches Blockschaltbild eines Pre-Prozessors gemäß einem Ausführungsbeispiel;
Fig. 2b eine schematische Darstellung von Hough-Kemen zur Detektion von Geraden (abschnitten); Fig. 3 a ein schematisches Blockschaltbild einer möglichen Implementierung einer
Hough-Transfonnationseinrichtung gemäß einem Ausführungsbeispiel;
Fig. 3b einzelne Zelle einer Verzögerungsmatrix entsprechend einem Ausführungs- bei spiel;
Fig. 4a-d ein schematisches Blockschaltbild einer weiteren Implementierung einer Hough-Transformationseinrichtung entsprechend einem Ausfuhrungsbeispiel; 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 der Vorrichtung aus Fig. 5a durführbaren Blickwinkeldetektion und zur Erläuterung der Blickwinkeldetektion im monoskopischen Fall;
Fig. 6-7 weitere Darstellungen zur Erläuterung von zusätzlichen Ausführungsbeispielen bzw. Aspekten;
Fig. 8a-e schematische Darstellungen von optischen Systemen; und
Fig. 9a-9i weitere Darstellungen zur Erläuterung von Hintergrundwissen für die Hough-Transformationseinnchtung.
Nachfolgend werden Ausführungsbeispiele der vorliegenden Erfindung anhand der Figuren im Detail erläutert. Es sei darauf hingewiesen, dass gleiche Elemente mit gleichen Bezugszeichen versehen sind, so dass die Beschreibung derer aufeinander angewendet wer- den kann bzw. austauschbar ist.
Fig. 1 zeigt einen Hough-Prozessor 100 mit einem Pre-Prozessor 102 und einer Hough- Transfonriationseinrichtung 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, 1 10b 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 gekoppelt. Entsprechend dem Ausrührungsbeispiel aus Fig. 1 weist zumindest eines der Verzögerungsglieder 108a bis 108c bzw. 110a bis 1 10c 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 Steuerlogik steuert die Verzögerungszeit der einzelnen Verzögerungselemente 108a bis 108c bzw. 1 10a bis 1 10c über optionale schaltbare Elemente 109a bis 109 c bzw. l i l a bis 1 1 1 c, die beispielsweise einen Multiplexer und einen Bypass umfassen können. Die Hough- Transformationseinrichtung 104 kann ein zusätzliches Konfigurationsregister (nicht dargestellt) zur initialen Konfiguration der einzelnen Verzögerungselemente 108a bis 108c und 110a bis 1 10c umfassen.
Der Pre-Prozessor 102 hat die Aufgabe, die einzelnen Samples 112a, 112b 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 Bilddatei bzw. die mehreren Samples 1 12a, 112b und 112c 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-Transformationseinrichtung 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 1 2, die dem Zweck dient, mit einem Suchmuster bzw. einer 1 lough-Kernkonfiguration mehrere ähnliche Muster (steigende und fallende Gerade) zu detektieren, wird nachfolgend anhand des ersten Samples 1 12a erläutert.
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 nachgelagerter Hough- Transformation (vgl. Hough-Transformationseinriehtung 104) sehr effizient sein kann, nur eine 90°-Umdrehung durchzuführen. Auf diese Unteraspekte wird Bezug nehmend auf Fig. 2 eingegangen. Ferner kann das Bild 1 12a auch gespiegelt werden, um die gespiegelte Version 1 12a" zu erhalten. Der Vorgang des Spiegeins ist mit dem Bezugszeichen 1 16 versehen. Das Spiegeln 1 16 entspricht einem rückwärtigen Auslesen des Speichers. Sowohl ausgehend von der gespiegelten Version 1 12a" als auch von der gedrehten Version 1 12a' kann eine vierte Version durch eine gedrehte und gespiegelte Version 1 12a"' erhal- ten werden, indem entweder der Vorgang 1 14 oder 1 16 durchgeführt wird. Auf Basis der Spiegelung 1 16 können dann zwei ähnliche Muster (z.B. nach rechts geöffneter Halbkreis und nach links geöffneter Halbkreis) mit derselben 11 o ugh - e nko n ti gu rat i on , wie nachfolgenden beschrieben, delektiert werden.
Die Hough-Transformationseinrichtung 104 ist dazu ausgebildet, um in der durch den Pre- Prozessor 102 zur Verfügung gestellten Version 1 12a bzw. 112a' (oder 1 12a" bzw. 1 12a'") 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 Segment einer Geraden zu detektieren. Hierzu ist die Filteranordnung entsprechend dem gesuchten vorbestimmten Muster konfiguriert. Abhängig von der jeweiligen Konfiguration werden manche der Verzögerungselemente 108a bis 108c bzw. 110a bis 110c aktiviert oder gebypassed. Infolgedessen werden bei Anlegen eines Bildstreifens des zu untersuchenden Bildes 1 12a bzw. 112a' an die Transformationseinrichtung 104 durch die Verzögerungselemente 108a bis 108c einige Pixel selektiv verzögert, was einer Zwischenspei cherung entspricht, und andere direkt zur nächsten Spalte 110 weitergeleitet. Durch diesen Vorgang werden dann gekrümmte oder schräge Geometrien„geradegebogen". Abhängig von der eingelesenen Bilddatei 1 12a bzw. 112a', bzw., um genau zu sein, abhängig von der von der Bildstruktur der angelegten Zeile des Bildes 112a bzw. 112a' 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. 1 1 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 erkennbar ist, ob eine der gesuchten Strukturen detektiert ist oder nicht, oder ob die Wahrschein- lichkeit 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 Krei- ses) 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 1 10c der jeweiligen Zeile 1 10 maßgeblich ist, sondern insbesondere die vorherigen Verzögerungsei ementc 108a, 108b und 108c in Kombination mit den nachfolgenden Verzögerungselementen 1 10a, 1 10b und i lOc. Entsprechend dem Stand der Technik sind derartige Strukturen bzw. Aktivierungen von Verzögerungselementen bzw. Bypass von vorneherein vorgegeben.
Über die variablen Verzögerangselemente 108a bis 108c bzw. 1 1 Oa bis 1 10c (Verzöge- rungselemente) kann die gesuchte Ausprägung (also z.B. der Radius oder der Anstieg) im laufenden Betrieb angepasst werden. Da die einzelnen Spalten 108 und 1 10 miteinander gekoppelt sind, erfolgt bei Anpassen der Verzögerungszeit eines der Verzögerungselemente 108a bis 108c bzw. 1 10a bis 1 10c eine Veränderung der gesamten Filtercharakteristik des Filters 106. Durch die flexible Anpassung der Filtercharakteristik des Filters 106 der Hough-Transformationseinrichtung 104 ist es möglich, den Transformationskern 106 während der Laufzeit anzupassen, so dass beispielsweise dynamische Bildinlialte, wie z.B. für kleine und große Pupillen, mit demselben Hough- ern 106 erfasst und getrackt werden können. Auf die genaue Implementierung, wie die Verzögerungszeit angepasst werden kann, wird in Fig. 3 c eingegangen. Um nun dem Hough-Prozessor 100 bzw. der Transfor- mationseinrichtung 104 mehr Flexibilität zu ermöglichen, sind bevorzugt alle Verzögerungselemente 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 herge- schaltet werden kann.
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 1 10c, wie z.B. mit einem Controller (nicht dargestellt) verbunden sein. Der Controller ist beispielsweise in einer nachge- schalteten 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 Ubereinstimmung des Bildinhaltes mit den gesuchten Mustern). Auf diesem Controller wird Bezug nehmend in Fig. 5a eingegangen.
Das oben genannte Ausführangsbeispiel 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-Transforrnation ohne Re- gressionen auskommt und sozusagen vollständig parallelisiert ist. Deshalb beziehen sich weitere Auslührungsbcispiele 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 1 10 eine parallele Verarbeitung bzw. eine sogenannte parallele Hough-Transformation möglich ist.
Fig. 2 zeigt den Pre-Prozessor 102, der zur Vorverarbeitung des Videodatenstroms 1 12 mit den Frames 112a, 1 12b und 112c dient. Der Pre-Prozessor 102 ist dazu ausgebildet, die Samples 112 als binäre Kantenbilder oder auch als Gradientenbilder zu empfangen und auf Basis dieser die Rotation 114 bzw. die Spiegelung 116 durchzuführen, um die vier Versio- nen 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. 2a 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. 112a zu 1 12a" und 112a' zu 112a'"). Um die Spiegelung 1 16 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 ( Paral lcl isierungsgrad ) und der Konfiguration derselben ab, wie insbesondere Bezug nehmend au Fig. 2b 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:
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"'. 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. 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.
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.
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. 2b zeigt zwei Hough- ernkonfigurationen 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-Kemkonfiguration 128 entspricht einem sogenannte Typ 1 Hough-Kern, während die Hough-Kemkonfiguration 130 einem sogenannten Typ 2 Hough-Kern entspricht. Wie an dem Vergleich der zwei Hough- Kernkon ti urat i onen 128 und 130 zu erkennen ist, stellt der eine die Inverse des anderen dar. Mit der ersten Hough-Kemkonfiguration 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 H o ugh- Kemk o n fi gu ra t i n 130 detektierbar ist. Um in den weiteren Bereichen eine Detektion zu ermöglichen, wird, wie oben beschrieben, die Hough- Kemkonfiguration 128 und 130 auf die rotierte Version des jeweiligen Bildes angewendet. Folglich kann dann mittels der Hough-Kemkonfiguration 128 der Bereich 1 r zwischen π/4 und null und mittels der Hough-Kemkonfiguration 130 der Bereich 2r zwischen π und 3π/4 erfasst werden.
Alternativ kann bei Einsatz nur eines Hough-Kerns (z.B. eines Typ 1 I lough-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-Kcrns auch nur ein Hough-Kern- Typ eingesetzt werden, der während des laufenden Betriebs so umkonfiguriert wird bzw. bei dem die einzelne Verzö gerangsei emente 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- ernen abgedeckt werden kann. Insofern wird klar, dass die jeweilige Hough-Kernkonfiguration bzw. die Wahl des Hough-Kern-Typs abhängig von dem Pre-Processing, welches durch den Pre-Prozessor 102 durchgeführt wird, ist.
Fig. 3a zeigt einen Hough-Kern 104 mit m Spalten 108, 110, 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, 110, 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 Anstieg des Geradenabschnittes.
Jede Zelle umfasst ein hinsichtlich Verzögerungszeit einstellbares Verzögerungselement, wobei in diesem Ausführungsbeispiel der Einstellmechanismus dadurch realisiert ist, dass jeweils ein schaltbares Verzögerungselement mit einem Bypass vorgesehen ist. Nachfolgend wird anhand von Fig. 3b der Aufbau einer einzelnen 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 Verzögerungselement 142 ge- leitet 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 andererseits über diesen Knotenpunkt 148 auch die nächste Zelle (z.B. 1 10a) angebunden ist. 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 Informati- onseingang 160a eine Konfigurationsinformation, die beispielsweise aus einer Konfigura- tionsmatrize stammt, welche im FPGA-internen BRAM 163 abgelegt ist. Diese Konfigurationsinformation kann ein spaltenweiser Bitstring sein und bezieht sich auf die Konfiguration mehrerer der (auch während der Transformation) konfigurierbaren Verzögerungs- Zellen (142+144) einer Spalte (108). 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 Enablesignal über einen weiteren Signal- eingang 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ögerangselemente bzw. insbesondere von der Größe einer Spalte abhängig ist. Dabei ist für jedes Spaltenclement 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 Zusam- menhang gibt die Größe der in dem FPGA implementierten Hough-Kern- Struktur die maximal mögliche Größe für Hough-Kemkonfigurationen vor. Werden beispielsweise kleinere Konfigurationen genutzt, sind diese vertikal zentriert und in horizontaler Richtung an Spalte 1 der Hough-Kern-Struktur ausgerichtet. Nicht genutzte Elemente der Hough-Kern- Struktur werden allesamt mit aktivierten Verzögerungselementen besetzt.
Die Auswertung der so mit den einzelnen Verzögerungszellen (142+144) bearbeitenden Datenströme erfolgt spaltenweise. Hierzu wird spaltenweise aufsummiert, um ein lokales Summenmaximum zu detektieren, welches eine erkannte gesuchte Struktur anzeigt. Die Summenbildung je Spalte 108, 1 10, 138, 140, 141 und 143 dient dazu, einen Wert, der repräsentativ für das Maß der Übereinstimmung mit der gesuchten Struktur ist, 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, 1 l Ov, 138v, 140v, 141 v bzw. 143v vorgesehen, die mit den jeweiligen Summengliedern 150 verbunden sind. Optional können zwischen den einzelnen Vergleichem 108v, HOv, 138v, 140v, 141v, 143 v der unterschiedlichen Spalten 108, 1 10, 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, 1 10, 138 oder 140 mit dem größten Maß der Übereinstimmung für eine Ausprägung des gesuchten Musters aus dem Filter her- ausgereicht. Bei Detektieren eines lokalen Maximums einer Spaltensumme (Vergleich vorherige, nachfolgende Spalte) kann auf das Vorliegen einer gesuchten Struktur geschlossen 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 umfasst 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 Übereinstimmung 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 gesuchte Struktur im Hough-Raum einfach lokalisiert und in den Bildbereich zurückgeführt werden kann.
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 Hough-Kern-Zelle alternativ denkbar.
Nachfolgend wird Bezug nehmend auf Fig. 5a eine Anwendung der oben beschriebenen Vorrichtung erläutert in einem Bildverarbeitungs-System 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 1 ()a 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 Kanten- detektor 12b und Mittel zur Kamerasteuerung 12c umfassen. Die Mittel zur Kamerasteuerung 12c sind mit der Bildschnittstelle 12a und der Kamera 14 verbunden und dienen dazu Faktoren wie Belichtungszeit und/oder Verstärkung zu steuern.
Der Bildprozessor 10a umfasst des Weiteren einen sogenannten Hough-Feature-Extraktor 16, der dazu ausgebildet ist, den mehrdimensionalen Hough-Raum, der durch die Hough- Transi rmationseinrichtung 104 ausgegeben wird und alle relevanten Informationen für die Mustererkennung umfasst, zu analysieren und au 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 Mustererkennung). 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 Schwell werte 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.
Die analytische Rücktransformation der Parameter aller verbleibenden Punkte in dem Originalbildbereich 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 Nachverarbei- tungseinrichtung 18 ausgegeben.
Diese Nachverarbeitungseinrichtung kann beispielsweise als eingebetteter Prozessor realisiert sein und je nach Anwendung unterschiedliche Untereinheiten aufweisen, die nachfolgend exemplarisch erläutert werden. Die N ach verarbei t ungsei nri chtung 18 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 G eo m et r i eparam et er, 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 detektieren und auszuwählen. Dabei fließen Kriterien, wie das Maß der Übereinstimmung mit der gesuchten Struktur bzw. der Hough-Features, die Krümmung der Hough-Features bzw. das vorbestimmte zu detektie- rende Muster, die Lage und Orientierung der Hough-Features ein. Die ausgewählten Hough-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 erfolgt. 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. Des Weiteren umfasst die Nachverarbeitungseinrichtung 18 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 Controller 204 typischerweise mit dem Geometrieumwandler 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-Kerns) beginnt und nachgeführt wird, sobald die Erkennung 202 unzureichende Ergebnisse liefert. Am oben diskutierten Beispiel der Pupillen bzw. Ellip- sendetektion 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.
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 bei- spielsweise eine Glättung der Datenreihe durzuführen. Deshalb ist der Selektiv-adaptive Datenprozessor 300 ausgebildet, um mehrere Sätze von Werten, die durch den Geometrieumwandler 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 unplau- sible 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) weitergeleitet und die Datenwerte unplausibler Sätze (die Ausreißer oder Aussetzer enthalten) durch Datenwerte eines plausiblen Satzes, z. B. den vorherigen Da- tenwert 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), /.. 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 fuhren. 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 Schwellwerten, 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 Schwellwerten 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.
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 gewichtet als vergangene Werte. So kann bei Anwendung einer cxponenticllen Glättung der aktuelle Wert anhand folgender Formel bestimmt werden:
Aktuell geglätteter Wert = aktueller Wert x Glättungskoeffizient + letzter geglätteter Wert x ( 1 - Glättungskoeffizient) 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, passen 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 konfiguriert werden, wobei über diese Parameter das Glättungs- verhalten, z. B. maximale Dauer eines Aussetzers oder maximaler Glättungsfaktor, festgelegt werden. 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 Nach verarbei tungs- Vorrichtung 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 Daten reihen verarbeitete werden können.
Nachfolgend werden die oben anhand von einem konkreten Ausführungsbeispiel erläuterten Eigenschaften des selektiv-adaptiven Datenprozessor 300 allgemein beschrieben:
Der Datenprozessor 300 kann z. B. zwei oder mehr Eingänge sowie einen Ausgang aufweisen. Einer der Eingänge (empfängt den Datenwert und) ist für die Datenreihe die verar- beitet 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.
Ausreißer: Bei der Selektion werden Ausreißer (innerhalb der zu verarbeitenden Datenreihe) aussortiert und durch andere (intern ermittelte) Werte ersetzt. 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 andere (intern ermittelte) Werte ersetzt.
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) Koeffizienten erfolgen. Der Glättungskoeffizient wird an die Differenz des Pegels der zu verar- beitenden Daten angepasst.
Entsprechend weiteren Ausführangsbeispielen ist es auch möglich, dass die Nachverarbeitungsvorrichtung 18 einen Bildanalysator, wie z.B. einen 3D-Bildanalysator 400 umfasst. Im Falle eines 3 D-Bi ldanalysators 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 1 Ob eine stercoskopischc Kameraanordnung, wobei bevorzugterweise der Bild- prozessor 10b identisch mit dem Bildprozessor 10a ist.
Der 3D-Bildanalysator 400 ist 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 SD- Blickvektor zu berechnen. Hierzu umfasst der 3D-Bildanalysator 400 eine Positionsbe- rechnungseinrichtung 404 und eine Ausrichtungsberechnungseinrichtung 408. Die Positi- onsbereclinungseinrichtung 404 ist dazu ausgebildet, um eine Position des Musters in ei- nem dreidimensionalen Raum 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 zu berechnen. 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.
Hierzu kann beispielsweise ein sogenanntes 3 D-Kamerasystemmodel 1 hinzugezogen werden, das beispielsweise in einer Konfigurationsdatei alle Modellparameter, wie Lagepara- meter, optische Parameter (vgl. Kamera 14a und 14b) gespeichert hat.
Nachfolgend wird nun ausgehend von dem Beispiel der Pupillenerkennung die Gesamtfunktionalität des 3 D-Bildanal ysators 400 im Detail beschrieben. Das in dem 3D- Bildanalysator 400 gespeicherte oder eingelesene Modell umfasst Daten hinsichtlich der Kameraeinheit, d.h. hinsichtlieh 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).
Der 3D-Positionsberechner 404 berechnet die Augenposition bzw. den Pupillenmittelpunkt auf Basis der zwei oder auch mehreren Kamerabilder (vgl. 14a und 14b) durch Triangulation. Hierzu bekommt er 2D-Koordinaten eines Punktes in den zwei Kamerabildern (vgl. 14 a und 14b) über die Prozesskette aus Bildprozessoren 10a und 10b, Geometrieumwand- ler 202 und Selektiv- adaptiver Datenprozessor 300 zur Verfügung gestellt. Aus den über- gebenen 2 D-Koordinaten werden mithilfe des 3 D-Kameramodells insbesondere unter Berücksichtigung der optischen Parameter für beide Kameras 10 a und 1 Ob die Lichtstrahlen berechnet, die den 3D-Punkt als 2D-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-Punktes angenommen. Diese 3D-Position wird zusammen mit einem Fehlermaß, das die Genauigkeit der übergebenen 2D- Koordinatcn in der Verbindung mit den Modellparametern 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 Kalibrie- rung und ohne Kenntnis über den Abstand zwischen den Augen und Kamerasystem bestimmen. Hierzu nutzt der Blickrichtungsberechner 408 neben der 3D-Lageparameter der Bildsensoren die Ellipsenparameter, die mittels des Geometrieanalysators 202 ermittelt sind und die mittels des Positionsberechners 404 bestimmte Position. Aus der 3D-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 Sensoren berechnet, so dass zwei virtuelle Ellipsen entstehen. Aus den Parametern der virtuellen Ellipse können die beiden Sensoren jeweils zwei Blickpunkte des Auges auf einer beliebigen zur jeweiligen virtuellen Sensorebene parallelen Ebene berechnet werden. Mit den vier Blickpunkten und den 3 D-Pupillenmittelpunkten lassen sich vier Blickrichtungsvektoren berechnen, also jeweils zwei Vektoren pro Kamci a. 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 3 D-Berechnung liegt darin, dass eine berührungslose und vollständige kalibrierungsfreie Ermittlung der 3D-Augenposition der 3D-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 3D-Raummodells ermöglicht eine beliebige Kameraanzahl (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 sind auch die sogenannten Zeitregime fest, so dass die Zeitdifferenzen zwischen aufeinanderfolgenden Ergebnissen konstant sind. Entsprechend einer alternativen Variante ist es auch möglich mit nur einer Kamera ebenfalls eine Blickrichtungsbestimmung durchzuführen, wie nachfolgend anhand von Fig. 5b erläutert.
In der bisherigen Beschreibung zum„3D-Bildanalysator", welche das Verfahren zum ka- librationsfreien Eyetracking umfasst, wurden 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 Kamera und 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 Eyetracking 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 anhand von Fig. 5b erläutert. Fig. 5b zeigt den sichtbarer Teil des Augapfels (grün umrandet) mit der Pupille und den beiden möglichen Blickrichtungen vi und v2.
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 aus- zuwählen. 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:
Entsprechend einer ersten Möglichkeit kann eine(die weiße Lederhaut um die Iris) im Ka- merabild 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 zwi- sehen 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 in- nerhalb 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 Pupillenmittelpunkt 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 aufgenommenen Auge gehörende Gesicht zu weit von der Kamera abgewendet ist (also der Winkel zwischen op- tischer Achse der Kamer und dem senkrecht auf der Gesichtsebene stehenden Vektor zu groß wird).
Entsprechend einer dritten Möglichkeit kann eine Auswertung der Lage des Pupillenmittelpunktes zu einem Rcferenzpupillenmittelpunkt erfolgen. Die Lage des im Kamerabild ermittelten Pupillenmittelpunktes innerhalb des sichtbaren Teils des Augapfels bzw. innerhalb der Augenöffnung kann zusammen mit einem Rcferenzpupillenmittelpunkt 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 Ka- merabild des Auges projiziert und verlaufen dort jeweils vom Pupillenmittelpunkt zum Bildrand. Der Referenzpupillenmittelpunkt innerhalb der Augenöffnung entspricht dem Pupillenmittelpunkt, wenn das Auge direkt in Richtung des Kamerasensormittelpunktes der zur Bildaufnahme eingesetzten Kamera schaut. Derjenige in das Kamerabild projizierte Strahl, welcher im Bild den geringsten Abstand zum Referenzpupillenmittelpunkt hat, ge- hört zum tatsächlichen Blickrichtungsvektor. Zur Ermittlung des Referenzpupillenmittelpunktes gibt es mehrere Möglichkeiten, von denen einige im Folgenden beschrieben werden: 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.
Möglichkeit 2 (allgemeiner Anwcndungsfall): Als Schätzung der Position des Referenzpupillenmittelpunktes 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, parallel zur Sensorebene der Kamera liegt. Diese Einschränkung kann kompensiert werden, wenn die Neigung der Gesichtsebene zur Kamerasensorebene bekannt 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. Möglichkeit 3 (allgemeiner Anwendungsfall): Wenn die 3D-Position des Augenmittelpunktes zur Verfügung steht, kann eine Gerade zwischen 3 D- Augenmittelpunkt und virtuellem Sensormittelpunkt bestimmt werden und deren Schnittpunkt mit der Oberfläche des Augapfels. Der Referenzpupillenmittelpunkt ergibt sich aus der ins Kamerabild umgerechneten Position dieses Schnittpunktes.
Entsprechend weiteren Ausführungsbeispielen kann anstelle des FPGAs 10a und 10b ein ASIC (anwendungsspezifischer Chip) eingesetzt werden, der besonders bei hohen Stückzahlen sehr kostengünstig zu realisieren ist. In Summe lässt sich jedoch feststellen, dass unabhängig von Implementierung des Hough-Prozessors 10a und 10b ein geringer Ener- gieverbrauch durch die sehr effiziente Verarbeitung und den damit verbundenen geringen Systemtaktbedarf erzielt werden kann.
Trotz dieser Merkmale bleibt der hier eingesetzte Hough-Prozessor bzw. das auf dem Hough-Prozessor ausgeführte Verfahren sehr robust und störunanfallig. Es sei an dieser Stelle angemerkt, dass der in Fig. 1 erläuterte Hough-Prozessor 100 in unterschiedlichen
Kombinationenmit Merkmalen, wie sie z.B. in Hinblick auf Fig. 5a vorgestellt wurden, eingesetzt werden kann.
Anwendungen des Hough-Prozessors gemäß Fig. 1 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. Verdeck ung der Pupille oder Iris als Maß für den Augenöffnungsgrad) und unter Berücksichtigung der Blickpunkte und des Fokus ein bestimmtes Müdigkeits- muster dctektiert 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 lnputparametcr genutzt. Eine konkrete Anwendung wäre hierbei die 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 3D-Visualisierung durch Einbeziehung der Blickrichtung, bei Markt- und Medienforschung oder bei ophthalmologischen Diagnostiken und Therapien besonders interessant. Wie oben bereits angedeutet, ist die Implementierung des oben vorgestellten Verfahrens plattformunabhängig, so dass das oben vorgestellte Verfahren auch auf anderen Einheiten, wie z.B. einem PC ausgeführt werden kann. Also bezieht sich ein weiteres Ausführungsbeispiel auf ein Verfahren für die Hough- Verarbeitung 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 Mustersatz eingestellt wird.
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. Fig. 4a zeigt eine Verarbeitungskette 1000 einer schnellen 2D Korrelation. Die Verarbeitungskette der 2D Korrelation umfasst zumindest die Funktionsblöcke 1 105 zur mehrfachen 2D-Faltung und 1 1 10 zur Verschmelzung. Das Vorgehen bei der mehrfachen 2D- Faltung ist in Fig. 4b illustriert. Fig. 4b zeigt eine 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 Ergebnisbil- der noch eine Maximunisuche erfolgt. Jedes Ergebnisbild enthält pro Pixel ein Houghfea- ture. Nachfolgend wird diese Hough-Verarbeitung im Gesamtkontext erläutert.
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-Verarbeitung, welche insbesondere für eine PC-basierte Umsetzung prädestiniert ist, ein Teil der Verarbeitung durch eine andere Vorgehensweise ausgetauscht werden. 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 Summenwert gibt ein Maß für die Übereinstimmung 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 Templates 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 Bild Verarbeitung auch als Korrelation bezeichnet. Man erhält also für jedes Template einen Korrelationswert - also ein Maß für die Ubereinstimmung - mit dem darunterliegenden Biklinhalt. Diese entsprechen sozusagen den Spaltensummen aus dem bisherigen Ver- zö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 wurde, vollständig beschreiben.
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 Templatenummer enthält - also pro Pixel ein Houghfeature. 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 Anwendung „Sekundenschlafwarnung" zu nennen, auf die nachfolgend näher eingegangen wird. Der Sekundenschlafwarner ist ein System, dass zumindest aus einer Bilderfassungseinrichtung, 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 Abgelenktheit des Nutzers zu erkennen und den Nutzer zu warnen.
Das kann 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 besteht derzeit aus einem Multifrequenzbuzzer und einer RGB-LED.
Die Auswertung des aufgezeichneten Bildes kann i 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.
Aufbauend darauf kann im darauffolgenden Schritt wird eine modellbasierte Augen- feinanal yse 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 getrackt werden, sodass sie nicht in jedem Bild vollständig neu gesucht werden müssen.
Die zuvor beschriebenen Hough-Features können genutzt werden um die Gesichtsdetekti- on oder die Augendetektion oder die Augenanalyse oder die Augenfeinanalyse durchzuführen. Der zuvor beschriebene 2D-Bildanalysator kann zur Gesichtsdetektion oder zur Augendetektion oder zur Augenanalyse genutzt werden. Zur Glättung der bei der Ge- sichtsdetektion oder Augendetektion oder Augenanalyse oder Augenfeinanalyse ermittelten Ergebniswerte oder Zwischenergebnisse bzw. Werteverläufe kann der beschriebene Adaptiv-selektive Datenprozessor genutzt werden.
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 SD- Bildanal ysator beschriebene kalibrationstreie 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ßerdem der Adaptiv-selektive Datenprozessor genutzt werden.
Das im Ausführungsbeispiel „Sekundenschlafwamer" beschriebene Vorgehen zur Be- Stimmung der Augenposition kann auch zur Bestimmung einer beliebigen anderen Definierten 2D-Position, wie z. B. einer Nasenposition, oder Nasenwurzelposition, in einem Gesicht genutzt werden.
Bei der Nutzung eines Satzes an Informationen aus einem Bild und eines weiteren Satzes an Informationen kann diese Position auch im 3D-Raum bestimmt werde, wobei der weitere Satz an Informationen aus einem Bild einer weiteren Kamera oder durch die Auswertung von Relationen zwischen Objekten im ersten Kamerabild generiert werden kann.
Entsprechend einem Ausführungsbeispiel kann der Hough-Prozessor in der Bildeingangs- stufe eine Einrichtung zur Kamerasteuerung umfassen.
Obwohl manche Aspekte im Zusammenhang mit einer Vorrichtung beschrieben wurden, versteht es sich, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, so dass ein Block oder ein Bauelement einer Vorrichtung auch als ein ent- sprechender 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 Verfahrensschritte 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 ßlu-ray Di sc. einer CD, eines ROM, eines PROM, eines EPROM, eines E EP ROM oder eines F L A S H - S ei chers , einer Festplatte oder eines anderen magnetischen oder optischen Speichers durchgefü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 eomputerlcsbar 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.
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 Computerprogrammprodukt auf einem Computer abläuft.
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.
Mit anderen Worten ist ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens somit ein Computerprogramm, das einen Programmcode zum Durchführen eines der hierin be- schri ebenen Verfahren aufweist, wenn das Computerprogramm auf einem Computer abläuft.
Ein weiteres Ausrührungsbeispiel der erfindungsgemäßen Verfahren ist somit ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren aufgezeichnet ist. Ein weiteres Ausführungsbeispiel des erfindungsgemäßen Verfahrens ist somit ein Datenstrom oder eine Sequenz von Signalen, der bzw. die das Computerprogramm 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.
Ein weiteres Ausführungsbeispiel umfasst eine Verarbeitungseinrichtung, beispielsweise einen Computer oder ein programmierbares Logikbauelemcnt, die dahin gehend konfigu- riert 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 Computerprogramm 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.
Bei manchen Ausführungsbeispielen kann ein programmierbares Logikbauelement (beispielsweise ein feldprogrammierbares Gattcrarray. 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ührungsbeispielen 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 AS IC.
Nachfolgend werden die oben beschriebenen Erfindungen bzw. die Aspekte der Erfindungen aus zwei weiteren Blickwinkeln mit anderen Worten beschrieben: integrated Eyetracker Der„Integrated Eyetracker" umfasst eine Zusammenstellung an FPGA-optimierten Algorithmen, die dazu geeignet sind (Ellipsen-)Merkmale (Hough-Features) mittels einer parallelen Hough-Transformation aus einem Kamera-Livebild zu extrahieren. Durch Auswertung der extrahierten Merkmale kann anschließend 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.
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. Problemstellung
Robuste Detektion von 3D-Augenpositionen und 3 D-Blickrichtungen im 3D-Raum in mehreren (Live-) Kamerabildern sowie Detektion der Pupillengrößen
Sehr kurze Reaktionszeit (bzw. Verarbeitungszeit)
Kleine Bauform
- autonome Funktionsweise (Unabhängigkeit vom PC) durch integrierte Lösung
Stand der Technik
Eyetracker-Systeme
o Steffen Markert: Blickrichtungserfassung des menschlichen Auges in Echt- zeit (Diplomarbeit und Patent DE 10 2004 046 617 AI)
o Andrew T. Duchowski: Eye Tracking Methodology: Theory and Practice Parallele-Hough Transformation
o Johannes Katzmann: Eine Echtzeit-lmplementierung für die Ellipsen- Hough-Transformation (Diplomarbeit und Patent DE 10 2005 047 160 B4) o Christian Holland-Neil: Implementierung eines Pupillen-
Detektionsalgorithmus basierend auf der Hough-Transformation für Kreise (Diplomarbeit und Patent DE 10 2005 047 160 B4)
Nachteile des aktuellen Standes der Technik
Eyetracker-Systeme
o Nachteile: Eyetracking-Systeme erfordern im Allgemeinen eine (aufwändige) Kalibrierung vor der Nutzung
Das System nach Markert (Patent DE 10 2004 046 617 AI) ist kalib- rationsfrei, funktioniert aber ur unter ganz bestimmten Vorausset- zungen:
1. Abstand zwischen Kameras und Pupillenmittelpunkt müssen bekannt und im System hinterlegt sein
2. Das Verfahren funktioniert nur für den Fall, dass der 3D Pupillenmittelpunkt in den optischen Achsen der Kameras liegt ■ Die gesamte Verarbeitung ist für PC Hardware optimiert und somit auch deren Nachteilen unterworfen (kein festes Zeitregime bei der Verarbeitung möglich)
H 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) Parallele-Hough Transformation
o Nachteile:
* Es können nur binäre Kantenbilder transformiert werden
■ Transformation liefert nur ein binäres Ergebnis bezogen auf eine
Bildkoordinate (Position der Struktur wurde gefunden, aber nicht: Trefferwahrscheinlichkeit und weitere Strukturmerkmale)
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)
Keine Rekonfiguration des Transformationskernes auf andere Strukturen während der Laufzeit möglich und damit begrenzte Eignung für Objekterkennung
Umsetzung
Das Gesamtsystem ennittelt 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 31) Blickrichtung und der Pupillendurchmesser vollständig kalibrationsfrei ermittelt werden. Als Hardwareplattforrn wir eine Kombination aus mindestens zwei Bildsensoren, FPGA und/oder nachgeschaltetem Mikroprozessorsystem (ohne dass ein PC zwingend benötigt wird).
„Hough preproeessing".„Parallel hough transform",„Hough feature extractor",„Hough feature to ellipse converter"„,Coresize control",„Temporal smart smoothing Ii her",„3D camera System model",„3D position calculation" und ..31) gaze direction calculation" be- treffen einzelne Funktionsmodule des Integratcd Eyetrackers. Sie ordnen sich in die Bildverarbeitungskette des Integrated Eyetrackers wie folgt ein:
Fig. 6 zeigt ein Blockschaltbild der einzelnen Funktionsmodule im Integrated Eyetracker. Das Blockschaltbild zeigt die einzelnen Verarbeitungsstufen des Integrated Eyetrackers. Im Folgenden wird eine detaillierte Beschreibung der Module gegeben.
• „Hough preprocessing"
o Funktion
Aufbereitung eines Videodatenstromes für das Modul„Parallel Hough Transform", insbesondere durch Bildrotation und Up- sampling des zu transformierenden Bildes je nach Parallelisierungsgrad des Moduls„Parallel Hough Transform" o Input
Binäres Kantenbild oder Gradientenbild
o Output
Je nach Parallelisierungsgrad des nachfolgenden Moduls ein oder mehrere Videodatenströme mit aufbereiteten Pixeldaten aus dem Input
o Detaillierte Beschreibung
Prinzip bedingt kann die parallele Hough-Transformation aus vier um jeweils 90° versetzten Hauptrichtungen auf den Bildinhalt angewendet werden
Dazu erfolgt im Preprocessing eine Bildrotation um 90°
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)
Je nach P a r a 11 e I i s i eru n gs g rad des Moduls ergeben sich die folgenden drei Konstellationen für den Output:
• 100% Parallelisierung: simultane Ausgabe von vier Videodatenströmen: um 90° rotiert, nicht rotiert sowie jeweils gespiegelt
• 50% Parallelisierung: Ausgabe von zwei Videodatenströmen: um 90° rotiert und nicht rotiert, die Ausgabe der jeweils gespiegelten Varianten erfolgt sequentiell
• 25%o Parallelisierung: Ausgabe eines Videodatenstromes: um 90° rotiert und nicht rotiert und jeweils deren gespiegelte Varianten werden sequentiell ausgegeben
• „Parallel hough transfonn"
o Funktion 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
o Input
Für die parallele Hough Transformation aufbereitetes Kanten bzw.
Gradientenbild (Output des„Hough preprocessing" Moduls) o Output
Mehrdimensionaler Houghraum, der alle relevanten Parameter der gesuchten Struktur enthält
o Detaillierte Beschreibung
Verarbeitung des Input durch ein komplexes delaybasiertes lokales Filter, das eine definierte„Durchlaufrichrung" für Pixeldaten hat und durch folgende Eigenschaften geprägt ist:
· Filterkern mit variabler Größe bestehend aus Delayelemen- ten
• Zur adaptiven Anpassung des Filters an die gesuchten Muster können Delayelemente während der Laufzeit zu- und abgeschaltet werden
· Jede Spalte des Filters steht für eine bestimmte Ausprägung der gesuchten Struktur (Krümmung oder Geradenanstieg) β Summenbildung über die Filterspalten liefert Auftrittswahrscheinlichkeiten für die Ausprägung der Struktur, die durch die jeweilige Spalte repräsentiert wird
· 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
Für jedes Bildpixel liefert das Filter einen Punkt im Houghraum der die folgenden Informationen enthält:
· Art des Musters (z.B. Gerade oder Halbkreis)
• Auftrittswahrscheinlichkeit für das Muster
• Ausprägung der Struktur (Stärke der Krümmung bzw. bei Geraden: Anstieg und Länge)
• Lage bzw. Orientierung der Struktur im Bild ■ Als Transformationsergebnis entsteht ein mehrdimensionales Bild, das im folgenden als Houghraum bezeichnet wird ughfeature extractor"
o Funktion
■ Extraktion von Features aus dem Houghraum, die relevante Informationen für die Mustererkennung enthalten
o Input Mehrdimensionaler Houghraum (Output des„Parallel hough trans- form" Moduls)
o Output
* Liste von Hough-Features die relevante Informationen für die Mus- tererkennung enthalten
o Detaillierte Beschreibung
Glättung der Hough- Fcature-Räume (Räumliche Korrektur mittels lokaler Filterung)
„Ausdünnen" des Houghraumes (Unterdrückung nicht relevanter In- formationen für die Mustererkennung) durch eine abgewandelte
„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:
o Rauschunterdrückung durch Schwellwert im Hough- Wahrscheinlichkeitsraum
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)
Analytische Rücktransformation der Parameter aller verbleibenden Punkte in den Originalbildbereich ergibt folgende Hough-Features:
• Gebogene Strukturen mit den Parametern:
o Lage (x- und y-Bildkoordinate)
o Auftrittswahrseheinlichkeit des Hough-Features o Radius des Bogens
o Winkel, der angibt, in welche Richtung der Bogen geöffnet ist
• Geraden mit den Parametern:
o Lage (x- und y-Bildkoordinate)
o Auftrittswahrscheinlichkeit des Hough-Features o Winkel, der die Steigung der Geraden angibt o Länge des repräsentierten Geradenabschnittes
„Hough feature to ellipse Converter"
o Funktion Auswahl der 3 bis 4 Hough-Features (Krümmungen), die im Kamerabild am wahrscheinlichsten den Pupillenrand (Ellipse) beschreiben, und Verrechnung zu einer Ellipse
o input
■ Liste aller in einem Kamerabild delektierten Hough-Features
(Krümmungen)
o Output
Parameter der Ellipse, die am wahrscheinlichsten die Pupille repräsentiert
o Detaillierte Beschreibung
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
■ Dabei fließen folgende Kriterien in die Auswahl der Hough-Features ein:
• Scores (Wahrscheinlichkeiten) der Hough-Features
• Krümmung der Hough-Features
• Lage und Orientierung der Hough-Features zueinander " Die ausgewählten Hough-Feature Kombinationen werden sortiert:
• Primär nach der Anzahl der enthaltenen Hough-Features
• Sekundär nach der kombinierten Wahrscheinlichkeit der enthaltenen Hough-Features
B 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
„Coresize control"
o Funktion
Dynamische Anpassung des Filterkernes (Hough-Core) der Parallelen Hough-Transformation an die aktuelle Ellipsengröße o Input
Zuletzt genutzte Hough-Core Größe
Parameter der Ellipse, welche die Pupille im entsprechenden Kamerabild repräsentiert
o Output
Aktualisierte Hough-Core Größe
o Detaillierte Beschreibung
In Abhängigkeit der Größe (Länge der I lalbachsen) der vom
„Hough feature to ellipse Converter" berechneten Ellipse, wird die Hough-Core Größe in definierten Grenzen nachgeführt um die Ge- nauigkeit der Hough-Transformationsergebnisse bei der Detektion der Ellipsenextrempunkte zu erhöhen
„Temporal smart smoothing filter"
o Funktion
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
o Input
Zu jedem Aufrufzeitpunkt des Moduls jeweils ein Wert der Datenreihe und die dazugehörigen Gütekriterien (z. B. Auftrittswahrscheinlichkeit einer gelitteten Ellipse)
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
B Der aktuelle Input-Wert wird für die Glättung verwendet, wenn er nicht in eine der folgenden Kategorien fällt:
• Entsprechend der dazugehörigen Auftrittswahrscheinlichkeit handelt es sich um einen Aussetzer in der Datenreihe
• Entsprechend der dazugehörigen Ellipsenparameter handelt es sich um einen Ausreißer
o Wenn die Größe der aktuellen Ellipse sich zu stark von der Größe der vorhergehenden Ellipse unterscheidet
o Bei einer zu großen Differenz der aktuellen Position zur letzten Position der Ellipse
Ist eines dieser Kriterien erfüllt, wird weiterhin der zuvor ermittelte geglättete Wert ausgegeben, andernfalls wird der aktuelle Wert zur Glättung herangezogen
Um eine möglichst geringe Verzögerung bei der Glättung zu erhalten werden aktuelle Werte stärker gewichtet als vergangene:
• aktueller geglättete Wert = aktueller Wert * Glättungskoeffi- zient + letzter geglätteter Wert * (1 - Glättungskoefflzient)
• der Glättungskoefflzient wird in definierten Grenzen dynamisch an den Trend der zu glättenden Daten angepasst: o Verringerung bei eher konstantem Werteverlauf der Datenreihe
o Erhöhung bei aufsteigendem oder abfallendem Werteverlauf der Datenreihe Wenn langfristig ein größerer Sprang bei den zu glättenden Ellipsenparametern vorkommt, passt sich das Filter und somit auch der geglättete Werteverlauf an den neuen Wert an „3D camera System model"
o Funktion
Modellierung des D-Raumes in dem sich mehrere Kameras, der Nutzer (bzw. dessen Augen) und ggf. ein Bildschirm befinden o Input
■ Konfigurationsdatei, welche die Modellparameter (Lageparameter, optische Parameter, u. a.) aller Elemente des Modells beinhaltet o Output
Stellt ein Zahlengerüst und Funktionen für Berechnungen innerhalb dieses Modells zur Verfügung
o Detaillierte Beschreibung
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
■ Das Modell umfasst zum jetzigen Zeitpunkt folgende Elemente:
• Kameraeinheiten, bestehend aus:
o Kamerasensoren
o Objektiven
• Augen
· 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
Mit Hilfe dieses Modells kann u. a. die 3 D-Blickgerade (bestehend aus Pupillenmittelpunkt und Blickrichtungsvektor (entsprechend der Biologie und Physiologie des menschlichen Auges korrigiert)) berechnet werden
■ Optional kann auch der Blickpunkt eines Betrachters auf einem anderen Objekt im 3 D- Modell (z. B. auf einem Display) berechnet werden sowie der fokussierte Bereich des Betrachters
,. D position calculation"
o Funktion
Berechnung der räumlichen Position (3 D-Koordinaten) eines Punktes, der von zwei oder mehr Kameras erfasst wird (z. B. Pupillenmittelpunkt) durch Triangulation Input
2D-Koordinaten eines Punktes in zwei Kamerabildern
Output
3 D-Koordinaten des Punktes
Fehlennaß: beschreibt die Genauigkeit der übergebenen 2D- Koordinaten in Verbindung mit den Modellparametern.
Detaillierte Beschreibung
Aus den übergebenen 2D-Koordinatcn werden mit Hilfe des„3D camera System modcl" ( insbesondere unter Berücksichtigung der oj)ti sehen Parameter) für beide Kameras die Lichtstrahlen berechnet, die den 3D-Punkt als 2D-Punkte auf den Sensoren abgebildet haben
Diese Lichtstrahlen werden als Geraden im 3D-Raum des Modells beschrieben
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
„3D gaze direction calculation"
o Funktion
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 o Input
3 D-Lageparameter der Bildsensoren
Ellipsenparameter der auf die beiden Bildsensoren projizierten Pupille
3 D-Positionen der Ellipsenmittelpunkte auf den beiden Bildsensoren
3 D-Position des Pupillenmittelpunktes
o Output
3D-Blickrichtung in Vektor- und Winkeldarstellung
o Detaillierte Beschreibung
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
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
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 Mit den vier Blickpunkten und dem 3 D-Pupillenmittelpunkt lassen sich vier Blickrichtungsvektoren berechnen (jeweils zwei Vektoren aus den Ergebnissen jeder Kamera)
Von diesen vier 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 directum) an, die dann vom Modul ,. D gaze direc- tion calculation" als Ergebnis geliefert wird
Berührungslose und vollständig kalibrationsfreie Ermittlung der SD- Augenpositionen, 3D-Blickrichtung und Pupillengröße unabhängig von der Kenntnis über die Lage des Auges zu den Kameras
Analytische Bestimmung der 3D Augenposition und 3D Blickrichtung (unter Einbeziehung eines 3D-Raum Modells) ermöglicht eine beliebige Kameraanzahl (>2) und beliebige Kamerapositionen im 3D-Raum
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 3A DSP @ 96 MHz) und kurze Latenzzeiten durch vollständig parallele Verarbeitung ohne Rekursionen in der Verarbeitungskette
Einsatz von FPGA-Hardware und Algorithmen, die für die parallelen FPGA- Strukturen entwickelt wurden
Einsatz der Hough-Transformation (in der beschriebenen angepassten Form für FPGA-Hardware) zur robusten Merkmalsextraktion zur Objekterkennung (hier: Merkmale der Pupillenellipse)
Algorithmen zur Nachverarbeitung der Houghtransformationsergebnisse sind optimiert auf parallele Verarbeitung in FPGAs
Festes Zeitregime (konstante Zeitdifferenz zwischen a u ei n an d er fo 1 gend en Ergebnissen)
Minimaler Bauraum, da vollständig auf Chip integriert
geringer Energieverbrauch
Möglichkeit zur direkten Portierung der Verarbeitung vom FPGA auf einen AS IC -> sehr kostengünstige Lösung bei hohen Stückzahlen durch Ausnutzung von Ska- leneffekten
Anwendung
In einem (Live-) Kamerabilddatenstrom werden D- Augenpositionen und SD- Blickrichtungen detektiert, die für folgende Anwendungen genutzt werden können: o Sichcrheitsrclcvantc Bereiche z. B. S ek u n d cn sch 1 a fw arner 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
o Mensch-Maschine-Schnittstellen
als Eingabeschnittstellen für technische Geräte (Augenpositionen und Blickrichtung können als Inputparameter genutzt werden)
Unterstützung des Nutzers beim Anschauen von Biklschirminhalten (z.B. hervorheben von Bereichen, die angeschaut werden)
z. B.
• im Bereich Assisted Living
• für Computerspiele
• Blickrichtungsgestützte Eingabe für Head Mounted Devices
• Optimierung von 3D-Visualisierungen durch Einbeziehen der Blickrichtung
o Markt- und Medienforschung
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
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 gekennzeiclinet, dass Sie für die Verarbeitung auf einem FPGA (field programmable gate array) optimiert sind und im Vergleich zu den bestehenden V erfahren ohne Rekursionen in der Verarbeitung auskommen. Die Algorithmen ermöglichen eine sehr schnelle Bildverarbeitung mit konstanter Bild w i cd erho 1 rat e, minimalen Latenzzeiten und minimalem Ressourcenverbrauch im FPGA. Damit sind diese Module prädestiniert für zeit-/latenz-/sicherheitskritische 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.
Problemstellung
Robuste und hardwarebasierte Gesichtsdetektion in einem (Live-) Kamerabild
Detektion von Gesichts und Augenposition im 3 D-Raum durch Verwendung eines stereoskopischen Kamerasystems
Sehr kurze Reaktionszeit (bzw. Verarbeitungszeit)
Kleine Bauform autonome Funktionsweise (Unabhängigkeit vom PC) durch integrierte Lösung
Stand der Technik
Literatur:
o Christian Küblbeek, Andreas Ernst: Face detection and tracking in vidco sequences using the modified census transformation
o Paul Viola, Michael Jones: Robust Real-timc Object Detection
Nachteile aktueller Facetraeker Systeme
- 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 Bildinhaltes z.B. Hintergrund dauert das Tracking unter Umständen länger))
Sequentielle Abarbeitung; das Eingangsbild wird sukzessive in verschiedene Ska- lierungsstufen gebracht (bis die kleinste Skalierungsstufe erreicht ist) und jeweils mit einem mehrstufigen Klassifikator nach Gesichtern durchsucht
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)
Ausgehend von der detektierten Gesichtsposition liefern Klassifikatoren nur unge- naue Augenpositionen (die Position der Augen - insbesondere der Pupillenmittelpunkt - wird nicht analytisch ermittelt (bzw. vermessen) und ist dadurch hohen Ungenauigkeiten unterworfen)
Die ermittelten Gesichts- und A Ligenpositionen liegen nur in 2D-Bildkoordinaten vor, nicht in 3D
Umsetzung
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.
Der„Parallel image scaler",„Parallel face linder",„Parallel eye analyzer",„Parallel pupil analyzer",„Temporal smart smoothing filter",„3D camera System model" und„3D positi- on calculation" betreffen einzelne Funktionsmodule des Gesamtsystems (FPGA-
Facetracker). Sie ordnen sich in die Bildverarbeitungskette des FPGA-Facetrackers wie folgt ein: Fig. 7 a 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 stereo- skopen Kamerasystems und Verrechnung geeigneter Punkte auf beiden Kameras zur Bestimmung räumlicher Positionen genutzt (beispielsweise zur Bestimmung der SD- Kopfposition bei Verrechung der 2D-Gesichtsmittelpunkte in beiden Kamerabildern). Das Modul ..Feature extraction (Classification)" des FPGA-Facctrackers baut auf der Merkmalsextraktion und Klassifikation von Küblbeck/Ernst vom Fraunhofer IIS (Erlan- gen) auf und nutzt eine angepasste Variante ihrer Klassifikation auf Basis von Census Merkmalen.
Das Blockschaltbild zeigt die einzelnen Verarbeitungsstufen des FPGA-Facetracking Systems. Im Folgenden wird eine detaillierte Beschreibung der Module gegeben. · „Parallel image scaler"
o Funktion
B Parallele Berechnung der Skalierungsstufen des Ausgangsbildes und Anordnung der berechneten Skalierungsstufen in einer neuen Bildmatrix um den nachfolgenden Bildverarbeitungsmodulen eine simul- tane Analyse aller Skalierungsstufen zu ermöglichen
Fig. 7b zeigt die Ausgangsbild (Originalbild) und Ergebnis (Downscaling-Bild) des Parallel image-scaler. o Input
Ausgangsbild in Originalauflösung
o Output
Neue Bildmatrix die mehrere skalierte Varianten des Ausgangsbildes in einer für die nachfolgenden Facetracking-Module geeigneten Anordnung beinhaltet
o Detaillierte Beschreibung
Aufbau einer Bildpyramide durch parallele Berechnung der verschiedenen Skalierungsstufen des Ausgangsbildes
Um eine definierte Anordnung der zuvor berechneten Skalierungs- stufen in der Zielmatrix gewährleisten zu können erfolgt eine Transformation der Bildkoordinaten der jeweiligen Skalierungsstufe in das Bildkoordinatensystem der Zielmatrix anhand verschiedener Kriterien:
• Definierter Mindestabstand zwischen den Skalierungsstufen um ein übersprechen von Analyseergebnissen in benachbarte
Stufen zu unterdrücken • Definierter Abstand zu den Rändern der Zielmatrix um die
Analyse zum Teil aus dem Bild herausragender Gesichter gewährleisten zu können · „Parallel face finder"
o Funktion
Detektiert ein Gesicht aus Klassifikationsergebnissen mehrerer Ska- licrungsstufen. die gemeinsam in einer Matrix angeordnet sind Wie in Fig. 7c gezeigt, stellt das Ergebnis der Klassifikation (rechts) den Input für den Parallel face finder dar.
o Input
■ Klassifizierte Bildmatrix die mehrere Skalierungsstufen des Ausgangsbildes enthält
o Output
■ Position, an der sich mit der höchsten Wahrscheinlichkeit ein Gesicht 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
■ Orientierung an der höchsten Auftrittswahrscheinlichkeit für ein Gesicht optional an der Gesichtsgröße über alle Skalierungsstufen hin- weg
■ Räumliche Mittelung der Ergebnispositionen über ausgewählte Skalierungsstufen hinweg
• 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
o Unterdrückung von Skalierungsstufen ohne Klassifi- kationsergebnis
■ Schwellwertbasierte Einstellung der Detektionsleistung des„parallel face finder"
• „Parallel eye analyzer"
o Funktion Detektiert 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)
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)
Output
Position der Augen und ein dazugehöriger Wahrscheinlichkeitswert im aktuell vom„Parallel face finder" gefundenen Gesicht
Detaillierte Beschreibung
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:
• Definieren des Augenbereichs aus empirisch ermittelten Normalpositionen der Augen innerhalb der Gesichtsregion
• Mit einem speziell geformten korrelationsbasierten lokalen Filter werden innerhalb des Augenbereichs Wahrscheinlichkeiten für das Vorhandensein eines Auges ermittelt (das Auge wird in diesem Bildbereich vereinfacht ausgedrückt als eine kleine dunkle Fläche mit heller Umgebung beschrieben)
• Die genaue Augenposition inklusive ihrer Wahrscheinlichkeit ergibt sich durch eine Maximumsuche in dem zuvor berechneten Wahrseheinliehkeitsgebirgc rallel pupil analyzer"
o Funktion
■ Detektiert 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)
o Input
Ausgangsbild in Originalauflösung sowie die ermittelten Augenpositionen und Gesichtsgröße (aus dem„Parallel eye analyzer" bzw. „Parallel face finder")
o Output
■ Position der Pupille innerhalb des ausgewerteten Bildes sowie ein
Status, der aussagt, ob eine Pupille gefunden wurde oder nicht o Detaillierte Beschreibung ■ Basierend auf den ermittelten Augenpositionen und der Gesichtsgröße wird ein zu bearbeitender Bildausschnitt um das Auge herum festgelegt
Über diese Bildmatrix hinweg wird ein Vektor aufgebaut, der die Minima der Bildspalten enthält, sowie ein Vektor, der die Minima der Bildzeilen enthält
Innerhalb dieser Vektoren (aus minimalen Grauwcrtcn) wird wie nachfolgend erklärt separat der Pupillenmittelpunkt in horizontaler und in vertikaler Richtung detektiert:
• Detektion des Minimums des jeweiligen Vektors (als Position innerhalb der Pupille)
• 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
• Die Mittelpunkte dieser Bereiche in den Beiden Vektoren bilden zusammen den Mittelpunkt der Pupille im analysierten Bild
„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 Input
Zu jedem Aufrufzeitpunkt des Moduls jeweils ein Wert der Datenreihe und die dazugehörigen Gütekriterien (beim Facetracking: Ge- sichtsscore und Downscalingstufe in der das Gesicht gefunden wurde)
o Output
Geglätteter Datenwert (z. B. Gesichtskoordinate)
o Detaillierte Beschreibung
■ Über einen Satz von Filterparametern kann beim Initialisieren des Filters dessen Verhalten festgelegt werden
■ Der aktuelle Input-Wert wird für die Glättung verwendet, wenn er nicht in eine der folgenden Kategorien fällt:
• Entsprechend dem dazugehörigen Score handelt es sich um einen Aussetzer in der Datenreihe
• Entsprechend der dazugehörigen Downscalingstufe handelt es sich um einen unsinnigen Wert (Wert, der in einer zu weit entfernten Downscalingstufe ermittelt wurde) • Entsprechend der zu großen Differenz zum letzten für die Glättung verwendeten Wert handelt es sich um einen Ausrei ßer
Ist eines dieser Kriterien erfüllt, wird weiterhin der zuvor ermittelte geglättete Wert ausgegeben, andernfalls wird der aktuelle Wert zur Glättung herangezogen
Um eine möglichst geringe Verzögerung bei der Glättung zu erhalten werden aktuelle Werte stärker gewichtet als vergangene:
• aktueller geglättete Wert = aktueller Wert * Glättungskocffi- zient + letzter geglätteter Wert * (1 - Glättungskoeffizient)
• 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
o Erhöhung bei aufsteigendem oder abfallendem Werteverlauf der Datenreihe
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
„3D camera system model"
o Funktion
Modellierung des 3 D-Raumes in dem sich mehrere Kameras, der Nutzer (bzw. dessen Augen) und ggf. ein Bildschirm befinden o Input
Kon figurationsdatei , welche die Modellparameter (Lageparameter, optische Parameter, u. a.) aller Elemente des Modells beinhaltet o Output
Stellt ein Zahlengerüst und Funktionen für Berechnungen innerhalb dieses Modells zur Verfügung
o Detaillierte Beschreibung
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
Das Modell umfasst zum jetzigen Zeitpunkt folgende Elemente:
• Kameraeinheiten, bestehend aus:
o Kamerasensoren
o Objektiven
• Augen
• 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 directum calculation" (zur Berechnung der Blickrichtung) zur Verfügung gestellt
In anderen Anwendungsfällen stehen auch folgende Funktionen zur Verfügung:
• Mit Hilfe dieses Modells kann u. a. die 3 D-Blickgerade (bestehend aus Pupillenmittelpunkt und Bliekrichtungsvektor (entsprechend der Biologie und Physiologie des menschlichen Auges korrigiert)) berechnet werden
• 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
„3D position calculation"
o Funktion
Berechnung der räumlichen Position (3D-Koordinaten) eines Punktes, der von zwei oder mehr Kameras erfasst wird (z. B. Pupillenmittelpunkt)
o Input
2D-Koordinaten eines Punktes in zwei Kamerabildern
o Output
" 3D-Koordinaten des Punktes
Fehlermaß: beschreibt die Genauigkeit der übergebenen 2D- Koordinaten in Verbindung mit den Modellparametern
o Detaillierte Beschreibung
Aus den übergebenen 2 D-Koordinaten werden mit Hilfe des„3D camera system model" (insbesondere unter Berücksichtigung der optischen Parameter) tür beide Kameras die Lichtstrahlen berechnet, die den 3 D-Punkt als 2D-Punkte auf den Sensoren abgebildet haben
Diese Lichtstrahlen werden als Geraden im 3 D-Raum des Models beschrieben
Der Punkt von dem beide Geraden den geringsten Abstand haben (im Idealfall der Schnittpunkt der Geraden) wird als Position des gesuchten 3D-Punktes angenommen
Vorteile
Ermittlung der Gesichtsposition und der Augenpositionen in einem (Live-) Kamerabild in 2D und durch Rückrechnung in den 3 D-Raum in 3D (durch Einbeziehen eines 3 D-Raum Modells) Die unter 3. Vorgestellten Algorithmen sind optimiert auf echtzeitfähige und parallele Verarbeitung in FPGAs
- Hohe Frameraten (60 FPS @ 640x480 auf einem XI LI NX Spartan 3A DSP @ 48 MHz) und kurze Latenzzeiten durch vollständig parallele Verarbeitung ohne Re- kursionen in der Verarbeitungskette -> sehr schnelle Bildverarbeitung und verzö- gerzugsarme Ausgabe der Ergebnisse
Minimaler Bauraum, da die gesamte Funktionalität mit einem Bauteil (FPGA) erreicht werden kann
geringer Energieverbrauch
- Festes Zeitregime (konstante Zeitdifferenz zwischen aufeinanderfolgenden Ergebnissen) und damit prädestiniert für den Einsatz in sicherheitskritischen Anwendungen
Möglichkeit zur direkten Portierung der Verarbeitung vom FPGA auf einen ASIC (application specific integrated cireuit) - sehr kostengünstige Lösung bei hohen Stückzahlen durch Ausnutzung von Skaleneffekten
Anwendung
- Vorteile bei der Anwendung im Vergleich zur Softwarelösung
o autonome Funktionsweise (System on Chip)
o Möglichkeit der einfachen Überführung in einen 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 Sicherheitsanwendungen
z.B. Sekundenschlafwamer im Automotive Bereich, durch Auswer- tung der Augen (Öffnungsgrad) und der Augen- und Kopfbewegung o Mensch-Maschine-Kommunikation
z.B. Eingabeschnittstellen für technische Geräte (Kopf- bzw. Augenposition als Inputparameter)
o Gaze-Tracking
■ z.B. Gesichts- und Augenpositionen als Vorstufe zur Blickrichtungsbestimmung (in Kombination mit„Integrated Eyetracker") o Marketing
z.B. Attraktivität von Werbung bewerten durch Auswertung von Kopf- und Augenparametern (u. a. Position) Nachfolgend wird anhand von zwei Darstellungen weiteres Hintergrundwissen zu den oben beschrieben Aspekten der Erfindungen offenbart.
Ein ausführliches Berechnungsbeispiel für diese Blickrichtungsberechnung wird nachfolgend anhand der Fig. 8a bis 8e beschrieben.
Berechnung des Pupillenmittelpunktes 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 E PK1 und EMP^ der Ellipse abgebildet. Daher kann durch stereoskopische Rückprojektion dieser beiden Ellipsenmittelpunkte EMpK1 und EMP10 mit Hilfe des Objek- tivmodells der 3 D-Pupillenmittelpunkt bestimmt werden. Optionale Voraussetzung dazu ist eine idealerweise zeitsynchrone Bildaufnahme, damit die von beiden Kameras abgebildeten Szenen identisch sind und somit der Pupillenmittelpunkt an der gleichen Position erfasst wurde.
Zunächst muss für jede Kamera der Rückprojektionsstrahl RS des Ellipsenmittelpunktes berechnet werden, welcher entlang des Knotenpunktstrahls zwischen dem Objekt und dem objektseitigen Knotenpunkt (Hl) des optischen System verläuft (Fig. 8a). RS(t) = RS„ + t■ RSti
(AI)
Dieser Rückprojektionsstrahl wird durch Gleichung (AI) definiert. Er besteht aus einem Anfangspunkt RSg und einem normierten Richtungsvektor RS„; , welche sich im genutzten Objektivmodell (Fig. 8b) durch die Gleichungen (A2) und (A3) aus den beiden Hauptpunkten Hi und Hi des Objektivs sowie dem Ellipsenmittelpunkt EMP in der Sensorebene ergeben. Dazu müssen alle drei Punkte (H ] , H2 und EMP) im Eyetracker-
Koordinatensystem vorliegen.
(A2) fl ij 1 1 2 - F MP
\H - F (A3)
Die Hauptpunkte lassen sich mit den Gleichungen
H2 = K0 + b - K, und /-/, - K() + (h + cl) - K,j direkt aus den Objektiv- und Kameraparametern berechnen (Fig. 8b), o der Mittelpunkt der Kamerasensoreben ist und der Normalvektor der Kamerasensorebene. Der SD- Ellipsenmittelpunkt im Kamerakoordinatensystem lässt sich aus den zuvor bestimmten Ellipsenmittelpunktparametern xm und ym , welche in Bildkoordinaten vorliegen, mittels Gleichung
errechnen. Dabei ist PBiid 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 SpxGr ist die Pixelgröße des Sensors.
Der gesuchte Pupillenmittelpunkt ist im Idealfall der Schnittpunkt der beiden Rückprojek- tionsstrahlen RSK1 und RSK2 . Mit praktisch ermittelten Modcllparametern und Ellipscnmit- telpunkten 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 Ge- raden 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.
Der kürzeste Abstand zwischen zwei windschiefen Geraden wird von einer senkrecht zu beiden Geraden stehenden Verbindungsstrecke angegeben. Der Richtungsvektor nSt Der senkrecht auf beiden Rückprojektionsstrahlen stehenden Strecke kann entsprechend Gleichung (A4) als Kreuzprodukt ihrer Richtungsvektoren berechnet werden. nSl = RS^l x RSn
(A4)
Die Lage der kürzesten Verbindungsstrecke zwischen den Rückprojektionsstrahlen wird durch Gleichung (A5) definiert. Durch Einsetzen von RSKI(s) , RSK2{t ) und nSt ergibt sich daraus ein Gleichungssystem, aus welchem s , t und u berechnet werden können.
(A5)
Der gesuchte Pupillenmittelpunkt P P, 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.
(A6)
Als Indikator für die Genauigkeit des berechneten Pupillenmittelpunktes P P kann zusätzlich die minimale Distanz dRs zwischen den Rückprojektionsstrahlen berechnet werden. Je genauer die Modellparameter und Ellipsenmittelpunkte waren, welche für die bisherigen Berechnungen genutzt wurden, desto geringer ist d s . dRS = u- \ nSl 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 Pfl benötigt, welche nachfolgend beschrieben wird.
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 /,. B. bei dem in der Patentschrift DE 10 2004 046 617 A 1 beschriebenen Verfahren erforderlich.
Berechnung des Blickrichtungsvektors Der zu bestimmende Blickrichtungsvektor Ρή entspricht dem Normalvektor der kreisförmigen Pupillen fläche und ist somit durch die Ausrichtung der Pupille im 3-D-Raum festgelegt. Aus den Ellipsenparametern, welche für jede der beiden ellipsenförmigen Projektio- nen 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. 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. 8e 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 perspekti- vische 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. 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.
Um den Blickrichtungsvektor /' 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 P P 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.
Die Lage und Ausrichtung eines solchen virtuellen Kamerasystems 804a' (vK in Fig. 8c) lässt sich aus den Parametern des originalen Kamerasystems 804a (K in Fig. 8b) durch Drehung um dessen objektseitigen Hauptpunkt /// berechnen. Dieser entspricht dadurch gleichzeitig dem objektseitigen Hauptpunkt vHj des virtuellen Kamerasystems 804a*. So- mit 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. Der normierte Normalvektor vK„ der virtuellen Kamera vK ergibt sich folgendermaßen:
(A8) Für das weitere Vorgehen ist es erforderlich, die Rotationwinkel 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 vK- zu erhalten. Durch Drehung des Einheitsvektor der x-Richtung sowie des Einheitsvektors der y-Richtung des Eyetracker-Koordinatensystems um die Winkel νΚθ , νΚφ und νΚψ können die Vektoren vKx und vK - berechnet werden, welche die x- und y-
Achse des virtuellen Sensors im Eyetracker-Koordinatensystem angeben.
Um die Lage des virtuellen Kamerasystems 804a" (Fig. 8c) zu erhalten, muss dessen Orts- vektor bzw. Koordinatenursprung vK0, welcher gleichzeitig der Mittelpunkt des Bildsensors ist, mittels Gleichung (A9) so berechnet werden, dass er im Knotenpunktstrahl des Pupillenmittelpunktes PMP liegt. vK, = vHx - (d+b) - vKn
(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.
Weiterhin ergibt sich die Lage des bildseitigen Hauptpunktes aus Gleichung (A10). vH2 = vH} - cl vKn
(MO)
Zur Berechnung der Pupillenprojektion auf dem virtuellen Sensor 804a' werden zunächst Randpunkte RPiD der zuvor ermittelten Ellipse auf dem Sensor in Originallage benötigt.
Diese ergeben sich aus den Randpunkten RP2D der Ellipse E im Kamerabild, wobei entsprechend Fig. 8d Ea die kurze Halbachse der Ellipse ist, Eb die lange Halbachse der Ellipse, Ex und Ey die Mittelpunktkoordinaten der Ellipse und Ea der Rotationswinkel der Ellipse. Die Lage eines Punktes RPyD im Eyetracker-Koordinatensystem kann durch die Gleichungen (AI 1) bis (A14) aus den Parametern der Ellipse E , des Sensors S und der Kamera K berechnet werden, wobei co die Lage eines Randpunktes RP2D entsprechend Fig. 8d auf dem Ellipsenumfang angibt.
(AH) cos{Ea)+ y' - sm(Ea )+ E
RP2
■sin(Ea)+ y' - cos(Ea )+ E
(AI 2)
RP- 2D -s„ -s o.ffset ■ s PxGr
(A13)
RP'D = K0 + Sl - K; + t K~
(A14)
Die Richtung eines Knotenpunktstrahls KS im originalen Kamerasystem, welcher einen Pupillenrandpunkt als Ellipsenrandpunkt RP3D auf dem Sensor abbildet, ist gleich der Richtung des Knotenpunktstrahls vKS im virtuellen Kamerasystem, welcher den gleichen Pupillenrandpunkt als Ellipsenrandpunkt RP3D 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 = vi!?.
(A I 5 )
Der virtuelle Knotenpunktstrahl und die virtuelle Sensorebene, welche der x-y-Ebene der virtuellen Kamera vK entspricht, werden in Gleichung (AI 6) gleichgesetzt, wobei sich durch Auflösen nach s2 und t2 die Parameter ihres Schnittpunktes ergeben. Mit diesen kann durch Gleichung (AI 7) der Ellipsenrandpunkt in Pixelkoordinaten im Bild der virtuellen Kamera berechnet werden.
vKS 0 + r2■ vKS -— K0 + s2 K + t2■ K -
(A16) vRP2D = + S.. - S o.
s jfset
PxGr V
(A17)
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 co in Gleichung (AI 1) mit dem oben beschriebenen Weg berechnet werden können.
Die Form der so ermittelten v irtuellen 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 Kameranonnalen vKn entspricht, eine entlang der optischen Achse verlaufende Gerade durch den Pupillenmittelpunkt 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 Pupil- lenmittelpunkt außerhalb der optischen Achse des realen Kamerasystems liegt, was in realen Anwendungen nahezu immer der Fall ist. 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 Pupillenmittelpunktes 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 Hauptebene 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 geometrischen Verhältnisse in Fig. 8e können die beiden möglichen Blickrichtungen p. , und p, , folgendermaßen bestimmt werden. Der Abstand A zwischen dem bekannten Pupillenmittelpunkt und dem Ellipsenmittelpunkt
(AI 8)
Daraus lässt sich r mit Gleichung AI 9 bestimmen. (AI 9)
Die beiden Richtungsvektoren r- , sowie r~ , , welche von vHj aus auf vS; sowie gerichtet sind, werden analog zu den Gleichungen 1 0 0
0 cos(^) -- sm((p)
0 sin(^) cos(#?) cos(6>) 0 sin(#)
0 1 0
-sin(0) 0 cos(0)
V = Μθφ·Μψ
aus vÄTe, ν φ , νϋ und vEa berechnet:
(A20)
·Μφ=νΚφ · [ι,ο,ο]
(A21)
Anschließend können die beiden virtuellen Schnittpunkte vSj sowie vS2 und daraus die möglichen Blickrichtungen p , sowie rf 2 ermittelt werden. v5, = vH, +r-r-,
(A22) vS, - vH. + r r- j
(A23) vS, -P M,P
vSx-PA
(A24) vS-,-Ρ MP
(A25) Um die tatsächliche Blickrichtung zu bestimmen, werden die möglichen Blickrichtungen >- , sowie - 2 j und der Kamera 2 sowieP7>2 J benötigt. Von diesen vier Vektoren gibt jeweils einer von jeder Kamera die tatsächliche Blickrichtung an, wobei diese beiden normierten Vektoren im Ideal tall 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ögliehen Blickrichtungsvektoren gebildet. Die Kombination, bei welcher sich die geringste Differenz ergibt, enthält die gesuchten Vektoren. Diese ergeben gemittelt den zu bestimmenden Blickrichtungsvektor PH . Bei Mittelung muss von einer nahezu zeitgleichen Biklaufhahme ausgegangen werden, damit von beiden Kameras die gleiche Pupillenlage sowie die gleiche -ausrichtung und somit die gleiche Blickrichtung erfasst wurde.
Als Maß für die Genauigkeit des berechneten Blickrichtungsvektor kann zusätzlich der Winkel w^j zwischen den beiden gemittelten Vektoren PKX wnd PK1 , welche die tatsächliche Blickrichtung angeben, berechnet werden. Je geringer w^yj ist, desto genauer waren die Modellparameter und Ellipsenmittelpunkte, welche für die bisherigen Berechnungen genutzt wurden.
wdiff = arecos n o pK2
n
pK\ pK2
n n
(A26)
Die Blickwinkel ΘΒΨ und q>Bw gegenüber der Normallage der Pupille ( Ptj liegt parallel zur z- Achse des Eyetracker- Koord i natensystems) können mit den Gleichungen
<PBW = aresin (- /f ) und
90° wenn (z 0)Λ (Χ < 0) tan tan berechnet werden. 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 (psw hinzuaddiert werden. Der neue Blickrichtungsvektor muss dann mittels Gleichung ΡΆ < = Μθ=θΒΐν, -Μφ=φΒν, -Μψ=ϋ - z aus den neuen Blickwinkeln ##j und ( ^' und i = [0,0, 1]T berechnet werden.
Mit dem Blickrichtungsvektor PN ist (neben dem Pupillemittelpunkt PMP aus Gleichung A6) auch der zweite Parameter der vom 3 D-Bildanal ysator zu bestimmenden Blickgeraden (LoS) bekannt. Diese ergibt sich entsprechend folgender Gleichung
LoS (t) = PMP + t - Pri . 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.
Entwicklung eines Verfahrens zur Überarbeitung des Verfahrens Merkmalsextraktion
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„Merkmalsvekto- ren" pro Bild herunterbricht. Anschließend wird das neu entwickelte Verfahren in einer Matlab- Toolbox implementiert und getestet. Es wird schließlich eine FPGA- Implementierung des neuen Verfahrens vorgestellt. Parallele Hough-Transformation für Geraden und Kreise
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 Verfahre zur Erstellung solcher Kon- figurationsmatrizen sind nachfolgend dargestellt.
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.
Ausgangspunkt für die Berechnung der Kurvenscharen für Geraden bildet die lineare Geradengleichung in (Bl). y = m x + n
(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.
1
m = core 'I,i ei gl
(B2) Die Funktionswerte der Kurvenscharen errechnen sich durch Variation der Laufvariablen (in (B3) durch xcore ersetzt), deren Werte von 0 bis core width laufen.
1
core core
COreheigl
(B3)
Für eine diskrete Darstellung im 2D-Plot müssen die Funktionswertc 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.
(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). y = r2 -x]ore +yM
(B5)
Da yst und r nicht bekannt sind, müssen sie ersetzt werden. Dazu können die mathematischen
Zusammenhänge in (B6) und (B7) aus Fig. 9b hergeleitet werden. yM= h - r
(B6)
(B7)
Durch Umstellen von (B7) nach y und der Bedingung das y» immer negativ sein muss (s. Fig. 9b) erhält man (B8). 2 f corewkltll
(-- 0
2
(B8)
Einsetzen von (B8) in (B5) führt zu (B9). core width
· = - x core + - •(- 1)
(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
muss somit um - width korrigiert werden.
2 _ 2 _ core width core
y r X core + r - width
· (- >)
(B10)
Es fehlt noch der Radius, den man durch einsetzen von (B6) in (B7) und durch weitere Umformungen erhält.
( B l l ) core
r2 = -2hr + r~ + width
(B12) core
hl + width
r =-
2 · h
(B13) core height
Zum Erzeugen der Kurvenscharen muss schließlich die Variable h von
variiert werden. Dies geschieht über die Laufvariable ycore die von 0 bis corehejahl läuft.
(B14)
Wie bereits bei den Geraden müssen die y-Wcrte 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. Ore eigt - yTyP
(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 Konfigurationen 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 Houghcore. Zunächst wird die Konfigurationsmatrix in den Dimensionen des Houghcores mit Nullwerten initialisiert. Danach werden folgende Schritte durchlaufen:
1. Beginne mit der ersten Kurve der Kurvenschar und prüfe den y-Wert der ersten x- Indexnummer. Ist der y-Wcrt 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.
2. Modifiziere die y- Werte mit gleichem x- Index über alle Kurven der Kurvenschar.
Wurde im ersten Schritt das Element mit Eins besetzt, dann ziehe von allen y- W erten Eins ab. Wurde im ersten Schritt das Element nicht besetzt, dann tue nichts.
3. Durchlaufe Schritt 1 und 2 so lange, bis alle Elemente der Konfigurationsmatrix angesprochen wurden.
Die Konfigurationsprozedur ist in Fig. 9c schrittweise veranschaulicht.
Abschließend möchte ich auf ein paar Eigenheiten der Houghcore-Konfigurationen eingehen. 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. Die Konfigurationen für Kreise repräsentieren immer Kreisbögen um den Scheitelpunkt des Halbkreises herum. Nur die größte y- Indexnummer der Kurvenschar (kleinster Radius) repräsentiert einen vollständigen Halbkreis. Die entwickelten Konfigurationen können für den neuen Houghcore genutzt werden. Ü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ährend der Laufzeit ändern.
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 Implementie- rang des Houghcore-Designs und es können höhere Taktraten erzielt werden. Pipelinedelays durchbrechen zeitkritische Pfade innerhalb der FPGA-Strukturen. In Fig. 9d ist das neue Design der Delayelemente veranschaulicht.
Im Vergleich zur bisherigen Umsetzung nach Katzmann und Holland-Neil sind die Delay- elemente 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 FPGA in einer LUT implementiert werden). Das Pipelinedelay ist optional. Neben der Überarbeitung der Delayelemente wurden auch Modifika- tionen am Design des Houghcores vorgenommen. Der neue Houghcore ist in Fig. 9e veranschaulicht.
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 A usgangsh i stogramms 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-intcrnen BRAM ab- gelegt 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 Rekonfiguration 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 Rekonfiguration kann somit problemlos in 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 kleine 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 Dclays besetzt. Die korrekte Ausrichtung kleinerer Konfigurationen ist für die Korrektur der x- Koordinaten (s. Formeln (B 17) bis (B19)) wichtig.
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 I l ugheore berechnet und jeweils mit dem Summensignal der vorher- gehenden 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 Auftrittswahrschein- lichkeit diese detektiert wurde (repräsentiert durch den Summenwert). Das Ausgangssignal des Houghcores kann auch als Houghraum oder Akkumulatorraum bezeichnet werden. Im Gegensatz zur herkömmlichen Hough-Transformation liegt der Houghraum der parallelen H o ugh -Trans I rmat i n im Bildkoordinatensystem vor. Das heißt, dass zu jeder Bildkoor- dinate 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.
Übersicht des Ergebnisdatensatzes der für jeden Bildpunkt des Ausgangsbildes bei der parallelen Hough-Transformation mit überarbeiteter I loughcore-Struktur entsteht. Im Gegensatz zum binären und schwellwertbasierten Ausgang des Houghcores von Katzmann und Holland-Neil erzeugt die neue Houghcore-Straktur deutlich mehr Ausgangsdaten. Da solch eine Datenmenge nur schwer zu handhaben ist, wird ein Verfahren zur Merkmalsextraktion vorgestellt, das die Ergebni sd at enm en ge deutlich verringert. Typ 2 Houghcore und Bildrotation
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 durch- laufen. 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 Hinzunahme 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 Verar- beitung des um 180° rotierten Ausgangsbildes mit einem Typ 1 Houghcore. Ähnlich 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 Implementierung 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 I loughcore-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 transformiert werden. Es bleibt zu berücksichtigen, dass bei der Verarbeitung mit nur einem Houghcore auch die vierfache Datenrate im Houghcore anfällt. Bei einem Vidcodatenstrom mit 60fps und
VGA-Auflö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 Pipelinedeiays innerhalb der i lougheore-Struktur gearbeitet werden.
Merkmalsextraktion
Die Merkmalsextraktion arbeitet auf den Datensätzen aus vorheriger Tabelle. Diese Datensätze können in einem Merkmalsvektor ( B 16) zusammengefasst werden. Der Merkmalsvektor kann im Folgenden auch als Hough-Feature bezeichnet werden. MV=[MVX. MVyMVo, MVKS, MVH, MVG-I, MVA]
(B16)
Ein Merkmalsvektor besteht 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 MVQ-I und die Art der gefundenen Struktur MVA. Die detaillierte Bedeutung und der Wertebereich der einzelnen Elemente des Merkmalsvektors kann nachfolgender Tabelle entnommen werden.
MVx und MVy Beide Koordinaten laufen jeweils bis zur Größe des Ausgangsbildes
MVo Die Orientierung steht für die Ausrichtung des Houghcores. Diese setzt sich aus der Bildrotation und dem eingesetzten Houghcore-Typ zusammen und lässt sich in vier Bereiche unterteilen. Die Umrechnung der vier Bereiche in deren jeweilige Orientierung ist in nachfolgender Tabelle veranschaulicht.
MVKS Die Krümmungsstärke läuft max. bis zur Größe des Houghcores und entspricht der Houghcore-Spalte mit der größten Spaltensumme (bzw. Häufigkeit MVH). Zur Veranschaulichung kann auf Fig. 9e in Verbindung mit obiger Tabelle verwiesen werden. Bei Geraden-Konfiguration der Houghcores steht die Houghcore-Spalte für die Steigung bzw. den Winkel der Geraden. Werden Halbkreis-Konfigurationen eingesetzt, steht die Houghcore-Spalte für den Radius des Halbkreises
MV„ Die Häufigkeit ist ein Maß für die Korrelation des Bildinhaltes mit der gesuchten Struktur. Sie entspricht der Spaltensumme (s. Fig. 9e und obige Tabelle) und kann maximal die Größe des Houghcores (genauer die Größe einer Houghcore-Spalte bei nichtquadratischen Houghcores) erreichen.
MVG., Größe des für die Transformation eingesetzten Houghcores minus eins.
MVA Steht für die Art der gefundenen Struktur je nachdem welche Houghcore- Konfiguration eingesetzt wurde (Konfiguration für Geraden = 0 bzw. Konfiguration für Kreise— 1 ). Elemente des Hough-Merkmalsvektors, deren Bedeutung und Wertebereich.
Berechnung der Orientierung in Abhängigkeit der Bildrotation und des zur Transformation genutzten Houghcore-Typs.
Aus obigen Tabellen wird ersichtlich, dass die beiden Elemente MVo 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.
Neben der Orientierung MVQ 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 iMittelpunkt 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. 9t). Ä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 (B17) zurückgegriffen. Liegt ein Houghcore vom Typ 2 vor muss in Abhängigkeit der Bildrotation auf Formel (B18) bzw. Formel (B19) zurückgegriffen werden. (MVKS
MV., --MV. + floor
( 131 7)
MV = Bildb
(B18)
(B19)
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.
Zur Merkmalsextraktion werden drei Schwellwerte in Kombination mit einem non- maximumsuppression Operator genutzt. Der non-maximum-suppression Operator unterscheidet sich bei Geraden und Halbkreisen. Über die Schwellwerte wird eine minimale MVKS und maximale Krümmungsstärke MVKS^ 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 Sehwell werte gemäß Formeln (B20) bis (B22) überschritten werden.
(B20)
( B2 1 )
MV" > MVH
(B22) MV nms\ A MV n"msl Λ Μ¥ n"msi MV n"ms2 MV nHms2 MV nmsi,\ MV n"s^ 2 MV n"msy^ MV n"ms2 2
(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 detail- lierte Erläuterung der Schwellwerte ist nachfolgender Tabelle zu entnehmen.
Detaillierte Beschreibung der drei Schwellwerte zur Extraktion von Hough-Features aus dem Houghraum. Im Vergleich zum Verfahren nach Katzmann sind Parameter mit ähnlicher Funktion angegeben.
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 rotiertet" 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 Winkclbereichshalbierende geteilt. Die Winkelbereichshalbierende kann als Houghcore-Spalte (dezimal gebrochen) angegeben werden ( MVKS/ r ). Den mathematischen Zusammenhang in Abhängigkeit der Houghcore-Größe beschreibt Formel (B24). In welchem Winkelbereich das Hough-Feature liegt richtet sich nach der Houghcore- Spalte, die den Treffer geliefert hat (MVKS), welche direkt mit der Winkelbereichshalbierenden Houghcore-Spalte verglichen werden kann. π
MVKK - tan Houghcorel
z j 180
(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 (For- mein (B25) bis (B27)). Sind alle Bedingungen erfüllt und werden zusätzlich die Schwellwerte gemäß den Formeln (B20) bis (B22) überschritten, kann das Hough-Feature an Position nms2,2 übernommen werden.
Entscheidung für einen nms-Operator in Abhängigkeit des Houghcore-Typs und des Win- kelbereichs, in dem der Treffer aufgetreten ist.
(MVH > MVH )A (MV" > MV
(B25)
(MV" > MVH, )Λ [MVH > MV'
(B26) (MV" > MV" )A (MVH > 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 ück t an s orm at i on 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. MV = MV
(B28)
MV = Bildbreite - MV v
(B29)
Mit Hilfe der Merkmalsextraktion ist es möglich die Ergebnisdaten der parallelen Hough- Transformation 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 Schutzumfang 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.

Claims

Patentansprüche
Hough-Prozessor (100), der folgende Merkmale aufweist: einen Pre-Prozessor (102), der ausgebildet ist, um eine Mehrzahl von Samples (1 12a, 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 (112a', 112a", 112a'", 112a"") des Bildes des jeweiligen Samples (112a, 1 12b, 112c) für jedes Sample (112a, 1 12b, 1 12c) auszugeben; und eine Hough-Transformationseinrichtung (104), die ausgebildet ist, um ein vorbestimmtes gesuchtes Muster in der Mehrzahl von Samples (112a, 1 12b, 112c) auf der Basis der Mehrzahl von Versionen (112a', 112a", 112a'", 112a"") zu erfassen, wobei eine mit dem gesuchten Muster in Abhängigkeit stehende Charakteristik der Hough-Transformationseinrichtung (104) anpassbar ist.
Hough-Prozessor (100) gemäß Anspruch 1, wobei die Hough- Transformationseinrichtung (104) ein Verzögerungsfilter (106) aufweist, dessen Filtercharakteristik abhängig von dem ausgewählten gesuchten Muster anpassbar ist.
Hough-Prozessor (100) gemäß Anspruch 1, wobei die Hough- Transfonnationseinrichtung (104) ausgebildet ist, um eine pixelweise Korrelation zu ermitteln.
Hough-Prozessor (100) gemäß einem der Ansprüche 1 bis 3, bei dem der Pre- Prozessor (102) ausgebildet ist, um das Bild um 360°/n zu drehen und das Bild und das gedrehte Bild zu spiegeln, um n Versionen (1 12a', 1 12a", 1 12a'", 1 12a"") des Bildes pro Sample (1 12a, 1 12b, 1 12c) parallel auszugeben, oder bei dem der Pre-Prozessor (102) ausgebildet ist, um einen ersten Satz von Versionen (1 12a', 1 12a", 1 12a' ", 1 12a""), der das Bild und das um 360 n gedrehte Bild aufweist, und einen zweiten Satz von Versionen (1 12a', 1 12a", 1 12a' ", 1 12a" "), der das gespiegelte Bild und das gespiegelte, gedrehte Bild aufweist, je Sample (1 12a, 1 12b, 1 12c) in Reihe auszugeben. Hough-Prozessor (100) gemäß einem der Ansprüche 1 bis 4, bei dem die Hough- Transformationseinrichtung (104) ausgebildet ist, um Segmente des vorbestimmten gesuchten Musters zu erfassen, wobei die vorbestimmten Muster aus einer Gruppe stammen, die zumindest eine Ellipse, einen Kreis, eine gerade Linie und eine Kombination aus Gerade und Krümmung umfasst.
Hough-Prozessor (100) gemäß Anspruch 2, bei dem das Verzögerungsfilter (106) der Hough-Transformationscinrichtung ( 104) ein oder mehrere Verzögerungselemente ( 108a, 108b, 108c, 1 10a, 1 1 Ob, 1 10c, 142) aufweist, die innerhalb der Laufzeit selektiv schaltbar sind, um ein Einstellen der Filtercharakteristik des Verzögerungsfilters (106) zu ermöglichen.
Hough-Prozessor (100) gemäß Anspruch 6, wobei der Verzögerungsfilter (106) je vorbestimmtes gesuchtes Muster eine Spalte (108, 110, 138, 140) mit einer Vielzahl an Verzögerungselementen (108a, 108b, 108c, 110a, 1 10b, 110c, 142) aufweist.
Hough-Prozessor (100) gemäß einem der Ansprüche 6 bis 7, bei dem die Hough- Transformationseinrichtung (104) je Verzögerungselement (108a, 108b, 108c, 1 10a, 110b, 1 10c, 142) des Verzögerungsfilters (106) einen Multiplex er (144) umfasst, mittels welchen selektiv das jeweilige Verzögerungselement (108a, 108b, 108c, 1 10a, 1 10b, 110c, 142) zuschaltbar ist, um die Filtercharakteristik zu ändern.
Hough-Prozessor (100) gemäß einem der Ansprüche 6 bis 8, wobei die Hou h- Transformationseinrichtung (104) je Spalte ein Summenglied (150) aufweist, das ausgebildet ist, mittels der ein oder mehreren Verzögerungselemente (108a, 108b, 108c, 1 10a, 1 10b, 1 10c, 142) bearbeitete Signal aufzuaddieren.
Hough-Prozessor (100) gemäß Anspruch 9, bei dem die Hough- Transformationseinrichtung (104) ausgebildet ist, um Segmente des vorbestimmten gesuchten Musters zu erfassen und eine Spaltensumme auszugeben, die einen Rück- schluss auf einen maximalen Übereinstimmungsgrad zu einem der vorbestimmten Muster zulässt.
Hough-Prozessor (100) gemäß einem der Ansprüche 1 bis 10, bei dem die Hough- Transformationseinrichtung (104) ausgebildet ist, um einen mehrdimensionalen Hough-Raum auszugeben, der Informationen über eine Art des erfassten Musters, einen Ubereinstimmungsgrad mit dem erfassten Muster, eine Position des erfassten Musters innerhalb des Bildes, eine Größe der erfassten Mustersegmente aufweist.
12. Hough-Prozessor (100) gemäß Ansprach 1 1, bei dem die Hough- Transformationseinrichtung (104) einen Filterprozessor (16) aufweist, der ein Summenfilter und/oder ein Maximumsfilter aufweist zum Glätten der Position des identifizierten Musters in dem mehrdimensionalen Hough-Raum.
13. Hough-Prozessor (100) gemäß einem der Ansprüche 1 1 bis 12, bei dem die Hough- Transformationseinrichtung (104) einen Hough-Extrahi erer ( 16) aufweist, der ausgebildet ist, um eines oder mehrere gesuchte Mustersegmente innerhalb des Hough- Raums als Hough-Merkmale auszuwählen, wobei die Auswahl auf einer Non- Maxima-Suppression des Hough-Raums mit vorbestimmten Schwellenwerten basiert.
14. Hough-Prozessor (100) gemäß einem der Ansprüche 1 bis 13, bei dem die Hough- Transformationseinrichtung (104) mit einer Verarbeitungseinheit (18) verbunden ist, die eine Einrichtung zum Analysieren (202) erfasster Hough-Merkmale aufweist, um eine Mehrzahl von Geometrieparametersätzen auszugeben, die die Geometrie eines oder mehrerer vordefinierter gesuchter Muster für jedes Sample (112a, 1 12b, 1 12c) beschreiben.
15. Hough-Prozessor (100) gemäß Anspruch 14, bei dem die Verarbeitungseinheit (18) eine Einrichtung zum Steuern (204) der einstellbaren Hough- Transformationseinrichtung (104) im Falle einer fehlenden oder fehlerhaften Erkennung des gesuchten Musters aufweist.
16. Hough-Prozessor (100) gemäß Anspruch 15, wobei die Einrichtung zum Steuern (204) der einstellbaren Hough-Transformationseinrichtung (104) einen ersten Modus zum Anpassen der Charakteristik während des Betriebs basierend auf der aktuellen
Charakteristik und/oder basierend auf den aktuellen Erfassungsergebnissen aufweist und einen zweiten Modus zum initialen Einstellen der Charakteristik während einer Inbetriebnahme aufweist.
17. Hough-Prozessor (100) gemäß Anspruch 2, wobei die Korrelation eine Korrelation zwischen einem mittels der Charakteristik vorbestimmten Template und einem Bildinhalt ist.
18. Hough-Prozessor (100) gemäß Anspruch 17, wobei eine Vielzahl von Templates vorbestimmt ist, für welche jeweils eine Korrelation ermittelt wird, um so für jedes Template ein Ubereinstimmungsmaß mit dem Bildinhalt je Pixel zu erhalten.
19. Hough-Prozessor (100) gemäß Anspruch 17 oder 18, wobei jedes Template einer Ausprägung eines gesuchten Musters zugeordnet ist.
20. Hough-Prozessor (100) gemäß einem der Ansprüche 17 bis 19, wobei die Hough- Transformationseinrichtung ausgebildet ist, um auf Basis des Übereinstimmungsmaßes je Template je Pixel einen mehrdimensionalen Hough-Raum auszugeben, der Informationen über eine Art des erfassten Musters, ein Ubereinstimmungsmaß mit dem erfassten Muster, eine Position des erfassten Musters innerhalb des Bildes, eine Größe der erfassten Mustersegmente aufweist.
21. Hough-Prozessor (100) gemäß einem der Ansprüche 1 bis 20, der eine Bildeingangsstufe (12) aufweist, die zwischen einer Kamera (14a, 14b) und dem Pre-Prozessor (102) angeordnet ist.
22. Hough-Prozessor (100) gemäß Anspruch 21, bei dem die Bildeingangsstufe (12) eine Einrichtung zum Erfassen von Segmentierungen und/oder Kanten und/oder Gradienten des Bildes (12b) umfasst.
23. Hough-Prozessor (100) gemäß einem der Ansprüche 1 bis 22, wobei der Hough- Prozessor (100) in einem eingebetteten Prozessor, einem programmierbaren Logikbauelement oder einen kundenspezifischen Chip implementiert ist.
24. Bildanalysesystem (1000) zum Tracken einer Pupille, mit folgenden Merkmalen: einen ersten Hough-Pfad für eine erste Kamera (14a), wobei der erste Hough-Pfad ( 10a) einen Hough-Prozessor (100) gemäß einem der Ansprüche 1 bis 23 aufweist; und eine Verarbeitungseinheit (18), die eine Einrichtung zum Analysieren (202) der erfassten Muster und zum Ausgeben eines Geometrieparametersatzes aufweist, der die Geometrie eines oder mehrerer vordefinierter gesuchter Muster für jedes Sample (1 12a, 1 12b, 1 12c) beschreibt.
25. Bildanalysesystem (1000) gemäß Anspruch 24, bei dem die Verarbeitungseinheit einen sei ek t i v-adapt i ven Datenprozessor (300) aufweist, das ausgebildet ist, um mehrere Sätze von Werten zu empfangen, wobei jeder Satz einem jeweiligen Sample (112a, 1 12b, 1 12c) zugewiesen ist, mit folgenden Merkmalen: einen Filterprozessor, der ausgebildet ist, um ein Glätten der Sätze durchzuführen, so dass basierend auf den empfangenen Sätzen plausible Sätze ausgegeben werden, und so dass ein unplausiblcr Satz durch einen plausiblen Satz ersetzt wird.
26. Bildanalysesystem (1000) gemäß Anspruch 24 und 25, das einen zweiten Hough- Pfad (10b) für eine zweite Kamera (10b) einer stereoskopischen Kameraanordnung aufweist, die die erste und zweite Kamera (14a, 14b) aufweist, wobei der zweite Hough-Pfad (10b) einen weiteren Hough-Prozessor (100) umfasst.
27. Bildanalysesystem (1000) gemäß Anspruch 26, bei dem die Verarbeitungseinheit einen 3D-Bildanalysator (400) aufweist, 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 Bildinformationen, die auf Basis des ersten Bildes oder eines weiteren Bildes bestimmt wird, zu empfangen, wobei das erste Bild ein Muster eines dreidimensionalen Objekts aus einer ersten Perspektive in eine erste Bildebene abbildet und wobei der weitere Satz eine Relativinformation umfasst, welche eine Relativbeziehung zwischen einem Punkt des dreidimensionalen Objekts und der ersten Bildebene beschreibt, wobei der 3 D-Bildanal ysator folgende Merkmale umfasst: eine Positionsberechnungseinrichtung, 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 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 in dem ersten Bild zueinander zu berechnen; und eine Ausrichtungsberechnungseinrichtung, die ausgebildet ist, um einen SD- Blickvektor zu berechnen, gemäß dem das Muster in dem dreidimensionalen Raum ausgerichtet ist, wobei die Berechnung auf dem ersten Satz, dem weiteren Satz und auf der berechneten Position des Musters basiert.
28. Verfahren für Hough- Verarbeitung, mit folgenden Schritten:
Vorverarbeiten einer Mehrzahl von Samples (112a, 1 12b, 112c), die jeweils ein Bild aufweisen, unter Verwendung eines Pre- Prozessors ( 102), wobei das Bild des jeweiligen Samples (1 12a, 1 12b, 1 12c) gedreht und/oder gespiegelt wird, so dass eine Mehrzahl von Versionen ( 1 12a", 112a", 1 12a'", 112a"") des Bildes des jeweiligen Samples (1 12a, 112b, 112c) für jedes Sample (112a, 112b, 112c) ausgegeben wird; und
Erfassen eines vorbestimmten Musters in der Mehrzahl von Samples (112a, 112b, 112c) auf der Basis der Mehrzahl von Versionen (112a', 1 12a", 112a' ", 112a""), unter Verwendung einer Hough-Transformationseinrichtung (104), die eine mit dem gesuchten Muster in Abhängigkeit stehende, anpassbare Charakteristik aufweist, wobei die Charakteristik abhängig von dem ausgewählten vorbestimmten Mustersatz eingestellt wird.
29. Verfahren gemäß Anspruch 28, wobei die einstellbare Charakteristik eine Filtercharakteristik eines Verzögerungsfilters (106) ist.
30. Verfahren gemäß Anspruch 29, wobei das Einstellen des Verzögerungsfilters (106) während der Inbetriebnahme oder während des Betriebs durchgeführt wird, wenn das Muster fehlerhaft oder nicht erkannt wird.
31. Verfahren gemäß Anspruch 30, wobei die einstellbare Charakteristik eine Nachver- arbeitungscharakteristik, Biegungsscharakteristik oder Verzerrungsscharakteristik ist.
32. Verfahren gemäß einem der Ansprüche 28 bis 31 , wobei der Schritt des Erfassens des vorbestimmten Musters den Schritt des Ermitteins einer pixelweise Korrelation zwischen einem mittels der Charakteristik vorbestimmten Template und einem Bildinhalt umfasst, um so für jedes Template ein Übereinstimmungsmaß mit dem Bildinhalt je Pixel zu erhalten.
33. Computerlesbares digitales Speichermedium, auf dem ein Computerprogramm gespeichert ist mit einem Programmcode zum Durchführen, wenn dasselbe auf einem Computer, einem eingebetteten Prozessor, einem programmierbaren Logikbauele- ment oder einem kundenspezifischen Chip läuft, des Verfahrens gemäß einem der Ansprüche 28 bis 32.
EP15701822.7A 2014-02-04 2015-01-30 Hough-prozessor Ceased EP3103058A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102014201997 2014-02-04
PCT/EP2015/052001 WO2015117904A1 (de) 2014-02-04 2015-01-30 Hough-prozessor

Publications (1)

Publication Number Publication Date
EP3103058A1 true EP3103058A1 (de) 2016-12-14

Family

ID=52434840

Family Applications (4)

Application Number Title Priority Date Filing Date
EP21203252.8A Withdrawn EP3968288A2 (de) 2014-02-04 2015-01-30 3d-bildanalysator zur blickrichtungsbestimmung
EP15702739.2A Withdrawn EP3103060A1 (de) 2014-02-04 2015-01-30 2d-bildanalysator
EP15701823.5A Withdrawn EP3103059A1 (de) 2014-02-04 2015-01-30 3d-bildanalysator zur blickrichtungsbestimmung
EP15701822.7A Ceased EP3103058A1 (de) 2014-02-04 2015-01-30 Hough-prozessor

Family Applications Before (3)

Application Number Title Priority Date Filing Date
EP21203252.8A Withdrawn EP3968288A2 (de) 2014-02-04 2015-01-30 3d-bildanalysator zur blickrichtungsbestimmung
EP15702739.2A Withdrawn EP3103060A1 (de) 2014-02-04 2015-01-30 2d-bildanalysator
EP15701823.5A Withdrawn EP3103059A1 (de) 2014-02-04 2015-01-30 3d-bildanalysator zur blickrichtungsbestimmung

Country Status (6)

Country Link
US (3) US10192135B2 (de)
EP (4) EP3968288A2 (de)
JP (3) JP6483715B2 (de)
KR (2) KR101858491B1 (de)
CN (3) CN106258010B (de)
WO (4) WO2015117906A1 (de)

Families Citing this family (122)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013109869A1 (en) 2012-01-20 2013-07-25 Magna Electronics, Inc. Vehicle vision system with free positional virtual panoramic view
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 (zh) * 2013-12-13 2020-04-03 北京三星通信技术研究有限公司 人脸关键点的定位方法和装置
JP6483715B2 (ja) * 2014-02-04 2019-03-13 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン ハフプロセッサ
DE102015202846B4 (de) 2014-02-19 2020-06-25 Magna Electronics, Inc. Fahrzeugsichtsystem mit Anzeige
US10445573B2 (en) * 2014-06-27 2019-10-15 Fove, Inc. Gaze detection device
US10318067B2 (en) * 2014-07-11 2019-06-11 Hewlett-Packard Development Company, L.P. Corner generation in a projector display area
US11049476B2 (en) 2014-11-04 2021-06-29 The University Of North Carolina At Chapel Hill Minimal-latency tracking and display for matching real and virtual worlds in head-worn displays
KR20160094190A (ko) * 2015-01-30 2016-08-09 한국전자통신연구원 시선 추적 장치 및 방법
JP6444233B2 (ja) * 2015-03-24 2018-12-26 キヤノン株式会社 距離計測装置、距離計測方法、およびプログラム
US20160363995A1 (en) * 2015-06-12 2016-12-15 Seeing Machines Limited Circular light element for illumination of cornea in head mounted eye-tracking
CN105511093B (zh) * 2015-06-18 2018-02-09 广州优视网络科技有限公司 3d成像方法及装置
US9798950B2 (en) * 2015-07-09 2017-10-24 Olympus Corporation Feature amount generation device, feature amount generation method, and non-transitory medium saving program
WO2017015580A1 (en) 2015-07-23 2017-01-26 Artilux Corporation High efficiency wide spectrum sensor
US10861888B2 (en) 2015-08-04 2020-12-08 Artilux, Inc. Silicon germanium imager with photodiode in trench
US10761599B2 (en) 2015-08-04 2020-09-01 Artilux, Inc. Eye gesture tracking
US10707260B2 (en) 2015-08-04 2020-07-07 Artilux, Inc. Circuit for operating a multi-gate VIS/IR photodiode
TW202335281A (zh) 2015-08-04 2023-09-01 光程研創股份有限公司 光感測系統
US10616149B2 (en) * 2015-08-10 2020-04-07 The Rocket Science Group Llc Optimizing evaluation of effectiveness for multiple versions of electronic messages
EP3783656B1 (de) 2015-08-27 2023-08-23 Artilux Inc. Optischer sensor mit breitem spektrum
JP6634765B2 (ja) * 2015-09-30 2020-01-22 株式会社ニデック 眼科装置、および眼科装置制御プログラム
EP3360023A4 (de) * 2015-10-09 2018-10-10 SZ DJI Technology Co., Ltd. Fahrzeugpositionierung auf basis von ausgeprägten merkmalen
US10739443B2 (en) 2015-11-06 2020-08-11 Artilux, 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
US10741598B2 (en) 2015-11-06 2020-08-11 Atrilux, Inc. High-speed light sensing apparatus II
US10254389B2 (en) 2015-11-06 2019-04-09 Artilux Corporation High-speed light sensing apparatus
CN106200905B (zh) * 2016-06-27 2019-03-29 联想(北京)有限公司 信息处理方法及电子设备
JP2019531560A (ja) 2016-07-05 2019-10-31 ナウト, インコーポレイテッドNauto, Inc. 自動運転者識別システムおよび方法
WO2018016209A1 (ja) * 2016-07-20 2018-01-25 富士フイルム株式会社 注目位置認識装置、撮像装置、表示装置、注目位置認識方法及びプログラム
CN105954992B (zh) * 2016-07-22 2018-10-30 京东方科技集团股份有限公司 显示系统和显示方法
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
JP2019527832A (ja) 2016-08-09 2019-10-03 ナウト, インコーポレイテッドNauto, Inc. 正確な位置特定およびマッピングのためのシステムおよび方法
US10733460B2 (en) 2016-09-14 2020-08-04 Nauto, Inc. Systems and methods for safe route determination
JP6587254B2 (ja) * 2016-09-16 2019-10-09 株式会社東海理化電機製作所 輝度制御装置、輝度制御システム及び輝度制御方法
EP3305176A1 (de) 2016-10-04 2018-04-11 Essilor International Verfahren zur bestimmung eines geometrischen parameters eines auges einer person
US11361003B2 (en) * 2016-10-26 2022-06-14 salesforcecom, inc. Data clustering and visualization with determined group number
EP3535646A4 (de) 2016-11-07 2020-08-12 Nauto, Inc. System und verfahren zur bestimmung von fahrerablenkung
WO2018097831A1 (en) * 2016-11-24 2018-05-31 Smith Joshua R Light field capture and rendering for head-mounted displays
JP6900609B2 (ja) * 2016-12-06 2021-07-07 エスゼット ディージェイアイ テクノロジー カンパニー リミテッドSz Dji Technology Co.,Ltd 広角画像を修正するシステム及び方法
DE102016224886B3 (de) * 2016-12-13 2018-05-30 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren und Vorrichtung zur Ermittlung der Schnittkanten von zwei sich überlappenden Bildaufnahmen einer Oberfläche
US20200125167A1 (en) * 2016-12-30 2020-04-23 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
DE102017103721B4 (de) * 2017-02-23 2022-07-21 Karl Storz Se & Co. Kg Vorrichtung zur Erfassung eines Stereobilds mit einer rotierbaren Blickrichtungseinrichtung
KR101880751B1 (ko) * 2017-03-21 2018-07-20 주식회사 모픽 무안경 입체영상시청을 위해 사용자 단말과 렌티큘러 렌즈 간 정렬 오차를 줄이기 위한 방법 및 이를 수행하는 사용자 단말
JP7003455B2 (ja) * 2017-06-15 2022-01-20 オムロン株式会社 テンプレート作成装置、物体認識処理装置、テンプレート作成方法及びプログラム
US10430695B2 (en) 2017-06-16 2019-10-01 Nauto, Inc. System and method for contextualized vehicle operation determination
US10453150B2 (en) 2017-06-16 2019-10-22 Nauto, Inc. System and method for adverse vehicle event determination
EP3420887A1 (de) 2017-06-30 2019-01-02 Essilor International Verfahren zur bestimmung der position des augenrotationszentrums des auges eines patienten und zugehörige vorrichtung
JP2019017800A (ja) * 2017-07-19 2019-02-07 富士通株式会社 コンピュータプログラム、情報処理装置及び情報処理方法
EP3430973A1 (de) * 2017-07-19 2019-01-23 Sony Corporation Mobiles system und verfahren
KR101963392B1 (ko) * 2017-08-16 2019-03-28 한국과학기술연구원 무안경식 3차원 영상표시장치의 동적 최대 시역 형성 방법
US11250589B2 (en) * 2017-08-25 2022-02-15 Chris Hsinlai Liu General monocular machine vision system and method for identifying locations of target elements
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 (zh) * 2017-10-31 2020-09-22 Oppo广东移动通信有限公司 图像处理方法、装置、电子设备和计算机可读存储介质
EP3486834A1 (de) * 2017-11-16 2019-05-22 Smart Eye AB Detektion einer position eines auges
CN108024056B (zh) * 2017-11-30 2019-10-29 Oppo广东移动通信有限公司 基于双摄像头的成像方法和装置
KR102444666B1 (ko) * 2017-12-20 2022-09-19 현대자동차주식회사 차량용 3차원 입체 영상의 제어 방법 및 장치
CN108334810B (zh) * 2017-12-25 2020-12-11 北京七鑫易维信息技术有限公司 视线追踪设备中确定参数的方法和装置
CN108875526B (zh) * 2018-01-05 2020-12-25 北京旷视科技有限公司 视线检测的方法、装置、系统及计算机存储介质
JP7109193B2 (ja) * 2018-01-05 2022-07-29 ラピスセミコンダクタ株式会社 操作判定装置及び操作判定方法
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
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
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
US11105928B2 (en) 2018-02-23 2021-08-31 Artilux, Inc. Light-sensing apparatus and light-sensing method thereof
JP6975341B2 (ja) 2018-02-23 2021-12-01 アーティラックス・インコーポレイテッド 光検出装置およびその光検出方法
US11392131B2 (en) 2018-02-27 2022-07-19 Nauto, Inc. Method for determining driving policy
US11675428B2 (en) * 2018-03-29 2023-06-13 Tobii Ab Determining a gaze direction using depth information
WO2019199691A1 (en) 2018-04-08 2019-10-17 Artilux, Inc. Photo-detecting apparatus
CN108667686B (zh) * 2018-04-11 2021-10-22 国电南瑞科技股份有限公司 一种网络报文时延测量的可信度评估方法
KR20190118965A (ko) * 2018-04-11 2019-10-21 주식회사 비주얼캠프 시선 추적 시스템 및 방법
WO2019199035A1 (ko) * 2018-04-11 2019-10-17 주식회사 비주얼캠프 시선 추적 시스템 및 방법
US10854770B2 (en) 2018-05-07 2020-12-01 Artilux, Inc. Avalanche photo-transistor
US10969877B2 (en) 2018-05-08 2021-04-06 Artilux, Inc. Display apparatus
CN108876733B (zh) * 2018-05-30 2021-11-09 上海联影医疗科技股份有限公司 一种图像增强方法、装置、设备和存储介质
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 (zh) * 2018-08-13 2019-01-15 祝爱莲 窗体加固控制平台
KR102521408B1 (ko) * 2018-08-27 2023-04-14 삼성전자주식회사 인포그래픽을 제공하기 위한 전자 장치 및 그에 관한 방법
AU2019327554A1 (en) * 2018-08-30 2021-03-18 Splashlight Holding Llc Technologies for enabling analytics of computing events based on augmented canonicalization of classified images
CN109376595B (zh) * 2018-09-14 2023-06-23 杭州宇泛智能科技有限公司 基于人眼注意力的单目rgb摄像头活体检测方法及系统
JP6934001B2 (ja) * 2018-09-27 2021-09-08 富士フイルム株式会社 画像処理装置、画像処理方法、プログラムおよび記録媒体
JP7099925B2 (ja) * 2018-09-27 2022-07-12 富士フイルム株式会社 画像処理装置、画像処理方法、プログラムおよび記録媒体
CN110966923B (zh) * 2018-09-29 2021-08-31 深圳市掌网科技股份有限公司 室内三维扫描与危险排除系统
US11144779B2 (en) * 2018-10-16 2021-10-12 International Business Machines Corporation Real-time micro air-quality indexing
CN109492120B (zh) * 2018-10-31 2020-07-03 四川大学 模型训练方法、检索方法、装置、电子设备及存储介质
JP7001042B2 (ja) * 2018-11-08 2022-01-19 日本電信電話株式会社 眼情報推定装置、眼情報推定方法、プログラム
CN111479104A (zh) * 2018-12-21 2020-07-31 托比股份公司 用于计算视线会聚距离的方法
US11113842B2 (en) 2018-12-24 2021-09-07 Samsung Electronics Co., Ltd. Method and apparatus with gaze estimation
CN109784226B (zh) * 2018-12-28 2020-12-15 深圳云天励飞技术有限公司 人脸抓拍方法及相关装置
US11049289B2 (en) * 2019-01-10 2021-06-29 General Electric Company Systems and methods to semi-automatically segment a 3D medical image using a real-time edge-aware brush
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
KR102653252B1 (ko) * 2019-02-21 2024-04-01 삼성전자 주식회사 외부 객체의 정보에 기반하여 시각화된 인공 지능 서비스를 제공하는 전자 장치 및 전자 장치의 동작 방법
US11068052B2 (en) * 2019-03-15 2021-07-20 Microsoft Technology Licensing, Llc Holographic image generated based on eye position
US11644897B2 (en) 2019-04-01 2023-05-09 Evolution Optiks Limited User tracking system using user feature location and method, and digital display device and digital image rendering system and method using same
WO2020201999A2 (en) 2019-04-01 2020-10-08 Evolution Optiks Limited Pupil tracking system and method, and digital display device and digital image rendering system and method using same
US20210011550A1 (en) * 2019-06-14 2021-01-14 Tobii Ab Machine learning based gaze estimation with confidence
CN110718067A (zh) * 2019-09-23 2020-01-21 浙江大华技术股份有限公司 违规行为告警方法及相关装置
US11080892B2 (en) * 2019-10-07 2021-08-03 The Boeing Company Computer-implemented methods and system for localizing an object
US11688199B2 (en) * 2019-11-13 2023-06-27 Samsung Electronics Co., Ltd. Method and apparatus for face detection using adaptive threshold
CN113208591B (zh) * 2020-01-21 2023-01-06 魔门塔(苏州)科技有限公司 一种眼睛开闭距离的确定方法及装置
CN113448428B (zh) * 2020-03-24 2023-04-25 中移(成都)信息通信科技有限公司 一种视线焦点的预测方法、装置、设备及计算机存储介质
CN111768433B (zh) * 2020-06-30 2024-05-24 杭州海康威视数字技术股份有限公司 一种移动目标追踪的实现方法、装置及电子设备
US11676255B2 (en) * 2020-08-14 2023-06-13 Optos Plc Image correction for ophthalmic images
CN111985384A (zh) * 2020-08-14 2020-11-24 深圳地平线机器人科技有限公司 获取脸部关键点的3d坐标及3d脸部模型的方法和装置
US10909167B1 (en) * 2020-09-17 2021-02-02 Pure Memories Ltd Systems and methods for organizing an image gallery
CN112633313B (zh) * 2020-10-13 2021-12-03 北京匠数科技有限公司 一种网络终端的不良信息识别方法及局域网终端设备
CN112255882A (zh) * 2020-10-23 2021-01-22 泉芯集成电路制造(济南)有限公司 集成电路版图微缩方法
CN112650461B (zh) * 2020-12-15 2021-07-13 广州舒勇五金制品有限公司 一种基于相对位置的展示系统
US11417024B2 (en) 2021-01-14 2022-08-16 Momentick Ltd. Systems and methods for hue based encoding of a digital image
KR20220115001A (ko) * 2021-02-09 2022-08-17 현대모비스 주식회사 스마트 디바이스 스위블을 이용한 차량 제어 장치 및 그 방법
US20220270116A1 (en) * 2021-02-24 2022-08-25 Neil Fleischer Methods to identify critical customer experience incidents using remotely captured eye-tracking recording combined with automatic facial emotion detection via mobile phone or webcams.
JP2022189536A (ja) * 2021-06-11 2022-12-22 キヤノン株式会社 撮像装置および方法
JPWO2022259499A1 (de) * 2021-06-11 2022-12-15
US11914915B2 (en) * 2021-07-30 2024-02-27 Taiwan Semiconductor Manufacturing Company, Ltd. Near eye display apparatus
CN114387442A (zh) * 2022-01-12 2022-04-22 南京农业大学 一种多维空间中的直线、平面和超平面的快速检测方法
US11887151B2 (en) * 2022-02-14 2024-01-30 Korea Advanced Institute Of Science And Technology Method and apparatus for providing advertisement disclosure for identifying advertisements in 3-dimensional space
CN114794992B (zh) * 2022-06-07 2024-01-09 深圳甲壳虫智能有限公司 充电座、机器人的回充方法和扫地机器人
CN115936037B (zh) * 2023-02-22 2023-05-30 青岛创新奇智科技集团股份有限公司 二维码的解码方法及装置
CN116523831B (zh) * 2023-03-13 2023-09-19 深圳市柯达科电子科技有限公司 一种曲面背光源的组装成型工艺控制方法
CN116109643B (zh) * 2023-04-13 2023-08-04 深圳市明源云科技有限公司 市场布局数据采集方法、设备及计算机可读存储介质

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 (ja) * 1994-03-07 2001-05-08 日本電信電話株式会社 直線抽出ハフ変換画像処理装置
JP4675492B2 (ja) * 2001-03-22 2011-04-20 本田技研工業株式会社 顔画像を使用した個人認証装置
JP4128001B2 (ja) * 2001-11-19 2008-07-30 グローリー株式会社 歪み画像の対応付け方法、装置およびプログラム
JP4275345B2 (ja) * 2002-01-30 2009-06-10 株式会社日立製作所 パターン検査方法及びパターン検査装置
CN2586213Y (zh) * 2002-12-24 2003-11-12 合肥工业大学 实时实现Hough变换的光学装置
US7164807B2 (en) 2003-04-24 2007-01-16 Eastman Kodak Company Method and system for automatically reducing aliasing artifacts
JP4324417B2 (ja) * 2003-07-18 2009-09-02 富士重工業株式会社 画像処理装置および画像処理方法
JP4604190B2 (ja) * 2004-02-17 2010-12-22 国立大学法人静岡大学 距離イメージセンサを用いた視線検出装置
DE102004046617A1 (de) * 2004-09-22 2006-04-06 Eldith Gmbh Vorrichtung und Verfahren zur berührungslosen Bestimmung der Blickrichtung
US8995715B2 (en) * 2010-10-26 2015-03-31 Fotonation Limited Face or other object detection including template matching
JP4682372B2 (ja) * 2005-03-31 2011-05-11 株式会社国際電気通信基礎技術研究所 視線方向の検出装置、視線方向の検出方法およびコンピュータに当該視線方向の検出方法を実行させるためのプログラム
US7406212B2 (en) 2005-06-02 2008-07-29 Motorola, Inc. Method and system for parallel processing of Hough transform computations
JP2009508553A (ja) * 2005-09-16 2009-03-05 アイモーションズ−エモーション テクノロジー エー/エス 眼球性質を解析することで、人間の感情を決定するシステムおよび方法
DE102005047160B4 (de) * 2005-09-30 2007-06-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung, Verfahren und Computerprogramm zum Ermitteln einer Information über eine Form und/oder eine Lage einer Ellipse in einem graphischen Bild
KR100820639B1 (ko) * 2006-07-25 2008-04-10 한국과학기술연구원 시선 기반 3차원 인터랙션 시스템 및 방법 그리고 3차원시선 추적 시스템 및 방법
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 (ja) * 2009-11-24 2014-07-23 株式会社エヌテック 画像形成状態検査方法、画像形成状態検査装置及び画像形成状態検査用プログラム
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 (ja) * 2011-07-15 2013-02-04 Canon Inc 観察用光学機器
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 (zh) * 2012-02-28 2016-03-16 三星电子(中国)研发中心 一种适用于多核嵌入式平台的jpeg图像解码方法及解码器
US9308439B2 (en) * 2012-04-10 2016-04-12 Bally Gaming, Inc. Controlling three-dimensional presentation of wagering game content
CN102662476B (zh) * 2012-04-20 2015-01-21 天津大学 一种视线估计方法
US11093702B2 (en) * 2012-06-22 2021-08-17 Microsoft Technology Licensing, Llc Checking and/or completion for data grids
EP2709060B1 (de) * 2012-09-17 2020-02-26 Apple Inc. Verfahren und Vorrichtung zur Bestimmung eines Blickpunkts auf ein dreidimensionales Objekt
CN103019507B (zh) * 2012-11-16 2015-03-25 福州瑞芯微电子有限公司 一种基于人脸跟踪改变视点角度显示三维图形的方法
CN103136525B (zh) * 2013-02-28 2016-01-20 中国科学院光电技术研究所 一种利用广义Hough变换的异型扩展目标高精度定位方法
JP6269662B2 (ja) 2013-05-08 2018-01-31 コニカミノルタ株式会社 発光パターンを有する有機エレクトロルミネッセンス素子の製造方法
KR20150006993A (ko) * 2013-07-10 2015-01-20 삼성전자주식회사 디스플레이 장치 및 이의 디스플레이 방법
US9619884B2 (en) 2013-10-03 2017-04-11 Amlogic Co., Limited 2D to 3D image conversion device and method
JP6483715B2 (ja) * 2014-02-04 2019-03-13 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン ハフプロセッサ
WO2015143067A1 (en) * 2014-03-19 2015-09-24 Intuitive Surgical Operations, Inc. 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 WO2015117904A1 *

Also Published As

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

Similar Documents

Publication Publication Date Title
EP3103058A1 (de) Hough-prozessor
EP3657236B1 (de) Verfahren, vorrichtung und computerprogramm zum virtuellen anpassen einer brillenfassung
EP3542211B1 (de) Verfahren und vorrichtung sowie computerprogramm zum ermitteln einer repräsentation eines brillenglasrands
CN110363116B (zh) 基于gld-gan的不规则人脸矫正方法、系统及介质
DE60036780T2 (de) Verfahren zum Vergleichen eines zweidimensionalen Bildes zu einem unter mehreren in einem Datenbank gespeicherten dreidimensionalen Kandidatmodellen
DE102004049676A1 (de) Verfahren zur rechnergestützten Bewegungsschätzung in einer Vielzahl von zeitlich aufeinander folgenden digitalen Bildern, Anordnung zur rechnergestützten Bewegungsschätzung, Computerprogramm-Element und computerlesbares Speichermedium
DE102015010096A1 (de) Konfigurationseinstellungen einer Digitalkamera zur Tiefenkarten-Erzeugung
DE102015015194A1 (de) Bildverarbeitungsvorrichtung und -verfahren und Programm
DE102010001520A1 (de) Durch einen Flugzeugsensor unterstütztes Iriserfassungssystem und -Verfahren
EP3332284A1 (de) Verfahren und vorrichtung zur datenerfassung und auswertung von umgebungsdaten
EP3924710B1 (de) Verfahren und vorrichtung zum vermessen der lokalen brechkraft und/oder der brechkraftverteilung eines brillenglases
DE102019104310A1 (de) System und Verfahren zur simultanen Betrachtung von Kanten und normalen bei Bildmerkmalen durch ein Sichtsystem
EP3635478A1 (de) Verfahren, vorrichtungen und computerprogramm zum bestimmen eines nah-durchblickpunktes
DE102018100909A1 (de) Verfahren zum Rekonstruieren von Bildern einer Szene, die durch ein multifokales Kamerasystem aufgenommen werden
EP3959497B1 (de) Verfahren und vorrichtung zum vermessen der lokalen brechkraft und/oder der brechkraftverteilung eines brillenglases
CN105488780A (zh) 一种用于工业生产线的单目视觉测距追踪装置及其追踪方法
DE10145608B4 (de) Modellbasierte Objektklassifikation und Zielerkennung
DE102014108924B4 (de) Ein halbüberwachtes Verfahren zum Trainiern eines Hilfsmodells zur Erkennung und Erfassung von Mehrfachmustern
DE10196664T5 (de) Szenenrekonstruktion und Kamerakalibrierung bei robuster Verwendung von Chiralität
DE102020208080A1 (de) Erkennung von Objekten in Bildern unter Äquivarianz oder Invarianz gegenüber der Objektgröße
DE102010054168B4 (de) Verfahren, Vorrichtung und Programm zur Bestimmung der torsionalen Komponente der Augenposition
EP3449463A1 (de) Bewegungsanalysesystem und ein dieses umfassendes bewegungsverfolgungssystem von bewegten oder sich bewegenden, sich thermisch von ihrer umgebung abhebenden objekten
Crawford-Hines et al. Neural nets in boundary tracing tasks
DE69911780T2 (de) Verfahren zur modellierung von gegenständen oder dreidimensionalen szenen

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

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)
17Q First examination report despatched

Effective date: 20180608

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

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

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20200127