Page 1 of 1

One Eye Tracking

PostPosted: 22 Jul 2014, 01:28
by ryklin
Can the eyetribe reliably track my gaze when only one eye is open?

Re: One Eye Tracking

PostPosted: 22 Jul 2014, 04:48
by ryklin
For example, I am interested in developing a monocular vision test that utilizes eye tracking technology. If I could place an eye patch over one eye, that would be ideal. Otherwise, if the tracker algs are designed to see both eyes simultaneously, what filters can I use to block one eye?

Re: One Eye Tracking

PostPosted: 23 Jul 2014, 21:50
by greg
I'm only doing low-res and horizontal-only tracking, but it still works OK with one eye open and the other closed.

Re: One Eye Tracking

PostPosted: 30 Jul 2014, 00:01
by ryklin
It's strange to hear you say that... if I close any one eye the system will not calibrate. Using the eyetribe calibration system, when closing one eye it turns red (no signal). It does detect just one eye for about a second, and then turns "red" on the GUI showing the pupil size and position.

I think I have overcome the problem however using IR Filters.

Re: One Eye Tracking

PostPosted: 06 Aug 2014, 15:21
by Javier
It should be possible to calibrate using only one eye, although accuracy and performance may be slightly worse than when using both eyes.

You may want to try version 0.9.40 released last week and see if you get better results.

Re: One Eye Tracking

PostPosted: 14 Aug 2014, 20:17
by ryklin
tired it with 09.41, works great. Thanks!

Re: One Eye Tracking

PostPosted: 14 Aug 2014, 21:03
by ryklin
Sorry, there are some pitfalls with one eye tracking.

First, worth mentioning is that if you calibrate using 1 eye, you must continue using the eye tracker with just one eye.

However, in the CPP SDK, if you only use one eye, GD_STATE_TRACKING_FAIL gets called, and GD_STATE_TRACKING_GAZE does not get called. We were instructed to catch these states in our code. Also, the location of the pupil, for the missing eye (gazedata.lefteye.pcenter.x, gazedata.lefteye.pcenter.y) or (gazedata.righteye.pcenter.x, gazedata.righteye.pcenter.y), is some strange value. If you could tweak this that would allow us to derive the location of the missing pupil as the Y axis image of the known pupil, and potentially discriminate between a tracking fail vs a "tracking only found one eye".

not ready for production use.

Re: One Eye Tracking

PostPosted: 15 Aug 2014, 18:33
by Javier
We have fixed the issue you mention about calibrating with one eye and tracking with two, it will be part of the next release.

Regarding the tracking states, you are right about the one eye situation, and is something that we plan to fix. For now we recommend that you check against the gaze coordinates for each eye, as seen in the C# samples here:

Code: Select all
        public void OnGazeUpdate(GazeData gazeData)
        {
            var x = (int)Math.Round(gazeData.SmoothedCoordinates.X, 0);
            var y = (int)Math.Round(gazeData.SmoothedCoordinates.Y, 0);
            if (x == 0 & y == 0) return;
            // Invoke thread
            Dispatcher.BeginInvoke(new Action(() => UpdateUI(x, y)));
        }

Re: One Eye Tracking

PostPosted: 07 Oct 2014, 06:01
by ryklin
Thank you. I will revisit this after the next release. I assume that will be 0.9.4.2?