elicit-experiment / api

Elicit API
Creative Commons Attribution 4.0 International
2 stars 1 forks source link

Face_landmark definition #6

Open iainbryson opened 1 month ago

iainbryson commented 1 month ago

We are currently defining it like this

trial_definition_specification = dict(trial_definition=dict(name='Landmarker calibration',
                                                            definition_data=dict(
                                                                    TrialType='Calibration',
                                                                    type='NewComponent::FaceLandmark',
                                                                    MaxNoOfAttempts='2',
                                                                    MinCalibrationAccuracyPct='20'
                                                                    )))

What we are thinking is to do it like this instead where we are including some extra parameters.

trial_definition_specification = dict(trial_definition=dict(name='Landmarker calibration',
                                                            definition_data=dict(
                                                                    TrialType='Calibration',
                                                                    type='FaceLandmark',
                                                                    NumberOfFaces = '2', # number of faces expected in the interface
                                                                    Landmarks=True, # return lanmark data
                                                                    Blendshapes=True, #  return blendshape
                                                                    FaceTransformation=True, # indcate if the affine transform should be performed or not
                                                                    CalibrationDuration='5' #duration of face within view measured in seconds
                                                                    )))
iainbryson commented 4 weeks ago

@madjens Regarding

FaceTransformation=True,  # indicate if the affine transform should be performed or not

This doesn't seem to match the configuration parameter for the landmarker:

image

iainbryson commented 4 weeks ago

Here's what's implemented now:

Property Result
NumberOfFaces Number of faces to detect.
Landmarks Return Landmark data
BlendShapes Return Blendshapes data
FaceTransformation Return the face transformation matrices
StripZCoordinates Strip Z coordinates from Landmarks data
IncludeBlandshapes eyeLookInRight,eyeLookInLeft Comma separates list of Blendshapes
to include.
Removes the faceLandmarks not belonging the the included BlendShape
iainbryson commented 4 weeks ago

Also, there's potential to save a bunch of space with another option, say BlendshapeLandmarksOnly where we only send the landmarks for any of the (52) Blendshapes rather than the full 400+ points for the full face.

What do you think @madjens