Skip to main content

Table 1 Pseudo code of DAISMI

From: A 2D eye gaze estimation system with low-resolution webcam images

LET S be the rectangular socket region consists of P number of pixels: S1 ... S P

LET A be a two-dimensional array of pixels

LET O be the position of the template's origin

LET AVG be the average intensity of socket region

LET W be the deformable eyeball model involves N number of template windows: W 1 ... W N

LET Z be the size of the template window

LET L be the template window consists of Z number of pixels: L 1 ... L Z

LET V be the index number of the window where window has the highest intensity variance between current index and previous index.

LET WIDTH be the width of the input camera image

LET alpha be the angle between windows

LET cutOffRatio be the ratio determines the initial index with the highest variance

in a window which is used for getting rid of eyebrows

LET epsilon be the tolerance value for eyeball detection

LET B be the index of vertex over the border of eyeball

SET minIntensity TO 256.0f

FOR EACH i = 1 TO P

//Start of pixels

   IF BRIGHTNESS( S i ) <minIntensity THEN

   SET minIntensity TO BRIGHTNESS( S i )

   SET O x TO POSITION( S i )--> x

   SET O y TO POSITION( S i )--> y

END IF

//End of pixels

END LOOP

SET alpha TO 0.0f

SET integralIndices TO 0.0f

SET integralBrightness TO 0.0f

FOR EACH j = 1 TO N

//Start of windows

   INCREASE alpha BY ( TWO_PI/ N )

   SET maxVariance TO 0.0f

   SET maxAverageIntensity TO 0.0f

   FOR EACH k = Z TO 1

   //Start of indices in windows

   SET point_x TO O x + k * COS ( alpha )

   SET point_y TO O y + k * SIN ( alpha )

   SET index TO point_y * WIDTH + point_x

   SET A[j,k] TO COLOR( S index )

   SET variance TO ABS ( BRIGHTNESS( A[j,k] ) - BRIGHTNESS( A[j,k-1] ) )

   SET V TO Integer.MAX_VALUE//highest possible value of an integer.

END IF

   IF variance>maxVariance AND V>Z/cutOffRatio THEN

SET maxVariance TO variance

SET V TO k

   END IF

END LOOP

SET integralIntensity TO 0.0f

FOR EACH l = V TO 1

//Integrate from the index with the highest variance to the origin's index

   INCREASE integralIntensity BY ( 255 - BRIGHTNESS( A[j, l] ) )

END LOOP

SET averageIntensity TO ( integralIntensity/l)

   IF averageIntensity>maxAverageIntensity THEN

SET maxAverageIntensity TO averageIntensity

SET B TO V

END IF

//End of indices in windows

END LOOP

INCREASE integralIndices BY B;

INCREASE integralBrightness BY BRIGHTNESS( A[j,B] )

IF integralIndices/j >epsilon AND integralBrightness /j <AVG THEN

   ADD B TO ARRAYLIST

END IF

//End of windows

END LOOP