130 likes | 271 Views
CONTROL OF CURSOR POSITION IN COMPUTER DISPLAYS THROUGH EYE MOVEMENTS USING NEURAL NETWORKS AND MATHEMATICAL ALGORITHMS. A. Molina, I. Monedero, C. León, I. Gómez, J. M.Elena Dept. Tecnología Electrónica (Univ. of Seville) E-mail: cleon@us.es. ABSTRACT.
E N D
CONTROL OF CURSOR POSITION IN COMPUTER DISPLAYS THROUGH EYE MOVEMENTS USING NEURAL NETWORKS AND MATHEMATICAL ALGORITHMS A. Molina, I. Monedero, C. León, I. Gómez,J. M.Elena Dept. Tecnología Electrónica (Univ. of Seville) E-mail: cleon@us.es
ABSTRACT • This paper presents a system that allow to control the cursor position in a computer display through the human eye movements. • Our system uses a two-axis voltage measure obtained by an infrared light reflection procedure to determinate the cursor position into a computer display. • Two approaches are compared: an algorithmic approach and an ANN one.
Placed in the mount of a pair of glasses Infrared light Emitting diode Corneal surface Phototransistor Reflected light 1. INTRODUCTION • We have designed a mouse controlled by means of the ocular movement. • This system is thought for people that is severely incapacitated, who can not use a conventional mouse or keyboard.
1. INTRODUCTION • Two values of voltage are obtained for each eye, one for horizontal movements and one for vertical ones. • To calibrate the system, voltage values are obtained when the user looks at several screen fixed points.
It is not possible to detect independently horizontal and vertical movements: Linear approach is not useful to obtain relation between voltage and position coordinate Voltage versus position coordinates in the horizontal array PROBLEM: points that have the same value of the horizontal coordinate provide different voltages depending on the vertical coordinate 1. INTRODUCTION If the system had an ideal behaviour all the curves should coincide!
2. POLYNOMIAL APPROACH • Problem: obtain the value of the position on the screen that the user is looking to using the two voltage values provides by the system (Vx and Vy corresponding both eyes). • Points of reference are needed. We use firstly 16 points symmetrically placed in a calibration process (user looks to these points while the system records the voltage obtained: Vx(Cij) and Vy(Cij)). By interpolation, we obtained two surfaces that model the system behaviour:
Using the voltage values obtained by the system (Vx, Vy) and the previously showed equations, a position in pixels (Cx, Cy) can be obtained using: 2. POLYNOMIAL APPROACH Fx(x,y)=Vx Fy(x,y)=Vy Not analytically soluble Quick descent algorithm Initial value: is calculated using the distance from Vx and Vy to all calibration points
16 points of calibration 48 points of calibration Error index: 24 14 2. POLYNOMIAL APPROACH RESULTS:
3. NEURAL NETWORK APPROACH • Reasons for an ANN approach: • There is not a linear relation between voltage and cursor position. • Increase system flexibility (variations in the number of calibration inputs). • Problem: • ANN must be trained every time that the system was utilized, due to the different possible angles of vision the user with respect to the screen and therefore, the different results in the weights obtained after the training. (Note that polynomial coefficients must be calculated using calibrating points every time the system is used too).
3. NEURAL NETWORK APPROACH • ANN characteristics: • Multilayer perceptron architecture. • Backpropagation training algorithm. • MATLAB NN toolbox. • ANN design process: • Inputs: (Vx, Vy) pairs, output (Cx, Cy) pairs. • Tests with 16 and 48 inputs. • Number of examples 88. 16 input best results: one hidden layer hidden layer: log sig transfer function output layer: linear function Levenberg-Marqueardt algorithm 48 input best results: one hidden layer hidden layer: tan sig transfer function output layer: linear function Levenberg-Marquardt algorithm
Scale of patterns in the range (-1 1) Configure ANN in function of inputs number Error>0.0001 if 16 inputs Error>0.00015 if 48 inputs and interations<5 Train with 600 epochs Error<0.0001 if 16 inputs Error<0.00015 if 48 inputs Iterations = 5 Train with 400 epochs Scale the patterns to their original range 3. NEURAL NETWORK APPROACH • Refining 48 inputs ANN: • A MATLAB algorithm has been designed to decide if a training process produces bad results and the ANN must be trained again.
Results in 10 test over 3 samples 48 input ANN RESULTS: 3. NEURAL NETWORK APPROACH Average training time: 20.5 s Error index: 16 inputs average error: 44.95 48 inputs average error 15.83
4. CONCLUSIONS • The results of a 48 inputs ANN are comparable to the polynomial ones, even with a low number of training patterns. • ANN is more flexible than the polynomial approach (for example for several number of inputs). • The user can not move his head after the system has been calibrated (polynomial) or ANN has been trained. This is not very important because system is designed for people that is severely incapacitated.