ChannelOpts.C

Go to the documentation of this file.
00001 /*!@file Channels/ChannelOpts.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/Channels/ChannelOpts.C $
00035 // $Id: ChannelOpts.C 14309 2010-12-11 02:23:48Z siagian $
00036 //
00037 
00038 #ifndef CHANNELS_CHANNELOPTS_C_DEFINED
00039 #define CHANNELS_CHANNELOPTS_C_DEFINED
00040 
00041 #include "Channels/ChannelOpts.H"
00042 
00043 #include "Channels/ColorComputeTypes.H"
00044 #include "Channels/IntegerDecodeType.H"
00045 #include "Channels/MapCombineType.H"
00046 #include "Channels/OrientComputeTypes.H"
00047 #include "Component/ModelOptionDef.H"
00048 #include "Component/OptionManager.H"
00049 #include "Image/LevelSpec.H"
00050 #include "Image/fancynorm.H"
00051 
00052 const ModelOptionCateg MOC_CHANNEL = {
00053   MOC_SORTPRI_3, "Channel-Related Options" };
00054 
00055 // Format here is:
00056 //
00057 // { MODOPT_TYPE, "name", &MOC_CATEG, OPTEXP_CORE,
00058 //   "description of what option does",
00059 //   "long option name", 'short option name', "valid values", "default value" }
00060 //
00061 
00062 // alternatively, for MODOPT_ALIAS option types, format is:
00063 //
00064 // { MODOPT_ALIAS, "", &MOC_ALIAS, OPTEXP_CORE,
00065 //   "description of what alias does",
00066 //   "long option name", 'short option name', "", "list of options" }
00067 //
00068 
00069 // NOTE: do not change the default value of any existing option unless
00070 // you really know what you are doing!  Many components will determine
00071 // their default behavior from that default value, so you may break
00072 // lots of executables if you change it.
00073 
00074 // #################### Channel options:
00075 // Used by: VisualCortex, ComplexChannel, SingleChannel (and derivatives)
00076 const ModelOptionDef OPT_UseOlderVersion =
00077   { MODOPT_FLAG, "UseOlderVersion", &MOC_CHANNEL, OPTEXP_CORE,
00078     "Use the older version where we normalize responses within all feature "
00079     "types",
00080     "use-older-version", '\0', "", "true" };
00081 
00082 // Used by: ChannelBase (and derivatives)
00083 const ModelOptionDef OPT_ChannelOutputRangeMax =
00084   { MODOPT_ARG(float), "ChannelOutputRangeMax", &MOC_CHANNEL, OPTEXP_CORE,
00085     "Max of the channel's output range",
00086     "chanout-max", '\0', "<float>", "10.0" };
00087 
00088 // Used by: ChannelBase (and derivatives)
00089 const ModelOptionDef OPT_ChannelOutputRangeMin =
00090   { MODOPT_ARG(float), "ChannelOutputRangeMin", &MOC_CHANNEL, OPTEXP_CORE,
00091     "Min of the channel's output range",
00092     "chanout-min", '\0', "<float>", "0.0" };
00093 
00094 // Used by: DirectFeedChannel
00095 const ModelOptionDef OPT_MapLevel =
00096   { MODOPT_ARG(unsigned int), "MapLevel", &MOC_CHANNEL, OPTEXP_CORE,
00097     "The level of the saliency map in Channels that don't need LevelSpec",
00098     "maplevel", '\0', "<uint>", "4" };
00099 
00100 // Used by: SingleChannel (and derivatives)
00101 const ModelOptionDef OPT_LevelSpec =
00102   { MODOPT_ARG(LevelSpec), "LevelSpec", &MOC_CHANNEL, OPTEXP_CORE,
00103     "LevelSpec to use in channels. This controls the range of "
00104     "spatial scales used in constructing center-surround maps, and "
00105     "also controls the scale of the channel output maps. cmin and "
00106     "cmax are the lowest (largest) and highest (largest) pyramid "
00107     "levels to be used for the center scale in center-surround "
00108     "operations. A level of 0 is the bottom pyramid level at the "
00109     "original dimensions of the input image; each level above 0 "
00110     "is reduced by a factor of 2 in the x and y dimensions, so e.g. "
00111     "level 4 is 16-fold reduced in x and y. delmin and delmax "
00112     "represent the range of differences at which the surround level "
00113     "is offset from the center level. maplev is the scale at which "
00114     "channel output should be generated. For example, the default "
00115     "setting of 2,4,3,4,4 will use center scales 2-4 with deltas "
00116     "of 3 and 4, for six center/surround pairs of 2/5, 2/6, 3/6, 3/7, "
00117     "4/7 and 4/8, and the channel output will be at scale 4.",
00118     "levelspec", '\0', "<cmin,cmax,delmin,delmax,maplev>", "2,4,3,4,4" };
00119 
00120 // Used by: SingleChannel, ComplexChannel (and derivatives), VisualCortex
00121 const ModelOptionDef OPT_MaxNormType =
00122   { MODOPT_ARG(MaxNormType), "MaxNormType", &MOC_CHANNEL, OPTEXP_CORE,
00123     "Type of MaxNormalization to use",
00124     "maxnorm-type", '\0', "<None|Maxnorm|Fancy|FancyFast|FancyOne|"
00125     "FancyLandmark|Landmark|FancyWeak|Ignore|Surprise>", "Fancy" };
00126 
00127 // Used by: SingleChannel (and derivatives)
00128 const ModelOptionDef OPT_SingleChannelQueueLen =
00129   { MODOPT_ARG(int), "SingleChannelQueueLen", &MOC_CHANNEL, OPTEXP_CORE,
00130     "Queue length for channels",
00131     "qlen", '\0', "<int>", "1" };
00132 
00133 // Used by: SingleChannel (and derivatives)
00134 const ModelOptionDef OPT_SingleChannelTimeDecay =
00135   { MODOPT_ARG(double), "SingleChannelTimeDecay", &MOC_CHANNEL, OPTEXP_CORE,
00136     "Time decay for channel queues",
00137     "qtime-decay", '\0', "<float>", "20.0" };
00138 
00139 // Used by: OrientationChannel
00140 const ModelOptionDef OPT_NumOrientations =
00141   { MODOPT_ARG(unsigned int), "NumOrientations", &MOC_CHANNEL, OPTEXP_CORE,
00142     "Number of oriented channels",
00143     "num-orient", '\0', "<int>", "4" };
00144 
00145 // Used by: OrientationChannel
00146 const ModelOptionDef OPT_OriInteraction =
00147   { MODOPT_ARG_STRING, "OriInteraction", &MOC_CHANNEL, OPTEXP_CORE,
00148     "This describes the way in which the different orientations "
00149     "within the OrientationChannel interact with each other. "
00150     "'None' is for no interaction (default); for 'SubtractMean', "
00151     "the mean of all orientation pyramids is subtracted from each "
00152     "orientation pyramid. You can determine your own interaction by "
00153     "specifying a vector with interaction coefficients: 'c1,...,cn'"
00154     " where n is the number of orientations. c1 is the coeffiecient "
00155     "for an orientation itself, c2 for the one with the next higher "
00156     "angle and so on. For instance, for n=4, 'None' is the same as "
00157     "'1,0,0,0', and 'SubtractMean' is the same as "
00158     "'0.75,-0.25,-0.25,-0.25'",
00159     "ori-interaction", '\0', "<None|SubtractMean|c1,...,cn>",
00160     "None" };
00161 
00162 // Used by: GaborChannel
00163 const ModelOptionDef OPT_OrientComputeType =
00164   { MODOPT_ARG(OrientComputeType), "OrientComputeType", &MOC_CHANNEL, OPTEXP_CORE,
00165     "Type of computation used to compute orientations",
00166     "oricomp-type", '\0', "<Steerable|Gabor|GaborEnergyNorm>",
00167     "Steerable" };
00168 
00169 // Used by: GaborChannel
00170 const ModelOptionDef OPT_GaborChannelIntensity =
00171   { MODOPT_ARG(double), "GaborChannelIntensity", &MOC_CHANNEL, OPTEXP_CORE,
00172     "Intensity coefficient for Gabor channel",
00173     "gabor-intens", '\0', "<double>", "10.0" };
00174 
00175 // Used by: GaborChannel
00176 const ModelOptionDef OPT_UseTrigTab =
00177   { MODOPT_FLAG, "UseTrigTab", &MOC_CHANNEL, OPTEXP_CORE,
00178     "Whether to accelerate trig operations by using table lookup, at the "
00179     "expense of some loss of numerical precision",
00180     "use-trig-tab", '\0', "", "false" };
00181 
00182 // Used by: DirectionChannel
00183 const ModelOptionDef OPT_DirectionChannelTakeSqrt =
00184   { MODOPT_FLAG, "DirectionChannelTakeSqrt", &MOC_CHANNEL, OPTEXP_CORE,
00185     "Take square root of our Reichardt output if true",
00186     "direction-sqrt", '\0', "", "false" };
00187 
00188 // Used by: DirectionChannel
00189 const ModelOptionDef OPT_DirectionChannelLowThresh =
00190   { MODOPT_ARG(float), "DirectionChannelLowThresh", &MOC_CHANNEL, OPTEXP_CORE,
00191     "Low threshold to allpy to eliminate small motion responses",
00192     "direction-lowthresh", '\0', "<float>", "3.0" };
00193 
00194 // Used by: MultiColorBandChannel
00195 const ModelOptionDef OPT_NumColorBands =
00196   { MODOPT_ARG(unsigned int), "NumColorBands", &MOC_CHANNEL, OPTEXP_CORE,
00197     "Number of hue-band channels",
00198     "num-colorband", '\0', "<int>", "3" };
00199 
00200 // Used by: MultiColorBandChannel
00201 const ModelOptionDef OPT_NumSatBands =
00202   { MODOPT_ARG(unsigned int), "NumSatBands", &MOC_CHANNEL, OPTEXP_CORE,
00203     "Number of saturation-band channels",
00204     "num-satband", '\0', "<int>", "3" };
00205 
00206 // Used by: MultiColorBandChannel
00207 const ModelOptionDef OPT_HueBandWidth =
00208   { MODOPT_ARG(float), "HueBandWidth", &MOC_CHANNEL, OPTEXP_CORE,
00209     "Width of each hue band",
00210     "sigma-hueband", '\0', "<float>", "30" };
00211 
00212 // Used by: MultiColorBandChannel
00213 const ModelOptionDef OPT_SatBandWidth =
00214   { MODOPT_ARG(float), "SatBandWidth", &MOC_CHANNEL, OPTEXP_CORE,
00215     "Width of each saturation band",
00216     "sigma-satband", '\0', "<float>", "0.3" };
00217 
00218 // Used by: IntensityBandChannel
00219 const ModelOptionDef OPT_NumIntensityBands =
00220   { MODOPT_ARG(unsigned int), "NumIntensityBands", &MOC_CHANNEL, OPTEXP_CORE,
00221     "Number of intensity-band channels",
00222     "num-intensityband", '\0', "<int>", "3" };
00223 
00224 // Used by:IntensityBandChannel
00225 const ModelOptionDef OPT_IntensityBandWidth =
00226   { MODOPT_ARG(float), "IntensityBandWidth", &MOC_CHANNEL, OPTEXP_CORE,
00227     "Width of each intensity band",
00228     "sigma-intband", '\0', "<float>", "22" };
00229 
00230 // Used by: MotionChannel
00231 const ModelOptionDef OPT_NumDirections =
00232   { MODOPT_ARG(unsigned int), "NumDirections", &MOC_CHANNEL, OPTEXP_CORE,
00233     "Number of direction-selective motion channels",
00234     "num-directions", '\0', "<int>", "4" };
00235 
00236 // Used by: MotionSpatioTemporalChannel
00237 const ModelOptionDef OPT_NumSpatioTemporalDirections =
00238   { MODOPT_ARG(unsigned int), "NumSpatioTemporalDirections", &MOC_CHANNEL, OPTEXP_CORE,
00239     "Number of directions for spatiotemporal motion channels",
00240     "num-spatiotemporaldirections", '\0', "<int>", "8" };
00241 
00242 // Used by: MotionSpatioTemporalChannel
00243 const ModelOptionDef OPT_NumSpatioTemporalSpeeds =
00244   { MODOPT_ARG(unsigned int), "NumSpatioTemporalSpeeds", &MOC_CHANNEL, OPTEXP_CORE,
00245     "Number of optimal speeds for spatiotemporal motion channels",
00246     "num-spatiotemporalspeeds", '\0', "<int>", "3" };
00247 
00248 // Used by: MotionOpticalFlowChannel
00249 const ModelOptionDef OPT_NumOpticalFlowDirections =
00250   { MODOPT_ARG(unsigned int), "NumOpticalFlowDirections", &MOC_CHANNEL, OPTEXP_CORE,
00251     "Number of directions for optical flow motion channels",
00252     "num-opticalflowdirections", '\0', "<int>", "8" };
00253 
00254 // Used by: FOEChannel
00255 const ModelOptionDef OPT_NumDirectionsFOE =
00256   { MODOPT_ARG(unsigned int), "NumDirections", &MOC_CHANNEL, OPTEXP_CORE,
00257     "Number of direction-selective foe channels",
00258     "num-foedirections", '\0', "<int>", "4" };
00259 
00260 
00261 // Used by: FOEMstChannel
00262 const ModelOptionDef OPT_FoeMSTChannelDelta =
00263   { MODOPT_ARG(uint), "FoeMSTChannelDelta", &MOC_CHANNEL, OPTEXP_CORE,
00264     "Distance from current pixel at which the presence or absence of "
00265     "features should be checked for, when computing junction filter "
00266     "outputs in foeMstChannel (--vc-chans=B).",
00267     "foeMst-delta", '\0', "<uint>", "6" };
00268 
00269 
00270 // Used by: StereoChannel
00271 const ModelOptionDef OPT_NumTheta =
00272   { MODOPT_ARG(unsigned int), "NumTheta", &MOC_CHANNEL, OPTEXP_CORE,
00273     "Number of oriented disparity channels",
00274     "num-theta", '\0', "<int>", "1" };
00275 
00276 // Used by: LJunctionChannel
00277 const ModelOptionDef OPT_LJunctionChannelDelta =
00278   { MODOPT_ARG(uint), "LJunctionChannelDelta", &MOC_CHANNEL, OPTEXP_CORE,
00279     "Distance from current pixel at which the presence or absence of "
00280     "features should be checked for, when computing junction filter "
00281     "outputs in LJunctionChannel (--vc-chans=L).",
00282     "l-junction-delta", '\0', "<uint>", "6" };
00283 
00284 // Used by: TJunctionChannel
00285 const ModelOptionDef OPT_TJunctionChannelDelta =
00286   { MODOPT_ARG(uint), "TJunctionChannelDelta", &MOC_CHANNEL, OPTEXP_CORE,
00287     "Distance from current pixel at which the presence or absence of "
00288     "features should be checked for, when computing junction filter "
00289     "outputs in TJunctionChannel (--vc-chans=T).",
00290     "t-junction-delta", '\0', "<uint>", "6" };
00291 
00292 // Used by: XJunctionChannel
00293 const ModelOptionDef OPT_XJunctionChannelDelta =
00294   { MODOPT_ARG(uint), "XJunctionChannelDelta", &MOC_CHANNEL, OPTEXP_CORE,
00295     "Distance from current pixel at which the presence or absence of "
00296     "features should be checked for, when computing junction filter "
00297     "outputs in XJunctionChannel (--vc-chans=X).",
00298     "x-junction-delta", '\0', "<uint>", "6" };
00299 
00300 // Used by: EndPointChannel (and derivatives)
00301 const ModelOptionDef OPT_EndPointChannelDelta =
00302   { MODOPT_ARG(uint), "EndPointChannelDelta", &MOC_CHANNEL, OPTEXP_CORE,
00303     "Distance from current pixel at which the presence or absence of "
00304     "features should be checked for, when computing junction filter "
00305     "outputs in EndPointChannel (--vc-chans=E).",
00306     "end-point-delta", '\0', "<uint>", "6" };
00307 
00308 // Used by: LJunctionChannel
00309 const ModelOptionDef OPT_NumLOrients =
00310   { MODOPT_ARG(unsigned int), "NumLOrients", &MOC_CHANNEL, OPTEXP_CORE,
00311     "Number of oriented l-junction channels",
00312     "num-l-orients", '\0', "<int>", "4" };
00313 
00314 // Used by: TJunctionChannel
00315 const ModelOptionDef OPT_NumTOrients =
00316   { MODOPT_ARG(unsigned int), "NumTOrients", &MOC_CHANNEL, OPTEXP_CORE,
00317     "Number of oriented t-junction channels",
00318     "num-t-orients", '\0', "<int>", "4" };
00319 
00320 // Used by: XJunctionChannel
00321 const ModelOptionDef OPT_NumXOrients =
00322   { MODOPT_ARG(unsigned int), "NumXOrients", &MOC_CHANNEL, OPTEXP_CORE,
00323     "Number of oriented x-junction channels",
00324     "num-x-orients", '\0', "<int>", "2" };
00325 
00326 // Used by: EndPointChannel
00327 const ModelOptionDef OPT_NumEOrients =
00328   { MODOPT_ARG(unsigned int), "NumEOrients", &MOC_CHANNEL, OPTEXP_CORE,
00329     "Number of oriented end-point channels",
00330     "num-e-orients", '\0', "<int>", "4" };
00331 
00332 // Used by: LJunctionChannel
00333 const ModelOptionDef OPT_LFullImplementation =
00334   { MODOPT_FLAG, "LFullImplementation", &MOC_CHANNEL, OPTEXP_CORE,
00335     "Use full implementation of the l-junction channel",
00336     "use-full-l", '\0', "", "false" };
00337 
00338 // Used by: TJunctionChannel
00339 const ModelOptionDef OPT_TFullImplementation =
00340   { MODOPT_FLAG, "TFullImplementation", &MOC_CHANNEL, OPTEXP_CORE,
00341     "Use full implementation of the t-junction channel",
00342     "use-full-t", '\0', "", "false" };
00343 
00344 // Used by: XJunctionChannel
00345 const ModelOptionDef OPT_XFullImplementation =
00346   { MODOPT_FLAG, "XFullImplementation", &MOC_CHANNEL, OPTEXP_CORE,
00347     "Use full implementation of the x-junction channel",
00348     "use-full-x", '\0', "", "false" };
00349 
00350 // Used by: EndPointChannel
00351 const ModelOptionDef OPT_EFullImplementation =
00352   { MODOPT_FLAG, "EFullImplementation", &MOC_CHANNEL, OPTEXP_CORE,
00353     "Use full implementation of the end-point channel",
00354     "use-full-e", '\0', "", "false" };
00355 
00356 // Used by: SingleChannel (and derivatives)
00357 const ModelOptionDef OPT_SingleChannelUseSplitCS =
00358   { MODOPT_FLAG, "SingleChannelUseSplitCS", &MOC_CHANNEL, OPTEXP_CORE,
00359     "Use split positive/negative center-surround computations",
00360     "use-split-cs", '\0', "", "false" };
00361 
00362 // Used by: SingleChannel (and derivatives)
00363 const ModelOptionDef OPT_SingleChannelSaveRawMaps =
00364   { MODOPT_FLAG, "SingleChannelSaveRawMaps", &MOC_CHANNEL, OPTEXP_SAVE,
00365     "Save raw input maps (pyramid levels) from all single channels (\"SR\")",
00366     "save-raw-maps", '\0', "", "false" };
00367 
00368 // Used by: SingleChannel (and derivatives)
00369 const ModelOptionDef OPT_SingleChannelComputeFullPyramidForGist =
00370   { MODOPT_FLAG, "SingleChannelComputeFullPyramidForGist", &MOC_CHANNEL, OPTEXP_SAVE,
00371     "Save raw input maps (pyramid levels) from all single channels for gist"
00372     "computation  (\"SR\")",
00373     "save-raw-maps-gist", '\0', "", "false" };
00374 
00375 // Used by: SingleChannel (and derivatives)
00376 const ModelOptionDef OPT_SingleChannelSaveFeatureMaps =
00377   { MODOPT_FLAG, "SingleChannelSaveFeatureMaps", &MOC_CHANNEL, OPTEXP_SAVE,
00378     "Save center-surround feature maps from all single channels (\"SF\")",
00379     "save-feature-maps", '\0', "", "false" };
00380 
00381 // Used by: SingleChannel (and derivatives)
00382 const ModelOptionDef OPT_SingleChannelSaveOutputMap =
00383   { MODOPT_FLAG, "SingleChannelSaveOutputMap", &MOC_CHANNEL, OPTEXP_SAVE,
00384     "Save combined center-surround output maps from all single channels (\"SO\")",
00385     "save-featurecomb-maps", '\0', "", "false" };
00386 
00387 // Used by: ComplexChannel (and derivatives)
00388 const ModelOptionDef OPT_ComplexChannelSaveOutputMap =
00389   { MODOPT_FLAG, "ComplexChannelSaveOutputMap", &MOC_CHANNEL, OPTEXP_SAVE,
00390     "Save conspicuity maps from all complex channels (\"CO\")",
00391     "save-conspic-maps", '\0', "", "false" };
00392 
00393 // Used by: ComplexChannel
00394 const ModelOptionDef OPT_ComplexChannelMapCombineType =
00395   { MODOPT_ARG(MapCombineType), "ComplexChannelMapCombineType", &MOC_CHANNEL, OPTEXP_CORE,
00396     "Strategy used by ComplexChannel for combining output maps from "
00397     "subchannels. Default strategy is summation; alternatives include "
00398     "pixel-wise max.",
00399     "map-combine-type", '\0', "<Sum|Max>", "Sum" };
00400 
00401 // Used by: ColorChannel
00402 const ModelOptionDef OPT_ColorComputeType =
00403   { MODOPT_ARG(ColorComputeType), "ColorComputeType", &MOC_CHANNEL, OPTEXP_CORE,
00404     "Type of computation used to compute RG and BY color opponencies",
00405     "color-comp-type", '\0', "<Standard|Simple|StandardFull>",
00406     "Standard" };
00407 
00408 // Used by: DummyChannel
00409 const ModelOptionDef OPT_DummyChannelFactor =
00410   { MODOPT_ARG(float), "DummyChannelFactor", &MOC_CHANNEL, OPTEXP_CORE,
00411     "Factor to multiply the input by, or 0.0 for nothing",
00412     "dummychannel-factor", '\0', "<float>", "0.0" };
00413 
00414 
00415 // Used by: TcorrChannel
00416 const ModelOptionDef OPT_TcorrChannelFrameLag =
00417   { MODOPT_ARG(int), "TcorrChannelFrameLag", &MOC_CHANNEL, OPTEXP_CORE,
00418     "Frame lag with which to compute the temporal correlations",
00419     "tcorrchannel-framelag", '\0', "<int>", "1" };
00420 
00421 
00422 // Used by: ScorrChannel
00423 const ModelOptionDef OPT_ScorrChannelRadius =
00424   { MODOPT_ARG(int), "ScorrChannelRadius", &MOC_CHANNEL, OPTEXP_CORE,
00425     "Radius (in saliency map pixels) to compute the spatial correlations",
00426     "scorrchannel-radius", '\0', "<int>", "1" };
00427 
00428 // Used by: SingleChannel
00429 const ModelOptionDef OPT_SubmapAlgoType =
00430   { MODOPT_ARG_STRING, "SubmapAlgoType", &MOC_CHANNEL, OPTEXP_CORE,
00431     "Name of the SubmapAlgorithm type to use in SingleChannel",
00432     "submap-algo", '\0', "<Std|List>", "Std" };
00433 
00434 // Used by: SingleChannel
00435 const ModelOptionDef OPT_GetSingleChannelStats =
00436   { MODOPT_FLAG, "GetSingleChannelStats", &MOC_CHANNEL, OPTEXP_SAVE,
00437     "Save (append) several types of statistics  for each single channel to sc_stats.txt",
00438     "save-channel-stats", '\0', "", "false" };
00439 
00440 // Used by: SingleChannel
00441 const ModelOptionDef OPT_SaveStatsPerChannel =
00442   { MODOPT_FLAG, "SaveStatsPerChannel", &MOC_CHANNEL, OPTEXP_SAVE,
00443     "When saving channel stats, should we put the data for each channel into its own file?",
00444     "save-stats-per-channel", '\0', "", "false" };
00445 
00446 // Used by: SingleChannel
00447 const ModelOptionDef OPT_SaveStatsPerChannelFreq =
00448   { MODOPT_FLAG, "SaveStatsPerChannelFreq", &MOC_CHANNEL, OPTEXP_SAVE,
00449     "When saving channel stats, should we also save frequency data?",
00450     "save-stats-per-channel-freq", '\0', "", "false" };
00451 
00452 // Used by: SingleChannel
00453 const ModelOptionDef OPT_GetSingleChannelStatsFile =
00454   { MODOPT_ARG(std::string), "GetSingleChannelStatsFile", &MOC_CHANNEL,
00455     OPTEXP_SAVE,
00456     "File name to use for single channel stats file",
00457     "save-channel-stats-name", '\0', "<string>", "sc_stats.txt" };
00458 
00459 // Used by: SingleChannel
00460 const ModelOptionDef OPT_GetSingleChannelStatsTag =
00461   { MODOPT_ARG(std::string), "GetSingleChannelStatsTag", &MOC_CHANNEL,
00462     OPTEXP_SAVE,
00463     "Tag name to use for single channel stats file",
00464     "save-channel-stats-tag", '\0', "<string>", "NULL" };
00465 
00466 // Used by: H2SVChannel
00467 const ModelOptionDef OPT_UseH2SV1 =
00468   { MODOPT_FLAG, "UseH2SV1", &MOC_CHANNEL, OPTEXP_CORE,
00469     "Use H2SV1 color type in H2SV rather than H2SV2",
00470     "use-h2sv1", '\0', "", "false" };
00471 
00472 // Used by: CompositeColorChannel
00473 const ModelOptionDef OPT_CompColorDoubleOppWeight =
00474   { MODOPT_ARG(double), "CompColorDoubleOppWeight", &MOC_CHANNEL, OPTEXP_CORE,
00475     "Weight to assign to double-opponent channels in CompositeColorChannel",
00476     "compcolor-double-weight", '\0', "<double>", "1.0" };
00477 
00478 // Used by: CompositeColorChannel
00479 const ModelOptionDef OPT_CompColorSingleOppWeight =
00480   { MODOPT_ARG(double), "CompColorSingleOppWeight", &MOC_CHANNEL, OPTEXP_CORE,
00481     "Weight to assign to single-opponent channels in CompositeColorChannel",
00482     "compcolor-single-weight", '\0', "<double>", "1.0" };
00483 
00484 const ModelOptionCateg MOC_INTCHANNEL = {
00485   MOC_SORTPRI_3, "Channel-Related Integer Math Options" };
00486 
00487 // Used by: IntegerSimpleChannel, IntegerComplexChannel
00488 const ModelOptionDef OPT_IntChannelScaleBits =
00489   { MODOPT_ARG(uint), "IntChannelScaleBits", &MOC_INTCHANNEL, OPTEXP_CORE,
00490     "Number of working bits to use in integer channels",
00491     "int-chan-scale-bits", '\0', "<uint>", "30" };
00492 
00493 // Used by: IntegerSimpleChannel, IntegerComplexChannel
00494 const ModelOptionDef OPT_IntChannelOutputRangeMax =
00495   { MODOPT_ARG(int), "IntChannelOutputRangeMax", &MOC_INTCHANNEL, OPTEXP_CORE,
00496     "Max of the integer channel's output range",
00497     "int-chanout-max", '\0', "<int>", "32768" };
00498 
00499 // Used by: IntegerSimpleChannel, IntegerComplexChannel
00500 const ModelOptionDef OPT_IntChannelOutputRangeMin =
00501   { MODOPT_ARG(int), "IntChannelOutputRangeMin", &MOC_INTCHANNEL, OPTEXP_CORE,
00502     "Min of the integer channel's output range",
00503     "int-chanout-min", '\0', "<int>", "0" };
00504 
00505 // Used by: IntegerMathEngine
00506 const ModelOptionDef OPT_IntMathLowPass5 =
00507   { MODOPT_ARG(std::string), "IntMathLowPass5", &MOC_INTCHANNEL, OPTEXP_CORE,
00508     "Which integer lowpass5 implementation to use",
00509     "int-math-lowpass5", '\0', "<lp5std|lp5optim>", "lp5optim" };
00510 
00511 // Used by: IntegerMathEngine
00512 const ModelOptionDef OPT_IntMathLowPass9 =
00513   { MODOPT_ARG(std::string), "IntMathLowPass9", &MOC_INTCHANNEL, OPTEXP_CORE,
00514     "Which integer lowpass9 implementation to use",
00515     "int-math-lowpass9", '\0', "<lp9std|lp9optim>", "lp9optim" };
00516 
00517 const ModelOptionDef OPT_IntInputDecode =
00518   { MODOPT_ARG(IntegerDecodeType), "IntDecodeType",
00519     &MOC_INTCHANNEL, OPTEXP_CORE,
00520     "Which type of integer decoding to apply to input frames to "
00521     "extract the luminance and chrominance components. The 'rgb' "
00522     "decoding strategy is used by default, in which the input frame "
00523     "is converted to 8-bit RGB, and from there the luminance and "
00524     "chrominance are computed separately. The 'video' decoding "
00525     "strategy may be more efficient if the input frames are natively "
00526     "in some YUV format, since the luminance and chrominance are "
00527     "computed in a single pass over the YUV data, with the Y component "
00528     "used for the luminance and Y-normalized U/Y and V/Y components "
00529     "used for chrominance; note that 'video' decoding strategy will "
00530     "give somewhat different results from the 'rgb' decoding.",
00531     "int-input-decode", '\0', "<rgb|video>", "rgb" };
00532 
00533 const ModelOptionDef OPT_ALIASsaveChannelOutputs =
00534   { MODOPT_ALIAS, "ALIASsaveChannelOutputs", &MOC_CHANNEL, OPTEXP_SAVE,
00535     "Save all channel outputs",
00536     "save-channel-outputs", '\0', "",
00537     "--save-featurecomb-maps --save-conspic-maps" };
00538 
00539 const ModelOptionDef OPT_ALIASsaveChannelInternals =
00540   { MODOPT_ALIAS, "ALIASsaveChannelInternals", &MOC_CHANNEL, OPTEXP_SAVE,
00541     "Save all available channel internal maps",
00542     "save-channel-internals", '\0', "",
00543     "--save-raw-maps --save-feature-maps" };
00544 
00545 // ######################################################################
00546 const ModelOptionCateg MOC_VCX = {
00547   MOC_SORTPRI_3, "VisualCortex-Related Options" };
00548 
00549 // Used by: VisualCortex (and derivatives)
00550 const ModelOptionDef OPT_RawVisualCortexOutputFactor =
00551   { MODOPT_ARG(float), "RawVisualCortexOutputFactor", &MOC_VCX, OPTEXP_CORE,
00552     "Factor applied to outputs of VisualCortex to scale them to Amps of "
00553     "synaptic input currents to saliency map",
00554     "vcx-outfac", '\0', "<float>", "1.0e-9" };
00555 
00556 // Used by: VisualCortex (and derivatives)
00557 const ModelOptionDef OPT_RawVisualCortexNoise =
00558   { MODOPT_ARG(float), "RawVisualCortexNoise", &MOC_VCX, OPTEXP_CORE,
00559     "Noise applied to outputs of VisualCortex after --vcx-outfac has been applied",
00560     "vcx-noise", '\0', "<float>", "1.0e-12" };
00561 
00562 // Used by: VisualCortex and derivatives
00563 const ModelOptionDef OPT_VCXsaveOutTo =
00564   { MODOPT_ARG_STRING, "VCXsaveOutTo", &MOC_VCX, OPTEXP_CORE,
00565     "Save the raw VisualCortex output map to the designated MGZ file if "
00566     "a filename is specified. The saved outputs can later be re-read using "
00567     "the --vcx-load-out-from option.",
00568     "vcx-save-out-to", '\0', "<filename.mgz>", "" };
00569 
00570 // Used by: VisualCortex and derivatives
00571 const ModelOptionDef OPT_VCXloadOutFrom =
00572   { MODOPT_ARG_STRING, "VCXloadOutFrom", &MOC_VCX, OPTEXP_CORE,
00573     "Load the raw VisualCortex output map from the designated MGZ file if "
00574     "a filename is specified. Typically, the MGZ file should contain maps "
00575     "which have been previously saved using the --vcx-save-out-to option. "
00576     "CAUTION: When this option is in use, we will not compute much in "
00577     "the VisualCortex, instead reading the precomputed results off the disk. "
00578     "This means in particular that whichever channels you may have in your "
00579     "VisualCortex will not affect its output.",
00580     "vcx-load-out-from", '\0', "<filename.mgz>", "" };
00581 
00582 // Used by: RawVisualCortex
00583 const ModelOptionDef OPT_RawVisualCortexChans =
00584   { MODOPT_ARG_STRING, "RawVisualCortexChans", &MOC_VCX, OPTEXP_CORE,
00585     "Configure which channels to use in your VisualCortex by "
00586     "specifying a series of letters from:\n"
00587     "  C: double-opponent color center-surround\n"
00588     "  D: dummy channel\n"
00589     "  E: end-stop detector\n"
00590     "  F: flicker center-surround\n"
00591     "  G: multi-color band channel\n"
00592     "  H: H2SV channel\n"
00593     "  Y: Use a Depth Channel with spatial depth information\n"
00594     "  I: intensity center-surround\n"
00595     "  K: skin hue detector\n"
00596     "  L: L-junction detector\n"
00597     "  M: motion energy center-surround\n"
00598     "  U: foe\n"
00599     "  B: FoeMST\n"
00600     "  N: intensity-band channel\n"
00601     "  O: orientation contrast\n"
00602     "  P: SIFT channel\n"
00603     "  Q: CIELab Color channel\n"
00604     "  R: Pedestrian channel\n"
00605     "  S: composite single-opponent color center-surround\n"
00606     "  T: T-junction detector\n"
00607     "  V: short-range orientation interactions (\"sox\") channel\n"
00608     "  W: contour channel\n"
00609     "  X: X-junction detector\n"
00610     "  Z: dummy zero channel\n"
00611     "  A: Object Detection channel\n"
00612     "  J: DKL Color channel\n"
00613     "  U: Foreground Detection Channel\n"
00614     "  i: Imagize 3-chanel Silicon Retina Channel\n"
00615     "  s: Motion SpatioTemporal Energy Channel\n"
00616     "  o: Motion Optical Flow Channel\n"
00617     "with possible optional weights (given just after the channel letter, "
00618     "with a ':' in between). EXAMPLE: 'IO:5.0M' will use intensity (weight 1.0), orientation "
00619     "(weight 5.0) and motion (weight 1.0) channels",
00620     "vc-chans", '\0',
00621     "<CIOFM...>",
00622     "CFIOM" };
00623 
00624 // Used by: IntegerRawVisualCortex
00625 const ModelOptionDef OPT_IntegerRawVisualCortexChans =
00626   { MODOPT_ARG_STRING, "IntegerRawVisualCortexChans", &MOC_VCX, OPTEXP_CORE,
00627     "The string specifies a list of channels to use in your IntegerVisualCortex as a series of "
00628     "letters from:\n"
00629     "  C: double-opponent color center-surround\n"
00630     "  I: intensity center-surround\n"
00631     "  O: orientation contrast\n"
00632     "  F: flicker center-surround\n"
00633     "  M: motion energy center-surround\n"
00634     "  U: foe\n"
00635     "  B: FoeMST\n"
00636     "with possible optional weights (given just after the channel letter, "
00637     "with a ':' in between). Note that this is a subset of what is "
00638     "supported by --vc-chans for the standard (float) VisualCortex.\n"
00639     "EXAMPLE: 'IO:5.0M' will use intensity (weight 1.0), orientation "
00640     "(weight 5.0) and motion (weight 1.0) channels",
00641     "ivc-chans", '\0', "<CIOFM>", "CFIOM" };
00642 
00643 // Used by: VisualCortex (and derivatives)
00644 const ModelOptionDef OPT_RawVisualCortexSaveOutput =
00645   { MODOPT_FLAG, "RawVisualCortexSaveOutput", &MOC_VCX, OPTEXP_SAVE,
00646     "Save output of visual cortex (=input to the saliency map) as a float "
00647     "image in PFM format with absolute saliency values. This is good "
00648     "for comparing several saliency maps obtained for different images. "
00649     "See saliency/matlab/pfmreadmatlab.m for a program that reads PFM "
00650     "images into Matlab.",
00651     "save-vcx-output", '\0', "", "false" };
00652 
00653 // Used by: RawVisualCortex (and derivatives)
00654 const ModelOptionDef OPT_VCXuseMax =
00655   { MODOPT_FLAG, "VCXuseMax", &MOC_VCX, OPTEXP_SAVE,
00656     "Use max across features instead of sum to yield the combined saliency map.",
00657     "vcx-usemax", '\0', "", "false" };
00658 
00659 // Used by: RawVisualCortex (and derivatives)
00660 const ModelOptionDef OPT_VCXweightThresh =
00661   { MODOPT_ARG(float), "VCXweightThresh", &MOC_VCX, OPTEXP_SAVE,
00662     "Lower threshold on total channel weight when counting the number of non-zero "
00663     "weight channels to decide whether or not to apply one last round of maxnorm "
00664     "to the VisualCortex output, if the number of non-zero-weight channels is 2 or more.",
00665     "vcx-weight-thresh", '\0', "<float>", "0.0" };
00666 
00667 
00668 //! request all of the above-named OPT_ALIAS options
00669 void REQUEST_OPTIONALIAS_CHANNEL(OptionManager& m)
00670 {
00671   m.requestOptionAlias(&OPT_ALIASsaveChannelOutputs);
00672   m.requestOptionAlias(&OPT_ALIASsaveChannelInternals);
00673 }
00674 
00675 // ######################################################################
00676 /* So things look consistent in everyone's emacs... */
00677 /* Local Variables: */
00678 /* indent-tabs-mode: nil */
00679 /* End: */
00680 
00681 #endif // CHANNELS_CHANNELOPTS_C_DEFINED
Generated on Sun May 8 08:40:21 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3