PennController for IBEX › Forums › Support › Change calibration threshold randomly by participant
Tagged: calibration, eye-tracking
- This topic has 1 reply, 2 voices, and was last updated 2 years, 8 months ago by Jeremy.
-
AuthorPosts
-
December 27, 2021 at 12:00 am #7639CarlosParticipant
I’m planning an eye-tracking experiment. In the experiment, I want to change calibration threshold of the web-cam eye tracking system randomly by participant in order to verify how much increasing threshold affects the risks of losing participants.
I want to randomly assign 30, 50, or 70 as the threshold to
???
ingetEyeTracker("tracker").calibrate(???, 2)
, but I don’t know how to. Is there any way to achieve this?newTrial( "calibration", newFunction(() => $( "div:contains(Not recording), .PennController-MediaRecorder-record" ).hide() ).call(), // Explain that the website uses the participant's web-cam, and that the calibration starts newText(` <p style="text-align:center">この実験では視線計測を行うために,お使いのパソコンのウェブカメラを使用します。</p> <p style="text-align:center">この実験の実施中,みなさまがパソコン画面のどこを見ているか記録します。</p> <p style="text-align:center">これから視線計測のための調整をします。</p>`) .center() .print(), // Permission to continue newButton("同意して続行") .center() .print() .wait(newEyeTracker("tracker").test.ready()) .remove(), clear(), fullscreen(), // Start calibrating the eye-tracker, allow for up to 2 attempts // 50 means that calibration succeeds when 50% of the estimates match the click coordinates // Increase the threshold for better accuracy, but more risks of losing participants // // I want to randomly assign 30, 50, or 70 as the threshold getEyeTracker("tracker").calibrate(???, 2), // Explain that participants are required to see a green ball during the calibration session newText(`<p>試行の前に,毎回●(丸印)が画面中央に表示されます。</p> <p>丸印をクリックしてから,丸印を一定時間見続けてください。</p> <p>視線が正しく計測できている場合,実験が自動的に始まります。</p> <p>視線が正しく計測できていない場合,再調整の案内が表示されます。</p>`) .center() .print(), // Click here to continue newButton("このボタンを押すと実験が始まります").center().print().wait() );
January 10, 2022 at 11:31 am #7653JeremyKeymasterHello,
Apologies for the late reply. You can use
30+20*Math.floor(3*Math.random())
in place of???
to randomly draw a number from30
,50
and70
. However, in order to keep track of that number in your results file, you might want to do something like:caltresh = 30+20*Math.floor(3*Math.random()); newTrial( "calibration", newFunction(() => $( "div:contains(Not recording), .PennController-MediaRecorder-record" ).hide() ).call(), // Explain that the website uses the participant's web-cam, and that the calibration starts newText(`<p style="text-align:center">この実験では視線計測を行うために,お使いのパソコンのウェブカメラを使用します。</p> <p style="text-align:center">この実験の実施中,みなさまがパソコン画面のどこを見ているか記録します。</p> <p style="text-align:center">これから視線計測のための調整をします。</p>`) .center() .print(), // Permission to continue newButton("同意して続行") .center() .print() .wait(newEyeTracker("tracker").test.ready()) .remove(), clear(), fullscreen(), // Start calibrating the eye-tracker, allow for up to 2 attempts // 50 means that calibration succeeds when 50% of the estimates match the click coordinates // Increase the threshold for better accuracy, but more risks of losing participants getEyeTracker("tracker").calibrate(caltresh, 2), // Explain that participants are required to see a green ball during the calibration session newText(`<p>試行の前に,毎回●(丸印)が画面中央に表示されます。</p> <p>丸印をクリックしてから,丸印を一定時間見続けてください。</p> <p>視線が正しく計測できている場合,実験が自動的に始まります。</p> <p>視線が正しく計測できていない場合,再調整の案内が表示されます。</p>`) .center() .print(), // Click here to continue newButton("このボタンを押すと実験が始まります").center().print().wait() ) .log("calibration", caltresh)
Jeremy
-
AuthorPosts
- You must be logged in to reply to this topic.