Millisecond Forums

Image recognition task

https://forums.millisecond.com/Topic35369.aspx

By momo - 5/11/2023

Hello everyone, 
I am working on an image recognition task. I am showing around 200 images for 3 seconds, after which automatically a next page should appear with a couple of slider questions. The questions need to be answered in order to go to the next image (by clicking continue; or when the last question is answered).
I also later on want to show old (already presented) and new (not previously presented) images and ask whether the images were seen before or not, but I think it makes sense to firstly finish the first part of the survey and then to consider this.

I seem to have all the individual elements ready (slider questions, images) but I do not know how to bring it all in the right order. Perhaps I would need blocks, consisting of the trial showing the image and the trial with the slider questions, or something similar. I have tried a lot but were so far not very succesfull. Therefore, I would be very grateful for any help.

Thank you very much in advance!
Momo
By Dave - 5/11/2023

momo - 5/11/2023
Hello everyone, 
I am working on an image recognition task. I am showing around 200 images for 3 seconds, after which automatically a next page should appear with a couple of slider questions. The questions need to be answered in order to go to the next image (by clicking continue; or when the last question is answered).
I also later on want to show old (already presented) and new (not previously presented) images and ask whether the images were seen before or not, but I think it makes sense to firstly finish the first part of the survey and then to consider this.

I seem to have all the individual elements ready (slider questions, images) but I do not know how to bring it all in the right order. Perhaps I would need blocks, consisting of the trial showing the image and the trial with the slider questions, or something similar. I have tried a lot but were so far not very succesfull. Therefore, I would be very grateful for any help.

Thank you very much in advance!
Momo

You need a <trial> that displays a <picture> element for 3000ms. Note: <picture> element, not <image>. <image> is for use with <surveypage> elements only. From that <trial>, /branch to a <surveypage> containing your <slider> and other question elements. Run the requisite amount of trials via a <block>.

You can refer to https://www.millisecond.com/download/library/faceemotions as a working example of exactly that.
By Dave - 5/11/2023

Dave - 5/11/2023
momo - 5/11/2023
Hello everyone, 
I am working on an image recognition task. I am showing around 200 images for 3 seconds, after which automatically a next page should appear with a couple of slider questions. The questions need to be answered in order to go to the next image (by clicking continue; or when the last question is answered).
I also later on want to show old (already presented) and new (not previously presented) images and ask whether the images were seen before or not, but I think it makes sense to firstly finish the first part of the survey and then to consider this.

I seem to have all the individual elements ready (slider questions, images) but I do not know how to bring it all in the right order. Perhaps I would need blocks, consisting of the trial showing the image and the trial with the slider questions, or something similar. I have tried a lot but were so far not very succesfull. Therefore, I would be very grateful for any help.

Thank you very much in advance!
Momo

You need a <trial> that displays a <picture> element for 3000ms. Note: <picture> element, not <image>. <image> is for use with <surveypage> elements only. From that <trial>, /branch to a <surveypage> containing your <slider> and other question elements. Run the requisite amount of trials via a <block>.

You can refer to https://www.millisecond.com/download/library/faceemotions as a working example of exactly that.

For the old / new recogniton paradigm aspect, this has been discussed repeatedly here, so you may want to look at
https://forums.millisecond.com/Topic17069.aspx#17070
https://forums.millisecond.com/Topic21813.aspx#21829 or
https://forums.millisecond.com/Topic34066.aspx
By momo - 5/11/2023

Thank you very much for the quick and helpful reply!
By momo - 5/23/2023

Hello everyone. 
I have a follow-up question regarding the old/new paradigm. I want to show participants a sequence of images (around 200 images), displayed for 1second, followed by a fixation cross for 1.4 seconds. Their task should be to press the space bar anytime an image appears twice (pressing the space bar should be possible any time in the sequence). I also want to include filler images and vigilance images (showed for 1 sec as well). This set-up has been done in for example Khosla et al. (2015), doi: 10.1109/ICCV.2015.275 and Isola et al (2014), doi: 10.1109/TPAMI.2013.200.

I already have a script showing images and fixation crosses. I am however very unsure how to add the space bar command and how the data would be best stored (e.g., is it possible to see hit rate and false alarm rate). This is the script I have so far (only for the first couple of images): 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%
BEGIN  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%

<expressions fixationduration>
/ fixationdurations = (1400)
</expressions>

<defaults>
/ screencolor = white
/ inputdevice = keyboard
</defaults>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FIXATION & SPECIFICATIONS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

<trial fixation>
/ stimulusframes = [1=fix]
/ trialduration = expressions.fixationdurations
/ validresponse = (noresponse)
</trial>

<image fix>
/ items = ("Slide3.jpg")
/ position = (8.5, 0)
/ imagesize = (50%, 50%)
</image>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TRIAL 1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

<trial 1>
/ stimulusframes = [1=n_sp_001]
/ timeout = 1000
</trial>

<image n_sp_001>
/ items = ("n_sp_001.jpg")
/ position = (8.5, 0)
/ imagesize = (65%, 65%)
</image>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TRIAL 2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

<trial 2>
/ stimulusframes = [1=n_sp_002]
/ timeout = 1000
</trial>

<image n_sp_002>
/ items = ("n_sp_002.jpg")
/ position = (8.5, 0)
/ imagesize = (65%, 65%)
</image>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TRIAL 3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

<trial 3>
/ stimulusframes = [1=n_sp_003]
/ timeout = 1000
</trial>

<image n_sp_003>
/ items = ("n_sp_003.jpg")
/ position = (8.5, 0)
/ imagesize = (65%, 65%)
</image>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TRIAL 4
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

<trial 4>
/ stimulusframes = [1=n_sp_004]
/ timeout = 1000
</trial>

