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