NeuroOpts.C

Go to the documentation of this file.
00001 /*!@file Neuro/NeuroOpts.C */
00002 
00003 // //////////////////////////////////////////////////////////////////// //
00004 // The iLab Neuromorphic Vision C++ Toolkit - Copyright (C) 2000-2005   //
00005 // by the University of Southern California (USC) and the iLab at USC.  //
00006 // See http://iLab.usc.edu for information about this project.          //
00007 // //////////////////////////////////////////////////////////////////// //
00008 // Major portions of the iLab Neuromorphic Vision Toolkit are protected //
00009 // under the U.S. patent ``Computation of Intrinsic Perceptual Saliency //
00010 // in Visual Environments, and Applications'' by Christof Koch and      //
00011 // Laurent Itti, California Institute of Technology, 2001 (patent       //
00012 // pending; application number 09/912,225 filed July 23, 2001; see      //
00013 // http://pair.uspto.gov/cgi-bin/final/home.pl for current status).     //
00014 // //////////////////////////////////////////////////////////////////// //
00015 // This file is part of the iLab Neuromorphic Vision C++ Toolkit.       //
00016 //                                                                      //
00017 // The iLab Neuromorphic Vision C++ Toolkit is free software; you can   //
00018 // redistribute it and/or modify it under the terms of the GNU General  //
00019 // Public License as published by the Free Software Foundation; either  //
00020 // version 2 of the License, or (at your option) any later version.     //
00021 //                                                                      //
00022 // The iLab Neuromorphic Vision C++ Toolkit is distributed in the hope  //
00023 // that it will be useful, but WITHOUT ANY WARRANTY; without even the   //
00024 // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      //
00025 // PURPOSE.  See the GNU General Public License for more details.       //
00026 //                                                                      //
00027 // You should have received a copy of the GNU General Public License    //
00028 // along with the iLab Neuromorphic Vision C++ Toolkit; if not, write   //
00029 // to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,   //
00030 // Boston, MA 02111-1307 USA.                                           //
00031 // //////////////////////////////////////////////////////////////////// //
00032 //
00033 // Primary maintainer for this file:
00034 // $HeadURL: svn://isvn.usc.edu/software/invt/trunk/saliency/src/Neuro/NeuroOpts.C $
00035 // $Id: NeuroOpts.C 14677 2011-04-04 19:37:18Z dberg $
00036 //
00037 
00038 #ifndef NEURO_NEUROOPTS_C_DEFINED
00039 #define NEURO_NEUROOPTS_C_DEFINED
00040 
00041 #include "Neuro/NeuroOpts.H"
00042 
00043 #include "Channels/ChannelOpts.H"
00044 #include "Component/ModelOptionDef.H"
00045 #include "Component/OptionManager.H" // for REQUEST_OPTIONALIAS_NEURO()
00046 #include "Image/Dims.H"
00047 #include "Image/Pixels.H"
00048 #include "Image/Point2D.H"
00049 #include "Psycho/PixPerDeg.H"
00050 #include "Image/fancynorm.H"
00051 #include "ModelNeuron/Location.H"
00052 #include "Media/MediaOpts.H" // for MOC_SAC
00053 #include "Neuro/IORtypes.H"
00054 #include "Neuro/ShapeEstimatorModes.H"
00055 #include "SIFT/VisualObjectMatchAlgo.H"
00056 #include "Util/SimTime.H"
00057 
00058 const ModelOptionCateg MOC_DISPLAY = {
00059   MOC_SORTPRI_2, "What to Display/Save Options" };
00060 
00061 // Format here is:
00062 //
00063 // { MODOPT_TYPE, "name", &MOC_CATEG, OPTEXP_CORE,
00064 //   "description of what option does",
00065 //   "long option name", 'short option name', "valid values", "default value" }
00066 //
00067 
00068 // alternatively, for MODOPT_ALIAS option types, format is:
00069 //
00070 // { MODOPT_ALIAS, "", &MOC_ALIAS, OPTEXP_CORE,
00071 //   "description of what alias does",
00072 //   "long option name", 'short option name', "", "list of options" }
00073 //
00074 
00075 // NOTE: do not change the default value of any existing option unless
00076 // you really know what you are doing!  Many components will determine
00077 // their default behavior from that default value, so you may break
00078 // lots of executables if you change it.
00079 
00080 // #################### PrefrontalCortex options:
00081 const ModelOptionCateg MOC_PFC = {
00082   MOC_SORTPRI_3,   "PrefrontalCortex-Related Options" };
00083 
00084 // Used by: RetinaConfigurator
00085 const ModelOptionDef OPT_PrefrontalCortexType =
00086   { MODOPT_ARG_STRING, "PFCType", &MOC_PFC, OPTEXP_CORE,
00087     "Type of PrefrontalCortex to use. 'Stub' for a simple pass-through "
00088     "of input (no biasing), 'OG' for the Optimal Gains pfc, 'SB' "
00089     "for SalBayes Bayesian tuning of receptors, 'GS' for Guided Search. ",
00090     "pfc-type", '\0', "<Stub|OG|SB|GS>", "Stub" };
00091 
00092 
00093 // #################### Retina options:
00094 const ModelOptionCateg MOC_RETINA = {
00095   MOC_SORTPRI_3,   "Retina-Related Options" };
00096 
00097 // Used by: RetinaConfigurator
00098 const ModelOptionDef OPT_RetinaType =
00099   { MODOPT_ARG_STRING, "RetinaType", &MOC_RETINA, OPTEXP_CORE,
00100     "Type of Retina to use. 'Stub' for a simple pass-through of input "
00101     "frames, 'Std' for the standard retina that can foveate, shift inputs "
00102     "to eye position, embed inputs within a larger framing image, foveate "
00103     "inputs, etc. Use CT for a cortical or collicular transfrom (log-polar) of "
00104     "the input image", "retina-type", '\0', "<Stub|Std|CT>", "Std" };
00105 
00106 // Used by: RetinaStd
00107 const ModelOptionDef OPT_InputFramingImageName =
00108   { MODOPT_ARG_STRING, "InputFramingImageName", &MOC_RETINA, OPTEXP_CORE,
00109     "Filename of an image to used as a background into which input "
00110     "frames will be embedded before processing. This image must be larger "
00111     "than the input frames to be processed.",
00112     "input-framing", '\0', "<imagefile>", "" };
00113 
00114 // Used by: RetinaStd
00115 const ModelOptionDef OPT_InputFramingImagePos =
00116   { MODOPT_ARG(Point2D<int>), "InputFramingImagePos", &MOC_RETINA, OPTEXP_CORE,
00117     "Position of the top-left corner of the input frames once embedded "
00118     "into the larger background image specified by --input-framing, if any.",
00119     "input-framing-pos", '\0', "<i,j>", "0,0" };
00120 
00121 // Used by: Retina
00122 const ModelOptionDef OPT_FoveateInputDepth =
00123   { MODOPT_ARG(uint), "FoveateInputDepth", &MOC_RETINA, OPTEXP_CORE,
00124     "Depth of pyramid to use to foveate input frames",
00125     "foveate-input-depth", '\0', "<uint>", "0" };
00126 
00127 // Used by: Retina
00128 const ModelOptionDef OPT_ShiftInputToEye =
00129   { MODOPT_FLAG, "ShiftInputToEye", &MOC_RETINA, OPTEXP_CORE,
00130     "Shift input frames so that they are centered at current eye position",
00131     "shift-input", '\0', "", "false" };
00132 
00133 // Used by: Retina
00134 const ModelOptionDef OPT_ShiftInputToEyeBGcol =
00135   { MODOPT_ARG(PixRGB<byte>), "ShiftInputToEyeBGcol", &MOC_RETINA, OPTEXP_CORE,
00136     "Background color to use when shifting inputs using --shift-input",
00137     "shift-input-bgcol", '\0', "<r,g,b>", "64,64,64" };
00138 
00139 // Used by: Retina
00140 const ModelOptionDef OPT_InputFOV =
00141   { MODOPT_ARG(Dims), "InputFOV", &MOC_RETINA, OPTEXP_CORE,
00142     "If non-empty, centrally crop the input images to the given "
00143     "field-of-view dimensions",
00144     "input-fov", '\0', "<w>x<h>", "0x0" };
00145 
00146 // Used by: Retina
00147 const ModelOptionDef OPT_RetinaSaveInput =
00148   { MODOPT_FLAG, "RetinaSaveInput", &MOC_RETINA, OPTEXP_CORE,
00149     "Save retinal input images, with prefix RETIN-",
00150     "save-retina-input", '\0', "", "false" };
00151 
00152 // Used by: Retina
00153 const ModelOptionDef OPT_RetinaSaveOutput =
00154   { MODOPT_FLAG, "RetinaSaveOutput", &MOC_RETINA, OPTEXP_CORE,
00155     "Save retina output (possibly including foveation, shifting, "
00156     "embedding, etc), with prefix RETOUT-",
00157     "save-retina-output", '\0', "", "false" };
00158 
00159 // Used by: RetinaStd
00160 const ModelOptionDef OPT_RetinaStdSavePyramid =
00161   { MODOPT_FLAG, "RetinaStdSavePyramid", &MOC_RETINA, OPTEXP_CORE,
00162     "Save pyramid used for retinal foveation, with prefix RET<level>-",
00163     "save-retina-pyr", '\0', "", "false" };
00164 
00165 // Used by: RetinaStd
00166 const ModelOptionDef OPT_RetinaMaskFname =
00167   { MODOPT_ARG_STRING, "RetinaMaskFname", &MOC_RETINA, OPTEXP_CORE,
00168     "Mask retinal input images by a greyscale byte image of same dims, "
00169     "where 0 will transform a retinal pixel to black, 255 will not affect "
00170     "it, and intermediate values will fade it to black.",
00171     "retina-mask", '\0', "<filename>", "" };
00172 
00173 // Used by: Retina
00174 const ModelOptionDef OPT_RetinaFlipHoriz =
00175   { MODOPT_FLAG, "RetinaFlipHoriz", &MOC_RETINA, OPTEXP_CORE,
00176     "Flip raw input images (before any embedding) horizontally.",
00177     "flip-input-horiz", '\0', "", "false" };
00178 
00179 // Used by: Retina
00180 const ModelOptionDef OPT_RetinaFlipVertic =
00181   { MODOPT_FLAG, "RetinaFlipVertic", &MOC_RETINA, OPTEXP_CORE,
00182     "Flip raw input images (before any embedding) vertically.",
00183     "flip-input-vertic", '\0', "", "false" };
00184 
00185 // #################### VisualCortex options:
00186 
00187 // Used by: VisualCortex, Brain, SingleChannel (and derivatives)
00188 const ModelOptionDef OPT_VisualCortexType =
00189   { MODOPT_ARG_STRING, "VisualCortexType", &MOC_VCX, OPTEXP_CORE,
00190     "Type of VisualCortex to use:\n"
00191     "  None: no VisualCortex at all\n"
00192     "  Std: use standard (floating-point) channels, most flexible\n"
00193     "  Beo: use Beowulf channels (requires Beowulf cluster)\n"
00194     "  Surp: use Surprise channels, the fanciest to date\n"
00195     "  Int: use integer-math channels, fast yet somewhat flexible\n"
00196     "  Env: use super-fast integer-math channels, the fastest to date\n"
00197     "  Entrop: entropy model, computing pixel entropy in 16x16 image patches\n"
00198     "  EyeMvt: fake visual cortex built from human eye movement traces\n"
00199     "  PN03contrast: Parkhurst & Niebur'03 contrast model\n"
00200     "  Variance: local variance in 16x16 image patches\n"
00201     "  Michelson: Michelson contrast as in Mannan, Ruddock & Wooding '96\n"
00202     "  Tcorr: temporal correlation in image patches across frames\n"
00203     "  Scorr: spatial correlation between image patches in a frame\n"
00204     "  Info: DCT-based local information measure as in Itti et al, PAMI 1998\n"
00205     "  SpectralResidual: Spectral residual cortex\n"
00206     "  MultiSpectralResidual: Multi spectral residual cortex\n"
00207     "You may also configure which channels to use in your VisualCortex by "
00208     "specifying a series of letters through the option --vc-chans. Finally, "
00209     "you can apply modifiers by prefixing them to your vc type:\n"
00210     "  Thread: is a modifier that works with Std, Surp, etc and\n"
00211     "      is used to dispatch computations to worker threads; (note\n"
00212     "      that to actually create the worker threads you must also give\n"
00213     "      a '-j N' option to create N threads); it is OK to have fewer\n"
00214     "      threads than channels, in which case each thread would simply\n"
00215     "      perform more than one channel computation per input cycle).\n"
00216     "      EXAMPLE: --vc-type=Thread:Surp",
00217     "vc-type", '\0',
00218     "<None|Std|Beo|Surp|Int|Env|...>",
00219     "Std" };
00220 
00221 // Used by: VisualCortexEyeMvt
00222 const ModelOptionDef OPT_VCEMeyeFnames =
00223   { MODOPT_ARG_STRING, "VCEMeyeFnames", &MOC_VCX, OPTEXP_CORE,
00224     "Comma-separated list of human eye movement file names",
00225     "vcem-eyefnames", '\0', "<name1,name2,...>", "" };
00226 
00227 // Used by: VisualCortexEyeMvt
00228 const ModelOptionDef OPT_VCEMsigma =
00229   { MODOPT_ARG(float), "VCEMsigma", &MOC_VCX, OPTEXP_CORE,
00230     "Sigma of gaussian blob plotted at each human eye position, in pixels "
00231     "at the scale of the saliency map, or 0.0 to plot a single pixel",
00232     "vcem-sigma", '\0', "<float>", "3.0" };
00233 
00234 // Used by: VisualCortexEyeMvt
00235 const ModelOptionDef OPT_VCEMforgetFac =
00236   { MODOPT_ARG(float), "VCEMforgetFac", &MOC_VCX, OPTEXP_CORE,
00237     "Forgetting factor to be applied at every evolve of VisualCortexEyeMvt",
00238     "vcem-forgetfac", '\0', "<float>", "0.9995" };
00239 
00240 // Used by: VisualCortexEyeMvt
00241 const ModelOptionDef OPT_VCEMdelay =
00242   { MODOPT_ARG(uint), "VCEMdelay", &MOC_VCX, OPTEXP_CORE,
00243     "Human-to-human delay, in eye tracker samples",
00244     "vcem-delay", '\0', "<uint>", "24" };
00245 
00246 // Used by: VisualCortexEyeMvt
00247 const ModelOptionDef OPT_VCEMuseMax =
00248   { MODOPT_FLAG, "VCEMuseMax", &MOC_VCX, OPTEXP_CORE,
00249     "Use max to comabine across humans, otherwise sum",
00250     "vcem-usemax", '\0', "", "false" };
00251 
00252 // Used by: VisualCortexEyeMvt
00253 const ModelOptionDef OPT_VCEMsaccadeOnly =
00254   { MODOPT_FLAG, "VCEMsaccadeOnly", &MOC_VCX, OPTEXP_CORE,
00255     "Only plot endpoint locations of saccades instead of every sample",
00256     "vcem-saconly", '\0', "", "false" };
00257 
00258 // #################### SimulationViewer options:
00259 // Used by: SimulationViewerConfigurator, StdBrain, etc
00260 const ModelOptionDef OPT_SimulationViewerType =
00261   { MODOPT_ARG_STRING, "SimulationViewerType", &MOC_DISPLAY, OPTEXP_CORE,
00262     "Type of SimulationViewer to use. \n"
00263     "\t'Std' is the standard 2D viewer. \n"
00264     "\t'Compress' is a simple multi-foveated blurring viewer, in "
00265     "which a selection of most salient locations will be represented "
00266     "crisply, while the rest of the image will be increasingly blurred as "
00267     "we move away from those hot spots. \n"
00268     "\t'EyeMvt' is a viewer for comparison between saliency maps and "
00269     "human eye movements.\n"
00270     "\t'EyeMvt2' is 'EyeMvt' plus it adds a concept of visual memory buffer.\n"
00271     "\t'EyeMvtNeuro' is a viewer for comparing saliency maps and neural "
00272     "responses.\n"
00273     "\t'EyeRegion' is 'EyeMvt' plus it adds support for object definitions/"
00274     "visualizations.\n"
00275     "\t'EyeSim' simulates an eye-tracker recording from the model. "
00276     "\tWe run surprise control (ASAC) also from this command option. "
00277     "To use surprise control use 'ASAC'.\n "
00278     "\t'Stats' saves some simple statistics like mean and variance "
00279     "saliency, location of peak saliency, etc.\n"
00280     "\t'Hand' is a viewer for showing the combination of video and"
00281     "human hand movement(joystick, etc).\n"
00282     "\t'EyeHand' is a combination of EyeMvt and Hand.",
00283     "sv-type", '\0',
00284     "<None|Std|Compress|EyeMvt|EyeMvt2|EyeRegion|EyeSim"
00285     "ASAC|NerdCam|Stats|RecStats|Hand|EyeHand>",
00286     "Std" };
00287 
00288 // Used by: SimulationViewer and derivatives
00289 const ModelOptionDef OPT_SVfontSize =
00290   { MODOPT_ARG(uint), "SVfontSize", &MOC_DISPLAY, OPTEXP_CORE,
00291     "Use the largest font available with width <= the value given here, or "
00292     "if there is no such font, then use the smallest available font. Available "
00293     "fonts range in width from 6 to 20.",
00294     "font-size", '\0', "<uint>", "10" };
00295 
00296 // Used by: SimulationViewer
00297 const ModelOptionDef OPT_SVsaveTraj =
00298   { MODOPT_FLAG, "SVsaveTraj", &MOC_DISPLAY, OPTEXP_CORE,
00299     "Save attention/eye/head trajectories",
00300     "save-trajectory", 'T', "", "false" };
00301 
00302 // Used by: SimulationViewer
00303 const ModelOptionDef OPT_SVsaveXcombo =
00304   { MODOPT_FLAG, "SVsaveXcombo", &MOC_DISPLAY, OPTEXP_CORE,
00305     "Show combination trajec (left) + salmap (right)",
00306     "save-x-combo", 'X', "", "false" };
00307 
00308 // Used by: SimulationViewer
00309 const ModelOptionDef OPT_SVsaveYcombo =
00310   { MODOPT_FLAG, "SVsaveYcombo", &MOC_DISPLAY, OPTEXP_CORE,
00311     "Show combination trajec (top) + salmap (bottom)",
00312     "save-y-combo", 'Y', "", "false" };
00313 
00314 // Used by: SimulationViewer
00315 const ModelOptionDef OPT_SVsaveTRMXcombo =
00316   { MODOPT_FLAG, "SVsaveTRMXcombo", &MOC_DISPLAY, OPTEXP_CORE,
00317     "Show combination trajec (left) + salmap (middle)+ "
00318     " task-relevance-map (right)",
00319     "save-trm-x-combo", '\0', "", "false" };
00320 
00321 // Used by: SimulationViewer
00322 const ModelOptionDef OPT_SVsaveTRMYcombo =
00323   { MODOPT_FLAG, "SVsaveTRMYcombo", &MOC_DISPLAY, OPTEXP_CORE,
00324     "Show combination trajec (top) + salmap (middle) + "
00325     " task-relevance-map (bottom) ",
00326     "save-trm-y-combo", '\0', "", "false" };
00327 
00328 // Used by: SimulationViewer
00329 const ModelOptionDef OPT_SVsaveTRMmegaCombo =
00330   { MODOPT_FLAG, "SVsaveTRMmegaCombo", &MOC_DISPLAY, OPTEXP_CORE,
00331     "Show combination trajec (top left) + salmap (top right) + "
00332     " task-relevance-map (bottom left) + AGM (bottom right) ",
00333     "save-trm-mega-combo", '\0', "", "false" };
00334 
00335 // Used by: SimulationViewer
00336 const ModelOptionDef OPT_SVwarp3D =
00337   { MODOPT_FLAG, "SVwarp3D", &MOC_DISPLAY, OPTEXP_CORE,
00338     "Show color image warped onto 3D salmap",
00339     "warp-salmap-3d", '3', "", "false" };
00340 
00341 // Used by: SimulationViewer
00342 const ModelOptionDef OPT_SVmegaCombo =
00343   { MODOPT_FLAG, "SVmegaCombo", &MOC_DISPLAY, OPTEXP_CORE,
00344     "Show trajectory, saliency and channels as a combo",
00345     "mega-combo", 'K', "", "false" };
00346 
00347 // Used by: SimulationViewer
00348 const ModelOptionDef OPT_SVmegaComboZoom =
00349   { MODOPT_ARG(uint), "SVmegaComboZoom", &MOC_DISPLAY, OPTEXP_CORE,
00350     "Zoom factor to use to display the --mega-combo conspicuity and feature maps.",
00351     "mega-combo-zoom", '\0', "<uint>", "8" };
00352 
00353 // Used by: SimulationViewer
00354 const ModelOptionDef OPT_SVmegaComboTopCMapsOnly =
00355   { MODOPT_FLAG, "SVmegaComboTopCMapsOnly", &MOC_DISPLAY, OPTEXP_CORE,
00356     "In --mega-combo displays, show only the top-level conspicuity maps, as "
00357     "opposed to recursing through the channel hierarchy and showing all the "
00358     "conspicuity maps, i.e., all output maps from all channels and "
00359     "subchannels.",
00360     "mega-combo-topcm", '\0', "", "true" };
00361 
00362 // Used by: SimulationViewer
00363 const ModelOptionDef OPT_SVcropFOA =
00364   { MODOPT_ARG(Dims), "SVcropFOA", &MOC_DISPLAY, OPTEXP_CORE,
00365     "Crop image to <w>x<h> around FOA location",
00366     "crop-foa", 'v', "<w>x<h>", "0x0" };
00367 
00368 // Used by: SimulationViewer, SaliencyMap, etc
00369 const ModelOptionDef OPT_SVdisplayMapFactor =
00370   { MODOPT_ARG(float), "SVdisplayMapFactor", &MOC_DISPLAY, OPTEXP_CORE,
00371     "When displaying/saving a saliency map, visual cortex output, task "
00372     "relevance map, attention guidance map, etc, multiply the map by <factor> "
00373     "to convert its raw values to values which can be displayed (typically, "
00374     "in the [0..255] range). If the given <factor> is 0.0, then the map will "
00375     "be normalized to [0..255] on a frame-by-frame basis (which may "
00376     "sometimes be misleading as it may visually overemphasize maps which "
00377     "only contain very low activation).",
00378     "display-map-factor", '\0', "<factor>", "0.0" };
00379 
00380 // Used by: SaliencyMap and derivatives
00381 const ModelOptionDef OPT_SVdisplayMapType =
00382   { MODOPT_ARG_STRING, "SVdisplayMapType", &MOC_DISPLAY, OPTEXP_CORE,
00383     "Select which map to display in all displays which show a map alongside "
00384     "the attention trajectory. The map values will be normalized according "
00385     "to the value of --display-map-factor.",
00386     "display-map", '\0', "<SM|AGM|TRM|VCO>", "AGM" };
00387 
00388 // Used by: SimulationViewer
00389 const ModelOptionDef OPT_SVxwindow =
00390   { MODOPT_OBSOLETE, "SVxwindow", &MOC_DISPLAY, OPTEXP_CORE,
00391     "This option is obsolete; if you want to see results in an "
00392     "onscreen window you can try using --out=display or --out=qt "
00393     "instead",
00394     "show-xwindow", 'x', "", "false" };
00395 
00396 // Used by: SimulationViewer
00397 const ModelOptionDef OPT_SVfoveateTraj =
00398   { MODOPT_FLAG, "SVfoveateTraj", &MOC_DISPLAY, OPTEXP_CORE,
00399     "foveate trajectory (cumulative if --display-additive)",
00400     "foveate-traj", '\0', "", "false" };
00401 
00402 // Used by: SimulationViewerStd
00403 const ModelOptionDef OPT_SVstatsFname =
00404   { MODOPT_ARG_STRING, "SVstatsFname", &MOC_DISPLAY, OPTEXP_CORE,
00405     "Save various statistics like min/max/avg salience, feature map "
00406     "values at the location of max salience, and feature map values "
00407     "at random locations, into a text file. The text file will also "
00408     "contain a dump of the model's architecture so that the numbers "
00409     "can be interpreted unambiguously.",
00410     "sv-stats-fname", '\0', "<filename>", "" };
00411 
00412 
00413 // Used by: SimulationViewer
00414 const ModelOptionDef OPT_SVdisplayFOA =
00415   { MODOPT_FLAG, "SVdisplayFOA", &MOC_DISPLAY, OPTEXP_CORE,
00416     "Display focus-of-attention as a circle",
00417     "display-foa", '\0', "", "true" };
00418 
00419 // Used by: SimulationViewer
00420 const ModelOptionDef OPT_SVdisplayPatch =
00421   { MODOPT_FLAG, "SVdisplayPatch", &MOC_DISPLAY, OPTEXP_CORE,
00422     "Display small filled square at attended location",
00423     "display-patch", '\0', "", "true" };
00424 
00425 // Used by: SimulationViewer
00426 const ModelOptionDef OPT_SVpatchSize =
00427   { MODOPT_ARG(int), "SVpatchSize", &MOC_DISPLAY, OPTEXP_CORE,
00428     "Size of square to display at observers eye position",
00429     "patch-size", '\0', "<int>", "4" };
00430 
00431 // Used by: SimulationViewer
00432 const ModelOptionDef OPT_SVeraseMarker =
00433   { MODOPT_FLAG, "SVeraseMarker", &MOC_DISPLAY, OPTEXP_CORE,
00434     "Erase the eye position marker after each frame. ",
00435     "erase-marker", '\0', "", "false" };
00436 
00437 // Used by: SimulationViewer
00438 const ModelOptionDef OPT_SVdisplayFOAnum =
00439   { MODOPT_FLAG, "SVdisplayFOAnum", &MOC_DISPLAY, OPTEXP_CORE,
00440     "Display attention shift number (0-based)",
00441     "display-foanum", '\0', "", "false" };
00442 
00443 // Used by: SimulationViewer
00444 const ModelOptionDef OPT_SVdisplayFOALinks =
00445   { MODOPT_FLAG, "SVdisplayFOALinks", &MOC_DISPLAY, OPTEXP_CORE,
00446     "Display attentional trajectory using red arrows",
00447     "display-traj", '\0', "", "true" };
00448 
00449 // Used by: SimulationViewer
00450 const ModelOptionDef OPT_SVdisplayEye =
00451   { MODOPT_FLAG, "SVdisplayEye", &MOC_DISPLAY, OPTEXP_CORE,
00452     "Display small hollow square at eye position",
00453     "display-eye", '\0', "", "true" };
00454 
00455 // Used by: SimulationViewer
00456 const ModelOptionDef OPT_SVdisplayEyeLinks =
00457   { MODOPT_FLAG, "SVdisplayEyeLinks", &MOC_DISPLAY, OPTEXP_CORE,
00458     "Display eye trajectory using red lines",
00459     "display-eye-traj", '\0', "", "false" };
00460 
00461 // Used by: SimulationViewer
00462 const ModelOptionDef OPT_SVdisplayHead =
00463   { MODOPT_FLAG, "SVdisplayHead", &MOC_DISPLAY, OPTEXP_CORE,
00464     "Display larger hollow square at head position",
00465     "display-head", '\0', "", "false" };
00466 
00467 // Used by: SimulationViewer
00468 const ModelOptionDef OPT_SVdisplayHeadLinks =
00469   { MODOPT_FLAG, "SVdisplayHeadLinks", &MOC_DISPLAY, OPTEXP_CORE,
00470     "Display head trajectory using red lines",
00471     "display-head-traj", '\0', "", "false" };
00472 
00473 // Used by: SimulationViewer
00474 const ModelOptionDef OPT_SVdisplayAdditive =
00475   { MODOPT_FLAG, "SVdisplayAdditive", &MOC_DISPLAY, OPTEXP_CORE,
00476     "Display things additively",
00477     "display-additive", '\0', "", "true" };
00478 
00479 // Used by: SimulationViewer
00480 const ModelOptionDef OPT_SVdisplayTime =
00481   { MODOPT_FLAG, "SVdisplayTime", &MOC_DISPLAY, OPTEXP_CORE,
00482     "Display internal simulation time",
00483     "display-time", '\0', "", "true" };
00484 
00485 // Used by: SimulationViewer
00486 const ModelOptionDef OPT_SVdisplayHighlights =
00487   { MODOPT_FLAG, "SVdisplayHighlights", &MOC_DISPLAY, OPTEXP_CORE,
00488     "Display highlight at focus-of-attention",
00489     "display-highlight", '\0', "", "false" };
00490 
00491 // Used by: SimulationViewer
00492 const ModelOptionDef OPT_SVdisplaySMmodulate =
00493   { MODOPT_FLAG, "SVdisplaySMmodulate", &MOC_DISPLAY, OPTEXP_CORE,
00494     "Display surprise-modulated image, using the saliency map (possibly "
00495     "normalized using --display-map-factor) as contrast modulator",
00496     "display-smmod", '\0', "", "false" };
00497 
00498 // Used by: SimulationViewer
00499 const ModelOptionDef OPT_SVdisplayBoring =
00500   { MODOPT_FLAG, "SVdisplayBoring", &MOC_DISPLAY, OPTEXP_CORE,
00501     "Display attention shifts to boring targets in green",
00502     "display-boring", '\0', "", "true" };
00503 
00504 // Used by: SimulationViewerStd
00505 const ModelOptionDef OPT_SVuseLargerDrawings =
00506   { MODOPT_FLAG, "SVuseLargerDrawings", &MOC_DISPLAY, OPTEXP_CORE,
00507     "Use larger drawings for FOA, FOV, and head markers than default",
00508     "display-larger-markers", '\0', "", "false" };
00509 
00510 // Used by: SimulationViewer
00511 const ModelOptionDef OPT_SVdisplayInterp =
00512   { MODOPT_FLAG, "SVdisplayInterp", &MOC_DISPLAY, OPTEXP_CORE,
00513     "Use bilinear interpolation when rescaling saliency or other maps to "
00514     "larger image sizes for display (this option does not affect the maps "
00515     "themselves, just the way in which they are displayed)",
00516     "display-interp-maps", '\0', "", "true" };
00517 
00518 // Used by: SimulationViewerCompress
00519 const ModelOptionDef OPT_SVCOMPsaveMask =
00520   { MODOPT_FLAG, "SVCOMPsaveMask", &MOC_DISPLAY, OPTEXP_CORE,
00521     "Show the bluring mask only",
00522     "save-compress-mask", '\0', "", "false" };
00523 
00524 // Used by: SimulationViewerCompress
00525 const ModelOptionDef OPT_SVCOMPsaveFoveatedImage =
00526   { MODOPT_FLAG, "SVCOMPsaveFoveatedImage", &MOC_DISPLAY, OPTEXP_CORE,
00527     "Show the foveated image only",
00528     "save-compress-foveatedimage", '\0', "", "false" };
00529 
00530 // Used by: SimulationViewerCompress
00531 const ModelOptionDef OPT_SVCOMPDistanceFactor =
00532   { MODOPT_ARG(float), "SVCOMPDistanceFactor", &MOC_DISPLAY, OPTEXP_CORE,
00533     "Set the distance factor",
00534     "distance-factor", '\0', "<float>", "1.0" };
00535 
00536 // Used by: SimulationViewerCompress
00537 const ModelOptionDef OPT_SVCOMPsaveEyeCombo =
00538   { MODOPT_FLAG, "SVCOMPsaveEyeCombo", &MOC_DISPLAY, OPTEXP_CORE,
00539     "Show combination of original (left), foveated image + human eye "
00540     "(middle) and raw saliency map (right)",
00541     "save-compress-eyecombo", '\0', "", "false" };
00542 
00543 // Used by: SimulationViewerCompress
00544 const ModelOptionDef OPT_SVCOMPnumFoveas =
00545   { MODOPT_ARG(int), "SVCOMPnumFoveas", &MOC_DISPLAY, OPTEXP_CORE,
00546     "Number of foveas to use for multi-foveated image blurring. A value of "
00547     "zero is valid and means that the blur will be continuously computed "
00548     "from the saliency map, rather than from a discrete number of foveas",
00549     "num-foveas", '\0', "<int>", "0" };
00550 
00551 // Used by: SimulationViewerCompress
00552 const ModelOptionDef OPT_SVCOMPeyeCompare =
00553   { MODOPT_FLAG, "SVCOMPeyeCompare", &MOC_DISPLAY, OPTEXP_CORE,
00554     "use the eyetracking data to compared with teh blur mask or not",
00555     "eyecompare-compress", '\0', "<true|false>", "false"};
00556 
00557 // Used by: SimulationViewerCompress
00558 const ModelOptionDef OPT_SVCOMPcacheSize =
00559   { MODOPT_ARG(int), "SVCOMPcacheSize", &MOC_DISPLAY, OPTEXP_CORE,
00560     "Number of frames over which the object masks are averaged to "
00561     "determine current foveation mask",
00562     "maskcache-size", '\0', "<int>", "5" };
00563 
00564 // Used by: SimulationViewerCompress
00565 const ModelOptionDef OPT_SVCOMPiframePeriod =
00566   { MODOPT_ARG(int), "SVCOMPiframePeriod", &MOC_DISPLAY, OPTEXP_CORE,
00567     "Period of occurence of I-Frames when compressing with MPEG-1. If this "
00568     "is not 1, the foveation will be allowed to change only on every "
00569     "I-Frame, but will remain stable on P-frames and B-frames",
00570     "iframe-period", '\0', "<int>", "1" };
00571 
00572 // Used by: SimulationViewerCompress
00573 const ModelOptionDef OPT_SVCOMPdisplayHumanEye =
00574   { MODOPT_FLAG, "SVCOMPdisplayHumanEye", &MOC_DISPLAY, OPTEXP_CORE,
00575     "Display human eye positions",
00576     "display-human-eye", '\0', "<true|false>", "true" };
00577 
00578 // Used by: SimulationViewerCompress
00579 const ModelOptionDef OPT_SVCOMPuseTRMmax =
00580   { MODOPT_FLAG, "SVCOMPuseTRMmax", &MOC_DISPLAY, OPTEXP_CORE,
00581     "Use TRM-max trick",
00582     "use-trmmax", '\0', "", "false" };
00583 
00584 // Used by: SimulationViewerCompress
00585 const ModelOptionDef OPT_SVCOMPfoveaSCtype =
00586   { MODOPT_ARG_STRING, "SVCOMPfoveaSCtype", &MOC_DISPLAY, OPTEXP_CORE,
00587     "Type of SC to use for the foveas of the compression viewer",
00588     "compress-sc-type", '\0', "<type>", "Friction" };
00589 
00590 // Used by: SimulationViewerCompress
00591 const ModelOptionDef OPT_SVCOMPMultiRetinaDepth =
00592   { MODOPT_ARG(int), "SVCOMPMultiRetinaDepth", &MOC_DISPLAY, OPTEXP_CORE,
00593     "Depth of pyramid used for multi-foveation",
00594     "compress-multiretina-depth", '\0', "<int>", "5" };
00595 
00596 
00597 // Used by: SimulationViewerEyeMvt
00598 const ModelOptionDef OPT_SVEMsaveMegaCombo =
00599   { MODOPT_FLAG, "SVEMsaveMegaCombo", &MOC_DISPLAY, OPTEXP_CORE,
00600     "If --maxcache-size is non-zero, then generate a 4-image combo: "
00601     "original (top-left), max-saliency-weighted image "
00602     "(top-right), raw saliency map (bottom-left) and max-saliency mask "
00603     "(bottom-right); otherwise of --maxcache-size is zero, then "
00604     "generate a 2-image combo: original plus eye position (left) and "
00605     "saliency map (right)",
00606     "save-eyemvt-megacombo", '\0', "", "false" };
00607 
00608 // Used by: SimulationViewerEyeMvt
00609 const ModelOptionDef OPT_SVEMdelayCacheSize =
00610   { MODOPT_ARG(int), "SVEMdelayCacheSize", &MOC_DISPLAY, OPTEXP_CORE,
00611     "Number of eye movement samples to skip between current time and "
00612     "time at which we start computing the max saliency over a period of "
00613     "time, or 0 for no delay",
00614     "delaycache-size", '\0', "<int>", "0" };
00615 
00616 // Used by: SimulationViewerEyeMvt
00617 const ModelOptionDef OPT_SVEMmaxCacheSize =
00618   { MODOPT_ARG(int), "SVEMmaxCacheSize", &MOC_DISPLAY, OPTEXP_CORE,
00619     "Number of eye movement samples over which to compute the max saliency, "
00620     "or 0 for no cache",
00621     "maxcache-size", '\0', "<int>", "0" };
00622 
00623 // Used by: SimulationViewerEyeMvt
00624 const ModelOptionDef OPT_SVEMoutFname =
00625   { MODOPT_ARG_STRING, "SVEMoutFname", &MOC_DISPLAY, OPTEXP_CORE,
00626     "File name for output data (or empty to not save output data).",
00627     "svem-out-fname", '\0', "<file>", "" };
00628 
00629 // Used by: SimulationViewerEyeMvt
00630 const ModelOptionDef OPT_SVEMsampleAtStart =
00631   { MODOPT_ARG(bool), "SVEMsampleAtStart", &MOC_DISPLAY, OPTEXP_CORE,
00632     "Sample at start of saccade (otherwise at end of saccade)",
00633     "svem-sampleatstart", '\0', "<true|false>", "true" };
00634 
00635 // Used by: SimulationViewerEyeMvt
00636 const ModelOptionDef OPT_SVEMdisplaySacNum =
00637   { MODOPT_FLAG, "SVEMdisplaySacNum", &MOC_DISPLAY, OPTEXP_CORE,
00638     "Display saccade number",
00639     "svem-display-sacnum", '\0', "", "false" };
00640 
00641 // Used by: SimulationViewerEyeMvt
00642 const ModelOptionDef OPT_SVEMnumRandomSamples =
00643   { MODOPT_ARG(int), "SVEMnumRandomSamples", &MOC_DISPLAY, OPTEXP_CORE,
00644     "Number of random samples to include in the file given by "
00645     "--svem-out-fname. NOTE: if the number given here is greater "
00646     "than or equal to the number of pixels in the saliency map, then "
00647     "instead of choosing random values, we simply loop over the "
00648     "entire saliency map, listing each value just once; so, note that "
00649     "regardless of the value given here, the number of 'random' values "
00650     "written will never be more than the number of pixels in the "
00651     "saliency map.",
00652     "svem-num-random", '\0', "<integer>",
00653     // the default value needs to stay at 100 in order to maintain
00654     // backward compatibility with previous versions where
00655     // SimulationViewerEyeMvt had a hardcoded "#define NBRND 100"
00656     "100" };
00657 
00658 //score a saccade that is in a blink?
00659 const ModelOptionDef OPT_SVEMuseSaccadeInBlink =
00660 { MODOPT_FLAG, "SVEMuseSaccadeInBlink", &MOC_DISPLAY, OPTEXP_CORE,
00661   "When sampling a saliency map from human fixations choose whether "
00662   "to use saccades during blinks.","use-blink", '\0', "",
00663   "true"
00664 };
00665 
00666 
00667 //use our diagnostic color scheme when making visualizations
00668 const ModelOptionDef OPT_SVEMuseDiagColors =
00669 { MODOPT_FLAG, "SVEMuseDiagColors", &MOC_DISPLAY, OPTEXP_CORE,
00670     "Use the same color scheme as MarkEye so to easily check "
00671     "the accuracy of parsing",
00672     "use-diagnostic-color", '\0', "",
00673     "false"
00674 };
00675 
00676 //use our diagnostic color scheme when making visualizations
00677 const ModelOptionDef OPT_SVEMlabelEyePatch =
00678   { MODOPT_FLAG, "SVEMlabelEyePatch", &MOC_DISPLAY, OPTEXP_CORE,
00679     "Label each patch with an identifying label",
00680     "svem-label-patch", '\0', "", "false"};
00681 
00682 // Used by: SimulationViewerEyeMvt
00683 const ModelOptionDef OPT_SVEMpriorRandomDistro =
00684   { MODOPT_ARG_STRING, "SVEMpriorRandomDistro", &MOC_DISPLAY, OPTEXP_CORE,
00685     "When sampling the saliency map use the supplied text file of saccadic "
00686     "endpoints in screen coordinates instead of a uniform sampling. "
00687     "File format is 1 sample per line.  Each line should be formatted: Xcoord"
00688     " Ycoord","svem-prior-distro", '\0', "<file>", "" };
00689 
00690 // Used by: SimulationViewerEyeMvt
00691 const ModelOptionDef OPT_SVEMwriteFrameNumber =
00692   { MODOPT_FLAG, "SVEMwriteFrameNumber",&MOC_DISPLAY, OPTEXP_CORE,
00693     "Report the frame number of the saccade in the exported eyesal file.",
00694     "svem-write-framenum",'\0',"","false"};
00695 
00696 // Used by: SimulationViewerEyeMvt
00697 const ModelOptionDef OPT_SVEMmaxComboWidth =
00698   { MODOPT_ARG(int), "SVEMmaxComboWidth", &MOC_DISPLAY, OPTEXP_CORE,
00699     "Maximum width for the result of --save-eyemvt-megacombo; if the "
00700     "raw width of the combo image is greater than this value, then "
00701     "smooth+reduce the image by factors of 2 until the width is less "
00702     "than the desired size",
00703     "svem-max-combo-width", '\0', "<integer>",
00704     // the default value needs to stay at 1024 in order to maintain
00705     // backward compatibility with previous versions where
00706     // SimulationViewerEyeMvt had a hardcoded 1024 in
00707     // SimulationViewerEyeMvt::getTraj()
00708     "1024" };
00709 
00710 // Used by: SimulationViewerEyeMvt2
00711 const ModelOptionDef OPT_SVEMbufDims =
00712   { MODOPT_ARG(Dims), "SVEMbufDims", &MOC_DISPLAY, OPTEXP_CORE,
00713     "Dimensions of internal visual buffer",
00714     "svem-bufdims", '\0', "<w>x<h>", "" };
00715 
00716 // Used by: SimulationViewerEyeMvt2
00717 const ModelOptionDef OPT_SVEMuseIOR =
00718   { MODOPT_FLAG, "SVEMuseIOR", &MOC_DISPLAY, OPTEXP_CORE,
00719     "Attempt to guess IOR from human eye movements",
00720     "svem-use-ior", '\0', "", "true" };
00721 
00722 
00723 // Used by: SimulationViewerHand
00724 const ModelOptionDef OPT_SVHandSaveCombo =
00725   { MODOPT_FLAG, "SVHandSaveCombo", &MOC_DISPLAY, OPTEXP_CORE,
00726     "Generate a 3-image combo: original plus eye position (left),"
00727     "and hand-movement (right)",
00728     // Should i change this? :
00729     //"If --maxcache-size is non-zero, then generate a 4-image combo: "
00730     //"original (top-left), max-saliency-weighted image "
00731     //"(top-right), raw saliency map (bottom-left) and max-saliency mask "
00732     //"(bottom-right); otherwise of --maxcache-size is zero, then "
00733     //"generate a 2-image combo: original plus eye position (left) and "
00734     //"hand movement (right)",
00735     "svhand-savecombo", '\0', "", "false" };
00736 
00737 // Used by: SimulationViewerHand
00738 const ModelOptionDef OPT_SVHandMaxComboWidth =
00739   { MODOPT_ARG(int), "SVHandMaxComboWidth", &MOC_DISPLAY, OPTEXP_CORE,
00740     "Maximum width for the result of --svhand-savecombo; if the "
00741     "raw width of the combo image is greater than this value, then "
00742     "smooth+reduce the image by factors of 2 until the width is less "
00743     "than the desired size",
00744     "svhand-maxcombowidth", '\0', "<integer>",
00745     // the default value needs to stay at 1024 in order to maintain
00746     // backward compatibility with previous versions where
00747     // SimulationViewerHand had a hardcoded 1024 in
00748     // SimulationViewerHand::getTraj()
00749     "1024" };
00750 
00751 // Used by: SimulationViewerHand
00752 const ModelOptionDef OPT_SVHandDisplay =
00753   { MODOPT_FLAG, "SVHandDisplay", &MOC_DISPLAY, OPTEXP_CORE,
00754     "Display the hand movement (joystick) on screen",
00755     "svhand-display", '\0', "", "true" };
00756 
00757 
00758 // Used by: SimulationViewerEyeSim
00759 const ModelOptionDef OPT_SVeyeSimFname =
00760   { MODOPT_ARG_STRING, "SVeyeSimFname", &MOC_DISPLAY, OPTEXP_CORE,
00761     "File name for output eye movement data (required)",
00762     "eyesim-fname", '\0', "<file>", "" };
00763 
00764 // Used by: SimulationViewerEyeSim
00765 const ModelOptionDef OPT_SVeyeSimPeriod =
00766   { MODOPT_ARG(SimTime), "SVeyeSimPeriod", &MOC_DISPLAY, OPTEXP_CORE,
00767     "Eye movements sampling period",
00768     "eyesim-period", '\0', "<float>", "0.0041666666" }; // 240Hz
00769 
00770 // Used by: SimulationViewerEyeSim
00771 const ModelOptionDef OPT_SVeyeSimTrash =
00772   { MODOPT_ARG(int), "SVeyeSimTrash", &MOC_DISPLAY, OPTEXP_CORE,
00773     "Number of initial eye movement samples to trash (e.g., "
00774     "corresponding to initial fixation before actual stimulus)",
00775     "eyesim-trash", '\0', "<int>", "0" };
00776 
00777 // Used by: SimulationViewerEyeMvtNeuro
00778 const ModelOptionDef OPT_SVEMNprobeLocation =
00779   { MODOPT_ARG(Point2D<float>),"SVEMNprobeLocation", &MOC_DISPLAY, OPTEXP_CORE,
00780     "The location of a virtual probe which saves measurements of values in "
00781     "model maps. The probe location is relative to the center of gaze "
00782     "in degrees of visual angle. Negative values are left and down of center. "
00783     "Use -1,-1 for no probe.",
00784     "svemn-probe", '\0', "<x>,<y>", "-1,-1" };
00785 
00786 // Used by: SimulationViewerEyeMvtNeuro
00787 const ModelOptionDef OPT_SVEMNrfSize =
00788   { MODOPT_ARG(float), "SVEMNrfSize", &MOC_DISPLAY, OPTEXP_CORE,
00789     "The size of the neurons receptive field in degrees of visual angle. "
00790     "Saliency values will be averaged in this window. If set to zero, "
00791     "the pixel at the probe location will be used.",
00792     "svemn-rf-size", '\0', "<uint>", "0" };
00793 
00794 // Used by: SimulationViewerEyeMvtNeuro
00795 const ModelOptionDef OPT_SVEMNrfMaskName =
00796   { MODOPT_ARG_STRING, "SVEMNrfMaskName", &MOC_DISPLAY, OPTEXP_CORE,
00797     "Use a weighting mask instead of taking the average saliency in the "
00798     "neurons receptive field centered on the probe location. This image "
00799     "should be the same size as the input.", "svemn-rf-maskname", '\0', 
00800     "<file>", "" };
00801 
00802 // Used by: SimulationViewerEyeMvtNeuro
00803 const ModelOptionDef OPT_SVEMNoutFName =
00804   { MODOPT_ARG_STRING, "SVEMNoutFName", &MOC_DISPLAY, OPTEXP_CORE,
00805     "If set, output saliency values at the probe location set by "
00806     "--svemn-probe to this file.", "svemn-out-fname", '\0', "<file>", "" };
00807 
00808 // Used by: SimulationViewerEyeMvtNeuro
00809 const ModelOptionDef OPT_SVEMNneuroFileName =
00810   { MODOPT_ARG_STRING, "SVEMNneuroFileName", &MOC_DISPLAY, OPTEXP_CORE,
00811     "If set, read spike or voltage data from a text file and display it "
00812     "along side the saliency values. The text file should be 1 time step "
00813     "per line, and the sampling rate is assumed to be the same as the eye "
00814     "movement file set with --eyetrack-data",
00815     "svemn-neuron-file", '\0', "<file>", "" };
00816 
00817 // Used by: SimulationViewerEyeMvtNeuro
00818 const ModelOptionDef OPT_SVEMNdisplayTime = 
00819   { MODOPT_FLAG, "SVEMNdisplayTime", &MOC_DISPLAY, OPTEXP_CORE,
00820     "Display the simulation time on the output ",
00821     "svemn-displaytime", '\0', "<bool>", "true" };
00822 
00823 // Used by: SimulationViewerEyeMvtNeuro
00824 const ModelOptionDef OPT_SVEMNdelayNeuron = 
00825   { MODOPT_ARG(int), "SVEMNdelayNeuron", &MOC_DISPLAY, OPTEXP_CORE,
00826     "delay the neural data by this number of samples ",
00827     "svemn-delay-neuron", '\0', "<int>", "0" };
00828 
00829 // Used by: SimulationViewerEyeMvtNeuro
00830 const ModelOptionDef OPT_SVEMNplotBufLength = 
00831   { MODOPT_ARG(SimTime), "SVEMNplotBufLength", &MOC_DISPLAY, OPTEXP_CORE,
00832     "Set how long of a history should we output in the plotting window",
00833     "svemn-plot-length", '\0', "<SimTime>", "1s" };
00834 
00835 // Used by: SimulationViewerEyeMvtNeuro
00836 const ModelOptionDef OPT_SVEMNSalScale = 
00837   { MODOPT_ARG(float), "SVEMNSalScale", &MOC_DISPLAY, OPTEXP_CORE,
00838     "y-axis scale for history plot of saliency values. Use 0 for auto "
00839     "scale to max.",
00840     "svemn-sal-scale", '\0', "<float>", "0.0" };
00841 
00842 // Used by: SimulationViewerEyeMvtNeuro
00843 const ModelOptionDef OPT_SVEMNNeuroScale = 
00844   { MODOPT_ARG(float), "SVEMNNeuroScale", &MOC_DISPLAY, OPTEXP_CORE,
00845     "y-axis scale for history plot of saliency values. Use 0 for auto "
00846     "scale to max.",
00847     "svemn-neuro-scale", '\0', "<float>", "0.0" };
00848 
00849 // Used by: SimulationViewerEyeMvtNeuro
00850 const ModelOptionDef OPT_SVEMNNeuroRFVisFile = 
00851   { MODOPT_ARG_STRING, "SVEMNNeuroRFVisFile", &MOC_DISPLAY, OPTEXP_CORE,
00852     "If set, attempt to construct a map of the visual receptive field. "
00853     "The file will contain, for each pixel, the sum of snapshots from the"
00854     "display map everytime a spike occured. If the file exists and contains"
00855     "values the sums will continue. The first pixel in the image will be"
00856     "sacrificed to store the spike count.",
00857     "svemn-visualrf-file", '\0', "<file>", "" };
00858 
00859 
00860 // Used by: SimulationViewerEyeMvtNeuro
00861 const ModelOptionDef OPT_SVEMNNeuroRFMotFile = 
00862   { MODOPT_ARG_STRING, "SVEMNNeuroRFMotFile", &MOC_DISPLAY, OPTEXP_CORE,
00863     "If set, attempt to construct a map of the motor response field. "
00864     "The file will contain, for each pixel, the sum of spikes that occured"
00865     "to that pixels location in space. If the file exists and contains"
00866     "values the sums will continue. The first pixel in the image will be"
00867     "sacrificed to store the spike count.",
00868     "svemn-motorrf-file", '\0', "<file>", "" };
00869 
00870 // Used by: SimulationViewerEyeMvtNeuro
00871 const ModelOptionDef OPT_SVEMNMotWindow =
00872   { MODOPT_ARG(SimTime), "SVEMNMotWindow", &MOC_DISPLAY, OPTEXP_CORE,
00873     "Small window around +- saccade onset to count spikes when creating"
00874     "response field.",
00875     "svemn-motrf-window", '\0', "<float>", "25ms" }; 
00876 
00877 const ModelOptionDef OPT_SVEMNVisWindow = 
00878   { MODOPT_ARG(SimTime), "SVEMNVisWindow", &MOC_DISPLAY, OPTEXP_CORE,
00879     "Small window to store an ensemble of spike triggered stimuli.",
00880     "svemn-visrf-window", '\0', "<float>", "100ms" }; 
00881 
00882 
00883 const ModelOptionDef OPT_SVEMNVisOffset =   
00884   { MODOPT_ARG(SimTime), "SVEMNVisOffset", &MOC_DISPLAY, OPTEXP_CORE,
00885     "Offset to store spike triggreed stimuli, to account for stimulus to "
00886     "spike delay",
00887     "svemn-visrf-offset", '\0', "<float>", "25ms" }; 
00888 
00889 
00890 
00891 // Used by: Surprise Control ASAC
00892 const ModelOptionDef OPT_ASACdrawDiffParts =
00893   { MODOPT_FLAG, "ASACdrawDiffParts", &MOC_DISPLAY, OPTEXP_CORE,
00894     "Cause Surprise Control to draw difference images",
00895     "ASAC-draw-diff-parts", '\0', "", "false" };
00896 
00897 // Used by: Surprise Control ASAC
00898 const ModelOptionDef OPT_ASACdrawBetaParts =
00899   { MODOPT_FLAG, "ASACdrawBetaParts", &MOC_DISPLAY, OPTEXP_CORE,
00900     "Cause Surprise Control to draw beta images",
00901     "ASAC-draw-beta-parts", '\0', "", "false" };
00902 
00903 // Used by: Surprise Control ASAC
00904 const ModelOptionDef OPT_ASACdrawBiasParts =
00905   { MODOPT_FLAG, "ASACdrawBiasParts", &MOC_DISPLAY, OPTEXP_CORE,
00906     "Cause Surprise Control to draw bias images",
00907     "ASAC-draw-bias-parts", '\0', "", "false" };
00908 
00909 // Used by: Surprise Control ASAC
00910 const ModelOptionDef OPT_ASACdrawSeperableParts =
00911   { MODOPT_FLAG, "ASACdrawSeperableParts", &MOC_DISPLAY, OPTEXP_CORE,
00912     "Cause Surprise Control to draw layers of seperable filter images",
00913     "ASAC-draw-seperable-parts", '\0', "", "false" };
00914 
00915 // Used by: Surprise Control ASAC
00916 const ModelOptionDef OPT_ASACconfigFile =
00917 { MODOPT_ARG_STRING, "ASACconfigFile", &MOC_DISPLAY, OPTEXP_CORE,
00918     "What config file to load with Surprise Control",
00919     "ASAC-config-file", '\0', "<file>",
00920     "/lab/mundhenk/saliency/etc/surpriseControl.conf"};
00921 
00922 // Used by: Nerd-Cam
00923 const ModelOptionDef OPT_NerdCamConfigFile =
00924 { MODOPT_ARG_STRING, "NerdCamConfigFile", &MOC_DISPLAY, OPTEXP_CORE,
00925     "What config file to load with Nerd Cam",
00926     "nerdcam-config-file", '\0', "<file>",
00927     "/etc/nerdcam.conf"};
00928 
00929 
00930 // Used by: SimulationViewer
00931 const ModelOptionDef OPT_FOAradius =
00932   { MODOPT_ARG(int), "FOAradius", &MOC_DISPLAY, OPTEXP_CORE,
00933     "Radius of the Focus Of Attention, or 0 to set it from input image dims",
00934     "foa-radius", '\0', "<pixels>", "0" };
00935 
00936 // Used by: SimulationViewer
00937 const ModelOptionDef OPT_SVInverseTransform =
00938   { MODOPT_FLAG, "InvertTransform", &MOC_DISPLAY, OPTEXP_CORE,
00939     "If we are using a retinal type that performs a coordinate transfrom on the input, "
00940     "should we undo that transform for display?", "inverse-retinal", '\0', "", "true" };
00941 
00942 // Used by: SimulationViewer, SaccadeControllers
00943 const ModelOptionDef OPT_FoveaRadius =
00944   { MODOPT_ARG(int), "FoveaRadius", &MOC_DISPLAY, OPTEXP_CORE,
00945     "Radius of the fovea, or 0 to set it from input image dims",
00946     "fovea-radius", '\0', "<pixels>", "0" };
00947 
00948 // Used by: SimulationViewerStats
00949 const ModelOptionDef OPT_AGStatsSaveFile =
00950 { MODOPT_ARG_STRING, "AGStatsSaveFile", &MOC_DISPLAY, OPTEXP_CORE,
00951     "Prefix for saving attention gate stats",
00952     "ag-statsfile", '\0', "<file>", "ag-stats"};
00953 
00954 // Used by: SimulationViewerStats
00955 const ModelOptionDef OPT_ComputeAGStats =
00956   { MODOPT_FLAG, "ComputeAGStats", &MOC_DISPLAY, OPTEXP_CORE,
00957     "Should we compute the AG stats with ground truth?",
00958     "savestats-ag", '\0', "", "false" };
00959 
00960 // #################### InferoTemporal options:
00961 
00962 const ModelOptionCateg MOC_ITC = {
00963   MOC_SORTPRI_3, "Inferior Temporal Cortex Options" };
00964 
00965 // Used by: Brain
00966 const ModelOptionDef OPT_InferoTemporalType =
00967   { MODOPT_ARG_STRING, "ITCInferoTemporalType", &MOC_ITC, OPTEXP_CORE,
00968     "Type of InferoTemporal to use. 'None','Std','SalBayes', 'HMAX' or 'CUDAHMAX'",
00969     "it-type", '\0', "<None|Std|SalBayes|HMAX|CUDAHMAX>", "None" };
00970 
00971 
00972 // Used by: InferoTemporal
00973 const ModelOptionDef OPT_AttentionObjRecog =
00974   { MODOPT_FLAG, "ITCAttentionObjRecog", &MOC_ITC, OPTEXP_CORE,
00975     "Use ShapeEstimator to create a mask around the attended object prior "
00976     "to recognition.",
00977     "it-use-se", '\0', "", "no" };
00978 
00979 
00980 // Used by: InferoTemporal
00981 const ModelOptionDef OPT_ObjectDatabaseFileName =
00982   { MODOPT_ARG_STRING, "ITCObjectDatabaseFileName", &MOC_ITC, OPTEXP_CORE,
00983     "Filename for the object database",
00984     "it-object-db", '\0', "<filename>", "" };
00985 
00986 
00987 // Used by: InferoTemporal
00988 const ModelOptionDef OPT_TrainObjectDB =
00989   { MODOPT_FLAG, "ITCTrainObjectDB", &MOC_ITC, OPTEXP_CORE,
00990     "If set to yes, train the database by adding to it new objects which "
00991     "could not be recognized.",
00992     "it-train-db", '\0', "", "no" };
00993 
00994 
00995 // Used by: InferoTemporal
00996 const ModelOptionDef OPT_PromptUserTrainDB =
00997   { MODOPT_FLAG, "ITCPromptUserTrainDB", &MOC_ITC, OPTEXP_CORE,
00998     "Whether or not to prompt the user before training the database on a "
00999     "new object",
01000     "it-prompt-user-train-db", '\0', "", "no" };
01001 
01002 
01003 // Used by: InferoTemporal
01004 const ModelOptionDef OPT_MatchObjects =
01005   { MODOPT_FLAG, "ITCMatchObjects", &MOC_ITC, OPTEXP_CORE,
01006     "If true, attempt to recognize objects at every new attended location. "
01007     "When this is false, having an InferoTemporal may still make sense as "
01008     "it will be in pure training mode, just learning the representation "
01009     "of every object attended to.",
01010     "it-match-objects", '\0', "", "yes"};
01011 
01012 
01013 // Used by: InferoTemporal
01014 const ModelOptionDef OPT_MatchingAlgorithm =
01015   { MODOPT_ARG(VisualObjectMatchAlgo), "ITCMatchingAlgorithm", &MOC_ITC, OPTEXP_CORE,
01016     "The algorithm to use for object matching",
01017     "matching-alg", '\0', "<Simple|KDtree|KDtreeBBF>", "KDtreeBBF"};
01018 
01019 
01020 // Used by: InferoTemporal
01021 const ModelOptionDef OPT_RecognitionMinMatch =
01022   { MODOPT_ARG(int), "ITCRecognitionMinMatch", &MOC_ITC, OPTEXP_CORE,
01023     "The minimum number of keypoint matches for recognizing an object. If "
01024     "greater than 0, search will be terminated once an object with the "
01025     "minimum number of keypoint matches is found. If equal to 0, the "
01026     "percentage of keypoints specified by recog-minmatch-percent must be "
01027     "matched to declare an object match",
01028     "recog-minmatch", '\0', "<int>", "3" };
01029 
01030 
01031 // Used by: InferoTemporal
01032 const ModelOptionDef OPT_RecognitionMinMatchPercent =
01033   { MODOPT_ARG(float), "ITCRecognitionMinMatchPercent", &MOC_ITC, OPTEXP_CORE,
01034     "The minimum percentage of keypoints in the target object that must be "
01035     "successfully matched in order to declare an object match.",
01036     "recog-minmatch-percent", '\0', "<float>", "0.75" };
01037 
01038 
01039 // Used by: InferoTemporal
01040 const ModelOptionDef OPT_SortObjects =
01041   { MODOPT_FLAG, "ITCSortObjects", &MOC_ITC, OPTEXP_CORE,
01042     "Whether or not to sort the objects in the database before matching. "
01043     "similarity before matching.",
01044     "sort-objects", '\0', "", "no"};
01045 
01046 
01047 // Used by: InferoTemporal
01048 const ModelOptionDef OPT_SortObjectsBy =
01049   { MODOPT_ARG_STRING, "ITCSortObjectsBy", &MOC_ITC, OPTEXP_CORE,
01050     "The metric to use to sort the objects in the database - 'features' or "
01051     "'location'. Only has effect when --sort-objects=yes. ",
01052     "sort-objects-by", '\0', "<features|location>", "features"};
01053 
01054 
01055 // Used by: InferoTemporal
01056 const ModelOptionDef OPT_SortKeys =
01057   { MODOPT_FLAG, "ITCSortKeys", &MOC_ITC, OPTEXP_CORE,
01058     "Whether or not to sort the keys by scale space extrema magnitude "
01059     "before matching.",
01060     "sort-keys", '\0', "", "no"};
01061 
01062 
01063 // Used by: InferoTemporal
01064 const ModelOptionDef OPT_OutputFileName =
01065   { MODOPT_ARG_STRING, "ITCOutputFileName", &MOC_ITC, OPTEXP_CORE,
01066     "The name of the object recognition output file",
01067     "objrecog-output", '\0', "<filename>", ""};
01068 
01069 
01070 
01071 
01072 // #################### ShapeEstimator options:
01073 // Used by: ShapeEstimator
01074 const ModelOptionDef OPT_ShapeEstimatorMode =
01075   { MODOPT_ARG(ShapeEstimatorMode), "ShapeEstimatorMode",
01076     &MOC_BRAIN, OPTEXP_CORE,
01077     "Shape estimator mode",
01078     "shape-estim-mode", '\0', "<None|FeatureMap|ConspicuityMap|SaliencyMap>",
01079     "None" };
01080 
01081 const ModelOptionDef OPT_ShapeEstimatorSmoothMethod =
01082   { MODOPT_ARG(ShapeEstimatorSmoothMethod), "ShapeEstimatorSmoothMethod",
01083     &MOC_BRAIN, OPTEXP_CORE,
01084     "Shape estimator smooth method",
01085     "shape-estim-smoothmethod", '\0', "<None|Gaussian|Chamfer>",
01086     "Gaussian" };
01087 
01088 
01089 
01090 
01091 // #################### Brain options:
01092 
01093 const ModelOptionCateg MOC_BRAIN = {
01094   MOC_SORTPRI_3, "General Brain/Attention-Related Options" };
01095 
01096 // Used by: Brain
01097 const ModelOptionDef OPT_BrainBoringDelay =
01098   { MODOPT_ARG(SimTime), "BrainBoringDelay", &MOC_BRAIN, OPTEXP_CORE,
01099     "Attention shifts that come after an interval longer than this "
01100     "will be considered 'boring' (for example, they may be represented "
01101     "differently in output displays)",
01102     "boring-delay", '\0', "<time>", "200.0ms" };
01103 
01104 // Used by: Brain
01105 const ModelOptionDef OPT_BrainBoringSMmv =
01106   { MODOPT_ARG(float), "BrainBoringSMmv", &MOC_SM, OPTEXP_CORE,
01107     "Saliency map level (in mV) below which attention shifts will be "
01108     "considered 'boring' (for example, they may be represented "
01109     "differently in output displays)",
01110     "boring-sm-mv", '\0', "<float>", "3.0" };
01111 
01112 // Used by: Brain
01113 const ModelOptionDef OPT_IORtype =
01114   { MODOPT_ARG(IORtype), "IORtype", &MOC_BRAIN, OPTEXP_CORE,
01115     "Type of IOR to use; default is ShapeEstimator-based, but if "
01116     "no ShapeEstimator information is available, then we fall back to "
01117     "Disc IOR",
01118     "ior-type", '\0', "<None|Disc|ShapeEst>", "ShapeEst" };
01119 
01120 // Used by: Brain
01121 const ModelOptionDef OPT_BrainSaveObjMask =
01122   { MODOPT_FLAG, "BrainSaveObjMask", &MOC_DISPLAY, OPTEXP_SAVE,
01123     "Save object mask",
01124     "save-objmask", '\0', "", "false" };
01125 
01126 // Used by: Brain
01127 const ModelOptionDef OPT_BlankBlink =
01128   { MODOPT_FLAG, "BlankBlink", &MOC_BRAIN, OPTEXP_CORE,
01129     "Blank-out visual input during eye blinks",
01130     "blank-blink", '\0', "", "false" };
01131 
01132 // Used by: Brain
01133 const ModelOptionDef OPT_BrainTooManyShifts =
01134   { MODOPT_ARG(int), "BrainTooManyShifts", &MOC_BRAIN, OPTEXP_CORE,
01135     "Exit after this number of covert attention shifts",
01136     "too-many-shifts", '\0', "<int>", "0" };
01137 
01138 const ModelOptionDef OPT_BrainTooManyShiftsPerFrame =
01139   { MODOPT_ARG(int), "BrainTooManyShiftsPerFrame", &MOC_BRAIN, OPTEXP_CORE,
01140     "Wait untill the next frame after this number of covert attention shifts",
01141     "too-many-shifts-per-frame", '\0', "<int>", "0" };
01142 
01143 // Used by: Brain
01144 const ModelOptionDef OPT_TargetMaskFname =
01145   { MODOPT_ARG_STRING, "TargetMaskFname", &MOC_BRAIN, OPTEXP_CORE,
01146     "Name of a grayscale image file to be loaded and used as a "
01147     "targetmask for Brain",
01148     "target-mask", '\0', "<filename>", "" };
01149 
01150 
01151 
01152 
01153 
01154 // #################### Saliency Map options:
01155 
01156 const ModelOptionCateg MOC_SM = {
01157   MOC_SORTPRI_3, "Saliency Map Related Options" };
01158 
01159 // Used by: SaliencyMapConfigurator
01160 const ModelOptionDef OPT_SaliencyMapType =
01161   { MODOPT_ARG_STRING, "SaliencyMapType", &MOC_SM, OPTEXP_CORE,
01162     "Type of Saliency Map to use. 'None' for no saliency map, 'Std' for the "
01163     "standard saliency map using LeakyIntegrator neurons (takes a lot "
01164     "of CPU cycles to evolve), 'Trivial' for just a non-evolving copy of the "
01165     "inputs, 'Fast' for a faster implementation that"
01166     "just takes a weighted average between current and new saliency "
01167     "map at each time step.",
01168     "sm-type", '\0', "<None|Std|StdOptim|Trivial|Fast>", "Std" };
01169 
01170 // Used by: SaliencyMap and derivatives
01171 const ModelOptionDef OPT_SMsaveResults =
01172   { MODOPT_FLAG, "SMsaveResults", &MOC_SM, OPTEXP_SAVE,
01173     "Save saliency map as an un-normalized float image, which is useful "
01174     "to compare the absolute saliency values across several images or "
01175     "several frames of a movie. You may use saliency/matlab/pfmread.m "
01176     "to read these images into matlab, or saliency/bin/pfmtopgm to convert "
01177     "them to PGM format.",
01178     "save-salmap", '\0', "", "false" };
01179 
01180 // Used by: SaliencyMap and derivatives
01181 const ModelOptionDef OPT_SMsaveCumResults =
01182   { MODOPT_FLAG, "SMsaveCumResults", &MOC_SM, OPTEXP_SAVE,
01183     "Save cumulative saliency map so far as an unnormalized float image.",
01184     "save-cumsalmap", '\0', "", "false" };
01185 
01186 // Used by: SaliencyMap and derivatives
01187 const ModelOptionDef OPT_SMuseSacSuppress =
01188   { MODOPT_FLAG, "SMuseSacSuppress", &MOC_SM, OPTEXP_CORE,
01189     "Use saccadic suppression in the saliency map",
01190     "salmap-sacsupp", '\0', "", "true" };
01191 
01192 // Used by: SaliencyMap and derivatives
01193 const ModelOptionDef OPT_SMuseBlinkSuppress =
01194   { MODOPT_FLAG, "SMuseBlinkSuppress", &MOC_SM, OPTEXP_CORE,
01195     "Use blink suppression in the saliency map",
01196     "salmap-blinksupp", '\0', "",
01197     // NOTE: the default value here is 'false' because historically in
01198     // Brain we had commented out the line that triggered an eyeBlink
01199     // in the SaliencyMap; now, that line is re-instated, but we
01200     // retain the default=off behavior by setting the default value to
01201     // false here
01202     "false" };
01203 
01204 // Used by: SaliencyMapFast
01205 const ModelOptionDef OPT_SMfastInputCoeff =
01206   { MODOPT_ARG(float), "SMfastInputCoeff", &MOC_SM, OPTEXP_CORE,
01207     "Coefficient by which new inputs merge with old ones at each time step",
01208     "salmap-inputcoeff", '\0', "<0..1>", "0.1" };
01209 
01210 // Used by: SaliencyMapFast
01211 const ModelOptionDef OPT_SMItoVcoeff =
01212   { MODOPT_ARG(float), "SMItoVcoeff", &MOC_SM, OPTEXP_CORE,
01213     "Coefficient used to convert from synaptic current inputs (typically "
01214     "in the nA range) to voltage outputs (typically in the mV range)",
01215     "salmap-itovcoeff", '\0', "<float>", "5000000.0" };
01216 
01217 // Used by: SaliencyMapStd
01218 const ModelOptionDef OPT_SMginhDecay =
01219   { MODOPT_ARG(float), "SMginhDecay", &MOC_SM, OPTEXP_CORE,
01220     "Coefficient by which inhibition-of-return dies off at each time step",
01221     "salmap-iordecay", '\0', "<0..1>", "0.9999" };
01222 
01223 // Used by: SaliencyMapStd
01224 const ModelOptionDef OPT_SMmaxWinV =
01225   { MODOPT_ARG(float), "SMmaxWinV", &MOC_SM, OPTEXP_CORE,
01226     "Winner voltage (in millivolts) which, if exceeded, will trigger global "
01227     "inhibition over the saliency map. This helps avoiding that the "
01228     "saliency map explodes if it receives constantly strong inputs.",
01229     "salmap-maxwinv", '\0', "<mV>", "5.0" };
01230 
01231 
01232 
01233 // #################### Task-Relevance Map options:
01234 
01235 const ModelOptionCateg MOC_TRM = {
01236   MOC_SORTPRI_3, "Task-Relevance Map Related Options" };
01237 
01238 // Used by: TaskRelevanceMapConfigurator
01239 const ModelOptionDef OPT_TaskRelevanceMapType =
01240   { MODOPT_ARG_STRING, "TaskRelevanceMapType", &MOC_TRM, OPTEXP_CORE,
01241     "Type of Task-Relevance Map to use. 'None' for no map, 'Std' for the "
01242     "standard TRM that needs an agent to compute the relevance of "
01243     "objects, 'KillStatic' for a TRM that progressively decreases "
01244     "the relevance of static objects, and 'KillN' for a TRM that kills "
01245     "the last N objects that have been passed to it, 'GistClassify' for classify"
01246     "the current frame into different categories and use the corresponding"
01247     "pre-defined TD map, 'Tigs' for use the gist vector to get a top down map"
01248     "Tigs2 use the gist vector combined with the PCA image vector to get a"
01249     "top down map", "trm-type", '\0',
01250     "<None|Std|KillStatic|KillN|GistClassify|Tigs|Tigs2>", "None" };
01251 
01252 // Used by: TaskRelevanceMap and derivatives
01253 const ModelOptionDef OPT_TRMsaveResults =
01254   { MODOPT_FLAG, "TRMsaveResults", &MOC_TRM, OPTEXP_SAVE,
01255     "Save task-relevance map",
01256     "save-trm", '\0', "", "false" };
01257 
01258 // Used by: Scene understanding model
01259 const ModelOptionDef OPT_LearnTRM =
01260   { MODOPT_FLAG, "LearnTRM", &MOC_TRM, OPTEXP_CORE,
01261     "Learn TRM over a number of scenes", "learn-trm", '\0', "", "false" };
01262 
01263 // Used by: Scene understanding model
01264 const ModelOptionDef OPT_LearnUpdateTRM =
01265   { MODOPT_FLAG, "LearnUpdateTRM", &MOC_TRM, OPTEXP_CORE,
01266     "Learn and update TRM over a number of scenes",
01267     "learn-update-trm", '\0', "", "false" };
01268 
01269 // Used by: Brain for the Scene understanding model
01270 const ModelOptionDef OPT_BiasTRM =
01271   { MODOPT_ARG_STRING, "BiasTRM", &MOC_TRM, OPTEXP_CORE,
01272     "bias the TRM with the given image", "bias-trm", '\0', "<file>", "" };
01273 
01274 // Used by: TaskRelevanceMapKillStatic
01275 const ModelOptionDef OPT_TRMKillStaticThresh =
01276   { MODOPT_ARG(float), "TRMKillStaticThresh", &MOC_TRM, OPTEXP_CORE,
01277     "Minimum difference between current luminance and previously cumulated "
01278     "luminance for a point to be considered non-static",
01279     "kill-static-thresh", '\0', "<float>", "20.0" };
01280 
01281 // Used by: TaskRelevanceMapKillStatic
01282 const ModelOptionDef OPT_TRMKillStaticCoeff =
01283   { MODOPT_ARG(float), "TRMKillStaticCoeff", &MOC_TRM, OPTEXP_CORE,
01284     "Killing achieved by a purely static location. "
01285     "A value of 1.0 here means that all salience of a static location will "
01286     "be killed; a value of 0 means no killing",
01287     "kill-static-coeff", '\0', "<0.0 .. 1.0>", "0.95" };
01288 
01289 // Used by: TaskRelevanceMapKillN
01290 const ModelOptionDef OPT_TRMkillN =
01291   { MODOPT_ARG(int), "TRMkillN", &MOC_TRM, OPTEXP_CORE,
01292     "Number of objects to kill.",
01293     "killn", '\0', "<int>", "3" };
01294 
01295 // Used by: TaskRelevanceMapGistClassify
01296 const  ModelOptionDef OPT_TRMClusterCenterFile =
01297   { MODOPT_ARG_STRING, "TRMClusterCenterFile",  &MOC_TRM, OPTEXP_CORE,
01298     "the centroids of different gist clusters are saved in a file, which "
01299     "first number means the category number, the second number is the gist vector "
01300     "dims, then the following data are the gist vectors for each of the cluster",
01301     "cluster-center-file", '\0',"<file>",
01302     "/lab/tmpib/u/gist-trm/training/cluster_center/cluster_center.dat"
01303   };
01304 
01305 // Used by: TaskRelevanceMapGistClassify
01306 const  ModelOptionDef OPT_TRMTemplateDir =
01307   { MODOPT_ARG_STRING, "TRMTemplateDir",  &MOC_TRM, OPTEXP_CORE,
01308     "the template files under the template directiry are adopted "
01309     "according to the classify result each template file is a "
01310     "pre-defined TD map, and we can rescale it to the current frame size",
01311     "Template-dir", '\0',"<dir>",
01312     "/lab/tmpib/u/gist-trm/training/template/"
01313   };
01314 
01315 // Used by: TaskRelevanceMapGistClassify
01316 const ModelOptionDef OPT_TRMGistPCADims =
01317   {
01318     MODOPT_ARG(int),"GistPCADims", &MOC_TRM, OPTEXP_CORE,
01319     "use PCA Matrix to reduce the gist vector's dim"
01320     "dims=5 keep 95% variance, dims=4 keep 91.3%, "
01321     "dims=3 keep 76.8%, dims=2 keep 60%",
01322     "gist-PCADims", '\0',"<int>", "5"
01323   };
01324 
01325 // Used by: TaskRelevanceMapGistClassify
01326 const ModelOptionDef OPT_TRMGistPCAMatrix =
01327   {
01328     MODOPT_ARG_STRING,"GistPCAMatrix", &MOC_TRM, OPTEXP_CORE,
01329     "use PCA Matrix to reduce the gist vector's dim"
01330     "specify the PCA matrix file directory",
01331     "gist-PCAmatrix", '\0',"<dir>",
01332     "/lab/tmpib/u/gist-trm/training/PCA/PCAMatrix.dat"
01333   };
01334 
01335 // Used by: TaskRelevanceMapGistClassify
01336 const ModelOptionDef OPT_TRMCacheSize =
01337   {
01338     MODOPT_ARG(int),"TRMCacheSize", &MOC_TRM,  OPTEXP_CORE,
01339     "the cache size of the TRM",
01340     "trm-cacheSize", '\0', "<int>", "5"
01341   };
01342 
01343 // Used by: TaskRelevanceMapGistClassify
01344 const ModelOptionDef OPT_TRMUpdatePeriod =
01345   {
01346     MODOPT_ARG(int),"TRMUpdatePeriod", &MOC_TRM,  OPTEXP_CORE,
01347     "the period update the TRM",
01348     "trm-updatePeriod", '\0', "<int>",
01349     "1"
01350   };
01351 
01352 // Used by: TaskRelevanceMapTigs
01353 const ModelOptionDef OPT_TRMTigsMatrix =
01354   {
01355     MODOPT_ARG_STRING,"TigsMatrix", &MOC_TRM,  OPTEXP_CORE,
01356     "the trained Tigs Matrix",
01357     "tigs-matrix", '\0', "<dir>",
01358     "/lab/tmpib/u/gist-trm/training/extend/Matlab/TigsMatrix.dat"
01359   };
01360 
01361 // Used by: TaskRelevanceMapTigs2
01362 const ModelOptionDef OPT_TRMImgPCADims =
01363   {
01364     MODOPT_ARG(int),"ImagePCADims", &MOC_TRM, OPTEXP_CORE,
01365     "use PCA Matrix to reduce the image vector's dim",
01366     "img-PCADims", '\0',"<int>", "20"
01367   };
01368 
01369 // Used by: TaskRelevanceMapTigs2
01370 const ModelOptionDef OPT_TRMImgPCAMatrix =
01371   {
01372     MODOPT_ARG_STRING,"ImagePCAMatrix", &MOC_TRM, OPTEXP_CORE,
01373     "use PCA Matrix to reduce the image vector's dim"
01374     "specify the PCA matrix file directory",
01375     "img-PCAmatrix", '\0',"<dir>",
01376     "/lab/tmpib/u/gist-trm/training/extend/imgPCA/imgPCAMatrix.dat"
01377   };
01378 
01379 // Used by: TaskRelevanceMapTigs2
01380 const ModelOptionDef OPT_TRMTigs2Matrix =
01381   {
01382     MODOPT_ARG_STRING,"Tigs2Matrix", &MOC_TRM,  OPTEXP_CORE,
01383     "the trained Tigs2 Matrix",
01384     "tigs2-matrix", '\0', "<dir>",
01385     "/lab/tmpib/u/gist-trm/training/Tigs2/code/Tigs2Matrix.dat"
01386   };
01387 
01388 const ModelOptionDef OPT_TRMSocialRegionFName = 
01389   { MODOPT_ARG_STRING, "TRMRegionFile", &MOC_TRM, OPTEXP_CORE,
01390     "XML input file with labeled/defined regions for all frames.",
01391     "trmsocial-input-file", '\0', "<file>", "" 
01392   };
01393 
01394 // #################### Attention Guidance Map options:
01395 
01396 const ModelOptionCateg MOC_AGM = {
01397   MOC_SORTPRI_3, "Attention Guidance Map Related Options" };
01398 
01399 // Used by: AttentionGuidanceMapConfigurator
01400 const ModelOptionDef OPT_AttentionGuidanceMapType =
01401   { MODOPT_ARG_STRING, "AttentionGuidanceMapType", &MOC_AGM, OPTEXP_CORE,
01402     "Type of Attention Guidance Map to use. 'None' for no map (in which "
01403     "case Brain will use the bottom-up saliency map for attention "
01404     "guidance), 'Std' for the standard AGM that just computes the pointwise "
01405     "product between bottom-up saliency map and top-down task-relevance "
01406     "map.  'NF' for maps based on simple neural fields. 'SC' for an AGM "
01407     "based on the neural architecture and "
01408     "functionality of the superior colliculus.",
01409     "agm-type", '\0', "<None|Std|Opt|NF|SC>", "Std" };
01410 
01411 // Used by: AttentionGuidanceMap and derivatives
01412 const ModelOptionDef OPT_AGMsaveResults =
01413   { MODOPT_FLAG, "AGMsaveResults", &MOC_AGM, OPTEXP_SAVE,
01414     "Save attention guidance map",
01415     "save-agm", '\0', "", "false" };
01416 
01417 
01418 // Used by: AttentionGuidanceMapSC and AttentionGuidanceMapNF
01419 const ModelOptionDef OPT_AGMoutputRate =
01420   { MODOPT_ARG(SimTime), "AGMoutputRate", &MOC_AGM, OPTEXP_SAVE,
01421     "the rate at which we post our output maps",
01422     "agm-output-rate", '\0', "<SimTime>", "10ms" };
01423 
01424 // #################### Attention Gate options:
01425 
01426 const ModelOptionCateg MOC_AG = {
01427   MOC_SORTPRI_3, "Attention Gate Related Options" };
01428 
01429 // Used by: AttentionGateConfigurator
01430 const ModelOptionDef OPT_AttentionGateType =
01431   { MODOPT_ARG_STRING, "AttentionGateType", &MOC_AG, OPTEXP_CORE,
01432     "Type of Attention Gate to use. "
01433     "Std or None",
01434     "ag-type", '\0', "<Std|None>", "None" };
01435 
01436 // Used by: AttentionGate and derivatives
01437 const ModelOptionDef OPT_AttentionGateStageOneType =
01438   { MODOPT_ARG_STRING, "AttentionGateStageOneType", &MOC_AG, OPTEXP_CORE,
01439     "Type of stage one Attention Gate to use. "
01440     "Simple or Complex",
01441     "ag-so-type", '\0', "<Simple|Complex>", "Simple" };
01442 
01443 // Used by: AttentionGate and derivatives
01444 const ModelOptionDef OPT_AttentionGateStageTwoType =
01445   { MODOPT_ARG_STRING, "AttentionGateStageTwoType", &MOC_AG, OPTEXP_CORE,
01446     "Type of stage two Attention Gate to use. "
01447     "Std or None",
01448     "ag-st-type", '\0', "<Std|None>", "None" };
01449 
01450 // Used by: AttentionGate and derivatives
01451 const ModelOptionDef OPT_AttentionGateStageTwoEpochs =
01452   { MODOPT_ARG(int), "AttentionGateStageTwoEpochs", &MOC_AG, OPTEXP_CORE,
01453     "How many epochs to look forward and backwards. "
01454     "An integer such as 5.",
01455     "ag-st-epochs", '\0', "<int>", "5" };
01456 
01457 // Used by: AttentionGate and derivatives
01458 const ModelOptionDef OPT_AGsaveResults =
01459   { MODOPT_FLAG, "AGsaveResults", &MOC_AG, OPTEXP_SAVE,
01460     "Save attention gate maps",
01461     "save-ag", '\0', "", "false" };
01462 
01463 // Used by: AttentionGate and derivatives
01464 const ModelOptionDef OPT_AGTargetFrame =
01465   { MODOPT_ARG(int), "AGTargetFrame", &MOC_AG, OPTEXP_CORE,
01466     "Which frame contains the target if needed "
01467     "An integer such as 11.",
01468     "ag-tframe", '\0', "<int>", "0" };
01469 
01470 // Used by: AttentionGate and derivatives
01471 const ModelOptionDef OPT_AGMaskFile =
01472   { MODOPT_ARG_STRING, "AGMaskFile", &MOC_AG, OPTEXP_CORE,
01473     "Name of the ground truth mask file to use if any. "
01474     "Should be a file name string",
01475     "ag-maskfile", '\0', "<string>", "mask.png" };
01476 
01477 // #################### Winner-Take-All options:
01478 
01479 const ModelOptionCateg MOC_WTA = {
01480   MOC_SORTPRI_3, "Winner-Take-All Related Options" };
01481 
01482 // Used by: WinnerTakeAllConfigurator
01483 const ModelOptionDef OPT_WinnerTakeAllType =
01484   { MODOPT_ARG_STRING, "WinnerTakeAllType", &MOC_WTA, OPTEXP_CORE,
01485     "Type of Winner-Take-All to use. 'None' for no winner-take-all, 'Std' "
01486     "for the standard winner-take-all using LeakyIntFire neurons "
01487     "(takes a lot of CPU cycles to evolve), 'Fast' for a faster "
01488     "implementation that just computes the location of the max at "
01489     "every time step, 'Greedy' is one that returns, out of a number of "
01490     "possible targets above a threshold, the one closest to current eye "
01491     "position. 'Notice' uses an adaptive leaky integrate and fire neuron "
01492     "that trys to notice things across frames",
01493     "wta-type", '\0', "<None|Std|StdOptim|Fast|Greedy|Notice>", "Std" };
01494 
01495 // Used by: WinnerTakeAll and derivatives
01496 const ModelOptionDef OPT_WTAsaveResults =
01497   { MODOPT_FLAG, "WTAsaveResults", &MOC_WTA, OPTEXP_SAVE,
01498     "Save winner-take-all membrane potential values",
01499     "save-wta", '\0', "", "false" };
01500 
01501 // Used by: WinnerTakeAll and derivatives
01502 const ModelOptionDef OPT_WTAuseSacSuppress =
01503   { MODOPT_FLAG, "WTAuseSacSuppress", &MOC_WTA, OPTEXP_CORE,
01504     "Use saccadic suppression in the winner-take-all",
01505     "wta-sacsupp", '\0', "", "true" };
01506 
01507 // Used by: WinnerTakeAll and derivatives
01508 const ModelOptionDef OPT_WTAuseBlinkSuppress =
01509   { MODOPT_FLAG, "WTAuseBlinkSuppress", &MOC_WTA, OPTEXP_CORE,
01510     "Use blink suppression in the winner-take-all",
01511     "wta-blinksupp", '\0', "", "true" };
01512 
01513 // Used by: WinnerTakeAllGreedy
01514 const ModelOptionDef OPT_WinnerTakeAllGreedyThreshFac =
01515   { MODOPT_ARG(float), "WinnerTakeAllGreedyThreshFac", &MOC_WTA, OPTEXP_CORE,
01516     "Threshold, as a factor of the max, over which possible local "
01517     "maxima will be considered",
01518     "wta-greedyfac", '\0', "<0.0 .. 1.0>", "0.5" };
01519 
01520 // #################### SaccadeController options:
01521 
01522 const ModelOptionCateg MOC_SAC = {
01523   MOC_SORTPRI_3, "Eye/Head Saccade Controller Options" };
01524 
01525 // Used by: SaccadeControllers
01526 const ModelOptionDef OPT_SCeyeInitialPosition =
01527   { MODOPT_ARG(Point2D<int>), "SCeyeInitialPosition", &MOC_SAC, OPTEXP_CORE,
01528     "Initial eye position, or (-1,-1) to start as undefined until the first "
01529     "shift of attention, or (-2,-2) to start at the center of the image",
01530     "initial-eyepos", '\0', "<x,y>", "-1,-1" };
01531 
01532 // Used by: SaccadeControllers
01533 const ModelOptionDef OPT_SCheadInitialPosition =
01534   { MODOPT_ARG(Point2D<int>), "SCheadInitialPosition", &MOC_SAC, OPTEXP_CORE,
01535     "Initial head position, or (-1,-1) to start as undefined until the first "
01536     "shift of attention, or (-2,-2) to start at the center of the image",
01537     "initial-headpos", '\0', "<x,y>", "-1,-1" };
01538 
01539 // Used by: TrivialSaccadeController
01540 const ModelOptionDef OPT_SCeyeMinSacLen =
01541   { MODOPT_ARG(float), "SCeyeMinSacLen", &MOC_SAC, OPTEXP_CORE,
01542     "Minimum eye movement distance for a saccade (in pixels)",
01543     "eye-minsac", '\0', "<float>", "10.0" };
01544 
01545 // Used by: TrivialSaccadeController
01546 const ModelOptionDef OPT_SCheadMinSacLen =
01547   { MODOPT_ARG(float), "SCheadMinSacLen", &MOC_SAC, OPTEXP_CORE,
01548     "Minimum head movement distance for a saccade (in pixels)",
01549     "head-minsac", '\0', "<float>", "10.0" };
01550 
01551 // Used by: SaccadeControllers
01552 const ModelOptionDef OPT_SCeyeSpringK =
01553   { MODOPT_ARG(double), "SCeyeSpringK", &MOC_SAC, OPTEXP_CORE,
01554     "Eye spring stiffness to use in mass/spring simulations",
01555     "eye-spring-k", '\0', "<float>", "50000.0" };
01556 
01557 // Used by: SaccadeControllers
01558 const ModelOptionDef OPT_SCeyeFrictionMu =
01559   { MODOPT_ARG(double), "SCeyeFrictionMu", &MOC_SAC, OPTEXP_CORE,
01560     "Eye friction coefficient to use in mass/spring simulations",
01561     "eye-friction-mu", '\0', "<float>", "500.0" };
01562 
01563 // Used by: SaccadeControllers
01564 const ModelOptionDef OPT_SCeyeThreshMinOvert =
01565   { MODOPT_ARG(float), "SCeyeThreshMinOvert", &MOC_SAC, OPTEXP_CORE,
01566     "Minimum overt distance for a saccade (as factor of fovea radius)",
01567     "eye-minovert-fac", '\0', "<float>", "2.0" };
01568 
01569 // Used by: SaccadeControllers
01570 const ModelOptionDef OPT_SCeyeThreshMaxCovert =
01571   { MODOPT_ARG(float), "SCeyeThreshMaxCovert", &MOC_SAC, OPTEXP_CORE,
01572     "Maximum covert distance for a saccade (as factor of fovea radius)",
01573     "eye-maxcovert-fac", '\0', "<float>", "1.5" };
01574 
01575 // Used by: SaccadeControllers
01576 const ModelOptionDef OPT_SCeyeThreshMinNum =
01577   { MODOPT_ARG(int), "SCeyeThreshMinNum", &MOC_SAC, OPTEXP_CORE,
01578     "Minimum required number of covert shifts within max covert distance",
01579     "eye-mincovertnum", '\0', "<int>", "4" };
01580 
01581 // Used by: SaccadeControllers
01582 const ModelOptionDef OPT_SCeyeThreshSalWeigh =
01583   { MODOPT_FLAG, "SCeyeThreshSalWeigh", &MOC_SAC, OPTEXP_CORE,
01584     "Weight covert positions by saliency when computing average distance",
01585     "eye-saliencyweight", '\0', "<true|false>", "true" };
01586 
01587 // Used by: SaccadeControllers
01588 const ModelOptionDef OPT_SCeyeMaxIdleSecs =
01589   { MODOPT_ARG(SimTime), "SCeyeMaxIdleSecs", &MOC_SAC, OPTEXP_CORE,
01590     "Maximum idle time (in s) before eyes return to initial eye position",
01591     "eye-maxidle-time", '\0', "<float>", "0.75" };
01592 
01593 
01594 // Used by: SaccadeControllers
01595 const ModelOptionDef OPT_SCheadSpringK =
01596   { MODOPT_ARG(double), "SCheadSpringK", &MOC_SAC, OPTEXP_CORE,
01597     "Head spring stiffness to use in mass/spring simulations",
01598     "head-spring-k", '\0', "<float>", "10000.0" };
01599 
01600 // Used by: SaccadeControllers
01601 const ModelOptionDef OPT_SCheadFrictionMu =
01602   { MODOPT_ARG(double), "SCheadFrictionMu", &MOC_SAC, OPTEXP_CORE,
01603     "Head friction coefficient to use in mass/spring simulations",
01604     "head-friction-mu", '\0', "<float>", "5000.0" };
01605 
01606 // Used by: SaccadeControllers
01607 const ModelOptionDef OPT_SCheadThreshMinOvert =
01608   { MODOPT_ARG(float), "SCheadThreshMinOvert", &MOC_SAC, OPTEXP_CORE,
01609     "Minimum overt distance for a head saccade (as factor of fovea radius)",
01610     "head-minovert-fac", '\0', "<float>", "2.0" };
01611 
01612 // Used by: SaccadeControllers
01613 const ModelOptionDef OPT_SCheadThreshMaxCovert =
01614   { MODOPT_ARG(float), "SCheadThreshMaxCovert", &MOC_SAC, OPTEXP_CORE,
01615     "Maximum covert distance for a head saccade (as factor of fovea radius)",
01616     "head-maxcovert-fac", '\0', "<float>", "1.5" };
01617 
01618 // Used by: SaccadeControllers
01619 const ModelOptionDef OPT_SCheadThreshMinNum =
01620   { MODOPT_ARG(int), "SCheadThreshMinNum", &MOC_SAC, OPTEXP_CORE,
01621     "Minimum required number of covert shifts within max covert distance",
01622     "head-mincovertnum", '\0', "<int>", "4" };
01623 
01624 // Used by: SaccadeControllers
01625 const ModelOptionDef OPT_SCheadThreshSalWeigh =
01626   { MODOPT_FLAG, "SCheadThreshSalWeigh", &MOC_SAC, OPTEXP_CORE,
01627     "Weight covert positions by saliency when computing average distance",
01628     "head-saliencyweight", '\0', "<true|false>", "true" };
01629 
01630 // Used by: SaccadeControllers
01631 const ModelOptionDef OPT_SCheadMaxIdleSecs =
01632   { MODOPT_ARG(SimTime), "SCheadMaxIdleSecs", &MOC_SAC, OPTEXP_CORE,
01633     "Maximum idle time (in s) before head return to initial eye position",
01634     "head-maxidle-time", '\0', "<float>", "0.75" };
01635 
01636 
01637 // Used by: SaccadeControllers
01638 const ModelOptionDef OPT_SCeyeBlinkWaitTime =
01639   { MODOPT_ARG(SimTime), "SCeyeBlinkWaitTime", &MOC_SAC, OPTEXP_CORE,
01640     "Typical wait time between eye blinks (in s)",
01641     "blink-wait", '\0', "<float>", "1.8" };
01642 
01643 // Used by: SaccadeControllers
01644 const ModelOptionDef OPT_SCeyeBlinkDuration =
01645   { MODOPT_ARG(SimTime), "SCeyeBlinkDuration", &MOC_SAC, OPTEXP_CORE,
01646     "Eye blink duration (in s)",
01647     "blink-duration", '\0', "<float>", "0.190" };
01648 
01649 // Used by: EyeTrackerEyeHeadController
01650 const ModelOptionDef OPT_EHCeyeTrackConfig =
01651   { MODOPT_ARG_STRING, "EHCeyeTrackConfig", &MOC_SAC, OPTEXP_CORE,
01652     "Config string to determine which eye-tracking files to use for "
01653     "comparison with model predictions. This should be a "
01654     "comma-separated list of eyetrace filenames.",
01655     "eyetrack-data", '\0',
01656     "<filename,filename,...>", "" };
01657 
01658 // Used by: EyeHeadControllerConfigurator
01659 const ModelOptionDef OPT_EyeHeadControllerType =
01660   { MODOPT_ARG_STRING, "EyeHeadControllerType", &MOC_SAC, OPTEXP_CORE,
01661     "Eye/Head Controller name (pick a name and then use --help to see "
01662     "options specific to the chosen controller)",
01663     "ehc-type", '\0',
01664     "<None|Simple|EyeTrack|Monkey>", "None" };
01665 
01666 // Used by: SaccadeControllerConfigurator
01667 const ModelOptionDef OPT_SaccadeControllerEyeType =
01668   { MODOPT_ARG_STRING, "SaccadeControllerEyeType", &MOC_SAC, OPTEXP_CORE,
01669     "Eye Saccade Controller name (pick a name and then use --help to see "
01670     "options specific to the chosen controller)",
01671     "esc-type", '\0',
01672     "<None|Trivial|Fixed|Friction|Threshold|Threshfric>", "None" };
01673 
01674 // Used by: SaccadeControllerConfigurator
01675 const ModelOptionDef OPT_SaccadeControllerHeadType =
01676   { MODOPT_ARG_STRING, "SaccadeControllerHeadType", &MOC_SAC, OPTEXP_CORE,
01677     "Head Saccade Controller name (pick a name and then use --help to see "
01678     "options specific to the chosen controller)",
01679     "hsc-type", '\0',
01680     "<None|Trivial|Fixed|Friction|Threshold|Threshfric>", "None" };
01681 
01682 // #################### HandController options:
01683 
01684 const ModelOptionCateg MOC_HAND = {
01685   MOC_SORTPRI_3, "Hand Controller Options" };
01686 
01687 // Used by: HandControllerConfigurator
01688 const ModelOptionDef OPT_HandControllerType =
01689   { MODOPT_ARG_STRING, "HandControllerType", &MOC_HAND, OPTEXP_CORE,
01690     "Hand Controller name (pick a name and then use --help to see "
01691     "options specific to the chosen controller)",
01692     "hand-type", '\0',
01693     "<None|HandTrack>", "None" };
01694 
01695 // Used by: HandController
01696 const ModelOptionDef OPT_HandConfig =
01697   { MODOPT_ARG_STRING, "HandConfig", &MOC_HAND, OPTEXP_CORE,
01698     "Config string to determine which hand-tracking files to use for "
01699     "comparison with model predictions. This should be a "
01700     "comma-separated list of handtrace filenames.",
01701     "handtrack-data", '\0',
01702     "<filename,filename,...>", "" };
01703 
01704 
01705 
01706 // #################### GistEstimator options:
01707 
01708 const ModelOptionCateg MOC_GE = {
01709   MOC_SORTPRI_3, "Gist Estimator Options" };
01710 
01711 // Used by: SaccadeControllerConfigurator
01712 const ModelOptionDef OPT_GistEstimatorType =
01713   { MODOPT_ARG_STRING, "GistEstimatorType", &MOC_GE, OPTEXP_CORE,
01714     "Type of gist estimator to use",
01715     "ge-type", '\0',
01716     "<None|Std|FFT|Texton|CB|BBoF|SurfPMK|Gen>", "None" };
01717 
01718 // Used by: GistEstimatorGen
01719 const ModelOptionDef OPT_GistCenterSurroundFlag =
01720   { MODOPT_ARG(int), "GistEstimatorCenterSurroundFlag", &MOC_GE, OPTEXP_CORE,
01721     "use center surround to compute the gist or not"
01722     "0: no center-surround, 1: only use center-surround"
01723     "2: use both center-surround and non center-surround",
01724     "gist-cs", '\0',"<0|1|2>", "1" };
01725 
01726 // Used by: GistSaveAdapter
01727 const ModelOptionDef OPT_SaveGistFlag =
01728   { MODOPT_FLAG, "SaveGistFlag", &MOC_GE, OPTEXP_CORE,
01729     "save the gist to disk or not",
01730     "save-gist", '\0',"", "false" };
01731 
01732 
01733 
01734 // #################### VisualBuffer options:
01735 
01736 const ModelOptionCateg MOC_VB = {
01737   MOC_SORTPRI_3, "Visual Buffer Related Options" };
01738 
01739 // Used by: VisualBufferConfigurator
01740 const ModelOptionDef OPT_VisualBufferType =
01741   { MODOPT_ARG_STRING, "VisualBufferType", &MOC_VB, OPTEXP_CORE,
01742     "Type of Visual Buffer top use. 'Stub' does nothing, and 'Std' is a "
01743     "world-centered cumulative buffer that can be updated either "
01744     "continually or at every attention shift and can make prediuctions "
01745     "about next saccade target in world coordinates.",
01746     "vb-type", '\0', "<Stub|Std>", "Stub" };
01747 
01748 // Used by: VisualBuffer
01749 const ModelOptionDef OPT_VBignoreBoring =
01750   { MODOPT_FLAG, "VBignoreBoring", &MOC_VB, OPTEXP_CORE,
01751     "Ignore boring shifts of attention if true",
01752     "vb-ignore-boring", '\0', "", "true" };
01753 
01754 // Used by: VisualBuffer
01755 const ModelOptionDef OPT_VBobjectBased =
01756   { MODOPT_FLAG, "VBobjectBased", &MOC_VB, OPTEXP_CORE,
01757     "Use object-based saliency imprinting if true",
01758     "vb-object-based", '\0', "", "true" };
01759 
01760 // Used by: VisualBuffer
01761 const ModelOptionDef OPT_VBdims =
01762   { MODOPT_ARG(Dims), "VBdims", &MOC_VB, OPTEXP_CORE,
01763     "Use given dims for visual buffer (at saliency map scale), or use same "
01764     "dims as the saliency map if set to (0, 0)",
01765     "vb-dims", '\0', "<w>x<h>", "0x0" };
01766 
01767 // Used by: VisualBuffer
01768 const ModelOptionDef OPT_VBtimePeriod =
01769   { MODOPT_ARG(SimTime), "VBtimePeriod", &MOC_VB, OPTEXP_CORE,
01770     "Apply internal competitive interactions within the buffer at "
01771     "intervals given by this parameter (in s).",
01772     "vb-period", '\0', "<double>", "0.05" };
01773 
01774 // Used by: VisualBuffer
01775 const ModelOptionDef OPT_VBdecayFactor =
01776   { MODOPT_ARG(float), "VBdecayFactor", &MOC_VB, OPTEXP_CORE,
01777     "Multiply buffer by <factor> at each time period, if not 1.0",
01778     "vb-decay", '\0', "<factor>", "1.0" };
01779 
01780 // Used by: VisualBuffer
01781 const ModelOptionDef OPT_VBmaxNormType =
01782   { MODOPT_ARG(MaxNormType), "VBmaxNormType", &MOC_VB, OPTEXP_CORE,
01783     "Type of MaxNormalization to use",
01784     "vb-maxnorm-type", '\0', "<see --maxnorm-type>", "Fancy" };
01785 
01786 // #################### Other:
01787 // Used by: SpatialMetrics, SaccadeControllers
01788 const ModelOptionDef OPT_PixelsPerDegree =
01789   { MODOPT_ARG(PixPerDeg), "PixelsPerDegree", &MOC_BRAIN, OPTEXP_CORE,
01790     "Pixels per degree of visual angle in the horizontal direction and vertical direction"
01791     "if only one value is desired set the second to 0.0 (default).",
01792     "pixperdeg", '\0', "<float,float>", "5.333333333,0.0" };
01793 
01794 // Used by: SimulationViewer
01795 const ModelOptionDef OPT_HeadMarkerRadius =
01796   { MODOPT_ARG(int), "HeadMarkerRadius", &MOC_BRAIN, OPTEXP_CORE,
01797     "Radius of the head position marker",
01798     "head-radius", '\0', "<pixels>", "50" };
01799 
01800 // Used by: SimulationViewer
01801 const ModelOptionDef OPT_MultiRetinaDepth =
01802   { MODOPT_ARG(int), "MultiRetinaDepth", &MOC_BRAIN, OPTEXP_CORE,
01803     "Depth of pyramid used for foveation",
01804     "multiretina-depth", '\0', "<int>", "5" };
01805 
01806 // #################### Option Aliases and Shortcuts
01807 // These can be requested using ModelManager::requestOptionAlias().
01808 // See in ModelOptionAliases.H some macros that will request groups
01809 // of aliases for various models (e.g., all aliases applicable to
01810 // attention models, etc)
01811 
01812 const ModelOptionDef OPT_ALIASinitialVCO =
01813   { MODOPT_ALIAS, "ALIASinitialVCO", &MOC_ALIAS, OPTEXP_CORE,
01814     "Just save the initial saliency map (i.e., output from the VisualCortex) "
01815     "before any shift of attention, and exit. The floating-point map will "
01816     "be saved in our proprietary PFM image format and with prefix 'VCO', "
01817     "which is harder to visualize but good for comparisons across images "
01818     "as it contains absolute saliency values. See saliency/matlab/"
01819     "pfmreadmatlab.m for a simple function to read a PFM image into Matlab. "
01820     "Note that the values in the map are typically very small, as they "
01821     "are in Amperes of synaptic current flowing into the integrate-and-fire "
01822     "neurons of the dynamic saliency map. Typical values are in the nA "
01823     "range (1.0e-9 Amps). You can also use saliency/bin/pfmtopgm to convert "
01824     "the map to a PGM image.",
01825     "just-initial-saliency-map", '\0', "",
01826     "--nouse-fpe --nouse-random --save-vcx-output --out=raster: "
01827     "--out=pfm: --too-much-time=0.1ms --output-frames=0-0@0.1ms " };
01828 
01829 
01830 const ModelOptionDef OPT_ALIAStop5 =
01831   { MODOPT_ALIAS, "ALIAStop5", &MOC_ALIAS, OPTEXP_CORE,
01832     "Compute the saliency map and save the first five attended locations. "
01833     "This will save five images, T000000.pnm to T000004.pnm which show the "
01834     "trajectory taken by the first five shifts of the focus of attention, "
01835     "as well as a text file 'top5.txt' with the coordinates of the attended "
01836     "locations as well as other information.",
01837     "top5", '\0', "",
01838     "--nouse-fpe --nouse-random -T --textlog=top5.txt --too-many-shifts=5 "
01839     "--output-frames=0-4@EVENT --out=raster: -+" };
01840 
01841 
01842 const ModelOptionDef OPT_ALIASmovie =
01843   { MODOPT_ALIAS, "ALIASmovie", &MOC_ALIAS, OPTEXP_CORE,
01844     "Process in movie (multiframe) mode",
01845     "movie", '\0', "",
01846     "--nodisplay-traj --nodisplay-additive --nouse-fpe "
01847     "--display-map-factor=50000 --display-map=AGM "
01848     "--nouse-random --nodisplay-foa --display-patch" };
01849 
01850 
01851 const ModelOptionDef OPT_ALIASmovieFast =
01852   { MODOPT_ALIAS, "ALIASmovieFast", &MOC_ALIAS, OPTEXP_CORE,
01853     "Process in movie (multiframe) mode, making some approximations in the "
01854     "computations to make processing fast albeit slightly different from the "
01855     "gold standard. You still need to provide:\n"
01856     "   --in=<movie>    input movie\n"
01857     "   --out=display   or any other output\n"
01858     "   -j <n>          for the number of parallel threads (default 4)\n"
01859     "   -T              or similar option (like -X, -Y, -K) for what to display.",
01860     "moviefast", '\0', "",
01861     "--movie --display-foa --sm-type=Fast --wta-type=Fast --nodisplay-interp-maps "
01862     "--ior-type=None --vc-type=Thread:Std --vc-chans=CIOFM -j 4 --timestep=30ms --maxnorm-type=FancyWeak "
01863     "--input-frames=0-MAX@30ms --output-frames=0-MAX@30ms --logverb=Error" };
01864 
01865 
01866 const ModelOptionDef OPT_ALIASmoviefov =
01867   { MODOPT_ALIAS, "ALIASmoviefov", &MOC_ALIAS, OPTEXP_CORE,
01868     "Process in foveated movie (multiframe) mode with a ThreshFric "
01869     "SaccadeController",
01870     "moviefov", '\0', "",
01871     "--movie --foveate-input-depth=6 --ehc-type=Simple "
01872     "--esc-type=Threshfric --ior-type=None --trm-type=KillStatic" };
01873 
01874 
01875 const ModelOptionDef OPT_ALIASmovieeyehead =
01876   { MODOPT_ALIAS, "ALIASmovieeyehead", &MOC_ALIAS, OPTEXP_CORE,
01877     "Process in foveated movie (multiframe) mode with a Monkey2 "
01878     "Eye/Head SaccadeController and displays of head position",
01879     "movieeyehead", '\0', "",
01880     "--moviefov --sc-type=Monkey2 --display-head" };
01881 
01882 
01883 const ModelOptionDef OPT_ALIASmovieanim =
01884   { MODOPT_ALIAS, "ALIASmovieanim", &MOC_ALIAS, OPTEXP_CORE,
01885     "Process in foveated movie (multiframe) mode with a human-derived "
01886     "ModelW Eye/Head SaccadeController, a WinnerTakeAllGreedy, no IOR, "
01887     "and displays of head position",
01888     "movieanim", '\0', "",
01889     "--movie --foveate-input-depth=4 --sc-type=ModelW "
01890     "--ior-type=None --display-head --shape-estim-mode=None "
01891     "--wta-type=Greedy --initial-eyepos=-2,-2 --initial-headpos=-2,-2" };
01892 
01893 
01894 const ModelOptionDef OPT_ALIASsurprise =
01895   { MODOPT_ALIAS, "ALIASsurprise", &MOC_ALIAS, OPTEXP_CORE,
01896     "Use standard surprise mode",
01897     "surprise", '\0', "",
01898     "--vc-type=Surp --vc-chans=CFIOM --maxnorm-type=Surprise "
01899     "--gabor-intens=20.0 --direction-sqrt " // 0..255 range every channel
01900     "--display-map=VCO --display-map-factor=1e11 " // use raw VCX outputs
01901     "--vcx-outfac=5.0e-9" };
01902 
01903 //! Current optimal settings for RSVP sequences
01904 /*! See matlab/linear-classifier/linear_model.m
01905     Error = 0.2179999999999999993338661852249060757458209991455078125000000000
01906     X = [ 0.8773092344262305442015303924563340842723846435546875000000000000 ...
01907           0.3127783654225734788489887705509318038821220397949218750000000000 ...
01908           1.5660499968021082128899479357642121613025665283203125000000000000 ];
01909 */
01910 const ModelOptionDef OPT_ALIASsurpriseRSVP =
01911   { MODOPT_ALIAS, "ALIASsurpriseRSVP", &MOC_ALIAS, OPTEXP_CORE,
01912     "Use RSVP optimized surprise mode",
01913     "surpriseRSVP", '\0', "",
01914     "--vc-type=Surp --vc-chans=I:0.312778365O:1.566049997H:0.877309234 --maxnorm-type=Surprise "
01915     "--gabor-intens=20.0 --direction-sqrt " // 0..255 range every channel
01916     "--display-map=VCO --display-map-factor=1e11 " // use raw VCX outputs
01917     "--vcx-outfac=5.0e-9"
01918     "--ior-type=None --nouse-random --display-foa"
01919     "--sm-type=Trivial --wta-type=None"
01920     "--salmap-factor=1e12 --agm-factor=1e12" };
01921 
01922 const ModelOptionDef OPT_ALIASeyeCompare =
01923   { MODOPT_ALIAS, "ALIASeyeCompare", &MOC_ALIAS, OPTEXP_CORE,
01924     "Use standard mode for comparison between the model's output and "
01925     "a human or monkey (or other) eye movement trace. Do not forget to set "
01926     "at least the following depending on your specific experiment and data:\n"
01927     "  --foa-radius=<radius>        depending on size of display;\n"
01928     "  --eyetrack-data=<file, ...>  your .eyeS eye movement record file(s);\n"
01929     "  --svem-out-fname=<file>      where the results will be saved;\n"
01930     "  --svem-prior-distro=<file>   for non-uniform random sampling. \n"
01931     "And very carefully check for other settings as well",
01932     "eyecompare", '\0', "",
01933     "--sv-type=EyeMvt --save-eyemvt-megacombo "
01934     "--wta-type=Std --ior-type=None --shape-estim-mode=None "
01935     "--maxcache-size=0 --nowta-sacsupp --nowta-blinksupp "
01936     "--nosalmap-sacsupp --nosalmap-blinksupp" };
01937 
01938 
01939 const ModelOptionDef OPT_ALIASeyeDisplay =
01940   { MODOPT_ALIAS, "ALIASeyeDisplay", &MOC_ALIAS, OPTEXP_CORE,
01941     "Display one or more eye-tracking traces on top of a movie. This should "
01942     "be used with the following options:\n"
01943     "  --foa-radius=<radius>        depending on size of display;\n"
01944     "  --eyetrack-data=<file, ...>  your .eyeS eye movement record file(s);\n"
01945     "And very carefully check for other settings as well",
01946     "eyedisplay", '\0', "",
01947     "--sv-type=EyeMvt -T --vc-type=None --sm-type=None --trm-type=None "
01948     "--wta-type=None --shape-estim-mode=None --fovea-radius=32 "
01949     "--maxcache-size=0 --delaycache-size=0" };
01950 
01951 
01952 const ModelOptionDef OPT_ALIASeyeMap =
01953   { MODOPT_ALIAS, "ALIASeyeMap", &MOC_ALIAS, OPTEXP_CORE,
01954     "Build a cumulative eye movement density map from one or more eye "
01955     "movement traces. This is useful if you have one or more observers that "
01956     "saw a same stimulus and you want to build a spatial probability density "
01957     "function from the eye traces. The resulting eye map can be compared, "
01958     "for example, with saliency maps or can be sampled in specific target "
01959     "regions. This should be used used with the following options:\n"
01960 
01961     "  --in=<image>                  input image, for dims only;\n"
01962     "  --vcem-eyefnames=<file, ...>  your .eyeS eye movement record file(s);\n"
01963     "  --output-frames=0-0@XXms      set XX to the time when to save;\n"
01964     "And very carefully check for other settings as well",
01965     "eyemap", '\0', "",
01966     "--nouse-fpe --nouse-random --save-vcx-output --out=raster: -+ "
01967     "--vc-type=EyeMvt --sm-type=None --trm-type=None --wta-type=None "
01968     "--shape-estim-mode=None --sv-type=None --vcem-forgetfac=1.0 "
01969     "--vcem-delay=0 --vcem-sigma=0 --vcem-saconly=true --vcem-usemax=true "
01970     "--output-format=PFM" };
01971 
01972 const ModelOptionDef OPT_ALIASeyeHandDisplay =
01973   { MODOPT_ALIAS, "ALIASeyeHandDisplay", &MOC_ALIAS, OPTEXP_CORE,
01974     "Display one or more eye-tracking and hand movement traces on top of "
01975     "a movie. This should be used with the following options:\n"
01976     "  --foa-radius=<radius>        depending on size of display;\n"
01977     "  --eyetrack-data=<file, ...>  your .eyeS eye movement record file(s);\n"
01978     "  --handtrack-data=<file, ...> your .hanD hand movement record file(s);\n"
01979     "And very carefully check for other settings as well",
01980     "eyehand-display", '\0', "",
01981     "--sv-type=EyeHand -T --vc-type=None --sm-type=None --trm-type=None "
01982     "--wta-type=None --shape-estim-mode=None --fovea-radius=32 "
01983     "--maxcache-size=0 --delaycache-size=0" };
01984 
01985 
01986 const ModelOptionDef OPT_ALIASbestMultiSpectralResidual =
01987   { MODOPT_ALIAS, "ALIASbestMultiSpectralResidual", &MOC_CHANNEL, OPTEXP_CORE,
01988     "Use a tuned multi-spectral residual model",
01989     "best-multi-srs", '\0', "",
01990     "--vc-type=MultiSpectralResidual --maxnorm-type=Ignore "
01991     "--noenable-pyramid-caches --multi-srs-sizes=/16,/8,/4,/2 "
01992     "--srs-output-blur-factor=0.055 --srs-spectral-blur=1 "
01993     "--srs-attenuation-width=0.0625 --map-combine-type=Max "
01994     "--srs-lowpass-filter-width=2 " };
01995 
01996 const ModelOptionDef OPT_ALIASoptiGainTrain =
01997   { MODOPT_ALIAS, "ALIASoptiGainTrain", &MOC_ALIAS, OPTEXP_CORE,
01998     "Extract salience information to train the optimal gain biasing model of "
01999     "Navalpakkam and Itti (IEEE-CVPR 2006; Neuron 2007). This will "
02000     "essentially select multi-band features and setup the training process. "
02001     "You will then also need to provide:\n"
02002     "  --in=xmlfile:file.xml   input image and region of interest metadata;\n"
02003     "  --stsd-filename=file.pmap  to save saliency of target/distractors;\n"
02004     "The resulting sT/sD pmap files can be combined together using "
02005     "app-combineOptimalGains to yield a gains file that can be used with "
02006     "the --guided-search option",
02007     "train-optigains", '\0', "",
02008     "--vc-type=Std --vc-chans=GNO --nouse-older-version --out=display --pfc-type=OG "
02009     "--num-colorband=6 --num-satband=6 --num-intensityband=6 --num-orient=8"
02010   };
02011 
02012 const ModelOptionDef OPT_ALIASoptiGainBias =
02013   { MODOPT_ALIAS, "ALIASoptiGainBias", &MOC_ALIAS, OPTEXP_CORE,
02014     "Use a set of gains to bias salience computation in a manner similar "
02015     "to Jeremy Wolfe's Guided Search (Wolfe, 1994). The gains are read "
02016     "from a ParamMap file which can be obtained, for example, by using "
02017     "--train-optigains. You will need to set the following:\n"
02018     "  --in=image.png              input image to process;\n"
02019     "  --gains-filename=file.pmap  file to load the gains from",
02020     "guided-search", '\0', "",
02021     "--vc-type=Std --vc-chans=GNO --nouse-older-version -K --out=display --pfc-type=GS "
02022     "--num-colorband=6 --num-satband=6 --num-intensityband=6 --num-orient=8"
02023   };
02024 
02025 const ModelOptionDef OPT_ALIASkinectDemo =
02026   { MODOPT_ALIAS, "ALIASkinectDemo", &MOC_ALIAS, OPTEXP_CORE,
02027     "Demonstrate the Kinect sensor by computing saliency over a combination of RGB and Depth images.",
02028     "kinect-demo", '\0', "",
02029     "-K --in=kinect --out=display --maxnorm-type=Maxnorm --retina-type=Stub --nodisplay-interp-maps "
02030     "--ior-type=None --vc-type=Thread:Std -j 6 --vc-chans=YCIOFM"
02031   };
02032 
02033 void REQUEST_OPTIONALIAS_NEURO(OptionManager& m)
02034 {
02035   REQUEST_OPTIONALIAS_CHANNEL(m);
02036 
02037   m.requestOptionAlias(&OPT_ALIAStop5);
02038   m.requestOptionAlias(&OPT_ALIASinitialVCO);
02039   m.requestOptionAlias(&OPT_ALIASmovie);
02040   m.requestOptionAlias(&OPT_ALIASmovieFast);
02041   m.requestOptionAlias(&OPT_ALIASmoviefov);
02042   m.requestOptionAlias(&OPT_ALIASmovieeyehead);
02043   m.requestOptionAlias(&OPT_ALIASmovieanim);
02044   m.requestOptionAlias(&OPT_ALIASsurprise);
02045   m.requestOptionAlias(&OPT_ALIASsurpriseRSVP);
02046   m.requestOptionAlias(&OPT_ALIASeyeCompare);
02047   m.requestOptionAlias(&OPT_ALIASeyeDisplay);
02048   m.requestOptionAlias(&OPT_ALIASeyeMap);
02049   m.requestOptionAlias(&OPT_ALIASeyeHandDisplay);
02050   m.requestOptionAlias(&OPT_ALIASbestMultiSpectralResidual);
02051   m.requestOptionAlias(&OPT_ALIASoptiGainTrain);
02052   m.requestOptionAlias(&OPT_ALIASoptiGainBias);
02053   m.requestOptionAlias(&OPT_ALIASkinectDemo);
02054 }
02055 
02056 // ######################################################################
02057 /* So things look consistent in everyone's emacs... */
02058 /* Local Variables: */
02059 /* indent-tabs-mode: nil */
02060 /* End: */
02061 
02062 #endif // NEURO_NEUROOPTS_C_DEFINED
Generated on Sun May 8 08:41:03 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3