Page 1 of 1

Duration of calibration points / recalibration

PostPosted: 04 Mar 2014, 02:46
by Rafael
Hi,

I have two questions regarding the calibration procedure:

  1. Does the time interval between a pointstart and a pointend request have any impact on calibration accuracy? If so, what would be a "good" sampling duration?
  2. If only a few calibration points are inaccurate (let's say one), will performing a new calibration with only these points "agregate" data on the previous calibration or will it replace the previous calibration (with the other good points missing because they were not shown on the second calibration)? Should we recalibrate all points?
Thanks!

Re: Duration of calibration points / recalibration

PostPosted: 04 Mar 2014, 23:36
by Martin
Right to the questions,

1. The interval or duration of a point depends on the users ability to quickly detect and fixate the target. I often calibrate at 750ms but some require a little more sample time to get good data-points. It's a good practice to wait a little (say 100-200ms) before starting to sample since eye movements tend to be "ballistic" in the sense that the jump between two points is coarsely planned and then fine tuned.

2. If one or two points have poor quality it is possible just to re-sample these and compute the calibration again. However, the new samples might affect the other points. One implementation we've done iterates over the points in the result and checks if:
- More than three points above the threshold (say 1.3 degrees), re-calibrate all points.
- Find worst point, if this is above the threshold, re-sample and check results for the effect, re-sample once more, if not improved adjust the position by moving the point towards the center and sample. This is may help when the tracker has problems with finding features needed, often this occurs for points along the edges, especially for larger displays.

Re: Duration of calibration points / recalibration

PostPosted: 05 Mar 2014, 05:07
by Rafael
Martin,

1. Sure, I was doing something like that too. :) But, as calibration results only have "one result per point" (not per point sample), I was wondering if only one (image) sample was being captured by the eyetracker, and the period of time used would be just to ensure the user had eyes open and was looking at that point, but it woudn't make sense if it was just that. What makes sense to me is to evaluate a few frames and average the result, remove outliers, and so on, so the need to wait a few milliseconds. Thanks for your answer.

2. My goal here is to allow the user to select which points he/she would like to recalibrate based on the results provided by the eyetracker. I like your approach, maybe I could adapt it to give the user "suggestions" on which point(s) should be recalibrated. My question is: what should I do to recalibrate it? I've already sent a calibration start request with pointcount = N (say 9), and sent N pointstart requests. It seems logic to me if I send a new calibration start with pointcount = 2 (if I want to recalibrate 2 points, for example), I will lose all calibration, and it will create a whole new calibration with only 2 points, is that right? I'm assuming in that case the right thing to do would be just to send more pointstart requests, only for those points I wish to recalibrate. Is that correct? How can I say I want to recalibrate those points and remove previous information about them? If I just use the same (x, y) coordinates, will the server know I want a recalibration?

On another thread, Anders said "the position of a calibration point must be unique", so I suspect this "feature" is used in these cases, right? ;)

EDIT: I tried to do that (just send the points again) and got this message for each point:

Code: Select all
{"category":"calibration","request":"pointend","statuscode":403,"values":{"statusmessage":"Another client initiated calibration"}}

What is the correct approach?

Best regards,

Rafael