from a certain point of view

48
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | From a certain point of view Eye tracking with Java Gerrit Grunwald Java Technology Evangelist Oracle Simon Ritter Head of Java Technology Evangelism Oracle

Upload: tamara-rodriquez

Post on 02-Jan-2016

67 views

Category:

Documents


1 download

DESCRIPTION

From a certain point of view. Eye tracking with Java. Gerrit Grunwald Java Technology Evangelist Oracle Simon Ritter Head of Java Technology Evangelism Oracle. 1. 2. 3. 4. 5. Human Machine Interaction Eye tracking TheEyeTribe Java and Eye tracking Demos. 1. 2. 3. 4. 5. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

From a certain point of viewEye tracking with Java

Gerrit GrunwaldJava Technology EvangelistOracle

Simon RitterHead of Java Technology EvangelismOracle

Page 2: From a certain  point of view

Safe Harbor StatementThe following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 2

Page 3: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Human Machine Interaction

Eye tracking

TheEyeTribe

Java and Eye tracking

Demos

1

2

3

4

3

5

Page 4: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Human Machine Interaction

Eye Tracking

TheEyeTribe

Java and Eye tracking

Demos

1

2

3

4

4

5

Page 5: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

How It All Started

Page 6: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Progress Was Made…

Page 7: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Multi-Touch Has Become Popular

Page 8: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Gaming Has Driven Several Interfaces

Page 9: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Gestures Rather Than Touch…

Page 10: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Interactions Without Hands

Page 11: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Human Machine Interaction

Eye Tracking

TheEyeTribe

Java and Eye tracking

Demos

2

1

3

4

11

5

Page 12: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

“Eye tracking is the process of measuring either the point of gaze or the motion of an eye relative to the head.”

– Wikipedia

12

Page 13: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Of the stimuli that reach the brain are visual

80%

13

The eyes are the windows to the soul

Page 14: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Eyes Give Clues When Answering Questions

Visually Constructed Visually Remembered

Auditory Constructed Auditory Remembered

Feeling/Kinesthetic Internal Dialog

This is for a right-handed person. Positions reversed if left-handed

Page 15: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Where to use it ?

15

Page 16: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 16

Eye gaze correction for video conferencing

Page 17: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 17

Minimize dangers in air traffic displays

Page 18: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 18

Developing Video Games and Graphics

Page 19: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 19

Marketing and E-Commerce website development

Page 20: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 20

Improved computer-human interaction

Page 21: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

What can it do ?

21

Page 22: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

• Determine whether a user is looking at the screen– Paying attention to course, video, etc

• If a user is reading or scanning– Speed of movement of the eyes over text

• Intensity of user’s attention– How long they look ata aprticular thing

• Whether the user is searching for specific information

Capabilities

Page 23: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

• Eye attached tracking• Electric potential measurement• Optical tracking

23

Types of Eye Trackers

Page 24: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

• Special contact lense with embedded mirror or sensor (magnetic search coils)• Very precise• Allows measurement in horizontal,

vertical and torsion directions• Expensive

24

Eye attached tracking

Page 25: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

• Measures electric potential field of eyes• Can measure eye movement even

if eyes are closed• Wearable method – also used in sleep research

• Relatively poor accuracy in gaze direction detection• Expensive

25

Electric potential measurement

Page 26: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

• Measures reflection of IR light from the front of the cornea• Contactless method• Good for fast and slow eye

movements• Inexpensive

26

Optical tracking

Page 27: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Optical Eye Tracking Principle

27

Page 28: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 28

Optical Eye Tracking Principle

IR-Light emission

Eyeball

Cornea

Reflected IR-Light

Eye Tracker

Page 29: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Human Machine Interaction

Eye Tracking

TheEyeTribe

Java and Eye tracking

Demos

2

1

3

4

29

5

Page 30: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

TheEyeTribe

30

Page 31: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Sampling rate

Accuracy

Latency

Operating range

Tracking area

Screen sizes

Support for

Connection31

TheEyeTribe

30 Hz and 60 Hz

0.5° - 1°

< 20ms at 60 Hz

45 cm - 75 cm

40 cm x 30 cm at 65 cm

up to 24"

C++, C# and Java

USB 3.0

Page 32: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 32

