00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
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
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
00669 void REQUEST_OPTIONALIAS_CHANNEL(OptionManager& m)
00670 {
00671 m.requestOptionAlias(&OPT_ALIASsaveChannelOutputs);
00672 m.requestOptionAlias(&OPT_ALIASsaveChannelInternals);
00673 }
00674
00675
00676
00677
00678
00679
00680
00681 #endif // CHANNELS_CHANNELOPTS_C_DEFINED