The basics of 
pattern recognition
What is an 
eyetracker?
Demo Video
Applications
Various eyetracking 
techniques
pattern 
recognition
The current 
eyetracker
Credits

The basic technical processes of recognizing patterns

a_eyetrackMy technique of Eyetracking is based on an approach entirely different from previous systems. In order to get an efficient and reliable recognition, I adapted my system to the human process of pattern recognition. Despite this procedure the current technology quickly reaches its own limits. Still I wanted to develop a fast and affordable Eyetracking system, so I went new ways using well-known technology. Previous systems are based on data processing in one single CPU. Being a highly complicated task, the pattern recognition of the pupil requires a very powerful CPU. This inevitably leads to high costs. But if you have a closer look on how we discern shapes, you find simple criteria through which animals and human beings recognize objects. Knowing this, I extracted three properties characteristic of the pupil so simple they seem to be trivial: The system detects edges in contrast, the round shape and the black color of the pupil. These three properties allow a very reliable recognition with a wide variety of eye shapes and colors. Differences in eye color, size and brightness are insignificant to the tested characteristics.

Thus the device needs no calibration to work with different users and is easily maintained. Knowing the decisive characteristics, the device sums up the vast amount of raw data (pixel positions and brightness) to one single information, the position (x-y-coordinates) of the center of the pupil. All other information filtered out of the data flow during this process, like contrast, shape, size and color of the pupil is used merely to determine this position. Filtering in real time like this needs a lot of computing power. In contrary to neuronal nets, the data is processed in succession, so the performance of the single CPU has to be very high.

For example:

  • The raw data flow processed using Eyetracker v.5 is 6.5 MB/s ( 6,553,600 Byte/sec).
  • For each byte it takes about 40 cycles to determine the position.
  • That's 262,144,000 instructions per second.

The performance needed here is 10 times higher than what a normal PC was able to do 1995.

This is where my new concept comes in: Just like in nature the Eyetracker calculates several things simultaneously. This requires splitting up the tasks in independent parts first. I have developed a logical IC which carries out six tasks at the same time. Thanks to this parallel processing a reduction of data flow from 6.5 MB/sec down to 20kB/sec was achieved using a 20$ IC. This leads to a reduction of required computing power by a factor of 325.

Image processing and data reduction:

The quality of the image transmitted to the Eyetracking system needs to be quite high to enable the system to finally determine the position of the pupil. These high requirements are met by applying electronic filtering methods to the raw image/data. Otherwise the side effects caused by the surroundings would "pollute" the image and make proper recognition impossible.

 

Requirements to the "raw data/image"

  • The image should not include too many disturbing factors , i.e. reflections, shadows
  • The contrast within the eye has to be fairly high
  • the image needs to be digitized to ensure easy processing
  • the resolution has to be appropriate

 

Methods to increase image quality

  • To minimize the influence of outer effects infrared radiation can be used to more easily determine the position of the pupil.
  • This technique makes usage of the principle of subtracting an image from the immediately following which cancels out most of the outer side effects.
  • "Differentiation" of the image along the x-axis makes it possible to find edges within given areas of contrast. 

With questions and comments, please apply to the webmaster. © Copyright 2007 Gordon Pipa. All rights reserved.