TheEyeTribe

APPLICATION

SDK

EyeTribe SERVER

NETWORK

HW TRACKER

Open API

External applications (e.g. Java program)

Language spec. wrappers (C++, Java etc.)

The eye tracking process.

Initializes device(s), frameworks,servers etc.No GUI - output goes through API

Page 33: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Human Machine Interaction

Eye Tracking

TheEyeTribe

Java and Eye tracking

Demos

1

4

33

5

2

3

Page 34: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 34

import com.theeyetribe.client.*;

public enum EyeTracker implements IGazeListener { INSTANCE;

private GazeData gazeData;…

private EyeTracker { init(); initBuffers(); initEyeTracker(); timer.start();}

private void init() {…};private void initBuffers() {…};

}

Java and Eye Tracking

Java package

Page 35: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 35

import com.theeyetribe.client.*;

public enum EyeTracker implements IGazeListener { INSTANCE;

private GazeData gazeData;…

private EyeTracker { init(); initBuffers(); initEyeTracker(); timer.start();}

private void init() {…};private void initBuffers() {…};

Java and Eye Tracking

implement Interface

Page 36: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 36

import com.theeyetribe.client.*;

public enum EyeTracker implements IGazeListener { INSTANCE;

private GazeData gazeData;…

private EyeTracker { init(); initBuffers(); initEyeTracker(); timer.start();}

private void init() {…};private void initBuffers() {…};

}

Java and Eye Tracking

initialize EyeTracker

Page 37: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 37

private void initEyeTracker() { GazeManager.getInstance().activate(GazeManager.ApiVersion.VERSION_1_0,

GazeManager.ClientMode.PUSH);}

Java and Eye Tracking

initialize EyeTracker

Page 38: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 38

public void start() { if (running.get()) return; running.set(true); GazeManager.getInstance().addGazeListener(this); timer.start();}

Java and Eye Tracking

start EyeTracker

Page 39: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 39

@Override public void onGazeUpdate(final GazeData GAZE_DATA) { gazeData = GAZE_DATA; xBuffer.remove(); yBuffer.remove(); xBuffer.addLast(gazeData.smoothedCoordinates.x); yBuffer.addLast(gazeData.smoothedCoordinates.y); xAvg = xBuffer.stream().mapToDouble((x) -> x).average(); yAvg = yBuffer.stream().mapToDouble((y) -> y).average();}

Java and Eye Tracking

get Gaze data

Page 40: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 40

public void stop() { GazeManager.getInstance().removeGazeListener(EyeTracker.this); GazeManager.getInstance().deactivate();}

Java and Eye Tracking

stop EyeTracker

Page 41: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

What data do you get ?

41

Page 42: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Gaze Data delivered in frames…

42

Page 43: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

• Tracking stateState of the eye and gaze tracking process. (e.g. Person in field of view)

• FixationIf the tracked gaze is currently fixated, the frame will contain that information

• Gaze CoordinatesThe point on screen (pixels) that the user is currently looking at. (Needs calibration)

• Pupil coordinatesThe position of a tracked persons pupil relative to the Tracker sensor

43

Gaze data

Page 44: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Problem…

44

Page 45: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Problem…SPEED

45

Page 46: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 46

timer = new AnimationTimer() { @Override public void handle(final long now) { if (now > lastTimerCall + UPDATE_INTERVAL) { if (null == gazeData) return; focusPoint.set(new Point2D(xAvg.getAsDouble(), yAvg.getAsDouble())); eventCounter++; leftEyeOpen.set(gazeData.leftEye.pupilSize > 0); rightEyeOpen.set(gazeData.rightEye.pupilSize > 0); state.set(gazeData.state); lastTimerCall = NOW; } } };}

Problem…SPEED

use AnimationTimer to update data in intervals

Page 47: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

• Eye tracking provides a useful and different way to interact with a UI– Control is hard, tracking a user’s interaction is easier

• Many potential applications– Helping the physically challenged– Reducing potential problems in critical systems

• www.eyetribe.com• dev.eyetribe.com/java

Conclusions And Resources

Page 48: From a certain  point of view

Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Human Machine Interaction

Eye Tracking

TheEyeTribe

Java and Eye tracking

Demos

1

4

48

5

2

3