<image n_sp_004>
/ items = ("n_sp_004.jpg")
/ position = (8.5, 0)
/ imagesize = (65%, 65%)
</image>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TRIAL 5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

<trial 5>
/ stimulusframes = [1=n_sp_005]
/ timeout = 1000
</trial>

<image n_sp_005>
/ items = ("n_sp_005.jpg")
/ position = (8.5, 0)
/ imagesize = (65%, 65%)
</image>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TRIAL 6
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

<trial 6>
/ stimulusframes = [1=n_sp_006]
/ timeout = 1000
</trial>

<image n_sp_006>
/ items = ("n_sp_006.jpg")
/ position = (8.5, 0)
/ imagesize = (65%, 65%)
</image>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

<surveypage instruction>
/ stimulusframes = [1=slide1]
/ showpagenumbers = false
</surveypage>

<image slide1>
/ items = ("Slide1.jpg")
/ position = (8.5, 0)
/ imagesize = (75%, 75%)
</image>

<block recognition>
/trials = [1-1 = surveypage.instruction,
                trial.fixation, trial.1, trial.fixation, trial.2, trial.fixation, trial.3, trial.fixation, trial.4, trial.fixation, trial.5, trial.fixation,
                 trial.6]
</block>


How would I add the response with the space bar? Would I need to change validresponse, or add a response command? Or do I have to rewrite the script?

I am very grateful for any help! Many thanks in advance. 
Momo
By Dave - 5/23/2023

momo - 5/23/2023
Hello everyone. 
I have a follow-up question regarding the old/new paradigm. I want to show participants a sequence of images (around 200 images), displayed for 1second, followed by a fixation cross for 1.4 seconds. Their task should be to press the space bar anytime an image appears twice (pressing the space bar should be possible any time in the sequence). I also want to include filler images and vigilance images (showed for 1 sec as well). This set-up has been done in for example Khosla et al. (2015), doi: 10.1109/ICCV.2015.275 and Isola et al (2014), doi: 10.1109/TPAMI.2013.200.

I already have a script showing images and fixation crosses. I am however very unsure how to add the space bar command and how the data would be best stored (e.g., is it possible to see hit rate and false alarm rate). This is the script I have so far (only for the first couple of images): 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%
BEGIN  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%

<expressions fixationduration>
/ fixationdurations = (1400)
</expressions>

<defaults>
/ screencolor = white
/ inputdevice = keyboard
</defaults>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FIXATION & SPECIFICATIONS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

<trial fixation>
/ stimulusframes = [1=fix]
/ trialduration = expressions.fixationdurations
/ validresponse = (noresponse)
</trial>

<image fix>
/ items = ("Slide3.jpg")
/ position = (8.5, 0)
/ imagesize = (50%, 50%)
</image>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TRIAL 1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

<trial 1>
/ stimulusframes = [1=n_sp_001]
/ timeout = 1000
</trial>

<image n_sp_001>
/ items = ("n_sp_001.jpg")
/ position = (8.5, 0)
/ imagesize = (65%, 65%)
</image>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TRIAL 2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

<trial 2>
/ stimulusframes = [1=n_sp_002]
/ timeout = 1000
</trial>

<image n_sp_002>
/ items = ("n_sp_002.jpg")
/ position = (8.5, 0)
/ imagesize = (65%, 65%)
</image>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TRIAL 3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

<trial 3>
/ stimulusframes = [1=n_sp_003]
/ timeout = 1000
</trial>

<image n_sp_003>
/ items = ("n_sp_003.jpg")
/ position = (8.5, 0)
/ imagesize = (65%, 65%)
</image>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TRIAL 4
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

<trial 4>
/ stimulusframes = [1=n_sp_004]
/ timeout = 1000
</trial>

<image n_sp_004>
/ items = ("n_sp_004.jpg")
/ position = (8.5, 0)
/ imagesize = (65%, 65%)
</image>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TRIAL 5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

<trial 5>
/ stimulusframes = [1=n_sp_005]
/ timeout = 1000
</trial>

<image n_sp_005>
/ items = ("n_sp_005.jpg")
/ position = (8.5, 0)
/ imagesize = (65%, 65%)
</image>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TRIAL 6
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

<trial 6>
/ stimulusframes = [1=n_sp_006]
/ timeout = 1000
</trial>

<image n_sp_006>
/ items = ("n_sp_006.jpg")
/ position = (8.5, 0)
/ imagesize = (65%, 65%)
</image>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

<surveypage instruction>
/ stimulusframes = [1=slide1]
/ showpagenumbers = false
</surveypage>

<image slide1>
/ items = ("Slide1.jpg")
/ position = (8.5, 0)
/ imagesize = (75%, 75%)
</image>

<block recognition>
/trials = [1-1 = surveypage.instruction,
                trial.fixation, trial.1, trial.fixation, trial.2, trial.fixation, trial.3, trial.fixation, trial.4, trial.fixation, trial.5, trial.fixation,
                 trial.6]
</block>


How would I add the response with the space bar? Would I need to change validresponse, or add a response command? Or do I have to rewrite the script?

I am very grateful for any help! Many thanks in advance. 
Momo

If you want a <trial> to accept some response, then -- at a minimum -- you need to specify a /validresponse attribute in the given <trial> element. I.e. /validresponse = (" ") or /validresponse = (57) if you want the trial to accept a press of the spacebar as response.

It is unclear to me why you think it necessary to set up a separate <trial> for each and every single image item you plan to display. That strikes me as tedious and inefficient. Also, as I already told you previously, <image> elements cannot be used in <trial> elements. <image> elements are for use in <surveypage>s only.

You need to use <picture> elements with <trial>s
By momo - 5/28/2023

Thank you very much!