Threshold-limited controller that eliminates small or unreliable shifts. More...
#include <Neuro/SaccadeControllers.H>
Public Member Functions | |
ThresholdSaccadeController (OptionManager &mgr, const SaccadeBodyPart bodypart) | |
Constructor. | |
virtual | ~ThresholdSaccadeController () |
Destructor. | |
virtual void | reset1 () |
Reset ThresholdSaccadeController. | |
virtual void | checkPercepts (bool &areclose, Point2D< int > &avgp) |
Check queued-up percepts and return average. | |
Protected Member Functions | |
virtual void | doEvolve (SimEventQueue &q) |
evolve one time step | |
virtual void | computeWhenNewPercept (SimEventQueue &q) |
This method is called each time a new percept has arrived. | |
virtual void | computeWhenResetPos (SimEventQueue &q) |
This method is called each time a reset is made. | |
virtual Point2D< int > | computeWhenNewDecision (SaccadeState &sacstate, bool &blinkstate, SimEventQueue &q) |
This method is called each time a new decision is requested. | |
virtual void | start1 () |
Get us started. | |
Protected Attributes | |
OModelParam< float > | itsOdist |
min overt distance | |
OModelParam< float > | itsCdist |
max covert distance | |
OModelParam< int > | itsMinNum |
min number of close covert shifts | |
OModelParam< bool > | itsSalWeight |
weight average covert pos by saliency | |
nub::ref< SpatialMetrics > | itsMetrics |
metrics that depend on input size | |
float | odistsq |
float | cdistsq |
bool | sweight |
bool | didresetpos |
Point2D< int > | resetloc |
Friends | |
class | ThresholdFrictionSaccadeController |
Threshold-limited controller that eliminates small or unreliable shifts.
ThresholdSaccadeController will issue an overt control whenever the received covert shifts are large and go to a same target for several successive covert shifts. It is hence to be used with IOR turned off, so that the covert system will keep attending to a same location for a while. Once a minimum number of covert shifts have been made that are sufficiently far from the current overt location and that are sufficiently close to each other, an overt shift will be issued, to the average location of the accumulated covert locations.
Definition at line 204 of file SaccadeControllers.H.
ThresholdSaccadeController::ThresholdSaccadeController | ( | OptionManager & | mgr, | |
const SaccadeBodyPart | bodypart | |||
) |
Constructor.
minovertdist | minimum distance required to warrant an overt shift (in pixels at the original image's scale). | |
maxcovertdist | maximum distance to consider that two covert shifts point to the "same" location. | |
minfix | minimum number of covert shifts within maxcovertdist of each other and farther than minovertdist from the curent overt fixation, such as to warrant an overt shift. | |
sweigh | if true, average covert location is a weighted average with saliency values at the covert locations used as weights. Otherwise, the weight of each covert location is unity. | |
part | As this controller may be used either for the eye or for the head (as part of bigger controllers that include both eye and head), this should be either SaccadeBodyPartEye or SaccadeBodyPartHead and will determine which model options we use for our internal parameters (eye or head) |
Definition at line 317 of file SaccadeControllers.C.
References ModelComponent::addSubComponent(), and itsMetrics.
ThresholdSaccadeController::~ThresholdSaccadeController | ( | ) | [virtual] |
Destructor.
Definition at line 356 of file SaccadeControllers.C.
void ThresholdSaccadeController::checkPercepts | ( | bool & | areclose, | |
Point2D< int > & | avgp | |||
) | [virtual] |
Check queued-up percepts and return average.
check whether queued-up percepts are close to each other, and also return average position of percept queue
Definition at line 374 of file SaccadeControllers.C.
References SaccadeController::getPreviousPercept(), OModelParam< T >::getVal(), Point2D< T >::i, WTAwinner::isValid(), itsSalWeight, WTAwinner::p, Point2D< T >::squdist(), and WTAwinner::sv.
Referenced by computeWhenNewDecision().
Point2D< int > ThresholdSaccadeController::computeWhenNewDecision | ( | SaccadeState & | sacstate, | |
bool & | blinkstate, | |||
SimEventQueue & | q | |||
) | [protected, virtual] |
This method is called each time a new decision is requested.
Implements SaccadeController.
Definition at line 417 of file SaccadeControllers.C.
References checkPercepts(), SaccadeController::getPreviousDecision(), SaccadeController::haveDecisions(), SaccadeController::havePercepts(), Point2D< T >::isValid(), Point2DT::p, SACSTATE_FIX, SACSTATE_SAC, SACSTATE_UNK, and Point2D< T >::squdist().
void ThresholdSaccadeController::computeWhenNewPercept | ( | SimEventQueue & | q | ) | [protected, virtual] |
This method is called each time a new percept has arrived.
Implements SaccadeController.
Definition at line 400 of file SaccadeControllers.C.
void ThresholdSaccadeController::computeWhenResetPos | ( | SimEventQueue & | q | ) | [protected, virtual] |
This method is called each time a reset is made.
Implements SaccadeController.
Definition at line 404 of file SaccadeControllers.C.
References SaccadeController::getPreviousPercept(), and WTAwinner::p.
void ThresholdSaccadeController::doEvolve | ( | SimEventQueue & | q | ) | [protected, virtual] |
evolve one time step
Implements SaccadeController.
Definition at line 360 of file SaccadeControllers.C.
void ThresholdSaccadeController::reset1 | ( | ) | [virtual] |
Reset ThresholdSaccadeController.
See the base function in ModelComponent.H for info.
Reimplemented from SaccadeController.
Definition at line 364 of file SaccadeControllers.C.
void ThresholdSaccadeController::start1 | ( | ) | [protected, virtual] |
Get us started.
Reimplemented from SimModule.
Definition at line 343 of file SaccadeControllers.C.
References OModelParam< T >::getVal(), itsCdist, itsMetrics, itsMinNum, itsOdist, and SaccadeController::resetPqlen().
OModelParam<float> ThresholdSaccadeController::itsCdist [protected] |
nub::ref<SpatialMetrics> ThresholdSaccadeController::itsMetrics [protected] |
metrics that depend on input size
Definition at line 263 of file SaccadeControllers.H.
Referenced by start1(), and ThresholdSaccadeController().
OModelParam<int> ThresholdSaccadeController::itsMinNum [protected] |
min number of close covert shifts
Definition at line 260 of file SaccadeControllers.H.
Referenced by start1().
OModelParam<float> ThresholdSaccadeController::itsOdist [protected] |
OModelParam<bool> ThresholdSaccadeController::itsSalWeight [protected] |
weight average covert pos by saliency
Definition at line 261 of file SaccadeControllers.H.
Referenced by checkPercepts().